package: hw-detect version: 1.154 Hello, I saw the recent work to the installer surrounding firmware handling and thought I would test on my machines to see how this all was working. I used one of the daily sid_d-i netinst cds including firmware. I noticed some problems around the installer asking for firmware that was not neded for ath10k. I first tried on a laptop that had QCA-6174 hw2.1. I noticed the prompt telling me about missing firmware and asking if I wanted to load it from additional media, which was puzzling for the firmware image. If I select no, the installer continues, however, I thought this could confuse users, so I dug into it.
Before firmware atheros was loaded, the kernel tried to load versions 6 through 2 of the firmware files as well as calibration firmware files. After firmware atheros was installed, the card was brought up, and this time, only three files were missing. The cal and pre-cal files appear to be optional according to the driver source, and do not exist in linux-firmware upstream, so I think them missing is no problem. Firmware ver 6 doesn't exist yet in the upstream Linux repo so maybe this is in the driver for future use? I guess the installer still thinks there is missing firmware because of the kernel failing to load these 3 unnecessary files. After version 5 of the firmware was found, the kernel stopped trying to load versions 4 3 2, so there was many fewer missing files on the second run of check-missing-firmware. I have another laptop with hw3.2 of QCA-6174 and on that machine, only pre-cal and cal are missing after firmware-atheros is loaded by the installer. I looked at hw-detect, and noticed there was a section in check-missing-firmware.sh ignoreing intel wifi debugging firmware, but I think trying to ignore all the correct files in that location might be a bit tricky, especially if other net drivers try to load optional firmware. It also seems possible that the PCI IDs searched by the driver could be different for cal and pre-cal for different ath10k hardware although I didn't dig into this. I hope the information I provided is enough for package maintainers to determine a correct solution. Thanks for all the great work on the installer recently to make firmware handling work better. Below, a bit of text from the installer log, to show the driver is loading, but the installer still thinking there is missing firmware. Feb 5 10:35:26 check-missing-firmware: mainloop iteration #1 Feb 5 10:35:26 check-missing-firmware: lookup with /cdrom/firmware/Contents-firmware Feb 5 10:35:26 check-missing-firmware: installing firmware package /cdrom/firmware/firmware-atheros_20221214-5_all.deb (non-free-firmware) Feb 5 10:35:28 check-missing-firmware: removing and loading kernel module ath10k_pci Feb 5 10:35:28 kernel: [ 60.711599] DMAR: DRHD: handling fault status reg 2 Feb 5 10:35:28 kernel: [ 60.711605] DMAR: [DMA Write NO_PASID] Request device [01:00.0] fault addr 0x7ee00000 [fault reason 0x05] PTE Write access is not set Feb 5 10:35:28 kernel: [ 60.711661] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0 Feb 5 10:35:28 kernel: [ 60.977712] ath10k_pci 0000:01:00.0: firmware: failed to load ath10k/pre-cal-pci-0000:01:00.0.bin (-2) Feb 5 10:35:28 kernel: [ 60.977724] ath10k_pci 0000:01:00.0: firmware: failed to load ath10k/pre-cal-pci-0000:01:00.0.bin (-2) Feb 5 10:35:28 kernel: [ 60.977735] ath10k_pci 0000:01:00.0: firmware: failed to load ath10k/cal-pci-0000:01:00.0.bin (-2) Feb 5 10:35:28 kernel: [ 60.977744] ath10k_pci 0000:01:00.0: firmware: failed to load ath10k/cal-pci-0000:01:00.0.bin (-2) Feb 5 10:35:28 kernel: [ 60.977755] ath10k_pci 0000:01:00.0: firmware: failed to load ath10k/QCA6174/hw2.1/firmware-6.bin (-2) Feb 5 10:35:28 kernel: [ 60.977762] ath10k_pci 0000:01:00.0: firmware: failed to load ath10k/QCA6174/hw2.1/firmware-6.bin (-2) Feb 5 10:35:28 kernel: [ 60.977973] ath10k_pci 0000:01:00.0: firmware: direct-loading firmware ath10k/QCA6174/hw2.1/firmware-5.bin Feb 5 10:35:28 kernel: [ 60.977980] ath10k_pci 0000:01:00.0: qca6174 hw2.1 target 0x05010000 chip_id 0x003405ff sub 144d:4125 Feb 5 10:35:28 kernel: [ 60.977986] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 0 tracing 0 dfs 0 testmode 0 Feb 5 10:35:28 kernel: [ 60.978697] ath10k_pci 0000:01:00.0: firmware ver SW_RM.1.1.1-00157-QCARMSWPZ-1 api 5 features ignore-otp,no-4addr-pad crc32 10bf8e08 Feb 5 10:35:28 kernel: [ 61.040011] ath10k_pci 0000:01:00.0: firmware: direct-loading firmware ath10k/QCA6174/hw2.1/board-2.bin Feb 5 10:35:28 kernel: [ 61.040387] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id N/A crc32 ae2e275a Feb 5 10:35:29 check-missing-firmware: looking at dmesg again, restarting from timestamp: [ 57.345819] Feb 5 10:35:29 check-missing-firmware: timestamp found, truncating dmesg accordingly Feb 5 10:35:29 check-missing-firmware: saving timestamp for a later use: [ 61.040387] Feb 5 10:35:29 check-missing-firmware: looking for firmware file ath10k/pre-cal-pci-0000:01:00.0.bin requested by ath10k_pci Feb 5 10:35:29 check-missing-firmware: looking for firmware file ath10k/pre-cal-pci-0000:01:00.0.bin requested by ath10k_pci Feb 5 10:35:29 check-missing-firmware: looking for firmware file ath10k/cal-pci-0000:01:00.0.bin requested by ath10k_pci Feb 5 10:35:29 check-missing-firmware: looking for firmware file ath10k/cal-pci-0000:01:00.0.bin requested by ath10k_pci Feb 5 10:35:29 check-missing-firmware: looking for firmware file ath10k/QCA6174/hw2.1/firmware-6.bin requested by ath10k_pci Feb 5 10:35:29 check-missing-firmware: looking for firmware file ath10k/QCA6174/hw2.1/firmware-6.bin requested by ath10k_pci Feb 5 10:35:29 check-missing-firmware: missing firmware files (ath10k/pre-cal-pci-0000:01:00.0.bin ath10k/pre-cal-pci-0000:01:00.0.bin ath10k/cal-pci-0000:01:00.0.bin ath10k/cal-pci-0000:01:00.0.bin ath10k/QCA6174/hw2.1/firmware-6.bin ath10k/QCA6174/hw2.1/firmware-6.bin) for ath10k_pci Feb 5 10:35:29 kernel: [ 62.211095] ath10k_pci 0000:01:00.0: htt-ver 3.1 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1 Feb 5 10:35:30 kernel: [ 62.299139] ath: EEPROM regdomain: 0x6a Feb 5 10:35:30 kernel: [ 62.299142] ath: EEPROM indicates we should expect a direct regpair map Feb 5 10:35:30 kernel: [ 62.299144] ath: Country alpha2 being used: 00 Feb 5 10:35:30 kernel: [ 62.299145] ath: Regpair used: 0x6a Feb 5 10:35:30 kernel: [ 62.300428] ath10k_pci 0000:01:00.0 wlp1s0: renamed from wlan0 Feb 5 10:35:30 net/hw-detect.hotplug: Detected hotpluggable network interface wlp1s0 Feb 5 10:36:02 check-missing-firmware: mainloop iteration #2