WiFi设置中的“options iwlwifi 11n_disable=1”是什么?

WiFi设置中的“options iwlwifi 11n_disable=1”是什么?

改善 WiFi 信号的常见解决方案之一是使用此命令

options iwlwifi 11n_disable=1

/etc/modprobe.d/iwlwifi.conf

并且数字可以是0,,,。128

我找不到此命令的手册。这些数字有什么用?我们应该如何在可用选项中进行选择?

答案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

相关内容