Я пытаюсь настроить Pystromo так, чтобы я мог переназначить клавиши на своем геймпаде Belkin N52TE.

Pystromo в основном фиксирует нажатия клавиш, а затем выводит переназначенные нажатия клавиш на устройство ввода. Однако в данный момент он просто глотает вход и ничего не выводит.

Я обнаружил, что что-то не так с моим устройством ввода, с курящим пистолетом:

# ls -l /dev/input/uinput
crw-rw---- 1 root plugdev 10, 223 Dec 31  2009 /dev/input/uinput
# cat /dev/input/uinput
cat: /dev/input/uinput: No such device

Модуль uinput загружен и хорошо виден через lsmod . Кто-нибудь видел это раньше или может придумать что-то стоящее?

Текущая настройка

  • Gentoo Linux
  • Ядро 2.6.32 (Исходники Gentoo 2.6.32-r1)
  • Ноутбук HP DV7

Выход

dmesg

dmesg | grep uinput ничего не делает, и новые строки не появляются, если я запускаю modprobe -r uinput && modprobe uinput . Тем не менее, модуль uinput хорошо виден при запуске lsmod:

# lsmod | grep uinput
uinput                  6200  0

lsusb

# lsusb
Bus 005 Device 003: ID 050d:0200 Belkin Components
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 1532:0101 Razer USA, Ltd
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 5986:0143 Acer, Inc
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 002: ID 03f0:171d Hewlett-Packard Wireless (Bluetooth + WLAN) Interface [Integrated Module]
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb -v

Pastebin

Обновить

Хм, обновление evdev и hal, кажется, частично исправило это. /dev /input /uinput по-прежнему недоступен, но Pystromo теперь успешно переназначает ключи.

Я немного озадачен тем, что здесь происходит, но, похоже, мое понимание того, как все это работает, неверно.

Поскольку я разместил награду, я оставлю это здесь для того, чтобы кто-нибудь опубликовал объяснение того, как устройства ввода пользовательского пространства работают под капотом.

1 ответ1

1

Вы не должны читать из uinput, так как uinput предназначен для создания устройств пользовательского пространства и отправки им событий, поэтому сообщение « No such device является нормальным.

Я предполагаю, что это была либо простая проблема с правами доступа, либо изменение местоположения самого устройства uinput (то есть ожидалось /dev /uinput, но это было в /dev /input /uinput), оба из которых изменились в Ubuntu некоторое время назад, чтобы программы, которые ожидали старого поведения, могли запутаться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .