Intel wireless (iwlwifi), Ubuntu 19.04, медленная скорость загрузки, но только в определенных сетях WiFi

У меня Lenovo IdeaPad S340 под управлением Ubuntu 19.04. Он оснащен двухдиапазонным беспроводным адаптером Intel с драйвером ядра iwlwifi.

В одной конкретной сети WiFi, которая использует точки доступа Cisco, я получаю нормальную скорость загрузки, но ужасную скорость загрузки. Я видел ответы на похожие вопросы, в которых говорилось, что для параметра ядра 11n_disable для драйвера iwlwifi нужно установить значение 11n_disable=1 или 11n_disable=8, но ни один из них не помог мне; первый улучшил мою скорость загрузки, но сократил мою скорость загрузки вдвое, а второй ничего не сделал.

Как я могу это исправить?

0
задан 5 August 2019 в 21:10

1 ответ

Я экспериментировал и нашел это 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

Даже для более подробной информации пойдите сюда
Отказ от ответственности: Я - автор того блога.

1
ответ дан 23 October 2019 в 07:34

Другие вопросы по тегам:

Похожие вопросы: