文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

OpenHarmony2.0 Hi3516系列标准系统源码编译及烧录

2024-12-03 00:56

关注

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

一、源码编译

本次源码编译使用Ubuntu20.0.4版本进行编译,硬件环境Win10,虚拟机配置8G内存、4核CPU(腾讯云服务器2G内存版本内存太小编译不通过)。

1、源码下载及基础软件配置参考Hi3516系列小型系统源码编译及烧录

编译好的固件: https://yunpan.midea.com/#/sharelist?sharekey=reuP4tpjqN

2、安装依赖工具(标准系统编译需要更多的依赖工具)

安装命令如下

  1. sudo apt-get install binutils git-core 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 lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 python2.7 python-minimal 

注:python-minimal安装过程中失败,但其实编译未受影响

3、获取标准系统源码(获取方式和小系统一致,一套代码维护)

4、获取prebuilts

切换到OpenHarmony工作目录。

cd OpenHarmony

下载脚本。

  1. curl https://gitee.com/landwind/script-tools/raw/master/Shell/OpenHarmony/OpenHarmony_2.0_canary_prebuilts_download.sh >./prebuilts_download.sh 

下载并解压prebuilts压缩包到指定位置。

  1. bash ./prebuilts_download.sh 

二进制默认存放在与OpenHarmony同目录下的OpenHarmony_2.0_canary_prebuilts下,如需修改默认位置,请编辑prebuilts_download.sh修改bin_dir值。

5、配置NodeJS环境和获取Node_modules依赖包

为了编译JS Framework,开发者需要在Linux服务器下载配置NodeJS(注意:步骤中OpenHarmony目录指代当前工程的根目录,可自定义),具体操作如下:

开发者在Linux服务器下载Nodejs。

  1. mkdir -p OpenHarmony/prebuilts/build-tools/common/nodejs  #创建nodejs目录   
  2. cd OpenHarmony/prebuilts/build-tools/common/nodejs        #进入nodejs目录 
  3. wget --no-check-certificate https://nodejs.org/download/release/v12.18.4/node-v12.18.4-linux-x64.tar.gz #下载nodejs 
  4. tar -zxvf node-v12.18.4-linux-x64.tar.gz                    #解压nodejs压缩包 
  5. cd -                                                        #切换到之前的目录  

配置NodeJS环境变量,下载node_modules包。

  1. cd OpenHarmony/third_party/jsframework                 #进入jsframework目录 
  2. export PATH=../../prebuilts/build-tools/common/nodejs/node-v12.18.4-linux-x64/bin:${PATH} #设置NodeJS环境变量 
  3. npm install                                             #下载node_modules包 
  4. cd -                                                    #切换到之前的目录 

把下载的node_modules包放入OpenHarmony代码的prebuilts/build-tools/common/js-framework目录下。

  1. mkdir -p OpenHarmony/prebuilts/build-tools/common/js-framework      #创建js-framework目录 
  2. cp -rp OpenHarmony/third_party/jsframework/node_modules OpenHarmony/prebuilts/build-tools/common/js-framework/ 

6、开始编译

使用Docker环境的开发者可参照Docker使用指导进行编译。采用安装包方式的开发者在Linux环境进行如下操作。

进入源码根目录,执行如下命令进行版本编译。

  1. ./build.sh --product-name Hi3516DV300 

{product_name}为当前版本支持的平台。

检查编译结果。编译完成后,log中显示如下:

  1. copy modules... 
  2. [12937/12939] STAMP obj/build/ohos/packages/phone_install_modules.stamp 
  3. [12938/12939] STAMP obj/build/ohos/packages/make_packages.stamp 
  4. [12939/12939] STAMP obj/build/core/gn/packages.stamp 
  5. used: 3591 seconds 
  6. pycache statistics 
  7. manage pycache contents 
  8. pycache daemon exit 
  9. c targets overlap rate statistics 
  10. subsystem files NO. percentage builds NO. percentage overlap rate 
  11. third_party 4579 60.3% 4740 61.2% 1.04 
  12. aafwk 107 1.4% 107 1.4% 1.00 
  13. account 13 0.2% 13 0.2% 1.00 
  14. ace 765 10.1% 765 9.9% 1.00 
  15. appexecfwk 234 3.1% 234 3.0% 1.00 
  16. communication 323 4.3% 323 4.2% 1.00 
  17. developtools 65 0.9% 65 0.8% 1.00 
  18. distributeddatamgr 286 3.8% 286 3.7% 1.00 
  19. distributedschedule 27 0.4% 27 0.3% 1.00 
  20. global 17 0.2% 17 0.2% 1.00 
  21. graphic 33 0.4% 33 0.4% 1.00 
  22. hdf 43 0.6% 43 0.6% 1.00 
  23. hiviewdfx 98 1.3% 98 1.3% 1.00 
  24. miscservices 5 0.1% 5 0.1% 1.00 
  25. multimedia 38 0.5% 38 0.5% 1.00 
  26. multimodalinput 29 0.4% 29 0.4% 1.00 
  27. notification 37 0.5% 37 0.5% 1.00 
  28. powermgr 48 0.6% 48 0.6% 1.00 
  29. security 169 2.2% 169 2.2% 1.00 
  30. startup 51 0.7% 51 0.7% 1.00 
  31. telephony 200 2.6% 200 2.6% 1.00 
  32. updater 85 1.1% 85 1.1% 1.00 
  33. utils 211 2.8% 211 2.7% 1.00 
  34. wpa_supplicant-2.9 103 1.4% 103 1.3% 1.00 
  35.   
  36. c overall build overlap rate: 1.02 
  37.   
  38.   
  39. post_process 
  40. build_target='' 
  41. /home/ubuntu/harmonyos/OpenHarmony/out/ohos-arm-release/packages/phone/images/root /home/ubuntu/harmonyos/OpenHarmony 
  42. /home/ubuntu/harmonyos/OpenHarmony 
  43. build vendor image successful. 
  44. build system image successful. 
  45. build userdata image successful. 
  46. ohos_build_out_dir = /home/ubuntu/harmonyos/OpenHarmony/out/ohos-arm-release/packages/phone 
  47. build updater image successful. 
  48. =====build Hi3516DV300 successful. 
  49. 2021-07-10 11:45:59 
  50. ++++++++++++++++++++++++++++++++++++++++ 
  51. root@ubuntu:/home/ubuntu/harmonyos/OpenHarmony# 

