简介:本文将会介绍编译OpendHarmony环境的搭建、编译、和刷机(rk3568)
使用场景:修改系统源码,需要验证修改的功能是否正确、编译镜像、编译SDK
1、VS Code,下载链接,用于修改源码
2、linux环境搭建 用于编译源码
3、DevEco Studio,zh-cn/release-notes/Readme.md · OpenHarmony/docs - Gitee.com 用于验证修改的源码
4、hdc命令配置,环境变量 path里增加路径 sdk的toolchains目录路径。sdk位置参考第八点
一, linux 环境搭建
安装linux系统:最好是ubuntu 20.04.6 没有的话,安装20.04.2,创建好用户及密码
系统安装好后,需要将源替换成阿里源
sudo vim /etc/apt/sources.list
按"Insert"键进入编辑模式,将里面的内容清空,把下面的内容复制进去:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
更新缓存和升级:
sudo apt-get update
二,安装MobaXterm_Personal_22.1、samba
在windows上安装MobaXterm_Personal_22.1,可在百度上搜索下载,也可 飞书 找我要
安装完成后,配置如下
以上截图是为了window保持与linux连接不被中断,如果在下载代码或者编译过程中中断,那么linux的工作也将被中断,所以windows要保持连接且不可待机 关机
建立连接 如图:
点击ok后输入 密码建立连接,连接成功后,左侧会出现一定的目录,但不是我截图的这样,会是原始目录
linux安装samba工具,以便从window的映射盘直接读取资源
参考连接 :
https://www.jb51.net/server/291322elw.htm
path路径就是windows映射的路径
samba安装好后,在windows上按 win+r键
运行后:在红框处右键 映射网络驱动器
三,利用MobaXterm_Personal_22.1工具 在 linux 安装git、git-lfs、 repo 工具,以供下载源码使用
1,安装git
sudo apt install git-all
配置git,并生成密钥,将公钥放在gittee上 请参考码云帮助中心
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store
2,安装git-lfs,下载二进制大文件使用
sudo apt install curl
sudo apt install python3-pip
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
3,安装repo: ~代表当前用户根目录
mkdir ~/bin
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
chmod a+x ~/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
vim ~/.bashrc # 编辑环境变量
export PATH=~/bin:$PATH # 在环境变量的最后添加一行repo路径信息
source ~/.bashrc # 应用环境变量
四**,利用MobaXterm_Personal_22.1工具 在** linux 上准备编译环境,(头铁的可以不加下面这些依赖,如果编译失败,还是乖乖的加上吧)
linux安装依赖工具:
1.sudo apt install aptitude
2.sudo aptitude install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64-cross lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libncurses5-dev libncursesw5 libstdc++6 vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
3.sudo apt install gcc-arm-none-eabi libtinfo-dev libtinfo5 genext2fs liblz4-tool libssl-dev openjdk-8-jre
4.sudo apt-get update
5.sudo apt install default-jdk
6.sudo apt install mtd-utils
7.sudo apt install scons
8.sudo apt install gcc-arm-none-eabi
9.sudo apt install gcc-arm-linux-gnueabi
10.sudo apt-get install libssl-dev
11.sudo apt-get install genext2fs
五**,利用MobaXterm_Personal_22.1工具 在linux上下载源码**
#在当前用户目录下新建一个代码仓目录,可以写当前日期如:0523,cd 0523 并执行以下命令初始化仓库
#可使用repo + ssh :repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify初始化
#也可使用repo + https:repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify初始化,推荐使用https,因为方便查看下载中断错误
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
#更新文件 -j28为使用28个线程同步代码,最大32,如果网速不好,最好去掉 -j28,
repo sync -c -j28
#更新lfs 文件
repo forall -c 'git-lfs pull'
#预编译
build/prebuilts_download.sh
#编译rk3568镜像
./build.sh --product-name rk3568 --ccache
#编译SDK
./build.sh --product-name ohos-sdk --gn-args full_mini_debug=false
六,下载源码可能会被中断,或者某个git仓库被意外中断
例如错误:
error: RPC 失败。curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet.
error: RPC 失败。curl 56 GnuTLS recv error (-54): Error decoding the received TLS packet.
1.此类似错误可能是由于git缓存不够,或者网速不稳定,或者是网速不好同时开启线程多导致,如果是线程多引起,则去掉第五点中的 -j28,如果是缓存和网速引起,则使用以下命令:
sudo apt-get install gnutls-bin
git config --global http.sslVerify false
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
git config --global http.postBuffer 5000000000 #设置5个G的缓存
2.如果执行上面还是下载中断,接着执行下面这句压缩代码传输,
git config --global core.compression 9 压缩代码传输
#git config --global --unset core.compression 命令可恢复默认设置
3.如果还中断:修改mtu值 ifconfig可以查看enp1s0的具体叫什么,每个电脑不一样
sudo chmod 777 /sys/class/net/enp1s0/mtu
sudo echo "9000" > /sys/class/net/enp1s0/mtu
查看mtu值
cat /sys/class/net/enp1s0/mtu
重启网卡enp1s0
sudo ip link set dev enp1s0 down
sudo ip link set dev enp1s0 up
4.如果还是中断,尝试更新curl
sudo apt update
sudo apt upgrade curl
5,如果还是下载中断,可能是由于白天使用网络的人数多,可以试试写个自动化定时脚本,让脚本在晚上下载代码并编译,源码代码量比较大,上百个G,编译过后更是达到几百个G,注意磁盘空间,网速会瞬间撑满宽带,注意别下载别的东西
七**,vscode连接linux代码**
1,安装插件 Remote SSH
此工具用于连接linux代码,具体参考以下网址:
https://blog.csdn.net/m0_60607289/article/details/138987450
最终配置文件如下:
Host 10.50.80.57
HostName 10.50.80.57
User xxxx(linux登录的名字)
Port 22
ForwardAgent yes
2 安装插件C++以便代码点击跳转,必须基于第一步成功的基础之上
八 ,linux编译后的产物路径,替换sdk可用上面的samba映射盘操作
1,rk3568镜像位置:
linux位置(以下out目录均指linux目录):out/rk3568/packages/phone/images/
2,sdk位置:
4个目录位置 ets 、js、previewer、 toolchains
out/sdk/ohos-sdk/windows/
1个native子目录位置 :native\sysroot\usr(本地windows sdk位置)
out/sdk/sdk-native/os-irrelevant/sysroot/usr/
当sdk编译好后,需要将DevEco的Openharmony SDK以上5个目录替换 ,注意 native不是全部替换,是native\sysroot\usr下的两个目录替换
DevEco的Openharmony SDK 查看位置 File->setting->Openharmony SDK
还可以直接5个目录全部替换
out/sdk/packages/ohos-sdk/windows/
九**,开发板烧录镜像**
1、下载安装烧写所需驱动与工具
从该链接下载 烧写所需驱动和工具
驱动及工具在该路径下:docs-master\HiHope_DAYU200\烧写工具及指南\windows
安装USB驱动
双击windows\DriverAssitant\DriverInstall.exe安装USB驱动。
导入配置文件
双击\windows\RKDevTool.exe打开烧写工具,鼠标右键选择导入配置,从前面下载的日构建镜像目录中选择config.cfg导入
注意:首次导入时,对着空白处 右键清空所有配置,1、需将烧写工具里的路径正确配置成日构建镜像所在的路径;2、右键选择导入配置,替换原工具路径下的config.cfg文件。路径可以直接用映射盘的路径
2、烧写
开发板连接电源,USB线连接PC
切换到LOADER模式烧写
先按住 板子上的Recovery键,然后按一下 reset键,待工具界面显示LOADER 设备后,松开Recovery键,设备进入loader模式,点击执行开始烧写,如图:
右边出现"下载完成字样",即代表烧写完成,等待板子重启