首先,我应该说我是Yocto世界的新手。
我有一个工作环境,可以生成我的uboot +内核+ rootfs。
我需要添加一个(复杂的)驱动程序作为子目录。
此驱动程序可以以标准方式本机编译:
here=$(pwd)
make -C /lib/modules/$(uname -r)/build M=$here/bcmdhd modules CONFIG_BCMDHD_PCIE=y CONFIG_BCMDHD=m CONFIG_BCM4359=y
我看过Integrate out-of-tree driver in kernel and rebuild yocto project image,我看过Yocto Kernel Development Manual。
我试图按照指示行事:
.../recipes-kernel
dir。linux
中创建了一个目录
.bb
文件。生成的源树是:
recipes-kernel/
├── kernel-modules
│ ├── kernel-module-bcmdhd
│ │ └── bcmdhd
│ │ ├── include
│ │ │ ├── include files
│ │ ├── Kconfig
│ │ ├── Makefile
│ │ └── other source files
│ └── kernel-module-bcmdhd_0.1.bb
└── linux
├── linux-imx-4.1.15
│ └── imx
│ └── defconfig
└── linux-imx_4.1.15.bbappend
我的BCM89359-mod_0.1.bb包含:
SUMMARY = "Integration of Cypress BCMDHD external Linux kernel module"
LICENSE = "Proprietary"
inherit module
SRC_URI = "file://bcmdhd"
S = "${WORKDIR}"
不幸的是,这似乎不足以因为运行bitbake导致没有尝试编译。
我显然遗漏了一些东西,但我无法理解是什么。
欢迎任何帮助。
答案 0 :(得分:0)
您应该拥有以下源树:
recipes-kernel/
├── kernel-modules
│ ├── kernel-module-bcm89359_0.1.bb
│ └── kernel-module-bcm89359
│ └ bcmdhd
│ ├ Kconfig
└── linux
├── ...
(记录)
您可以将模块添加到MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-module-bcm89359"
到local.conf或计算机配置。此外,您可以添加KERNEL_MODULE_AUTOLOAD = "bcm89359"
以自动加载模块。