This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/BEAGLEBK:无法为 BeagleBone Black 编译 DTS 文件(PRU 培训:动手实验、实验4)

Guru**** 1144270 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/567246/linux-beaglebk-unable-to-compile-dts-files-for-beaglebone-black-pru-training-hands-on-labs-lab-4

器件型号:BEAGLEBK

工具/软件:Linux

您好!

我无法重现 PRU 培训:动手实验、实验4 (http://processors.wiki.ti.com/index.php/PRU_Training:_Hands-on_Labs)的步骤4.e。 此步骤是从修改的 AM335x-bonebblack.dts 创建.dtb 文件、以包含 AM335x-bonebblack-prucape .dtsi。

我无法使用提供的命令编译 DTS 文件:    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x-boneblack.dtb。 我收到以下错误消息:

‘没有规则使目标 AM335x-bonebrine.dtb’成为目标。 停止。

我试图编译原始 AM335x-bonebblack.dts、但没有进行任何修改、但我得到了相同的错误。

我遵循的步骤:

 processors.wiki.ti.com/.../Processor_SDK_Linux_Training:_Introduction_to_Device_Driver_Development 页面上、我发现需要提供工具的路径。

/home/adam/ti-processor-sdk-linux-am335x-evm-03.02.00.05/board-support/linux-4.4.32 +gitAUTOINC+adde2ca9f8-gadde2ca9f8/arch/arm/boot/dts

我执行了

导出路径=$path:/home/adam/ti-processor-sdk-linux-am335x-evm-03.02.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin

由于错误仍然存在,我打开了另一个终端窗口,并检查了如果路径未设置会发生什么情况。 正如预期的那样,这些工具没有得到说明:

Adam@~ Ubuntu:μ C/ti-processor-sdk-linux-am335x-evm-03.02.00.05/board-support/linux-4.4.3.32+gitAUTOINC+adde2ca9f8-gadde2ca9f8/arch/arm/boot/dts$ arm-linux-gnueabihf-gcc

当前未安装程序'arm-linux-gnueabihf-gcc'。 您可以通过键入 sudo apt install gcc-arm-linux-gnueabihf 来安装它

我添加路径:

Adam@~ Ubuntu:μ C/ti-processor-sdk-linux-am335x-evm-03.02.00.05/board-support/linux-4.4.3.32+gitAUTOINC+adde2ca9f8-gadde2ca9f8/arch/arm/boot/dts$导出路径=$path:/home/adam/ti-processor-sdk-linux-am335x-evm-03.02.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin

现在工具可见:

Adam@~ Ubuntu:μ C/ti-processor-sdk-linux-am335x-evm-03.02.00.05/board-support/linux-4.4.3.32+gitAUTOINC+adde2ca9f8-gadde2ca9f8/arch/arm/boot/dts$ arm-linux-gnueabihf-gcc

arm-linux-gnueabihf-gcc:致命错误:无输入文件

编译已终止。

但 make 文件给出了相同的错误:

Adam@~ Ubuntu:μ C/ti-processor-sdk-linux-am335x-evm-03.02.00.05/board-support/linux-4.4.3.32+gitAUTOINC+adde2ca9f8-gadde2ca9f8/arch/arm/boot/dts$ make arch=arm cross_

compile=arm-linux-gnueabihf- AM335x-boneblack.dtb

make:***没有规则使目标'AM335x-bonebblack.dtb'停止。

我使用 Windows 10上托管的 Ubuntu 16.04.1 LTS 虚拟机,使用 VMwareRegisteredWorkstation 12 Player 12.5.2 Build-4638234。 从 Ubuntu 中、我下载了 SDK (ti-processor-sdk-linux-am335x-evm-03.02.00.05-linux-x86-Install.bin)、运行该 SDK、然后运行./setup.sh 脚本。 setup.sh 脚本开箱即用:

软件包 uboot-mkimage 不可用、但由另一个软件包引用。

这可能意味着封装缺失、已停产、或

仅可从其他来源获取

但是、以下封装替代了它:

 u-boot-tools:i386 u-boot-tools

 

E:软件包'uboot-mkimage'没有安装候选项

设置失败,正在中止..

设置失败,正在中止..

 因此、我安装了建议的软件包:

Adam@~ Ubuntu:μ C/ti-processor-sdk-linux-am335x-evm-03.02.00.05$ sudo apt install u-boot-tools

然后重新运行 setup.sh 脚本。 它在创建 targetNFS 时再次被阻止、因此我停止了它并再次重新运行 setup.sh 脚本、这次没有任何问题、并且能够在设置结束时从 minicom 连接到 BeagleBone Black。

此致

Adam

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Adam:

    您尝试在中编译.dTB /arch/arm/boot/dts 目录。 运行 make 命令时、您应该位于主内核 src 目录中。
    (在您的~μ C/ti-processor-sdk-linux-am335x-evm-03.02.00.05/board-support/linux-4.4.4.32.+gitAUTOINC+adde2ca9f8-gadde2ca9f8/)。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!

    非常感谢你的帮助。

    我是按照您的建议执行的、并且出现了一些其他文件生成问题。 我能够解决这些问题、但 PRU 不起作用、因此请查看这是否是正确的方法。

    生成 AM335x-bonebblack.dTB 文件:

    Adam@~ Ubuntu:μ C/ti-processor-sdk-linux-am335x-evm-03.02.00.05/board-support/linux-4.4.3.32+gitAUTOINC+adde2ca9f8-gadde2ca9f8$ make ARCH=arm cross_compile=arm-linux-
    gnueabihf- AM335x-bonebblack.dtb
    HOSTCC 脚本/基本/固定程序
    HOSTCC 脚本/kconfig/conf.o
    出厂脚本/kconfig/zconf.tab.c
    出厂脚本/kconfig/zconf.lex.c
    出厂脚本/kconfig/zconf.hash-c
    HOSTCC 脚本/kconfig/zconf.tab.o
    HOSTLD 脚本/kconfig/Conf
    scripts/kconfig/conf --silentoldconfig Kconfig
    ***
    ***未找到配置文件".config"!
    ***
    ***请运行一些配置程序(例如“make oldconfig”或
    ***"make menuconfig"或"make xconfig")。
    ***
    scripts/kconfig/Makefile:37:目标'ilentoldconfig'的配方失败
    maked[2]:***[silentoldconfig]错误1
    Makefile:541:目标'ilentoldconfig'的配方失败
    maked[1]:***[silentoldconfig]错误2.
    make:***没有规则使目标'include/config/auto.conf'成为'script'所需的目标'include/config/auto.conf'。 停下。

    已运行 distclean (无问题)。

    生成了.config 文件。 示例为:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_AM335x-evm_defconfig、因此我搜索了 BBB 的类似文件、并在/home/adam/ti-processor-sdk-linux-am335x-evm-03.02.00.05/board-support/u-boot-2016.05中找到了 AM335x_boneblack_defconfig +gitAUTOINC+6c5519b6fc-g6c5519b6fc/configs

    我将 AM335x_bonebblack_defconfig 复制到 arch/arm/configs/并重新运行脚本。 已创建配置、其他所有内容(包括.dtsi 等)在文件生成方面进展顺利。

    BBB 引导正确、我可以通过 SSH (通过 USB)连接到 BBB。

    此致、

    Adam
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Adam:

    您发现的"AM335x_bonebblack_defconfig"是 U-boot 的配置。 要为 Begalebone Black 构建 Linux 内核、必须使用"tisdk_AM335x-evm_defconfig"。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Youdan、

    非常感谢你的帮助。

    此致、

    Adam