LINUX.ORG.RU

Джойстик воспринимается как мышь


0

0

Привет. Решил поиграть во FlightGear, для чего подключил Saitek x52 Pro, но поиграть не вышло, джойстик воспринимается как мышь. В гугле я обнаружил жалобы и рекомендации как это исправить, но они мне не помогли, испробовав все варианты и вдоволь наперевтыкавшись джойстика и наперестартовавшись hal'а и иксов взываю к помощи.

Привожу diff вывода lshal с воткнутым джойстиком и без:

2c2
< Dumping 111 device(s) from the Global Device List:
---
> Dumping 114 device(s) from the Global Device List:
2089a2090,2170
> udi = '/org/freedesktop/Hal/devices/usb_device_6a3_762_noserial'
>   info.linux.driver = 'usb'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/usb_device_1d6b_1_0000_00_02_0'  (string)
>   info.product = 'Saitek X52 Pro Flight Control System'  (string)
>   info.subsystem = 'usb_device'  (string)
>   info.udi = '/org/freedesktop/Hal/devices/usb_device_6a3_762_noserial'  (string)
>   info.vendor = 'Saitek PLC'  (string)
>   linux.device_file = '/dev/bus/usb/002/026'  (string)
>   linux.hotplug_type = 2  (0x2)  (int)
>   linux.subsystem = 'usb'  (string)
>   linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.0/usb2/2-3'  (string)
>   usb_device.bus_number = 2  (0x2)  (int)
>   usb_device.can_wake_up = false  (bool)
>   usb_device.configuration_value = 1  (0x1)  (int)
>   usb_device.device_class = 0  (0x0)  (int)
>   usb_device.device_protocol = 0  (0x0)  (int)
>   usb_device.device_revision_bcd = 48  (0x30)  (int)
>   usb_device.device_subclass = 0  (0x0)  (int)
>   usb_device.is_self_powered = false  (bool)
>   usb_device.linux.device_number = 26  (0x1a)  (int)
>   usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.0/usb2/2-3'  (string)
>   usb_device.max_power = 230  (0xe6)  (int)
>   usb_device.num_configurations = 1  (0x1)  (int)
>   usb_device.num_interfaces = 1  (0x1)  (int)
>   usb_device.num_ports = 0  (0x0)  (int)
>   usb_device.product = 'Saitek X52 Pro Flight Control System'  (string)
>   usb_device.product_id = 1890  (0x762)  (int)
>   usb_device.speed = 12.0 (12) (double)
>   usb_device.vendor = 'Saitek PLC'  (string)
>   usb_device.vendor_id = 1699  (0x6a3)  (int)
>   usb_device.version = 2.0 (2) (double)
> 
> udi = '/org/freedesktop/Hal/devices/usb_device_6a3_762_noserial_if0'
>   info.linux.driver = 'usbhid'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/usb_device_6a3_762_noserial'  (string)
>   info.product = 'USB HID Interface'  (string)
>   info.subsystem = 'usb'  (string)
>   info.udi = '/org/freedesktop/Hal/devices/usb_device_6a3_762_noserial_if0'  (string)
>   linux.hotplug_type = 2  (0x2)  (int)
>   linux.subsystem = 'usb'  (string)
>   linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.0/usb2/2-3/2-3:1.0'  (string)
>   usb.bus_number = 2  (0x2)  (int)
>   usb.can_wake_up = false  (bool)
>   usb.configuration_value = 1  (0x1)  (int)
>   usb.device_class = 0  (0x0)  (int)
>   usb.device_protocol = 0  (0x0)  (int)
>   usb.device_revision_bcd = 48  (0x30)  (int)
>   usb.device_subclass = 0  (0x0)  (int)
>   usb.interface.class = 3  (0x3)  (int)
>   usb.interface.number = 0  (0x0)  (int)
>   usb.interface.protocol = 0  (0x0)  (int)
>   usb.interface.subclass = 0  (0x0)  (int)
>   usb.is_self_powered = false  (bool)
>   usb.linux.device_number = 26  (0x1a)  (int)
>   usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.0/usb2/2-3/2-3:1.0'  (string)
>   usb.max_power = 230  (0xe6)  (int)
>   usb.num_configurations = 1  (0x1)  (int)
>   usb.num_interfaces = 1  (0x1)  (int)
>   usb.num_ports = 0  (0x0)  (int)
>   usb.product = 'USB HID Interface'  (string)
>   usb.product_id = 1890  (0x762)  (int)
>   usb.speed = 12.0 (12) (double)
>   usb.vendor = 'Saitek PLC'  (string)
>   usb.vendor_id = 1699  (0x6a3)  (int)
>   usb.version = 2.0 (2) (double)
> 
> udi = '/org/freedesktop/Hal/devices/usb_device_6a3_762_noserial_if0_logicaldev_input'
>   info.capabilities = {'input', 'input.tablet'} (string list)
>   info.category = 'input'  (string)
>   info.parent = '/org/freedesktop/Hal/devices/usb_device_6a3_762_noserial_if0'  (string)
>   info.product = 'Saitek Saitek X52 Pro Flight Control System'  (string)
>   info.subsystem = 'input'  (string)
>   info.udi = '/org/freedesktop/Hal/devices/usb_device_6a3_762_noserial_if0_logicaldev_input'  (string)
>   input.device = '/dev/input/event2'  (string)
>   input.originating_device = '/org/freedesktop/Hal/devices/usb_device_6a3_762_noserial_if0'  (string)
>   input.product = 'Saitek Saitek X52 Pro Flight Control System'  (string)
>   linux.device_file = '/dev/input/event2'  (string)
>   linux.hotplug_type = 2  (0x2)  (int)
>   linux.subsystem = 'input'  (string)
>   linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.0/usb2/2-3/2-3:1.0/input/input31/event2'  (string)
> 
2342c2423
< Dumped 111 device(s) from the Global Device List.
---
> Dumped 114 device(s) from the Global Device List.

