- Вопрос или проблема
- Загрузите файлы прошивки для модуля WLAN.
- Загрузите файлы прошивки для модуля i915.
- Если modprobe вызывает ошибку, потому что он используется, перезагрузка также должна сработать
- Убедитесь, что в следующий раз, когда вы загрузитесь, он будет использовать эти файлы прошивок
- Загрузите файлы прошивки для модуля i915.
- Ответ или решение
Вопрос или проблема
Симптом проблемы
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 карты, что и вызывает отсутствие подключения к беспроводной сети.
Пример:
-
Проверка оборудования: Вы уже подтвердили, что ваше устройство оснащено Wi-Fi картой Intel, соответствующей модели AX211, используя
dmesg
иlspci
. -
Ошибка при загрузке прошивки: Используя
sudo dmesg | grep iwlwifi
, вы увидели, что система пытается загрузить прошивку форматаiwlwifi-ma-b0-gf-a0-89.ucode
, но не находит ее. -
Поиск и установка прошивки: Вы также попробовали загрузку и установку прошивки из исходного репозитория ядра Linux, но сначала выбрали неправильные файлы. Однако позже обратили внимание на название файла, которое требовалось вашему устройству, и скачали его из репозитория.
Применение:
Следуйте данным шагам для успешной загрузки прошивки и активации Wi-Fi на вашем устройстве:
-
Проверка распознавания оборудования:
Используйте командуsudo dmesg | egrep 'Wi-Fi|Gen'
для удостоверения, что ваша карта — Intel(R) Wi-Fi 6E AX211. -
Подбор и загрузка прошивки:
- Перейдите в директорию для загрузки прошивки:
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
- Перейдите в директорию для загрузки прошивки:
-
Загрузка драйвера:
- Выгрузите и перезагрузите модуль
iwlwifi
, чтобы он использовал новые файлы прошивки:sudo modprobe -r iwlwifi && sudo modprobe iwlwifi
- Обновите initramfs, чтобы изменения сохранились после перезагрузки:
sudo update-initramfs -u
- Выгрузите и перезагрузите модуль
-
Устранение возможных проблем с графикой:
В случае, если система запрашивает прошивку для модуля 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. Надеюсь, этот ответ помог вам понять процесс и применить его на практике.