![在 Ubuntu 17.10 上使用 RTL8192CU 时 WiFi 经常断开连接](https://linux22.com/image/1152547/%E5%9C%A8%20Ubuntu%2017.10%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20RTL8192CU%20%E6%97%B6%20WiFi%20%E7%BB%8F%E5%B8%B8%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5.png)
我用Ubuntu 17.10以及以下 USB 适配器:
lsusb | grep -o 'ASUS.*'
华硕电脑公司 N10 Nano 802.11n 网络适配器 [RealtekRTL8192CU]
sudo lshw -class network | grep -o '.*rtl.*generic'
配置:广播=是驱动程序=rtl8192cu驱动程序版本=4.13.0-21-通用
当电脑启动时,互联网工作正常(除了上传和下载速度比其他设备慢 3 倍),但过了一会儿(通常只有几分钟)互联网中断我需要运行以下命令才能使其再次可用(或者等待大约 5 分钟以上才能自动重新连接):
sudo /etc/init.d/network-manager restart
我读这里:
无线 Realtek 芯片组 RTL8188CUS 和RTL8192CU应该运行良好在默认 RTL8192CU 驱动程序(至少自 4.4 内核系列推出以来)。因此它们应该可以开箱即用。即插即用,无需再采取任何行动。
CD 中的驱动程序似乎不适用于此内核版本。
禁用 IPv6从我的 WiFi 设置/整个系统没有修复问题。
驱动程序有问题吗?
或者是否有其他原因导致它在一段时间后失败?
编辑:
系统配置
运行iwconfig
显示类似的输出(全部显示Power Management:off
),但有 2 个区别:
第一次断开连接之前
Link Quality=52/70 Signal level=-58 dBm Tx excessive retries:0 Invalid misc:3 Missed beacon:0
断开连接后
Link Quality=52/70 Signal level=-58 dBm Tx excessive retries:0 Invalid misc:135 Missed beacon:0
重新连接后(重新启动网络管理器服务)
Link Quality=38/70 Signal level=-72 dBm Tx excessive retries:0 Invalid misc:8 Missed beacon:0
日志控制
# sudo journalctl -fu NetworkManager
...
十二月 25 22:59:50 ... NetworkManager[...]: [...] 经理:rfkill:WiFi 硬件无线电装置已启用
十二月 25 22:59:50 ... NetworkManager[...]: [...] 经理:rfkill:WWAN 硬件无线电装置已启用
无线网络在 23:10:00 左右断开,大约 5 分钟后:
12 月 25 日 23:15:10 ... NetworkManager[...]: [...] 连接性:(wlx...)超时
12 月 25 日 23:15:26 ... NetworkManager[...]: [...] 策略:将“...”(wlx...)设置为 IPv6 路由和 DNS 的默认值
12 月 25 日 23:20:10 ... NetworkManager[...]: [...] 连接性:(wlx...)超时
修改probe文件
添加以下文件/行并不能解决问题:
cat /etc/modprobe.d/rtl8192cu.conf
选项 rtl8192cu fwlps=N
cat /etc/modprobe.d/rtl8xxxu.conf
黑手党 rtl8xxxu
cat /etc/modprobe.d/blacklist.conf | grep rtl
黑名单 rtl8xxxu
黑名单 rtl8192c_common
答案1
问题是固定的使用来自的说明这里:
sudo apt-get install linux-headers-$(uname -r) build-essential dkms git
git clone https://github.com/pvaret/rtl8192cu-fixes.git
sudo dkms add ./rtl8192cu-fixes
sudo dkms install 8192cu/1.10
sudo depmod -a
sudo cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/
sudo cp ./rtl8192cu-fixes/8192cu-disable-power-management.conf /etc/modprobe.d/
reboot
我希望这不仅仅是一个巧合,而是它在过去 1 个小时里发挥了作用。
到目前为止,我忽略了包含此 GitHub URL 的帖子:https://github.com/pvaret/rtl8192cu-fixes因为 README.md 文件指定了以下内容:
!! 该驱动程序已弃用!!
内核 4.4 中最初引入的新 rtl8xxxu 驱动程序目前运行良好,您几乎肯定会更喜欢它而不是这个存储库。
如果 rtl8xxxu 给您带来问题,请在安装此驱动程序之前尝试对其进行故障排除。已知要查找的内容包括:
某些设备要求在 NetworkManager 中禁用电源管理。按照下面的说明在 NetworkManager 中禁用电源管理。确保将较旧的 rtl8192cu 驱动程序列入黑名单,否则默认情况下会加载该驱动程序。
答案2
我会尝试将已加载的其他模块列入黑名单并重新启动
echo "blackist rtl8xxxu" | sudo tee /etc/modprobe.d/rtl8xxxu.conf