home-assistant/operating-system

unable to load firmware for wlan adapter

antst opened this issue · 5 comments

antst commented

Describe the issue you are experiencing

I am trying to get Intel BE200 working. Out of the box it does not work, as HAOS packs outdated firmware. Trying to update firmware using workaround #2225 does not work either, as it seems that /mnt/data/supervisor/firmware is mounted way too late, after iwlwifi is already loaded with an error.

# dmesg | grep iwl
[    1.842538] iwlwifi 0000:01:00.0: Detected crf-id 0x2001910, cnv-id 0x2001910 wfpm id 0x80000000
[    1.842553] iwlwifi 0000:01:00.0: PCI dev 272b/00f4, rev=0x472, rfid=0x112200
[    1.844152] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-83.ucode failed with error -2
[    1.845194] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-82.ucode failed with error -2
[    1.845731] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-81.ucode failed with error -2
[    1.847859] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-80.ucode failed with error -2
[    1.848489] iwlwifi 0000:01:00.0: no suitable firmware found!
[    1.848490] iwlwifi 0000:01:00.0: minimum version required: iwlwifi-gl-c0-fm-c0-80
[    1.848491] iwlwifi 0000:01:00.0: maximum version supported: iwlwifi-gl-c0-fm-c0-83
[    1.848492] iwlwifi 0000:01:00.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
# 

if after boot finished, in console I do

#rmmod iwlwifi
#modprobe iwlwifi

then module will load firmware and I get working interface. And then dmesg will show proper load.

# dmesg | grep iwl
[    1.842538] iwlwifi 0000:01:00.0: Detected crf-id 0x2001910, cnv-id 0x2001910 wfpm id 0x80000000
[    1.842553] iwlwifi 0000:01:00.0: PCI dev 272b/00f4, rev=0x472, rfid=0x112200
[    1.844152] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-83.ucode failed with error -2
[    1.845194] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-82.ucode failed with error -2
[    1.845731] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-81.ucode failed with error -2
[    1.847859] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-80.ucode failed with error -2
[    1.848489] iwlwifi 0000:01:00.0: no suitable firmware found!
[    1.848490] iwlwifi 0000:01:00.0: minimum version required: iwlwifi-gl-c0-fm-c0-80
[    1.848491] iwlwifi 0000:01:00.0: maximum version supported: iwlwifi-gl-c0-fm-c0-83
[    1.848492] iwlwifi 0000:01:00.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
....
[  658.746199] iwlwifi 0000:01:00.0: Detected crf-id 0x2001910, cnv-id 0x2001910 wfpm id 0x80000000
[  658.746213] iwlwifi 0000:01:00.0: PCI dev 272b/00f4, rev=0x472, rfid=0x112200
[  658.748633] iwlwifi 0000:01:00.0: api flags index 2 larger than supported by driver
[  658.748645] iwlwifi 0000:01:00.0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.4.125
[  658.749163] iwlwifi 0000:01:00.0: loaded firmware version 83.ec13314b.0 gl-c0-fm-c0-83.ucode op_mode iwlmvm
[  658.780865] iwlwifi 0000:01:00.0: Detected Intel(R) TBD Bz device, REV=0x472
[  659.055543] iwlwifi 0000:01:00.0: loaded PNVM version 35c04ca8
[  659.164316] iwlwifi 0000:01:00.0: base HW address: 44:38:e8:db:99:85
[  659.236730] iwlwifi 0000:01:00.0 wlp1s0: renamed from wlan0
[  659.649011] iwlwifi 0000:01:00.0: Registered PHC clock: iwlwifi-PTP, with index: 1
# 

so, workaround #2225 is only half-working. Suitable only for firmware loading at later stages.

so, we need either to mount /mnt/data very early in boot (but still unlikely to be good enough) or find a way to inject firmware to initrd or, ideally, have consistency between kernel modules and firmware versions :)

What operating system image do you use?

generic-x86-64 (Generic UEFI capable x86-64 systems)

What version of Home Assistant Operating System is installed?

13.2

Did the problem occur after upgrading the Operating System?

No

Hardware details

QEMU/KVM 9.0.2
PCI (WLAN) and USB(BT) passthrough for BE200

Steps to reproduce the issue

  1. Install Intel BE200 adapter
  2. Create (if missing) /mnt/data/supervisor/firmware
  3. Put iwlwifi-gl-c0-fm-c0* files from fresh linux-firmware git
  4. Boot
    ...

Anything in the Supervisor logs that might be useful for us?

irrelevant

Anything in the Host logs that might be useful for us?

relevant part of dmesg

# dmesg | grep iwl
[    1.842538] iwlwifi 0000:01:00.0: Detected crf-id 0x2001910, cnv-id 0x2001910 wfpm id 0x80000000
[    1.842553] iwlwifi 0000:01:00.0: PCI dev 272b/00f4, rev=0x472, rfid=0x112200
[    1.844152] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-83.ucode failed with error -2
[    1.845194] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-82.ucode failed with error -2
[    1.845731] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-81.ucode failed with error -2
[    1.847859] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-gl-c0-fm-c0-80.ucode failed with error -2
[    1.848489] iwlwifi 0000:01:00.0: no suitable firmware found!
[    1.848490] iwlwifi 0000:01:00.0: minimum version required: iwlwifi-gl-c0-fm-c0-80
[    1.848491] iwlwifi 0000:01:00.0: maximum version supported: iwlwifi-gl-c0-fm-c0-83
[    1.848492] iwlwifi 0000:01:00.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git


### System information

## System Information

version | core-2024.10.3
-- | --
installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
user | root
virtualenv | false
python_version | 3.12.4
os_name | Linux
os_version | 6.6.54-haos
arch | x86_64
timezone | Europe/Amsterdam
config_dir | /config

<details><summary>Home Assistant Community Store</summary>

GitHub API | ok
-- | --
GitHub Content | ok
GitHub Web | ok
HACS Data | ok
GitHub API Calls Remaining | 5000
Installed Version | 2.0.1
Stage | running
Available Repositories | 1446
Downloaded Repositories | 24

</details>

<details><summary>Home Assistant Cloud</summary>

logged_in | false
-- | --
can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Home Assistant OS 13.2
-- | --
update_channel | stable
supervisor_version | supervisor-2024.10.2
agent_version | 1.6.0
docker_version | 27.2.0
disk_total | 30.8 GB
disk_used | 12.7 GB
healthy | true
supported | true
host_connectivity | true
supervisor_connectivity | true
ntp_synchronized | true
virtualization | kvm
board | ova
supervisor_api | ok
version_api | ok
installed_addons | File editor (5.8.0), Terminal & SSH (9.15.0), EMQX (0.7.1), Zigbee2MQTT Edge (edge), Hass.io Access Point (0.5.2.1), Music Assistant Server (2.2.9)

</details>

<details><summary>Dashboards</summary>

dashboards | 4
-- | --
resources | 13
views | 13
mode | storage

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | October 21, 2024 at 3:03 PM
-- | --
current_recorder_run | October 22, 2024 at 4:53 PM
estimated_db_size | 211.03 MiB
database_engine | sqlite
database_version | 3.45.3

</details>

### Additional information

_No response_