SS928&3403 开发环境搭建(二)

1.序

        在前一篇“SS928&3403K开发环境搭建(一)”中已经借助Ebaina搭建好的ubuntu对开发板做了测试,这篇记录从零开始搭建SS928&3403K的开发环境;

2.开发前准备

        下载VMware® Workstation 16 Pro 16.1.0版本

        下载ubuntu18.04开发镜像文件,我使用的是清华源镜像,下载地址如下:

Index of /ubuntu-releases/18.04.6/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

3.安装ubuntu环境

3.1VMware® Workstation 16 Pro 16.1.0

        默认安装即可,建议安装在D盘(习惯…^0^…);

3.2安装ubuntu18.04

        不管,自己去搜(一搜一大把…^0^…);

4.ubuntu系统环境

        目前的开发进度上我只安装nfs、vscode、ssh这几个软件

        nfs:上一篇有提到过,是将ubuntu的文件夹挂在到开发板,挂在后可以直接在开发板访问这个文件夹,省去了更新程序的时间;

        vscode&ssh:安装这两个后,vscode上安装remote-ssh插件,这样可以直接用windows在ubuntu中写程序,编译、调试等,简直不要太爽~,这个的安装和使用我就不在介绍了,我也不熟(一搜一大把…^0^…)。

5.开发环境搭建

        哎呀,写到这里要下班了,不想写了

        启动ubuntu后,换软件源,老规矩,我不熟(一搜一大把,我也记不住命令,好像可以图形操作哦…^0^…);

        更换源成功后,迅速的按下ctrl+alt+t(好像已经打开了),弹出终端并在终端快速的输入sudo apt-get update(刷刷刷~),完成后在输入sudo apt-get upgrade(刷刷刷),完成!!!

        后续的操作就是在官方提供的“SS927V100 开发环境用户指南.pdf"的步骤啦(这个好像要花人民币才能给),后面的记录是按照用户指南中的操作搭建开发环境的过程了,

这是时间分界线~,20240725

5.1安装软件包

1.更换为bash

        ubuntu默认sh默认是指向dash的,在开发之前需要修改为指向bash,

                命令:sudo dpkg-reconfigure dash,先择no

        bash和sh的区别:

                Bash(‌Bourne Again SHell)‌是一个功能强大的shell解释器;

                Dash(‌Debian Almquist SHell)‌是一个更小、‌更轻量级的Shell解释器;

        至于为什么要更换是因为bash更快?

2.安装需要的软件包

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

3./etc/ld.so.preload 文件

        创建/etc/ld.so.preload 文件(sudo touch /etc/ld.so.preload ),在终端输入echo "" > /etc/ld.so.preload,解决64bit linux兼容的问题

4.安装mtd-utils的依赖库,e2fsprogs 依赖 texlive

        sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config automake
        sudo apt-get install texlive
5.安装liewOS的编译环境
(1)下载python2.7.18和3.8.9,拷贝到ubuntu的目录(随便哪个):

        wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
        wget https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz
(2)安装python安装需要的依赖包(安装不成功,其实啥装啥)
        sudo apt install build-essential checkinstall
        sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev  libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev  
(3)编译ptyhon2.7
        解压后进入到解压目录,输入下面的命令:
        tar -xf Python-2.7.18.tgz
        cd Python-2.7.18
        ./configure --enable-optimizations(配置)
        make(编译)
        sudo make altinstall(sudo make install,安装)
安装完成后在终端输入python2.7 --version,显示版本信息,便是安装成功。

        python3.8.9和上面python2.7.18一样的安装步骤啦~

(4)安装pip

        这个指令后面使用的时候需要注意,因为在ubuntu安装了多个版本的python,所以pip在默认的指向是python2,而python3.8.9对应pip3.

        pip依赖setuptools,下载地址:setuptools · PyPI

        

        选择对应的版本下载即可,我这里下载和手册上一样的版本(50.3.2,也可下载45.0.0版本),安装指令如下:    

        sudo unzip setuptools-50.3.2.zip
        cd setuptools
        sudo python setup.py install
        
        安装PIP, pip · PyPI ,下载对应的版本,同样和手册一样(20.2.4.)
        安装指令:
        sudo tar -zxvf pip-20.2.4.tar.gz
        cd pip-20.2.4
        sudo python setup.py install

