Tom*_*Tom 5 linux-kernel bitbake beagleboneblack yocto
我正在使用 Yocto 开发 Beaglebone Black。
\n\n使用PWM 驱动程序的实现作为指导,我无法将 PWM 添加到设备树中。
\n\n最好的解决方案是创建一个设备树覆盖,就像 Saad Ahmad 先生正在做的那样,但我不明白如何使用 Yocto 来做到这一点。
\n\n我没有使用capemgr,但我使用meta-bbb。我还有自定义层元 tfe,当前包含 pwm 驱动程序和一些示例。该层还定义了新的 bitbake 图像配方:
\n\ninclude recipes-core/images/core-image-base.bb\n\nIMAGE_INSTALL += "\\\n helloworld \\\n hellokernel \\\n bbb-pwm \\\n"\n\nKERNEL_MODULE_AUTOLOAD += "\\\n hellokernel \\\n bbb-pwm \\\n"\n\nexport IMAGE_BASENAME = "tfe-image-base"\nRun Code Online (Sandbox Code Playgroud)\n\n以下是 pwm 驱动程序的 .bb 文件:
\n\nDESCRIPTION = "PWM kernel module"\nLICENSE = "GPLv2"\nLIC_FILES_CHKSUM = "file://COPYING;md5=d41d8cd98f00b204e9800998ecf8427e"\n\nPR = "r0"\n\ninherit module\n\nSRC_URI = "file://bbb-pwm.c \\\n file://Makefile \\\n file://COPYING \\\n"\n\nS = "${WORKDIR}" \nRun Code Online (Sandbox Code Playgroud)\n\n有谁知道如何做到这一点?
\n\n编辑:\n一位同事暗示我可以使用 .bbappend 文件,附加到 meta-bbb 中的内核构建规则中。因此,这就是我所做的,现在我的recipes-kernel目录现在看起来像这样:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bbb-pwm\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bbb-pwm.bb\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 files\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bbb-pwm.c\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 COPYING\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Makefile\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 hellokernel\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 {...}\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 linux\n \xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 linux-stable_4.1\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 {...}\n \xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 linux-stable_4.1.bbappend\n \xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 linux-stable_4.4\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 {...}\n \xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 linux-stable_4.4.bbappend\n \xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 linux-stable_4.5\n \xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 dts\n \xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bbb-pwm.dts\n \xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sc_pwm_P8_13-00A0.dtsi\n \xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 linux-stable_4.5.bbappend\nRun Code Online (Sandbox Code Playgroud)\n\n目录 linux-stable_4.*/ 都具有相同的结构,以反映 meta-bbb 中的镜像结构。
\n\n我的 .bbappend 文件如下所示:
\n\nFILESEXTRAPATHS_prepend := "${THISDIR}/${PN}/dts:"\n\nKERNEL_DEVICETREE_beaglebone += " \\\n bbb-pwm.dtb \\\n"\nRun Code Online (Sandbox Code Playgroud)\n\n但是,在进行 bitbaking 时,会出现错误,提示 bbb-pwm.dtb 没有构建规则:
\n\n| make[3]: *** No rule to make target \'arch/arm/boot/dts/bbb-pwm.dtb\'. Stop.\n| arch/arm/Makefile:333: recipe for target \'bbb-pwm.dtb\' failed\nRun Code Online (Sandbox Code Playgroud)\n\n编辑:这里是sc_pwm_P8_13-00A0.dtsi
\n当您想要使用自定义设备树并编辑KERNEL_DEVICETREE变量时,将在以下位置搜索设备树源(*.dts 文件和 *.dtsi 文件)arch/arm/boot/dts(根据您的体系结构)。
在您的示例中,您的文件放置在单独的文件夹中,并且不由 bbappend 文件获取。正确的层结构如下:
\n\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 linux\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 linux-stable_4.5\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 git\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 arch\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 arm\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 boot\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 dts\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bbb-pwm.dts\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 sc_pwm_P8_13-00A0.dtsi\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 linux-stable_4.5.bbappend\nRun Code Online (Sandbox Code Playgroud)\n\n为了使 bitbake 对这些新文件敏感,必须通过以下方式添加它们SRC_URIbbappend 文件中的变量添加它们:
SRC_URI += "file://git/arch/arm/boot/dts/bbb-pwm.dts"\nSRC_URI += "file://git/arch/arm/boot/dts/sc_pwm_P8_13-00A0.dtsi"\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
9650 次 |
| 最近记录: |