fedora-coreos-docs
fedora-coreos-docs copied to clipboard
kernel: show how to add custom node-local firmware blobs
It looks like some users are having troubles bringing custom firmware blobs to their nodes, mostly because the default location under /usr/lib/firmware is read-only.
The proper way to do that would be instead to store the blobs somewhere in node-local storage (e.g. /var or /usr/local) and tweak the kernel search path to look it up there.
In a manual way, this is how it looks like (dummy regulatory.db example):
# rpm-ostree kargs --append firmware_class.path=/usr/local/lib/firmware/updates --reboot
# cat /sys/module/firmware_class/parameters/path
/usr/local/lib/firmware/updates
# mkdir -p /usr/local/lib/firmware/updates
# touch /usr/local/lib/firmware/updates/regulatory.db
# modprobe cfg80211 && dmesg | grep regulatory
[...]
[ 787.974091] platform regulatory.0: loading /usr/local/lib/firmware/updates/regulatory.db failed with error -22
[ 787.974769] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 787.975334] cfg80211: failed to load regulatory.db
[...]
We should port this into a Butane config and add it to our docs.
Hopefully we can get the kernel default search path augmented, requiring less manual fiddling in the future. Asked for that in https://bugzilla.redhat.com/show_bug.cgi?id=2010641.