X86 OpenHarmony5.1.0编译及安装

2025年8月15日顺利编译

最新版本适配情况请查看组织首页状态

介绍

该项目介绍,如何编译运行 OpenHarmony 5.1.0 Release标准系统。

搭建开发环境

1.1 硬件环境

准备一台装有ubuntu20.04系统X86主机,内存最低配置要求16G。

下载ubuntu iso文件:

Ubuntu 20.04.6 LTS (Focal Fossa)

使用rufus制作ubuntu启动盘:

Rufus - 轻松创建 USB 启动盘

1.2 下载repo脚本文件

参考:

Ubuntu22.04中生成gitee码云的ssh-key并添加到gitee网站上_ubuntu gitee key-CSDN博客

  1. 注册码云gitee账号。

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

  3. 安装git客户端和git-lfs并配置用户信息。

    git config --global user.name "yourname"
    git config --global user.email "your-email-address"
    git config --global credential.helper store

  4. 安装码云repo工具,可以执行如下命令。

    curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo
    pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

如果没有权限,可下载至其他目录,并将其配置到环境变量中chmod a+x /usr/local/bin/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     # 在环境变量的最后添加一行repo路径信息
source ~/.bashrc            # 应用环境变量

1.3 获取OpenHarmony标准系统源码

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

复制代码
export WORK_SPACE=/home/xxx/OpenHarmony #替换成自己定义的workspace路径
export PROJ_ROOT=$WORK_SPACE/5.1-Release
mkdir $WORK_SPACE
mkdir $PROJ_ROOT
cd $PROJ_ROOT
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v5.1.0-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

注意:如果在repo sync -c 时提示大类超时、未找到文件请返回1.2注册gitee账号,设置git安装git-lfs

1.4 获取编译工具链

参考OpenHamony快速入门文档,基于命令行入门。

复制代码
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 default-jdk libssl-dev libtinfo5 genext2fs u-boot-tools mtools mtd-utils scons gcc-arm-none-eabi abootimg libelf-dev  libxcursor-dev libxrandr-dev libxinerama-dev

1.5 执行prebuilts

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

复制代码
cd $PROJ_ROOT
build/prebuilts_download.sh

设备代码下载与整合

2.1 下载适配源码

进到项目根目录,下载设备源码:

复制代码
git clone -b OpenHarmony-5.1.0-Release https://gitee.com/ohos-porting-communities/vendor_opc.git vendor/opc
git clone -b OpenHarmony-5.1.0-Release https://gitee.com/ohos-porting-communities/device_board_opc.git device/board/opc
git clone -b OpenHarmony-5.1.0-Release https://gitee.com/ohos-porting-communities/device_soc_opc.git device/soc/opc

# 下面是其他内涵x86可以不下载

#下载香橙派5Plus/Ultra内核
git clone -b OpenHarmony-5.1.0-Release https://gitee.com/ohos-porting-communities/linux_5.10_opi.git kernel/linux/linux-5.10-opi

#下载FILY F12内核
git clone -b OpenHarmony-5.0-Release https://gitee.com/ohos-porting-communities/kernel_linux_5.10_f12.git kernel/linux/linux-5.10-f12

下面是其他内核x86可以不下载

根据编译的机型,选择合并补丁或适当修改源码:

复制代码
代码修改说明:

#香橙派5Plus因为我默认使用了5.5寸LCD触摸屏,HDMI输出会镜像触屏比例显示,显示异常的可以修改以下文件

device/board/opc/opi5plus/kernel/build_kernel.sh
注释掉patch -p1 < ${KERNEL_PATCH_PATH}/0001-enable-lcd.patch

另外根据自己显示器比例修改dpi参数

vendor/opc/opi5plus/custom_conf/window/display_manager_config.xml

代码编译

3.1 OpenHarmony编译

复制代码
cd $PROJ_ROOT  

OpenHarmony 64bit系统编译问题,补丁修复统一使用x86补丁
cd vendor/opc/x86_general/patches
sh patch.sh

#X86 general
./build.sh --product-name x86_general --ccache

#下面是其他内核编译方法,不用理会

#香橙派5Plus
./build.sh --product-name opi5plus --ccache

#香橙派5Ultra
./build.sh --product-name opi5ultra --ccache

#FILY F12
./build.sh --product-name f12 --ccache

**注意:**编译x86一定要打补丁

注意2: 出现 find component x86_general failed 或者 find component prebuilt_hap failed 请退回到1.2操作后重新下载

编译成功提示:

复制代码
post_process
=====build opi5plus successful.

编译生成的文件

