openharmony x86 (二)系统安装
可鲁贝洛喵
2024年12月09日 09:51
收录于文集
共2篇

主要参考文档:

1. [x86-intel-image/guide/环境准备.md](https://gitee.com/chn9528/x86-intel-image/blob/master/guide/%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87.md)

2. [RedmiBook 14Ⅱ 锐龙版成功启动开源鸿蒙 openharmony5.0 x86版,全网第一台鸿米笔记本 ,r5 4500u,有gpu驱动](网页链接​)

配置OHOS系统的分区

该操作在Ubuntu上进行

分区信息

Table 分区信息

使用gparted分区

创建boot分区

创建system分区

创建vendor分区

创建data分区

执行Apply All Operations

系统安装

使用以下命令烧录分区,请将/dev/sdx改为刚才分区完成的对应分区,一定仔细检查,防止错误命令,导致分区损坏数据丢失

```

dd if=system.img of=/dev/sdx bs=4M

dd if=vendor.img.img of=/dev/sdx bs=4M

```

挂载 `vendor`分区,并修改`/etc/fstab.x86_general`文件,将`/dev/block/sdb4`中的改为`sdb4`,改为新创建的data分区,注意保留`/dev/block/sdb4`,中的`/block`路径,此处与传统linux系统略有区别

挂载boot分区,将bzImage,ramdisk.img复制到boot分区

```

mount /dev/sdx /mnt

cp bzImage /mnt/

cp ramdisk.img /mnt/

```

创建启动项

注: cmdline配置需要感谢 @5超级菜鸟5 和 @Diemit 大佬的分享和帮助

针对grub引导,复制grub引导文件,并修改grub.cfg,写入以下内容,请将两处sdx@分别替换为新建的system分区及vendor分区,注意保留/dev/block/sdx,中的/block路径,此处与传统linux系统略有区别

```

set default="0" 

loadfont unicode

set gfxmode=auto

function load_video {

 insmod video

 insmod video_bochs

 insmod video_cirrus

 insmod video_fb

 insmod all_video

 insmod videoinfo

if [ $grub_platform = efi ];then

 insmod efi_gop

 insmod efi_uga

elif [ $grub_platform = pc ];then

 insmod vga

 insmod vbe

fi

}

load_video

insmod gfxterm

insmod gettext

set gfxpayload=keep

insmod gzio

insmod part_gpt

insmod ext2

set timeout=5

search --no-floppy --set=root -l 'boot'

menuentry "OpenHarmony" {

 linux /bzImage LABEL=boot root=/dev/ram0 rw init=/init console=tty1 console=ttyUSB0,115200 \

 no_console_suspend default_boot_device=sdb hardware=x86_general elevator=deadline enforcing=0 \

 ohos.required_mount.system=/dev/block/sdx@/usr@ext4@ro,barrier=1@wait,required \

 ohos.required_mount.vendor=/dev/block/sdx@/vendor@ext4@ro,barrier=1@wait,required

 initrd /ramdisk.img

}

```

针对refind引导,创建refind_linux.conf,写入以下内容,请将两处sdx@分别替换为新建的system分区及vendor分区,注意保留/dev/block/sdx,中的/block路径,此处与传统linux系统略有区别

```

"Boot with standard options" "LABEL=boot root=/dev/ram0 rw init=/init console=tty1 console=ttyUSB0,115200 no_console_suspend default_boot_device=sdb hardware=x86_general elevator=deadline enforcing=0 ohos.required_mount.system=/dev/block/sdx@/usr@ext4@ro,barrier=1@wait,required ohos.required_mount.vendor=/dev/block/sdx@/vendor@ext4@ro,barrier=1@wait,required initrd=ramdisk.img"

```

注意`console=ttyUSB0,115200`参数,对应的是usb转ttl调试工具,此时可将usb转ttl接入刷入ohos的x86设备的usb口,并将另一端连接到其他电脑或设备,用以查看串口log输出

注意此时可能无法正常加载图形界面,后续会补充amdgpu对应的firmware,用来在搭载amdgpu的设备启动图形界面

注意如果出现挂载错误,可能需要配置内核打开STAT AHCI选项,后面会介绍如何修改内核配置