cfg80211: failed to load regulatory.db

描述和现象

  • 问题描述:内核加载无线电监管数据库报错
  • 问题现象:CONFIG_CFG80211=y报错,CONFIG_CFG80211=minsmod cfg80211.ko不会报错
  • 打印日志:
    [    1.715156] cfg80211: Loading compiled-in X.509 certificates for regulatory database
    [ 1.725021] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
    [ 1.728882] platform regulatory.0: Direct firmware load for regula[ 1.737806] RAMDISK: squashfs filesystem found at block 0
    [ 1.737857] RAMDISK: Loading 2908KiB [1 disk] into ram disk... |
    [ 1.749881] cfg80211: failed to load regulatory.db
    [ 1.750499] done.
    [ 1.772471] VFS: Mounted root (squashfs filesystem) readonly on device 1:0.

原因和解决方案

  • 原因:内核加载数据库时,文件系统还未挂载,因此找不到数据库
  • 解决方案:将固件直接编译到内核
    CONFIG_CFG80211=y
    CONFIG_EXTRA_FIRMWARE="regulatory.db regulatory.db.p7s"
    CONFIG_EXTRA_FIRMWARE_DIR="/path/to/firmware/dir"