[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 написал(а):для
Попробовал. Консоль молчит при нажатии кнопок.
покажи emerge -pv xorg-server
покажи emerge -pv xorg-server
PS: подумываю тоже себе такой взять
soullibra написал(а):покажи
По памяти могу сказать что собран он с INPUT_DEVICES=evdev, VIDEO_CARDS=nvidia, в USE есть hal и dbus. Чуть позже покажу точно.
Ch00k написал(а):soullibra
если у тебя оно в системе
если у тебя оно в системе определяется как /dev/hiddev0 и cat видно нажатие кнопок, по попробуй для этого девайса прописать драйвер evdev
в /etc/hal/fdi/policy/???.fdi
хотя ядро должно сначало определить, что это input-девайс... тоесть нужно смотреть в ядре все что связано с инпутами и юсби
soullibra написал(а):хотя
Вот! Истина! Но мы вернулись в начальную точку. Собственно, в этом-то и проблема. Я уже в ядре все пересмотрел - не могу найти... Вот конфиг, на всякий случай: 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
Чего...? Во-первых обьясните смысл всего этого, во-вторых напишите нормальным языком пожалуйста.
Загрузите юзерленд Гентоо на
Загрузите юзерленд Гентоо на ядре от Пардуса , ваш деваис заработает ?
П.С 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