解除绑定和重新绑定Linux设备驱动程序

解除绑定和重新绑定Linux设备驱动程序,linux,audio,driver,Linux,Audio,Driver,我目前正在与Linux下有缺陷的硬件设备作斗争。该设备提供一系列接口端点。从我所知道的情况来看,如果我可以配置这些端点的交替设置到它们的其他模式,那么设备应该能够正常工作。此功能似乎在usb_modeswitch工具中,但只要驱动程序绑定到设备,它就不能直接作用于设备 通过usb设备转储usb设备信息包含以下接口列表 C: #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot

我目前正在与Linux下有缺陷的硬件设备作斗争。该设备提供一系列接口端点。从我所知道的情况来看,如果我可以配置这些端点的交替设置到它们的其他模式,那么设备应该能够正常工作。此功能似乎在usb_modeswitch工具中,但只要驱动程序绑定到设备,它就不能直接作用于设备

通过
usb设备
转储usb设备信息包含以下接口列表

C:  #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:  If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 3 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:  If#= 4 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 5 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
通过导航到/sys/bus/usb/drivers/snd usb audio,我可以通过调用
echo-n“1-10:1.#>unbind
分别解除各种设备的绑定

C:  #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:  If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 3 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:  If#= 4 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=(none)
I:  If#= 5 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
但一旦我这样做,我希望能够调用
echo-n“1-10:1.#>bind
重新绑定驱动程序,但尝试此操作会返回错误

bash: echo: write error: No such device
首先,将此设备接口重新绑定到snd usb音频驱动程序的正确方法是什么

编辑

解除绑定命令后/sys/bus/usb/devices的内容

lrwxrwxrwx 1 root root 0 Jan  1 18:00 1-10 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-10
lrwxrwxrwx 1 root root 0 Jan  1 18:00 1-10:1.0 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0
lrwxrwxrwx 1 root root 0 Jan  1 18:00 1-10:1.1 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.1
lrwxrwxrwx 1 root root 0 Jan  1 18:00 1-10:1.2 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.2
lrwxrwxrwx 1 root root 0 Jan  1 18:00 1-10:1.3 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.3
lrwxrwxrwx 1 root root 0 Jan  1 18:00 1-10:1.4 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.4
lrwxrwxrwx 1 root root 0 Jan  1 18:00 1-10:1.5 -> ../../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.5
注意,bind命令仍然使用设备的完整路径作为

echo -n "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.4" > /sys/bus/usb/drivers/snd-usb-audio/bind
以及使用sysfs usb目录中的符号链接

echo -n "/sys/bus/usb/devices/1-10:1.4" > /sys/bus/usb/drivers/snd-usb-audio/bind

添加到您的问题输出中,即发出
ls-l/sys/bus/usb/devices
,同时确保您使用的是匹配的双引号对。。。在你的echo命令中,它丢失了你的双引号是正确的,我已经更新以反映这一点。其中包括与1-10设备相关的内容。嘿@Luke,你知道吗?我从来没有想过。我确信我的具体更高级别的问题是由一个单独的内核错误引起的,于是转而朝那个方向去挖掘。