[SOLVED] USB IR пульт ДУ

Есть девайс: приемник (на одном конце USB, на другом - какой-то IR ресивер) + пульт ДУ. На все это вместе можно глянуть тут: http://www.pcpult.com.ua/
Есть Windows XP и SP3 Windows Vista SP1, в которых этот девайс работает (как и заявлено "разработчиком") без всяких драйверов (как HID-девайс).
Есть Pardus Linux (kernel 2.6.25), в котором этот девайс тоже работает (_без_ LIRC), как как HID-девайс.
Есть Gentoo Linux (kernel 2.6.29-gentoo-r5), в котором этот девайс не работает.
В обоих Линуксах девайс определяется как

Bus 004 Device 037: ID 0419:0001 Samsung Info. Systems America, Inc. IrDA Remote Controller

В Пардусе:

minute ch00k # cat /proc/bus/input/devices
...
...
...
I: Bus=0003 Vendor=0419 Product=0001 Version=0100
N: Name="usb pult usb pult"
P: Phys=usb-0000:00:0b.0-5/input0
S: Sysfs=/devices/pci0000:00/0000:00:0b.0/usb2/2-5/2-5:1.0/input/input21
U: Uniq=
H: Handlers=kbd mouse2 event9
B: EV=120017
B: KEY=7001f 0 0 0 c000 e09effdf 1cfffff ffffffff fffffffe
B: REL=103
B: MSC=10
B: LED=1f

