openEuler Embedded 对树莓派 4B 的支持
本文主要介绍 openEuler Embedded 中树莓派 4B 的构建,使用和特性介绍。
树莓派镜像构建指导
「构建环境」
1.构建环境推荐:openEuler 22.03 LTS
2.构建指导:
参考容器构建指导:https://openeuler.gitee.io/yocto-meta-openeuler/yocto/quickbuild/container-build.html
● 构建命令示例:
su openeuler
source /usr1/openeuler/src/yocto-meta-openeuler/scripts/compile.sh raspberrypi4-64 /usr1/openeuler/src/build/build-raspberrypi4-64/
bitbake openeuler-image
● 构建镜像生成目录示例:
/usr1/openeuler/src/build/build-raspberrypi4-64/output
● 二进制介绍:
1.Image: 树莓派内核镜像
2.openeuler-glibc-x86-64-openeuler-image-cortexa72-raspberrypi4-64-toolchain-22.03.30.sh:SDK 工具链
3.openeuler-image-raspberrypi4-64-*.rootfs.rpi-sdimg: openEuler Embedded 树莓派支持 SD 卡镜像
「镜像使用方法」
1.镜像烧录:
参考树莓派 SD 卡烧录指导:https://gitee.com/openeuler/raspberrypi/blob/master/documents/刷写镜像.md#刷写-sd-卡
2.镜像使用
● 使用 losetup 将磁盘镜像文件虚拟成块设备
losetup -f --show openeuler-image-raspberrypi4-64-*.rootfs.rpi-sdimg
例如,显示结果为 /dev/loop0
● 使用 kpartx 创建分区表 /dev/loop0 的设备映射
kpartx -va /dev/loop0
得到结果是 /dev/loop0 的两个分区设备
add map loop0p1
add map loop0p2
运行 ls /dev/mapper/loop0p* 可以看到对应的两个分区
/dev/mapper/loop0p1 /dev/mapper/loop0p2
● 分区挂载
创建挂载目录
mkdir ${WORKDIR}/boot ${WORKDIR}/root
挂载 boot 分区
mount -t vfat -o uid=root,gid=root,umask=0000 /dev/mapper/loop0p1 ${WORKDIR}/boot
挂载 root 分区
mount -t ext4 /dev/mapper/loop0p2 ${WORKDIR}/root
挂载完成后,可以查看 boot 分区和 root 分区下树莓派镜像的文件,其中 boot 分区为启动引导分区,包含了引导程序,内核镜像,设备树,config.txt 和 cmdline 等配置文件,root 分区为根文件系统分区。
基于 openEuler Embedded 树莓派使用
「启用树莓派」
硬件版本要求:树莓派 4B
默认用户名:root,密码:第一次启动没有默认密码,需重新配置,且密码强度有相应要求, 需要数字、字母、特殊字符组合最少 8 位,例如 openEuler@2021。
将刷写镜像后的 SD 卡插入树莓派,通电启用。
「树莓派登录方式」
1.本地登录
a.使用串口登录:
镜像使能了串口登录功能,按照树莓派的串口连接方式,如下图,可以启用串口操作。
示例:使用 ttyusb 转接器,将树莓派串口通过 USB 连接到 putty:
putty 配置参考:Serial line:ttyUSB0 speed:115200 Connection type:Serial
b.使用 HDMI 登录:
树莓派连接显示器(树莓派视频输出接口为 Micro HDMI)、键盘、鼠标后,启动树莓派,可以看到树莓派启动日志输出到显示器上。待树莓派启动成功,输入用户名(root)和密码登录。
注意:当前镜像默认使能串口登录,如果需要通过 HDMI,需要修改相关配置:
(1)修改 boot 分区下的 cmdline 文件内参数,添加 console=tty1
(2)将 root 分区下的/etc/inittab 文件内参数字段 ttyS0 修改为 tty1
2.ssh 远程登录
参考树莓派使用——启用树莓派——ssh 登录:https://gitee.com/openeuler/raspberrypi/blob/master/documents/树莓派使用.md#启用树莓派
「分区扩容」
以下内容引用自树莓派使用——启用树莓派——分区扩容:https://gitee.com/openeuler/raspberrypi/blob/master/documents/树莓派使用.md#分区扩容
默认根目录分区空间比较小,在使用之前,需要对分区进行扩容。
1.查看磁盘分区信息
执行 fdisk -l 命令查看磁盘分区信息。回显如下:
Device Boot StartCHS EndCHS StartLBA EndBLA Sectors size Id Type
/dev/mmcblk0p1 * 64,0,1 831,3,32 8192 106495 98304 48.0M c Win95 FAT32(LBA)
/dev/mmcblk0p2 832,0,1 1023,3,32 106496 360447 253952 124M 83 Linux
SD 卡对应盘符为 /dev/mmcblk0,包括 2 个分区,分别为
/dev/mmcblk0p1:引导分区
/dev/mmcblk0p2:根目录分区
这里我们需要将根目录分区 /dev/mmcblk0p2 进行扩容。
2.分区扩容
对根目录/dev/mmcblk0p2 进行扩容
1.执行 fdisk /dev/mmcblk0 命令进入到交互式命令行界面,按照以下步骤扩展分区,如下图所示。
2.输入 p,查看分区信息。
3.记录分区 /dev/mmcblk0p2 的起始扇区号,即 /dev/mmcblk0p2 分区信息中 Start 列的值,示例中为 106496。
4.输入 d,删除分区。
5.输入 2 或直接按 Enter,删除序号为 2 的分区,即 /dev/mmcblk0p2 分区。
6.输入 n,创建新的分区。
7.输入 p 或直接按 Enter,创建 Primary 类型的分区。
8.输入 2 或直接按 Enter,创建序号为 2 的分区,即 /dev/mmcblk0p2 分区。
9.输入新分区的起始扇区号,即第 1 步中记录的起始扇区号,示例中为 106496。
须知:请勿直接按"Enter"或使用默认参数,否则会擦损磁盘数据。
10.按 Enter,使用默认的最后一个扇区号作为新分区的终止扇区号。
11.输入 w,保存分区设置并退出交互式命令行界面。
增大未加载的文件系统大小
resize2fs /dev/mmcblk0p2
树莓派镜像特性介绍
1.树莓派硬件特性,参考树莓派使用——GPIO 介绍:https://gitee.com/openeuler/raspberrypi/blob/master/documents/树莓派使用.md#gpio
目前已使能串口设备,可以访问 mini-uart,其他硬件特性暂不支持。
2.支持百级嵌入式软件包,软件包功能列表后期会详细提供。
3.支持部署 RT 实时内核,具体信息见前期发布的文章《openEuler Embedded 软实时系统介绍》。
(文章转载自公众号:架构与思维)