use*_*012 7 wireless wireless-access-point
我有一台装有 Win 7 和 Ubuntu 12.04 以及默认 GRUB 的台式电脑,此外,我还插入了一个 WiFi USB 适配器,它会自动连接到我的个人 WiFi。
\n我的问题是这样的:
\n当我启动到 Win 7 时,wifi 工作正常,然后我重新启动到 ubuntu,wifi 不会自动工作。如果我拔出并再次插入 USB-wifi,问题就解决了。
\n奇怪的是,如果我从 Ubuntu 重新启动到 Ubuntu(并且 wifi 工作正常),它会自动连接。如果我从 ubuntu 重新启动到 ubuntu 并且 wifi 不工作,它不会自动连接。
\n因此,在我通过 GRUB 启动到 Windows 7 的那一刻,似乎有“东西”把事情弄乱了。
\n\xc2\xbf如何解决这个问题?我经常从一个系统更换到另一个系统,所以每次插入和拔出 USB 是相当烦人的。
\n硬件信息: \nUSB WiFi 适配器:TP-Link TL-WN321G V4 使用芯片组:“ID 148f:2070 Ralink Technology, Corp. RT2070 无线适配器”(从 $ lsusb 获取)它通过驱动程序工作:rt2800usb
\n这是 2013 年 1 月 23 日全新安装,完全是最新的。自从 12.04 发布以来我就遇到了这个问题,12.10 无法解决它。
\n当 USB wifi 不工作时,它仍然检测到它:
\n$ lsusb\nBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub\nBus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub\nBus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub\nBus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub\nBus 002 Device 003: ID 046d:c52f Logitech, Inc. Wireless Mouse M305\nBus 002 Device 004: ID 4971:ce04 SimpleTech \nBus 002 Device 005: ID 04cf:0022 Myson Century, Inc. OCZ Alchemy Series Elixir II Keyboard\nBus 002 Device 006: ID 148f:2070 Ralink Technology, Corp. RT2070 Wireless Adapter\n
Run Code Online (Sandbox Code Playgroud)\n然后我拔掉插头并再次插入:
\n$ lsusb\nBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub\nBus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub\nBus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub\nBus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub\nBus 002 Device 003: ID 046d:c52f Logitech, Inc. Wireless Mouse M305\nBus 002 Device 004: ID 4971:ce04 SimpleTech \nBus 002 Device 005: ID 04cf:0022 Myson Century, Inc. OCZ Alchemy Series Elixir II Keyboard\nBus 002 Device 007: ID 148f:2070 Ralink Technology, Corp. RT2070 Wireless Adapter\n \n
Run Code Online (Sandbox Code Playgroud)\n还有一点小小的变化。
\n编辑1:
\n经过一番阅读后,我得到了更多信息:(当 wifi 无法连接时会发生这种情况)
\n$ sudo ifup wlan0\n[sudo] password for marcos: \nIgnoring unknown interface wlan0=wlan0.\n$ iwconfig\nlo no wireless extensions.\n\nwlan0 IEEE 802.11bg ESSID:off/any \n Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm \n Retry long limit:7 RTS thr:off Fragment thr:off\n Power Management:on\n \neth0 no wireless extensions.\n$ ifconfig wlan0\nwlan0 Link encap:Ethernet direcci\xc3\xb3nHW <hidden MAC address> \n ACTIVO DIFUSI\xc3\x93N MULTICAST MTU:1500 M\xc3\xa9trica:1\n Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0\n Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0\n colisiones:0 long.colaTX:1000 \n Bytes RX:0 (0.0 B) TX bytes:0 (0.0 B)\n
Run Code Online (Sandbox Code Playgroud)\n这是我拔掉并重新插入 USB wifi 后的变化
\n$ iwconfig wlan0\nwlan0 IEEE 802.11bg ESSID:"Red de Lourdes" \n Mode:Managed Frequency:2.412 GHz Access Point: <hidden MAC address> \n Bit Rate=54 Mb/s Tx-Power=20 dBm \n Retry long limit:7 RTS thr:off Fragment thr:off\n Power Management:on\n Link Quality=59/70 Signal level=-51 dBm \n Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0\n Tx excessive retries:145 Invalid misc:96 Missed beacon:0\n$ ifconfig wlan0\nwlan0 Link encap:Ethernet direcci\xc3\xb3nHW <hidden MAC address> \n Direc. inet:<hidden IP address> Difus.:<hidden IP address> M\xc3\xa1sc:<hidden IP address>\n Direcci\xc3\xb3n inet6: <hidden IPv6 address> Alcance:Enlace\n ACTIVO DIFUSI\xc3\x93N FUNCIONANDO MULTICAST MTU:1500 M\xc3\xa9trica:1\n Paquetes RX:2108 errores:0 perdidos:0 overruns:0 frame:0\n Paquetes TX:2259 errores:0 perdidos:0 overruns:0 carrier:0\n colisiones:0 long.colaTX:1000 \n Bytes RX:845327 (845.3 KB) TX bytes:395596 (395.5 KB)\n
Run Code Online (Sandbox Code Playgroud)\n有什么方法可以制作 Bash 脚本来让无线工作吗?还有其他解决方案吗?GRUB 出问题了吗?
\n您可以通过以下命令激活 wlan,而不用重新插入:
sudo modprobe -r 8192eu
sudo modprobe 8192eu
Run Code Online (Sandbox Code Playgroud)
您需要将 8192eu 更改为您自己的 wlan 名称。如果您不知道名称,请在 google 上使用关键字搜索ID 148f:2070
(您的 USB 无线局域网的 id 可以通过命令找到lsusb
)。
或者您可以将 wlan 名称添加到/etc/modules
:
sudo -i
echo 8192eu >> /etc/modules
exit
Run Code Online (Sandbox Code Playgroud)
然后系统启动时就会自动激活WLAN。
小智 1
首先,您需要识别 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
Run Code Online (Sandbox Code Playgroud)
检查驱动程序并记下来。假设是这样rtl8xxxu
,您可以使用以下命令通过命令拔出或插入适配器
sudo modprobe -r rtl8xxxu
sudo modprobe rtl8xxxu
Run Code Online (Sandbox Code Playgroud)
/etc/rc.local
由于这又是手动调用,因此您可以在之前添加以下代码中添加命令exit 0
modprobe -r rtl8xxxu
sleep 1
modprobe rtl8xxxu
Run Code Online (Sandbox Code Playgroud)
在 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
Run Code Online (Sandbox Code Playgroud)
然后在前面添加uplug/plug代码exit 0
。您需要使该文件可执行sudo chmod +x /etc/rc.local
。重新启动并查看是否有效
归档时间: |
|
查看次数: |
6232 次 |
最近记录: |