У меня Lenovo IdeaPad S340 под управлением Ubuntu 19.04. Он оснащен двухдиапазонным беспроводным адаптером Intel с драйвером ядра iwlwifi
.
В одной конкретной сети WiFi, которая использует точки доступа Cisco, я получаю нормальную скорость загрузки, но ужасную скорость загрузки. Я видел ответы на похожие вопросы, в которых говорилось, что для параметра ядра 11n_disable для драйвера iwlwifi
нужно установить значение 11n_disable=1
или 11n_disable=8
, но ни один из них не помог мне; первый улучшил мою скорость загрузки, но сократил мою скорость загрузки вдвое, а второй ничего не сделал.
Как я могу это исправить?
Я экспериментировал и нашел это 11n_disable=2
повышенный моя скорость загрузки на 700%, но по цене уменьшения моей скорости загрузки на 12%. Это - разумный компромисс, когда иначе скорость загрузки неприменима, но я не хотел выносить уменьшенную скорость загрузки в сетях WiFi, скорость загрузки которых была прекрасна, не изменяя настройки. Таким образом, я записал сценарий для сверений с сетью WiFi, я использую и корректирую установку соответственно.
Ниже Вас может найти сценарий. Это должно быть установлено как корень, режим 0755
, в /etc/NetworkManager/dispatcher.d
. Необходимо отредактировать bad-wifi-network-name
строка для надлежащего выбора, на какой сети (сетях) WiFi Вы хотите использовать альтернативную установку.
#!/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
Даже для более подробной информации пойдите сюда
Отказ от ответственности: Я - автор того блога.