编译所生成的文件都归档在out/ohos-arm-release/目录下,结果镜像输出在 out/ohos-arm-release/packages/phone/images/ 目录下。

二、烧录

Hi3516系列支持串口、USB、网线三种方式烧录,但是USB、网线烧录都需要同时连上串口;串口烧录太慢(不推荐),USB烧录没有成功。

刷机包可以从论坛已经编译好的镜像下载体验

https://pan.baidu.com/s/1rGf75ifUCRZ1btJjsKkiCw

提取码:ohos

1、请连接好电脑和待烧录开发板,以Hi3516DV300为例,需要同时连接串口、网口和电源;


2、打开电脑的设备管理器,查看并记录对应的串口号;


3、将网线连接电脑,更改电脑IP地址


4、打开DevEco Device Tool,创建一个新工程


选择开发版芯片为Hi3516DV300,工程名自取,组件选为无;


5、在Projects中,点击Settings打开工程配置界面


6、在Partition Configuration页签中,按照下表内容填写烧录文件信息,包括:

7、在“hi3516dv300”页签,设置烧录选项,包括upload_port、upload_partitions和upload_protocol

注意upload_partitions,需要烧录几个就选择几个,如果是第一次从小系统,烧录到标准系统需要全部烧录;

8、设置网口烧录的IP地址信息,设置如下选项:

9、所有的配置都修改完成后,在工程配置页签的顶部,点击Save进行保存。

10、擦除fastboot


Windows上擦除成功之后,可能无法继续烧录,可以使用Hitools工具烧录


11、开始烧录,点击Upload直接开始烧录


12、出现下面提示后,断开电源再上电,重新上电后会开始传输数据开始烧录



13、大概十分钟左右烧录成功


烧录成功会直接开机,标准系统样式如下


三、烧录过程中遇到的问题

1、标准系统更新系统烧录不能点亮屏幕,启动日志如下,这是因为烧录系统时,没有擦除fastboot导致的;

解决方案:先擦除fastboot,然后再进行烧录;如果擦除后不能烧录,可以参考下面第二点解决方案;

  1. @@@ bootArgs from misc       = 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(updel),20M(updater),1M(misc),3307M(system),256M(vendor),-(userdata) 
  2. @@@ bootArgs final from emmc = console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=20M rw 
  3. Net:   eth0 
  4. Error: eth0 address not set
  5.   
  6. Hit any key to stop autoboot:  0 
  7.   
  8. MMC read: dev # 0, block # 2048, count 18432 ... 18432 blocks read: OK 
  9. 45.20 MB/s 
  10. ## Booting kernel from Legacy Image at 80000000 ... 
  11.    Image Name:   Linux-4.19.155 
  12.    Image Type:   ARM Linux Kernel Image (uncompressed) 
  13.    Data Size:    4892948 Bytes = 4.7 MiB 
  14.    Load Address: 80008000 
  15.    Entry Point:  80008000 
  16.    Loading Kernel Image 
  17.   
  18. Starting kernel ... 

2、烧录过程中擦除fastboot之后,不能继续烧录,如果想恢复原来系统,可以重新烧录fastboot来恢复系统;

a、使用hitool烧写


b、使用DevEco Device Tool烧写(只选择烧录fastboot)


小型系统初次启动或修改启动参数都需要修改U-boot的bootcmd及bootargs内容(具体参考OpenHarmony小型系统源码及烧录)

3、Hi3516开发版硬件注意事项

由于开发版硬件缺陷没有指示灯指示是否已经上电,可以通过Monitor来验证,打开Monitor后观察打开开关之后是否有日志信息。

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 

来源:鸿蒙社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