我使用Yocto为Beaglebone Black创建了一个小型Linux镜像。除了需要访问UART 2和4之外,我认为我已经完成了大部分想要的工作。在使用标准Debian映像时,我通过设备树叠加和capemgr实现了这一点。但是,我发现使用Yocto构建的内核没有capemgr。
我的选择似乎是:
1. 使内核构建具有capemgr功能,或 2. 修改设备树文件以进行必要的更改。
选项2似乎更容易。
UART的设备树叠加在此处和此处。我尝试了几种方法来包含它们。
然而,我注意到在尝试编译am335x-boneblack.dts时,即使没有修改它,我也会遇到类似的错误,所以我可能甚至都做错了。(使用命令dtc -I dts -O dtb -o result.dtb am335x-boneblack.dts) 显然,我不知道自己在做什么。我怀疑设备树叠加必须以某种方式进行修改才能按照我尝试使用它们的方式使用。或者可能我没有正确地包含(只是将#include添加到文件顶部)。有人有任何想法吗?我可能做错了什么?我正在尝试做的事情甚至可能吗?
我的选择似乎是:
1. 使内核构建具有capemgr功能,或 2. 修改设备树文件以进行必要的更改。
选项2似乎更容易。
UART的设备树叠加在此处和此处。我尝试了几种方法来包含它们。
- 我反编译了之前使用的设备树 blob 并尝试从中包含这些文件。
- 我下载了完整的 dts 文件集,并尝试在 am335x-boneblack.dts 中包含 UART 设备树叠加层。
这两种方法都会产生类似于以下的错误:
Error: am335x-boneblack.dts:1.1-2 syntax error
FATAL ERROR: Unable to parse input tree
然而,我注意到在尝试编译am335x-boneblack.dts时,即使没有修改它,我也会遇到类似的错误,所以我可能甚至都做错了。(使用命令dtc -I dts -O dtb -o result.dtb am335x-boneblack.dts) 显然,我不知道自己在做什么。我怀疑设备树叠加必须以某种方式进行修改才能按照我尝试使用它们的方式使用。或者可能我没有正确地包含(只是将#include添加到文件顶部)。有人有任何想法吗?我可能做错了什么?我正在尝试做的事情甚至可能吗?
fragment@0 { target = <&x>; __overlay__ { ... } }
,因此这些必须被编辑掉。 - sawdustbitbake -f -c deploy your_kernel_recipe
,例如bitbake -f -c deploy linux-imx
。 - LPs