自动对 Wifi USB 使用 usb_modeswitch

自动对 Wifi USB 使用 usb_modeswitch

我最近购买了一个包含 Realtek rtl8811CU 芯片组的 Wifi Dongle。我使用的是 Ubuntu 18.04 LTS。

幸运的是,找到这个后Github 仓库,我可以编译它并安装驱动程序,没有任何问题。

但是,每次我连接加密狗时,它都会被检测为磁盘,因此我需要运行 usb_modeswitch 才能使其工作:

$ lsusb
 [...]
 Bus 001 Device 013: ID 0bda:1a2b Realtek Semiconductor Corp. 
$ sudo usb_modeswitch -KW -v 0bda -p 1a2b
$ lsusb
 [...]
 Bus 001 Device 014: ID 0bda:c811 Realtek Semiconductor Corp.

设备 ID 已发生改变,现在我可以正确使用我的 Wifi 加密狗了。

我试图将此条目添加到位于 /lib/udev/rules.d/40-usb_modeswitch.rules 的 udev 规则中,以便在每次检测到设备时运行该命令:

 # Realtek 8211CU Wifi AC USB
 ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="usb_modeswitch '/%k'"

但当我重新连接时,什么也没有发生。

我检查过,也许您需要一项服务来执行此操作,但似乎无法激活。

$ systemctl --all | grep usb_modeswitch[email protected]    loaded    failed   failed    USB_ModeSwitch_1-4.1                                                            
system-usb_modeswitch.slice       loaded    active   active    system-usb_modeswitch.slice    

$ systemctl status [email protected][email protected] - USB_ModeSwitch_1-4.1
Loaded: loaded (/lib/systemd/system/[email protected]; static; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2018-10-04 11:49:17 CDT; 2min 5s ago
    Docs: man:usb_modeswitch_dispatcher(1)
Process: 32216 ExecStart=/usr/sbin/usb_modeswitch_dispatcher --switch-mode 1-4.1 (code=exited, status=1/FAILURE)
Main PID: 32216 (code=exited, status=1/FAILURE)

oct 04 11:49:17  systemd[1]: Starting USB_ModeSwitch_1-4.1...
oct 04 11:49:17  usb_modeswitch_dispatcher[32216]: Could not read attribute: No such file or directory
oct 04 11:49:17  usb_modeswitch_dispatcher[32216]: Could not read attribute: No such file or directory
oct 04 11:49:17  systemd[1]: [email protected]: Main process exited, code=exited, status=1/FAILURE
oct 04 11:49:17  systemd[1]: [email protected]: Failed with result 'exit-code'.
oct 04 11:49:17  systemd[1]: Failed to start USB_ModeSwitch_1-4.1.

Ubuntu 包装器似乎有问题,有人知道我该如何进一步调查吗?我对 systemd 和 udev 规则还不熟悉,所以我不太确定在哪里可以找到更多日志或调试功能。

答案1

我找到了解决方法。我修改了文件,/lib/udev/rules.d/40-usb_modeswitch.rules并在行前添加了LABEL="modeswitch_rules_end"以下内容:

# Realtek 8211CU Wifi AC USB
ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="/usr/sbin/usb_modeswitch -K -v 0bda -p 1a2b"

此后,每次我连接 wifi 适配器时,磁盘都不会出现,并且会自动检测到 Wifi。也许这不是最干净的方法,但它确实有效。

答案2

您是否尝试过未安装的 live usb 来尝试下载的 Ubuntu 是否有问题?我建议您尝试 XUbuntu 18.04 live 版本以确认 wifi 是否在您的笔记本电脑中工作,您可以从此处下载并尝试它并告诉我们它是否有效或仍然无法检测到您的加密狗,我正在使用 XUbuntu 18.04,它识别我的加密狗 usb,尽管屏幕上出现两个 wifi 图标(1 个用于加密狗 usb,另一个用于我的其他默认 wifi),但它对我有用:

https://xubuntu.org/download

相关内容