usb_modeswitch¶
usb_modeswitch
是一种用于控制 'multi-mode' USB设备的模式切换工具:
许多 USB 设备(主要是高速 WAN 调制解调器)都具有板载 Windows 驱动程序: 第一次插入时,它们就像闪存一样,并从那里开始安装驱动程
安装后(以及每次连续插入),驱动程序会在内部切换模式,存储设备消失(在大多数情况下),并出现一个新设备(如 USB 调制解调器)
开源社区通过USB嗅探器(USB sniffing programs)和 libusb
来解析Windows驱动程序通讯,隔离触发模式切换的命令和操作,最后实现了在Linux和BSD系统重放相同序列。
usb_modeswitch
通过在配置文件中获得参数完成所有初始化和通讯工作,然后在 libusb
帮助下实现动作。一般情况下, usb_modswitch
通过 udev
安装¶
在Gentoo上安装:
emerge --ask usb_modeswitch
使用¶
usb_modeswith
被设计成开箱即用,只要插入设备,就会让 udev 自动工作。不过,如果你的设备不是已知设备,则需要使用 lsusb
获取设备的生产商(vender)和铲平(product) ID,运行相应命令或创建配置文件后运行命令。
在 Gentoo Linux在MacBook Air配置Wifi 我使用了以下命令将 BrosTrend 的 AX5L
从存储模式切换到WLAN模式 :
usb_modeswitch -KQ -v a69c -p 5721
配置¶
usb_modeswitch
最佳使用方式是结合 udev ,通过事件驱动来采取对应的切换动作。对于我所使用的 OpenRC 也有对应的 OpenRC udev 来配置当 Gentoo Linux在MacBook Air配置Wifi USB wlan设备插入时,自动切换存储模式和WLAN模式。
How to automate usb_modeswitch? 提供了一个案例可以借鉴,我修订成适合 AX5L
aic8800 配置