我在配有 RTL8723BE Wi-fi 卡的笔记本电脑上安装了 Ubuntu 15.04。但它总是断开网络连接。我试过了,echo "options rtl8723be fwlps=N ips=N" | sudo tee /etc/modprobe.d/rtl8723be.conf
但没有用。我该怎么做才能防止 Wi-Fi 断开连接?如果我升级到内核 4.X,会有帮助吗?
~$ lspci -knn | grep Net -A2
09:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter [10ec:b723]
Subsystem: Hewlett-Packard Company Device [103c:2231]
Kernel driver in use: rtl8723be
~$ rfkill list
0: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
~$ ifconfig && iwconfig && route -n && ping -c 1 google.com
eth0 Link encap:Ethernet HWaddr 38:63:bb:cd:4a:7e
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:752 (752.0 B) TX bytes:8445 (8.4 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:3870 errors:0 dropped:0 overruns:0 frame:0
TX packets:3870 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:314613 (314.6 KB) TX bytes:314613 (314.6 KB)
wlan0 Link encap:Ethernet HWaddr c0:38:96:6d:c4:83
inet addr:192.168.1.205 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::c238:96ff:fe6d:c483/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15240 errors:0 dropped:0 overruns:0 frame:0
TX packets:14627 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14410285 (14.4 MB) TX bytes:2192744 (2.1 MB)
eth0 no wireless extensions.
wlan0 IEEE 802.11bgn ESSID:"DIR-615"
Mode:Managed Frequency:2.437 GHz Access Point: 00:90:4C:08:00:0D
Bit Rate=150 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr=2347 B Fragment thr:off
Power Management:off
Link Quality=70/70 Signal level=-22 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:186 Missed beacon:0
lo no wireless extensions.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 400 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
PING google.com.Dlink (172.26.136.19) 56(84) bytes of data.
64 bytes from 19.136.26.172.in-addr.arpa (172.26.136.19): icmp_seq=1 ttl=249 time=102 ms
--- google.com.Dlink ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 102.547/102.547/102.547/0.000 ms
答案1
首先删除您所做的设置。
sudo rm /etc/modprobe.d/rtl8723be.conf
如果您没有此文件,则没有任何问题。
然后安装好驱动程序
sudo add-apt-repository ppa:hanipouspilot/rtlwifi
sudo apt-get update
sudo apt-get install rtlwifi-new-dkms
重启并享受
如果仍然有问题(信号弱),您可能需要添加一个选项:
echo "options rtl8723be ant_sel=2" | sudo tee /etc/modprobe.d/rtl8723be.conf
然后再次重新启动。
扩展由辣椒555在这个答案。
这是与https://github.com/lwfinger/rtlwifi_new,rock.new_btcoex
分支但打包为 dkms。
您可以在以下网址查看https://github.com/hanipouspilot/rtlwifi_new/tree/rock.new_btcoex
如果您还需要蓝牙工作,请运行:
sudo apt-get install rtl8723au-bt-dkms linux-firmware
笔记:PPA 中已添加对 4.2 内核和 Ubuntu 15.10 的支持。对于内核 4.2,蓝牙驱动程序应该不是可以从 PPA 安装。内核 4.2 中已经原生支持蓝牙适配器。
离线指南
如果您没有任何互联网连接,您可以使用另一台计算机、手机等下载该包。
该软件包是这里
您还需要DKMS
安装。您可以找到适用于 Ubuntu 16.04 的 DKMS 包这里
将这两个文件复制到 Ubuntu Home 文件夹 (~/) 并在终端中运行
sudo dpkg -i dkms*.deb rtlwifi*.deb
然后重新启动。
重要的:对于在 UEFI 上启用安全启动的系统上安装的新 Ubuntu 内核,未签名的内核模块可能无法加载。在这种情况下,请参阅这个答案要解决这个问题。
更新:我现在有一台装有此适配器的笔记本电脑。它在 Ubuntu 16.10 和 16.04.2 中的 4.8 内核上完美运行。
仅 4.8 之前的内核才需要安装自定义驱动程序。
如果 Ubuntu 16.04 尚未安装 4.8 内核,我建议安装它。
sudo apt install linux-generic-hwe-16.04
重启后设备应该可以正常工作。
但是如果您的笔记本电脑只有一根天线,并且连接到“错误”的连接器,ant_sel=2
则and_sel=1
可能需要设置。
答案2
如果您的 Wifi 在一段时间后断开并且您使用 Windows 双启动
在 HP 250 G4(使用 rtl8723be)上,我最初天线错误:wifi信号太弱:
安装新的驱动程序并进行设置后,问题得到解决ant_sel=2
,正如这里所述。
但随后出现了第二个问题:
wifi 工作正常一段时间(有时 2 小时),然后突然变慢并最终断开连接。
更改参数(ips、fwps...)没有帮助。
我终于发现删除 Windows 10 fastboot(在Windows能源设置中)解决了该问题。
这已得到另一位用户的证实(见RTL8723BE:Wifi 总是在 15/20 分钟后掉线
答案3
对我有用的是启用 MSI 参数(消息信号中断)。我有一台联想 Z50 笔记本电脑。我的 wifi 可以与所有 wifi 笔记本电脑制造商兼容,但我曾经住过的一家酒店的 Lancorm wifi 路由器出现了问题。
sw.c
我在文件夹路径中找到了该文件
/home/peter/rtlwifi_new/rtl8723be
然后在sw.c
文件中,我添加了变量.msi_support
并在数据类型下将其初始化为“false”
rtl_mod_params rtl8723be_mod_params
IE
static struct rtl_mod_params rtl8723be_mod_params = {
.sw_crypto = false,
.inactiveps = true,
.swctrl_lps = false,
.fwctrl_lps = true,
.msi_support = false,
};
由于msi_support
默认情况下是禁用的,我们必须适当地将其初始化为禁用(因此为 false),
然后我编译了代码:
cd rtl8723be
make clean
sudo make install
sudo modprobe rtl8723be
之后,我将文件中的 msi 参数设置为 1
/etc/modprobe.d/rtl8723be.conf
它应该包含
options rtl8723be fwlps=N ips=N swenc=Y msi=1
您可能需要重新启动计算机,并在重新启动浏览器后等待几分钟才能触发 msi。
这适用于联想 z50。根据您的电脑,您可以切换并选择 msi 0
答案4
我遇到了同样的问题,我按照说明更新了我的驱动程序Pilot6 回答,但它仍然经常断线。我拼命寻找另一种解决方案时,我发现laugeo 的回答那删除 Windows 10 fastboot解决了这个问题。不幸的是,我只有 Ubuntu,没有 Windows。但是我发现,只需禁用旧版支持解决问题!
我必须像这样在 Bios 中禁用 Legacy Support:
Bios -> 启动选项 (Enter) -> 传统支持:已禁用
现在 WLAN 运行正常 - 不再断开连接!