1

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?

1 Answer 1

3

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.

1
  • Many thanks, this solved the issue for me as well. I wonder whether there is a way to force the builtin driver loading the database after the rootfs has been mounted, or retrying it. Commented May 3, 2023 at 17:24

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.