重启后如何让我的 USB WiFi 正常工作?

重启后如何让我的 USB WiFi 正常工作?

我有一台装有 Win 7 和 Ubuntu 12.04 以及默认 GRUB 的台式电脑,另外,我插了一个 wifi USB 适配器,可以自动连接到我的个人 wifi。

我的问题是这样的:

当我启动 Win 7 时,wifi 工作正常,然后我重新启动到 ubuntu,wifi 却无法自动工作。如果我再次拔出 USB-wifi,问题就解决了。

奇怪的是,如果我从 Ubuntu 重启到 Ubuntu(并且 wifi 正常工作),它会自动连接。如果我从 ubuntu 重启到 ubuntu,并且 wifi 不工作,它不会自动连接。

因此,当我通过 GRUB 启动 Windows 7 时,似乎有“某些东西”把事情搞乱了。

如何解决这个问题?我经常从一个系统切换到另一个系统,所以每次都要插拔 USB,这很烦人。

硬件信息: USB wifi 适配器:TP-Link TL-WN321G V4 使用芯片组:“ID 148f:2070 Ralink Technology, Corp. RT2070 无线适配器”(从 $ lsusb 获得)它通过驱动程序工作:rt2800usb

这是 2013 年 1 月 23 日全新安装的,已完全更新。自从 12.04 版发布以来我就遇到了这个问题,而 12.10 版无法修复它。

当 USB wifi 不工作时它仍然会检测到它:

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 003: ID 046d:c52f Logitech, Inc. Wireless Mouse M305
Bus 002 Device 004: ID 4971:ce04 SimpleTech 
Bus 002 Device 005: ID 04cf:0022 Myson Century, Inc. OCZ Alchemy Series Elixir II Keyboard
Bus 002 Device 006: ID 148f:2070 Ralink Technology, Corp. RT2070 Wireless Adapter

然后我拔下并再次插入:

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 003: ID 046d:c52f Logitech, Inc. Wireless Mouse M305
Bus 002 Device 004: ID 4971:ce04 SimpleTech 
Bus 002 Device 005: ID 04cf:0022 Myson Century, Inc. OCZ Alchemy Series Elixir II Keyboard
Bus 002 Device 007: ID 148f:2070 Ralink Technology, Corp. RT2070 Wireless Adapter
    

还有那个小小的变化。

编辑1

读了一些资料后,我得到了更多信息:(当 wifi 无法连接时就会发生这种情况)

$ sudo ifup wlan0
[sudo] password for marcos: 
Ignoring unknown interface wlan0=wlan0.
$ iwconfig
lo        no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
      
eth0      no wireless extensions.
$ ifconfig wlan0
wlan0     Link encap:Ethernet  direcciónHW <hidden MAC address>  
          ACTIVO DIFUSIÓN MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000 
          Bytes RX:0 (0.0 B)  TX bytes:0 (0.0 B)

这是我拔下并重新插入 USB wifi 后的变化

$ iwconfig wlan0
wlan0     IEEE 802.11bg  ESSID:"Red de Lourdes"  
          Mode:Managed  Frequency:2.412 GHz  Access Point: <hidden MAC address>   
          Bit Rate=54 Mb/s   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=59/70  Signal level=-51 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:145  Invalid misc:96   Missed beacon:0
$ ifconfig wlan0
wlan0     Link encap:Ethernet  direcciónHW <hidden MAC address>  
          Direc. inet:<hidden IP address>  Difus.:<hidden IP address>  Másc:<hidden IP address>
          Dirección inet6: <hidden IPv6 address> Alcance:Enlace
          ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:2108 errores:0 perdidos:0 overruns:0 frame:0
          Paquetes TX:2259 errores:0 perdidos:0 overruns:0 carrier:0
          colisiones:0 long.colaTX:1000 
          Bytes RX:845327 (845.3 KB)  TX bytes:395596 (395.5 KB)

有什么方法可以编写 Bash 脚本来使无线网络正常工作吗?还有其他解决方案吗?这是 GRUB 的问题吗?

答案1

你可以通过这些命令来激活 wlan,而不必重新插入:

sudo modprobe -r 8192eu
sudo modprobe 8192eu

你需要将 8192eu 改为你自己的 wlan 名称。如果你不知道名称,请在 google 上搜索关键字ID 148f:2070(你的 usb wlan 的 id,可以通过命令找到lsusb)。

或者您也可以直接将 wlan 名称添加到/etc/modules

sudo -i
echo 8192eu >> /etc/modules
exit

则系统启动时,wlan 将自动激活。

答案2

首先,您需要识别 USB wifi 适配器的驱动程序。执行以下命令获取网络适配器列表 lshw -C network 以下是您可能会注意到的输出类型

  *-network:0
       description: Wireless interface
       physical id: 1
       bus info: usb@3:5
       logical name: wlx542aa25b496d
       serial: 54:2a:a2:5b:49:6d
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=rtl8xxxu driverversion=5.0.0-32-generic firmware=N/A ip=172.16.61.0 link=yes multicast=yes wireless=IEEE 802.11

检查驱动程序并记下来。假设它是rtl8xxxu,您可以使用以下命令通过命令拔出或插入适配器

sudo modprobe -r rtl8xxxu
sudo modprobe rtl8xxxu

/etc/rc.local 由于这又是手动调用,您可以在之前添加以下代码中的命令exit 0

modprobe -r rtl8xxxu
sleep 1
modprobe rtl8xxxu

在 Ubuntu 18.04 中该rc.local文件不存在,因此你可以使用sudo nano /etc/rc.local 添加以下部分来创建它,该部分取自 Ubuntu 16.04 的库存/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.

exit 0

然后在 之前添加 uplug/plug 代码exit 0。您需要通过 使文件可执行sudo chmod +x /etc/rc.local。重新启动并查看是否有效

答案3

我在安装 Windows 10 和 Ubuntu 后开始出现这种情况,我在下面的链接中找到了解决方案BIOSSecure Boot功能是导致该问题的原因。 重启后未找到 WI-FI 适配器

如果您想保持Secure Boot启用状态,可以查看这篇文章https://www.howtogeek.com/116569/htg-explains-how-windows-8s-secure-boot-feature-works-what-it-means-for-linux/ 它提到了shim-signed包以及它如何使您能够验证签名...不知道...

我禁用了它。

相关内容