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

我正在尝试使用LinuxT1042D4RDB-64B嵌入式板编译从https://github.com/qoriq-open-source/linux(版本4.9)获得的Yocto内核。当前正在使用4.1.35-rt41

我遵循了以下步骤:

  1. bitbake虚拟/内核-c cleansstate

  2. bitbake虚拟/内核-c补丁

  3. 用我的新内核源代码(https://github.com/qoriq-open-source/linux)替换git文件夹

  4. 使ARCH = powerpc menuconfig

  5. bitbake虚拟/内核

结果是

新内核已成功编译,但uImage不包含我需要的驱动程序。新内核(deploy / images / t1042d4rdb-64b / rootfs.tar.gz)中只有4个驱动程序,它们是“ hid”,“ input”,“ misc”和“ staging”。

Linux kernel 4.9中有很多驱动程序文件夹,例如gpio,gpu,蓝牙,连接器等。

问题是

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

rzf018575 回答:YOCTO更改内核版本并选择驱动程序

内核配置:

通过 .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"

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

,

我通过将Yocto版本从2.0升级到2.7找到了解决方案。我使用的版本是为我的主板(t1042d4rdb-64b)新设计的,包括Linux内核4.19.xxx。安装说明可以在这里找到 https://source.codeaurora.org/external/qoriq/qoriq-components/yocto-sdk/tree/readme?h=yocto_2.7

本文链接:https://www.f2er.com/3110271.html

大家都在问