Ubuntu 重启后不绑定 USB 设备

Ubuntu 重启后不绑定 USB 设备

我的问题是,当我重新启动计算机时,Ubuntu 识别我的无线键盘和鼠标 USB 加密狗,但它无法识别我的 USB 无线网络适配器。以下是我的lsusb结果:

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 002: ID 046d:c52e Logitech, Inc. MK260 Wireless Combo Receiver
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

无法识别的设备是:

"Bus 001 Device 003: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter"

只要我手动拔下它并重新插上,我就能在我的 USB 设备列表中看到它,而且它工作正常,但我每次重启电脑时都无法做到这一点。我正在寻找一种方法来解决这个问题,或者至少在我的 .bashrc 中放一些东西来拔下这个特定的设备并重新插上,这样它就可以工作了。或者也许重新启动那个 USB 端口来强制它再次检查。任何解决方案都是巨大的帮助。

我知道有很多与此类似的问题,但我问这个问题是因为它们对我都不起作用。

答案1

我有一个类似的 wifi usb 加密狗,遇到了同样的问题。我在网上搜索了一个可行的解决方案很长时间。但我找到了一个。后来,在我交换了 usb 插头后,它不再工作了。为了重现我的解决方案,我又花了几个小时寻找。就这样,我找到了这个问题。我的解决方案分步如下:

  1. ls /sys/bus/usb/drivers/
    例如列出:hub r8712u uas usb usbfs usb-storage
    选择所需的 USB 设备的驱动程序r8712u

  2. ls /sys/bus/usb/drivers/r8712u
    例如,列出:1-2.2:1.0 bind module new_id remove_id uevent unbind
    第一个条目1-2.2:1.0是 usb 设备的 id。只要 usb 设备连接到同一个 usb 端口,此 id 就应该有效。

  3. 在登录或启动时断开并重新连接 USB 端口。就我而言,我需要延迟 3 秒。因此,例如调用:
    sudo nano /etc/rc.local
    之前exit 0插入以下 3 行。替换1-2.2:1.0r8712u适用。

    sleep 3
    echo '1-2.2:1.0' > /sys/bus/usb/drivers/r8712u/unbind
    echo '1-2.2:1.0' > /sys/bus/usb/drivers/r8712u/bind
    

    之后/etc/rc.local应该是这样的

    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    
    sleep 3
    echo '1-2.2:1.0' > /sys/bus/usb/drivers/r8712u/unbind
    echo '1-2.2:1.0' > /sys/bus/usb/drivers/r8712u/bind
    exit 0
    
  4. 如果需要,可以使用以下脚本
    sudo chmod ugo+x /etc/rc.local

相关内容