Есть девайс: приемник (на одном конце 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