这个问题困扰了好久了
在 Windows 下并不会存在这个问题, 但是在 Linux 下, 打开 Wifi 以后就几乎搜索不到 WIFI
就算是站在路由器跟前, 信号也不会满格, 而且就算连接上也不会很稳定
第一次找到一个解决方案如下, 当时确实解决了这个问题:
核心代码在这句:
https://github.com/roopansh/rtl8723be_wifi/blob/master/rtl8723be.sh#L11
但是当时并没有看懂这里的配置到底有什么用, 之后通过查询
目录: /etc/modprobe.d/
为内核模块的配置文件目录
参考 man 手册 https://linux.die.net/man/5/modprobe.d
配置文件的名称以内核模块的名称命名, 后缀名为 .conf
例如: rtl8723be.conf
格式有如下规定 (都可以在 man 手册中找到):
- 一条命令一行
- 空行和
#
开头的行会被忽略 (注释) - 如果一行太长用
\
来分隔, 转义回车
命令有如下几种:
alias
options
install
remove
blacklist
我们这里需要关注的是 options
命令
我们需要对无线网卡的内核模块进行一些选项的设置
首先我们需要找出这个模块都有哪些属性:
利用命令: modinfo
➜ ~ modinfo rtl8723be
filename: /lib/modules/4.14.11-1-ARCH/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8723be/rtl8723be.ko.xz
firmware: rtlwifi/rtl8723befw_36.bin
firmware: rtlwifi/rtl8723befw.bin
description: Realtek 8723BE 802.11n PCI wireless
license: GPL
author: Realtek WlanFAE <wlanfae@realtek.com>
author: PageHe <page_he@realsil.com.cn>
srcversion: 2C82AEBD843DD8F2598579A
alias: pci:v000010ECd0000B723sv*sd*bc*sc*i*
depends: rtlwifi,rtl8723-common,rtl_pci,btcoexist,mac80211
name: rtl8723be
vermagic: 4.14.11-1-ARCH SMP preempt mod_unload modversions
parm: swenc:Set to 1 for software crypto (default 0)
(bool)
parm: ips:Set to 0 to not use link power save (default 1)
(bool)
parm: swlps:Set to 1 to use SW control power save (default 0)
(bool)
parm: fwlps:Set to 1 to use FW control power save (default 1)
(bool)
parm: msi:Set to 1 to use MSI interrupts mode (default 0)
(bool)
parm: debug:Set debug level (0-5) (default 0) (int)
parm: disable_watchdog:Set to 1 to disable the watchdog (default 0)
(bool)
parm: ant_sel:Set to 1 or 2 to force antenna number (default 0)
(int)
我的问题在于选错了天线, 也就是最后一个参数: ant_sel
刚才秋豪大佬告诉我有可能是以前我并没有使用到这个网卡, 只是使用了 intel 内置的网卡, 所以这个网卡几乎不能正常使用
通过尝试, 将这个 ant_sel 设置为 2 即可启动在笔记本屏幕中内置的天线
然后将各种省电策略关闭, 配置好之后重新启动该内核模块即可
modprobe -r rtl8723be && modprobe rtl8723be
附上配置文件:
➜ ~ cat /etc/modprobe.d/rtl8723be.conf
options rtl8723be ant_sel=2 ips=0 swlps=1 fwlps=1
modprobe -r rtl8723be && echo 'options rtl8723be ant_sel=2 ips=0 swlps=1 fwlps=1' > /etc/modprobe.d/rtl8723be.conf && modprobe rtl8723be
开源 RTL 无线网卡驱动: