DEV Community

shuai991102
shuai991102

Posted on

OpenHarmony-标准设备系统代码操作梳理

本文主要介绍windows环境下标准设备系统代码(以RK3568设备为例)全流程操作梳理,供参考,含代码下载、版本编译、烧写、测试套编译、执行等操作梳理(注:除过烧写和用例执行,其他代码下载编译等都是在Ubuntu环境下操作,建议个人用户家目录下存放个人数据:工具安装、代码下载等)

一、板子组装
二、WSL2安装
三、获取源码

1. 注册码云gitee账号
2. 注册码云SSH公钥
3. 安装git客户端和git-lfs并配置用户信息
4.安装repo工具
5.下载主干master分支源码
Enter fullscreen mode Exit fullscreen mode

四、编译

1. 编译环境准备
2. 版本编译
3. daily构建版本或转测版本获取
Enter fullscreen mode Exit fullscreen mode

五、烧写

1. 正常烧写
2. 变砖拯救
Enter fullscreen mode Exit fullscreen mode

六、Hdc工具连接设备
七、 测试套编译和执行

1. 测试套编译
2. 用例执行
3. 手动执行
4. xdevice自动执行
Enter fullscreen mode Exit fullscreen mode

八、串口调试
九、代码上库

1. 上库流程
2.  提交PR关联issue
3.  分支挑单 
4.  Web网页端修改提交
5.  格式化检查 
Enter fullscreen mode Exit fullscreen mode

大致流程:

Image description

一、板子组装

Image description

Image description

二、WSL2安装

  1. 打开设置->安全和更新->开发者选项,选择为“开发人员模式”;

  2. Win + R运行control appwiz.cpl指令,在启用或关闭Windows功能中勾选适用于Linux的Windows子系统和虚拟机平台两项启用,重启(注:没有虚拟机平台的,请升级Windows系统,Win10 版本号为 2004(内部版本19041或更高));

  3. 以管理员身份打开PowerShell并运行:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Enter fullscreen mode Exit fullscreen mode

开启Windows子系统功能;

  1. 打开Microsoft Store搜索Ubuntu,安装Ubuntu20.04:

Image description

  1. 安装完直接打开,设置用户名和密码以及root用户密码:

Image description
ps:如果密码忘记参考

6.将Ubuntu Shell环境修改为bash
执行sudo dpkg-reconfigure dash,选择No,将Ubuntu shell由dash修改为bash

Image description

如图,执行ls -l /bin/sh查看:

Image description

  1. python3环境 Ubuntu20已自带python3.8.5,执行
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
Enter fullscreen mode Exit fullscreen mode

切换python3

  1. 安装pip3
sudo apt-get -y update
sudo apt-get install python3-pip
Enter fullscreen mode Exit fullscreen mode

9.安装完成,用户账号设置好之后,打开命令行窗口执行wsl -l -v查看下wsl的版本(注:cmd,wsl找不到的请更新windows版本),确保是wsl2,如果是版本1,可执行

wsl.exe --set-version Ubuntu-20.04 2
Enter fullscreen mode Exit fullscreen mode

命令升级为版本2,执行后等待转换完成即可!!注意一定要是WSL2,如果是版本1,编译速度会慢几十倍!

Image description

Image description
PS:执行wsl.exe --set-version Ubuntu-20.04 2出现内核组件问题,先下载安装 wsl_update_x64.msi后,在执行切换命令,即可开始转换,等待转换完成即可。

10.wsl2安装完成后,切换软件源为国内软件源:
备份原来的源:

cp -ra /etc/apt/sources.list /etc/apt/sources.list.bak
Enter fullscreen mode Exit fullscreen mode

将源换成阿里源:

sudo vim /etc/apt/sources.list
Enter fullscreen mode Exit fullscreen mode

将里面的内容清空,把下面的内容复制进去,保存退出

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

Enter fullscreen mode Exit fullscreen mode

更新缓存和升级:

sudo apt-get update
sudo apt-get upgrade
Enter fullscreen mode Exit fullscreen mode
  1. 迁移wsl2至非系统盘 ps:首先在D盘创建好自己的目录如下:Ubuntu_WSL
wsl --export Ubuntu-20.04 D:\Ubuntu_WSL\Ubuntu.tar
wsl --unregister Ubuntu-20.04
wsl --import Ubuntu-20.04 D:\Ubuntu_WSL D:\Ubuntu_WSL\Ubuntu.tar
Ubuntu2004 config --default-user shuai
Enter fullscreen mode Exit fullscreen mode