В Генту его в /proc/bus/input/devices нет вообще. Вместо этого для девайса создается файл /dev/hiddev0 (причем если сделать cat этого файла. то при нажати кнопок на пульте вывод в консоли _есть_. Но тем не менее кнопки не произвоядят никакого эффекта (например красная кнопка должна работать как Alt+F4, но в Генту не работает).

tail -f /var/log/messages в момент подключения девайса в USB на Генту:

Jun  6 20:51:42 giant [ 9626.666629] usb usb2: usb resume
Jun  6 20:51:42 giant [ 9626.666633] ehci_hcd 0000:00:04.1: resume root hub
Jun  6 20:51:42 giant [ 9626.696026] ehci_hcd 0000:00:04.1: port 5 low speed --> companion
Jun  6 20:51:42 giant [ 9626.696050] hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0020
Jun  6 20:51:42 giant [ 9626.696056] ohci_hcd 0000:00:04.0: GetStatus roothub.portstatus [4] = 0x00010301 CSC LSDA PPS CCS
Jun  6 20:51:42 giant [ 9626.696061] hub 4-0:1.0: port 5, status 0301, change 0001, 1.5 Mb/s
Jun  6 20:51:42 giant [ 9626.787020] ehci_hcd 0000:00:04.1: GetStatus port 5 status 003402 POWER OWNER sig=k CSC
Jun  6 20:51:42 giant [ 9626.798016] hub 2-0:1.0: hub_resume
Jun  6 20:51:42 giant [ 9626.800031] hub 4-0:1.0: debounce: port 5: total 100ms stable 100ms status 0x301
Jun  6 20:51:42 giant [ 9626.906396] ohci_hcd 0000:00:04.0: GetStatus roothub.portstatus [4] = 0x00100303 PRSC LSDA PPS PES CCS
Jun  6 20:51:42 giant [ 9626.957405] usb 4-5: new low speed USB device using ohci_hcd and address 39
Jun  6 20:51:42 giant [ 9627.067032] ohci_hcd 0000:00:04.0: GetStatus roothub.portstatus [4] = 0x00100303 PRSC LSDA PPS PES CCS
Jun  6 20:51:42 giant [ 9627.146986] usb 4-5: skipped 1 descriptor after interface
Jun  6 20:51:42 giant [ 9627.151001] usb 4-5: default language 0x0409
Jun  6 20:51:42 giant [ 9627.161000] usb 4-5: New USB device found, idVendor=0419, idProduct=0001
Jun  6 20:51:42 giant [ 9627.161003] usb 4-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Jun  6 20:51:42 giant [ 9627.161005] usb 4-5: Product: usb pult
Jun  6 20:51:42 giant [ 9627.161006] usb 4-5: Manufacturer: usb pult
Jun  6 20:51:42 giant [ 9627.161053] usb 4-5: uevent
Jun  6 20:51:42 giant [ 9627.161076] usb 4-5: usb_probe_device
Jun  6 20:51:42 giant [ 9627.161083] usb 4-5: configuration #1 chosen from 1 choice
Jun  6 20:51:42 giant [ 9627.181983] usb 4-5: adding 4-5:1.0 (config #1, interface 0)
Jun  6 20:51:42 giant [ 9627.200000] usb 4-5:1.0: uevent
Jun  6 20:51:42 giant [ 9627.200032] usbhid 4-5:1.0: usb_probe_interface
Jun  6 20:51:42 giant [ 9627.200034] usbhid 4-5:1.0: usb_probe_interface - got id
Jun  6 20:51:42 giant [ 9627.227171] drivers/usb/core/file.c: looking for a minor, starting at 96
Jun  6 20:51:42 giant [ 9627.227240] samsung 0003:0419:0001.001C: hiddev96,hidraw1: USB HID v1.00 Keyboard [usb pult usb pult] on usb-0000:00:04.0-5/input0
Jun  6 20:51:42 giant [ 9627.227269] drivers/usb/core/inode.c: creating file '039'
Jun  6 20:51:42 giant [ 9627.227324] hub 2-0:1.0: state 7 ports 6 chg 0000 evt 0000
Jun  6 20:51:42 giant [ 9627.227727] hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0020
Jun  6 20:51:45 giant [ 9629.695030] hub 2-0:1.0: hub_suspend
Jun  6 20:51:45 giant [ 9629.695037] usb usb2: bus auto-suspend
Jun  6 20:51:45 giant [ 9629.695039] ehci_hcd 0000:00:04.1: suspend root hub

Аналогично, tail -f /var/log/messages в момент подключения девайса в USB на Пардусе:

Jun  6 20:57:05 localhost klogd: usb 2-5: new low speed USB device using ohci_hcd and address 18
Jun  6 20:57:05 localhost klogd: usb 2-5: configuration #1 chosen from 1 choice
Jun  6 20:57:05 localhost klogd: input: usb pult usb pult as /devices/pci0000:00/0000:00:0b.0/usb2/2-5/2-5:1.0/input/input22
Jun  6 20:57:05 localhost klogd: input,hidraw1: USB HID v1.00 Keyboard [usb pult usb pult] on usb-0000:00:0b.0-5
Jun  6 20:57:05 localhost klogd: usb 2-5: New USB device found, idVendor=0419, idProduct=0001
Jun  6 20:57:05 localhost klogd: usb 2-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Jun  6 20:57:05 localhost klogd: usb 2-5: Product: usb pult
Jun  6 20:57:05 localhost klogd: usb 2-5: Manufacturer: usb pult

На пардусе девайс работает на /dev/input/by-id/usb-usb_pult_usb_pult-event-kbd (видно вывод в консоли при cat этого файла и нажатии кнопок).

lshal на Генту:

udi = '/org/freedesktop/Hal/devices/usb_device_419_1_noserial_if0_hiddev'
  hiddev.application_pages = {'Generic Desktop Page', 'Generic Desktop Page', 'Generic Desktop Page'} (string list)
  hiddev.device = '/dev/hiddev0'  (string)
  hiddev.product = 'usb pult usb pult'  (string)
  info.capabilities = {'hiddev'} (string list)
  info.category = 'hiddev'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_419_1_noserial_if0'  (string)
  info.product = 'usb pult usb pult'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_419_1_noserial_if0_hiddev'  (string)
  linux.device_file = '/dev/hiddev0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:04.0/usb4/4-5/4-5:1.0/usb/hiddev0'  (string)

Если в ядре поставить # CONFIG_USB_HIDDEV is not set, то девайс работает на файле /dev/hidraw0 (или /dev/hidraw1, не помню точно), при чем опять таки вывод в консоли при cat этого файла есть).
Далее я отключил в ядре сделал следующее:

giant linux # cat .config | grep HIDRAW
# CONFIG_HIDRAW is not set
giant linux # cat .config | grep HIDDEV
# CONFIG_USB_HIDDEV is not set
giant linux #

При этом tail -f /var/log/messages в момент подключения девайса в USB:

Jun  7 02:11:41 giant [ 1612.761570] usb usb2: usb resume
Jun  7 02:11:41 giant [ 1612.761574] ehci_hcd 0000:00:04.1: resume root hub
Jun  7 02:11:41 giant [ 1612.791027] ehci_hcd 0000:00:04.1: port 5 low speed --> companion
Jun  7 02:11:41 giant [ 1612.791050] hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0020
Jun  7 02:11:41 giant [ 1612.791057] ohci_hcd 0000:00:04.0: GetStatus roothub.portstatus [4] = 0x00010301 CSC LSDA PPS CCS
Jun  7 02:11:41 giant [ 1612.791061] hub 4-0:1.0: port 5, status 0301, change 0001, 1.5 Mb/s
Jun  7 02:11:41 giant [ 1612.882062] ehci_hcd 0000:00:04.1: GetStatus port 5 status 003402 POWER OWNER sig=k CSC
Jun  7 02:11:41 giant [ 1612.893026] hub 2-0:1.0: hub_resume
Jun  7 02:11:41 giant [ 1612.895404] hub 4-0:1.0: debounce: port 5: total 100ms stable 100ms status 0x301
Jun  7 02:11:41 giant [ 1613.001038] ohci_hcd 0000:00:04.0: GetStatus roothub.portstatus [4] = 0x00100303 PRSC LSDA PPS PES CCS
Jun  7 02:11:41 giant [ 1613.052035] usb 4-5: new low speed USB device using ohci_hcd and address 10
Jun  7 02:11:41 giant [ 1613.162389] ohci_hcd 0000:00:04.0: GetStatus roothub.portstatus [4] = 0x00100303 PRSC LSDA PPS PES CCS
Jun  7 02:11:41 giant [ 1613.241746] usb 4-5: skipped 1 descriptor after interface
Jun  7 02:11:41 giant [ 1613.245760] usb 4-5: default language 0x0409
Jun  7 02:11:41 giant [ 1613.255745] usb 4-5: New USB device found, idVendor=0419, idProduct=0001
Jun  7 02:11:41 giant [ 1613.255748] usb 4-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Jun  7 02:11:41 giant [ 1613.255750] usb 4-5: Product: usb pult
Jun  7 02:11:41 giant [ 1613.255751] usb 4-5: Manufacturer: usb pult
Jun  7 02:11:41 giant [ 1613.255798] usb 4-5: uevent
Jun  7 02:11:41 giant [ 1613.255818] usb 4-5: usb_probe_device
Jun  7 02:11:41 giant [ 1613.255820] usb 4-5: configuration #1 chosen from 1 choice
Jun  7 02:11:41 giant [ 1613.276742] usb 4-5: adding 4-5:1.0 (config #1, interface 0)
Jun  7 02:11:42 giant [ 1613.294758] usb 4-5:1.0: uevent
Jun  7 02:11:42 giant [ 1613.294782] usbhid 4-5:1.0: usb_probe_interface
Jun  7 02:11:42 giant [ 1613.294783] usbhid 4-5:1.0: usb_probe_interface - got id
Jun  7 02:11:42 giant [ 1613.321914] samsung 0003:0419:0001.0007: claimed by neither input, hiddev nor hidraw
Jun  7 02:11:42 giant [ 1613.322747] samsung 0003:0419:0001.0007: hw start failed
Jun  7 02:11:42 giant [ 1613.322902] drivers/usb/core/inode.c: creating file '010'
Jun  7 02:11:42 giant [ 1613.322928] hub 2-0:1.0: state 7 ports 6 chg 0000 evt 0000
Jun  7 02:11:42 giant [ 1613.322932] hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0020
Jun  7 02:11:44 giant [ 1615.695030] hub 2-0:1.0: hub_suspend
Jun  7 02:11:44 giant [ 1615.695037] usb usb2: bus auto-suspend
Jun  7 02:11:44 giant [ 1615.695039] ehci_hcd 0000:00:04.1: suspend root hub

Меня смущает строчка

Jun 7 02:11:42 giant [ 1613.321914] samsung 0003:0419:0001.0007: claimed by neither input, hiddev nor hidraw

Насколько я ее понял, девайс может работать либо как input, либо как hiddev, либо как hidraw. Так вот, если я отключил hiddev и hidraw, то как мне заставить девайс работать как input?
Кроме всего прочего, пробовал собирать ядро через genkernel all - девайс даже так не работает.
Еще нашел:
http://www.linux.org.ru/view-message.jsp?msgid=3190804
http://www.linux.org.ru/view-message.jsp?msgid=3412166
Говорят баг ядра, но что-то слабо в это верится.

Короче говоря, приветствуются ЛЮБЫЕ идеи, предложения и поделания по поводу того как заставить эту срань работать в Генту.

Спасибо заранее.

Да, кстати. Юзать LIRC не

Да, кстати. Юзать LIRC не предлагать. Девайс должен работать без него.

для начала попробуй xev

для начала попробуй xev

iNDiAnFLy написал(а):для

iNDiAnFLy написал(а):
для начала попробуй xev

Попробовал. Консоль молчит при нажатии кнопок.

покажи emerge -pv xorg-server

покажи emerge -pv xorg-server
PS: подумываю тоже себе такой взять

soullibra написал(а):покажи

soullibra написал(а):
покажи emerge -pv xorg-server
PS: подумываю тоже себе такой взять

По памяти могу сказать что собран он с INPUT_DEVICES=evdev, VIDEO_CARDS=nvidia, в USE есть hal и dbus. Чуть позже покажу точно.

Ch00k написал(а):soullibra

Ch00k написал(а):
soullibra написал(а):
покажи emerge -pv xorg-server
PS: подумываю тоже себе такой взять

По памяти могу сказать что собран он с INPUT_DEVICES=evdev, VIDEO_CARDS=nvidia, в USE есть hal и dbus. Чуть позже покажу точно.

giant ch00k # emerge -pv xorg-server

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] x11-base/xorg-server-1.5.3-r6  USE="hal nptl sdl xorg (-3dfx) -debug -dmx -ipv6 -kdrive -minimal -tslib" INPUT_DEVICES="evdev -acecad -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300 -elographics -fpit -hyperpen -jamstudio -joystick -keyboard -magellan -microtouch -mouse -mutouch -palmax -penmount -spaceorb -summa -synaptics -tek4957 -tslib -ur98 -virtualbox -vmmouse -void -wacom" VIDEO_CARDS="nvidia -apm -ark -ast -chips -cirrus -dummy -epson -fbdev -fglrx (-geode) -glint -i128 (-i740) (-impact) (-imstt) -intel -mach64 -mga -neomagic (-newport) -nv -r128 -radeon -radeonhd -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l (-vermilion) -vesa -via -virtualbox -vmware -voodoo (-xgi)" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB
giant ch00k #

если у тебя оно в системе

если у тебя оно в системе определяется как /dev/hiddev0 и cat видно нажатие кнопок, по попробуй для этого девайса прописать драйвер evdev

в /etc/hal/fdi/policy/???.fdi

...
<merge key="input.x11_driver" type="string">evdev</merge>
...

хотя ядро должно сначало определить, что это input-девайс... тоесть нужно смотреть в ядре все что связано с инпутами и юсби

soullibra написал(а):хотя

soullibra написал(а):
хотя ядро должно сначало определить, что это input-девайс... тоесть нужно смотреть в ядре все что связано с инпутами и юсби

Вот! Истина! Но мы вернулись в начальную точку. Собственно, в этом-то и проблема. Я уже в ядре все пересмотрел - не могу найти... Вот конфиг, на всякий случай: http://pastebin.com/f118ad2a2

Никаких мыслей?

Никаких мыслей?

Есть. копируем модули, идём в

Есть.
копируем модули,
идём в груб, пишем что то вроде
/кернел линух-пардус роот=/гентоо-роот етц..
бутимся

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

slepnoga

slepnoga написал(а):
Есть.
копируем модули,
идём в груб, пишем что то вроде
/кернел линух-пардус роот=/гентоо-роот етц..
бутимся

Чего...? Во-первых обьясните смысл всего этого, во-вторых напишите нормальным языком пожалуйста.

Загрузите юзерленд Гентоо на

Загрузите юзерленд Гентоо на ядре от Пардуса , ваш деваис заработает ?

П.С mini ~ # cd /usr/src/linux
mini linux # grep -R "0419:000" ./*
mini linux #

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

дурацкий вопрос

дурацкий вопрос непосвященного: а в Pardus ядро ванильное? или с патчами? если с патчами - курить в сторону патчей. предыдущий совет тоже хорош - поможет понять, где проблема - в ядре или в модулях

Нейтральность - высшее достижение сознания!

Это все ядро. Только что

Это все ядро. Только что собрал gentoo-sources-2.6.25-r9 (подсунул ему конфиг из моего 2.6.31-r4), ребутнулся с 2.6.25-r9. Мой пульт появился в /proc/bus/input/devices. Видно все-таки из новых ядер убрали поддержку чего-то, что было нужно для работы этого девайса. Но чего...?

а может эта поддержка кудато

а может эта поддержка кудато переехала, или названа по-другому.

Ну и как мне это узнать? Это

Ну и как мне это узнать? Это ж иголка в стогу сена.
С другой стороны, я тут вот что подумал. Раз этот девайс все-таки отзывается на /dev/hiddev и /dev/hidraw, то может быть его удастся настроить хотя бы через LIRC?

Заработал все-таки. Фикс

Заработал все-таки. Фикс здесь: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/326986

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".