Контекст: У меня есть экзотическая клавиатура с экраном на ней. Я полагаю, что хост-машина рисует на экране, посылая команды через PS/2-соединение (я все еще изучаю протокол).
Мой компьютер оснащен интерфейсом PS/2. Возможность просто подключить клавиатуру к разъему была бы невероятно удобна, но мне нужно иметь возможность записывать байты в интерфейс, чтобы экран работал. Linux предоставляет устройство /dev/psaux
, но оно обеспечивает только приготовленный вывод.
AFAICT сам 8042 обернут в устройство serio с протоколом PS/2, декодированным в ядре слоем /dev/input
. Я нашел ссылки на патч, который открывает устройства serio как обычные символьные устройства, но он относится к версии 2.4 и сейчас устарел. (См. https://web.archive.org/web/20130726234145/http://www2.informatik.uni-freiburg.de/~danlee/fun/psaux/.)
Кажется правдоподобным, что существует способ привязать современное символьное устройство к устройству i8042 serio, но я не могу найти никаких упоминаний об этом или о том, как это будет работать.
Кто-нибудь знает больше?
Option: SERIO_RAW
Say Y here if you want to have raw access to serio ports, such as AUX
ports on i8042 keyboard controller. Each serio port that is bound to this
driver will be accessible via a char device with major 10 and dynamically
allocated minor. The driver will try allocating minor 1 (that historically
corresponds to /dev/psaux) first. To bind this driver to a serio port use
sysfs interface:
echo -n "serio_raw" > /sys/bus/serio/devices/serioX/drvctl
To compile this driver as a module, choose M here: the module will be
called serio_raw.
Это, я полагаю, именно то, что я ищу. Правда, похоже, что это отключит диск atkbd от порта, а мне бы хотелось иметь возможность отправлять байты, пока atkbd еще слушает, но с этим можно жить. Я обновлю эту статью, если узнаю что-нибудь еще.