Как загрузить прошивку для WiFi AX211 в Debian Trixie?

Вопрос или проблема

Симптом проблемы
WiFi не работает при чистой установке (и на live-образе тоже).
Мне нужна помощь, чтобы понять, как загрузить правильный драйвер/прошивку.
Насколько я могу судить, устройство распознается iwlwifi, но не находит для него прошивку.
Информация об операционной системе
Сейчас я использую Debian trixie (тестирование), потому что надеялся, что так получу достаточно новые пакеты. Я также пробовал стабильную версию (bookworm), но не смог даже загрузиться в GUI с этим live-образом, поэтому переключился обратно на trixie.
$ uname -a
Linux fake-21kc0053mz 6.9.7-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.9.7-1 (2024-06-27) x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux trixie/sid
Release: n/a
Codename: trixie

Информация об оборудовании
$ lspci -nn |grep WiFi
00:14.3 Network controller [0280]: Intel Corporation Meteor Lake PCH CNVi WiFi [8086:7e40] (rev 20)

$ sudo dmesg | egrep ‘Wi-Fi|Gen’
[ 6.926689] thinkpad_acpi: Lenovo ThinkPad X1 Carbon Gen 12, model 21KC0053MZ
[ 7.449218] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6E AX211 160MHz

$ sudo rfkill list
0: tpacpi_bluetooth_sw: Bluetooth
Soft blocked: no
Hard blocked: no
1: hci0: Bluetooth
Soft blocked: no
Hard blocked: no

$ sudo lspci -v | grep WiFi -A12
00:14.3 Network controller: Intel Corporation Meteor Lake PCH CNVi WiFi (rev 20)
Subsystem: Intel Corporation Device 0090
Flags: fast devsel, IRQ 18, IOMMU group 12
Memory at 405a704000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [c8] Power Management version 3
Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [40] Express Root Complex Integrated Endpoint, IntMsgNum 0
Capabilities: [80] MSI-X: Enable- Count=16 Masked-
Capabilities: [100] Latency Tolerance Reporting
Capabilities: [164] Vendor Specific Information: ID=0010 Rev=0 Len=014 <?>
Kernel modules: iwlwifi

00:15.0 Serial bus controller: Intel Corporation Meteor Lake-P Serial IO I2C Controller #0 (rev 20)

Беспроводной интерфейс отсутствует
$ sudo iwconfig
lo no wireless extensions.

enx00e04c680094 no wireless extensions.

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enx00e04c680094: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:e0:4c:68:00:94 brd ff:ff:ff:ff:ff:ff
inet 192.168.158.21/24 brd 192.168.158.255 scope global dynamic noprefixroute enx00e04c680094
valid_lft 862309sec preferred_lft 862309sec
inet6 2001:1686:aa02:1801:a257:9b2:c8f6:ddf/128 scope global dynamic noprefixroute
valid_lft 7166sec preferred_lft 3566sec
inet6 2001:1686:aa02:1801:7ab5:2654:2344:a04/64 scope global dynamic noprefixroute
valid_lft 7042sec preferred_lft 3442sec
inet6 fe80::a257:9b2:c8f6:ddf/64 scope link noprefixroute
valid_lft forever preferred_lft forever

Что я попробовал

Intel не указывает драйвер для AX211

Судя по беглому взгляду на магазин Lenovo, мне кажется, что Gen 11 и Gen 12 (моя модель ноутбука) Lenovo Carbon X1 имеют одну и ту же WiFi карту, поэтому InstallingDebianOn/Thinkpad/X1 Carbon Gen 11/trixie может быть полезным.

Как в кодовом фрагменте там (но в уже существующей установке, а не во время установки) я скопировал прошивку с git.kernel.org в /lib/firmware.

$ mkdir firmware && cd firmware

Загрузите файлы прошивки для модуля WLAN.

$ wget -r -nd -e robots=no -A ‘iwlwifi-so-a0-gf-a0.‘ –accept-regex ‘/plain/’ https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/

Загрузите файлы прошивки для модуля i915.

$ mkdir i915 && cd i915
§ wget -r -nd -e robots=no –accept-regex ‘/plain/’ https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915

После выполнения команды sudo modprobe -r iwlwifi && sudo modprobe iwlwifi, вывод команды sudo dmesg | grep iwl показывает, что пытаются использовать вновь добавленные файлы прошивок:

