如何将交叉编译的内核对象添加至Yocto构建流程
将88w8987 WiFi/蓝牙固件集成到Yocto镜像的步骤
针对你的iMX8MP自定义板(USB Host连接88w8987),按以下步骤把编译好的固件加入Yocto镜像:
1. 创建自定义Yocto层(若未创建)
如果还没有专属板卡的自定义层,先创建一个(避免修改官方层,方便后续维护):
bitbake-layers create-layer meta-yourboard bitbake-layers add-layer meta-yourboard
层的核心目录结构需包含:
meta-yourboard/ ├── conf/ │ └── layer.conf └── recipes-firmware/ └── brcm88w8987/
2. 编写固件配方文件
在meta-yourboard/recipes-firmware/brcm88w8987/下创建brcm88w8987-firmware.bb,内容如下(替换为你实际的固件文件名):
SUMMARY = "Broadcom 88w8987 WiFi/BT firmware" LICENSE = "PROPRIETARY" LIC_FILES_CHKSUM = "file://LICENSE;md5=xxxxxx" # 有许可证文件则替换校验值,无则可暂时留空(不推荐) # 指定固件文件路径,本地文件用file://前缀 SRC_URI = "file://brcmfmac43455-usb.bin \ file://brcmfmac43455-usb.txt" S = "${WORKDIR}" do_install() { # 安装到系统标准固件目录,Broadcom设备默认路径为/lib/firmware/brcm/ install -d ${D}/lib/firmware/brcm/ install -m 0644 ${S}/brcmfmac43455-usb.bin ${D}/lib/firmware/brcm/ install -m 0644 ${S}/brcmfmac43455-usb.txt ${D}/lib/firmware/brcm/ } # 声明要打包进镜像的文件 FILES_${PN} = "/lib/firmware/brcm/*"
将你编译好的固件文件放到meta-yourboard/recipes-firmware/brcm88w8987/files/目录下。
3. 配置内核驱动选项
88w8987对应的内核驱动是brcmfmac,需确保开启USB相关驱动配置:
- 在
meta-yourboard/recipes-kernel/linux/下创建linux-imx_%.bbappend(适配iMX官方内核层):
SRC_URI += "file://brcmfmac-usb.cfg"
- 创建
brcmfmac-usb.cfg文件,添加以下内核配置:
CONFIG_BRCMFMAC=y CONFIG_BRCMFMAC_USB=y CONFIG_BRCMUTIL=y CONFIG_BRCMDBG=y # 可选,用于调试驱动
4. 将固件包加入镜像
在项目的conf/local.conf或自定义层的conf/machine/yourboard.conf中添加:
IMAGE_INSTALL_append = " brcm88w8987-firmware"
5. 构建镜像
执行构建命令生成包含固件和驱动的镜像:
bitbake core-image-base # 替换为你实际使用的镜像名称
构建完成后,烧录镜像到板卡,系统启动时会自动加载brcmfmac驱动,并从/lib/firmware/brcm/读取对应固件文件。
内容的提问来源于stack exchange,提问作者Gencay
相关产品推荐
相关产品推荐

