【发布时间】:2020-09-24 07:24:57
【问题描述】:
我想为覆盆子 (cm3) 构建自己的 yocto 图像。我使用 meta-raspberry (dunfell) 层和 poky dunfell-23.0.0。
为了安装微芯片 wilc3000 模块,我必须按照guide 修改内核。这样,我更改内核配置(Kconfig)以在菜单中添加 mchp 驱动程序,然后选择它。
我使用guide(基于补丁的工作流程)为内核生成了一个补丁。生成补丁后,我修改并生成了新的内核配置(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 文件夹中没有文件生成的痕迹。
请帮我把这个驱动添加到内核中,非常感谢。
【问题讨论】:
-
这个
INTREE_DEFCONFIG来自哪里?我很确定这是你食谱中不正确的部分。我只会将您的文件重命名为defconfig,并根据我在 kernel-yocto.bbclass 中快速阅读的内容(由 linux-yocto.inc 继承,linux-raspberrypi 需要)应该这样做。不需要INTREE_DEFCONFIG。我也很不确定是否直接从${WORKDIR}获取内核模块,这似乎是一个错误,最坏的情况应该在${B}中。无论如何,您不需要在任何地方安装模块,也不需要将其添加到包中,kernel-module-wilc-spi包应该适合您。 -
我已尝试使用此解决方案 stackoverflow.com/questions/45573078/… (do_kernel_configme_prepend) 并且它有效,但我会尝试您的建议,它看起来像一个更清洁的解决方案
-
我猜你也可以设置这个变量,这样它在尝试复制包时不会失败(因为它将被内置到内核中) MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "wilc-spi"
标签: linux linux-kernel yocto microchip meta-raspberrypi