Yocto:如何添加树外设备驱动程序?

时间:2018-03-29 15:06:51

标签: compilation yocto device-driver

首先,我应该说我是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导致没有尝试编译。

我显然遗漏了一些东西,但我无法理解是什么。

欢迎任何帮助。

1 个答案:

答案 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"以自动加载模块。