OpenEuler 在树莓派上的嵌入式实践

举报
pluto1447 发表于 2025/12/21 01:00:31 2025/12/21
【摘要】 本实验在树莓派ARM架构上部署了openEuler,深度验证了其在嵌入式环境下的卓越性能。数据表明系统空载内存仅约92MB,极致轻量;CPU压测展现了极高的调度稳定性与多核均衡能力。通过iSula容器实践实现0.28秒极速启动,体现了边缘侧的高效响应。实验不仅打通了跨架构部署流程,更证明了openEuler在资源受限的物联网场景中具有稳定、低开销、高响应的核心竞争力。

OpenEuler 在树莓派上的嵌入式实践

一、 实验目的

  1. 跨架构体验:打破 x86 架构的思维定势,在真实的 ARM64 硬件(树莓派)上部署国产操作系统,理解交叉编译与异构计算的概念。
  2. 掌握硬件交互:跳过高级库函数,通过 Linux 内核的 sysfs 文件系统接口直接控制 GPIO(通用输入输出),深入理解“Linux 下一切皆文件”的设计哲学。
  3. 体验边缘容器:在资源受限的嵌入式设备上使用 iSula 部署应用,验证 openEuler 在边缘侧的轻量化优势。

二、 实验环境与器材

  1. 硬件

    • 主板:Raspberry Pi 3B 或 Raspberry Pi 4B。

    • 存储:32GB 及以上 MicroSD 卡 + 读卡器。
    • 外设:LED 灯珠 1 个、杜邦线若干(可选,若无硬件可控制板载 LED)。
    • 网络:网线或 Wi-Fi 环境。
  2. 软件

    • 镜像openEuler-22.03-LTS-SP3-raspi-aarch64.img (官方树莓派专用镜像)。
    • 工具:Etcher (烧录工具),Putty/SSH 客户端。

三、 实验内容与步骤

1.在树莓派上安装openEuler

1.1.获取安装源

  • 登录树莓派官方镜像网站。

  • 在列表内选择需要的版本,进入该版本的下载列表,本实验以“openEuler 24.03 LTS”为例

  • 单击“raspi_img”,进入树莓派镜像的下载列表。

  • 单击“openEuler-24.03-LTS-raspi-aarch64.img.xz”,将 openEuler 发布的树莓派镜像下载到本地。

  • 单击“openEuler-24.03-LTS-raspi-aarch64.img.xz.sha256sum”,将 openEuler 发布的树莓派镜像的校验文件下载到本地。

1.2.镜像完整性校验

为了防止软件包在传输过程中由于网络原因或者存储设备原因出现下载不完整的问题,在获取到软件包后,需要对软件包的完整性进行校验,通过了校验的软件包才能部署。

这里通过对比校验文件中记录的校验值和手动方式计算的文件校验值,判断软件包是否完整。若两个值相同,说明下载的文件完整,否则,下载的文件完整性被破坏,请重新获取软件包。

  • 获取校验文件中的校验值。执行命令如下:
cat openEuler-24.03-LTS-raspi-aarch64.img.xz.sha256sum
  • 计算文件的 sha256 校验值。执行命令如下:
sha256sum openEuler-24.03-LTS-raspi-aarch64.img.xz
  • 对比步骤 1 和步骤 2 计算的校验值是否一致
    如果校验值一致说明下载的文件完整性没有被破坏,如果校验值不一致则可以确认文件完整性已被破坏,需要重新获取。

1.3.Windows下刷写镜像
本实验以 Windows 11 为例,介绍如何在 Windows 环境下将镜像刷写到 SD 卡。

  • 格式化SD卡
    下载并安装格式化 SD 卡工具(自行搜索),以下操作以 SD Card Formatter(推荐) 格式化工具为例

  • 烧录SD卡
    选择树莓派的型号(这里以Raspberry Pi3为例)

选择自定义镜像,选择openeuler镜像

进行烧录

2.登录树莓派

登录树莓派有以下两种方式:

本地登录

树莓派连接显示器(树莓派视频输出接口为 Micro HDMI)、键盘、鼠标后,启动树莓派,可以看到树莓派启动日志输出到显示器上。待树莓派启动成功,输入用户名(默认为root)和密码(默认为openeuler)登录。如图为树莓派的接口详细

