site  contact  subhomenews

Report missing firmware at first bootup

November 25, 2020 — BarryK

This is such a common problem, someone boots EasyOS and then finds that wifi, bluetooth, ethernet, or something else, doesn't work. So they post a question of the forum, or send me an email.

My first advice is to find out if the Linux kernel tried and failed to load firmware, by running this in a terminal:

# dmesg | grep -i firmware

Today I made a first attempt to automatically parse the output of 'dmesg', and popup a window informing if firmware is missing. I wrote a little script, /usr/sbin/report-fw-fail, which is called from /usr/sbin/delayedrun at first bootup.

Parsing of 'dmesg' output in a script is not really recommended, and it is tricky. For example, a kernel driver may try to load firmware, it fails, then the driver may try a fallback firmware file, and if that fails, it may have yet another fallback -- the script will need to recognise the eventual success and reject the failures.

Parsing is difficult as there is no real standard syntax, well, only a very loose standard, for the strings that drivers will output to the syslog. I have had a go anyway, and when you test the next release, if it reports a missing firmware, if would be good to check in a terminal as shown above, to confirm that my script got it right.

The script will only run at first bootup, not a version update, but can be run in a terminal:

# report-fw-fail  

As this needs testing, I have posted it to the forum:

Testers welcome!  

Tags: easy