鸿蒙 移植 树莓派 zero w - 搭建环境下载源码

阎峰
发布于 2021-2-3 14:41
浏览
0收藏

本帖记录了移植到树莓派 zerow的详细步骤,参考了亮子力的系列文章(https://harmonyos.51cto.com/posts/2903),特此感谢。如若侵权,请联系本人删除

 

编译鸿蒙的源码建议在Ubuntu20.04下进行,windows下会出现各种奇怪的问题,不建议使用。

1、VirtualBox 虚拟机安装
VirtualBox官网下载地址:https://www.virtualbox.org/

Ubuntu20.04官网下载地址:https://ubuntu.com/download/desktop

关于VirtualBox和Ubuntu的安装和使用就不展开了,百度一下资料很多。

2、改sh为bash(Ubuntu默认为dash,需要修改,不然编译的时候,脚本会出错)
ls -l /bin/sh             #如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改: 
sudo dpkg-reconfigure dash    #然后选择no
3、安装打包工具mkfs.vfat mtools

为了加快apt-get下载速度,可以更换为国内apt源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo vi /etc/apt/sources.list

把原文件替换为:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security multiverse


sudo apt-get update

sudo apt-get install dosfstools mtools  #官方要求安装的2个工具 
sudo apt-get install zip       #官方文档没写,但是rootfs过程需要 
sudo apt-get install python3-distutils  #官方文档没写,但是build过程需要
4、下载安装编译工具gn ninja llvm hc-gen
hc-gen:鸿蒙驱动hdf框架之类的,用于生成鸿蒙驱动配置对应的文件

新建一个downloadtools可执行文件,添加如下命令

#下载gn/ninja/LLVM/hc-gen包:
URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler
wget $URL_PREFIX/gn/1523/linux/gn.1523.tar
wget $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar
wget $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar
wget $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar
wget $URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz #【可选】编译riscv需要,如wifiiot

#解压gn/ninja/LLM/hc-gen包:
tar -C ~/ -xvf gn.1523.tar
tar -C ~/ -xvf ninja.1.9.0.tar
tar -C ~/ -xvf llvm-linux-9.0.0-34042.tar
tar -C ~/ -xvf hc-gen-0.65-linux.tar
tar -C ~/ -xvf gcc_riscv32-linux-7.3.0.tar.gz  #【可选】编译riscv需要,如wifiiot

运行downloadtools文件。

 

更新$PATH变量:

#向~/.bashrc中追加gn/ninja/LLVM/hc-gen路径配置:
cat <<EOF >> ~/.bashrc
export PATH=~/build_tools/gn:$PATH
export PATH=~/build_tools/ninja:$PATH
export PATH=~/build_tools/llvm/bin:$PATH
export PATH=~/build_tools/hc-gen:$PATH
#export PATH=~/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin:$PATH
export PATH=~/gcc_riscv32/bin:$PATH   #【可选】编译riscv需要,如wifiiot
#export PATH=~/.local/bin:$PATH
EOF

#生效环境变量
source ~/.bashrc


5、安装python3.8和 pip
编译鸿蒙源码hi3861目标平台需要使用scons,默认安装的scons版本需要python版本>=3.7:

a、如果是ubuntu20.04,因为默认python是3.8,正好符合要求,只需要安装pip即可,可以进行第6步了。

sudo apt-get install python3-pip
注意:如果pip下载慢,配置pip包下载源,加速国内安装pip包:

mkdir~/.pip/
cat <<EOF > ~/.pip/pip.conf
[global]
index-url = https://mirrors.huaweicloud.com/repository/pypi/simple
trusted-host = mirrors.huaweicloud.com
timeout = 120
EOF
b、如果是其他版本,比如ubuntu18.04,默认Python3版本是 3.6,得先安装python3.8

sudo apt-get install python3.8 python3-pip 
sudo apt-get install python3-pip

sudo apt-get install python3-distutils
安装完成后,需要将默认python切换为3.8,比较麻烦的是多个python版本的管理,通常有两种方式:

方案一:使用virtualenv管理,单独source相应的active脚本切换当前shell会话的默认python版本

virtualenv管理多个python运行环境,不适用virtualenv的情况下,pip install 和 sudo pip install的包会分别放到用户home目录和系统目录

安装virtualenv:

pip3 install virtualenv
sudo apt install python3-virtualenv

#创建使用python3.8为默认python解释器的virtualenv
mkdir ~/Harmony/venv && virtualenv -p python3.8 ~/Harmony/venv

#激活virtualenv,激活后的pip3 install会将包文件缓存到相应的子目录中
source ~/harmonyos/venv/bin/activate
source ~/Harmony/.venv/bin/activate
方案二:使用update-alternatives管理,并切换全局Python脚本配置(不推荐,用完需要切换回去,否则会影响apt等依赖python3的软件包使用);

update-alternatives ,它是 Debian 系管理多版本软件的工具,不仅适用 Python ,而且还使用 Java 等各种有多版本共存需求的软件。 它跟 virtualenv 这种虚拟环境不同的是, update-alternatives 管理的是系统级的软件版本, virtualenv 管理的是当前用户下的一个虚拟环境。

 

6、确定python的环境变量
方案一:使用【ln -s】,确定Python安装好后,运行如下命令,将python路径链接到"/usr/bin/python"。

which python3.8               #查看python3.8的安装位置
    输出:/usr/bin/python3.8   #比如我的安装目录
cd /usr/bin                   #进入python的目录
sudo rm python                #删除python
sudo ln -s /usr/local/bin/python3.8 python #将python链接到python3.8
python --version
方案二:sudo apt-get install python3-venv #安装venv虚拟环境

python3 -m venv .venv       #推荐进入项目的根目录再执行此命令
source .venv/bin/activate   #进入虚拟环境


其他工具安装

#安装setuptools和kconfiglib
pip3 install setuptools kconfiglib

#安装编译hi3861需要的pip包
pip3 install scons ecdsa pycryptodome
pip3 install --upgrade --ignore-installed six

 

2. 下载源码

Ubuntu环境搭建完成之后开始下载源代码。

2.1、配置GIT

sudo apt install git
git config --global user.name "liangzili"
git config --global user.email "liangzili@qq.com"
git config --global credential.helper store
2.2、安装码云repo工具,可以执行如下命令

wget https://gitee.com/oschina/repo/raw/fork_flow/repo-py3

mv repo-py3 repo

chmod a+x repo

sudo mv repo /usr/local/bin/.

 

已于2021-2-8 14:13:32修改
3
收藏
回复
举报
2条回复
按时间正序
/
按时间倒序
Whyalone
Whyalone

这算是交了个作业么?赞!!

回复
2021-2-3 14:56:44
鲜橙加冰
鲜橙加冰

其它内容什么时候?

回复
2021-2-3 16:08:44
回复
    相关推荐