И еще один момент, KDE в настройках джойстика пишет: «A4Tech USB Full Speed (/dev/input/js0)», хотя это мышь, может быть это как-то связанно.

У меня Debian Squeeze amd64.



Последнее исправление: PoMbl4 (всего исправлений: 1)

С простой мышью:
by-id by-path event0 event1 event2 event3 event4 event5 event6 mice mouse0 mouse1

С A4Tech:
by-id event0 event2 event4 event6 js0 mouse0
by-path event1 event3 event5 event7 mice mouse1

js0 появился из-за мыши.

Но с простой мышью джойстик все равно ведет себя как мышь.

PoMbl4
() автор топика

> Debian Squeeze

У меня в убунте есть пакет xserver-xorg-input-joystick, он не установлен. А у тебя скорее всего установлен.

PolarFox ★★★★★
()

Имеется та же проблема. Debian Sid свежий. Располагаю мышью A4Tech X7-XL730K. В играх очень мешает, приходится удалять файл устройства в /dev и заменять на файлы устройства от геймпадов.

$ sudo udevadm info -a -p "/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.3/2-1.1.3:1.1/input/input3/js0"

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.3/2-1.1.3:1.1/input/input3/js0':
    KERNEL=="js0"
    SUBSYSTEM=="input"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.3/2-1.1.3:1.1/input/input3':
    KERNELS=="input3"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{name}=="A4Tech USB Full Speed"
    ATTRS{phys}=="usb-0000:00:1d.7-1.1.3/input1"
    ATTRS{uniq}==""
    ATTRS{modalias}=="input:b0003v09DAp8090e0111-e0,1,2,3,4,11,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87
