XR806与鸿蒙,简化构建环境流程
前言
很荣幸再次获得评测开发板的机会,这次活动依旧是ARM中国举办的活动。
这次评测的开发板--全志XR806开发板+搭载Open鸿蒙1.0操作系统。这是完美的国产化。中国牛逼。。。。
第一次接触鸿蒙是一年前,最开始接触是适配了RT-Thread内核进Open鸿蒙1.0中作为第三方内核。不过这个没有公布,只是玩玩。
第二次接触是在5个月前,参与小熊派社区适配Open鸿蒙的Lite-A到STM32MP157,当时主要负责构建系统部分,以及1~2个驱动的适配。
评测XR806算是我第三次接触Open鸿蒙, XR608内核采用Lite-M。在XR608的交流群中,我发现大家已久吐槽最多的就是整个构建流程,环境搭建TM的痛苦。所以写这篇文章的目的就是简化整个环境搭建流程。
环境搭建
安装ubuntu
建议采用ubuntu 18.04版本,这样子掉坑会比较少。
新安装的ubuntu可能存在与windows电脑之间无法复制粘贴问题,解决方案,如下命令:
rice@rice:~$ sudo apt-get autoremove open-vm-tools
rice@rice:~$ sudo apt-get install open-vm-tools-desktop
安装git
在调试终端输出如下命令:
rice@rice:~$ sudo apt-get install git
...
rice@rice:~$ git config --global user.email "you@example.com"
rice@rice:~$ git config --global user.name "Your Name"
安装python3.8
在调试终端输出如下命令:
rice@rice:~$ sudo apt-get install python3.8
rice@rice:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
rice@rice:~$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
在接下来的操作如果出现如下错误,请执行下面命令:
错误码如下:
Traceback (most recent call last):File "/usr/lib/command-not-found", line 28, in <module>from CommandNotFound import CommandNotFoundFile "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>from CommandNotFound.db.db import SqliteDatabaseFile "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 5, in <module>import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
错误纠正命令:
sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
安装docker
在调试终端输出如下命令:
rice@rice:~/xr806$ sudo apt install docker.io
环境搭建完成
xr806工程搭建
创建xr806
在调试终端输出如下命令:
rice@rice:~$ mkdir xr806
rice@rice:~$ cd xr806
下载的repo文件
下载的repo文件,在调试终端输出如下命令:
rice@rice:~/xr806$ git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
修改git-repo下载到的repo文件REPO_URL地址(https://mirrors.ustc.edu.cn/aosp/git-repo),操作如下所示:
在调试终端输出如下命令:
rice@rice:~/xr806$ vim git-repo/repo
修改位置如下图:
拷贝repo文件到/usr/bin/,便可以执行repo命令,在调试终端输出如下命令:
rice@rice:~/xr806/$ sudo cp git-repo/repo /usr/bin/
下载系统源码
创建目录,在调试终端输出如下命令:
rice@rice:~/xr806$ mkdir code
rice@rice:~/xr806$ cd code
通过repo,从gitee仓库中获取鸿蒙系统分支源码,在调试终端输出如下命令:
rice@rice:~/xr806/code$ repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
rice@rice:~/xr806/code$ repo sync -c
rice@rice:~/xr806/code$ repo forall -c 'git lfs pull'
下载xr806源码
下载device源码,在调试终端输出如下命令:
rice@rice:~/xr806/code$ cd device/
rice@rice:~/xr806/code/device$ git clone https://gitee.com/moldy-potato-chips/devboard_device_allwinner_xr806.git
rice@rice:~/xr806/code/device$ mv devboard_device_allwinner_xr806/ xradio
下载vendor源码,在调试终端输出如下命令:
rice@rice:~/xr806/code/device$ cd ../
rice@rice:~/xr806/code$ cd vendor/
rice@rice:~/xr806/code/vendor$ git clone https://gitee.com/moldy-potato-chips/devboard_vendor_allwinner_xr806.git
rice@rice:~/xr806/code/vendor$ mv devboard_vendor_allwinner_xr806/ xradio
交叉编译工具
下载交叉编译工具,在调试终端输出如下命令:
rice@rice:~/xr806$ mkdir tool
rice@rice:~/xr806$ cd tool
rice@rice:~/xr806/tool$ wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
rice@rice:~/xr806/tool$ tar -jxvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
下载Open鸿蒙的适配好的docker
下载docker,在调试终端输出如下命令:
rice@rice:~/xr806$ docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.5
进入docker,在调试终端输出如下命令:
rice@rice:~/xr806$ sudo docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.5
修改交叉编译工具
修改device/xradio/xr806/liteos_m/config.gni中的board_toolchain_prefix为实际环境下的gcc路径(/home/openharmony/tool/gcc-arm-none-eabi-10-2020-q4-major/bin)。操作如下:
root@c2aa13139a52:/home/openharmony# cd code/device/xradio/xr806/liteos_m
root@c2aa13139a52:/home/openharmony/code/device/xradio/xr806/liteos_m# vim config.gni
修改device/xradio/xr806/xr_skylark/gcc.mk,操作如下:
root@c2aa13139a52:/home/openharmony# cd code/device/xradio/xr806/xr_skylark
SDK配置
在修改完交叉编译工具路径后 ,在xr_skylark目录下执行,复制配置文件:
root@c2aa13139a52:/home/openharmony/code/device/xradio/xr806/xr_skylark# make menuconfig
如果出现如下错误,输入如下命令:
错误码:
错误解决, 然后重新输入上面命令:
root@c2aa13139a52:/home/openharmony/code/device/xradio/xr806/xr_skylark# apt-get install libncurses5-dev
结果:
清除过程文件
make build_clean
生成静态库已经自动生成头文件
make lib -j
成功结果如图:
系统源码编译
回到xr806系统源码目录:
root@c2aa13139a52:/home/openharmony/code#
输入hb set 选择skylark:
输入hb build -f 编译:
生成的镜像文件xr_system.img
烧录代码
生成的镜像位于device/xradio/xr806/xr_skylark/out。将整个out的镜像拷贝到windows下。
拷贝烧录工具(phoenixMC)到windows,位置:device\xradio\xr806\xr_skylark\tools,并打开工具:
第一步:选择镜像。
第二部:选择对应的串口
修改烧录配置项,勾选“硬件复位烧写模式”:
点击升级固件,然后等待烧录到100%,便完成整个流程。
运行效果
将板子接上串口软件,波特率选择115200,然后可以到对应的启动打印:
关注微信公众号『Rice嵌入式开发技术分享』,后台回复“微信”添加作者微信,备注”入群“,便可邀请进入技术交流群。
XR806与鸿蒙,简化构建环境流程相关推荐
- python进阶项目设计_推荐系统进阶:设计和构建推荐系统流程综述(1)
内容目录推荐系统应用场景概述 为什么需要推荐? 推荐系统的目标? 推荐系统的工作? 推荐系统的基本模型 构建推荐系统的方法 相关参考? 1.推荐系统概述以及它们如何提供有效形式的定向营销 推荐系统 推 ...
- 第2章 构建环境——安装Oracle 9i
第2章 构建环境--安装Oracle 9i 2.1. 安装完数据库服务器后,还需要在同一台计算机上独立安装管理客户机吗?为什么? 解答:不需要.数据库服务器安装完成后包括3部分: ...
- 高效研发运维体系构建的流程和方法论
简介: 云计算产品大多都会与云原生发生关联,云原生正在重塑整个软件的生命周期.但到底什么是云原生?云原生带来的最大技术创新和未来机会是什么?围绕云原生,是否可以构建出一套云上的开发&运维体系, ...
- 【Groovy】Gradle 构建工具 ( 自动下载并配置构建环境 | 提供 API 扩展与开发工具集成 | 内置 Maven 和 Ivy 依赖管理 | 使用 Groovy 编写构建脚本 )
文章目录 一.Gradle 自动下载并配置构建环境 二.Gradle 提供 API 扩展与开发工具集成 三.Gradle 内置 Maven 和 Ivy 依赖管理 四.Gradle 使用 Groovy ...
- WPF 框架全构建环境虚拟机硬盘分享
现在 WPF 完全开源了,咱可以构建自己私有的版本.我分享一个虚拟机硬盘给你,只要你下载下来,通过 VMWare 导入,即可无需任何配置,拿到一个能构建 WPF 官方源代码的全构建环境.可以用来只做你 ...
- gradle 构建应用流程_使用Gradle构建和应用AST转换
gradle 构建应用流程 最近,我想在Gradle项目中构建并应用本地ast转换. 虽然我可以找到几个有关如何编写转换的示例,但找不到完整的示例来显示完整的构建过程. 转换必须单独编译然后放在类路径 ...
- 1、配置PHP构建环境
女主宣言 今天小编为大家分享编写PHP扩展的系列文章,文章从环境构建到扩展编写,会对使用到的相关PHP内核数据结构及API进行介绍,希望能对大家有所帮助. PS:丰富的一线技术.多元化的表现形式,尽在 ...
- 超级便宜的鸿蒙开发板环境搭建-编译-烧录
超级便宜的鸿蒙开发板环境搭建-编译-烧录 1.下载代码.编译工具和烧写工具 打开https://gitee.com/hihopeorg/Neptune-HarmonyOS-IOT下载代码 打开http ...
- 构建基于流程的多维度企业管理体系
前言:随着内控体系的全面铺开,公司又多了一个体系.公司从来都不缺体系,可实际起了作用的体系却是从来都缺.越来越多的体系,其高额的维护成本.遵循成本都占用着企业巨大的资源,如果将各大体系整合,使其融合为 ...
- 鸿蒙操作系统详细流程,鸿蒙系统的启动流程
鸿蒙系统的启动流程 Liangkz 2021.04.11 Ver1.0 目录 1. 第一阶段:U-Boot启动 2. 第二阶段:汇编代码引导LiteOS-a内核 3. 第三阶段:内核LiteOS-a的 ...
最新文章
- OpenStack icehouse系列之计算节点搭建
- 打开Mybatis核心配置文件SqlMapConfig.xml的代码提示功能
- java执行多次post请求_同样的post请求代码在Java和android中执行结果不同。
- MongoDB中MapReduce介绍与使用
- MySQL慢查询分析方法
- Java项目大合集练手项目经验
- c语言无法打开源文件stdafx.h,VS2013/2012/2010 下无法打开 源 文件“stdafx.h”的解决方法...
- 视频上传接口测试实践
- # C语言指数型表达
- MyEclipse简介
- PHP编译安装常见错误解决
- 【蓝桥杯】基础练习十六进制转十进制
- 极化电磁波matlab,基于Matlab的电磁波极化仿真.pdf
- 【PyQt5,2021最新Java常用开源库总结
- 关于除去WordPress页脚底部的自带标语
- python安装PyQt5_stylesheets
- BMA250三轴加速度传感器(部分翻译)
- Ubuntu 安装make
- html 设置请求头,http请求头和响应头设置
- 卫瓴科技X腾讯企业微信“营销赋能、协同增长”闭门沙龙顺利举行 |深圳