关于usb_modeswitch
关于usb_modeswitch
背景
在Window上,我们在使用一些外接的USB设备(比如USB网卡,扩展坞等等)时,第一次插上去,会识别成一个存储设备或是模拟CD-ROM,打开该设备,里面是自带的该设备的Windows驱动程序,安装完驱动后,该设备就可以正常使用该设备的功能了。
在Linux系统中,这类设备同样最初可能被识别为大容量存储设备(所以有时候会觉得莫名其妙?插上去的明明不是一个U盘或者存储卡,还以为是个复合设备)。为了使其以正确的模式工作(例如,作为无线网卡或调制解调器),需要使用 usb_modeswitch
命令来改变其工作模式。
usb_modeswitch
usb_modeswitch
是一个Linux下用于控制具有多种模式的USB设备的模式切换工具。它主要用于那些在首次连接到电脑时被识别为存储设备(如U盘),但实际上具有其他功能(如USB调制解调器)的USB设备。这些设备通常自带Windows驱动程序,存储在设备的模拟CD-ROM中。
使用这个命令时,通常需要指定设备的供应商(vendor)和产品(product)代码。例如,对于某些USB无线网卡,可以使用如下命令:
sudo usb_modeswitch -KW -v 0bda -p 1a2b
说明: 这里的
-v 0bda
和-p 1a2b
分别代表网卡的供应商ID和产品ID,即USB设备的 PID 和 VID,这些信息可以通过lsusb
命令查询得到。
usb_modeswitch
工具通常是自动使用的,通过 udev
事件和规则来触发,无需用户手动操作即可完成模式切换。但也可以作为命令行工具手动运行,尤其是在处理未知设备时。
切换为正常工作模式后,为了让该设备正常工作,可能还需要处理相应的Linux驱动程序等。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DD'Notes!
评论