Если ваш Wi-Fi на Linux работает нестабильно, часто разрывает соединение или вообще не определяет сети, проблема может крыться в устаревших драйверах. В отличие от Windows, где обновление драйверов часто происходит автоматически через Диспетчер устройств, в Linux этот процесс требует ручного вмешательства. Здесь нет универсального решения — метод зависит от типа адаптера, дистрибутива и даже версии ядра.
В этой статье мы разберём все актуальные способы обновления драйверов Wi-Fi: от простых команд в терминале до компиляции проприетарных модулей из исходников. Вы узнаете, как определить модель адаптера, проверить текущий драйвер, установить обновления через пакетные менеджеры или напрямую с сайта производителя. А ещё — что делать, если после обновления Wi-Fi перестал работать совсем.
Почему важно обновлять драйвера Wi-Fi в Linux
Драйвера Wi-Fi в Linux обновляются реже, чем в Windows, но это не значит, что они не требуют внимания. Устаревшие версии могут вызывать:
- 🔌 Проблемы с подключением — адаптер видит сети, но не может к ним подключиться или постоянно разрывает соединение.
- 🐢 Низкую скорость — даже при хорошем сигнале скорость передачи данных в разы ниже ожидаемой.
- 🔍 Отсутствие поддержки новых стандартов — например, Wi-Fi 6 или WPA3.
- 🔄 Конфликты с ядром — после обновления системы Wi-Fi перестаёт работать.
Особенно актуально обновление для ноутбуков с адаптерами Intel, Realtek или Broadcom, где производители регулярно выпускают патчи для исправления багов. Например, драйвера iwlwifi для Intel AX200 получают обновления почти каждый месяц, а Realtek RTL8821CE часто требует ручной установки из-за отсутствия в стандартных репозиториях.
⚠️ Внимание: Если вы используете LTS-версию ядра (например, 5.15 или 6.1), некоторые новые драйвера могут не поддерживаться. В этом случае придётся либо обновлять ядро, либо искать альтернативные решения.
Шаг 1: Определяем модель Wi-Fi адаптера и текущий драйвер
Прежде чем обновлять драйвер, нужно узнать, какое именно железо установлено в вашем устройстве. Для этого используем команду:
lspci -knn | grep -iA3 net
В выводе ищите строки с упоминанием Network controller. Например:
03:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)
Subsystem: Intel Corporation Wi-Fi 6 AX200NGW [8086:0024]
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
Здесь:
Intel Corporation Wi-Fi 6 AX200— модель адаптера.iwlwifi— текущий драйвер.8086:2723— идентификаторы Vendor:Device ID, которые пригодятся для поиска драйверов.
Если у вас USB-адаптер (например, TP-Link TL-WN725N), используйте команду:
lsusb
Или для более детальной информации:
dmesg | grep -i wifi
Шаг 2: Проверяем доступные обновления через пакетный менеджер
Самый простой способ обновить драйвера — использовать стандартные репозитории вашего дистрибутива. В большинстве случаев это сработает для адаптеров Intel и некоторых моделей Realtek/Broadcom.
Для Debian/Ubuntu и производных:
sudo apt update
sudo apt upgrade
Для Arch Linux:
sudo pacman -Syu
Для Fedora:
sudo dnf upgrade
Если после обновления пакетов Wi-Fi не заработал лучше, значит, в репозиториях нет свежей версии драйвера. В этом случае придётся устанавливать его вручную.
Шаг 3: Установка проприетарных драйверов (для Broadcom, Realtek и др.)
Некоторые адаптеры (особенно Broadcom и отдельные модели Realtek) требуют проприетарных драйверов, которые не включены в ядро Linux. Рассмотрим два способа их установки.
Способ 1: Через дополнительные репозитории (Ubuntu/Debian)
Для Broadcom:
sudo apt install --install-recommends linux-firmware-nonfree
Для Realtek RTL88x2BU (например, адаптеры TP-Link Archer T4U):
sudo apt install rtl88x2bu-dkms
Способ 2: Ручная компиляция из исходников
Если вашего адаптера нет в репозиториях, придётся скачивать драйвер с сайта производителя или с GitHub. Например, для Realtek RTL8821CE:
git clone https://github.com/tomaspinho/rtl8821ce
cd rtl8821ce
make
sudo make install
sudo modprobe 8821ce
После установки перезагрузите систему. Если Wi-Fi не заработал, проверьте логи:
dmesg | grep -i 8821ce
⚠️ Внимание: При ручной компиляции драйверов убедитесь, что у вас установленыbuild-essential,linux-headersиdkms. Без них сборка завершится ошибкой.
Установить пакеты для компиляции (build-essential, linux-headers)|
Скачать исходники драйвера с официального сайта или GitHub|
Создать бэкап текущего драйвера (modinfo [имя_модуля])|
Отключить конфликтующие модули (sudo modprobe -r [модуль])
-->
Шаг 4: Обновление драйверов для Intel Wi-Fi (iwlwifi)
Адаптеры Intel (например, AX200, AX210, 9260) используют открытый драйвер iwlwifi, но для его работы требуются firmware-файлы. Их можно обновить отдельно от ядра.
Скачайте последние firmware с официального репозитория:
git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
cd linux-firmware
sudo cp iwlwifi-* /lib/firmware/
sudo modprobe -r iwlwifi && sudo modprobe iwlwifi
Если после обновления появились ошибки вроде iwlwifi 0000:03:00.0: firmware: failed to load iwlwifi-cc-a0-XX.ucode, значит, вы скачали не ту версию firmware. Проверьте поддерживаемые файлы для вашей модели адаптера на официальной вики.
| Модель адаптера | Требуемый firmware-файл | Поддержка Wi-Fi 6 |
|---|---|---|
| Intel AX200 | iwlwifi-cc-a0-XX.ucode |
Да |
| Intel 9260 | iwlwifi-9000-pu-b0-jf-b0-XX.ucode |
Нет |
| Intel 8265 | iwlwifi-8000C-XX.ucode |
Нет |
| Intel 7260 | iwlwifi-7260-XX.ucode |
Нет |
Шаг 5: Решаем проблемы после обновления
Иногда после обновления драйвера Wi-Fi перестаёт работать совсем. Вот наиболее частые проблемы и их решения:
- 🔌 Адаптер не определяется — проверьте, загружен ли модуль ядра:
lsmod | grep [имя_драйвера]. Если нет, загрузите его вручную:sudo modprobe [имя_драйвера]. - 🔄 Постоянные разрывы соединения — попробуйте отключить энергосбережение:
sudo iwconfig wlan0 power off. - 🚫 Ошибка "Operation not permitted" — возможно, драйвер конфликтует с
NetworkManager. Перезапустите службу:sudo systemctl restart NetworkManager. - 🐢 Низкая скорость — проверьте режим работы адаптера:
iwconfig wlan0. Если указанIEEE 802.11b/g, принудительно включите802.11n/acчерезiw.
Если ничего не помогает, попробуйте откатиться на старую версию драйвера:
sudo modprobe -r [имя_драйвера]
sudo dkms remove [драйвер]/[версия] --all
sudo apt install [драйвер]=[старая_версия]
Что делать, если после обновления драйвера система не загружается?
Если после установки нового драйвера Linux не стартует или зависает на этапе инициализации Wi-Fi, загрузитесь в recovery mode (через GRUB) и выполните:
- Удалите проблемный модуль:
rmmod [имя_драйвера]. - Верните старую версию из бэкапа или переустановите пакет.
- Обновите инициализационные файлы:
update-initramfs -u(для Debian/Ubuntu).
Если не помогает, загрузитесь с LiveUSB и удалите драйвер вручную из /lib/modules/.
Шаг 6: Автоматизация обновлений (актуально для серверов)
Если вы администрируете сервер или хотите, чтобы драйвера обновлялись автоматически, настройте cron-задачу. Например, для еженедельной проверки обновлений firmware:
0 0 1 sudo apt update && sudo apt upgrade -y linux-firmware
Для адаптеров, требующих ручной компиляции (например, Realtek RTL88x2BU), можно написать скрипт, который будет:
- Проверять наличие обновлений на GitHub.
- Скачивать и компилировать новую версию.
- Перезагружать модуль ядра.
Пример простого скрипта:
#!/bin/bash
DRIVER_DIR="/usr/src/rtl88x2bu"
cd $DRIVER_DIR
git pull
make clean
make
sudo make install
sudo modprobe -r 88x2bu && sudo modprobe 88x2bu
⚠️ Внимание: Автоматическое обновление драйверов на рабочей машине может привести к неожиданным сбоям. Тестируйте новые версии на тестовом окружении перед развёртыванием.
FAQ: Частые вопросы по обновлению драйверов Wi-Fi в Linux
Мой адаптер не определяется даже после обновления драйвера. Что делать?
Если команда ip a или iwconfig не показывает ваш Wi-Fi адаптер, проблема может быть в:
- Отсутствии firmware-файлов (проверьте
/lib/firmware/). - Конфликте с другими модулями (выполните
sudo lshw -C network). - Аппаратной неисправности (попробуйте адаптер на другом устройстве).
Для диагностики используйте:
dmesg | grep -i wifi
journalctl -xe | grep -i network
Как узнать, какая версия драйвера установлена?
Выполните команду:
modinfo [имя_модуля] | grep version
Например, для iwlwifi:
modinfo iwlwifi | grep version
Также можно посмотреть загруженные модули:
lsmod | grep [имя_драйвера]
Можно ли обновить драйвер без перезагрузки?
Да, в большинстве случаев достаточно перезагрузить модуль ядра:
sudo modprobe -r [имя_драйвера]
sudo modprobe [имя_драйвера]
Если драйвер используется сетевыми службами (например, NetworkManager), сначала остановите их:
sudo systemctl stop NetworkManager
обновляем драйвер
sudo systemctl start NetworkManager
Где взять драйвер для редкого Wi-Fi адаптера?
Если вашего адаптера нет в стандартных репозиториях, попробуйте следующие источники:
- Официальный сайт производителя (например, Realtek, Mediatek).
- Репозитории на GitHub (ищите по модели адаптера + "linux driver").
- Форум Ask Ubuntu или Arch Linux Forum.
- Сайт Linux Wireless Wiki.
Обратите внимание на лицензию — некоторые драйвера распространяются только в бинарном виде и могут конфликтовать с открытым ПО.
После обновления ядра Wi-Fi перестал работать. Как исправить?
Это типичная проблема при обновлении ядра — старые драйвера (особенно DKMS-модули) могут не собраться для новой версии. Решение:
- Проверьте, установлен ли
dkms: - Пересоберите модуль для нового ядра:
- Убедитесь, что модуль загружен:
sudo apt install dkms
sudo dkms install -m [драйвер] -v [версия] -k [версия_ядра]
lsmod | grep [драйвер]
Если не помогает, попробуйте откатиться на старое ядро через GRUB.