openEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验 原创 精华

AlgoIdeas
发布于 2022-5-11 23:07
浏览
3收藏

本文采用直接下载openEuler的官方树莓派4B(arm64/aarch64架构)的镜像,提取根文件系统镜像,并根据自身平台配置好采用openEuler主线内核,来运行openEuler的,此法最快运行。离openEuler运行,你只需要一点点步骤就行。
openEuler目前只是了解下,移植下,此次采用的是Embedded版本。对了别忘了,openEuler + OpenHarmony的组合,会出现怎样的一番场景,拭目以待,并持续跟进。

一 、镜像下载
ARM64系统镜像可以下载已经编译好的树莓派镜像
下载地址:
​​​https://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS/raspi_img/openEuler-22.03-LTS-raspi-aarch64.img.xz​​​
下载完成后解压

algoideas@Algo:~$ xz -d openEuler-22.03-LTS-raspi-aarch64.img.xz 
algoideas@Algo:~$ ls
openEuler-22.03-LTS-raspi-aarch64.img 

二 、镜像提取
fdisk可以查看磁盘(镜像)相关信息,查看openEuler镜像信息如下:

algoideas@Algo:~$ fdisk -l openEuler-22.03-LTS-raspi-aarch64.img
Disk openEuler-22.03-LTS-raspi-aarch64.img:2.17 GiB,2327838720 字节,4546560 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5e8f9fea
设备                                   启动    起点    末尾    扇区  大小 Id 类型
openEuler-22.03-LTS-raspi-aarch64.img1 *       8192  593919  585728  286M  c W95 FAT32 (LBA)
openEuler-22.03-LTS-raspi-aarch64.img2       593920 1593343  999424  488M 82 Linux swap / Solaris
openEuler-22.03-LTS-raspi-aarch64.img3      1593344 4546559 2953216  1.4G 83 Linux

可以看到,这个磁盘镜像包含了三个分区。其中第三个分区是系统镜像分区,我们尝试挂载第三个分区。
通过上面的信息可以看到,第三个分区起始位置是1593344扇区,每个扇区大小是512 Bytes, 所以起始位置是1593344*512(B)。
然后我们来挂载该分区:

algoideas@Algo:~$ mkdir linux
algoideas@Algo:~$ sudo mount -o loop,offset=$((1593344*512)) 

openEuler-22.03-LTS-raspi-aarch64.img linux 注意需要root权限挂载
查看挂载后的目录:

algoideas@Algo:~$ ls linux/
afs  bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

提取系统分区文件:

algoideas@Algo:~$ dd if=/dev/zero of=rootfs.img bs=1M count=2048
记录了2048+0 的读入
记录了2048+0 的写出
2147483648字节(2.1 GB,2.0 GiB)已复制,9.64041 s,223 MB/s
algoideas@Algo:~$ mkfs.ext4  rootfs.img
mke2fs 1.45.5 (07-Jan-2020)
丢弃设备块: 完成                            
创建含有 524288 个块(每块 4k)和 131072 个 inode 的文件系统
文件系统 UUID:7bcbe2d7-12de-47fc-bad5-1d7bbc8e2f2e
超级块的备份存储于下列块: 
32768, 98304, 163840, 229376, 294912
正在分配组表: 完成                            
正在写入 inode表: 完成                            
创建日志(16384 个块): 完成
写入超级块和文件系统账户统计信息: 已完成
algoideas@Algo:~$ mkdir rootfs
algoideas@Algo:~$ sudo mount rootfs.img rootfs/将openEuler镜像文件拷贝到rootfs目录
algoideas@Algo:~$ rsync -auH --exclude=/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM linux/ rootfs
algoideas@Algo:~$ sudo chown 0:0 rootfs
algoideas@Algo:~$ sudo umount rootfs
algoideas@Algo:~$ e2fsck -p -f rootfs.img
algoideas@Algo:~$ resize2fs -M rootfs.img

执行完成以上步骤后,openEuler系统镜像便已经拷贝到rootfs.img镜像中,最终提取出来的镜像大小为1.1G,和原始镜像比较缺少启动和Linux交换分区。

