☰
香橙派RK3588镜像烧写全攻略:从SD卡到eMMC,为YOLOv5s部署铺路
2026/10/1 1:33:05 网站建设 项目流程

1. 为什么教程要从烧镜像讲起,而不是从接电源开始

1.1 烧镜像到底在烧什么

很多刚拿到香橙派RK3588开发板的朋友,第一反应是插上电源、接上显示器,结果发现屏幕上什么都没有,然后就开始怀疑是不是板子坏了。其实不是坏了,而是这块板子出厂时默认的存储介质里可能根本没有系统,或者系统版本跟你想用的不一样。这个系列是围绕“RK3588 + YOLOv5s”展开的,而不管是后续的模型部署、NPU推理还是视频流处理,第一步都是让Linux系统稳定跑起来。所以整个教程的第一篇,必须落在镜像烧写这个最基础、也最容易被跳过但实际上坑最多的环节。

所谓烧写镜像,简单说就是把一个完整的操作系统文件,写入到SD卡、eMMC或者NVMe硬盘这类存储介质上。镜像本质上是一个“打包好的系统快照”,里面不只包含Linux内核和根文件系统,还顺带写好了这个平台特有的设备树、启动引导器(bootloader)、驱动固件等。这也是为什么不建议你用Windows下那种“格式化U盘再复制文件进去”的思路:Linux系统的启动过程依赖的是块设备上的特定分区布局和二进制引导代码,不是简单的文件复制。

1.2 RK3588这块芯片为什么值得折腾

选择香橙派RK3588,核心原因是这颗芯片在边缘计算场景里太合适了。它拥有8核64位CPU,采用4颗Cortex-A76大核加4颗Cortex-A55小核的组合,主频跑到2.4GHz左右,GPU是ARM Mali-G610,视频编解码支持8K。更重要的是它内置了算力约为6 TOPS的NPU,这个NPU对后续部署YOLOv5s、YOLOv8这类轻量级目标检测模型非常关键。

很多人也问过我,既然要跑YOLOv5s,为什么不用N150这类低功耗迷你主机?N150的CPU性能并不弱,日常跑Linux、做做文件服务完全没问题,但它缺少专用NPU。跑目标检测时只能用CPU或核显硬扛,功耗高不说,帧率也上不去。RK3588则可以把YOLOv5s的卷积计算映射到NPU上,CPU只做前后处理和调度,实测下来推理延迟明显更低,而且整板功耗可控。这就是这一系列教程选择香橙派RK3588的根本原因。

1.3 烧写方式和后续YOLOv5s部署的关系

镜像烧写看似只是“把系统装上去”,但不同的烧写方式会直接影响后续部署YOLOv5s时的体验。

  • 如果你把系统烧到SD卡上,那么SD卡的读写速度、卡的质量、卡槽接触是否稳定,都会影响后续模型文件加载、数据集读取的耗时。SD卡方案适合前期学习和验证,因为系统分区和数据都在一张卡上,搞坏了直接重刷就行。
  • 如果你把系统烧到板载eMMC或者NVMe硬盘上,那么读写性能会明显提升。尤其是模型权重文件动辄几十MB,输入视频帧进行实时推理时,存储吞吐量会成为不可忽视的瓶颈。

另外,后续在RK3588上用NPU跑YOLOv5s,需要安装RKNN-Toolkit工具链,并且需要系统自带正确的NPU驱动。部分官方镜像已经预置了NPU驱动,但如果镜像版本过老,或者你手动改了内核,NPU节点可能就找不到了。这些坑在系统跑起来之后才会暴露,而根源恰恰是镜像选择和烧写方式这一步。所以第一篇教程把这一步做扎实,后面会省掉大量排查时间。

2. 开工前的准备:该买的件、该下的软件、该弄明白的原理

2.1 硬件准备清单

