Loading iwlwifi on RPI5

  • Hi,

    I have added a Waveshare WiFi HAT+ (https://www.waveshare.com/wiki/PCIE_TO_M.2_E_KEY_HAT%2B) with an Intel AX210 wifi card to my RPI5 running LibreELEC 12.0.2 in the hope of solving my poor WiFi reception issue (the RPI5 is too far from the AP, signal strength is only 50 or less and a repeater is not an option due to lack of power points inbetween).

    The PCIe card and wifi card are recognised as evidenced by lshw:

    but the iwlwifi module is not loaded:

    Code
    LibreELEC:~ # dmesg | grep iwlwifi
    LibreELEC:~ # modprobe iwlwifi
    modprobe: FATAL: Module iwlwifi not found in directory /lib/modules/6.6.70

    I then tried to add the correct firmware to the overlay directory /storage/.config/firmware, which according to Waveshare is iwlwifi-ty-a0-gf-a0-59.ucode. I did not create subdirectory, not sure if I need to, but after reboot I still get the same result - iwlwifi is not found. dmesg showed that the firmware overlay was processed, but the iwlwifi driver was not added.

    What am I missing, please?

  • dmesg showed that the firmware overlay was processed, but the iwlwifi driver was not added.

    The RPi5 image doesn't contain iwlwifi drivers or firmware.

    This image (LE13) has the driver enabled: https://chewitt.libreelec.tv/testing/LibreE…-12.90.1.img.gz

    I'd like to know the specific firmware files required for that card, as the iwlwifi folder in upstream linux-firmware contains a ton of files and I only want to pick the subset needed. Please experiment and report back.

  • We've now added the iwlwifi (and rtw88/89 PCIe wifi) drivers in the LE12.2 and LE13 branches. If things go well you should be able to test with official nightlies from https://test.libreelec.tv/ in a couple of hours.

    Note: we haven't included firmware files, you have to add them on your own. For the ty firmware variant the 6.12 kernel now seems to want the 89 api version:

    Code
    rpi5:~ # modinfo iwlwifi | grep firmware | grep ty
    firmware:       iwlwifi-ty-a0-gf-a0.pnvm
    firmware:       iwlwifi-ty-a0-gf-a0-89.ucode

    so long,

    Hias

  • Thank you both for your help. I have now tested with the 12.90 version and got the AX210 card to work. The required drivers are as per HiassofT's post, although lower versions are supported as well:

    The key to getting it to work was to use the firmware from the /plain directory, not the /tree directory, so these two files:

    https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/iwlwifi/iwlwifi-ty-a0-gf-a0-89.ucode

    https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/intel/iwlwifi/iwlwifi-ty-a0-gf-a0.pnvm

    After downloading them into the /storage/.config/firmware directory, the firmware is found and installed. If you use the files from the /tree directory it produces a "uCode file size ... does not match expected size" error.

    Output with firmware correctly installed and wlan1 configured:

    I will test with the 12.2 nightly build later today and report back.

  • The 12.2 nightly build worked as well, but for some reason it created 2 wireless lan adapters (wlan0 and wlan1) for the AX210, see below:

  • There's no mention of wlan2 this time. I can only see eth0, wlan0 and wlan1 in the log. NB: If you add dtoverlay=disable-wifi to config.txt it will disable the onboard Broadcom WiFi chip.

  • Yes, no wlan2 this time. Rebooted again, still only wlan0 and wlan1, so not an issue. Have disabled the built-in wifi now and it all works fine. Thanks again.

    Will the 12.2 nightly build be atuomatically updated within LibrelELEC or do I need to keep downloading new versions until it becomes a new release?