$ sudo dmesg | grep iwl
[ 6.903352] Loading modules backported from iwlwifi
[ 6.903352] iwlwifi-stack-public:master:12220:5e893e52
[ 7.447491] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[ 7.449214] iwlwifi 0000:00:14.3: Detected crf-id 0x400410, cnv-id 0x1080800 wfpm id 0x80000020
[ 7.449216] iwlwifi 0000:00:14.3: PCI dev 7e40/0090, rev=0x441, rfid=0x2010d000
[ 7.449218] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6E AX211 160MHz
[ 7.449266] iwlwifi 0000:00:14.3: firmware: failed to load iwl-dbg-cfg.ini (-2)
[ 7.449272] iwlwifi 0000:00:14.3: firmware: failed to load iwl-dbg-cfg.ini (-2)
[ 7.449512] iwlwifi 0000:00:14.3: firmware: failed to load iwlwifi-ma-b0-gf-a0-89.ucode (-2)
[ 7.449516] iwlwifi 0000:00:14.3: firmware: failed to load iwlwifi-ma-b0-gf-a0-89.ucode (-2)
[ 7.449516] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-ma-b0-gf-a0-89.ucode failed with error -2
[ 7.449527] iwlwifi 0000:00:14.3: firmware: failed to load iwlwifi-ma-b0-gf-a0-88.ucode (-2)

[ 7.449786] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-ma-b0-gf-a0-59.ucode failed with error -2
[ 7.449787] iwlwifi 0000:00:14.3: no suitable firmware found!
[ 7.449789] iwlwifi 0000:00:14.3: minimum version required: iwlwifi-ma-b0-gf-a0-59
[ 7.449790] iwlwifi 0000:00:14.3: maximum version supported: iwlwifi-ma-b0-gf-a0-89
[ 7.449790] iwlwifi 0000:00:14.3: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

Lenovo имеет руководство по установке debian (старой версии) на другую модель ноутбука. Проблемы, которые они там упоминают, совпадают с моими (тачпад и wifi), поэтому я попытался следовать разделу 5 Вариант 1: установка lenovo thinkpad p53 p73 debian10
Это тоже не помогло. После выполнения sudo update-initramfs -u и перезагрузки интерфейс wifi по-прежнему не отображается.

В Debian unstable нет более новой версии firmware-iwlwifi

Я только что заметил, что вывод dmesg указывает другое имя, чем то, что я загрузил! требуется iwlwifi-ma-b0-gf-a0-89, а не ‘iwlwifi-so-a0-gf-a0.‘. Когда я копирую файлы, совпадающие с шаблоном iwlwifi-ma-b0-gf-a0. из https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/ в /lib/firmware и выполняю sudo modprobe -r iwlwifi && sudo modprobe iwlwifi, я вижу теперь другой вывод dmesg | grep iwl. Я обновлю этот вопрос после перезагрузки.

Теперь есть подключение, благодаря этому вопросу! Основная проблема заключалась в том, что я не уделял достаточно внимания точному формату, который упоминал вывод dmesg. Чтобы подытожить:
Цель
Вот как настроить работу wifi на ноутбуке Lenovo X1 Carbon Gen 12, работающем под управлением Debian Trixie, с картой Wi-Fi Intel(R) Wi-Fi 6E AX211.
Решение

Убедитесь, что у вас такая же карта WiFi, как и у меня:

$ sudo dmesg | egrep ‘Wi-Fi|Gen’
[ 6.926689] thinkpad_acpi: Lenovo ThinkPad X1 Carbon Gen 12, model 21KC0053MZ
[ 7.449218] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6E AX211 160MHz

Поскольку это карта WiFi от Intel, она использует iwlwifi, поэтому мы смотрим на вывод sudo dmesg | grep iwlwifi и видим maximum version supported: iwlwifi-ma-b0-gf-a0-89.

Загрузите эту версию прошивки с веб-сайта ядра Linux (https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/ ), используя шаблон с регулярным выражением:

mkdir firmware
cd firmware
wget -r -nd -e robots=no -A ‘iwlwifi-ma-b0-gf-a0‘ –accept-regex ‘/plain/’ https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/
sudo cp ./
/lib/firmware

Это должно выгрузить некоторые файлы .ucode и .pnvm туда.

Проверьте, чтобы драйвер iwlwifi использовал их.

Если modprobe вызывает ошибку, потому что он используется, перезагрузка также должна сработать

sudo modprobe -r iwlwifi && sudo modprobe iwlwifi

Убедитесь, что в следующий раз, когда вы загрузитесь, он будет использовать эти файлы прошивок