ssh 远程登录

树莓派默认采用 DHCP 的方式自动获取 IP。如果树莓派连接已知路由器,可登录路由器查看,新增的 IP 即为树莓派 IP。例如,树莓派对应 IP 为:192.168.31.109,使用命令 ssh 后输入密码 openeuler,即可远程登录树莓派。

3.配置

网络配置
查看可连接的wifi

nmcli dev wifi

在root权限下执行:

nmcli dev wifi connect SSID(WIFI名)password PWD(密码)

查询ip地址

ip addr

即可使用远程连接软件远程连接树莓派,如图:

后续openeuler操作系统的桌面、IDE配置方法等可以参考实验一


2.ARM性能验证

树莓派作为广泛应用的单板计算机,其核心硬件基础是 ARM 架构(Advanced RISC Machines)—— 一种基于精简指令集(RISC)设计的处理器架构,与 PC 端的 x86 架构(复杂指令集 CISC)有所不同。

2.1.冷启动内存占用分析

在物联网与边缘计算场景中,硬件成本极其敏感。树莓派等设备通常只有 1GB-4GB 内存。操作系统本身占用的资源越少,留给 AI 算法和业务容器的空间就越大,通过本实验,我们将探究openeuler在树莓派这种嵌入式设备中的内存占用情况。

输入指令:

free -h

从图中可以看到,openEuler的系统内存占用仅有92MB,远远小于Ubuntu\Raspberry PI Os这些竞品操作系统,这意味着操作系统内核 + 基础服务(Systemd, SSH, NetworkManager 等)加在一起,连 100MB 都不到。

为了体现 openEuler 的轻量级特性,我们进行横向对比:

操作系统 典型空载内存占用 1GB 内存设备剩余可用 评价
Windows IoT / Desktop 1.5GB - 2GB+ 无法运行 资源占用大,不适合边缘
Ubuntu Server (ARM64) 250MB - 400MB ~600MB 中规中矩,略显臃肿
Raspberry Pi OS (Lite) 120MB - 150MB ~750MB 官方优化,表现优秀
OpenEuler (本实验) 92MB ~814MB 极致轻量,行业领先

借此可以看出,openeuler在嵌入式设备的内存开销方面,具有得天独厚的优势,更加轻量化,有利于AI、边缘计算等场景下的工作

2.2. CPU调度测试

安装sysbench并进行简单的四核压测

sudo dnf install sysbench
# 让 4 个核一起算素数,持续 10 秒
sysbench cpu --threads=4 --time=10 run

实验结果如图:

从图中可以看出,openEuler系统在ARM架构的树莓派上有以下优点:
极致的调度稳定性:
从结果可见,任务的平均延迟(avg)为 1.70ms,而 95% 的长尾延迟(95th percentile)同样稳定在 1.70ms。这说明 openEuler 在高负载下依然保持了极低的系统抖动,能够为边缘实时业务提供可预测的响应速度。
完美的多核负载均衡:
在 Threads fairness 指标中,执行时间的标准差(stddev)为 0.00。这证明 openEuler 的内核调度器能够精准地将计算任务分配给 ARM 处理器的每一个核心,实现了算力的最大化利用。

3.边缘轻量级容器部署

通过本实验,我们将了解到,在树莓派这种轻量级嵌入式设备上,使用openeuler独有的iSula将有很大的优势

安装iSula

#安装iSula
sudo dnf install -y iSulad

拉取镜像

sudo systemctl start isulad
sudo isula pull busybox #busybox是一个有名的Linux指令集

启动一个容器并打印时间

time isula run --rm busybox echo "Hello OpenEuler"  

从图中可以看出,启动一个iSula容器仅需0.281秒,sys 时间仅为 0.046s,证明 openEuler 内核在 Namespace 隔离和 Cgroups 资源分配上的调度开销极低。这种极低的启动延迟,对于边缘计算场景下的 Serverless(无服务器) 应用至关重要,意味着系统可以在突发流量到来时瞬间拉起服务,即开即用。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。