openEuler Embedded 对树莓派 4B 的支持

2022/05/27 17:37
阅读数 212

本文主要介绍 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 软实时系统介绍》。

关注我们

Embedded 已经在 openEuler 社区开源。将开展一系列主题分享,如果您对 Embedded 的构建,应用感兴趣,欢迎围观和加入。

项目地址:https://gitee.com/openeuler/yocto-meta-openeuler

欢迎大家多多 star、fork,多多参与社区开发,多多贡献。

进入交流群

如果您对嵌入式应用感兴趣,欢迎加入 openEuler Embedded&Yocto SIG 技术交流群,讨论 Embedded 和 Yocto 等相关技术。请扫描下方二维码加入群聊。






本文分享自微信公众号 - openEuler(openEulercommunity)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击加入讨论🔥(1) 发布并加入讨论🔥
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部