Обновление драйверов Wi-Fi в Linux: полное руководство для начинающих и опытных пользователей

Если ваш 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
📊 Какой тип Wi-Fi адаптера у вас?
Встроенный в ноутбук
USB-донгл
PCIe-карта
Не знаю

Шаг 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) и выполните:

  1. Удалите проблемный модуль: rmmod [имя_драйвера].
  2. Верните старую версию из бэкапа или переустановите пакет.
  3. Обновите инициализационные файлы: 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), можно написать скрипт, который будет:

  1. Проверять наличие обновлений на GitHub.
  2. Скачивать и компилировать новую версию.
  3. Перезагружать модуль ядра.

Пример простого скрипта:

#!/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-модули) могут не собраться для новой версии. Решение:

  1. Проверьте, установлен ли dkms:
  2. sudo apt install dkms
  3. Пересоберите модуль для нового ядра:
  4. sudo dkms install -m [драйвер] -v [версия] -k [версия_ядра]
  5. Убедитесь, что модуль загружен:
  6. lsmod | grep [драйвер]

Если не помогает, попробуйте откатиться на старое ядро через GRUB.