我这次不是在折腾一台新笔记本,而是在折腾一块OrangePi 5 Plus。说实话,拿到板子的当天晚上,我几乎是信心满满地把镜像烧进TF卡,插电,然后盯着HDMI屏幕看了十分钟“无信号”。那会儿我在想:这板子是不是坏的?结果排查了一圈才发现,问题根本不在板子上,而是我在镜像选型、TF卡处理和烧录方式上埋了好几个雷。这篇文章就把我从零开始烧录OrangePi 5 Plus的完整过程写下来,涵盖TF卡格式化、镜像烧录、首次启动判断和常见问题定位,希望能让你一次点亮,少走我趟过的那堆泥路。
先交代一句适用范围:下面写的所有操作,不只对OrangePi 5 Plus有效,绝大多数基于RK3588系列或同类ARM开发板的镜像烧录,思路都是相通的。只是OrangePi 5 Plus对TF卡质量、电源电流和镜像版本更敏感一些,踩坑概率更高,值得单独拿出来讲。
1. 给OrangePi 5 Plus选镜像:官方版、Armbian还是Android,别一上来就烧
1.1 板子的硬件底子决定了镜像不能乱挑
OrangePi 5 Plus用的是瑞芯微RK3588,8核架构,4个Cortex-A76大核加4个Cortex-A55小核,GPU是Mali-G610。这块板子的性能放在开发板里算是第一梯队,能跑8K视频解码,带双HDMI输出,还有PCIe接口可以插NVMe SSD。但对烧录来说,硬件强大带来的直接后果是:它的引导流程比那些用全志H3、H616的老板子更复杂,对引导加载器的完整性要求更高。
你随便找一个树莓派的镜像就往里写,那肯定是不行的。它的TF卡启动走的是一套基于U-Boot和Rockchip专有引导协议的流程,镜像里必须包含正确的idbloader、u-boot.itb、trust这些引导组件,而且这些组件和内核、内核模块之间是有版本配套关系的。我见过有人拿Armbian的通用镜像写到OrangePi 5 Plus上,结果卡在U-Boot阶段,屏幕连个Logo都不出,其实就是引导组件不匹配。
1.2 官方Ubuntu/Debian、Armbian、Android,怎么选择
目前OrangePi 5 Plus能跑的镜像大概分三类:
第一类是官方发布的Ubuntu和Debian桌面版。这类镜像的优势是出厂调校到位,GPU驱动、硬件编解码、WiFi/BT固件都预装好了,装完就能用。适合大多数人,尤其是刚接触开发板的用户。缺点是版本更新节奏偏慢,软件源里的内核版本往往不是最新的,如果碰到硬件兼容性问题,修复速度比较依赖官方。
第二类是Armbian。Armbian是社区维护的通用ARM Linux发行版,对OrangePi 5 Plus有专门的构建版本。它的特点是内核新、优化激进、配置文件清晰,适合喜欢自己折腾的玩家。但安装之前记得确认你下载的是orange pi 5 plus专用版本,不要拿rk3588的通用版糊弄,否则板载的WiFi、蓝牙、音频这些外设很可能起不来。
第三类是Android 12/13镜像。这类镜像主要用于电视盒子场景或者需要Android应用生态的情况。烧录方法和Linux镜像一样,也是整卡镜像直接写入,但要注意Android首次启动的时间比Linux长很多,有些人等了两分钟以为卡死了,其实它还在初始化。
还有一个要注意的点是:别下载那种打包成一堆分卷压缩包的镜像,除非你确认它来自官方渠道。这类分卷在解压时只要有一个包损坏,烧录出来的系统就会表现得非常诡异,比如能进U-Boot但内核加载到一半就崩。
1.3 镜像文件格式与下载后的完整性校验
官方镜像压缩包常见格式是.xz或.zip,解压后得到一个.img文件。这里我强烈建议做一步哈希校验。下载页面通常会提供对应的SHA256值,Windows下用PowerShell执行:
Get-FileHash .\OrangePi5Plus_xxx.img.xz -Algorithm SHA256Linux下直接:
sha256sum OrangePi5Plus_xxx.img.xz得到的哈希值和官方页面比对,一致再解压。这一步看起来多余,但在实际中能帮你筛掉至少一半的“烧录成功但无法启动”问题。很多所谓烧录失败,根源其实是下载的镜像就不完整,Windows下的下载工具断点续传经常导致文件头尾缺失。
解压之后的.img文件大小会比压缩包大很多,这是正常的,说明你没有解压错。比如一个4GB的Linux桌面镜像,解压后通常有8GB到14GB,取决于rootfs的大小。判断是否解压正确,可以看文件扩展名是否为.img,并且用磁盘占用工具确认一下它占用的空间比压缩包大得多。
2. TF卡处理环节:为什么说右键格式化和分区残留是启动失败的第一大来源
2.1 先选一张靠谱的TF卡,这比工具重要十倍
OrangePi 5 Plus对TF卡的要求是:容量至少16GB,建议32GB或64GB;速度等级至少Class 10,最好是UHS-I、A1或A2规格。A2卡随机读写更高,Linux系统跑起来明显更顺,尤其是桌面环境下打开应用的响应速度差别很大。
我踩过最狠的坑是用了一张读卡器里淘汰下来的杂牌卡,标称64GB,实际写入速度不到10MB/s。烧录过程倒是完成了,但系统启动时反复卡在“正在加载内核”这一步。换了一张闪迪A2卡之后,一次启动成功。后来我用工具查了那张杂牌卡,发现它存在大量的坏块,U-Boot阶段读取引导文件时会直接卡死。
还有一个容易忽略的点:很多TF卡出厂时带有隐藏的保留分区或者对齐偏移,烧录工具写入时如果没完全清除分区表,会把镜像写到偏移位置,导致U-Boot找不到正确的引导扇区。所以格式化不是“右键-格式化”这么简单,你需要先彻底清掉TF卡上的所有分区结构。
2.2 Windows下用SD Card Formatter正规清理TF卡
在Windows上,我推荐使用SD协会官方的SD Memory Card Formatter,而不是Windows自带的格式化工具。原因在于自带工具不会清除MBR分区表之外的其他引导扇区数据,更不会重建完整的卡结构。而SD Card Formatter会执行一次全卡级的低层格式化,把分区表、引导扇区、保留区域全部重置,相当于给卡做了一次出厂恢复。
操作步骤:
- 把TF卡通过读卡器接入电脑,确认系统识别。
- 打开SD Memory Card Formatter,在“Select Card”里选到你的卡。
- “Format type”选择“OVERWRITE”(全写覆盖),如果时间紧张可以选“QUICK”,但第一次跑建议用OVERWRITE。
- 点“Format”,等待完成。
格式化完成后,Windows资源管理器里看到的卡应该是一个空盘,文件系统可能是FAT32或exFAT,这都无所谓,因为后续镜像烧录会直接覆盖整个设备。
2.3 Linux/macOS下用fdisk或gparted清空分区表
Linux下最简单粗暴的方式是用fdisk把整块设备的分区表删掉:
sudo fdisk /dev/sdX进入fdisk交互界面后:
- 输入
p查看当前分区表 - 输入
d逐一删除分区,直到显示“No partition” - 输入
w写入退出
如果你的卡之前烧过Android镜像,分区表可能包含多个分区,删除的时候要反复按d,每次删一个。删完再确认一下:
sudo fdisk -l /dev/sdX输出里应该不再出现任何分区节点(如/dev/sdX1、/dev/sdX2),只剩下裸设备本身。
macOS用户可以直接用磁盘工具,选择“显示所有设备”,找到TF卡对应的磁盘,点“抹掉”,格式选“Mac OS 扩展(日志式)”或者“MS-DOS (FAT)”,然后执行。关键是选择“设备”而非“宗卷”,否则只清文件系统,分区表依然残留。
2.4 旧启动盘残留导致的“系统启动信息”问题
这里想专门提一个Windows下我最近遇到过的诡异现象。你手头可能有些TF卡或者U盘是以前做过启动盘的,里面带有一个几百MB的EFI系统分区或者Windows恢复分区。当你把它插到Windows电脑上,打开BitLocker或者磁盘管理工具时,系统会提示“该驱动器包含系统启动信息,因此无法对其进行加密,请创建一个单独的分区”之类的话。这不代表卡是坏的,而是Windows识别到了卡上残留的启动结构,出于保护机制拒绝执行某些磁盘操作。
处理这种卡,不要直接在资源管理器里右键格式化,而是要回到2.2节的SD Card Formatter或者2.3节的fdisk,把整个设备的所有分区全部清掉。清完之后,Windows再也不会把它当成启动设备,后续烧录也就不会出现各种莫名其妙的“写保护”或“访问被拒绝”提示。
3. 镜像烧录实测:Etcher、Win32DiskImager、dd三路操作实录
3.1 balenaEtcher最省心,但必须注意的默认覆盖行为
如果你是在Windows或macOS上操作,我最推荐用balenaEtcher。它跨平台,界面极简,操作逻辑是“选镜像-选目标磁盘-烧录”,三步到位。下载地址直接搜balenaEtcher官网即可,选对应系统版本的安装包。
但有一个关键注意点:Etcher默认会自动选择设备,你插了几个U盘、读卡器时,它可能选错目标。烧录前务必核对目标容量是不是你的TF卡容量。比如你有一张32GB的TF卡和一个1TB移动硬盘,Etcher如果自动选中了移动硬盘,你点下Flash的瞬间,硬盘上的数据就全没了。所以我的习惯是:先拔掉所有其他USB存储设备,只留TF卡和读卡器,再打开Etcher。
Etcher烧录过程中会显示进度条、速度和校验状态。它默认会做一次写入后的校验,这个校验很关键,不要跳过。有些Etcher版本有一个“Flash”时关闭校验的选项,千万别关。校验能发现写入偏移、卡坏块等问题,宁可多等几分钟,也别拿一张校验失败的卡去冒险开机。
3.2 Win32DiskImager在老机器上的表现和坑
有些老电脑,尤其是不带USB 3.0接口的老笔记本,跑Etcher时可能出现识别不到读卡器或者烧录中途卡死的情况。这时候我一直留着一个备用方案:Win32DiskImager。
Win32DiskImager使用前也要注意几点:
- 右键“以管理员身份运行”。
- 镜像路径不要选在中文目录下,有些情况下中文路径会导致读写异常(概率不高,但我真踩过)。
- 设备选择框会列出所有可移动磁盘,同样要确认盘符和容量。
- 点击“写入”前,它会提示“这将覆盖整个设备”,确认无误后再继续。
烧录速度上,Win32DiskImager比Etcher慢一些,尤其对超大镜像不太友好。但它有个好处:写入过程中的错误提示更直观,比如“Invalid argument”或者“Read-only file system”,能直接告诉你卡出了问题或者被写保护了。
3.3 Linux下用dd烧录及高阶参数
在Linux下,很多老玩家根本不用图形工具,直接一条dd搞定:
sudo dd if=orangepi5plus.img of=/dev/sdX bs=4M status=progress conv=fsync逐参数解释一下:
if:输入文件,也就是解压后的镜像。of:输出设备,注意是/dev/sdX而不是/dev/sdX1,千万别写带分区的节点。bs=4M:块大小设为4MB,比默认的512字节快很多。status=progress:实时显示写入进度。conv=fsync:强制把数据物理写入设备后才返回,避免缓存造成“烧录完成”假象。
dd烧录完成后,系统不会打印任何“成功”提示,回到shell提示符就是成功。此时先别急着拔卡,执行一下sync命令:
sync然后可以再看一眼写入的扇区数,确认与镜像大小吻合。比如镜像文件是8GB,那sudo fdisk -l /dev/sdX输出里的总扇区数应该略大于镜像实际大小,因为设备扇区对齐会有少量偏移。
这里有个细节:dd是逐字节写入,镜像里的分区表和引导程序会原样落在TF卡上。它的可靠性完全取决于设备和镜像。如果写入过程中终端报错“No space left on device”,说明你的TF卡实际容量小于镜像大小,多半是扩容卡或者分区表残留导致的假容量。
3.4 烧录完成后Windows提示“需要格式化”要不要点
这一步几乎每个人都会遇到。烧录完Linux或Android镜像后,Windows资源管理器识别不出TF卡上的文件系统,就会弹窗提示“使用此驱动器中的光盘之前需要将其格式化”。
记住:千万不要点格式化。你只要点下去,整个镜像就会毁掉,引导分区没了,系统自然启动不起来。正确做法是直接忽略或者关闭弹窗,把TF卡安全弹出后插到OrangePi 5 Plus上。
如果电脑上没什么重要资料,也可以在Windows下用diskpart看一下当前设备的实际分区结构:
diskpart list disk select disk X list partition你会发现镜像烧录后,TF卡上出现了好几个分区,包括一个FAT格式的启动分区、一个ext4格式的根文件系统分区等。Windows只认识FAT,所以显示为可读的启动分区;ext4分区则显示为“RAW”,这完全正常。
4. 第一次启动:指示灯、串口日志、HDMI显示三层判断法
4.1 先看电源,再看一切
OrangePi 5 Plus的电源适配器要求是12V/3A,也就是36W以上,PD协议支持与否要看官方规格,但我实际操作中建议你用12V/3A以上的直流电源,别用电脑USB口供电。板子带两个HDMI、多个USB3.0、2.5G网口,满载功耗不低,供电不足会导致最隐蔽的故障现象:系统能启动,但一到高负载就重启或者死机。
我第一晚遇到的“HDMI无信号”,换了一个12V/3A电源后直接解决。后来才知道之前接的那个杂牌电源,标称12V/2A,实际输出只有11.2V,低负载时能用,CPU频率一拉高,电压跌落直接触发硬件保护重启。所以如果你发现启动过程中反复重启,先检查电源适配器和DC线缆,不要一上来就怀疑镜像。
4.2 指示灯状态怎么看
正常情况下,接好电源后板载LED的状态可以作为初步判断依据。OrangePi 5 Plus板上的指示灯一般在通电后会亮,系统启动过程中可能表现为常亮或闪烁,进入系统后由GPIO控制。如果在TF卡烧录正确、电源正常的前提下,LED完全不亮,那可能是电源接反或者板子本身的问题;如果LED亮了但HDMI一直没画面,大概率是镜像/系统加载阶段出了问题。
不过说实话,指示灯只是一个非常粗的参考,不同固件版本对LED的控制逻辑不一样,有的系统里LED默认关闭,有的进入系统后呼吸闪烁。最靠谱的还是串口日志。
4.3 HDMI无信号时的系统化排查顺序
HDMI无信号是烧录后最常见的“翻车点”,但绝大多数情况都不是硬件故障。按下面顺序排查,能解决九成问题:
- 确认HDMI线插在板子的HDMI-A口(靠近USB口那个),不要插错到HDMI-IN这类采集口上。
- 确认显示器或电视支持当前分辨率。有些老显示器对RK3588默认输出的4K分辨率支持不好,表现为黑屏或闪屏。可以先用1080P分辨率的显示器试。
- 换一根HDMI线。别笑,我至少见过三起“无信号”最终是HDMI线接触不良或线材质量差导致的。
- 如果用的是HDMI转VGA转换器,基本可以放弃,这类转换器对RK3588的兼容性非常差。
- 都排除完之后,如果你有串口模块,再看串口日志定位。
4.4 用串口日志定位启动卡在哪一步
串口是ARM开发板调戏烧录和启动问题的最佳工具。OrangePi 5 Plus板上有调试串口引脚,一般印有UART或DEBUG字样,使用3.3V TTL电平的USB转串口模块连接,注意GND、TX、RX对应关系:模块的TX接板子的RX,模块的RX接板子的TX,GND接GND。
终端软件用minicom或PuTTY,波特率一般设置为1500000(1.5Mbps)或115200。RK3588平台的U-Boot默认波特率经常是1500000,这和很多老开发板用的115200不同,连接后如果看到满屏乱码,就把波特率切换一下。
串口启动日志里重点关注两部分:
- U-Boot阶段是否正常打印板卡信息并加载内核。
- 内核启动阶段最后报错或卡住的位置,比如“Waiting for root device”“Kernel panic - not syncing”等关键词。
看到“Kernel panic - not syncing: VFS: Unable to mount root fs”这类字样,说明内核已经加载,但根文件系统挂载不上,典型的镜像写入不完整或TF卡文件系统损坏问题,重新格式化再烧录基本能解决。
5. 启动故障排查链路:从TF卡到固件到电源的三段式定位
5.1 卡插入失败或系统完全不认卡的排查
如果板子通电后指示灯亮,但串口完全无输出,HDMI无任何画面,重点怀疑TF卡本身和卡槽接触。先看卡是否正确卡到位,可以用指甲轻按TF卡,确认它弹入卡槽并锁住。OrangePi 5 Plus的TF卡槽在板子背面,插的时候需要注意方向,卡的金手指朝下且缺口朝外。
排除接触问题后,把TF卡重新插到电脑上,用fdisk -l或者Etcher查看设备是否被正常识别。如果电脑识别正常,但板子不认,可能原因包括:
- TF卡是扩容卡,实际容量小于标称值。可以用H2testw(Windows)或f3(Linux)检测。
- TF卡的文件系统之前是exFAT,烧录时没完全清除分区表,U-Boot读到错误的起始扇区。
- 卡槽供电不稳,尤其是一些使用廉价读卡器转接出来的“大卡套小卡”组合,接触点多,启动时容易掉线。
如果你的板子买回来很新,还可以检查一下TF卡槽是否有异物或虚焊。我见过一个案例是卡槽本身引脚氧化,导致刚开始能启动几次,后来彻底没反应。这种只能换卡槽或者走NVMe启动路线。
5.2 启动中断或无限重启的原因定位
无限重启是一个高频故障,且表现非常迷惑人心。你可能看到HDMI亮了一下,几秒后黑屏,然后又开始下一轮亮屏,周而复始。
这种问题优先排查三个点:
第一,电源。如前面所述,12V/3A是底线,如果你的电源额定电流刚好在3A附近,板子满载时会有瞬时跌落风险,建议换更大额定电流的电源。
第二,镜像版本。RK3588平台的早期固件存在一些已知问题,比如某些版本的内存初始化参数在某些颗粒上不稳定,导致启动过程中U-Boot随机卡死。去官方论坛或Armbian仓库看看最新版本的变动日志,升级镜像往往能解决这类“玄学重启”。
第三,TF卡的坏块。如果用dd烧录时报过错,或者Etcher校验失败,那卡多半已经存在坏块。U-Boot阶段读取引导程序时如果命中坏块区域,系统就会随机重启。这种情况下只能换卡。
5.3 进入系统后随机崩溃排查
如果你的板子能亮屏进入桌面,但跑一跑就死机、重启或者某些外设不认,排查方向就要从“烧录”转向“系统运行环境”。
先看散热。RK3588是8核处理器,满载发热非常可观。如果只用一块散热片但没有风扇,长时间高负载运行很容易触发过热降频甚至关机。我测试8K视频解码时,散热片温度轻松超过70度,加了小风扇之后才稳定在45度左右。
再看系统日志。SSH登录板子后,执行:
dmesg | tail -50 journalctl -xe如果日志里有大量USB disconnect、I/O error,大概率是外设供电不足;如果是thermal throttling字样,就是过热导致。
还有一类问题是软件层面的。比如Debian镜像默认没有安装硬件加速驱动,桌面环境跑起来卡顿,表现为鼠标迟滞、窗口拖拽掉帧,这并不代表板子坏了。解决方法是安装官方推荐的GPU驱动包或换用Armbian镜像。
5.4 一个问题隐藏的坑:TF卡启动和NVMe启动的引导顺序
OrangePi 5 Plus支持从NVMe SSD启动,这是它比很多开发板强的地方。但在默认出厂配置下,板子的引导优先级可能是NVMe优先于TF卡,也可能是TF卡优先,这取决于SPI Flash里的固件配置。
如果你之前往NVMe SSD里写过系统,现在又用TF卡想启动另一个系统,插着SSD时TF卡系统可能不会被引导。解决办法是把SSD拔掉,或者进入U-Boot命令行修改启动顺序。如果你第一次用TF卡启动,建议先把所有M.2 SSD拔掉,只留TF卡,等确认TF卡系统没问题后再插回SSD。
这块不展开太多,但想提示一点:很多人折腾半天TF卡启动失败,其实是SSD里残留的引导程序在“抢启动权”。排查时可以先拔掉所有非TF卡存储设备,让U-Boot只能从TF卡引导。
6. 启动成功之后的几件小事:扩容、换NVMe启动、备份
6.1 首次进入系统后必做的分区扩容
很多官方镜像的根文件系统分区并没有占满整张TF卡。比如你烧录的镜像是8GB,但TF卡是64GB,你会发现系统里根分区只有8GB,剩余空间需要手动扩容。不同镜像的扩容方式略有差异,但通用的做法是:
用growpart和resize2fs组合:
sudo growpart /dev/mmcblk0 2 sudo resize2fs /dev/mmcblk0p2这里假设TF卡设备是/dev/mmcblk0,根分区是第2个分区。如果设备节点不同,用lsblk查看确认。
注意:分区号取决于镜像的分区布局,有的镜像根分区是/dev/mmcblk0p3或p4。扩容前先执行df -h看当前挂载点对应的分区号,再操作。
扩容完成后,重启或用下面的命令在线刷新:
sudo resize2fs /dev/mmcblk0p2扩展之前建议先做一次文件系统检查:
sudo e2fsck -f /dev/mmcblk0p26.2 从TF卡启动迁移到NVMe SSD
TF卡的读写速度,即使是用A2卡,和NVMe SSD比还是有数量级的差距。桌面环境下打开应用、编译代码、处理大文件,SSD的体验会好非常多。所以我建议系统跑稳定后,直接迁移到NVMe上。
迁移方法不复杂:
- 在NVMe SSD上重新烧录一份镜像。把NVMe SSD通过M.2转USB3.0的硬盘盒接到电脑上,重复前面的格式化、烧录流程,将镜像写到SSD上。
- 将SSD插入OrangePi 5 Plus的M.2接口,开机。
- 如果板子默认从NVMe启动,直接进入系统;如果还是从TF卡启动,则需要在U-Boot里调整启动顺序,或者暂时把TF卡拔掉。
迁移完成后,记得把同样分区扩容的步骤在SSD上再做一遍。另外,从NVMe启动后,TF卡可以清空用作普通存储,不再承担系统引导任务,这时候对它做格式化就没那么多心理负担了。
6.3 成品的备份与回滚方案
系统调好后,我非常建议做一次整卡备份。以后系统弄坏了,直接恢复镜像就行,不用再从头折腾一遍软件环境。
备份可以用dd反向读:
sudo dd if=/dev/mmcblk0 of=orangepi5plus_backup.img bs=4M status=progress不过整卡备份会包含空闲空间,文件很大。更聪明的方式是压缩备份:
sudo dd if=/dev/mmcblk0 bs=4M status=progress | gzip > orangepi5plus_backup.img.gz恢复时:
gunzip -c orangepi5plus_backup.img.gz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync备份出来的镜像,放在电脑或NAS上,日后即使TF卡损坏,也能在十分钟内恢复出和现在一模一样的系统环境。这个习惯,我强烈建议所有玩开发板的人都养成。
6.4 最后再分享两个小技巧
第一个是关于SSH。如果有人在没有显示器的环境里用OrangePi 5 Plus,记得确认系统里SSH服务是否默认开启。有些官方镜像默认不装SSH服务端,需要自己安装并设置开机自启。没有SSH的话,你只能抱着HDMI显示器坐在旁边操作,很不方便:
sudo apt install openssh-server sudo systemctl enable ssh sudo systemctl start ssh第二个是时区和软件源。官方镜像默认时区可能是UTC,在Windows和Linux双修的工作流里,时间经常差8小时。切换命令:
sudo timedatectl set-timezone Asia/Shanghai软件源也可以替换成国内镜像源,尤其是对于在OrangePi官方服务器下载慢的用户,换源之后apt update能快不少。具体换法就是把/etc/apt/sources.list里的源地址换成你所在地区访问速度合适的镜像地址,换完记得sudo apt update。
我在实际折腾OrangePi 5 Plus的过程里,最大的体会是:烧录本身不难,难的是在出问题时能快速缩小范围。TF卡、电源、镜像这三个变量,任何时候出问题,优先怀疑它们。把这篇文章里提到的排查链路走一遍,你大概率能在一个晚上之内让板子跑起来。剩下的事情,就是享受这块板子的性能了。