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

相关推荐
Amnesia0_06 分钟前
传输层协议UDP和TCP
linux·网络·tcp/ip·udp
minji...7 分钟前
Linux 高级IO(三)多路转接之poll,poll的原理,poll版本的TCP服务器的实现
linux·服务器·网络·select·多路转接·epoll·poll
小此方10 分钟前
Re:Linux系统篇(二十四)进程篇·九:进程从创建到退出的底层机制与写时拷贝全解
linux·运维·驱动开发
艾莉丝努力练剑20 分钟前
【Linux网络】Linux 网络编程:传输层TCP(二)
linux·运维·服务器·网络·tcp/ip·计算机网络
都在酒里21 分钟前
Linux字符设备驱动开发(九):内核定时器——实现LED周期性闪烁与轮询驱动原理
linux·运维·驱动开发·交互
都在酒里1 小时前
Linux字符设备驱动开发(十):综合实例——I2C传感器 + LED智能控制与进阶指南
linux·运维·服务器·驱动开发·交互
2301_809051148 小时前
Linux 网络编程 学习笔记
linux·网络·学习
坤昱9 小时前
cfs调度类深入解刨——最新内核细节分析2
linux·服务器·cfs·cfs调度·eevdf调度·eevdf·kernel 7.1
艾莉丝努力练剑9 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
海市公约9 小时前
Linux核心基础命令与权限管理实战指南
linux·运维·服务器·vim·权限管理·系统监控·命令行