I did two things to fix this:
1. Added (built-in) the kernel driver for a "Super I/O" chip my motherboard has. In my case the CONFIG_W83627HF_WDT and CONFIG_SENSORS_W83627HF. I don't know if this actually mattered, but it matched the chip soldered to my motherboard.
2. Ran the following command:
Code: Select all
stty -F /dev/ttyS0 1200 cs7 -ignbrk ignpar -icrnl -ixon -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
I stumbled across this through trial-and-error. I'm still hazy on the details, but the way I understand it, "setserial" will configure the actual UART, while "stty" will configure the terminal/console interpretation of the symbols (aka give you readable output). So, it's very likely I was actually getting perfectly usable data from my mouse despite not reading anything from
I'll know for sure once I get X to actually use my mouse.
Speaking of which, the three options that I was able to find for getting a serial mouse to work on X are:
1. Libinput, which I don't think actually supports serial mice at all.
2. evdev, which according to the arch wiki and the link pingtoo posted requires the "inputattach" program. I'll have to find that somewhere and give it a shot.
3. xf86-input-mouse, which isn't in the portage tree anymore (I assume it was historically).
Creating the following in xorg.conf
Code: Select all
Section "InputDevice"
Identifier "serialmouse"
Driver "evdev"
Option "Protocol" "MouseMan"
Option "Device" "/dev/ttyS0"
Option "CorePointer"
Option "ZAxisMapping" "4 5"
EndSection
just gives this in my Xorg.0.log:
Code: Select all
(II) Using input driver "evdev" for "serialmouse"
(EE) systemd-logind: failed to take device /dev/ttyS0: No such device
(**) Option "CorePointer" "on"
(**) serialmouse: always reports core events
(**) evdev: serialmouse: Device: "/dev/ttyS0"
(EE) evdev: serialmouse: Unable to query fd: Inappropriate ioctl for device
(EE) PreInit returned 2 for "serialmouse"
(III) UnloadModule: "evdev"