LinuxForum.Fans
Тема

UDEV и Джойстик

Автор: Prokurator 14 сообщений 4688 просмотров
#319002

Перешел на Debian после того как ASPLinux перестал существовать. :-(
Поставил squeeze, потихоньку разбираюсь. Сильно прошу не пинать, но маны читать чуть ли не про каждый шаг по новой ну тяжко. :)
Дано: джойстик вроде ядром видится, т.е. проблема не железа:

[10692.560601] usb 5-1: New USB device found, idVendor=0f30, idProduct=0110
[10692.560607] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[10692.560611] usb 5-1: Product: Dual Analog Rumble Pad
[10692.560614] usb 5-1: Manufacturer: Jess Tech
[10692.560780] usb 5-1: configuration #1 chosen from 1 choice
[10692.588755] input: Jess Tech Dual Analog Rumble Pad as /devices/pci0000:00/0000:00:1a.2/usb5/5-1/5-1:1.0/input/input10
[10692.588905] generic-usb 0003:0F30:0110.0004: input,hidraw0: USB HID v1.10 Joystick [Jess Tech Dual Analog Rumble Pad] on usb-0000:00:1a.2-1/input0

, но сим-линнка в /dev/js[0-4] или в /dev/input/js[0-4] вообще нет. Соответственно ни КДЕ, ни программы его также не видят.

В каталоге правил UDEV-а всего три файла:
ser@DeLinux:~$ ls /etc/udev/rules.d/
70-persistent-cd.rules 70-persistent-net.rules z60_hdparm.rules
ser@DeLinux:~$

В ASP Linux тот же каталог содержал следующее:
root@DeLinux:~/Документы/Old_ASPL-14/etc/udev# ls ./rules.d/
10-console.rules 64-md-raid.rules
10-libifp.rules 70-mdadm.rules
40-alsa.rules 70-persistent-cd.rules
40-multipath.rules 70-persistent-net.rules
40-redhat.rules 75-cd-aliases-generator.rules
50-udev-default.rules 75-persistent-net-generator.rules
60-cdrom_id.rules 80-drivers.rules
60-libmtp.rules 85-pcscd_ccid.rules
60-libnjb.rules 85-pcscd_egate.rules
60-net.rules 88-clock.rules
60-pcmcia.rules 90-alsa.rules
60-persistent-input.rules 90-hal.rules
60-persistent-storage.rules 91-drm-modeset.rules
60-persistent-storage-tape.rules 95-pam-console.rules
60-wacom.rules 95-udev-late.rules
61-persistent-storage-edd.rules 97-bluetooth.rules
64-device-mapper.rules kino.rules
root@DeLinux:~/Документы/Old_ASPL-14/etc/udev#

В файле 50-udev-default.rules содержались правила для джоей, в т.ч. создание сим-линков и выставление прав чтения.

Вопрос: По Debian-ски ли будет, если я просто копирну этот файл и поправлю его руками там где надо, либо это надо/можно как-то через ДебКонф и иже с ним правильнее сделать.

ps: Не исключаю, что при Инсталяции (это отдельная песТня об определении-включении оборудования) я мог ответить что-то типа "не заморачивайся" на окошке с обнаруженным джоем (пропустив шаг) с учетом нормального, в обычном случае, определения таких вещей на автомате. Но я же не думал, что это отразится на то, что даже рулесы для определение девайсов не будут поставлены Инсталом (ХХ-udev-default.rules то нет вообще). А этот файл нужен для кармы ? :[

#319044

Лучше было установить Debian Wheezy, т.к. Squeeze уже устарел.
Здесь у меня джойстика нет, но недавно на другом компьютере
с более новой Debian-based системой ничего править не пришлось,
там были и /dev/hidraw# и /dev/input/js0.
Вообще его драйвер есть в системе?
Введите команду

text
 find /lib/modules/`uname -r` -name joydev.ko

если есть, ответ его покажет.

Пётр.

#319104
Peter написал:
Лучше было установить Debian Wheezy, т.к. Squeeze уже устарел.

Он вроде как еще не стабильный :) И обещали его выпустить только завтра...
Вот выпустят буду искать на торентах где скачать его 1-ый ДВД.
Да и вроде как с одного на другой можно будет и без ДВД перейти, чего систему по новой настраивать-то под себя...

Peter написал:
Здесь у меня джойстика нет, но недавно на другом компьютере
с более новой Debian-based системой ничего править не пришлось,
там были и /dev/hidraw# и /dev/input/js0.
Вообще его драйвер есть в системе?
Введите команду
text
 find /lib/modules/`uname -r` -name joydev.ko

если есть, ответ его покажет.

Пётр.

Модуль есть, сообщений нет:

ser@DeLinux:~$ find /lib/modules/`uname -r` -name joydev.ko
/lib/modules/2.6.32-5-amd64/kernel/drivers/input/joydev.ko
ser@DeLinux:~$
Из-под рута тоже самое (если интересно).

А вот тут они видны, но с правами только для рута и т.д. (я так понял, что это ядро прописало опознанные usb-устройства и только)
root@DeLinux:~# ls /dev/input/by-id/
usb-Jess_Tech_Dual_Analog_Rumble_Pad-event-joystick
usb-Mega_World_USB_Game_Controllers-event-joystick
root@DeLinux:~#

но это только ссылки на
/dev/input/-event2 и
/dev/input/-event3

Вопрос: может через dpkg -configure UDEV правильнее сделать ? Не угроблю систему ?

#319140

блин тема для меня старая уже но пробнуть можно.
покажите вывод

text
lsusb

