![WiFi设置中的“options iwlwifi 11n_disable=1”是什么?](https://linux22.com/image/907509/WiFi%E8%AE%BE%E7%BD%AE%E4%B8%AD%E7%9A%84%E2%80%9Coptions%20iwlwifi%2011n_disable%3D1%E2%80%9D%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
改善 WiFi 信号的常见解决方案之一是使用此命令
options iwlwifi 11n_disable=1
在
/etc/modprobe.d/iwlwifi.conf
并且数字可以是0
,,,。1
2
8
我找不到此命令的手册。这些数字有什么用?我们应该如何在可用选项中进行选择?
答案1
从终端命令:
modinfo iwlwifi
parm: 11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)
我不知道并且无法找到进一步的文献。
在众多可用选项中我们该如何选择呢?
大多数情况下,如果路由器设置得当,即 WPA2-AES 并且没有任何混合模式,并且设置为固定通道,而不是自动通道选择,则我们不需要它们中的任何一个。
但是,如果我们在工作、大学或图书馆连接,而没有选项可以根据我们的偏好重新配置路由器,那么依次尝试每个选项直到我们可靠地连接会很有帮助。通常 =8 最有帮助,其次是 =1。我从未遇到过任何其他选项有帮助的情况。
答案2
我的问题是,在 Ubuntu 19.04 上,某些 WiFi 网络上的上传速度非常糟糕。我看到推荐的两个设置 11n_disable=1 和 11n_disable=8 都对我不起作用;前者提高了上传速度,但将下载速度降低了一半,而后者没有任何作用。我试验后发现,11n_disable=2 将我的上传速度提高了 700%,但代价是下载速度降低了 12%。这是一个合理的权衡,否则上传速度无法使用,但我不想在不更改设置的情况下让上传速度正常的 WiFi 网络上的下载速度降低。所以我编写了一个脚本来检查我使用的 WiFi 网络并相应地调整设置。我把它发布在我的博客上 (https://blog.kamens.us/2019/08/03/mitigating-wifi-upload-speed-issues-on-lenovo-ideapad-s340-running-linux/) 以防对其他人有用,请提供更多详细信息。
但是,我知道 Stack Exchange 不喜欢答案依赖于外部链接,所以这里有一个脚本。它需要以 root 身份、模式 0755 安装在 /etc/NetworkManager/dispatcher.d 中。
#!/bin/bash -e
WHOAMI=$(basename $0)
IFACE="$1"; shift
ACTION="$1"; shift
log() {
level="$1"; shift
logger -p daemon.$level -t "$WHOAMI" $@
}
if [ "$ACTION" != "up" ]; then
log debug ignoring action $ACTION
exit 0
fi
state=$(cat /sys/module/iwlwifi/parameters/11n_disable)
log notice previous 11n_disable state is $state
if [ "$CONNECTION_ID" = "bad-wifi-network-name" ]; then
want_state=2
else
want_state=0
fi
if [ "$state" != "$want_state" ]; then
log notice reloading iwlwifi with 11n_disable=$want_state
if ! rmmod iwlmvm iwlwifi; then
log err rmmod iwlmvm iwlwifi failed
exit 1
fi
if ! modprobe iwlwifi 11n_disable=$want_state; then
log err modprobe iwlwifi 11n_disable=$want_state failed
exit 1
fi
if ! modprobe iwlmvm; then
log err modprobe iwlmvm failed
exit 1
fi
log notice finished reloading iwlwifi with 11n_disable=$want_state
else
log notice 11n_disable is correct, taking no action
fi