基于yacto构建am5728 SDK

Posted chocolate2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于yacto构建am5728 SDK相关的知识,希望对你有一定的参考价值。

基于yacto构建am5728 SDK

  1. 构建SDK
    1.1 介绍
    本页面提供了从源代码构建处理器SDK和各个组件的步骤。 ProcessorSDK构建基于Arago项目,Arago项目为OpenEmbedded和Yocto项目提供了一组面向TI平台的层。
    本页面将提供重新创建处理器SDK所需的基本步骤,以及处理器SDK特定配置、构建目标和目标设备的参考。此外,还提供了提示和建议以及更深入信息的链接。
    1.2 快速启动
    1.2.1 先决条件(一次性设置)
    主机设置- Ubuntu(推荐)
    推荐的Linux发行版为Ubuntu 16.04或Ubuntu 18.04。
    Ubuntu需要以下构建主机包。下面的命令将在Ubuntu Linux发行版上安装所需的工具。
    对于Ubuntu 16.04和18.04,请执行以下命令:
$ sudo apt-get install git build-essential python diffstat texinfo gawk chrpath dos2unix wget unzip socat doxygen libc6:i386 libncurses5:i386 libstdc++6:i386 libz1:i386

Ubuntu默认使用“dash”作为/bin/sh的默认shell。您必须通过运行以下命令重新配置才能使用

bash:
sudo dpkg-reconfigure dash

当要求使用dash作为默认系统shell时,请确保选择“No”。
交叉编译工具链
运行以下命令以安装ARM工具链。

$ wget https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz
$ tar -Jxvf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz -C $HOME
$ wget https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz
$ tar -Jxvf gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz -C $HOME

Yocto层配置
Processor SDK使用以下oe-layersetup配置来配置meta层。以下是命令中使用的:

$ ./oe-layersetup.sh -f <config>

以下配置文件位于oe-layersetup git repo的 configs/processor-sdk目录中

Config File	Description	Supported machines/platforms
processor-sdk-06.03.00.106-config.txt	Processor SDK 6.3.0.106 Release	am335x-evm, am437x-evm, am57xx-evm, am65xx-evm, k2hk-evm, k2e-evm, k2l-evm, k2g-evm, omapl138-lcdk

1.2.2. 构建步骤
有关处理器SDK Linux的特定版本的层配置,请参阅Yocto层配置。下面的最后一个命令将构建arago-base-tisdk-image,这是最小处理器SDK文件系统。有关其他目标的列表,请参见构建选项。

$ git clone git://arago-project.org/git/projects/oe-layersetup.git tisdk
$ cd tisdk
$ ./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-<version>-config.txt
$ cd build
$ . conf/setenv
$ export TOOLCHAIN_PATH_ARMV7=$HOME/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
$ export TOOLCHAIN_PATH_ARMV8=$HOME/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu
$ MACHINE=am57xx-evm bitbake arago-base-tisdk-image

1.3 处理器SDK构建参考
下面几节提供有关Processor SDK的配置、构建选项和支持平台的信息。
1.3.1 层配置
关于处理器SDK Linux特定版本的层配置,请参阅这里。
1.3.2。构建选项
映像
除了各个组件包之外,下表还提供了支持的构建目标列表。以下是命令中使用的:

MACHINE=<machine> bitbake <target>

“Build Output”是相对于 arago-tmp-[toolchain]/deploy目录给出的。

Target	Build Output	Description
arago-core-tisdk-bundle	images/<machine>/processor-sdk-linux-bundle-<machine>.tar.xz	Full SDK
tisdk-rootfs-image	images/<machine>/tisdk-rootfs-image-<machine>.tar.xz	Target Filesystem
arago-base-tisdk-image	images/<machine>/arago-base-tisdk-image-<machine>.tar.xz	Minimal Target Filesytem
meta-toolchain-arago-tisdk	sdk/arago-<arago-version>-<architecture>.sh	Devkit

平台
Processor SDK支持以下平台。以下是命令中的:

