Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: djkiller 03 Října 2010, 19:50:00
-
Zdravím,
potřeboval bych, aby HAL ignoroval jedno zařízení. Zkoušel jsem to nastavovat, ale stále neignoruje. Jaký je správný postup? Ignorování jsem nastavoval podle usb.product_id a usb.vendor_id:
usb.vendor_id = 1137 (0x471) (int)
usb.product_id = 8300 (0x206c) (int)
-
Co to je za zařízení?
Jaké Ubuntu?
-
Ubuntu 10.04. Zařízení je PHILIPS MCE USB IR Receiver- Spinel plusf0r ASUS. Je to infra přijímač dodávaný k desce, potřeboval bych, aby se v systému neregistroval jako input.
-
Zkoušels' to přes udev? Nevíš, pod čím se to zařízení v /dev objeví? (/dev/input/by-id/??)
-
Přes udev jsem to nezkoušel, kouknu jak na to. V /dev/input/by-id má dvě položky:
usb-PHILIPS_MCE_USB_IR_Receiver-_Spinel_plusf0r_ASUS-event-ir (mapováno na event5)
usb-PHILIPS_MCE_USB_IR_Receiver-_Spinel_plusf0r_ASUS-ir (mapováno na mouse2)
-
Kdyby se ti to (ne)podařilo, dej vědět, na internetu k tomuto není moc informací...
-
Tak zkusil jsem do udev přidat pravidlo:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", ATTRS{idProduct}=="206c", OPTIONS=="ignore_device"Po restartu je zařízení pořád v /dev/input, takže žádná změna.
-
Dobrá práce, problém ale je, že parametr ignore_device je ignorován :) (viz man udev).
Jediné řešení, které jsem já našel (ale nemám vyzkoušené pro input), je zkopírovat příslušný .rules soubor z /lib do /etc (aby měl přednost)sudo cp /lib/udev/rules.d/60-persistent-input.rules /etc/udev/rules.d
a to pravidlo dát nahoru tak, aby přeskočilo (pomocí GOTO) všechna ostatní až na konec, např.# přidáno uživatelem: ignore PHILIPS MCE USB IR Receiver- Spinel plusf0r ASUS
ATTRS{idVendor}=="0471", ATTRS{idProduct}=="206c", GOTO="persistent_input_end"
ACTION!="add|change", GOTO="persistent_input_end"
SUBSYSTEM!="input", GOTO="persistent_input_end"
KERNEL=="input[0-9]*", GOTO="persistent_input_end"
ENV{ID_INPUT}=="", IMPORT{program}="input_id %p"
SUBSYSTEMS=="usb", ENV{ID_BUS}=="", IMPORT{program}="usb_id --export %p"
...
Možná že to bude potřeba udělat pro více souborů, možná pro jiný soubor úplně, záleží na tom, co potřebuješ blokovat. Velmi v tom pomáhá debugovací příkaz udevadm test, který ukazuje, co by udev provedl s daným zařízením nanečisto (dry-run), např.sudo udevadm test /devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0/host8/target8:0:0/8:0:0:0/block/sdc(cestu k zařízení lze zjistit např. pomocí udevadm info -q path -n /dev/input/mouse apod.)