2 开源鸿蒙OpenHarmony4.1源码下载和编译流程

2024-03-04 1471阅读

温馨提示:这篇文章已超过384天没有更新,请注意相关的内容是否还可用!

开源鸿蒙OpenHarmony源码下载和编译流程

作者将狼才鲸
日期2024-02-29

  • 前景提要:

    2 开源鸿蒙OpenHarmony4.1源码下载和编译流程
    (图片来源网络,侵删)
  • 确定你要编译哪一块开发板:

    • 我选择qemu_mini_system_demo 这个板子
    • 编译形态整体说明,含QEMU,可以编译哪些开发板和芯片
    • qemu模拟器 + arm核 + mini轻型系统的配置有:
      • qemu_mini_system_demo arm_mps2_an386 qemu liteos_m mini arm-cortex-m4
      • qemu_cm55_mini_system_demo arm_mps3_an547 qemu liteos_m mini arm-cortex-m55
      • Qemu Arm Cortex-m4 mps2-an386 教程
      • Qemu Arm Cortex-m55 mps3-an547 教程
      • QEMU(Quick Emulator)鸿蒙QEMU模拟器操作指南
      • 安装基础开发环境:安装VMware虚拟机+Ubuntu发行版系统+Git软件+repo软件+Python

      • 编译开源鸿蒙源码前先下载源码

        • 步骤见:开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程
        • 使用 repo init -u https://gitee.com/openharmony/manifest -b master -m chipsets/qemu.xml -g ohos:mini 初始化对应于QEMU模拟器(类似于开发板)的全套源码
        • 按前面的步骤下载鸿蒙源码
        • 编译:

        • 编译的相关介绍

          • 需要使用hb命令,也就是ohos-build
            • 了解OpenHarmony-编译
            • OpenHarmony支持hb和build.sh两种编译方式。
            • 安装hb编译工具
            • 安装库和工具集
            • .sh方式编译构建指导
            • 安装流程介绍:
              • hb安装异常处理
              • 快速入门-如何编译程序
              • 安装库和工具集-编译流程
                • 编译步骤(先安装编译工具):

                  • python3 -V 查看python版本,如果是3.8以下,则:

                    • sudo apt install python3.8
                    • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
                    • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
                    • sudo update-alternatives --config python3
                    • python3 -V
                    • python3 -m pip install --user ohos-build

                      • pip3是Python的包管理工具,用于安装、升和管理Python包
                      • 需要python3.8以上的版本
                      • 如果你是Ubuntu18.04,则先执行

                        • cd /usr/lib/python3/dist-packages
                        • cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so apt_pkg.cpython-39m-x86_64-linux-gnu.so apt_pkg.so
                        • cd -
                        • 先安装依赖库

                        • 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 gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 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 安装编译时依赖的软件和库

                          • 仔细看安装后的信息,如果提示有哪些包未安装成功,则你需要单独安装
                          • sudo apt-get install g+±multilib 这里其实是g加号加号减号multilib,会被csdn识别成别的格式
                          • sudo apt-get install gcc-arm-linux-gnueabi
                          • sudo apt-get install gcc-multilib
                          • sudo apt-get install lib32ncurses5-dev
                          • sudo apt-get install lib32z1-dev
                          • sudo apt-get install libc6-dev-i386
                          • 按前面的流程下载全量源码,或者特定开发板特定芯片的源码

                          • 进入到你下载的源码根目录

                          • bash build/prebuilts_download.sh 安装和芯片相关的编译器和二进制工具,全自动的,会下载的同时进行安装,要等待一段时间,有进度条

                          • python3 -m pip install --user build/hb

                          • gedit ~/.bashrc

                          • 将 export PATH=~/.local/bin:$PATH 加入到最后一行并保存退出

                          • source ~/.bashrc

                          • hb --help 这个命令执行时可能有报错,有什么错误就解决什么错误,例如用下面方法解决报错

                            • python3 -m pip uninstall ohos-build
                            • python3 -m pip install --user ohos-build==0.4.3
                            • hb set 进行编译设置

                              • 第一步目录输入. 选择源码根目录的当前目录
                              • 第二步选择开发板,我使用上下方向键选择qemu_mini_system_demo这款qemu的模拟器开发板,ARM Cortex-M4内核的虚拟芯片
                                • 编译形态整体说明,含QEMU,可以编译哪些开发板和芯片
                                • Qemu Arm Cortex-m4 mps2-an386 教程
                                • qemu_mini_system_demo arm_mps2_an386 qemu liteos_m mini arm-cortex-m4
                                  jim@ubuntu:~/openHarmony$ hb set
                                  [OHOS INFO] Input code path: .
                                  OHOS Which product do you need?  qemu_mini_system_demo
                                  
                                  • hb build -f 开始编译,有报错则处理报错

                                  • 出现build success表示编程成功,然后进行烧录,或者直接用QEMU模拟器进行运行。

                                  • 防止格式被破坏

                                      * python3 -V  查看python版本,如果是3.8以下,则:
                                        * sudo apt install python3.8
                                    	* sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
                                    	* sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
                                    	* sudo update-alternatives --config python3
                                    	* python3 -V
                                      
                                      * python3 -m pip install --user ohos-build
                                        * pip3是Python的包管理工具,用于安装、升和管理Python包
                                    	* 需要python3.8以上的版本
                                    * 安装流程介绍:
                                      * [hb安装异常处理](https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/quick-start/quickstart-pkg-common-hberr.md/)  
                                      * [快速入门-如何编译程序](https://gitee.com/openharmony/docs/tree/master/zh-cn/device-dev/quick-start)
                                      * [安装库和工具集-编译流程](https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/quick-start/quickstart-pkg-install-package.md)
                                    * 如果你是Ubuntu18.04,则先执行
                                      * cd /usr/lib/python3/dist-packages
                                      * cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so apt_pkg.cpython-39m-x86_64-linux-gnu.so apt_pkg.so
                                      * cd -
                                    * 先安装依赖库
                                    * 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 gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 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  安装编译时依赖的软件和库
                                      * 仔细看安装后的信息,如果提示有哪些包未安装成功,则你需要单独安装
                                      * sudo apt-get install g++-multilib
                                      * sudo apt-get install gcc-arm-linux-gnueabi
                                      * sudo apt-get install gcc-multilib
                                      * sudo apt-get install lib32ncurses5-dev
                                      * sudo apt-get install lib32z1-dev
                                      * sudo apt-get install libc6-dev-i386
                                    * 按前面的流程下载全量源码,或者特定开发板特定芯片的源码
                                    * 进入到你下载的源码根目录
                                    * bash build/prebuilts_download.sh  安装和芯片相关的编译器和二进制工具,全自动的,会下载的同时进行安装,要等待一段时间,有进度条
                                    * python3 -m pip install --user build/hb
                                    * gedit ~/.bashrc
                                    * 将 export PATH=~/.local/bin:$PATH 加入到最后一行并保存退出
                                    * source ~/.bashrc
                                    * hb --help    这个命令执行时可能有报错,有什么错误就解决什么错误,例如用下面方法解决报错
                                      * python3 -m pip uninstall ohos-build
                                      * python3 -m pip install --user ohos-build==0.4.3
                                    * hb set  进行编译设置
                                      * 第一步目录输入.  选择源码根目录的当前目录
                                      * 第二步选择开发板,我使用上下方向键选择qemu_mini_system_demo这款qemu的模拟器开发板,ARM Cortex-M4内核的虚拟芯片
                                        * [编译形态整体说明,含QEMU,可以编译哪些开发板和芯片](https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/quick-start/quickstart-appendix-compiledform.md/)
                                        * [Qemu Arm Cortex-m4 mps2-an386 教程](https://gitee.com/openharmony/device_qemu/blob/master/arm_mps2_an386/README_zh.md)
                                        * qemu_mini_system_demo	arm_mps2_an386	qemu	liteos_m	mini	arm-cortex-m4
                                    * hb build -f  开始编译,有报错则处理报错
                                    * 出现build success表示编程成功,然后进行烧录,或者直接用QEMU模拟器进行运行。
                                    
                                    • 参考资料:
                                      • 基于OpenHarmony搭建的Qemu仿真实验环境
                                      • ohos-build 安装失败分析
                                      • 基于Ubuntu20.04搭建OpenHarmony v3.0.6的qemu仿真环境
                                      • 基于OpenHarmony搭建的Qemu仿真实验环境
                                      • 搭建一个鸿蒙运行环境,来一窥神秘鸿蒙
                                        • 如果你用hb的方式编译始终出错,那么可以试试使用传统.sh脚本的方式

                                          • 使用build.sh脚本编译源码
                                          • ./build.sh --product-name qemu_mini_system_demo --ccache // 需要换成你自己开发板的名称

                                            • 有报错则解决报错
                                            • 检查编译结果。编译完成后,log中显示如下:

                                              • post_process
                                              • =====build name successful.
                                              • 编译所生成的文件都归档在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/ 目录下。
                                              • 如果依然编译有报错,那还可以试试Docker

                                                • 如果你只是想编译应用程序,那么可以使用DevEco Device Tool
                                                • 应用编译
                                                  • 或者使用鸿蒙官方已经准备好的Docker环境
                                                    • Docker编译环境
                                                    • sudo apt install docker.io
                                                    • sudo docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
                                                    • 进入到你下载的开源鸿蒙源码的路径,再执行下面这一条
                                                    • docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
                                                    • 这时已经进入到docker的虚拟环境
                                                      jim@ubuntu:~/openHarmony$ sudo docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2
                                                      root@949f932a2f80:/home/openharmony# ls
                                                      applications  build     build.sh       developtools  docs     foundation  ohos_config.json  prebuilts      qemu-run  third_party
                                                      base          build.py  commonlibrary  device        drivers  kernel      out               productdefine  test      vendor
                                                      root@949f932a2f80:/home/openharmony#
                                                      
                                                      • python3 build.py -p qemu_mini_system_demo@ohemu

                                                        • 开始编译轻型系统,编译时间会需要很久……
                                                        • 编译工具分为轻型、小型、标准,而芯片、开发板的归属也分为这三种,下载的工具和你编译的参数必须属于同一种类,否则会编译各种报错!!!
                                                        • 在编译结束后,编译所生成的文件都会被存放在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/目录下。

                                                        • 如果遇到报错,则解决报错

                                                        • 编译成功后是这样的打印:

                                                          [OHOS INFO] [1614/1615] STAMP obj/build/ohos/images/make_images.stamp
                                                          [OHOS INFO] [1615/1615] STAMP obj/build/core/gn/images.stamp
                                                          [OHOS INFO] ccache_dir = /root/.ccache, ccache_exec = /usr/bin/ccache
                                                          [OHOS INFO] --------------------------------------------
                                                          [OHOS INFO] ccache summary:
                                                          [OHOS INFO] ccache version: 3.7.7
                                                          [OHOS INFO] cache hit (direct): 0
                                                          [OHOS INFO] cache hit (preprocessed): 0
                                                          [OHOS INFO] cache miss: 0
                                                          [OHOS INFO] hit rate: 0.00% 
                                                          [OHOS INFO] miss rate: 0.00% 
                                                          [OHOS INFO] Cache size (GB): 
                                                          [OHOS INFO] ---------------------------------------------
                                                          [OHOS INFO] c targets overlap rate statistics
                                                          [OHOS INFO] subsystem       	files NO.	percentage	builds NO.	percentage	overlap rate
                                                          [OHOS INFO] hiviewdfx       	      12	0.8%	      12	0.8%	1.00
                                                          [OHOS INFO] kernel          	     902	63.5%	     902	63.5%	1.00
                                                          [OHOS INFO] security        	      61	4.3%	      61	4.3%	1.00
                                                          [OHOS INFO] startup         	      26	1.8%	      26	1.8%	1.00
                                                          [OHOS INFO] systemabilitymgr	      15	1.1%	      15	1.1%	1.00
                                                          [OHOS INFO] thirdparty      	     393	27.7%	     393	27.7%	1.00
                                                          [OHOS INFO] 
                                                          [OHOS INFO] c overall build overlap rate: 1.00
                                                          [OHOS INFO] 
                                                          [OHOS INFO] 
                                                          [OHOS INFO] qemu_mini_system_demo@ohemu build success
                                                          [OHOS INFO] Cost time:  0:05:47
                                                          root@ff38bf1e3e75:/home/openharmony# 
                                                          jim@ubuntu:~/openHarmony/out/arm_mps2_an386/qemu_mini_system_demo$ ls
                                                          all_parts_host.json           build_configs   config.h         kconfig_files.txt  OHOS_Image.bin              src_installed_parts.json
                                                          all_parts_info.json           build.log       error.log        libs               OHOS_Image.map              src_sa_infos_tmp.json
                                                          args.gn                       build.ninja     etc              NOTICE_FILES       OHOS_Image.sym.sorted       startup
                                                          binary_installed_parts.json   build.ninja.d   gen              obj                packages                    thirdparty
                                                          build.1709259296.3884952.log  build.trace.gz  hiviewdfx        OHOS_Image         security                    toolchain.ninja
                                                          build.1709259767.6772568.log  config.gni      kconfig_env.txt  OHOS_Image.asm     sorted_action_duration.txt
                                                          jim@ubuntu:~/openHarmony/out/arm_mps2_an386/qemu_mini_system_demo$ 
                                                          
                                                          • 生成的系统镜像image是这里面的OHOS_Image文件

                                                          • 如需退出Docker,执行exit命令即可。这个命令会停止当前的Docker容器,并返回到您的操作系统。

                                                          • 下一步就可以把编译好的操作系统在QEMU模拟器中运行起来啦。

                                                          • 如果以上步骤依然还有错,那么建议你使用不同的Ubuntu系统,并且下载OpenHarmony4.0全量代码,然后编译时换一个芯片类型,换一个系统类型再尝试;开发期间的代码不可能在每一种环境下都没有错,或者找个做过鸿蒙系统开发的,让他把他的虚拟机直接打包发给你,这样最省事。

                                                            • 下载网址 https://repo.huaweicloud.com/openharmony/os/4.1-Beta1/code-v4.1-Beta1.tar.gz 总共30G左右
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]