MACHINE=<machine> bitbake <target>
MACHINE	Supported EVMs
am335x-evm	AM335x EVM, AM335x Starter Kit, Beaglebone Black
am437x-evm	AM437x GP EVM, AM437x Starter Kit
am57xx-evm	AM572x GP EVM, AM572x Industrial Development Kit, AM571x Industrial Development Kit
am65xx-evm	AM65x Evaluation Module, AM65x Industrial Development Kit, DRA80xM Evaluation Module
k2hk-evm	66AK2Hx EVM , K2K EVM
k2e-evm	    K2Ex EVM
k2l-evm 	66AK2L06 EVM
k2g-evm	    K2G EVM
omapl138-lcdk	OMAP-L138 LCDK

RT支持
处理器SDK Linux支持以下machines/EVMs的RT Linux内核。使用下面的命令进行RT构建:

MACHINE=<machine> ARAGO_RT_ENABLE=1 bitbake <target>
MACHINE	Supported EVMs
am335x-evm	AM335x EVM, AM335x Industrial Communications Engine
am437x-evm	AM437x GP EVM, AM437x Industrial Development Kit
am57xx-evm	AM572x GP EVM, AM574x Industrial Development Kit, AM572x Industrial Development Kit, AM571x Industrial Development Kit
am65xx-evm	AM65x Evaluation Module, AM65x Industrial Development Kit, DRA80xM Evaluation Module
k2hk-evm	66AK2Hx EVM , K2K EVM
k2e-evm	K2Ex EVM
k2l-evm	66AK2L06 EVM

使用源代码包快照
当外部URLs不可用时,使用arago源程序包的快照可以避免构建过程中的获取错误。要使用给定处理器SDK发行版中分发的源代码快照,必须从SDK下载页面下载一个脚本,然后在主机上执行该脚本以从TI服务器获取所有包。例如,请参阅:“ti-processor-sdk-linux-[platform]--Linux-x86-Install.bin”在AM57xx-Linux-SDK-Download-page.
下载了这个包之后,构建过程中只需要几个额外的步骤就可以获取所有相应的包。额外的步骤如下红色所示:

$ git clone git://arago-project.org/git/projects/oe-layersetup.git tisdk
$ cd tisdk
$ ./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-<version>-config.txt
$ mkdir downloads
$ cd downloads
$ # Assuming src file downloaded to $HOME/Downloads
$ tar xvf $HOME/Downloads/<target-board>-linux-sdk-arago-src-##.##.##.##.tar.xz
$ <target-board>-linux-sdk-arago-src-##.##.##.##/get_build_sources.sh <target-board>-linux-sdk-arago-src-##.##.##.##/source_pkg_list.txt
$ cd ..</span>
$ cd build
$ . conf/setenv
$ export TOOLCHAIN_PATH_ARMV7=$HOME/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
$ export TOOLCHAIN_PATH_ARMV8=$HOME/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu
$ MACHINE=<target-board> bitbake arago-core-tisdk-bundle

1.3.3. 食谱
配方基础知识
可以为指定一个或多个配方,以提高配方开发和调试的粒度。指定一个配方名称,_版本(如果名称后面附加了版本),将生成配方及其所有依赖项。
例如,下面的命令只构建opencl配方及其定义的所有依赖项。
MACHINE=am57xx-evm bitbake opencl
bitbake命令成功完成后, arago-tmp-[toolchain]/work/am57xx_evm-linux-gnueabi/opencl 目录将可用,包括git文件夹下的原始源代码、packages-split文件夹下的独立共享对象(.so文件)和deploy-ipks文件夹下的IPKs。。
请注意,根据配方的定义,配方的输出可以位于“arago-tmp-[toolchain]/work”目录下的另一个文件夹中,具体取决于配方的定义。
强制重新编译
如果需要,可以修改工作目录下的源代码(例如: arago-tmp-[toolchain]/work/am57xx_evm-linux-gnueabi/opencl/git)。修改完成后,运行以下命令用新代码强制重新编译并重新构建菜谱,

