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

时间:2017-12-31 23:04:56

标签: linux audio driver

我目前正在与Linux下的有缺陷的硬件设备作斗争。该设备提供一系列接口端点。根据我的判断,如果我可以将其他几个端点的alternateSetting配置为其他模式,那么设备应该正常运行。此功能似乎位于usb_modeswitch工具中,但只要驱动程序绑定到设备,它就无法直接作用于设备。

通过usb-devices转储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-audio驱动程序的正确方法是什么?

修改

unbind命令后的/ 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命令仍然使用设备的完整路径生成No such device

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

0 个答案:

没有答案