Atmel AT91SAM9G45 SOCを使用してマザーボードから4.19(4.19.16)カーネルを起動しようとしています。カーネル構成にCRDAサポートが含まれていますが、カーネルが起動中にRegulatory.dbファイルをロードできないことを報告します。
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...
regulatory.db
そしてregulatory.db.p7s
ファイルをディレクトリに入れ/lib/firmware
ましたが、それでも失敗します。私の例では、カーネルがregulatory.db
ファイルがあるファイルシステムにマウントされる前にファイルをロードしようとしているようです。
これはどのように機能しますか?
答え1
ビルトインコード(CONFIG_CFG80211 = y)ではなく、cfg80211コードをモジュール(CONFIG_CFG80211 = m)としてビルドするようにカーネル構成を変更してこの問題を解決したと思います。これにより、規制データベースファイルをファームウェアにロードするコードが、ルートファイルシステムがマウントされた後に実行されます。