,88,89,8A,8B,8C,8E,8F,90,96,98,9B,9C,9E,9F,A1,A3,A4,A5,A6,A7,A8,A9,AB,AC,AD,AE,B1
,B2,B5,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,CE,CF,D0,D1,D2,D5,D8,D9,DB,E2,EA,EB,F0
,100,13A,13B,162,166,16A,16E,178,179,17A,17B,17C,17D,17F,180,181,182,185,18C,18D,
192,193,195,1A0,1A1,1A2,1A3,1A4,1A5,1A6,1A7,1A8,1A9,1AA,1AB,1AC,1AD,1AE,1B0,1B1,1
B7,r6,a0,1,2,3,4,5,6,7,8,10,11,12,20,28,29,2A,2B,2C,2D,2E,2F,30,31,32,33,34,35,36
,37,38,39,3A,3B,3C,3D,3E,m4,l0,1,2,3,4,sfw"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.3/2-1.1.3:1.1':
    KERNELS=="2-1.1.3:1.1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usbhid"
    ATTRS{bInterfaceNumber}=="01"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{bInterfaceClass}=="03"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bInterfaceProtocol}=="01"
    ATTRS{modalias}=="usb:v09DAp8090d0606dc00dsc00dp00ic03isc01ip01"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.3':
    KERNELS=="2-1.1.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 2"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="a0"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="58995"
    ATTRS{idVendor}=="09da"
    ATTRS{idProduct}=="8090"
    ATTRS{bcdDevice}=="0606"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="2"
    ATTRS{devnum}=="8"
    ATTRS{devpath}=="1.1.3"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="A4Tech"
    ATTRS{product}=="USB Full Speed"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1':
    KERNELS=="2-1.1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="51"
    ATTRS{idVendor}=="046d"
    ATTRS{idProduct}=="c223"
    ATTRS{bcdDevice}=="0020"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="2"
    ATTRS{devnum}=="5"
    ATTRS{devpath}=="1.1"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="4"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{product}=="G15 Keyboard Hub"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb2/2-1':
    KERNELS=="2-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="40"
    ATTRS{idVendor}=="0409"
    ATTRS{idProduct}=="005a"
    ATTRS{bcdDevice}=="0100"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="2"
    ATTRS{devnum}=="2"
    ATTRS{devpath}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="4"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb2':
    KERNELS=="usb2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bMaxPower}=="  0mA"
    ATTRS{urbnum}=="50"
    ATTRS{idVendor}=="1d6b"
    ATTRS{idProduct}=="0002"
    ATTRS{bcdDevice}=="0206"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="2"
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="6"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Linux 2.6.35 ehci_hcd"
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{serial}=="0000:00:1d.7"
    ATTRS{authorized_default}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.7':
    KERNELS=="0000:00:1d.7"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci_hcd"
    ATTRS{vendor}=="0x8086"
    ATTRS{device}=="0x2836"
    ATTRS{subsystem_vendor}=="0x1043"
    ATTRS{subsystem_device}=="0x81ec"
    ATTRS{class}=="0x0c0320"
    ATTRS{irq}=="23"
    ATTRS{local_cpus}=="ff"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{modalias}=="pci:v00008086d00002836sv00001043sd000081ECbc0Csc03i20"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{enable}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""
    ATTRS{companion}==""

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

Mihaly4_6572
()
Ответ на: комментарий от Mihaly4_6572
$ sudo udevadm info --query=all --name=/dev/input/js0
P: /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.3/2-1.1.3:1.1/input/input3/js0
N: input/js0
S: char/13:0
S: input/by-id/usb-A4Tech_USB_Full_Speed-kbd
S: input/by-path/pci-0000:00:1d.7-usb-0:1.1.3:1.1-kbd
E: UDEV_LOG=3
E: DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1.1/2-1.1.3/2-1.1.3:1.1/input/input3/js0
E: SUBSYSTEM=input
E: DEVNAME=input/js0
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_VENDOR=A4Tech
E: ID_VENDOR_ENC=A4Tech
E: ID_VENDOR_ID=09da
E: ID_MODEL=USB_Full_Speed
E: ID_MODEL_ENC=USB\x20Full\x20Speed
E: ID_MODEL_ID=8090
E: ID_REVISION=0606
E: ID_SERIAL=A4Tech_USB_Full_Speed
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030102:030101:
E: ID_USB_INTERFACE_NUM=01
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:1d.7-usb-0:1.1.3:1.1
E: MAJOR=13
E: MINOR=0
E: DEVLINKS=/dev/char/13:0 /dev/input/by-id/usb-A4Tech_USB_Full_Speed-kbd /dev/input/by-path/pci-0000:00:1d.7-usb-0:1.1.3:1.1-kbd

