#2020征文-开发板#鸿蒙小车开发板Linux环境搭建

LegendOfTiger
发布于 2021-1-26 09:35
浏览
0收藏

华为小车是Hi3861开发板,属于WLan联结类产品。主要根据官网文档,https://device.harmonyos.com/cn/docs/start/introduce/oem_quickstart_3861_build-0000001054781998来搭建。

H93861需要搭建Linux编译环境和Windows开发环境。我自己的本机环境是Windows 10,安装了WSL Ubuntu。

这里先说明Linux开发环境搭建情况。

一、shell改为bash

ls -l /bin/sh
# 返回 /bin/sh -> dash,说明就是bash,不用修改

二、安装Python环境
1、安装Python3.7以上版本

python3 --version
# 返回 Python 3.8.5,高于3.7版本,不用升级

2、将python3 链接到 python

which python3
# 返回 /usr/bin/python3,根据返回内容完成ln操作
ln -s /usr/bin/python3 /usr/bin/python
python --version
# 返回 Python 3.8.5,说明python链接成功

3、安装并升级Python包管理工具(pip3)

sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip

4、安装python模块

sudo pip3 install setuptools kconfiglib pycryptodome six ecdsa

其中的pycryptodome没有安装成功,通过下载安装包方式进行安装,去https://pypi.org/project/pycryptodome/#files网址下载pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl,然后执行

wget https://files.pythonhosted.org/packages/0a/94/0a2dbcdff4b409e1eaacba95593b25e5eaec05237fccdeaf1c154b2771e4/pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl
sudo pip3 install pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl

5、安装Scons

sudo apt-get install scons -y
scons -v
# 返回如下内容:
SCons by Steven Knight et al.:
        script: v3.1.2.bee7caf9defd6e108fc2998a2520ddb36a967691, 2019-12-17 02:07:09, by bdeegan on octodog
        engine: v3.1.2.bee7caf9defd6e108fc2998a2520ddb36a967691, 2019-12-17 02:07:09, by bdeegan on octodog
        engine path: ['/usr/lib/scons/SCons']
Copyright (c) 2001 - 2019 The SCons Foundation

6、安装gn和ninja

cd ~/
wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar
tar -xvf gn.1523.tar
wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar
tar -xvf ninja.1.9.0.tar
​
vim /etc/profile
# 在最后添加如下内容
export PATH=/home/XXX/gn:/home/XXX/ninja:$PATH
# 保存文件并退出后执行
source /etc/profile

7、安装gcc_riscv32
前面的步骤,尽管有出错的地方,总体还算比较顺利。这一步骤,坑点很多,根据文档无法完成部署,也不知道文档什么时间完善。二话不说,直接在官网提交意见反馈。

1、从github下载源代码,费老劲了。我整整折腾了一个周,ubuntu下用git clone命令行下载不成功,windows下用github desktop工具也下载不成功,用网页方式进github网站下载zip竟然总是失败。这也太难了。最终,还是下载zip方式下载了几个源代码包。

2、先下载整个riscv-gnu-toolchain,然后删除riscv-newlib、riscv-binutils、riscv-gcc等目录,再重新下载对应的低版本的内部包。为了简化操作,还是建议在gitee上建一个不用修改的完整的包。

3、riscv-gcc-7.3.0需要打补丁。按照89411.patch上写的,我找到对应的文件gcc/config/riscv/riscv.c,可是发现patch包写的行号完全不对应。我找了所有版本的riscv.c源代码,结果没有一个跟patch包里的行号一致的,这咋改?

4、GPM、MPFR的安装脚本一毛一样,包名、目录名啥的完全一样,这写错了吧?

5、编译binutils倒是成功了,但是newlib编译失败,告诉没有riscv32-unknown-elf-cc命令,我已经把/opt/gcc_riscv32/bin加入到PATH中,该目录下确实没有这个文件。gcc也一样编译失败,报size_t未定义。

我实在没法了,直接找了已经打包好的gcc-riscv,才继续下去。
1)安装基础编译软件

sudo apt-get install gcc g++ flex bison texinfo

2)下载riscv-gnu-toolchain交叉编译工具链。
官网的源代码方式无法正常编译安装。

从如下网址获取http://tools.harmonyos.com/mirrors/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz已经打包好的编译工具,直接解压缩并放到/opt/gcc_riscv32/目录下。

cd ~/
wget http://tools.harmonyos.com/mirrors/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz
sudo tar -xvf gcc_riscv32-linux-7.3.0.tar.gz
sudo mv gcc_riscv32/ /opt/gcc_riscv32/
​
vim /etc/profile
# 最后修改为如下内容
export PATH=/home/XXX/gn:/home/XXX/ninja:/opt/gcc_riscv32/bin:$PATH
# 保存文件并退出后执行
source /etc/profile
​
# 运行如下命令判断是否安装正确
riscv32-unknown-elf-gcc -v
# 最后返回的是:gcc version 7.3.0 (GCC)

至此,Linux编译环境搭建完成。

已于2021-2-1 14:52:56修改
2
收藏
回复
举报
2条回复
按时间正序
/
按时间倒序
鲜橙加冰
鲜橙加冰

小车开发编译环境搭建

回复
2021-1-26 11:20:53
老船夫
老船夫

官方文档里这个riscv-gcc的编译步骤看起来的确是有问题。

回复
2021-1-28 22:48:07
回复
    相关推荐