Я думаю проблема у вас с правами доступа к uinput
. Сообщение об ошибке, которое вы получаете, типично для этого, и я уже видел такое же поведение на других устройствах.
Чтобы проверить это предположение, измените разрешения /dev/uinput
, чтобы разрешить доступ ко всем:
chmod +0666 /dev/uinput
Затем попробуйте еще раз ваш код. Если теперь он работает нормально, вам нужно будет сделать это изменение постоянным, так как в противном случае после перезагрузки он вернется к исходным разрешениям.
Чтобы сделать это безопасным образом, добавьте файл правил, который будет находиться по адресу: /etc/dev/rules.d
со следующей строкой:
KERNEL=="uinput", GROUP="udev_group"
Чтобы увидеть, как должен выглядеть файл правил, проверьте файл правил udev, расположенный по адресу:
/lib/udev/rules.d/50-udev-default.rules
Когда будете готовы, добавьте группу с именем udev_group и добавьте в нее свое имя пользователя (или любого пользователя, который должен иметь права на запись в uinput
).
Возможно, вам придется перезагрузиться, чтобы новое правило заработало.
В результате любой пользователь, являющийся членом этой группы, будет иметь полный доступ к uinput
, чего вы и хотели.
для добавления группы можно установить «Пользователи и группы»:
sudo apt-get install gnome-system-tools
и запустить его по адресу:
Application -> System Tools -> Administration -> Users and Groups**
или в терминале:
gnome-system-tools
person
OM55
schedule
13.08.2012