#2020征文-开发板# 鸿蒙 移植 树莓派(上)搭建环境下载源码 原创 精华
项目最新更新,可以查看码仓https://gitee.com/liangzili/harmony-raspberry
1、环境搭建
编译鸿蒙的源码建议在Ubuntu20.04下进行,windows下会出现各种奇怪的问题,不建议使用。
1.1、VirtualBox 虚拟机安装
VirtualBox官网下载地址:https://www.virtualbox.org/
Ubuntu20.04官网下载地址:https://ubuntu.com/download/desktop
关于VirtualBox和Ubuntu的安装和使用就不展开了,百度一下资料很多。
1.2、改sh为bash
1.3、安装打包工具mkfs.vfat mtools
1.4、下载安装编译工具gn ninja llvm hc-gen
hc-gen:鸿蒙驱动hdf框架之类的,用于生成鸿蒙驱动配置对应的文件
1.5、安装python3.8和 pip
编译鸿蒙源码hi3861目标平台需要使用scons,默认安装的scons版本需要python版本>=3.7:
a、如果是ubuntu20.04,因为默认python是3.8,正好符合要求,只需要安装pip即可,可以进行第6步了。
注意:如果pip下载慢,配置pip包下载源,加速国内安装pip包:
b、如果是其他版本,比如ubuntu18.04,默认Python3版本是 3.6,得先安装python3.8
安装完成后,需要将默认python切换为3.8,比较麻烦的是多个python版本的管理,通常有两种方式:
方案一:使用virtualenv管理,单独source相应的active脚本切换当前shell会话的默认python版本
virtualenv管理多个python运行环境,不适用virtualenv的情况下,pip install 和 sudo pip install的包会分别放到用户home目录和系统目录
安装virtualenv:
方案二:使用update-alternatives管理,并切换全局Python脚本配置(不推荐,用完需要切换回去,否则会影响apt等依赖python3的软件包使用);
update-alternatives ,它是 Debian 系管理多版本软件的工具,不仅适用 Python ,而且还使用 Java 等各种有多版本共存需求的软件。 它跟 virtualenv 这种虚拟环境不同的是, update-alternatives 管理的是系统级的软件版本, virtualenv 管理的是当前用户下的一个虚拟环境。
1.6、确定python的环境变量
方案一:使用【ln -s】,确定Python安装好后,运行如下命令,将python路径链接到"/usr/bin/python"。
方案二:sudo apt-get install python3-venv #安装venv虚拟环境
其他工具安装
2、下载源码
Ubuntu环境搭建完成之后开始下载源代码。
2.1、配置GIT
2.2、安装码云repo工具,可以执行如下命令
2.3、下载源码
repo是下载多个git库的python脚本,参考repo用法:https://blog.csdn.net/nwpushuai/article/details/78778602
repo init
-u #指定manifests这个远程git库的URL,manifests库是整个项目的清单,通常包含了default.xml这个文件
-b #指定manifest.xml文件中的一个版本,,也就是俗称的“分支”运行该命令后,会在当前目录下新建一个.repo子目录
repo sync
-j12 #开启多线程同步操作,这会加快sync命令的执行速度。默认情况下,使用4个线程并发进行sync
–no-repo-verify:在下载repo库时,会对repo的源码进行检查。通过–repo-url指定第三方repo库时,可能会导致检查不通过,所以可以配套使用该参数,强制不进行检查
-c, –current-branch:只同步指定的远程分支。默认情况下,sync会同步所有的远程分支,当远程分支比较多的时候,下载的代码量就大。使用该参数,可以缩减下载时间,节省本地磁盘空间
-d, –detach:脱离当前的本地分支,切换到manifest.xml中设定的分支。在实际操作中,这个参数很有用,当我们第一次sync完代码后,往往会切换到dev分支进行开发。如果不带该参数使用sync, 则会触发本地的dev分支与manifest设定的远程分支进行合并,这会很可能会导致sync失败
sync -c #只同步指定的远程分支
2.4、编译测试
可以先执行官方编译命令测试下编译环境是否正常,编译完成后,主目录下会生成out的文件夹
-b debug 构建调试版本,如果没有这个参数,正常版本是无法进入shell的
3、树莓派启动流程
3.1、树莓派的启动方式
树莓派自带BootLoader,引导SD卡上的镜像文件启动内核,可以使用树莓派自带的BootLoader直接启动内核,但是这样不方便我们调试代码。需要频繁的插拔SD卡。所以我是先通过BootLoader加载u-boot,然后通过u-boot的TFTP直接将内核的镜像加载到内存,这样在调试的时候,就不需要频发的插拔SD卡了。当调试结束,再拷贝镜像文件到SD卡,启动内核就可以了。
3.2、树莓派2的启动文件
OHOS_image_1.0这个文件夹中有我已经编译好的鸿蒙镜像,可以直接使用。详细的编译过程可以参考后面的章节。
=======完整内容======
NB啊……如果能把鸿蒙镜像 for 树莓派传个附件过来就更好了。
全网首次适配树莓派?跪求系统镜像文件!
可以,总算见到树莓派系列的了,期待楼主更新
鸿蒙移植到树莓派,666~
木问题
上传了
请问这个教程适用于树莓派3b吗?
正好有这个设备 测试一下