这里记得一下在ubuntu20.4下载openharmony源码,并编译的过程,以便后面方便自己查看。
1、安装repo
安装repo
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
vim ~/.bashrc # 编辑环境变量
export PATH=~/bin:$PATH
source ~/.bashrc
配置gitee用户信息
git config
git config
git config
生成/添加SSH公钥(gitee)
ssh-keygen -t ed25519 -C "your-email-address"
cat ~/.ssh/id_ed25519.pub
然后把内容上传到gitee.com的公钥里。添加后,在终端(Terminal)中输入
ssh -T git@gitee.com
首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.
内容,则证明添加成功。
安装以下依赖项
sudo apt-get update && sudo apt-get install binutils 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 npm
代码下载
我下载的是OpenHarmony 3.1 release分支,使用https方式,命令如下:
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-3.1-Release --no-repo-verify --depth=1
repo sync -c -j8
repo forall -c 'git lfs pull'
说明:指定--depth=1可以加快下载速度,但是各个仓commit信息只保留最新的一条。指定-j8表示8个项目同时下载,如果电脑性能强的话可以指定-j16或者-j32,不指定的话默认是-j4。
注意:如果是第一次使用git lfs的话,需要先找一个git仓的根目录,先执行:git lfs install,显示如下信息表示正常。
执行prebuild
在代码工程的根目录下执行:
bash build/prebuilts_download.sh
安装hb并更新至最新版本
#python3 -m pip install --user ohos-build
##设置环境变量
在~/.bashrc文件最后面添加:
export PATH=~/.local/bin:$PATH
执行更新环境变量
source ~/.bashrc
在源码目录执行"hb -h",界面打印以下信息即表示安装成功:
usage: hb
OHOS build system
positional arguments:
{build,set,env,clean}
build Build source code
set OHOS build settings
env Show OHOS build env
clean Clean output
optional arguments:
-h, --help show this help message and exit
两种编译源码方式了:
第一种就是使用:
hb set
hb build
第二种就是:
#进入源码根目录,执行如下命令进行版本编译:
./build.sh --product-name XXXX –ccache
经上面的操作,就可以进入漫长的等待了。
【经验】1、我直接下载过源码进行编译,试了两个,到一半都会提示缺少文件错误 。
2、就是非常占空间,我删原来的文件夹,删了一个小时还没有删完,看了一个文件,太多了。
3、我200G的硬盘都爆了
编译那是又费时间,又费硬盘呀!
报错: libtinfo.so.5: cannot open shared object file: No such file or directory
安装sudo apt install libtinfo5
一直报错:
[91/3800] ACTION //base/telephony/core_service/telephonyres:telephonyres_hap(//build/toolchain/ohos:ohos_clang_arm)
然后再重新编译
【OHOS ERROR] [31646/35553] STAMP obj/base/compileruntime/js_api_module/url/url_packages.stamp
[OHOS ERROR] FAILED: obj/base/compileruntime/js_api_module/url/url_packages.stamp
[OHOS ERROR] touch obj/base/compileruntime/js_api_module/url/url_packages.stamp
[OHOS ERROR] touch: 无法创建 'obj/base/compileruntime/js_api_module/url/url_packages.stamp': 权限不够
然后提升权限 sudo ./build.sh --product-name rk3568
FileNotFoundError: [Errno 2] No such file or directory: 'java'
sudo apt install openjdk-8-jdk
再报错:
[OHOS ERROR] [403/2567] CXX obj/foundation/ace/ace_engine/frameworks/bridge/js_frontend/engine/jsi/js_engine_bridge_ark_ohos/jsi_input_bridge.o
[OHOS ERROR] FAILED: obj/foundation/ace/ace_engine/frameworks/bridge/js_frontend/engine/jsi/js_engine_bridge_ark_ohos/jsi_input_bridge.o
继续报错:
[OHOS ERROR] [610/2424] CXX obj/foundation/ace/ace_engine/adapter/ohos/entrance/ace_ohos_standard_entrance/ace_ability.o
[OHOS ERROR] FAILED: obj/foundation/ace/ace_engine/adapter/ohos/entrance/ace_ohos_standard_entrance/ace_ability.o
发现内存如果占满了就会引起错误
重新分配内存到6G
[OHOS ERROR] packages/phone/make-boot.sh: 行 22: genext2fs:未找到命令
安装:sudo apt install genext2fs
经过差不多一夜的磨练终于编译通过:
[OHOS INFO] ---------------------------------------------
[OHOS INFO] ccache summary:
[OHOS INFO] cache hit (direct) : 97
[OHOS INFO] cache hit (preprocessed) : 2
[OHOS INFO] cache miss : 0
[OHOS INFO] hit rate: 100.00%
[OHOS INFO] mis rate: 0.00%
[OHOS INFO] ---------------------------------------------
[OHOS INFO] c targets overlap rate statistics
[OHOS INFO] subsystem files NO. percentage builds NO. percentage overlap rate
[OHOS INFO] securec 78 0.4% 156 0.7% 2.00
[OHOS INFO] utils 206 1.0% 286 1.3% 1.39
[OHOS INFO] developtools 317 1.6% 423 1.9% 1.33
[OHOS INFO] third_party 8802 43.1% 11013 48.2% 1.25
[OHOS INFO] graphic 372 1.8% 373 1.6% 1.00
[OHOS INFO] aafwk 565 2.8% 565 2.5% 1.00
[OHOS INFO] account 83 0.4% 83 0.4% 1.00
[OHOS INFO] ace 1849 9.0% 1849 8.1% 1.00
[OHOS INFO] appexecfwk 137 0.7% 137 0.6% 1.00
[OHOS INFO] ark 456 2.2% 456 2.0% 1.00
[OHOS INFO] arkXtest 18 0.1% 18 0.1% 1.00
[OHOS INFO] barrierfree 64 0.3% 64 0.3% 1.00
[OHOS INFO] communication 1313 6.4% 1313 5.8% 1.00
[OHOS INFO] compileruntime 78 0.4% 78 0.3% 1.00
[OHOS INFO] contactsdata 38 0.2% 38 0.2% 1.00
[OHOS INFO] customization 28 0.1% 28 0.1% 1.00
[OHOS INFO] deviceprofile 39 0.2% 39 0.2% 1.00
[OHOS INFO] distributeddatamgr 506 2.5% 506 2.2% 1.00
[OHOS INFO] distributedhardware 240 1.2% 240 1.1% 1.00
[OHOS INFO] distributedschedule 45 0.2% 45 0.2% 1.00
[OHOS INFO] filemanagement 108 0.5% 108 0.5% 1.00
[OHOS INFO] global 45 0.2% 45 0.2% 1.00
[OHOS INFO] hdf 523 2.6% 523 2.3% 1.00
[OHOS INFO] hiviewdfx 330 1.6% 330 1.4% 1.00
[OHOS INFO] location 53 0.3% 53 0.2% 1.00
[OHOS INFO] miscservices 218 1.1% 218 1.0% 1.00
[OHOS INFO] msdp 13 0.1% 13 0.1% 1.00
[OHOS INFO] multimedia 525 2.6% 525 2.3% 1.00
[OHOS INFO] multimodalinput 114 0.6% 114 0.5% 1.00
[OHOS INFO] notification 162 0.8% 162 0.7% 1.00
[OHOS INFO] powermgr 162 0.8% 162 0.7% 1.00
[OHOS INFO] resourceschedule 209 1.0% 209 0.9% 1.00
[OHOS INFO] security 359 1.8% 359 1.6% 1.00
[OHOS INFO] sensors 51 0.2% 51 0.2% 1.00
[OHOS INFO] settingsdata 3 0.0% 3 0.0% 1.00
[OHOS INFO] startup 135 0.7% 135 0.6% 1.00
[OHOS INFO] telephony 368 1.8% 368 1.6% 1.00
[OHOS INFO] test 24 0.1% 24 0.1% 1.00
[OHOS INFO] updater 106 0.5% 106 0.5% 1.00
[OHOS INFO] usb 17 0.1% 17 0.1% 1.00
[OHOS INFO] useriam 134 0.7% 134 0.6% 1.00
[OHOS INFO] web 7 0.0% 7 0.0% 1.00
[OHOS INFO] window 87 0.4% 87 0.4% 1.00
[OHOS INFO] wpa_supplicant-2.9 165 0.8% 165 0.7% 1.00
[OHOS INFO] wukong 6 0.0% 6 0.0% 1.00
[OHOS INFO]
[OHOS INFO] c overall build overlap rate: 1.12
[OHOS INFO]
[OHOS INFO]
[OHOS INFO] rk3568 build success
[OHOS INFO] cost time: 0:02:57
=====build successful=====
2022-11-27 09:09:57
++++++++++++++++++++++++++++++++++++++++
生成的镜像在目harmony/out/rk3568/packages/phone/images下面。
复制镜像到win下面用进行烧写:
打开串口助手查看信息:
发现网口启动失败,一直卡在那里:
显示图标一闪而过
所以准备重新下载固件
repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.2-Beta3 --no-repo-verify --depth=1
结果半天没成,改成用迅雷下载源码:
https://gitee.com/link?target=https%3A%2F%2Frepo.huaweicloud.com%2Fharmonyos%2Fos%2F3.2-Beta3%2Fcode-v3.2-Beta3.tar.gz
下载后再传到虚拟进行解压,解压出来大约50G大小,费硬盘呀。
然后进入再进行编译,虚拟机内存调到6G,8CPU。CPU满负荷运行基本上都是100%。内存充足后,编译相对来说快多了。
有加内存换CPU的冲动呀,就是没有银子:(
想了想了直接买一根32G的内存,明天可以到货,就可以给虚拟机直接上16G内存了。
为了评测这开发板,昨天买了显示器,今天加上一根内存条。
现在编译正常,下一集展示固件下载与界面。