Вопрос или проблема
ОС = Ubuntu 18.04 LTS
ПК = Lenovo Ideapad Y500 (выпущен в 2012)
Беспроводная карта = Intel Centrino Wireless N2230
Я только что установил Ubuntu 18.04 LTS на старый Lenovo Ideapad (ноутбук) модели Y500. Он работает нормально, но для того, чтобы WiFi заработал, мне нужно ввести эти команды в Терминале:
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi 11n_disable=1
Это работает, но только ненадолго. Если компьютер уснет (или перезагрузится), мне снова нужно вводить эти команды.
-
Я понятия не имею, что делают эти команды.
-
Что бы это ни исправляло, я хотел бы сделать это постоянным.
-
Когда это работает, скорость WiFi ужасна (около 20 Мбит/с), но скорость проводного Ethernet великолепна (около 930 Мбит/с – у меня оптоволоконный интернет).
У меня нет понятия, что Ubuntu видит как мою WiFi-карту. Если бы это был Windows, я мог бы посмотреть в Диспетчере устройств и увидеть, что считает Windows (что может быть неверным). В Linux я слишком глуп, чтобы понять, что ОС думает о карте.
Возможно ли, что Ubuntu неправильно определяет мою беспроводную карту? Если да, могу ли я это исправить (и улучшить скорость), используя другой драйвер?
Моя проблема была в ужасной скорости загрузки на некоторых WiFi-сетях, на Ubuntu 19.04. Ни 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 не любит, когда ответы зависят от ссылок, поэтому я включил его ниже. Его необходимо установить в /etc/NetworkManager/dispatcher.d с правами root и режимом 0755.
#!/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 игнорирование действия $ACTION
exit 0
fi
state=$(cat /sys/module/iwlwifi/parameters/11n_disable)
log notice предыдущие 11n_disable состояние $state
if [ "$CONNECTION_ID" = "bad-wifi-network-name" ]; then
want_state=2
else
want_state=0
fi
if [ "$state" != "$want_state" ]; then
log notice перезагрузка iwlwifi с 11n_disable=$want_state
if ! rmmod iwlmvm iwlwifi; then
log err rmmod iwlmvm iwlwifi неудачно
exit 1
fi
if ! modprobe iwlwifi 11n_disable=$want_state; then
log err modprobe iwlwifi 11n_disable=$want_state неудачно
exit 1
fi
if ! modprobe iwlmvm; then
log err modprobe iwlmvm неудачно
exit 1
fi
log notice завершено перезагрузкой iwlwifi с 11n_disable=$want_state
else
log notice 11n_disable верен, действия не требуется
fi
Вы можете попробовать это, драйвер не требуется
echo "options iwlwifi 11n_disable=1" | sudo tee -a /etc/modprobe.d/iwlwifi.conf
sudo modprobe -rfv iwlwifi
sudo modprobe -v iwlwifi
Ответ или решение
Вопрос о проблемах с Wi-Fi на Ubuntu 18.04 LTS связан с командой 11n_disable=1
для драйвера iwlwifi. Данное решение временно восстанавливает работу сети, но требует повторного выполнения после перезагрузки или выхода из спящего режима.
Анализ проблемы и решение
Ваш ноутбук Lenovo Ideapad Y500 оснащён беспроводной картой Intel Centrino Wireless N2230. В Ubuntu используется драйвер iwlwifi для управления этой картой, но возникают проблемы с производительностью сети в режиме 802.11n.
Что делает команда 11n_disable=1
?
Команда sudo modprobe iwlwifi 11n_disable=1
отключает поддержку стандарта 802.11n на уровне драйвера. Данный стандарт, хотя и обеспечивает более высокую скорость передачи данных, может быть нестабилен на старых или несовместимых устройствах. Отключение 802.11n может временно стабилизировать соединение, но снижает скорость до уровней, характерных для 802.11g.
Почему настройки не сохраняются?
Проблема заключается в том, что изменения, внесённые с помощью команды modprobe
, сбрасываются после перезагрузки или выхода из спящего режима. Следовательно, необходимо сделать настройку постоянной.
Как сделать настройку постоянной?
Чтобы применить изменения автоматически при каждой загрузке, следуйте этим шагам:
-
Добавление конфигурации в файл iwlwifi.conf:
Добавьте строку с параметром11n_disable=1
в файл конфигурации модуля:echo "options iwlwifi 11n_disable=1" | sudo tee -a /etc/modprobe.d/iwlwifi.conf
-
Перезагрузка модуля iwlwifi:
После внесения изменений, перезагрузите модуль iwlwifi:sudo modprobe -rfv iwlwifi sudo modprobe -v iwlwifi
Эти действия добавят параметры в загрузочную конфигурацию, что позволит системе автоматически применять необходимые настройки при старте.
Возможные проблемы и альтернативы
Ваша текущая настройка снижает скорость до 20 Мбит/с. Если этого недостаточно, и производительность остаётся критичной, можно рассмотреть альтернативные способы решения:
-
Обновление драйверов: Проверьте наличие обновлённых версий драйверов или ядра Linux, поскольку они могут содержать улучшения совместимости и производительности.
-
Изучение других параметров: Альтернативные значения параметра
11n_disable
, такие как2
или8
, могут улучшить ситуацию, изменяя тип поддерживаемых сетевых операций. -
Подключение через Ethernet: При высокой скорости Ethernet-соединения, как в вашем случае (930 Мбит/с), предпочтительное использование проводного подключения решит проблемы с сетью.
-
Замена Wi-Fi модуля: В крайнем случае, подумайте о замене беспроводного адаптера на более современный, полностью поддерживаемый Ubuntu.
Заключение
Оптимизация настроек драйвера iwlwifi может значительно улучшить стабильность и скорость беспроводного соединения, однако может потребоваться экпериментирование с параметрами для достижения наилучших результатов. Применив описанные меры, вы сможете сделать работоспособность Wi-Fi постоянной.