$ sudo udevadm info --query=all --name=/dev/input/js1
P: /devices/pci0000:00/0000:00:1d.1/usb6/6-2/6-2:1.0/input/input8/js1
N: input/js1
S: char/13:1
S: input/by-id/usb-Logitech_Logitech_RumblePad_2_USB-joystick
S: input/by-path/pci-0000:00:1d.1-usb-0:2:1.0-joystick
E: UDEV_LOG=3
E: DEVPATH=/devices/pci0000:00/0000:00:1d.1/usb6/6-2/6-2:1.0/input/input8/js1
E: SUBSYSTEM=input
E: DEVNAME=input/js1
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_VENDOR=Logitech
E: ID_VENDOR_ENC=Logitech
E: ID_VENDOR_ID=046d
E: ID_MODEL=Logitech_RumblePad_2_USB
E: ID_MODEL_ENC=Logitech\x20RumblePad\x202\x20USB
E: ID_MODEL_ID=c218
E: ID_REVISION=0100
E: ID_SERIAL=Logitech_Logitech_RumblePad_2_USB
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:1d.1-usb-0:2:1.0
E: MAJOR=13
E: MINOR=1
E: DEVLINKS=/dev/char/13:1 /dev/input/by-id/usb-Logitech_Logitech_RumblePad_2_USB-joystick /dev/input/by-path/pci-0000:00:1d.1-usb-0:2:1.0-joystick
E: TAGS=:udev-acl:

$ sudo udevadm info --query=all --name=/dev/input/js2
P: /devices/pci0000:00/0000:00:1d.1/usb6/6-1/6-1:1.0/input/input10/js2
N: input/js2
S: char/13:2
S: input/by-id/usb-Logitech_XUSB_Gamepad_8A60B55D-joystick
S: input/by-path/pci-0000:00:1d.1-usb-0:1:1.0-joystick
E: UDEV_LOG=3
E: DEVPATH=/devices/pci0000:00/0000:00:1d.1/usb6/6-1/6-1:1.0/input/input10/js2
E: SUBSYSTEM=input
E: DEVNAME=input/js2
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_VENDOR=Logitech
E: ID_VENDOR_ENC=Logitech
E: ID_VENDOR_ID=046d
E: ID_MODEL=XUSB_Gamepad
E: ID_MODEL_ENC=XUSB\x20Gamepad
E: ID_MODEL_ID=c242
E: ID_REVISION=1000
E: ID_SERIAL=Logitech_XUSB_Gamepad_8A60B55D
E: ID_SERIAL_SHORT=8A60B55D
E: ID_TYPE=generic
E: ID_BUS=usb
E: ID_USB_INTERFACES=:ff5d01:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=xpad
E: ID_PATH=pci-0000:00:1d.1-usb-0:1:1.0
E: MAJOR=13
E: MINOR=2
E: DEVLINKS=/dev/char/13:2 /dev/input/by-id/usb-Logitech_XUSB_Gamepad_8A60B55D-joystick /dev/input/by-path/pci-0000:00:1d.1-usb-0:1:1.0-joystick
E: TAGS=:udev-acl:


Решил попробовать решить проблему написанием правила udev:

$ cat /etc/udev/rules.d/0125_joystick.rules
KERNEL=="input/js0", ATTR{idProduct}=="8090", ATTR{idProduct}=="8090",          NAME="jsA4Tech"

