参考链接
https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/09_01_00_08/exports/docs/linux/Overview_Building_the_SDK.html
https://www.yoctoproject.org/
前期应用安装
$ sudo apt-get update
$ # Install packages required for builds
$ sudo apt-get -f -y install \
git build-essential diffstat texinfo gawk chrpath socat doxygen \
dos2unix python3 bison flex libssl-dev u-boot-tools mono-devel \
mono-complete curl python3-distutils repo pseudo python3-sphinx \
g++-multilib libc6-dev-i386 jq git-lfs pigz zstd liblz4-tool \
cpio file zstd lz4
默认情况下,Ubuntu 使用“dash”作为 /bin/sh 的默认 shell。您必须 通过运行以下命令重新配置以使用 Bash:
sudo dpkg-reconfigure dash
选择no
编译步骤
$ git clone https://git.ti.com/git/arago-project/oe-layersetup.git tisdk
$ cd tisdk
$ ./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-09.02.00.08-am64x-config.txt
$ cd build
$ . conf/setenv
$ MACHINE=am62xx-evm bitbake -k tisdk-default-image
其他编译
MACHINE=<machine> bitbake <target>
machine :am62xx-evm
Target | Build Output | Description |
---|
tisdk-core-bundle | images/<machine>/processor-sdk-linux-bundle-<machine>.tar.xz | Full SDK |
tisdk-default-image | images/<machine>/tisdk-default-image-<machine>.tar.xz | Target Filesystem |
tisdk-base-image | images/<machine>/tisdk-base-image-<machine>.tar.xz | Minimal Target Filesytem |
例如,下面的命令仅构建 opencl 配方和所有 它定义的依赖项。
MACHINE=<machine> bitbake opencl
上面的bitbake命令成功完成后,arago-tmp-[toolchain]/work/<machine>-linux-gnueabi/opencl
目录 将包括 git 下的原始源代码 文件夹,packages-split 下的独立共享对象(.so 文件) 文件夹和 deploy-ipks 文件夹下的 IPK。
强制重新编译需要时,工作目录下的源代码,例如,arago-tmp-[toolchain]/work/<machine>-linux-gnueabi/opencl/git
可以 被修改。修改完成后,执行以下命令
MACHINE=<machine> bitbake opencl --force -c compile
MACHINE=<machine> bitbake opencl
其他说明
yocto搭建前提条件
至少有 90 GB 的可用磁盘空间
至少 8 GB 的 RAM
Git 1.8.3.1 或更高版本
Tar 1.28 或更高版本
Python 3.8.0 或更高版本。
GCC 8.0 或更高版本。
GNU make 4.0 或更高版本
环境变量说明
Target Machine Selection(目标机器选择): MACHINE
Download Directory(下载目录): DL_DIR
Shared State Directory(共享状态目录): SSTATE_DIR
Build Output(构建输出): TMPDIR
Distribution Policy(分发策略): DISTRO
Packaging Format: PACKAGE_CLASSES
SDK Target Architecture(SDK 目标架构): SDKMACHINE
Extra Image Packages: EXTRA_IMAGE_FEATURES
配置路径如下:
tisdk/build/conf/local.conf
基本术语
Configuration Files(配置文件): 保存变量、用户定义变量和硬件配置信息的全局定义的文件。这些文件告诉OpenEmbedded Build System要构建什么以及要将什么放入映像中以支持特定平台。
Extensible Software Development Kit (eSDK): 适用于应用程序开发人员的自定义SDK。这个eSDK允许开发人员将他们的库和编程更改合并回映像中,以使其他应用程序开发人员可以使用他们的代码。
OpenEmbedded Build System: 术语“BitBake”和“构建系统”有时用于OpenEmbedded构建系统。
BitBake是一个任务调度器和执行引擎,用于解析指令(即配方)和配置数据。在解析阶段之后,BitBake创建一个依赖树来排序编译,安排所包含代码的编译,并最终执行指定自定义Linux映像(分发版)的构建。BitBake类似于tool.make
在构建过程中,构建系统跟踪依赖关系,并对每个包执行本机编译或交叉编译。作为跨构建设置的第一步,框架尝试创建适合目标平台的跨编译器工具链(即可扩展SDK)。
Poky: Poky是一个参考嵌入式分布和参考测试配置。Poky提供以下功能:
一个基本级别的功能发行版,用于说明如何自定义发行版。
测试Yocto项目组件的一种方式(即Poky用于验证Yocto工程)。
您可以通过该工具下载Yocto项目。
Poky不是一个产品级别的发行版。相反,这是一个很好的定制起点。