【问题标题】:Add wilc3000 driver to Yocto raspberry pi将 wilc3000 驱动程序添加到 Yocto 树莓派
【发布时间】: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


【解决方案1】:

正如@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 "

【讨论】:

    猜你喜欢
    • 2019-02-28
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 2017-04-04
    • 2018-08-15
    • 1970-01-01
    相关资源
    最近更新 更多