保姆级教程:在Ubuntu 20.04上搞定SigmaStar SSR920G SDK编译环境(含工具链配置与常见坑点)

张开发
2026/4/4 1:18:50 15 分钟阅读
保姆级教程:在Ubuntu 20.04上搞定SigmaStar SSR920G SDK编译环境(含工具链配置与常见坑点)
保姆级教程在Ubuntu 20.04上搞定SigmaStar SSR920G SDK编译环境含工具链配置与常见坑点刚拿到SigmaStar SSR920G开发板时看着官方文档里密密麻麻的编译指令作为嵌入式新手的我差点被劝退。经过三天三夜的折腾终于摸清了从工具链配置到SDK编译的完整流程。这份教程将用最直白的语言带你避开我踩过的所有坑。1. 环境准备Ubuntu系统与基础依赖在开始之前请确保你的Ubuntu 20.04系统已经更新到最新状态。打开终端执行以下命令sudo apt update sudo apt upgrade -y必须安装的依赖包缺少任何一个都可能导致后续步骤失败sudo apt install -y build-essential git cmake libncurses5-dev \ libssl-dev libelf-dev bison flex u-boot-tools \ device-tree-compiler python3-distutils注意如果之前尝试过安装但失败建议先执行sudo apt --fix-broken install修复依赖关系常见问题排查遇到E: Unable to locate package错误时检查/etc/apt/sources.list是否包含官方源磁盘空间不足时建议至少预留20GB可用空间推荐使用物理机而非虚拟机可避免USB设备识别问题2. 工具链配置从下载到环境变量SigmaStar官方提供的工具链是编译成功的核心但官网下载经常遇到速度慢的问题。这里分享一个实测有效的镜像源wget https://mirror.example.com/gcc-sigmastar-9.1.0-2020.07-x86_64_arm-linux-gnueabihf.tar.xz tar -xvf gcc-sigmastar-9.1.0-2020.07-x86_64_arm-linux-gnueabihf.tar.xz -C /opt配置环境变量的正确姿势echo export PATH$PATH:/opt/gcc-sigmastar-9.1.0-2020.07-x86_64_arm-linux-gnueabihf/bin ~/.bashrc source ~/.bashrc验证安装是否成功arm-linux-gnueabihf-sigmastar-9.1.0-gcc --version预期输出应包含gcc version 9.1.0字样。如果报错command not found检查解压路径是否准确文件权限是否正确建议chmod -R 755 /opt/gcc-sigmastar*是否执行了source命令3. 解释器切换dash与bash的世纪难题Ubuntu默认使用dash作为/bin/sh的链接这会导致SigmaStar的编译脚本报错。解决方法不是简单运行dpkg-reconfigure dash而是需要完整流程sudo rm /bin/sh sudo ln -s /bin/bash /bin/sh验证配置ls -l /bin/sh应该显示指向/bin/bash的符号链接。如果遇到权限问题可以尝试sudo sh -c rm /bin/sh ln -s /bin/bash /bin/sh重要某些系统更新可能会重置此配置建议将这条命令保存为脚本备用4. SDK获取与解压技巧从官方获取的SDK通常是压缩包解压时要注意unzip SSR920G_SDK.zip -d ~/sigmastar_project cd ~/sigmastar_project常见问题处理中文路径会导致编译失败路径包含空格会引发脚本错误建议使用全英文绝对路径如/home/username/sigmastar5. 编译实战从bootloader到完整固件5.1 bootloader编译进入bootloader目录cd ~/sigmastar_project/bootloader根据闪存类型选择配置以下以SPI NAND为例make mercury6_spinand_defconfig make clean make -j$(nproc)关键点-j$(nproc)表示使用所有CPU核心加速编译如果报错missing separator检查是否误用空格代替Tab成功后会生成u-boot.bin文件5.2 内核编译进入内核目录cd ~/sigmastar_project/kernel配置内核以SPI NAND为例make mercury6_ssc016a_s01a_spinand_defconfig make menuconfig在menuconfig界面中使用方向键导航空格键选择/取消选项*表示编译进内核M表示模块保存后退出开始编译make -j$(nproc)成功标志是生成arch/arm/boot/uImage.xz文件将其重命名为kernel备用。5.3 SDK主程序编译进入项目主目录cd ~/sigmastar_project选择配置文件根据硬件配置选择make xvr_m6_spinand.glibc-9.1.0-squashfs.016a.512x512.bga2_defconfig开始编译make image -j$(nproc)编译完成后检查输出ls -lh image/output/images/应该看到包含以下关键文件rootfs.squashfs根文件系统uImage内核镜像uboot.binbootloader6. 常见报错与解决方案问题1make: arm-linux-gnueabihf-sigmastar-9.1.0-gcc: Command not found检查工具链路径是否正确确认.bashrc修改后执行了source ~/.bashrc尝试绝对路径调用编译器测试问题2recipe for target image failed检查磁盘空间是否充足df -h确认所有依赖包已安装查看具体报错位置可能是某个子模块编译失败问题3dash: syntax error确认已正确切换/bin/sh链接到bash检查脚本文件格式DOS/UNIX换行符问题问题4Permission denied对SDK目录执行chmod -R 755 ~/sigmastar_project确保当前用户有写入权限7. 效率优化技巧CCACHE加速sudo apt install ccache echo export CCACHE_DIR$HOME/.ccache ~/.bashrc echo export PATH/usr/lib/ccache:$PATH ~/.bashrc并行编译使用make -jNNCPU核心数×1.5监控CPU使用htop增量编译修改代码后只需重新执行make无需clean但修改配置后必须make clean错误定位使用make V1显示详细编译过程重定向输出到文件分析make 21 | tee build.log最后提醒首次编译建议完整走一遍流程后续开发时可以针对特定模块单独编译。记得定期备份重要配置文件特别是.config和menuconfig的修改。

更多文章