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

Goo*_*bot 9 wireless networking modprobe drivers iwlwifi

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

options iwlwifi 11n_disable=1
Run Code Online (Sandbox Code Playgroud)

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

数字可以是0、、、。128

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

chi*_*555 8

从终端命令:

modinfo iwlwifi

parm: 11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)
Run Code Online (Sandbox Code Playgroud)

我不知道也无法找到更多文档。

我们应该如何在可用的选项中进行选择?

在大多数情况下,如果路由器设置为最佳,即 WPA2-AES 而不是任何混合模式,并设置为固定通道,而不是自动通道选择,则我们不需要它们。

然而,如果我们在工作场所、大学或图书馆进行连接,而我们无法根据自己的喜好重新配置路由器,那么有时依次尝试每个路由器直至可靠连接会很有帮助。一般来说,=8 最有帮助,其次是=1。我从未遇到过任何其他选项可以帮助的案例。


小智 6

我的问题是 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
Run Code Online (Sandbox Code Playgroud)