e.g, MACHINE=am57xx-evm bitbake opencl --force -c compile
MACHINE=am57xx-evm bitbake opencl

安装包
要安装修改和重建的包,从deploy-ipks文件夹(例如,arago-tmp-[toolchain]/work/am57xx_evm-linux-gnueabi/opencl/[version]/deploy-ipks)复制新的IPKs到目标系统,然后运行以下命令安装IPKs:
opkg install [package_ipk].ipk
清理构建的配方
可以使用以下方法清理已构建的配方:

MACHINE=<machine> bitbake <target> -c cleansstate

cleansstate任务将清理配方的工作目录,并从编译期间其他配方使用的依赖树中删除配方的输出。
1.4. 常见变体
不使用SGX重建
在今天提供的处理器SDK中,图形硬件加速默认为SGX设备系列(如AM335x、AM437x、AM57xx)启用。因此,一些依赖于图形的应用程序将不能在那些不包含SGX加速器的系列设备变体上正常运行(例如AM3352、AM4372等)。处理器SDK已经得到了增强,以提供与QT5/Weston提供的软件渲染相同的OOB体验。在调用bitbake之前,通过在conf/local.conf文件的底部添加以下内容来启用非sgx软件渲染构建。

MACHINE_FEATURES_remove="sgx"
PACKAGECONFIG_remove="wayland-egl"

没有Wayland重建
如果不需要一个完整的窗口系统,例如,如果你只是想让应用程序使用EGLFS全屏运行,那么你可以通过在调用bitbake之前在conf/local.conf的底部添加以下内容来删除Wayland:

DISTRO_FEATURES_remove = "wayland"

X11构建说明
X11已经作为一个构建选项在ProcessorSDK4.1版本之上进行了验证。为了使用X11而不是Wayland构建,请使用配置processor-sdk-04.01.00.06-x11-config.txt进行oe-layer-setup。这个配置文件和processor-sdk-04.01.00.06配置文件之间的一个关键区别是来自meta-processor-sdk的分支。对于X11构建,使用morty-x11-experimental分支,其中DISTRO_CONFIG被设置为X11,而不是wayland。
X11文件系统
所有与X11相关的组件都由IMG DDK X11包提供,它们位于/usr/local/XSGX目录下,而不是/usr/include和/usr/lib目录下。使用X11构建并验证了以下应用程序和演示:
• SGX unitest程序: xgles1tests, xgles2test1等
• PVR SDK 3D演示程序: ChameleonMan, ExampleUI等
•eglfs上的qt5示例和演示程序。x11包括matrix-gui-browser
在X11构建中,xorg (Xserver)在默认情况下运行并拥有DSS资源。为了支持在X11应用程序和非X11应用程序(如DRM modetest和gstreamer管道)之间进行切换,提供了以下shell文件来停止和启动Xserver。

/etc/init.d/xorg<start | stop>;

1.5 另请参阅
使用Arago项目构建TI sdk的一般信息可以在Arago Project: Setting Up the Build Environment找到。此页面包含构建主机先决条件的信息,例如安装工具链、所需的主机包和配置,以及完全从源代码创建SDK所需的基本步骤。熟悉了Arago项目信息后,请阅读下一节,以获取层配置、构建目标和处理器SDK支持的平台的参考资料。
• Yocto Project
• OpenEmbedded
• Arago Project

以上是关于基于yacto构建am5728 SDK的主要内容,如果未能解决你的问题,请参考以下文章

基于AM5728的PROFIBUS 通信测试

基于AM5728 DSP JTAG连接调试方法

基于AM5728的OpenCL例程开发分享

基于ZYNQAM5728AM5708AM437xAM335xSTM32+FPGA等平台提供了开源EtherCAT主站IgH案例

基于AM5728 Caffe 机器学习案例-darknet物体分类与人脸识别

基于AM5728的体外诊断解决方案