algoideas@Algo:~$ du -sh rootfs.img 
1.1G rootfs.img 

注意:此时可以卸载之前的挂载目录linux,执行以下命令进行卸载
algoideas@Algo:~$ sudo umount linux

三、内核适配
采用官方内核,并配置好芯片平台的相关驱动,编译即可。(注:目前基本的驱动都已经适配)
https://gitee.com/openeuler/kernel/tree/openEuler-22.03-LTS
此处,省略N字。
理论上,其他芯片平台,也可以先不用官方的内核,让机器先跑起来。如果不用官方的内核,可能某些功能上,和openEuler还是存在差异的,具体修改后续可以看看。

四、镜像使用
以Amlogic A311D 为例,其他ARM64/AARCH64芯片平台需根据具体情况,打包和烧录OpenEuler系统镜像.
根据镜像包rootfs.img,重新打包A311D平台的EMMC烧写镜像,烧录即可,烧录参考之前的博客介绍。

五、 OpenEuler启动
正常烧录后,在串口端便可以登录,用以上镜像,第一次启动,系统会自动初始化一些配置,
重启后便可以和正常使用,且开机会自动获取IP地址,如串口端登录后,提示:

Welcome to 5.10.0

System information as of time:  Mon May  9 22:42:27 CST 2022

System load:    0.19
Processes:      174
Memory used:    2.4%
Swap used:      0.0%
Usage On:       79%
IP address:     192.168.1.102
Users online:   1

[root@openEuler ~]#

openEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验-鸿蒙开发者社区
注:openEuler默认用户名和password分别为root和openeuler

六、 图形环境配置
试试安装UKUI(由麒麟团队开发的基于 Linux 发行版的轻量级桌面环境),当然也可以安装其他桌面环境,主要其他桌面环境都体验过了,UKUI第一次使用,刚好openEuler也支持,试试就试试。
主要安装过程及命令如下:
1、安装UKUI

dnf install ukui -y

安装过程(部分截图):
openEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验-鸿蒙开发者社区
2、安装字体库

dnf groupinstall fonts -y

3、设置默认启动图形界面(UKUI)

systemctl set-default graphical.target 

openEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验-鸿蒙开发者社区

注,命令解析:
systemctl set-default graphical.target 表示开机将默认进入图形界面
systemctl set-default multi-user.target 表示开机将默认进入文本界面
systemctl get-default 可以获得当前的默认target
至此,openEuler的基本图形化环境就配置完成。
七、openEuler+UKUI桌面运行

::: hljs-center
openEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验-鸿蒙开发者社区
桌面
openEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验-鸿蒙开发者社区
开始
openEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验-鸿蒙开发者社区
我的电脑
openEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验-鸿蒙开发者社区
设置
openEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验-鸿蒙开发者社区
关于 (只识别除了A53,A73呢?)
openEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验-鸿蒙开发者社区
UKUI自带应用一览

:::

温馨提示:​​​演示视频​​​见BliBli同名UP主AlgoIdeas
​​https://www.bilibili.com/video/BV1Y34y1h71J/​

至此,本文介绍完毕。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2022-5-11 23:08:12修改
8
收藏 3
回复
举报
4条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

感谢楼主分享移植方法,同样期待openEuler+openharmony的组合能有什么样的火花

回复
2022-5-12 10:00:09
AlgoIdeas
AlgoIdeas 回复了 红叶亦知秋
感谢楼主分享移植方法,同样期待openEuler+openharmony的组合能有什么样的火花

😄 

回复
2022-5-12 12:28:19
qq5eecb4249d9e3
qq5eecb4249d9e3

请问楼主移植后出现板子启动不正常,修改完/etc/fstab文件以后只能reboot一次,再次reboot就无法进入系统了,有没有遇到这种情况啊?谢谢


回复
2023-2-18 13:46:44
AlgoIdeas
AlgoIdeas 回复了 qq5eecb4249d9e3
请问楼主移植后出现板子启动不正常,修改完/etc/fstab文件以后只能reboot一次,再次reboot就无法进入系统了,有没有遇到这种情况啊?谢谢

真没遇到过

回复
2023-3-10 19:37:19
回复
    相关推荐