I am trying to bring up a 4.19 (4.19.16) kernel on my board using the Atmel AT91SAM9G45 SOC. I included the CRDA support in the kernel configuration, but the kernel reports that it is unable to load the regulatory.db file during boot.

cfg80211: Loading compiled-in X.509 certificates for regulatory database
usb 1-2: New USB device found, idVendor=0424, idProduct=2514, bcdDevice= 0.00
usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
hub 1-2:1.0: USB hub found
hub 1-2:1.0: 4 ports detected
cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
cfg80211: failed to load regulatory.db
Waiting 1 sec before mounting root device...
usb 1-1.2: new high-speed USB device number 4 using atmel-ehci
usb 1-1.2: New USB device found, idVendor=0cf3, idProduct=9378, bcdDevice= 3.00
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.2: Product: USBWLAN
usb 1-1.2: Manufacturer: Qualcomm Atheros
usb 1-1.2: SerialNumber: 12345678
usb 1-1.4: new full-speed USB device number 5 using atmel-ehci
usb 1-1.4: New USB device found, idVendor=0d8c, idProduct=0008, bcdDevice= 1.00
usb 1-1.4: New USB device strings: Mfr=0, Product=1, SerialNumber=0
usb 1-1.4: Product: C-Media USB Audio Device   
EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
Freeing unused kernel memory: 1024K
Run /sbin/init as init process
INIT: version 2.86 booting
Please wait: booting...

I have placed the regulatory.db and regulatory.db.p7s files in the /lib/firmware directory, but it still fails. It looks to me like the kernel is attempting to load the regulatory.db file before it mounts the file system on which it resides.

How is this supposed to work?


I think I have resolved this issue by changing the kernel configuration to build the cfg80211 code as a module (CONFIG_CFG80211=m) instead of a built-in (CONFIG_CFG80211=y). This forces the code that loads the regulatory database file as firmware to run after the root file system is mounted.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.