背景
为了快速入门SS928V100板卡使用,之前用的一直是小组分享的ubuntu虚拟机环境,但是虚拟机在主机上运行占用内存,是的主机运行缓慢,正好手边有一台暂时闲置的ubuntu系统电脑,结合官方的开发环境配置文章,动手搭建、配置并记录下海思Ubutun开发环境的搭建过程,下面是板卡环境联系图。 
在 Linux 服务器上建立交叉编译环境,Windows 工作台通过串口和网口与 SS928V100单板连接,开发人员可以在 Windows 工作台中进行程序开发或者远程登录到Linux 服务器进行程序开发。
1、系统基本要求
推荐用户使用 64 位 Linux 服务器,本开发包在 32 位 Linux 服务器、较老版本的 Linux服务器、偏冷门的 Linux 服务器上可能存在未知的兼容性问题。
Windows10,Ubuntu18.04.6(64位),python3.7.6,vscode1.85.2(版本比较重要,高版本因为glic版本不匹配连不上)推荐的配置如下:

2、准备软件:
aarch64-mix210-linux.tgz
cc-riscv32-cfg5-musl-20211008-elf.tar.gz
3、网络环境搭建:
安装 nfs,samba,ssh 等网络组件,命令如下:
c
sudo apt update
sudo apt install nfs-kernel-server samba openssh-server
4、软件包安装
步骤 1 配置默认使用 bash
c
sudo dpkg-reconfigure dash 选择 no
步骤 2 安装软件包
c
sudo apt-get install make libc6-i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev
sudo apt-get instal ncurses-term libncursesw5-dev g++ u-boot-tools
sudo apt-get instal texinfo texlive gawk libssl-dev openssl bc p7zip-full gperf bison flex diffutils git unzip
步骤 3 创建/etc/ld.so.preload 文件,并执行以下命令进行清空
echo "" > /etc/ld.so.preload,以解决 64bit linux server 上某些第三方库编译失败的问题。
步骤 4 mtd-utils 依赖以下几个库,以ubuntu为例,安装方式请参考下面命令:
c
sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config automake
步骤 5 e2fsprogs 依赖 texlive 库,安装方式请参考如下命令:
c
sudo apt-get install texlive
注意:采用linux系统的可以不用安装6、7步,直接安装编译工具
步骤 6 LiteOS 编译需要安装的工具包括 python、pip 和 kconfiglib
用户可参考《LiteOS 开发指南.pdf》中第 8.2 章节文档进行 LiteOS 编译环境的配置。
步骤 7 optee 模块依赖 python3.x.x、pip3、wheel、pycryptodome、pyelftools 库(蓝色字 体为版本安装包下载链接)
python3.x.x 安装推荐 python3.7.6 版本
下载安装并执行如下指令:
c
tar -zxvf Python-3.7.6.tgz
cd Python-3.7.6/
./configure
make
make install
wheel 推荐源码安装, pip 安装可能失败
下载 wheel-0.36.2.tar.gz 安装包
c
tar -xzf wheel-0.36.2.tar.gz
cd wheel-0.36.2
sudo python2 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 依赖于 python3.x.x 环境请先升级至 python3.x.x 版本再安装pycryptodome 库。
5、安装交叉编译工具
使用从网络等渠道得到的交叉编译工具可能存在与使用的内核并不配套,造成开发过程中出现一些不可预料的问题。发布包提供编译工具链 aarch64-mix210-linux- 和 riscv32-cfg5-musl-xxxxxxxx-elf-。aarch64-mix210-linux-为基于 64bit 操作系统 glibc 的工具链,riscv32-cfg5-musl xxxxxxxx-elf- 为 riscv 核提供的工具链。
5.1、安装aarch交叉编译工具
c
//解压
tar-xvf aarch64-mix210-linux.tgz
//安装工具链
cd aarch64-mix210-linux/
sudo./aarch64-mix210-linux.install
测试:命令行,执行 aarch64-mix210-linux-gcc -v
查看是否有编译环境的版本信息输出,并无报错
5.2、安装riscv交叉编译工具
c
//解压
tar-xvf cc-riscv32-cfg5-musl-xxxxxxxx-elf.tar.gz
//安装工具链
cd cc-riscv32-cfg5-musl-xxxxxxxx-elf
sudo ./install.sh
注:如执行 ./install.sh 报错,可以将 install.sh 顶部修改#!/bin/bash
5.3、配置工具链路径
打开vi ~/.profile文件添加如下内容 使配置生效
c
PATH="$HOME/bin:$HOME/cc-riscv32-cfg5-musl-xxxxxxxxelf/toolschain/bin:$PATH"
//刷新环境变量,使之生效
source ~/.profile
6、安装SDK并测试
将 SS928V100_SDK_V2.0.2.1 代码示例及系统源码文件夹拷贝到Ubutun的工作路径下进行cmake和make编译。
7、vscode配置
7.1、ubuntu安装:
系统要安装sssh并开启,命令如下:
c
//安装
sudo apt-get install openssh-server
// 检查 SSH 服务状态
sudo systemctl status ssh
//如果未运行,启动 SSH
sudo systemctl start ssh
//设置开机自启
sudo systemctl enable ssh
7.2、vscode配置过程
1、首先点击左下角这个图标,然后要输入ssh liquan@172.16.0.33,然后输入密码

2、打开ubunu系统内的工程文件夹,然后输入密码
3、按"ctrl+shift+P"输入CMake:configure

4、第一次回弹出编译工具:选择64位的上述交叉编译工具即可。
8、安装过程可能遇到的问题及解决方法
8.1、python多版本管理
安装python 版本的时候,因为系统已经有python3.6,python3.7,还有一个默认的python3.10,但是配置过程要求python3.6,所以需要对python版本进行管理:
c
//查看已安装Python
ls /usr/bin/python*
//输入编号选择版本
sudo update-alternatives --config python3
输出如下:

或者直接类似下面的命令修改优先级:
c
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
但是直接输入python3的时候默认输出的是python3.10.9,不是上面的版本

原因在于此时的用户是anconda用户,因为前面有个(base),要想利用系统内的python,需要退出anconda用户,命令为:
c
conda deactivate
此时再利用上面的版本切换命令就可以了。
8.2、cmake错误:

这个错误的原因是CMake 构建失败是因为无法加载缓存文件,解决办法是需要先运行 cmake 配置命令来生成缓存文件,然后再执行构建命令。即需要在vscode下按Ctrl+Shift+P → 输入 "CMake: Configure"让 CMake Tools 重新读取 CMakeCache.txt 并建立正确的缓存连接,然后既可以编译