У меня проблемы с системой CentOS 5.0 при использовании определенного USB-устройства. Проблема в том, что устройство рекламирует себя как HID-устройство, и Linux с радостью пытаться чтобы оказать ему поддержку:
В / ver / log / messages я вижу строку, которая гласит: hiddev96: USB HID 1.11 Device [KXX USB PRO] on usb-0000:00:1d.0-1
Мой вопрос сводится к следующему: есть ли способ запретить Linux использовать hiddev96 для этого устройства в частности? Если да, то как? Если нет, то каковы мои варианты - могу ли я полностью выключить hiddev96?
ОБНОВИТЬ
Я, наверное, должен был быть более конкретным в том, что происходит. Машина работает под управлением Centos 5.0, и, кроме того, я использую рабочую станцию VMWare с Windows XP - именно там устройство USB должно работать. Все работает нормально для других USB-устройств (т.е. VMWare успешно подключает USB-устройство к гостевой ОС, и ОС может его использовать, но для этого конкретного устройства VMWare подключает его к гостевой ОС, но ОС не может читать / записывать на него) ) Каждая попытка блокирует приложение, которое пытается связаться с устройством. У меня есть основания полагать, что это связано с тем, что устройство является HID-устройством, и между хостом Linux и гостевой ОС Windows существует некоторая конкуренция при доступе к устройству.
Ниже приведен вывод modprobe -l|grep -i hid
по просьбе @Karolis:
# modprobe -l | grep -i hid
/lib/modules/2.6.18-53.1.14.el5/kernel/net/bluetooth/hidp/hidp.ko
/lib/modules/2.6.18-53.1.14.el5/kernel/drivers/usb/misc/phidgetservo.ko
/lib/modules/2.6.18-53.1.14.el5/kernel/drivers/usb/misc/phidgetkit.ko
А вот результат lsmod
# lsmod
Module Size Used by
udf 76997 1
vboxdrv 65696 0
autofs4 24517 2
hidp 23105 2
rfcomm 42457 0
l2cap 29633 10 hidp,rfcomm
tun 14657 0
vmnet 49980 16
vmblock 20512 3
vmmon 945236 0
sunrpc 144253 1
cpufreq_ondemand 10573 1
video 19269 0
sbs 18533 0
backlight 10049 0
i2c_ec 9025 1 sbs
button 10705 0
battery 13637 0
asus_acpi 19289 0
ac 9157 0
ipv6 251393 27
lp 15849 0
snd_hda_intel 24025 2
snd_hda_codec 202689 1 snd_hda_intel
snd_seq_dummy 7877 0
snd_seq_oss 32577 0
nvidia 7824032 31
snd_seq_midi_event 11073 1 snd_seq_oss
snd_seq 49713 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device 11725 3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss 42945 0
snd_mixer_oss 19009 1 snd_pcm_oss
snd_pcm 72133 3 snd_hda_intel,snd_hda_codec,snd_pcm_oss
joydev 13313 0
sg 36061 0
parport_pc 29157 1
snd_timer 24645 2 snd_seq,snd_pcm
snd 52421 13 snd_hda_intel,snd_hda_codec,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
ndiswrapper 170384 0
parport 37513 2 lp,parport_pc
hci_usb 20317 2
ide_cd 40033 1
tg3 104389 0
i2c_i801 11469 0
bluetooth 53925 8 hidp,rfcomm,l2cap,hci_usb
soundcore 11553 1 snd
cdrom 36705 1 ide_cd
serio_raw 10693 0
snd_page_alloc 14281 2 snd_hda_intel,snd_pcm
i2c_core 23745 3 i2c_ec,nvidia,i2c_i801
pcspkr 7105 0
dm_snapshot 20709 0
dm_zero 6209 0
dm_mirror 28741 0
dm_mod 58201 8 dm_snapshot,dm_zero,dm_mirror
ahci 23621 4
libata 115833 1 ahci
sd_mod 24897 5
scsi_mod 132685 3 sg,libata,sd_mod
ext3 123337 3
jbd 56553 1 ext3
ehci_hcd 32973 0
ohci_hcd 23261 0
uhci_hcd 25421 0
Все, что вам нужно сделать, это отвязать водителя прежде чем сказать VMWare захватить его.
Что такое hiddev96, это имя узла устройства, например / dev / hiddev96?
Вы можете настроить, какое имя устройства назначено какому устройству через конфигурацию udev, заглянув в файл:
/etc/udev/rules.d/50-udev.rules
Я не настраивал его для вашего конкретного случая, но у меня есть запись, в которой указывается, что запись устройства символически привязана к конкретному для моих нужд,
# SE K530i SUBSYSTEM=="tty", KERNEL=="ttyACM2", SYSFS{idProduct}=="d079", SYSFS{idVendor}=="0fce", SYMLINK="k530", MODE="666"
Вы можете увидеть, как сопоставить устройство по идентификатору продукта и идентификатору поставщика из этого.