и

text
 ls /dev/input/by-id/
#319148
Kettler написал:
блин тема для меня старая уже но пробнуть можно.
покажите вывод
text
lsusb

root@DeLinux:/etc/rcS.d# lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 003: ID 07b5:0317 Mega World International, Ltd
Bus 007 Device 002: ID 04e1:0201 Iiyama North America, Inc. Monitor Hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 0f30:0110 Jess Technology Co., Ltd Dual Analog Rumble Pad
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 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 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@DeLinux:/etc/rcS.d#

Kettler написал:
и
text
 ls /dev/input/by-id/

Этот вывод на консоль есть в предыдущем посте... :)

Похоже, что не столько в конфигурации UDEV дела, а в том как определяют модули ядра оборудование и как они запускаются. Вот думаю, начать всякие модпробе.конфы штудировать и запуски в rc[S|0-9].d...
Хотя может не в ту сторону копаю ямку, и все лежит где-то на поверхности, а я не вижу ? :)

#319151

ну тогда

text
cat /dev/input/by-id/usb-Jess_Tech_Dual_Analog_Rumble_Pad-event-joystick

и нажимать джойстик должно что нибдудь выдать
или

text
cat /dev/input/by-id/ usb-Mega_World_USB_Game_Controllers-event-joystick

и тоже нажимать джойстик

#319154

и по ходу данная проблема у многих usb девайсов. usb Гаджеты определяються как клава и мышь.

#319159
Kettler написал:
ну тогда
text
cat /dev/input/by-id/usb-Jess_Tech_Dual_Analog_Rumble_Pad-event-joystick

и нажимать джойстик должно что нибдудь выдать

Ты знал, ты знал ... :)
Вывод идет на консоль постоянно (очевидно постоянная последовательная передача параметров типа х,у стиков и кнопок), при этом вывод есть и если выдавать команду от пользователя, а не от рута.
Попробую создать линки на них... отпишусь если сработает.

#319162

Ещё вспомнил, что на компьютере с джойстиком я не стал редактировать правило udev,
а просто вставил в /etc/rc.local/ команды такого вида:

text

if [ -c /dev/hidrawn ] ; then
/bin/chmod 666 /dev/hidrawn
fi

где n у меня 0<=n<=3

Пётр.

#319172
Prokurator написал:
Попробую создать линки на них... отпишусь если сработает.

Линк на events2 или на линк usb-тра-ля-джой в виде /dev/input/js0 сработала после загрузки модуля joydev.ko
Поправка: линки сработали не правильно, а вот после загрузки модуля ядра все линки преобразованы им в нормальные (не ссылки) и все программы джойстики увидели. Вывод надо запускать при необходимости модуль, а линки он сам создаст...

Остается простой вопрос, где это прописать для автоопределения системой при подключении джойстика (или после insmod <модуль> он сам поймет, что это надо делать постоянно - не верю я в это). Где и какие файлы поправить? или ДебКонф <что> или dpkg (apt) -configure <что> ?

#319176
Peter написал:
Ещё вспомнил, что на компьютере с джойстиком я не стал редактировать правило udev,
а просто вставил в /etc/rc.local/ команды такого вида:
text

if [ -c /dev/hidrawn ] ; then
/bin/chmod 666 /dev/hidrawn
fi

где n у меня 0<=n<=3

Пётр.

Действительно у меня рс.локал пустой оказался.
Спасибо Петр за подсказку. Попробую и твой вариант. Но вроде как права должны быть не 666, а 664. И еще не понял переменная "n" у тебя в теле условия отсутствует.

#319348
Prokurator написал:
[quote=Prokurator]Попробую создать линки на них... отпишусь если сработает.

Линк на events2 или на линк usb-тра-ля-джой в виде /dev/input/js0 сработала после загрузки модуля joydev.ko
Поправка: линки сработали не правильно, а вот после загрузки модуля ядра все линки преобразованы им в нормальные (не ссылки) и все программы джойстики увидели. Вывод надо запускать при необходимости модуль, а линки он сам создаст...

Остается простой вопрос, где это прописать для автоопределения системой при подключении джойстика (или после insmod <модуль> он сам поймет, что это надо делать постоянно - не верю я в это). Где и какие файлы поправить? или ДебКонф <что> или dpkg (apt) -configure <что> ?[/quote]
Для загрузки модулей сюды /etc/modprobe.d/ и там примеры modprobe

#319349
Prokurator написал:
[quote=Peter]Ещё вспомнил, что на компьютере с джойстиком я не стал редактировать правило udev,
а просто вставил в /etc/rc.local/ команды такого вида:
text

if [ -c /dev/hidrawn ] ; then
/bin/chmod 666 /dev/hidrawn
fi

где n у меня 0<=n<=3

Пётр.

Действительно у меня рс.локал пустой оказался.
Спасибо Петр за подсказку. Попробую и твой вариант. Но вроде как права должны быть не 666, а 664. И еще не понял переменная "n" у тебя в теле условия отсутствует.[/quote]
Думаю права тут не причём если вы состоите в правильной группе :)

Не по теме а так =). Сижу хочу послушать радио нету (=
alsamixer ток hdmi а ещё голова трещит с бодуна и зла не хватает.
Пробую и так и сяк не идёт хоть убей, и тут моча ёпти надо проверить в каких группах и тут для себя на удивление не состою в группе audio.
Добавил перезашол и всё пучком.

#320083

Перешел на Debian - 7. Проблема решилась сама собой. Джойстики системой увиделись... :)

Войдите или зарегистрируйтесь, чтобы ответить.