Beelink N305 EQ12 Pro - Bluetooth: hci0: failed to load intel firmware file intel/ibt-0040-1050.sfi (-2)”

I purchased the Beelink i3 N305 EQ12 Pro to run Home Assistant OS. I successfully burned the HAOS image to the SSD. Powering on the Beelink correctly launches Home Assistant however I am getting the following error:

“Bluetooth: hci0: failed to load intel firmware file intel/ibt-0040-1050.sfi (-2)”

I am new to Home Assistant. Any help with this error would be greatly appreciated.

3 Likes

It seems that the required driver for the installed bluetooth hardware is missing. This is a pretty new system with a new CPU and a new WiFi 6 and Bluetooth 5.2 AX101 module. It seems that the needed driver is not included in the latest HAOS. Check here https://github.com/home-assistant/operating-system/issues if somebody already requested support for the new module and if not then you can do it.
See also here https://www.cnx-software.com/2023/07/07/fixing-wifi-6-on-linux-in-alder-lake-n-mini-pcs-intel-n95-n100-core-i3-n300/

1 Like

I have the exact same error. Did you find any fix? Even the last dev HA OS version didn’t work for me

Other Ubuntu Linux users described the AX101 issue in Intel’s Linux iwlwifi at this Intel Community forum thread. The root cause is, the current release of the iwlwifi driver incorrectly rejects loading for the newer device.

A few posts describe patching the driver source code and/or renaming a pair of files.
Last post in the thread says “WiFi is working fine under Kernel 6.4-rc7. Upgrade it.”

The fix is in Linux Kernel 6.4 afaik, HAOS currently uses Kernel 6.1.45. I don’t not know when HAOS will include 6.4 (or later) but it might take some time. Reading through the Intel community forum thread that Keith posted above its totally unclear to me how you would patch the driver or upgrade the kernel under HAOS since it is using Buildroot https://developers.home-assistant.io/docs/operating-system/.

2 Likes

Although this does not really help right now, this was already flagged as a HAOS bug
https://github.com/home-assistant/operating-system/issues/2611

Same here, bought the same hardware for HA. I guess i’ll just wait? Not sure what else I can do.

To be quite honest (and I know the HA developers don’t read a lot of this forum) I had hoped the devs might have picked up on it and worked it into builds until they get to shipping Linux Kernel 6.4. Yeah, I’m stupid that way.

If you have a Bluetooth USB Dongle then you could use that one until HAOS is upgraded. You might need to disable internal BT though.

Still have the same error…
Any expectation for a fix?

On a new Beelink Mini S12 Pro ( Intel 12th Gen - N100 WiFi6 BT5.2) - same error.

Installed HA OS 11.0.rc1 (which incorporates Linux 6.1.55) that was released for testing a few days ago - error persists, as expected.

Disable the Bluetooth integration in HA will stop the errors. Besides using a BT USB dongle workaround, having an ESP32 BT Proxy installed is also a good option.

3 Likes

Thanks for the link to the cnx-software.com article. It states that just 2 symlink commands enable Linux (pre 6.5) to find the NEW Bluetooth drivers simply by referring to them by an earlier/known name.

I’m not able to test this until later next week, but I was wondering if anyone else here is willing to give it a go and report back.

Ian also successfully tested Bluetooth after creating symlinks to “ibt-1040-1050.ddc” and “ibt-1040-1050.sfi”:

sudo ln -s ibt-1040-4150.ddc ibt-0040-1050.ddc

sudo ln -s ibt-1040-4150.sfi ibt-0040-1050.sfi

Hopefully, the latest iwlwifi drivers will further improve support for AX101 WiFi and Bluetooth module and will be officially released on the Intel website (Note the AX101 is currently missing). Linux 6.5 may ship with an updated version, meaning it may be good revisiting the issue around the end of August when the latest kernel is expected to be released, besides monitoring the Intel website for new drivers…

Updated: We have updated the post after Ian did further WiFi testing and confirmed Bluetooth works after adding the symlinks.

2 Likes

I have your same mini PC just bought and have same problem.

Fortunately I don’t use Bluetooth in my configuration…for now. But I want to resolve this.

It would be better to track this issue on Github. AX101 WiFi 6 & Bluetooth 5.2 module issue · Issue #98523 · home-assistant/core · GitHub

I am not clear if it is even possible a HAOS user logged in as root can change the file system from R/O to R/W these drivers reside on in order to execute the symlink.

1 Like

Thanks to a clue here How to use firmware search path? (e.g. `/mnt/data/supervisor/share/firmware`) - #18 by codewithpassion - think i’ve sorted this on HAOS. So login on the console and I had to create an appropriate folder (firmware folder not already present on my install):

mkdir -p /mnt/boot/firmware/intel

Copy the firmware files to the “new” names in this folder (kind of like creating the symbolic links,I guess):

cp /usr/lib/firmware/intel/ibt-1040-4150.ddc /mnt/boot/firmware/intel/ibt-0040-1050.ddc
cp /usr/lib/firmware/intel/ibt-1040-4150.sfi /mnt/boot/firmware/intel/ibt-0040-1050.sfi

Sorry forgot also add the following to /mnt/boot/cmdline.txt

firmware_class.path=/mnt/boot/firmware/

Reboot and it’s working for me on Beelink N305 EQ12 Pro

1 Like

This is an issue I am dealing with (Trying to get bluetooth and wifi working on my
Beelink S12 Pro Mini) and I was just curious–your solution shows copying 1040-4150 versions of the files and naming them 0040-1050 in the firmware directory? How did you determine that you should use the 1040-4150 versions but rename them to match the missing files?

Thanks,

from some of the posts in this thread: AX101 WiFi 6 & Bluetooth 5.2 module issue · Issue #98523 · home-assistant/core · GitHub

Just tried exactly as you suggested and still

This is how my cmdline.txt looks like:

# cat cmdline.txt
console=ttyS0 console=tty1
firmware_class.path=/mnt/boot/firmware/

On a Beelink MINI-S12 Pro Mini PC

…what I am wondering: it is looking for the files in /intel/blabla… is that somehow a hint?

yes - it’s been established elsewhere that you need to create that folder in /mnt/boot/firmware/ and move the files into there. will fix the original post.