UDEV для обнаружения Bluetooth-джойстика - proUbuntu
0 голосов
/

Использование Ubuntu MATE 16.04

Моя проблема в том, что у меня есть джойстик bluetooth, однако, когда он подключается, он управляет моей мышью. Более конкретно, когда я играю в игру, курсор перемещается по всему экрану. Чтобы это исправить, я открываю терминал и выполняю:

xinput set-int-prop "Amazon Fire Game Controller" "Device Enabled" 8 0

Тогда я могу взять свою "обычную" мышь и убрать курсор с экрана. Это нормально, пока я не перестаю играть, а затем джойстик отключается от отсутствия активности. Когда я нажимаю кнопку на джойстике, и он соединяется с Bluetooth, у меня возникает проблема с курсором, пока я снова не выполню xinput.

Моя цель - использовать UDEV для обнаружения подключения джойстика bluetooth и запуска скрипта, выполняющего xinput.

Я использовал udevadm info -e, чтобы посмотреть, смогу ли я получить информацию, но для меня слишком много информации, чтобы понять ее.

Прямо сейчас у меня есть:

/etc/udev/rules.d/90-joystick.rules


ENV{ID_NAME}==”Amazon Fire Game Controller", ENV{HID_UNIQ}=="00:bb:3a:ec:80:6d", ACTION=="add", RUN+=”sudo -u johndoe -c /home/johndoe/systemscripts/joystick.sh %p”

/home/johndoe/systemscripts/joystick.sh (chmod 777, чтобы каждый мог запустить его сейчас)

#!/bin/sh
xinput set-int-prop "Amazon Fire Game Controller" "Device Enabled" 8 0
date > /tmp/joystick.txt

и любое внесенное мной изменение я выполняю:

sudo udevadm control --reload-rules

Однако при сопряжении джойстик все еще действует как мышь, и скрипт никогда не запускается (/tmp/joystick.txt никогда не создается)

Любая помощь будет принята с благодарностью

1 Ответ

0 голосов
/

Хорошо, я достиг своей цели, но не точным способом. Я смотрел / var / log / syslog, который показывает мою активность Bluetooth при активации джойстика bluetooth

Dec 14 06:27:16 SuperComputer kernel: [ 1908.362129] input: Amazon Fire Game Controller as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.8/2-1.8:1.0/bluetooth/hci0/hci0:41/0005:1949:0402.000F/input/input22
Dec 14 06:27:16 SuperComputer kernel: [ 1908.365299] hid-generic 0005:1949:0402.000F: input,hidraw2: BLUETOOTH HID v0.21 Gamepad [Amazon Fire Game Controller] on 00:0c:76:46:da:d9

Теперь я изменил правило udev:

# 1 /etc/udev/rules.d/90-joystick.rules (изменено)

SUBSYSTEMS=="hidraw", ACTION=="add", RUN+="/usr/bin/sudo -u johndoe /home/johndoe/systemscripts/joystick.sh"

Так как у меня есть только 1 устройство Bluetooth, которое меня интересует, я ищу только активность hidraw. Я поищу информацию от 16.04 udev и посмотрю, смогу ли я настроить ее, чтобы найти ее адрес, но пока я в полном восторге. Также я удалил передачу% p в мой скрипт

# 2 /home/johndoe/systemscripts/joystick.sh

#!/bin/sh
export DISPLAY=:0.0

/usr/bin/xinput > /tmp/joystick.txt 2>&1
whoami >> /tmp/joystick.txt
/usr/bin/xinput set-int-prop "Amazon Fire Game Controller" "Device Enabled" 8 0

В моем joystick.sh мне пришлось экспортировать отображение, так как xinput нуждается в этом для правильной работы.

Теперь я настроен !!!! Когда я нажимаю кнопку или перемещаю джойстик, когда он устанавливает соединение с Bluetooth, у меня больше нет сумасшедшего курсора для контента.

Если кто-нибудь может дать мне подсказки или порекомендовать мне хорошую информацию об udev, чтобы я мог это точно настроить, я был бы признателен

Надеюсь, это кому-нибудь поможет

...