【问题标题】:Compiling and loading kernel module drivers with Yocto使用 Yocto 编译和加载内核模块驱动程序
【发布时间】:2023-04-03 23:49:01
【问题描述】:

我正在根据本手册为 Dart 板编译 Linux 内核和根文件系统: http://variwiki.com/index.php?title=VAR-SOM-MX6_Yocto_Fido_New_R2

现在,我想包含额外的驱动程序,用于将 WiFi USB 加密狗连接到我的编译版本。我想出了如何使用内核 Makefile 自己编译模块,但是当我在项目上运行 bitbake 时,我希望它们能够与 RFS 一起编译和打包。我知道我需要的内核对象的名称 - ath.koath9k.koath9k_common.koath0k_hw.koath9k_htc.ko

我之前没有使用 Yocto 的经验,所以我希望能提供一些详细的解释。

所以我的问题是,考虑到我需要的内核对象/模块/驱动程序:

  • 如何让 Yocto 在编译内核时编译它们?
  • 如何让 Yocto 将生成的编译内核模块打包到它创建的 RFS 映像中?

【问题讨论】:

    标签: c++ linux linux-kernel yocto


    【解决方案1】:

    清理内核 sstate-cache bitbake -c cleansstate kernelName

    要配置内核,你可以使用这个命令

    bitbake kernelName -c menuconfig

    然后,配置完成后编译内核

    bitbake kernelName

    Yocto 中有一个内核实验室教程,教授内核配置的基础知识,here 可用。

    【讨论】:

    • 如果内核已经编译好了,就不需要编译了。模块编译通常就足够了。
    • 如果需要更改或添加内容,我会一直使用 Yocto 重新编译内核。问题是,我在 Yocto 中看不到单模块编译。您可能会找到更好的方法来做到这一点,请建议。
    • @LightenS 这可能是一个愚蠢的问题,但kernelName 有哪些选项?我知道我有什么版本,但我不确定它是否有“名称”以及它是什么。
    • 我提到的kernelName是内核的Package Name。在此链接中,您将看到来自 meta-fsl-arm-extra 的内核配方列表。在 Yocto 中,内核被视为食谱。所以“undercore”之前的任何东西都用作包名称或配方名称。例如,linux-wandboard、linux-toradex、linux-boundary。 github.com/Freescale/meta-fsl-arm-extra/tree/master/…
    • @LightenS,我不知道 Yocto 的具体方式,但内核本身是模块化,因此您可以在树中构建大多数驱动程序或在同一树而无需重新编译整个内核。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    相关资源
    最近更新 更多