烧写系统虽然听起来是个纯软件操作,但实际需要准备的硬件缺一不可。我建议在动手之前先花几分钟确认手里东西齐了,不然中间停下来到处找配件会非常扫兴。这也是我吃过亏之后养成的习惯。

  • 开发板本体:这里指香橙派5系列,或者说搭载RK3588/RK3588S的板子。注意看板上的存储配置,有的版本带板载eMMC,有的不带,这会影响后续是否需要SD卡。
  • 电源适配器:一定要用支持USB-C接口且输出规格足够的电源,建议5V/4A以上。我实测过,用普通的5V/2A手机充电头给RK3588供电,在系统启动阶段就可能触发电压跌落,导致反复重启。不要在这个时候省钱。
  • SD卡及读卡器:至少16GB起步,建议32GB以上,速度等级选A2或U3级别的卡。读卡器建议用USB 3.0接口的,烧写大镜像时速度差距还是很明显的。
  • Type-C数据线:用于连接开发板和电脑,进行eMMC烧写或串口调试。注意这条线必须支持数据传输,有些线只能充电。
  • USB转TTL串口模块:调试利器。我强烈建议备一个CH340或CP2102模块,接好TX、RX、地线之后,就能在电脑上直接看开发板的启动日志。很多“看起来像变砖”的问题,靠串口日志几秒钟就能定位。

2.2 软件和镜像文件准备

软件方面,不同操作系统选择的工具不同,但核心就两类:一类是通用的镜像写入工具,另一类是瑞芯微专用的烧录工具。

先说说通用镜像写入工具。跨平台表现最稳定的是balenaEtcher,界面很简单,三个步骤:选择镜像、选择SD卡、开始烧写。它在写入完成后还会自动校验一遍,能避免很多因为镜像不完整导致的启动失败。Windows下也经常有人用Win32DiskImager或者Rufus,但说实话在写入DD镜像(原始块设备镜像)这件事上,我用balenaEtcher更顺手,因为它在macOS、Linux、Windows三端表现一致。

瑞芯微专用工具则主要用于烧写eMMC、NVMe这类板载存储。Windows下是RKDevTool,Linux下是upgrade_tool。这两个工具不会去解析镜像里的文件,而是直接通过USB协议把统一固件包(也就是带bootloader、分区表、系统镜像的整体打包文件)写入板载存储,走的是Loader模式或MaskROM模式。这部分细节下一节说,先不展开。

镜像文件本身去香橙派官方主页找对应型号的镜像。通常官方会提供基于Ubuntu、Debian的桌面版和服务器版,名字里会标明“RK3588”和“Orange Pi 5”之类字样。只跑YOLOv5s且主要做模型部署测试的话,我建议选服务器版或者精简版桌面版,别选带完整桌面环境的镜像,后续可以省出几百MB内存。

2.3 需要理解的三个模式:正常启动、Loader模式和MaskROM

烧写RK3588时,如果不理解它启动和烧写模式的区别,很容易在操作卡住时一头雾水。我在这里把三个模式梳理清楚。

第一个是正常启动模式。开发板通电后,片上ROM(BootROM)会去查找启动介质里的引导程序,通常包括SD卡、eMMC、SPI Flash、NVMe等,按顺序尝试。如果系统存在且引导程序完整,就正常启动。

第二个是Loader模式。这个模式是瑞芯微芯片特有的。在正常启动过程中,如果你按住板子上的恢复键(Recovery键),再插入USB线连接电脑,芯片会进入Loader模式,此时电脑端RKDevTool会识别到一个设备。Loader模式下,你可以通过USB对整个存储进行读写操作。很多分区操作、固件升级都发生在这个模式。

第三个是MaskROM模式。这个模式就相当于芯片级的“终极后门”。当启动介质里的bootloader损坏或缺失,芯片引导失败后,会进入MaskROM模式。此时设备本身无法正常启动,但USB设备枚举依然可以工作,电脑端RKDevTool会识别到一个“MaskROM”设备。这种情况下,你仍然可以通过专用工具把正确的镜像重新写入eMMC,所以不用怕“变砖”,只要硬件没坏基本都能救回来。

提示:进入Load/MaskROM模式,是为了烧写板载存储。如果只是烧SD卡跑个系统,完全用不到这两个模式,直接拿读卡器写SD卡就行,这也是最稳的一条路。

3. 实操第一步:用SD卡把系统跑起来

3.1 镜像下载与校验

第一种烧写路径是走SD卡,也是最推荐新手先走的路径。先把系统烧到一张质量过硬的SD卡里,插上就能启动,后续熟悉了再迁移到eMMC或NVMe。

下载镜像时注意文件名要和板卡型号严格对应。我遇到过读者拿着香橙派5 Plus的镜像去烧香橙派5,结果设备树不匹配,系统起不来。下载完成后强烈建议做一次校验。官方页面一般会提供SHA256校验值,在Windows的PowerShell里是这样算的:

