gpt4 book ai didi

linux - YOCTO 更改内核版本并选择驱动程序

转载 作者:行者123 更新时间:2023-12-04 02:42:17 42 4
gpt4 key购买 nike

我正在尝试编译一个新的Linuxhttps://github.com/qoriq-open-source/linux 获得的内核(版本 4.9)为 T1042D4RDB-64B嵌入式板使用Yocto .目前正在使用4.1.35-rt41 .

我按照以下步骤操作:

  • bitbake 虚拟/内核 -c cleansstate
  • bitbake 虚拟/内核 -c 补丁
  • 用我的新内核源代码 ( https://github.com/qoriq-open-source/linux )
  • 替换 git 文件夹
  • 使 ARCH=powerpc 菜单配置
  • bitbake 虚拟/内核

  • 结果是

    新内核已成功编译,但 uImage 不包含我需要的驱动程序。新内核中只有 4 个驱动程序(deploy/images/t1042d4rdb-64b/rootfs.tar.gz),分别是“hid”、“input”、“misc”和“staging”。
    Linux kernel 4.9中有很多驱动文件夹如gpio,gpu,蓝牙,连接器等..

    问题是

    如何将我需要的驱动程序导入新的 uImage 并将它们放入板中?或者我如何编译这个内核并选择所需的模块/驱动程序?我想要一个像我的 Ubuntu 内核这样的丰富内核。

    最佳答案

    内核配置:

    通过 .config 文件编译内核时会选择驱动程序。您可以通过 menuconfig 配置内核(包括使用的驱动程序):

    bitbake -c menuconfig virtual/kernel

    现在,您需要说服 bitbake 使用这些工作更改。为此,您需要强制编译内核:
    bitbake -f -c compile virtual/kernel

    最后,您可以编译镜像并将其闪存到目标上。

    但是,这不会使更改永久化。要使更改永久生效,您需要一个自定义层和一个 bbappend 文件。使用 devtool 很容易做到这一点。 yocto mega manual详细解释了该过程。在这里,我将只解释非常基本的步骤。运行
    devtool modify virtual/kernel

    将在本地分支的 build/workspace/sources/linux-mainline 中添加一个临时工作副本(前提是您使用的内核称为 kernel-mainline)。在这里,您可以进行所有您想要的更改并在您的硬件上进行尝试。一旦您感到满意并想要将这些更改添加到您的配方中,您就需要提交这些更改。
    终于跑了
    devtool finish linux-mainline <path-to-your-layer> 

    将自动生成一个 .bbappend 和一个 defconfig (.config) 文件并将其放入您的层中。如果你想修补一些驱动程序等,你可能想看看 kernel-dev。手册的部分。

    内核版本选择:

    我不太确定这个,但它应该像这样工作:
    您需要一个内核的配方,该配方已经可以作为任何已知的 bitbake 层的配方。如果您不确定,请查看 openembedded layer index并搜索您要使用的内核版本,下载配方并将其放入您的层中。最后你需要告诉 bitbake 使用这个版本。这可以在 build/local.conf 配置文件中完成:
    PREFERED_VERSION_linux-mainline = "5.3.11"

    我从未尝试过最后一个,也不知道它是否有效或这可能会破坏哪些其他依赖项。

    关于linux - YOCTO 更改内核版本并选择驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58836721/

    42 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com