鸿蒙hi3516DV300环境搭建及代码拉取编译
本文介绍鸿蒙编译环境的搭建,以及本人在过程种遇到的坑;官方网站的手册:https://device.harmonyos.com/cn/docs/start/introduce/oem_minitinier_environment_lin-0000001105407498搭建Ubuntu使用Windows10的WSL的Ubuntu子系统,网上有很多安装的分享,这里不做介绍,也可按照以下InsStep
本文介绍鸿蒙编译环境的搭建,以及本人在过程种遇到的坑;
官方网站的手册:
https://device.harmonyos.com/cn/docs/start/introduce/oem_minitinier_environment_lin-0000001105407498
文章目录
搭建Ubuntu
使用Windows10的WSL的Ubuntu子系统,网上有很多安装的分享,这里不做介绍,也可按照以下InsStep直接安装,默认安装是安装在系统盘下的,具体路径如下,所有Ubuntu的内容都在这个路径下。
C:\Users\username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs
- 打开设置->安全和更新->开发者选项,选择为“开发人员模式”;
- Win + R运行control appwiz.cpl指令,在启用或关闭Windows功能中勾选适用于Linux的Windows子系统和虚拟机平台两项启用,重启;
- 微软商店搜索Ubuntu安装,安装完毕直接启动并设置初始用户名密码便可以进入Ubuntu子系统;
这里介绍一下如何将安装好的Ubuntu子系统从系统盘迁移到指定的目录,本文将其迁移到D:\Ubuntu目录下。
Ubuntu子系统安装成功后,进行迁移操作,操作如下:
- 需要下载LxRunOffline,下载地址,下载文件LxRunOffline-v3.5.0-mingw.zip,然后解压到某个目录中
- 设置环境变量,在系统变量Path中添加LxRunOffline解压的目录(.exe所在的目录)
- 重启电脑,使环境变量生效
- Win + R运行cmd,输入LxRunOffline,如果显示下面的提示证明已经安装成功了
- Win + R运行cmd,输入LxRunOffline list查看子系统版本
- 复制上面的版本号,然后输入LxRunOffline move -n {version} -d {dir},{version}是版本号,{dir}是迁移目的目录,比如本文是20版本,迁移到D盘Ubuntu目录下,LxRunOffline move -n Ubuntu-20.04 -d D:\Ubuntu,然后回车,等待迁移完成,10分钟左右
这样就将Ubuntu的迁移到指定目录下
(由于ubuntu LTS版本的限制,导致编译速度贼慢,可以用VMware或者VMbox,进行ubuntu的搭建,设置处理器个数,编译一把大概5-6分钟)
安装必要的软件
完成Ubuntu的搭建后,根据官方提供的环境搭建文档https://device.harmonyos.com/cn/docs/start/introduce/oem_minitinier_environment_lin-0000001105407498 进行安装软件包以及依赖的工具。
搭建基础环境
安装和配置Python
- 打开Linux编译服务器终端。
- 输入如下命令,查看python版本号,需使用python3.7以上版本。
python3 --version
由于我们安装的是Ubuntu20.0的版本,因此直接执行如下命令
sudo apt-get install python3.8
- 设置python和python3软链接为python3.8
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
- 安装并升级Python包管理工具(pip3)
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip
安装gn
参照上述官方文档
安装ninja
参照上述官方文档
安装hc-gen
参照上述官方文档
安装LLVM
参照上述官方文档
安装hb
参照上述官方文档
安装Hi3516DV300依赖环境
将Linux shell改为bash
查看shell是否为bash,在终端运行如下命令
ls -l /bin/sh
如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改:
sudo dpkg-reconfigure dash
(tip:注意这里是默认是dash而不是bash,不要看走眼了,还是需要更改的)
安装编译依赖基础软件(仅Ubuntu 20+需要)
执行以下命令进行安装:
sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
安装文件打包工具
- 打开Linux编译服务器终端
- 运行如下命令,安装dosfstools
sudo apt-get install dosfstools
- 运行如下命令,安装mtools
sudo apt-get install mtools
- 运行如下命令,安装mtd-utils
sudo apt-get install mtd-utils
安装Java 虚拟机环境
- 打开Linux编译服务器终端
- 安装Java运行时环境(JRE)
sudo apt-get install default-jre
- 安装Java sdk开发工具包
sudo apt-get install default-jdk
编译鸿蒙主干代码
根据官方手册 https://device.harmonyos.com/cn/docs/start/get-code/oem_sourcecode_guide-0000001050769927 获取代码;
安装repo工具
安装码云repo工具,可以执行如下命令
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo #如果没有权限,可下载至其他目录,并将其配置到环境变量中
chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
主干代码的拉取
通过刚才安装的repo下载主干代码
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
环境搭建中遇到的问题
- 一般按照如上操作下来,不看走眼,依赖的工具和软件都是可以正常安装下来的;
- 在下载代码的时候会出现,faltal:early EOF,提示是失败的意思
解决:这是由于引用的 kerel_linux的内容太多了,导致下载失败,可以在如下的xml文件中删除linux_kernel所在行
.repo//manfest/default.xml
- 在编译中报错FAILED: libhota.so unstripped/usr/lib/libhota.so,如下图:
解决:这是由于在拉取代码的时候,只执行了如下拉取命令:
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
并没有执行如下命令:(只要再执行如下命令,再编译即可)
repo forall -c 'git lfs pull'
4.在整个Hi3516DV300编译过程中,耗时会比较久,开始会在快编译完的时候卡很久,但是最终还是编译出内核、文件系统、用户代码;
编译出的bin文件
tip:这边提供下载Ubuntu环境工具包,如下:鸿蒙工具包
更多推荐
所有评论(0)