SS524V100 SDK 安装编译 osdrv 注意事项(一)

本教程将详细讲解如何在 Ubuntu 18.04 虚拟机上为 SS524V100 芯片搭建 SDK 开发环境,包括交叉工具链安装、SDK 包解压与补丁、osdrv 编译,以及常见编译错误的解决方法。无论你是初次接触还是经验丰富的开发者,都能通过这份指南顺利完成任务。
一、开发环境
- Windows10 电脑
- 虚拟机 VMware Workstation 15 Pro
- Ubuntu 18.0.4(64位)
提示:建议虚拟机分配至少 4GB 内存和 50GB 磁盘空间,以保证编译过程流畅。
二、在 Linux 服务器上安装交叉工具链
交叉工具链用于在 x86 主机上编译 ARM 架构的程序。请按以下步骤操作:
- 解压工具链包:
# tar -zxf arm-mix410-linux.tgz - 进入解压目录:
# cd armmix410-linux - 赋予安装脚本执行权限:
# chmod +x arm-mix410-linux.install - 执行安装,建议指定安装路径:
注意:如果不带参数# sudo .armmix410-linux.install opthisi-linuxx86-armopthisi-linuxx86-arm,默认安装路径为optlinuxx86-arm。建议显式指定路径以避免混淆。 - 使环境变量生效(二选一即可):
或者重启 Linux 服务器。# source etc/profile
小提示:安装完成后,可使用 arm-mix410-linux-gcc --version 检查工具链是否可用。
三、安装 SDK
3.1 SS524V100 SDK 包位置
请确认你已有以下三个文件(通常位于 softwareboard 目录下):
- 原始包:
SS524V100_SDK_V2.0.X.X.tgz(位于SS524V100R00101.softwareboard下) - 补丁包:
SS524V100_REF_V2.0.X.X.tgz(位于SS524V100R00102.only for referencesoftwareboard下) - 补丁脚本:
ref_patch.sh(与补丁包在同一目录)
注意:版本号中的 X.X 表示具体的小版本号,请以实际文件名为准。
3.2 解压缩并展开 SDK 包
补丁包 SS524V100_REF_V2.0.X.X.tgz 需要被打到原始包上。按照以下步骤操作:
- 将
SS524V100_SDK_V2.0.X.X.tgz和SS524V100_REF_V2.0.X.X.tgz放置到同一个文件夹下,然后解压:# tar -zxf SS524V100_SDK_V2.0.X.X.tgz # tar -zxf SS524V100_REF_V2.0.X.X.tgz - 进入解压后的 SDK 目录并展开内部文件:
# cd SS524V100_SDK_V2.0.X.X # .sdk.unpack - 执行打补丁操作(回到上一层目录):
执行后,# cd .. # chmod +x ref_patch.sh # .ref_patch.shSS524V100_SDK_V2.0.X.X文件夹即为打上 REF 补丁后的完整包。
小提示:补丁脚本 ref_patch.sh 会自动识别 SDk 目录,如果遇到权限问题,请用 sudo 执行。
四、编译 osdrv
本目录下的编译脚本默认支持 arm-mix410-linux 工具链(对应 glibc 库)。以下命令均以 ss524v100 为例。
4.1 彻底清除整个 osdrv 目录
如果需要从零开始编译,首先进入 osdrv 目录并清理:
# cd SS524V100_SDK_V2.0.1.0/osdrv
# make distclean
4.2 编译整个 osdrv 目录
# make all
注意:编译过程可能需要 10~30 分钟,取决于虚拟机性能。如果中途报错,请参考第五节的解决方法修复后重新执行 make all。
五、编译问题汇总及解决方法
以下是在编译 osdrv 过程中可能遇到的常见错误及其解决方案。
5.1 问题1:bison not found
错误信息:bin/sh: 1: bison: not found
解决方法:
# sudo apt install bison flex
说明:Bison 和 Flex 是 GNU 的语法分析器生成工具,许多开源组件依赖它们。
5.2 问题2:gperf not found
错误信息:configure: error: gperf not foundMakefile:10: recipe for target 'all' failedmake[1]: [all] Error 1make[1]: 离开目录“.../open_source/eudev”Makefile:330: recipe for target 'boardtools' failedmake: [boardtools] Error 2
解决方法:
# sudo apt-get install gperf
说明:Gperf 是一个完美哈希函数生成器,eudev 库需要它。
5.3 问题3:缺少 ZLIB 库(mtd-utils 相关)
错误信息:configure: WARNING: cannot find ZLIB library required for mkfs programsconfigure: mtd-utils can optionally be built without mkfs.ubifsconfigure: mtd-utils can optionally be built without mkfs.jffs2configure: error: missing one or more dependenciesMakefile:47: recipe for target 'mtd_board' failedmake[1]: [mtd_board] Error 1make[1]: 离开目录“.../open_source/mtd-utils”Makefile:330: recipe for target 'boardtools' failedmake: [boardtools] Error 2
解决方法:
安装 mtd-utils 2.x.x 所需的依赖库:
# sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config automake
说明:mtd-utils 用于创建 UBIFS/JFFS2 文件系统,需要 zlib、lzo、uuid 等开发库。
5.4 问题4:7z 命令未找到
错误信息:7z x lzma1900.7z -olzma1900make[1]: 7z: Command not foundMakefile:7: recipe for target 'all' failedmake[1]: [all] Error 127make[1]: 离开目录“.../open_source/lzma”Makefile:291: recipe for target 'pctools' failedmake: [pctools] Error 2
解决方法:
# sudo apt install p7zip-full
说明:p7zip-full 提供了 7z 命令,用于解压 .7z 格式的压缩包。
当所有依赖正确安装后,重新执行 make all,如果终端出现以下提示,表示 osdrv 编译成功:
---------finish osdrv work
恭喜!至此,SS524V100 的 SDK 环境搭建和 osdrv 编译已经全部完成。你可以继续后续的板级开发或应用编译工作。
