linux yocto bitbake构建系统生成SDK包
前提条件
Yocto 环境已正确设置(source 环境脚本,如 source poky/oe-init-build-env)
构建目录为 /home/hongrongkun/xinghe/v20/LE.PRODUCT.11/build-qti-distro-fullstack-debug
至少完成一次完整镜像构建(如 bitbake <image>),以确保工具链组件已生成
cd /home/hongrongkun/work/xinghe/v20/LE.PRODUCT.11
source poky/oe-init-build-env build-qti-distro-fullstack-debug
步骤 2: 生成 SDK 包
运行以下命令生成 SDK(我们项目的目标镜像为qti-multimedia-image ):
bitbake qti-multimedia-image -c populate_sdk
步骤 3: 查找生成的 SDK 包
SDK 包生成后,位于:
/home/hongrongkun/work/xinghe/v20/LE.PRODUCT.11/build-qti-distro-fullstack-debug/tmp/deploy/sdk/
文件名类似:qti-distro-glibc-x86_64-qti-distro-fullstack-image-aarch64-toolchain-<version>.sh
这是一个自解压安装脚本
步骤 4: 安装 SDK
cd /home/hongrongkun/work/xinghe/v20/LE.PRODUCT.11/build-qti-distro-fullstack-debug/tmp/deploy/sdk/
chmod +x <sdk-script-name>.sh
./<sdk-script-name>.sh
./fullstack-debug-x86_64-qti-multimedia-image-aarch64-canoe-toolchain-170a460.sh
安装时会提示选择安装路径(默认通常是 /opt/<sdk-name>/)
安装后,SDK 会设置环境变量和路径
步骤 5: 使用 SDK
安装后,每次使用前 source 环境脚本:
source /opt/<sdk-name>/environment-setup-aarch64-oe-linux
然后可以使用 aarch64-oe-linux-gcc 等工具进行交叉编译
CMake 项目可以直接使用,无需自定义 toolchain.cmake
注意事项
如果需要特定组件的 SDK,可以修改 conf/local.conf 添加 TOOLCHAIN_TARGET_TASK 或 TOOLCHAIN_HOST_TASK
SDK 包较大(几 GB),确保磁盘空间充足
如果构建失败,检查日志:bitbake -c populate_sdk -v qti-distro-fullstack-imag