Get-FileHash .\OrangePi5_ubuntu_focal_desktop_xfce_linux_xxx.img.xz -Algorithm SHA256

Linux/macOS下则是:

sha256sum OrangePi5_ubuntu_focal_desktop_xfce_linux_xxx.img.xz

算出来的值跟官网给的一致再继续,否则重新下载。这一步最容易被省略,但恰恰是“烧写成功但启动失败”的高频原因之一。镜像文件往往是.xz格式的压缩包,balenaEtcher能直接读,不需要手动解压,这倒省了不少事。

3.2 用balenaEtcher完成烧写

接下来把SD卡插入读卡器,连到电脑上。打开balenaEtcher,不要急着点Flash,先确认你选中的目标盘就是那张SD卡。我见过有人烧写时选错盘,把电脑上的移动硬盘给清了,血泪教训。

操作顺序是这样的:

  1. 点击“Flash from file”,选择下载好的镜像压缩包。
  2. 点击“Select target”,选择SD卡对应的磁盘。容量大小和SD卡一致的选项通常就是对的,比如你的SD卡显示为32GB,那就盯住32GB那个选项。
  3. 点击“Flash”开始烧写。烧写过程中不要拔卡,不要关电脑,也不要切到其他程序去操作磁盘。
  4. 烧写完成后balenaEtcher会进行校验,显示绿色的提示后,再把SD卡安全弹出。

烧写耗时取决于电脑接口和SD卡速度。用USB 3.0读卡器,烧一个2GB左右的系统镜像,通常两三分钟就完事,要是用USB 2.0接口,可能得十几分钟,这点耐心要有。

3.3 首次上电:看灯、看串口、看显示器

烧写完成后,把SD卡插到开发板背面的卡槽里。注意插到位,听到轻响后再确认一下,有些卡槽比较紧,没插到位会造成接触不良。

接上显示器、键盘、鼠标,给开发板通电。第一次上电时,别急着看画面,先观察板子上的电源指示灯和活动指示灯。电源指示灯常亮说明供电正常,活动指示灯在系统启动过程中会闪烁。如果电源灯都不亮,先检查电源适配器,大概率是供电问题。

系统正常启动的情况下,显示器上会出现Linux桌面或控制台登录界面。如果显示器一直黑屏但有灯亮,优先怀疑HDMI线或接口问题。更严谨的做法是接上USB转TTL串口模块,通过串口看启动日志。串口连接时,模块的TX接板子的RX,模块的RX接板子的TX,然后共地,千万别接反。

在串口终端里设置波特率1500000(香橙派5调试串口常用波特率是1500000,这是RK3588平台比较特别的地方),然后上电,你会看到U-Boot和内核打印信息。看到一串串输出就说明系统在跑,问题只可能出在显示链路或者登录环节。

3.4 初始化系统设置与启用SSH

系统起来后,第一次登录需要先配置基础信息。官方Ubuntu镜像通常首次登录会让你创建用户名和密码,或者会写明默认账号,不同版本略有区别,登录后界面上会提示清楚。

进入系统后,我建议立刻做几件事:

  • 确认系统版本和内核版本。运行cat /etc/os-release查看发行版版本,运行uname -a查看内核信息,确认和你下载的镜像对得上。
  • 确认网络连接。插上网线后,运行ip addr show看是否拿到了IP地址。如果后续想用无线网络,在桌面环境里直接选择WiFi网络并输入密码即可。
  • 开启SSH服务。桌面版镜像可能默认不开启SSH,需要手动启动。运行下面命令:
sudo systemctl enable ssh sudo systemctl start ssh
  • 更新软件源。官方源有时候在国内环境下一言难尽,可以换成访问速度更快的镜像源。但注意,RK3588的Ubuntu系统用的是ARM64架构,换源时要确认源仓库支持arm64。

注意:首次上电可能遇到系统自动扩容分区的情况,这会花一点时间。如果感觉启动速度比预期慢,多等一会儿再操作,不要中途断电,否则文件系统可能受损。

4. 进阶实操:把系统烧进板载eMMC或NVMe

4.1 为什么要把系统从SD卡迁到eMMC

SD卡方案用着用着会让人忍不住想升级,原因很简单:性能瓶颈。SD卡的随机读写能力和uSD卡槽的电气稳定性,跟板载eMMC或者NVMe硬盘差了一个量级。后续你要跑YOLOv5s实时推理时,视频帧、模型权重都在频繁读写,用SD卡时偶尔会出现卡顿。eMMC虽然读写速度也无法和NVMe比,但稳定性强于SD卡,生命周期也长。如果追求极致性能,直接上NVMe硬盘。

