Che*_*o R 2 udev usb-modeswitch systemd
我最近购买了一个包含 Realtek rtl8811CU 芯片组的 Wifi Dongle。我正在使用 Ubuntu 18.04 LTS。
\n\n幸运的是,在找到这个Github repo后,我可以毫无问题地编译它并安装驱动程序。
\n\n但是,每次连接加密狗时,都会被检测为磁盘,并且我需要运行 usb_modeswitch 才能使其工作:
\n\n$ lsusb\n [...]\n Bus 001 Device 013: ID 0bda:1a2b Realtek Semiconductor Corp. \n$ sudo usb_modeswitch -KW -v 0bda -p 1a2b\n$ lsusb\n [...]\n Bus 001 Device 014: ID 0bda:c811 Realtek Semiconductor Corp.\n
Run Code Online (Sandbox Code Playgroud)\n\n设备 ID 发生变化,现在我可以正确使用我的 Wifi dongle。
\n\n我尝试将此条目添加到位于 /lib/udev/rules.d/40-usb_modeswitch.rules 的 udev 规则中,据说每次检测到设备时都运行该命令:
\n\n # Realtek 8211CU Wifi AC USB\n ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="usb_modeswitch \'/%k\'"\n
Run Code Online (Sandbox Code Playgroud)\n\n但后来我重新连接,什么也没发生。
\n\n我已经检查过,也许您需要一项服务来执行此操作,但似乎无法激活。
\n\n$ systemctl --all | grep usb_modeswitch\n\xe2\x97\x8f usb_modeswitch@1-4.1.service loaded failed failed USB_ModeSwitch_1-4.1 \nsystem-usb_modeswitch.slice loaded active active system-usb_modeswitch.slice \n\n$ systemctl status usb_modeswitch@1-4.1.service\n\xe2\x97\x8f usb_modeswitch@1-4.1.service - USB_ModeSwitch_1-4.1\nLoaded: loaded (/lib/systemd/system/usb_modeswitch@.service; static; vendor preset: enabled)\nActive: failed (Result: exit-code) since Thu 2018-10-04 11:49:17 CDT; 2min 5s ago\n Docs: man:usb_modeswitch_dispatcher(1)\nProcess: 32216 ExecStart=/usr/sbin/usb_modeswitch_dispatcher --switch-mode 1-4.1 (code=exited, status=1/FAILURE)\nMain PID: 32216 (code=exited, status=1/FAILURE)\n\noct 04 11:49:17 systemd[1]: Starting USB_ModeSwitch_1-4.1...\noct 04 11:49:17 usb_modeswitch_dispatcher[32216]: Could not read attribute: No such file or directory\noct 04 11:49:17 usb_modeswitch_dispatcher[32216]: Could not read attribute: No such file or directory\noct 04 11:49:17 systemd[1]: usb_modeswitch@1-4.1.service: Main process exited, code=exited, status=1/FAILURE\noct 04 11:49:17 systemd[1]: usb_modeswitch@1-4.1.service: Failed with result \'exit-code\'.\noct 04 11:49:17 systemd[1]: Failed to start USB_ModeSwitch_1-4.1.\n
Run Code Online (Sandbox Code Playgroud)\n\nUbuntu 包装器似乎有问题,有谁知道我如何进一步调查?我对 systemd 和 udev 规则很陌生,所以我不太确定在哪里可以找到更多日志或调试功能。
\n我已经找到了方法。我修改了文件,/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"
Run Code Online (Sandbox Code Playgroud)
之后,每次我连接wifi适配器时,磁盘都不会出现,并且会自动检测到Wifi。也许这不是最干净的方法,但它确实有效。
归档时间: |
|
查看次数: |
11241 次 |
最近记录: |