sudo update-initramfs -u

Примечание
Возможно, что на каком-то этапе возникнут ошибки о недостающей прошивке i915. Я честно не знаю, что это делает … что-то связанное с графикой? Но в связанном руководстве была команда, которая это исправила для меня тоже (ее нужно выполнить до обновления initramfs):

Загрузите файлы прошивки для модуля i915.

$ mkdir i915 && cd i915
$ wget -r -nd -e robots=no –accept-regex ‘/plain/’ https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
$ sudo cp ./* /lib/firmware/i915

На askubuntu описана другая похожая проблема, полезная в случае, если у вас также отсутствует прошивка rtl_nic.

О. Боже. Спасибо! Я работал над решением этой проблемы с тех пор, как установил Linux Modicia 2 недели назад. Я пробовал все, что говорит интернет (это всего лишь моя вторая установка Linux). Большинство из них были неважными, некоторые сделали хуже, но я стал ближе к пониманию проблемы и это в конце концов привело меня к этой теме. Огромное спасибо за ваше решение!

Ответ или решение

Загрузка прошивки для WiFi AX211 в Debian Trixie

Теория:

Для начала, давайте рассмотрим, с чем именно мы столкнулись. У вас есть ноутбук Lenovo ThinkPad X1 Carbon Gen 12, который оборудован картой Intel(R) Wi-Fi 6E AX211 160MHz. Эта карта требует определенного программного обеспечения (прошивки), чтобы корректно работать в операционной системе Linux. Несмотря на распознавание устройства iwlwifi, драйвер не может найти подходящую прошивку для этой Wi-Fi карты, что и вызывает отсутствие подключения к беспроводной сети.

Пример:

  1. Проверка оборудования: Вы уже подтвердили, что ваше устройство оснащено Wi-Fi картой Intel, соответствующей модели AX211, используя dmesg и lspci.

  2. Ошибка при загрузке прошивки: Используя sudo dmesg | grep iwlwifi, вы увидели, что система пытается загрузить прошивку формата iwlwifi-ma-b0-gf-a0-89.ucode, но не находит ее.

  3. Поиск и установка прошивки: Вы также попробовали загрузку и установку прошивки из исходного репозитория ядра Linux, но сначала выбрали неправильные файлы. Однако позже обратили внимание на название файла, которое требовалось вашему устройству, и скачали его из репозитория.

Применение:

Следуйте данным шагам для успешной загрузки прошивки и активации Wi-Fi на вашем устройстве:

  1. Проверка распознавания оборудования:
    Используйте команду sudo dmesg | egrep 'Wi-Fi|Gen' для удостоверения, что ваша карта — Intel(R) Wi-Fi 6E AX211.

  2. Подбор и загрузка прошивки:

    • Перейдите в директорию для загрузки прошивки:
      mkdir firmware && cd firmware
    • Используйте wget для скачивания нужных файлов:
      wget -r -nd -e robots=no -A 'iwlwifi-ma-b0-gf-a0*' --accept-regex '/plain/' https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/
    • Переместите скачанные файлы в системную папку прошивок:
      sudo cp ./* /lib/firmware
  3. Загрузка драйвера:

    • Выгрузите и перезагрузите модуль iwlwifi, чтобы он использовал новые файлы прошивки:
      sudo modprobe -r iwlwifi && sudo modprobe iwlwifi
    • Обновите initramfs, чтобы изменения сохранились после перезагрузки:
      sudo update-initramfs -u
  4. Устранение возможных проблем с графикой:
    В случае, если система запрашивает прошивку для модуля i915 (графического процессора Intel), выполните följande действия:

    • Создайте папку и скачайте необходимую прошивку:
      mkdir i915 && cd i915
      wget -r -nd -e robots=no --accept-regex '/plain/' https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
      sudo cp ./* /lib/firmware/i915

Данный процесс помог вам решить проблему с отсутствием беспроводного подключения.

Вывод:

Эта пошаговая инструкция, сосредоточенная на проверке аппаратных идентификаторов и загрузке соответствующих прошивок, демонстрирует, как важно следовать указаниям системных сообщений и понимать их контекст. Обновление прошивки через репозиторий ядра Linux требует точности и соблюдения форматов, но в конечном итоге позволяет успешно настроить поддержку нового оборудования в старших версиях Debian, таких как Trixie. Надеюсь, этот ответ помог вам понять процесс и применить его на практике.

Оцените материал
Добавить комментарий

Капча загружается...