(5)安装kconfiglib,因为这里,我载编译时遇到了一个问题,后续说明

        sudo pip install kconfiglib

6.optee 模块依赖 python3.x.x、pip3、wheel、pycryptodome、pyelftools 库

(1)安装python3.7.6

        同python2.7.18版本安装

(2)安装wheel,pycryptodome、pyelftools 库

wheel · PyPI,版本0.36.2

Links for pycryptodome (tsinghua.edu.cn),版本3.9.8

pyelftools · PyPI,版本0.27

安装指令

        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

5.2安装交叉编译工具和riscv 交叉编译工具

        这个载官方提供的资料包里面,我的是这两个版本:

(1)交叉编译工具安装:

        tar -xvf aarch64-mix210-linux.tgz
        cd aarch64-mix210-linux
        sudo ./aarch64-mix210-linux.install
        
(2)riscv 交叉编译工具
        tar -xvf cc-riscv32-cfg5-musl-20211008-elf.tar.gz
        cd cc-riscv32-cfg5-musl-20211008-elf
        sudo ./install.sh
(3)添加环境变量
        我在后面编译SDK时,出现了未发现aarch64-mix210-linux-gcc的错误,原因时未将aarch64-mix210/bin添加到环境变量,添加后错误消失,但是我查看ebaina虚拟机的下面两个文件未发现添加的这条指令(我只看了文件末尾,没仔细找,hhhh)。

        在~/.bashrc或~/.profile文件中变价aarch64-mix210-linux-gcc和ccc-riscv环境变量
        export PATH=/home/mc/work/cc-riscv32-cfg5-musl-20211008-elf/cc-riscv32-cfg5-musl-20211008-elf/bin:${PATH}
        export PATH=$PATH:/opt/linux/x86-arm/aarch64-mix210-linux/bin

5.3安装交叉编译工具和riscv 交叉编译工具

        SDK包在官方提供的SS928V100R001***/01.software/board目录下

        我的版本:

        后面还有个补丁包要装,hhhh

        tar -zxf SS928V100_SDK_V2.0.2.2.tgz

        ./sdk.unpack
        补丁包在这个目录下SS928V100R001***02.only for reference\software
        我的版本:

        下面两个都要拷贝到虚拟机和SS928V100_SDK_V2.0.2.2在同一目录即可,看看readme,

        哇,里面写了怎么安装~

6.编译

        进入到SS928V100_SDK_V2.0.2.2/osdrv目录下,打开readme_cn.txt,还有个readme_en.txt,俺英语不好不想看,

        你看告诉你了怎么编译,hhhh~

        make all~漫长的等待

        目前我的理解时SDK的编译主要分为,

        uboot、kernel、rootfs、liteOS几个可独立编译的模块,后续的开发方便可不整个编译,分别对这几个单独编译,提高开发效率!

         编译成功,至此,开发环境搭建完成~

7.编译遇到的问题

1."ModuleNotFoundError: No module named 'kconfiglib' "

只有一个版本
pip install kconfiglib

同时安装了Python 2.x和Python 3.x,并且pip指向Python 2.x版本,请使用pip3
pip3 install kconfiglib
pip3.6 install kconfiglib


2./home/mc/work/SS928V100_SDK_V2.0.2.2/platform/liteos/liteos/targets/ss928v100_mcu/include/menuconfig.h Not found file
    缺少menuconfig.h文件的原因liteos编译前,make menuconfig和make savemenuconfig的过程异常,没生成menuconfig.h文件,异常原因如下:
    liteos是使用python2.7编译的,python没有安装kconfiglib模块(这个可能在解决1的问题时,让我不小心卸载了,模糊的记得输入了pip uninstall kconfiglib),将python改为指向python2.7后,安装kconfiglib模块即可,操作如下:
    $ ls /usr/bin/python -l
    lrwxrwxrwx 1 root root 9 4月  16  2018 /usr/bin/python -> python3.6
    $ cd /usr/bin/
    $ sudo rm python
    $ sudo ln -s python2.7 python
    $ ls /usr/bin/python -l
    lrwxrwxrwx 1 root root 9 9月  13 20:14 /usr/bin/python -> python2.7
    $ sudo pip install kconfiglib

  • 23
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值