Однако, не то что желаемого, не последовало никакого эффекта. Патч не работает:
# patch -p1 < ../0001-Revert-Input-joydev-blacklist-digitizers.patch 
patching file drivers/input/joydev.c
Hunk #1 FAILED at 857.
1 out of 1 hunk FAILED -- saving rejects to file drivers/input/joydev.c.rej
Нужна помощь в написании правила, которое при обнаружении «джойстика» A4Tech его игнорировало, оставив мышь работоспобной. Версия udev-161-1, ядра 2.6.35. Заранее спасибо.

Mihaly4_6572
()
Ответ на: комментарий от Mihaly4_6572

У меня после этого патча все равно появляется мыше-джойстик, накладывал я его руками. Как вариант, сунуть в rc.local удаление js0 и создание вместо него ссылки на нормальный джойстик.

PoMbl4
() автор топика
Ответ на: комментарий от PoMbl4

А вот с этого места поподробнее пожалуйста. Удаление - понятно, а вот создание ссылки не очень. Хотя создание правила udev мне кажется способом красивее, но на самом деле не сильно важно. Моя лично задача - чтобы джойстики располагались так при запуске: /dev/input/js0 - Logitech Rumblepad 2 /dev/input/js1 - Logitech Chillstream

Mihaly4_6572
()
Ответ на: комментарий от Mihaly4_6572

js0 js1 js2

удаляем мышь
rm js0
делаем ссылку с первого джойстика на вместо мыши
ln js1 js0
удаляем оригинал первого джойстика
rm js1
делаем ссылку...
ln js2 js1

Получился такой вот сдвиг джойстиков.

PoMbl4
() автор топика
Ответ на: комментарий от Mihaly4_6572

Каждую загрузку разный файл устройств у них? Или ты их втыкаешь/выдергиваешь периодически?

Ну тогда в скрипте делай ls /dev/input/by-id и там будет:

$ ls /dev/input/by-id
usb-A4Tech_USB_Full_Speed-event-kbd    usb-A4Tech_USB_Full_Speed-mouse
usb-A4Tech_USB_Full_Speed-event-mouse  usb-Logitech_Logitech_Dual_Action-event-joystick
usb-A4Tech_USB_Full_Speed-kbd          usb-Logitech_Logitech_Dual_Action-joystick

Выковыриваем ссылки по «joystick» и смотрим куда какой ссылается.

$ ls /dev/input/by-id | grep joystick | grep -v event
usb-Logitech_Logitech_Dual_Action-joystick

$ stat /dev/input/by-id/usb-Logitech_Logitech_Dual_Action-joystick
  File: «/dev/input/by-id/usb-Logitech_Logitech_Dual_Action-joystick» -> «../js1»
  Size: 6               Blocks: 0          IO Block: 4096   символьная ссылка
Device: 5h/5d   Inode: 720987      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2010-08-23 12:07:25.377799804 +0400
Modify: 2010-08-23 12:07:07.645803220 +0400
Change: 2010-08-23 12:07:07.645803220 +0400

Теперь зная хуисху можно совершить их обмен js*.
Для этого нужно писать шелл-скрипт с некоторой логикой.
Само собой нужен небольшой навык программирования.

PoMbl4
() автор топика
Ответ на: комментарий от PoMbl4

Уф, я все время все усложняю.
На самом деле все гораздо проще

#!/bin/bash

saitek=`readlink /dev/input/by-id/usb-Saitek_Saitek_X52_Pro_Flight_Control_System-mouse | sed 's/..\///'`
logitec=`readlink /dev/input/by-id/usb-Logitech_Logitech_Dual_Action-joystick | sed 's/..\///'`

echo Saitek is $saitek
echo Logitech is $logitec

rm /dev/input/js0

ln /dev/input/$saitek /dev/input/saitek_tmp
ln /dev/input/$logitec /dev/input/logitec_tmp

rm /dev/input/$saitek
rm /dev/input/$logitec

ln /dev/input/saitek_tmp /dev/input/js0
ln /dev/input/logitec_tmp /dev/input/js1

rm /dev/input/saitek_tmp
rm /dev/input/logitec_tmp

Само собой надо под свои джойстики поправить

PoMbl4
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.