12.WSL文件映射在\wsl$路径下,通过\wsl$\Ubuntu-20.04打开文件所在位置

Image description
如图,本地方便查看

Image description

三、获取OpenHarmony源码

这里我再新创建一个帖子来讲:
获取OpenHarmony源码
安装依赖有一个综合命令可以参考:

sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 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 genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre 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 libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
Enter fullscreen mode Exit fullscreen mode

四、下载单个仓

准备工作

  1. 注册码云gitee帐号。

  2. 注册码云SSH公钥,请参考码云帮助中心

  3. 安装git客户端和git-lfs。(上述工具已在安装必要的库和工具小节安装。如已安装,请忽略)

更新软件源:

   sudo apt-get update
Enter fullscreen mode Exit fullscreen mode

通过以下命令安装:

   sudo apt-get install git git-lfs
Enter fullscreen mode Exit fullscreen mode
  1. 配置用户信息。
   git config --global user.name "yourname"
   git config --global user.email "your-email-address"
   git config --global credential.helper store
Enter fullscreen mode Exit fullscreen mode
  1. 执行如下命令安装码云repo工具。

下述命令中的安装路径以"~/bin"为例,请用户自行创建所需目录。

   mkdir ~/bin
   curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo 
   chmod a+x ~/bin/repo
   pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
Enter fullscreen mode Exit fullscreen mode
  1. 将repo添加到环境变量。
   vim ~/.bashrc               # 编辑环境变量
   export PATH=~/bin:$PATH     # 在环境变量的最后添加一行repo路径信息
   source ~/.bashrc            # 应用环境变量
Enter fullscreen mode Exit fullscreen mode

获取方式

说明:

发布分支代码相对比较稳定,开发者可基于发布分支代码进行商用功能开发。Master主干为开发分支,开发者可通过Master主干获取最新特性。

  • OpenHarmony发布分支代码获取

OpenHarmony各个版本发布分支的源码获取方式请参考Release-Notes

  • OpenHarmony主干代码获取

方式一(推荐):通过repo + ssh下载(需注册公钥,请参考码云帮助中心)。

  repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
  repo sync -c
  repo forall -c 'git lfs pull'
Enter fullscreen mode Exit fullscreen mode

方式二:通过repo + https下载。

  repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
  repo sync -c
  repo forall -c 'git lfs pull'
Enter fullscreen mode Exit fullscreen mode

执行prebuilts

在源码根目录下执行prebuilts脚本,安装编译器及二进制工具。

bash build/prebuilts_download.sh
Enter fullscreen mode Exit fullscreen mode

这里以码云为例,讲述代码拉取上库等操作,我再开一个帖子专门讲述
代码拉取上库等操作

[daily构建版本或转测版本获取]

(http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist)

Image description

五、烧写

烧写所需驱动工具获取
双击\windows\RKDevTool.exe打开烧写工具,工具界面击烧写步骤如图所示:

Image description

MASKROM模式和LOADER模式两种模式下可供烧写,推荐LOADER模式烧写,非必要不使用MASKROM按键操作烧写。
LOADER模式烧写:
首先得进入loader模式方法有二:
1、按住板子上的【音量-】键+【Reset】键,然后松开【Reset】键,进入loader模式
2、连接上板子后,在电脑上面win +R cmd 然后输入命令:
hdc shell reboot loader
进入loader模式
然后工具需要导入镜像包中的config.cfg文件,(记得替换原工具路径下的config.cfg文件):

Image description

Image description

变砖拯救:
烧写时由于烧写不当,比如uboot文件烧错等,导致烧写工具MASKROM和Loader模式都发现不了设备,设备无法启动的情况下,可按照如下操作进行烧写:

Windows下,设备连接电源状态,PC连接设备(通过USB),同时按住reset 键maskrom 按键,然后先松开reset键,待工具界面显示MASKROM设备后,再松开MASKROM键,设备进入MASKROM模式

PS:MaskRom 模式是设备变砖的最后一条防线。强行进入 MaskRom 涉及硬件操作,有一定风险,因此仅在设备进入不了 Loader 模式的情况下,方可尝试 MaskRom 模式。进入 MaskRom 的原理是人为的把 EMMC 的数据脚与地线短接,系统会认为 EMMC 数据出错,从而清除 EMMC 数据。

Image description

Top comments (0)