0

我想为覆盆子(cm3)构建自己的 yocto 图像。我使用 meta-raspberry (dunfell) 层和 poky dunfell-23.0.0。

为了安装微芯片 wilc3000 模块,我必须按照本指南修改内核。这样,我更改内核配置(Kconfig)以在菜单中添加 mchp 驱动程序,然后选择它。

我使用本指南(基于补丁的工作流程)为内核生成了一个补丁。生成补丁后,我修改并生成了新的内核配置(defconfig)。所有的更改都应用在我自己的层中,这个配方(linux-raspberrypi_%.bbappend):

FILESEXTRAPATHS_prepend := "${THISDIR}/patchs:"

SRC_URI += "file://0001-Add-wilc3000-driver.patch \
            file://defconfig_my \
            "
PACKAGE_ARCH = "${MACHINE_ARCH}"

# PR="r2"

INTREE_DEFCONFIG_pn-linux-ti = "defconfig_my"

kmoddir = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/mchp"

# do_configure_append() {
#     cat ${WORKDIR}/*.cfg >> ${B}/.config
# }

do_install_append() {
  install -d ${D}${kmoddir}
  install -m 0755 ${WORKDIR}/wilc-spi.ko ${D}${kmoddir}
}


FILES_${PN}_append += " \
  ${kmoddir}/wilc-spi.ko \
"

patchs文件夹包含内核的补丁和生成的新内核配置

当我生成图像时:

bitbake -v core-image-base

do_install任务在尝试复制未生成的 wilc-spi.ko 时生成失败。

用我自己的配置编译和部署内核的方法是什么?如果我在单独的文件夹中下载并编译内核,它会成功生成 wilc-spi.ko,但在yocto 的build文件夹中没有文件生成的痕迹。

请帮我将此驱动程序添加到内核中,非常感谢。

4

1 回答 1

0

正如@qschulz 指出的那样,解决方案是将defconfig_my更改为defconfig并删除所有额外的代码。最后,代码如下所示:

FILESEXTRAPATHS_prepend := "${THISDIR}/patchs:"

SRC_URI += "file://0001-Add-wilc3000-driver.patch \
            file://defconfig \
            "
PACKAGE_ARCH = "${MACHINE_ARCH}"

PR="r3"
    
FILES_${PN}_append += " \
  ${kmoddir}/wilc-spi.ko \
"

KERNEL_MODULE_AUTOLOAD += "wilc-spi.ko"

并在layer.conf中添加加载模块的指令:

MACHINE_EXTRA_RDEPENDS += " kernel-module-wilc-spi "
于 2020-09-29T11:46:41.083 回答