如何让 Realtek RTL8723BE 无线网卡正常工作?

Plu*_*ruT 58 wireless drivers realtek-wireless

我已经在带有 RTL8723BE Wi-fi 卡的笔记本电脑上安装了 Ubuntu 15.04。但它总是与网络断开连接。我试过了,echo "options rtl8723be fwlps=N ips=N" | sudo tee /etc/modprobe.d/rtl8723be.conf但这没有帮助。我该怎么做才能防止wifi断开连接?如果我升级到内核 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
Run Code Online (Sandbox Code Playgroud)

Pil*_*ot6 70

首先删除您所做的设置。

sudo rm /etc/modprobe.d/rtl8723be.conf
Run Code Online (Sandbox Code Playgroud)

如果您没有此文件,则没有任何问题。

然后安装好驱动

sudo add-apt-repository ppa:hanipouspilot/rtlwifi
sudo apt-get update
sudo apt-get install rtlwifi-new-dkms
Run Code Online (Sandbox Code Playgroud)

重新启动并享受

如果仍然有问题(低信号),您可能需要添加一个选项:

echo "options rtl8723be ant_sel=2"  | sudo tee /etc/modprobe.d/rtl8723be.conf
Run Code Online (Sandbox Code Playgroud)

然后再次重新启动。

这个答案中chili555做了解释

这与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
Run Code Online (Sandbox Code Playgroud)

注意: 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
Run Code Online (Sandbox Code Playgroud)

然后重启。

重要提示:对于在 UEFI 上使用安全启动的系统上安装的新 Ubuntu 内核,可能无法加载未签名的内核模块。在这种情况下,请参阅此答案以修复它。

更新:我现在有一台带有这个适配器的笔记本电脑。它在 Ubuntu 16.10 和 16.04.2 中可用的 4.8 内核上完美运行。

只有早于 4.8 的内核才需要安装自定义驱动程序。

如果尚未安装 4.8 内核,我建议将 4.8 内核安装到 Ubuntu 16.04

sudo apt install linux-generic-hwe-16.04
Run Code Online (Sandbox Code Playgroud)

重启后设备应该可以正常工作。

但是,如果您的笔记本电脑只有一根天线并且它连接到“错误”的连接器,则可能需要设置ant_sel=2and_sel=1

  • 仅在 `options rtl8723be fwlps=N ips=N swenc=Y msi=1` 后工作。使用 `options rtl8723be msi=1 ips=0` 只是不起作用。 (2认同)

lau*_*geo 7

如果您的 Wifi 在一段时间后掉线并且您使用 Windows 双启动

在 HP 250 G4(使用 rtl8723be)上,我起初遇到了天线错误:wifi 信号太低:

安装新驱动程序和设置后解决了ant_sel=2,就像这里描述的那样。

但随后出现了第二个问题:
wifi 工作正常一段时间(有时 2 小时)然后突然变慢并最终断开连接。
更改参数(ips、fwps...)没有帮助。
我终于发现删除 Windows 10 fastboot(在 Windows 能源设置中)解决了这个问题。

这已被另一位用户确认(参见RTL8723BE:Wifi 总是在 15/20 分钟后掉线


小智 5

对我有用的是启用 MSI 参数(消息信号中断)。我有一台联想 Z50 笔记本电脑。我的 wifi 可以与所有 wifi 笔记本电脑制造商一起使用,但我在我曾经住过的一家酒店的 Lancorm wifi 路由器有问题。

我在文件sw.c夹路径中找到了文件

/home/peter/rtlwifi_new/rtl8723be
Run Code Online (Sandbox Code Playgroud)

然后在sw.c文件中,我添加了变量.msi_support并在数据类型下将其初始化为“false”

rtl_mod_params rtl8723be_mod_params
Run Code Online (Sandbox Code Playgroud)

IE

static struct rtl_mod_params rtl8723be_mod_params = {
.sw_crypto = false,
.inactiveps = true,
.swctrl_lps = false,
.fwctrl_lps = true,
.msi_support = false,
};
Run Code Online (Sandbox Code Playgroud)

由于msi_support默认情况下是禁用的,我们必须适当地将其初始化为禁用(因此为 false),

然后我编译了代码:

cd rtl8723be
make clean
sudo make install
sudo modprobe rtl8723be
Run Code Online (Sandbox Code Playgroud)

之后我将文件中的 msi 参数设置为 1

/etc/modprobe.d/rtl8723be.conf
Run Code Online (Sandbox Code Playgroud)

它应该包含

options rtl8723be fwlps=N ips=N swenc=Y msi=1
Run Code Online (Sandbox Code Playgroud)

您可能必须重新启动计算机并在重新启动浏览器后等待几分钟才能触发 msi。

这适用于联想 z50。根据您的电脑,您可以切换并选择 msi 为 0