UDEV para detectar o joystick do bluetooth

0

Usando o Ubuntu MATE 16.04

Meu problema é que eu tenho um joystick bluetooth, mas quando ele se conecta, ele controla meu mouse. Mais especificamente, quando eu jogo um jogo, o cursor passa por toda a tela. Para consertar isso eu abro o terminal e executo:

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

Então eu posso pegar meu mouse "normal" e tirar o cursor da tela. Isso é bom até que eu pare de jogar e, em seguida, o joystick se desconecta da falta de atividade. Quando eu pressiono um botão no joystick e ele emparelha com o bluetooth, eu tenho o problema do cursor até que eu faça a coisa xinput novamente.

Meu objetivo é usar o UDEV para detectar o joystick do bluetooth conectando e executando um script que executa o xinput .

Eu usei udevadm info -e para ver se conseguia capturar informações, mas há muitas informações para que eu faça sentido.

Agora eu tenho:

/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 para que qualquer pessoa possa executá-lo por enquanto)

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

e qualquer alteração que eu faça eu executo:

sudo udevadm control --reload-rules

No entanto, o joystick ainda funciona como um mouse quando emparelhado e o script nunca é executado ( /tmp/joystick.txt nunca é criado)

Qualquer ajuda seria muito apreciada

    
por Atari800 13.12.2016 / 01:40

1 resposta

0

Ok, eu realizei meu objetivo, mas não em um método preciso. Eu assisti / var / log / syslog que mostra minha atividade bluetooth quando eu ativo o joystick 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

Agora fiz uma alteração na minha regra do udev:

# 1 /etc/udev/rules.d/90-joystick.rules (alterado)

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

Como eu tenho apenas um dispositivo Bluetooth com o qual estou preocupado, estou apenas procurando por atividades do hidraw. Vou procurar por 16.04 udev info e ver se posso ajustar isso para procurar seu endereço, mas por enquanto, eu estou satisfeito. Também removi passando o% p para meu script

# 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

No meu joystick.sh, eu tive que exportar o display, pois o xinput precisa disso para funcionar corretamente.

Agora estou pronto !!!! Quando eu clico em um botão ou movo o joystick, uma vez que ele estabelece a conexão com o bluetooth, eu não tenho mais um cursor louco para o conteúdo.

Se alguém puder me dar pistas ou me indicar boas informações do udev para que eu possa ajustar isso, agradeceria

Espero que isso ajude alguém

    
por Atari800 14.12.2016 / 13:55