这里不是非得一步到位,我的建议是:如果你只是跟这个系列教程走一遍流程,SD卡完全够用;如果确定要长期把这台板子当边缘计算节点,那尽早把系统迁到eMMC或NVMe。

4.2 使用RKDevTool烧写eMMC

在Windows下烧写eMMC,用瑞芯微官方工具RKDevTool。具体流程我一步步说。

先把开发板断电,用Type-C数据线连接开发板的Type-C口(注意这个口除了供电,还肩负烧录和OTG功能,不是所有Type-C口都可以),另一端插到电脑的USB口上。按住板上的恢复按键,然后给开发板上电,保持按住恢复键几秒钟再松开,此时RKDevTool会识别到设备。

打开RKDevTool,界面上应该显示“发现一个设备”之类的提示,模式是Loader。在“升级固件”页面点击“固件”按钮,选择官方提供的统一固件包,也就是.img格式的完整固件文件。然后点击“升级”按钮就开始烧写。整个烧写过程会在进度条上看到,写入完成后工具会提示成功。

烧写过程中,尽量不要碰其他USB设备。RK3588镜像动辄几个GB,写入eMMC时如果USB通信中断,可能导致写入不完整。我遇到过烧写一半时USB松了造成的半砖状态,最后靠MaskROM模式救回来的,所以线材和接口一定要稳固。

4.3 直接烧写和启动镜像的对比

有人会问,既然官方给了直接烧eMMC的统一固件包,为什么还要先通过SD卡启动,再把系统复制到eMMC?

其实这是两种不同的思路。统一固件包是瑞芯微封装的烧录格式,包含了完整的分区布局,烧写时一步到位,适合整个系统推倒重来。而SD卡启动后复制的方式更灵活,你可以用dd命令把SD卡整个系统块设备复制到eMMC,也可以只复制某个分区,甚至可以从一个自己定制好的SD卡系统迁移到eMMC。

我认为前期学习阶段,用SD卡启动更安全,因为你随时可以拔掉SD卡回到原始状态。等到你已经对系统做过定制,需要通过烧录工具打补丁,或者想换一种更纯净的镜像版本时,再直接用RKDevTool烧eMMC,这样体验会更顺滑。

如果你决定直接从SD卡系统迁移到eMMC,推荐用dd复制方案。先在SD卡系统上卸载eMMC相关的挂载点,然后用类似下面的命令把SD卡根分区复制过去:

sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M status=progress

这个命令会把SD卡整盘内容复制到eMMC。复制完成后,关机断电,拔掉SD卡,再从eMMC启动。这样做的前提是目标eMMC容量不小于SD卡容量,否则放不下。

4.4 系统迁移后的调整与NVMe注意点

从SD卡迁到eMMC或NVMe后,系统本身不会自动感知启动介质的改变,有可能会存在一些遗留问题。最常见的是系统无法找到根分区。这在U-Boot阶段表现为卡在启动界面,或者反复进入恢复模式。

解决思路是检查/boot目录下的资源引导配置文件,确认根分区的参数(UUID或设备节点)是否指向新的启动介质。SD卡通常是/dev/mmcblk0,eMMC可能是/dev/mmcblk1,NVMe则是/dev/nvme0n1p1。直接改启动参数里的root路径是最快的办法。

如果你是先烧SD卡、再在系统里用dd复制到eMMC,那迁移完成后还要检查一下启动引导程序是否写到了eMMC的对应位置。如果U-Boot没有成功写到eMMC,即使根文件系统复制对了也启动不了。这一步需要额外留意,但好消息是,只要硬件没坏,MaskROM模式永远可以兜底。

另外,如果要用NVMe硬盘启动,得确保U-Boot能识别NVMe设备。部分官方镜像的U-Boot默认已经支持NVMe,但我在某些镜像版本上遇到过U-Boot在NVMe初始化时卡住的情况,这时候需要更新U-Boot补丁。这类问题通常属于启动引导层面的适配,遇到时再单独处理。

5. 烧写与启动的坑,我已经替你踩过

5.1 我遇到过的三类典型失败

在折腾香橙派RK3588镜像烧写的过程中,我前前后后遇到过三类比较典型的问题。

