如何在 Linux 中禁用 hiddev96(或告诉它忽略特定设备)

如何在 Linux 中禁用 hiddev96(或告诉它忽略特定设备)

我在 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 

答案1

hiddev96 是什么,它是一个设备节点名吗,如 ​​/dev/hiddev96?

您可以通过 udev 配置来配置将哪个设备名称分配给哪个设备,查看文件:

/etc/udev/rules.d/50-udev.rules

我没有针对您的具体情况进行配置,但我有一个条目说明将设备条目符号链接到特定的条目以满足我的需求,

# 东芝 K530i
子系统=="tty", 内核=="ttyACM2", SYSFS{idProduct}=="d079", SYSFS{idVendor}=="0fce", SYMLINK="k530", MODE="666"

您可以从中看到如何通过产品 ID 和供应商 ID 匹配设备。

答案2

你需要做的就是解除司机绑定然后告诉 VMWare 去抓取它。

相关内容