我有一个联想IdeaPad S340运行Ubuntu19.04。它有一个英特尔双波段无线适配器使用iwlwifi内核驱动程序。
在一个使用思科接入点的特定WiFi网络上,我的下载速度可以确定,但上传速度很差。我看到了类似问题的答案,即将iwlwifi驱动程序的D1内核参数设置为11n_disable=1或11n_disable=8,但这两种方法都不适合我;前者提高了我的上传速度,但将我的下载速度减半,而后者什么也没做。
我怎么才能解决这个问题?
发布于 2019-08-03 13:27:24
我做了实验,发现11n_disable=2使我的上传速度提高了700%,但代价是下载速度降低了12%。这是一个合理的权衡,否则上传速度是不可用的,但我不想忍受下载速度下降的WiFi网络,其上传速度是好的,而不改变设置。因此,我编写了一个脚本来检查我正在使用的WiFi网络,并相应地调整设置。
下面你可以找到剧本。它需要作为根模式0755安装在/etc/NetworkManager/dispatcher.d中。您需要编辑bad-wifi-network-name行,以正确选择要使用可选设置的WiFi网络(S)。
#!/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关于更详细的信息,请到这里 免责声明:我是那个博客的作者。
https://askubuntu.com/questions/1163145
复制相似问题