1. 编译前环境准备

首先将SDK源码下载到本地环境

1.1 安装 SDK 基础依赖

打开终端,执行以下命令安装 SDK 编译所需的基础工具:

sudo apt-get update
sudo apt-get install openssh-server vim git fakeroot make automake \
autoconf libtool libssl-dev bc dosfstools mtools parted iproute2 kmod libyaml-dev \
device-tree-compiler python-is-python3 flex bison build-essential u-boot-tools \
libncurses-dev lib32stdc++6 lib32z1 libc6:i386 gawk

说明:这一步安装了 SDK 通用的基础依赖。其中 gawk 是 Buildroot 在 target-finalize 阶段必须用到的工具,Ubuntu 默认只有 mawk,务必安装 gawk,否则编译会在最后收尾阶段报错。

但是,本步骤不包含 Python 3.10 主机版开发库,Buildroot 在编译过程中会用到 Python 3.10,需要单独处理(见 1.2)。

安装主机版 Python 3.10 共享库( 首次编译容易报错)

Buildroot 编译 host-python3 3.10.4 时,会执行刚编译出来的 python3.10 来生成内部文件,此时动态链接器需要找到 libpython3.10.so.1.0。如果系统里没有这个库,编译会失败。

本文档采用的办法是从源码编译安装 Python 3.10.4 并启用共享库。

1.2.1 安装编译 Python 所需的依赖

text
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev \
libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev

1.2.2 下载并编译 Python 3.10.4

cd /tmp
wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz
tar -xf Python-3.10.4.tgz
cd Python-3.10.4

关键配置:必须加 –enable-shared,否则不会生成 libpython3.10.so.1.0。

./configure --enable-optimizations --enable-shared
make -j$(nproc)
sudo make altinstall

说明:使用 altinstall 而不是 install,避免覆盖系统自带的 Python 3.8。

1.2.3 注册共享库路径

echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/python3.10.conf
sudo ldconfig

1.2.4 验证

ldconfig -p | grep libpython3.10

期望输出(必须能看到这一行):
libpython3.10.so.1.0 (libc6,x86-64) => /usr/local/lib/libpython3.10.so.1.0
如果能看到,说明主机版 Python 3.10 共享库已就绪,可以继续编译 SDK。

2. SDK 配置与编译

2.1 进入 SDK 根目录

cd ~/ypt153evb
注:请根据源码实际放置路径修改

2.2 运行配置脚本

./yz_build.sh config

按提示依次选择你所需要的配置(参考如下):

配置完成后,脚本会自动在 device/config/chips/t153/configs/t153_nand_base/ 下设置好 BoardConfig.mk、sys_partition.fex、env.cfg 等文件。

2.3 开始编译

./yz_build.sh

脚本会自动依次编译:kernel → modules → boot.img → dts → rootfs → buildroot。


首次编译时间较长
生成的 t153_linux_t153_nand_base_uart0.img 即为可烧录到板子上的完整固件包。

3. 常见问题与解决方法

编译报错:libpython3.10.so.1.0: cannot open shared object file

现象:

原因:主机系统缺少 Python 3.10 的共享库,Buildroot 编译 host-python3 时无法加载。

解决:按第 1.2 节从源码编译安装 Python 3.10.4(务必加 –enable-shared),并执行 ldconfig 注册路径。验证 ldconfig -p | grep libpython3.10 能看到 /usr/local/lib/libpython3.10.so.1.0 后重新编译。

sudo apt install libpython3.10-dev 提示“无法定位软件包”

尝试安装 python3.10-dev:

sudo apt install python3.10-dev

如果仍找不到,直接采用第 1.2 节的源码编译方案,这是最可靠的方式。

编译报错:gawk: command not found

原因:Buildroot 在 target-finalize 阶段需要 gawk,Ubuntu 默认只有 mawk。

sudo apt install gawk

安装后重新执行 ./yz_build.sh,无需 make clean,会从上次中断处继续编译。

在 SDK 根目录执行 make clean / make distclean 报错

原因:SDK 根目录没有顶层 Makefile,make clean 需要在 Buildroot 输出目录中执行。

cd ~/ypt153evb/out/t153/t153_nand_base/buildroot/buildroot
make clean

如需彻底清理 host-python3 的编译产物:

rm -rf ~/ypt153evb/out/t153/t153_nand_base/buildroot/buildroot/build/host-python3-3.10.4

注意:不要直接删除 SDK 根目录或源码目录来“重来”,那样无法解决主机缺库的问题。

编译中途失败后想重新编译

按以下顺序操作:

进入 Buildroot 输出目录清理:

cd ~/ypt153evb/out/t153/t153_nand_base/buildroot/buildroot
make clean

回到 SDK 根目录重新编译:

cd ~/ypt153evb
./yz_build.sh

如果只是某一步失败(如 host-python3 或 target-finalize),也可以只删除对应目录让它单独重编,无需完整 make clean。

4. 快速检查清单(编译前自查)

□ 已执行第 1.1 节的基础依赖安装(含 gawk)
□ 已从源码安装 Python 3.10.4 并加 –enable-shared
□ 已执行 echo “/usr/local/lib” | sudo tee /etc/ld.so.conf.d/python3.10.conf && sudo ldconfig
□ ldconfig -p | grep libpython3.10 能看到 /usr/local/lib/libpython3.10.so.1.0
□ 已用 ./yz_build.sh config 完成板卡配置
□ 在 SDK 根目录执行 ./yz_build.sh 开始编译
□ 编译完成,生成 t153_linux_t153_nand_base_uart0.img 固件

作者:林晓燕  创建时间:2026-10-15 17:11
最后编辑:林晓燕  更新时间:2026-10-15 21:16