复制代码
$PROJ_ROOT/out/opi5plus/packages/phone/images/system.img 
$PROJ_ROOT/out/opi5plus/packages/phone/images/vendor.img
$PROJ_ROOT/out/opi5plus/packages/phone/images/userdata.img
$PROJ_ROOT/out/opi5plus/packages/phone/images/ramdisk.img

3.2 额外镜像编译 编译好OpenHarmony的文件之后使用以下命令内核并打包手机boot.img/树莓派4B完整镜像

复制代码
#小米POCO F1
cd device/board/opc/beryllium/kernel
./build_kernel.sh

#小米6
cd device/board/opc/sagit/kernel
./build_kernel.sh

#树莓派4B
./build.sh --product-name rpi4 --ccache --build-target rpi_image

镜像烧写

手机镜像参考我的文章使用twrp刷入或者bootloader线刷
https://ost.51cto.com/posts/20924

树莓派4B使用Win32DiskImager烧录整合好的rpi_image.img到microSD卡中

香橙派5Plus和FILY F12参考主线设备rk3568的说明文档使用RKDevTool烧写

x86镜像烧写

使用U盘进行启动:
1、准备一个8G以上高速U盘
2、使用DiskGenius将U盘转换为GUID分区表格式

3、使用DiskGenius分区工具分出4个分区,分区依次如下:(*新建分区时点击详细参数,删除分区名字)
boot 500M fat32
system 3G ext4
vendor 500M ext4
data 3G ext4

注意:笔者中间有几次没成功,最后没清空分区名称也启动了,上面提到的要清空是官方要求

4、直接复制device/board/opc/x86_general/loader文件夹内容到boot分区根目录

5、使用Linux的dd命令烧录镜像,用df确认需要烧写的分区,也就是sdx中的x,可能是a、b、c(*Windows可以按照cmder应用实现支持dd命令)

复制代码
sudo dd if=system.img of=/dev/sdx2 bs=1M
sudo dd if=vendor.img of=/dev/sdx3 bs=1M

注意:4、5 两个操作要连着做,在boot中要加入bzImage、eng_system.img、ramdisk.img,否则无法引导,这三个文件在生成的images文件夹中。

6、data分区为格式化空分区

7、插入电脑,BIOS选择U盘启动

注意:U盘启动时有可能提示没有签名,需要修改bios启动设置

8、进入系统

9、结束语

经过几天的折腾安装完了,目前系统还不是很完善,如果只是想进入系统看看鸿蒙系统什么样子可以下载我编译好的文件

链接: https://pan.baidu.com/s/1OLntDY5G7aIGE962_hFnUQ 提取码: ohos

参考:
https://gitee.com/ohos-porting-communities/vendor_opc

X86 OpenHarmony5.1.0系统移植与安装_openharmony x86-CSDN博客

相关推荐
鸿蒙小白龙2 天前
鸿蒙openharmony操作系统LiteOS-A内核技术全解析:架构、性能与开发实践
华为·架构·harmonyos·鸿蒙·鸿蒙系统·open harmony
鸿蒙小白龙2 天前
OpenHarmony 6.0 低空飞行器开发实战:从AI感知检测到组网协同
人工智能·harmonyos·鸿蒙·鸿蒙系统·open harmony
是Yu欸3 天前
【仓颉语言】原生智能、全场景与强安全的设计哲学
开发语言·安全·鸿蒙·鸿蒙系统·仓颉语言
后端小张4 天前
【鸿蒙开发手册】重生之我要学习鸿蒙HarmonyOS开发
开发语言·学习·华为·架构·harmonyos·鸿蒙·鸿蒙系统
SWUT胖虎4 天前
ArkTS 中@Extend 和@Styles 装饰器的用法和区别
harmonyos·arkts·鸿蒙·鸿蒙系统
鸿蒙小白龙5 天前
基于 OpenHarmony 6.0 的智能充电桩技术方案与实现
能源·harmonyos·鸿蒙·鸿蒙系统·open harmony
鸿蒙小白龙5 天前
Openharmony应用开发之Ability异常退出与UIAbility数据备份开发实战
harmonyos·鸿蒙·鸿蒙系统·open harmony
鸿蒙小白龙6 天前
OpenHarmony 与 HarmonyOS 的 NAPI 开发实战对比:自上而下与自下而上的差异解析
harmonyos·鸿蒙·鸿蒙系统·open harmony
鸿蒙小白龙6 天前
OpenHarmony平台大语言模型本地推理:llama深度适配与部署技术详解
人工智能·语言模型·harmonyos·鸿蒙·鸿蒙系统·llama·open harmony