OpenHarmony2.0 尝鲜:3516编译烧录开机成功 原创 精华
OpenHarmony 2.0源码如期(2020年6月2日)发布,Tag为:OpenHarmony 2.0 Canary
版本说明:https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-2-0-Canary.md
当前版本在OpenHarmony 1.1.0的基础上,增加标准系统版本,具备的主要功能如下:
新增22个子系统,支持全面的OS能力,支持内存大于128M的带屏设备开发等。
提供系统三大应用:桌面、设置和SystemUI。
提供全新的OpenHarmony应用框架能力、Ability Cross-platform Engine能力。
提供JS应用开发能力。
提供媒体框架,支持音视频功能开发。
提供图形框架能力,支持窗口管理和合成,支持GPU能力。
第一时间同步代码更新,准备编译烧录体验,步骤如下:
参考官方资料:
2.0文档:查看
源码获取:查看
Docker编译环境:查看
编译源码:查看
1. 编译环境建立,使用Docker,快又好,省心省事省力,编译工具全都有,你值得拥有:
mkdir OpenHarmony
cd OpenHarmony
# 获取docker镜像,7.24G,包含需要的编译工具
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.1
# 运行镜像
docker run -it --name ohos_build -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard
# 特别注意:至少预留50G空间,以防磁盘用完,我第一次编译,编译过程成功,最后磁盘满了
2. 更新环境,安装基础软件,并设置基础环境
apt update -y
apt install -y gitapt install -y git-lfs
apt install -y ccache
apt install -y tzdata
apt install -y python3.8
rm /bin/python /bin/python3
ln -s /usr/bin/python3.8 /usr/bin/python
ln -s /usr/bin/python3.8 /usr/bin/python3
apt-get install python3-pip
pip3 install --upgrade pip
# 时区设置
TIME_ZONE=Asia/Shanghai
ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
# git设置
git config --global user.name "HonestQiao"
git config --global user.email "honestqiao@163.com"
git config --global credential.helper store#repo安装
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
chmod a+x /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
3. 源码下载:repo方式
cd /home/openharmony
echo y | repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
python3 -m pip install --user build/lite
4. 编译:
# 编译依赖二进制包准备
../scripts/prepare.sh
# 启动编译:支持Hi3516DV300(摄像头+屏幕)、Hi3518EV300(纯摄像头)
./build.sh --product-name Hi3516DV300 --ccache
# 初次编译,时间较长,目前有12644项任务完成,预计30~90分钟
# MBP2015,Docker,分配4核4G内存,耗时80分钟
# 出现以下画面,表示编译成功。
# 查看编译结果:
ls -l out/ohos-arm-release/packages/phone/images/
5. 烧录:
刷机直接使用HiTool进行,具体设置如下:
1. 确保Hi3516连接好带开关的电源线,不要直接使用USB线
2. 确保Hi3516的串口连接正确,网口连接正确,和电脑要在同一个局域网
3. HiTool选择芯片为Hi3516DV300,选择烧写eMMC,eMMC分区表文件使用以上编译完成后对应目录中的Hi3516DV300-emmc.xml,需要烧写的bin和img文件和配置信息会自动设置,注意传输方式选择网口,板端IP信息一般不用配置,本地PC配置简单查看是否符合实际情况即可。
4. 点击烧写,下部提示框有提示,让重启设备,按下电源开关,然后再打开,就开始愉快的烧录了。
6. 使用
设备全身照:
实际界面照:
致谢:
感谢 候鹏飞 指导帮助
问题已解决了,谢谢老师
已更新
牛人。。。。。。。。。。。。。。。
更新完鸿蒙系统以后,手机用用会热
膜拜大佬,硬件环境搭建真不容易。
应该是编译环境的搭建,对新手来说确实是一道坎。
按照上面的步骤,包成功:)
楼主你这是docker环境下的,
ln -s /usr/bin/python3.8 /usr/bin/python
确认python3.8 编译标准系统没有问题吗?
我的是自己搭建的linux虚拟机环境,用python3.8就会编译失败,要用python2.7版本才会OK。
赞赞赞!
文中的步骤,进过多次测试,确保一次通过正常编译。
编译失败的话,可以把失败部分的截图贴上来,方便了解问题。
【编译好的镜像文件下载】
为了验证这个问题,我今天重新安装了一个虚拟机,从0开始按照官方指导搭建编译环境,一开始只安装了python3.8版本,编译失败了,log见附件。
失败的log说是
“FAILED: gen/third_party/wayland-ivi-extension/protocol/ivi-input-protocol.c gen/third_party/wayland-ivi-extension/protocol/ivi-input-client-protocol.h gen/third_party/wayland-ivi-extension/protocol/ivi-input-server-protocol.h
/usr/bin/env ../../third_party/wayland_standard/python2_action.py ../../third_party/wayland_standard/wayland_scanner_wrapper.py third_party/wayland-ivi-extension/protocol/ivi-input.xml --src-root ../../ --root-gen-dir gen --cmd ./clang_x64/graphic/graphic_standard/wayland_scanner
/usr/bin/env: ‘../../third_party/wayland_standard/python2_action.py’: No such file or directory”
去这个路径打开文件来查看,这个文件开头就说:
"""Script for ensuring that a python action runs under Python2, not Python3."""
然后重新安装了python2.7,软链接将python连接到2.7 版本,再次编译就OK了。
NG 的log 和 OK 的log,我都放到附件上,请帮忙看一下。
不知道你的docker里的python,链接的是 2.7 版本还是 3.8 版本?
你的third_party/wayland_standard/python2_action.py 文件是什么内容??
把python版本换回2.7之后,再想去编译hispark_pegasus、hispark_taurus,hb set 直接出错。
把python版本换回3.8才能编译hispark_pegasus、hispark_taurus。
烧录上去后系统起不来。烧录社区里下载的固件和自己编译的固件都存在问题。
System startup
Uncompress Ok!
U-Boot 2020.01 (Apr 22 2021 - 23:59:39 +0800)hi3516dv300
DRAM: MMC:
EMMC/MMC/SD controller initialization.
scan edges:2 p2f:6 f2p:1
mix set temp-phase 3
scan elemnts: startp:5 endp:117
Tuning SampleClock. mix set phase:[04/07] ele:[2d/15]
MMC/SD Card:
MID: 0x15
Read Block: 512 Bytes
Write Block: 512 Bytes
Chip Size: 7456M Bytes (High Capacity)
Name: "8GTF4"
Chip Type: MMC
Version: 0.0
Speed: 100000000Hz
Bus Width: 4bit
EMMC/MMC/SD controller initialization.
Card did not respond to voltage select!
mmc_init failed! err:-95
No SD device found !
himci: 0 (eMMC), himci: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
@@@ 5 blocks read: OK
@@@ UpdateMessage.command = ⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌, UpdateMessage.update = ⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌
@@@ partitions info from misc =⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌, partStrLen = 511
@@@ UpdateMessage.command = ⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌⚌, g_isRecovery = 0
@@@ g_bootArgsStr = mem=640M console=ttyAMA0,115200 mmz=anonymous,0,0xA8000000,384M clk_ignore_unused androidboot.selinux=permissive skip_initramfs rootdelay=10 init=/init root=/dev/mmcblk0p5 rootfstype=ext4 rw blkdevparts=mmcblk0:1M(boot),15M(kernel),20M(updater),1M(misc),3307M(system),256M(vendor),-(userdata)
@@@ do_bootx in misc_init_r, g_isRecovery = 0
Net: eth0
Error: eth0 address not set.
Hit any key to stop autoboot: 0
有没有胖友遇到过这种情况哈?
手机行不行
这个问题解决了吗
解决了,板子的屏幕接口烧坏了。新买一块板子就好了。这个板子不能长时间工作。我两个晚上忘记断电,第三天就坏了。重买解决问题😂
请教各位大佬,编译直接报错如下,是哪里没配好吗?
Starting Ninja...
python version: Python 3.8.5
build_target: images
ninja: Entering directory `/home/openharmony/out/ohos-arm-release'
ninja: error: '../../prebuilts/clang/ohos/linux-x86_64/llvm/lib/clang/10.0.1/lib/arm-linux-ohosmusl/libclang_rt.builtins.a', needed by 'utils/utils_base/libutilsecurec_shared.z.so', missing and no known rule to make it
build: ninja error
used: 46 seconds
pycache statistics
manage pycache contents
pycache daemon exit
ccache statistics
这个是直接打包成 平板或者手机的rom吗?