目录
- 前言
- 1、开发环境
- 2、在 linux 服务器上安装交叉工具链
- 2.1 安装 aarch64-mix410-linux.tgz
- 2.2 安装 cc-riscv32-cfg11-musl-20220523-elf.tar.gz
- 2.3 检查工具链版本,打印版本则表示配置成功
- 3、安装 SDK
- 3.1 SS626V100_SDK_V2.0.1.0 安装包位置
- 3.2 解压缩并展开 SDK 包
- 4、安装软件包及环境搭建
- 4.1 安装软件包
- 4.2 mtd-utils 依赖以下几个库,安装方式
- 4.3 设置 pkg-config 工具搜索路径
- 4.4 e2fsprogs 依赖 texlive 库
- 4.5 boot、optee 模块依赖库
- 4.5.1 Python-3.6.9 安装
- 4.5.2 wheel、pycryptodome、pyelftools 源码安装
- 4.6 LiteOS 编译需要安装的工具包括 python、pip 和 kconfiglib
- 4.6.1 确保服务器已安装 python
- 4.6.2 确保服务器已安装 pip
- 5、编译过程问题汇总及解决方法
- 6、编译 osdrv
- 6.1 彻底清除整个 osdrv 目录
- 6.2 编译整个 osdrv 目录
- 总结
前言
- 本文适合需要安装 SS626V100_SDK_V2.0.1.0 的所有人员;
- 为了提高 SDK 安装效率,建议按顺序执行安装步骤。
1、开发环境
windows10电脑 + 虚拟机15 Pro + Ubuntu18.0.4
2、在 linux 服务器上安装交叉工具链
2.1 安装 aarch64-mix410-linux.tgz
tar -zxf aarch64-mix410-linux.tgz
cd aarch64-mix410-linux/
chmod +x aarch64-mix410-linux.install
sudo ./aarch64-mix410-linux.install
source /etc/profile
2.2 安装 cc-riscv32-cfg11-musl-20220523-elf.tar.gz
tar -zxf cc-riscv32-cfg11-musl-20220523-elf.tar.gz
cd cc-riscv32-cfg11-musl-20220523-elf/
sudo ./install.sh
cd cc-riscv32-cfg11-musl-20220523-elf/bin
echo "export PATH=$(pwd):\${PATH}" >> $HOME/.profile
source ~/.profile
2.3 检查工具链版本,打印版本则表示配置成功
aarch64-mix410-linux-gcc -v
riscv32-cfg11-musl-20220523-elf-gcc -v
*注:为了工具链能及时生效,强烈建议重启一次服务器。
3、安装 SDK
3.1 SS626V100_SDK_V2.0.1.0 安装包位置
- 基础包:SS626V100R001***\SS626V100R001C02SPC010\01.software\board\ SS626V100_SDK_V2.0.1.0.tgz
- 增强包:SS626V100R001***\SS626V100R001C02SPC010\02.only for reference\software\SS626V100_REF_V2.0.1.0.tgz
- 增强包脚本:SS626V100R001***\SS626V100R001C02SPC010\02.only for reference\software\ref_patch.sh
- 基础补丁包:SS626V100R001***\SS626V100R001C02SPC010CP0001\01.software\board\ SS626V100_SDK_V2.0.1.0_CP0001.tgz
- 增强补丁包:SS626V100R001***\SS626V100R001C02SPC010\02.only for reference\software\SS626V100_REF_V2.0.1.0_CP0001.tgz
3.2 解压缩并展开 SDK 包
-
使用基础包和增强包,具体操作步骤如下:
步骤1. 将基础包 SS626V100_SDK_V2.0.1.0.tgz 和基础补丁包 SS626V100_SDK_V2.0.1.0_CP0001.tgz,放在同级目录下并解压:
tar -zxf SS626V100_SDK_V2.0.1.0.tgz tar -zxf SS626V100_SDK_V2.0.1.0_CP0001.tgz
步骤 2. 拷贝 SS626V100_SDK_V2.0.1.0_CP0001 软件包中的文件覆盖 SS626V100_SDK_V2.0.1.0 中对应目录下的文件即可:
cp SS626V100_SDK_V2.0.1.0_CP0001/* SS626V100_SDK_V2.0.1.0/ -r
步骤 3. 增强包打补丁,解压增强包 SS626V100_REF_V2.0.1.0.tgz 和增强补丁包SS626V100_REF_V2.0.1.0_CP0001.tgz,拷贝 SS626V100_REF_V2.0.1.0_CP0001 的文件覆盖 SS626V100_REF_V2.0.1.0 对应目录下的文件:
tar -zxf SS626V100_REF_V2.0.1.0.tgz tar -zxf SS626V100_REF_V2.0.1.0_CP0001.tgz cp SS626V100_REF_V2.0.1.0_CP0001/* SS626V100_REF_V2.0.1.0/ -r
2、执行 SS626V100_SDK_V2.0.1.0 文件夹内部解压:
cd SS626V100_SDK_V2.0.1.0 ./sdk.unpack
3、将增强包脚本 ref_patch.sh 拷贝到与 SS626V100_SDK_V2.0.1.0 同级目录下,并执行打补丁操作:
cd ../ cp /samba/ref_patch.sh ./ chmod +x ref_patch.sh ./ref_patch.sh
*注:执行以上步骤后,SS626V100_SDK_V2.0.1.0 则是打上REF增强补丁后的完整包。
4、安装软件包及环境搭建
4.1 安装软件包
sudo apt-get install make libc6-i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g++ u-boot-tools texinfo texlive gawk libssl-dev openssl bc p7zip-full gperf bison flex diffutils git unzip libtool autopoint gettext po4a
*注:采取一次性的安装方式,可能会存在依赖库遗漏安装的风险,建议还是手动一个个的安装最为稳妥(否则,编译过程可能会提示某些依赖库不存在的警告)。
4.2 mtd-utils 依赖以下几个库,安装方式
sudo apt-get install zlib1g-dev
sudo apt-get install liblzo2-dev
sudo apt-get install uuid-dev
sudo apt-get install pkg-config
sudo apt-get install automake
sudo apt-get install autoconf
sudo apt-get install m4
4.3 设置 pkg-config 工具搜索路径
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig"
4.4 e2fsprogs 依赖 texlive 库
sudo apt-get install texlive
4.5 boot、optee 模块依赖库
- 版本安装包下载链接:python3.6.9、pip3、wheel、pycryptodome、pyelftools
4.5.1 Python-3.6.9 安装
方法一,离线下载手动安装:
tar -zxf Python-3.6.9.tgz
cd Python-3.6.9/
./configure
make
make install
方法二,在线下载自动安装:
sudo apt-get install update
sudo apt-get install python3.6=3.6.9
4.5.2 wheel、pycryptodome、pyelftools 源码安装
tar -zxf wheel-0.36.2.tar.gz
cd wheel-0.36.2
sudo python3.7 setup.py install
sudo pip3 install pycryptodome-3.9.8-cp37-cp37m-manylinux1_x86_64.whl
sudo pip3 install pyelftools-0.27-py2.py3-none-any.whl
*注:pycryptodome 和 pyelftools 下载后需要拷贝到 wheel-0.36.2 目录下。
4.6 LiteOS 编译需要安装的工具包括 python、pip 和 kconfiglib
4.6.1 确保服务器已安装 python
- 若显示版本号则表示 python 安装成功,否则“
参考步骤4.5.1
”完成安装:python3.6 -V
4.6.2 确保服务器已安装 pip
-
如果 pip 命令不存在,需要安装。pip 依赖 setuptools,如果 setuptools 不存在,也需要安装。
-
setuptools 安装:
点击 setuptools源代码包下载地址,可以参考下面的命令进行安装:sudo unzip setuptools-50.3.2.zip cd setuptools sudo python3.6 setup.py install
-
pip 安装:
点击 pip源代码包下载地址,可以参考下面的命令进行安装:sudo tar -zxf pip-20.2.4.tar.gz cd pip-20.2.4 sudo python3.6 setup.py install
-
安装 kconfiglib:
1.对于服务器可以联网
的情况,直接安装 kconfiglib:sudo pip3 install kconfiglib
2.对于服务器
不能联网
的情况,采用离线的方式安装(下载kconfiglib):
(1) wheel 文件的安装命令:sudo pip3 install kconfiglib-14.1.0-py2.py3-none-any.whl
(2) kconfiglib 源代码文件的安装命令:
sudo tar -zxf kconfiglib-14.1.0.tar.gz cd kconfiglib-14.1.0 sudo python3.6 setup.py install
5、编译过程问题汇总及解决方法
-
以下有部分问题是在安装 SS626V100_SDK_V2.0.0.3 版本时遇到的,在此会重复罗列。
-
问题1: riscv32-cfg11-musl-20220523-elf 编译器在环境变量里找不到
-
解决方法:
在确认 riscv32 工具链已经安装的情况下,
重启虚拟机
即可。 -
问题2: 找不到 meruconfig.h 头文件
-
解决方法:
- 如果 python、pip 和 kconfiglib 都已经安装成功,那很有可能是由于 setuptools 安装路径与 python 版本路径不一致所致的;
- 所以,需要重新执行一次 “setuptools安装“ 步骤。
- 如果执行了“setuptools安装“步骤仍然有同样的报错,则可能是默认使用了 python 2.7 版本,而 setuptools 最新版本不支持 python 2.7,请下载 setuptools 45.0.0 版本 以支持 python 2.7。安装步骤如下:
sudo unzip setuptools-45.0.0.zip
cd setuptools-45.0.0
sudo python setup.py install
-
问题3:
-
解决方法:
sudo apt-get install libssl-dev
-
问题4:
-
解决方法:
1.先确认 pkg.m4 路径位置:find /usr -name "pkg.m4"
搜索路径如下:/usr/share/aclocal/pkg.m4
2.再确认 aclocal 所在位置:
aclocal --print-ac-dir
搜索路径如下:/usr/local/share/aclocal
3.将 /usr/share/aclocal/*.m4 文件都拷贝到 /usr/local/share/aclocal/ 目录:
sudo cp /usr/share/aclocal/*.m4 /usr/local/share/aclocal/
-
问题5:
-
解决方法:
sudo apt-get install po4a
-
问题6:
-
解决方法:
将 Makfile 和 util-linux-2022.patch 补丁拷贝到 open_source/util-linux/ 目录:cp Makefile SS626V100_SDK_V2.0.1.0/open_source/util-linux/ cp util-linux-2022.patch SS626V100_SDK_V2.0.1.0/open_source/util-linux/
补充说明:
由于此处无法上传文件,请点击补丁包地址下载。
6、编译 osdrv
6.1 彻底清除整个 osdrv 目录
cd SS626V100_SDK_V2.0.1.0/osdrv
make distclean
6.2 编译整个 osdrv 目录
make all
编译成功打印:
---------finish osdrv work
总结
- 安装 SS626V100 最好使用 python3.x 以上的版本,如果使用 python2.7 版本可能会有编译不过的风险;
- SS626V100 SDK,其中很多程序都是通过 autoreconf 、automake 生成 configure.ac 和 Makefile.in 的,如果你的服务器相关依赖库安装的不好,就有可能会遇到各种各样的编译问题。
- 关于 autoreconf 和 automake 我这里给大家介绍两个链接,如果大家感兴趣可以看看:
3.1 automake
3.2 AM_PATH_PYTHON