本文采用直接下载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默认用户名和password分别为root和openeuler。
六、 图形环境配置
试试安装UKUI(由麒麟团队开发的基于 Linux 发行版的轻量级桌面环境),当然也可以安装其他桌面环境,主要其他桌面环境都体验过了,UKUI第一次使用,刚好openEuler也支持,试试就试试。
主要安装过程及命令如下:
1、安装UKUI。
dnf install ukui -y
安装过程(部分截图):
2、安装字体库。
dnf groupinstall fonts -y
3、设置默认启动图形界面(UKUI)。
systemctl set-default graphical.target
注,命令解析:
- systemctl set-default graphical.target 表示开机将默认进入图形界面。
- systemctl set-default multi-user.target 表示开机将默认进入文本界面。
- systemctl get-default 可以获得当前的默认target。
至此,openEuler的基本图形化环境就配置完成。
七、openEuler+UKUI桌面运行
桌面
开始
我的电脑
设置
关于 (只识别除了A53,A73呢?)
UKUI自带应用一览
温馨提示:演示视频见BliBli同名UP主AlgoIdeas
https://www.bilibili.com/video/BV1Y34y1h71J/。
至此,本文介绍完毕。