第一类:烧写成功但启动失败。具体表现是SD卡插上后板子没反应,或者串口只能看到一段乱码。排查时先用串口看日志,如果连U-Boot都没跑起来,多半是引导部分写入不完整,或者镜像本身是坏的。重新下载镜像,重新烧写,然后校验,多半能解决。

第二类:系统启动后频繁死机重启。这种情况经常是电源问题,RK3588在负载上来之后功耗会突然拉高,电源跟不上就直接重启。我建议直接换一个正规品牌的5V/4A电源,别用杂牌快充头。还有可能是SD卡速率问题,劣质SD卡在系统高负载时数据读取出错,引发内核panic,这种问题换一张好卡就好。

第三类:eMMC烧写过程中断。原因很可能是USB线不好或者数据线插不稳。关键是一定要用真正支持高速数据传输的USB线,而不是那种只能充电的“数据线”。换个口、换个线试试,很可能就通过了。

5.2 启动黑屏、无输出的排查

启动黑屏是高频问题,往往也是最让人慌的。这里我给出一个排查顺序,可以帮你快速定位:

  • 先看电源灯。灯不亮就是供电问题,换电源换线都试一遍。
  • 再看活动灯和串口日志。有灯闪且串口有输出,说明系统在启动,问题在显示链路。换个HDMI线、换一个显示器接口试试,或者直接用串口登录系统,然后看显示服务的状态。
  • 如果串口完全无输出,需要确认串口模块连接对不对。很多新手把TX/RX接反了,一脸懵地认为板子没跑。交换TX/RX再试一次,成本很低,但经常解决问题。
  • 如果串口输出乱码,检查终端波特率配置。RK3588调试串口波特率一般不是115200,要设为1500000。除了这个值,其他波特率看到的都是乱码。
  • 确认设备树是否匹配。烧错镜像导致设备树不匹配的情况,串口日志里往往能看到相关报错,把行号记录下来,再去对照镜像版本和板卡型号。

5.3 关于打补丁、升级NPU驱动的后续方向

系统起来之后,很多人接下来会折腾两件事:一是升级NPU驱动,二是通过烧录工具打补丁。

NPU驱动这部分,RK3588的内核驱动节点是/dev/rknpu。如果后续在跑YOLOv5s时发现模型转换之后无法加载到NPU,先检查这个节点是否存在。不存在就先别急着排查模型问题,大概率是驱动没装载。

通过烧录工具打补丁则是另外一个方向。偶尔会遇到某次更新系统后WiFi模块不工作,或者U-Boot需要修复兼容性问题,这时候不是整板烧写,而是单独更新某一个分区。使用RKDevTool的“分区表”或者“单独升级”功能,可以只写入boot、uboot或者resource分区。这个操作比整芯片烧写更精细,也更需要小心,因为一旦分区内容不匹配,启动阶段就会出问题。建议每次操作前先备份当前分区内容,再动手。

经验之谈:在折腾RK3588这类板子时,养成一个好习惯——每次重大操作前,对当前系统做一个备份。备份需求简单的话,直接整卡dd出来保存为一个.img文件,后续出问题随时还原,能省下大量排查时间。

6. 下一步:系统起来之后做什么

镜像烧写只是第一步,等系统能稳定跑起来之后,接下来就要开始搭建环境了。按照这个系列的方向,用RK3588跑YOLOv5s一般有几个步骤:安装Python环境、下载RKNN-Toolkit工具链、把PyTorch模型转成RKNN格式、加载到NPU上做推理测试。

如果不是专门跑目标检测,这块板子还有别的玩法。官方镜像里已经有比较完整的GPU驱动,可以做桌面级轻量应用;NPU除了YOLOv5s之外也能跑YOLOv8、人脸识别、OCR这类常见模型;视频方面支持8K解码,配合FFmpeg推流可以做视频处理节点;MIPI摄像头接口、MIPI屏幕适配也都有不少可折腾的空间。

我个人在实际操作中的体会是,别急着一次把所有东西都配齐。先把基础系统跑一周,日常使用中遇到的问题会告诉你哪个环节最需要优化,比如存储不够了、网络不稳定了、NPU驱动版本不匹配了。这个过程虽然比“照着教程一把梭到底”慢,但能让你真正建立起对这套平台的感觉。后续的每篇教程,我会沿着这个方向一步步往下带,先把地基夯实,后面不管是模型转换还是性能调优,都会顺畅很多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询