这段代码中modprobe的作用是什么?

这段代码中modprobe的作用是什么?

在尝试诊断我在联想 Yoga C930 上新安装的 ubuntu 18.04 中 Wi-Fi 连接速度慢/弱时,我发现了以下答案

Ubuntu 14 中 Wifi 信号弱

该解决方案看起来很简单,并且与我在类似问题中采用的解决方案相关

针对“Lenovo 18.04 未找到 Wifi 适配器”的后续问题

我发现重启系统后,无线连接速度会更快,而且就像第一个问题中的 OP 一样,我的双启动 Windows 10 平台上的信号强度没有问题。我想在我的计算机上采用这个解决方案,但我不知道它是否适用于不同的硬件或如何调整它。因此,我问了一个澄清问题:

modprobe代码中做了什么

sudo modprobe -v rtl8723be ant_sel=2

我该如何使其适应我的系统和我的问题?

根据要求,结果为lspci -nnk | grep 0280 -A3

6b:00.0 Network controller [0280]: Intel Corporation Wireless-AC 9260 [8086:2526] (rev 29) Subsystem: Intel Corporation Device [8086:0014] Kernel driver in use: iwlwifi Kernel modules: iwlwifi

答案1

毫无疑问,该命令之前有:

sudo modprobe -r rtl8723be

其效果是删除(-r)可能使用其默认参数加载的模块。

许多驱动程序(尤其是无线驱动程序)都有一些可在加载驱动程序时进行操作的参数,即 modprobed。您可以使用以下命令查看可用的参数:

modinfo rtl8723be

我们看到以下参数:

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:           aspm:Set to 1 to enable ASPM (default 1)  (int) 
parm:           debug_level:Set debug level (0-5) (default 0) (int) 
parm:           debug_mask:Set debug mask (default 0) (ullong) 
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;也就是说,能够优先选择天线 1 或天线 2 而不是天线 0,我相信这意味着自动选择正确的天线。但是,rtl8723be 驱动程序和硬件组合目前还不能自动选择。通常需要进行测试,以确定提供最强连接的天线。

如果希望使参数永久生效,请创建一个文件,告知系统在模块加载时始终使用所选参数。从终端:

sudo -i
echo "options rtl8723be ant_sel=2"  >  /etc/modprobe.d/rtl8723be.conf
exit

编辑:正如我们从你的串行通信,您的无线驱动程序是无线上网。您有 Intel 无线设备,而不是 Realtek。您为 rtl8723be 设置的任何驱动程序参数都将无效,因为您的系统上没有 Realtek 设备来加载驱动程序并应用参数。

创建 rtl8723be.conf 文件不会造成任何损害;但是,它也没有任何帮助。如果您想删除不需要的文件,请打开终端并执行以下操作:

sudo rm /etc/modprobe.d/rtl8723be.conf

Ubuntu 的新用户经常会阅读论坛上关于解决无线问题的帖子,然后盲目地将其应用到他们的系统中。当没有任何改善时,他们通常会感到失望。虽然将 .conf 文件应用于您的系统以用于您的系统甚至不使用的无线驱动程序并不危险,但如果您不知道您拥有的是什么驱动程序,这是徒劳的。我敦促所有 Ubuntu 用户确定他们拥有的是什么无线驱动程序对系统应用任何修复。您可以使用终端命令执行此操作:

lspci -nnk | grep 0280 -A3

例如,确定您正在使用驱动程序无线上网,如果您遇到困难,请仅搜索适用于无线上网,例如“无线速度慢”iwlwifi或“连接断开”iwlwifi。

然后我再次运行 modinfo,但 ant_sel 的行似乎没有改变;

它永远不会改变。它报告可用的内容。会改变的是/sys/module/rtl8723be/parameters/ant_sel。它报告实际已应用的内容。

如果您在使用无线时遇到问题,我建议您提出一个新问题并告诉我们您在使用英特尔 9260 无线时遇到了什么问题。

答案2

这里

作为rtl8723be-选项提到,粘贴选项 /etc/modprobe.d/rtl8723be.conf

options rtl8723be ant_sel=2

其中,ant_sel 可以是 0、1 和 2,分别表示默认、AUX 和 MAIN 天线位置。注意:一旦更改 ant_sel,您必须进行冷重启。应关闭电源以确保固件使用新值

分别做ant_sel=0,1,2三个实验之后,可以将最优的一个写入rtl8723be.conf。


使用以下方式检查选项modinfo

sudo modinfo rtl8723be | grep ant_sel
parm: ant_sel:Set to 1 or 2 to force antenna number (default 0)

相关内容