1. 项目概述与核心价值最近拿到了一块YY3568开发板这是一款基于瑞芯微RK3568芯片的嵌入式开发平台性能相当不错。很多朋友拿到开发板后第一反应就是跟着官方文档跑个Demo或者直接用板子预装的Android系统。但如果你和我一样更习惯在纯Linux环境下进行嵌入式开发或者你的项目需要更底层的系统控制、更小的系统开销那么把板子上的系统替换为原生的Linux发行版就是一个绕不开的起点。这个“开发环境搭建系统替换为原生Linux”的过程听起来可能有点门槛但实际上只要你理清了背后的逻辑操作起来就是一套清晰的流程。它不仅仅是“刷个系统”那么简单而是你与这块硬件建立深度连接的第一步。通过这个过程你会彻底理解这块板子的启动流程、存储布局以及如何将一套通用的Linux系统适配到这块特定的硬件上。这对于后续的驱动开发、应用移植、性能调优都至关重要。简单来说这篇内容就是带你从零开始把手头的YY3568开发板从一个“黑盒子”状态变成一个完全由你掌控、运行着纯净Linux系统的开发利器。无论你是嵌入式新手想入门还是老手想快速上手新平台这套从环境准备到系统烧录、再到基础验证的完整流程都能给你一个扎实的起点。2. 开发环境整体设计与思路拆解在动手之前我们得先想清楚要做什么以及为什么这么做。YY3568开发板出厂时为了兼顾多媒体和易用性通常会预装Android系统。但Android系统层级较多对底层硬件的直接控制不够灵活且系统占用资源相对较大。对于物联网网关、工业控制、边缘计算等需要精简、高效、实时性强的场景一个裁剪过的原生Linux发行版如Debian、Ubuntu Core、Buildroot定制系统是更合适的选择。我们的目标就是把板子上的Android系统替换成这样一个原生Linux系统。这个过程的核心思路可以概括为在宿主机你的电脑上准备好目标系统的镜像文件、烧录工具以及必要的驱动然后通过特定的接口通常是USB OTG将开发板置于烧录模式最后将镜像文件“刷入”板载的eMMC或SD卡存储中。这里有几个关键点需要提前理解这能帮你避开很多坑2.1 为什么需要宿主机开发板本身在“白纸”状态下没有操作系统无法完成复杂的镜像写入工作。因此我们需要一台功能完整的计算机Windows, Linux, macOS均可但Linux环境兼容性最好作为工作机来准备工具和镜像并控制烧录过程。2.2 启动模式的选择Loader模式RK3568芯片支持多种启动模式如Normal模式从eMMC/SD卡启动、MaskRom模式芯片出厂状态用于救砖、Loader模式用于烧录。我们主要用到的是Loader模式。当开发板通过USB连接到电脑并短接板子上的特定触点或按住某个按键上电时芯片会进入Loader模式。此时电脑上的烧录工具就能识别到一个特殊的USB设备并与之通信执行烧录操作。2.3 存储介质的选择eMMC vs SD/TF卡YY3568开发板通常板载eMMC存储比如8GB或16GB同时也有SD/TF卡槽。两者的烧录流程类似但各有优劣eMMC速度快稳定性高是最终产品的首选。烧录后系统就固化在板子上。SD/TF卡灵活性极高。你可以准备多张卡分别烧录不同系统进行测试无需擦写eMMC。非常适合前期学习和快速验证。本次教程为了安全性和灵活性会以SD卡烧录为例eMMC烧录流程几乎完全相同。2.4 镜像文件的构成一个完整的、可启动的Linux系统镜像并非一个单一的文件。对于RK平台它通常是一个打包好的.img文件内部包含了多个重要的分区镜像例如Loader相当于PC的BIOS负责最基础的硬件初始化和加载下一阶段程序。U-Boot通用的Bootloader负责引导操作系统内核。KernelLinux内核包含核心的硬件驱动。Resource资源分区可能包含设备树二进制文件dtb、开机logo等。Boot内核镜像、初始内存盘initrd/initramfs所在分区。Rootfs根文件系统分区也就是我们常说的系统盘存放所有应用程序和库文件。烧录工具的工作就是把这个打包好的.img文件按照预定义的分区表解包并写入到存储设备的对应位置。理清了这些我们的操作路径就非常明确了获取镜像 - 准备烧录工具 - 进入Loader模式 - 执行烧录 - 验证启动。3. 核心细节解析与实操要点3.1 工具链选型为什么是rkdeveloptool在Linux宿主机上进行瑞芯微平台的烧录主流工具有rkdeveloptool和Windows下的RKDevTool。我们选择rkdeveloptool因为它是开源命令行工具更轻量与Linux开发环境集成度更高也便于脚本化自动化。它本质上是一个与芯片BootROM通信的客户端。当开发板处于Loader或MaskRom模式时芯片内部的BootROM程序会通过USB接口暴露一个简单的通信协议。rkdeveloptool就是利用这个协议实现读取芯片信息、上传Loader程序、擦写Flash等操作。注意确保你使用的rkdeveloptool版本较新以兼容RK3568。老版本可能无法识别新芯片。3.2 系统镜像来源官方 vs 社区 vs 自构建对于YY3568系统镜像有几个来源官方SDK最权威的来源。瑞芯微会为RK3568提供完整的Linux SDK里面包含内核、U-Boot源码以及构建好的参考镜像。你需要从官方渠道获取可能需要签署协议。镜像最稳定与硬件匹配度最高。开发板供应商像Firefly风火轮这样的核心板/开发板供应商会在官方SDK基础上进行适配如修改设备树、添加自家外设驱动并提供针对自家载板的现成镜像。这是最推荐新手使用的来源兼容性有保障。社区构建如Armbian项目为大量ARM开发板提供维护良好的Debian/Ubuntu系统。你可以查看是否有社区为YY3568适配的Armbian镜像。优点是软件包新社区活跃。自己构建使用Yocto或Buildroot从零开始构建。这是最灵活也是最复杂的方式适合深度定制需求。对于首次体验强烈建议从开发板供应商的Wiki或下载页面获取专为YY3568适配的Linux镜像例如Firefly提供的Debian或Ubuntu镜像。这能避免掉进设备树不匹配、驱动缺失导致屏幕不亮、网卡不通等初级坑里。3.3 Loader模式进入的“玄学”与确凿方法让开发板进入Loader模式是烧录的门槛也是新手最容易卡住的地方。原理是让芯片在上电复位时检测到某个或某几个GPIO引脚为特定电平从而强制进入烧录模式。对于YY3568开发板常见方法有按键法按住开发板上标有“RECOVERY”或“LOADER”的按键有时是音量减键然后给板子上电保持按压几秒后松开。短接法找到板上标有“MASKROM”或“FLASH”的两个金属触点通常是两个裸露的焊盘用金属镊子或导线将其短接然后上电短接保持2-3秒后断开。实操心得不同批次、不同厂商的板子进入Loader模式的方法可能有细微差别。最可靠的方法是查阅你手中这块开发板最新的官方文档。如果文档不清晰可以尝试组合先短接触点再上电然后断开。同时在Linux下执行lsusb命令观察当出现“USB download gadget”或“Rockchip”相关设备时ID通常为2207:350a或类似即表示成功进入Loader模式。多试几次这是个体力活也是经验活。3.4 分区表的重要性为什么不能乱刷在烧录时烧录工具需要依据一个“分区表”信息来知道把镜像的每个部分写到存储设备的哪个位置。这个分区表信息可能直接包含在.img镜像文件中也可能需要一个单独的配置文件如parameter.txt。直接使用供应商提供的完整镜像文件.img是最省心的因为它内部已经包含了正确的分区布局。绝对不要随意拿一个其他板子的镜像或者通用发行版的镜像直接往YY3568里烧极大概率会砖。轻则无法启动重则损坏Loader导致连MaskRom模式都进不去虽然MaskRom模式是硬件级一般还能救。如果你是自己构建系统那么就需要精心设计分区表包括每个分区的起始扇区、大小、类型等并确保U-Boot和内核的设备树配置与之一致。4. 实操过程与核心环节实现下面我们以在Ubuntu 22.04宿主机上为YY3568开发板烧录Firefly提供的Debian系统镜像到SD卡为例展示完整流程。4.1 第一步宿主机环境准备首先在Linux电脑上安装必要的工具。# 更新软件包列表 sudo apt update # 安装编译rkdeveloptool所需的依赖 sudo apt install -y git build-essential libusb-1.0-0-dev pkg-config meson # 安装其他有用工具 sudo apt install -y gdisk lsusb wget接下来从GitHub克隆并编译rkdeveloptool。# 克隆仓库 git clone https://github.com/rockchip-linux/rkdeveloptool.git cd rkdeveloptool # 使用meson构建 meson setup build cd build ninja # 将编译好的可执行文件安装到系统路径可选也可以直接使用build目录下的 sudo cp rkdeveloptool /usr/local/bin/编译完成后执行rkdeveloptool -v如果能显示版本信息说明安装成功。4.2 第二步获取系统镜像与准备SD卡获取镜像访问Firefly官网的YY3568维基页面找到“下载”或“资源”板块下载适用于你板型比如带屏或不带屏的Debian系统镜像文件通常是一个以.img.xz结尾的压缩包例如yy3568-debian11-gnome-20240520.img.xz。解压镜像使用xz命令解压得到原始的.img文件。xz -d yy3568-debian11-gnome-20240520.img.xz这会得到yy3568-debian11-gnome-20240520.img文件。请记录下这个.img文件的完整路径。插入SD卡将一张容量足够建议16GB或以上的SD卡通过读卡器插入电脑。使用lsblk命令确认SD卡在系统中的设备名例如/dev/sdb请务必确认准确误操作会格式化你的电脑硬盘。lsblk你会看到类似输出sdb就是你的SD卡sdb1、sdb2等是它上面的现有分区。NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS ... sdb 8:16 1 29.7G 0 disk ├─sdb1 8:17 1 512M 0 part └─sdb2 8:18 1 29.2G 0 part卸载SD卡分区如果系统自动挂载了SD卡的分区需要先卸载。sudo umount /dev/sdb1 sudo umount /dev/sdb2 # 如果有更多分区继续卸载4.3 第三步进入Loader模式并烧录这是最关键的一步请严格按照顺序操作。连接USB线使用USB Type-C数据线将开发板的OTG口通常有标识连接到电脑的USB口。先不要给开发板上电。准备进入Loader模式根据你的板子文档找到进入Loader模式的方法例如找到MASKROM的两个触点。用镊子准备好短接或者手指按住RECOVERY键。上电并触发Loader模式短接法用镊子短接MASKROM的两个触点保持短接然后给开发板上电插入电源适配器。等待2-3秒松开镊子。按键法按住RECOVERY键不放然后给开发板上电。保持按压几秒后松开。检查设备连接在电脑终端执行lsusb。lsusb如果看到类似Bus 003 Device 027: ID 2207:350a Fuzhou Rockchip Electronics Co., Ltd.的设备说明开发板已成功进入Loader模式并被识别。2207:350a就是RK3568在Loader模式下的USB VID/PID。使用rkdeveloptool烧录到SD卡重要以下命令中的/dev/sdb请替换为你的SD卡设备名。此操作会完全清除SD卡上所有数据。# 首先列出当前连接的Rockchip设备确认工具能识别到 sudo rkdeveloptool ld # 应该会输出一个设备号如 DevNo1 Vid0x2207,Pid0x350a,LocationID106 Loader # 使用dd命令将镜像直接写入SD卡最直接的方法 # 确保.img文件路径和/dev/sdb设备名正确 sudo dd if./yy3568-debian11-gnome-20240520.img of/dev/sdb bs4M statusprogress oflagdsyncdd命令参数解释if输入文件即镜像路径。of输出设备即SD卡。bs4M块大小设为4MB有助于提高大文件写入效率。statusprogress显示写入进度。oflagdsync确保数据同步写入避免缓存导致烧录不完整。写入过程耗时几分钟取决于镜像大小和SD卡速度。当终端提示完成并返回命令提示符时烧录就结束了。安全弹出SD卡写入完成后执行sync命令确保所有数据写入磁盘然后安全移除SD卡。sync # 然后从物理上拔出SD卡读卡器4.4 第四步首次启动与验证组装启动将烧录好的SD卡插入YY3568开发板的SD卡槽。断开开发板的USB连接如果之前连着。只连接电源适配器和显示器如果需要。上电启动给开发板上电。此时板子会从SD卡启动。你应该看到串口调试信息如果接了调试串口或者屏幕上出现系统启动的Logo和登录界面。基础系统验证串口登录最可靠的调试方式。使用USB转TTL串口线连接开发板的调试串口通常是板子上标有DEBUG或UART的3针排针引脚为GND、TX、RX波特率设置为1500000。在宿主机上用串口工具如minicom,picocom,screen连接。上电后你会在串口看到大量的内核启动日志最后出现登录提示。默认用户名和密码通常是firefly/firefly或root/root具体看镜像说明。网络连接如果系统配置了DHCP且网络环境可用可以通过ip a命令查看是否获取到IP地址并尝试ping一下外网。基础命令登录后运行uname -a查看内核版本df -h查看磁盘空间确认系统运行正常。至此你已经成功将YY3568开发板的系统替换为了原生Linux。现在这块板子就是一个完整的、纯净的Linux计算机你可以开始安装软件、部署应用或者进行更深层次的内核和驱动开发了。5. 常见问题与排查技巧实录即使按照步骤操作也可能会遇到一些问题。这里汇总了一些常见坑点和解决方法。5.1 宿主机无法识别Loader设备现象执行lsusb看不到2207:350a设备rkdeveloptool ld也没有输出。排查USB线确认确保使用的是数据线而非仅充电线。尝试更换一个USB口最好是电脑主板原生的USB口避免使用扩展坞。驱动确认Windows用户注意如果在Windows下使用RKDevTool需要安装特定的驱动。在Linux下libusb库已包含通用驱动。操作时序进入Loader模式的操作短接/按键 上电的时序非常关键。多试几次先短接/按住再上电保持2-3秒后松开。可以尝试不同的持续时间。板子状态确保板子之前没有刷坏。如果完全没反应尝试进入MaskRom模式救砖。通常方法是断开所有电源短接MASKROM触点不放先连接USB到电脑再上电。此时lsusb应看到PID0x180a或0x300a的设备。识别后可以用rkdeveloptool的db命令下载Loader程序恢复。5.2 烧录过程报错或卡住现象dd命令或rkdeveloptool写入时出错或进度条卡住不动。排查权限问题所有命令是否都加了sudo对/dev/sdb设备的写入需要root权限。存储设备问题SD卡或读卡器质量差、有坏块。换一张高速、品牌可靠的SD卡Class10/A1/A2标准和读卡器再试。也可以尝试用sudo badblocks -sv /dev/sdb检查SD卡坏道数据会丢失慎用。镜像文件损坏重新下载镜像文件并用sha256sum校验下载文件的哈希值是否与官网提供的一致。空间不足确保SD卡容量大于镜像文件大小。5.3 系统无法启动卡在某个阶段现象上电后屏幕无输出或串口日志停在某一行如“Starting kernel ...”之后。排查镜像兼容性这是最常见原因。确认你下载的镜像是否完全匹配你的YY3568开发板的具体型号比如是Firefly的ROC-RK3568-PC还是其他厂商的板子。不同载板的设备树dtb不同不匹配会导致内核无法识别硬件。启动介质顺序开发板可能优先从eMMC启动。确保已插入SD卡并确认板子的启动跳线或软件设置是否正确配置为从SD卡启动。有些板子是通过拨码开关选择有些则是在U-Boot中设置环境变量。串口查看详细日志一定要连接串口调试屏幕不亮时串口日志是唯一的诊断信息。观察卡在哪个阶段。如果是U-Boot阶段就失败可能是SD卡接触不良或镜像的U-Boot部分有问题。如果是内核panic通常是驱动或设备树问题。尝试最小系统如果带桌面环境的镜像启动失败可以尝试下载一个不带GUI的、更精简的服务器版镜像排除图形驱动兼容性问题。5.4 网络、显示等外设不工作现象系统能启动登录但以太网无连接、Wi-Fi找不到、HDMI无输出。排查内核驱动运行lsmod查看已加载的内核模块检查是否有对应的网卡如r8169for千兆网卡、GPU驱动模块。使用dmesg | grep -i error或dmesg | grep -i “eth\|drm\|hdmi”查看内核启动信息中是否有相关错误。设备树外设依赖正确的设备树。确认你使用的镜像是否为你的板型正确编译了设备树文件dtb。可以查看/boot目录下的设备树文件名称。固件有些无线网卡需要额外的固件文件/lib/firmware。确保镜像包含了这些固件。5.5 性能优化与日常使用建议更换国内软件源系统启动后第一件事就是更换/etc/apt/sources.list为国内镜像源如清华、阿里、中科大源可以极大提升软件安装更新速度。扩展根文件系统使用SD卡烧录的镜像其根分区大小通常是固定的。如果SD卡容量很大可以使用gparted工具或在命令行用resize2fs和fdisk工具扩展rootfs分区充分利用剩余空间。启用交换分区如果内存较小比如1GB可以创建一个交换文件或交换分区防止内存不足导致应用崩溃。# 创建一个2GB的交换文件 sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 为了开机自动挂载将以下行添加到 /etc/fstab # /swapfile none swap sw 0 0散热考虑RK3568性能不错长时间高负载运行会发热。如果板载散热片较小可以考虑增加一个微型风扇或更大的散热片以保证稳定性。烧录系统只是嵌入式开发的第一步但也是最基础、最重要的一步。这个过程里遇到的每一个错误和解决过程都会加深你对硬件启动流程和系统组成的理解。当你第一次在串口终端里看到自己烧录的系统成功启动并打出登录提示符时那种对硬件完全掌控的感觉就是嵌入式开发最原始的乐趣之一。
从零开始:YY3568开发板刷写原生Linux系统全流程指南
发布时间:2026/5/20 18:20:20
1. 项目概述与核心价值最近拿到了一块YY3568开发板这是一款基于瑞芯微RK3568芯片的嵌入式开发平台性能相当不错。很多朋友拿到开发板后第一反应就是跟着官方文档跑个Demo或者直接用板子预装的Android系统。但如果你和我一样更习惯在纯Linux环境下进行嵌入式开发或者你的项目需要更底层的系统控制、更小的系统开销那么把板子上的系统替换为原生的Linux发行版就是一个绕不开的起点。这个“开发环境搭建系统替换为原生Linux”的过程听起来可能有点门槛但实际上只要你理清了背后的逻辑操作起来就是一套清晰的流程。它不仅仅是“刷个系统”那么简单而是你与这块硬件建立深度连接的第一步。通过这个过程你会彻底理解这块板子的启动流程、存储布局以及如何将一套通用的Linux系统适配到这块特定的硬件上。这对于后续的驱动开发、应用移植、性能调优都至关重要。简单来说这篇内容就是带你从零开始把手头的YY3568开发板从一个“黑盒子”状态变成一个完全由你掌控、运行着纯净Linux系统的开发利器。无论你是嵌入式新手想入门还是老手想快速上手新平台这套从环境准备到系统烧录、再到基础验证的完整流程都能给你一个扎实的起点。2. 开发环境整体设计与思路拆解在动手之前我们得先想清楚要做什么以及为什么这么做。YY3568开发板出厂时为了兼顾多媒体和易用性通常会预装Android系统。但Android系统层级较多对底层硬件的直接控制不够灵活且系统占用资源相对较大。对于物联网网关、工业控制、边缘计算等需要精简、高效、实时性强的场景一个裁剪过的原生Linux发行版如Debian、Ubuntu Core、Buildroot定制系统是更合适的选择。我们的目标就是把板子上的Android系统替换成这样一个原生Linux系统。这个过程的核心思路可以概括为在宿主机你的电脑上准备好目标系统的镜像文件、烧录工具以及必要的驱动然后通过特定的接口通常是USB OTG将开发板置于烧录模式最后将镜像文件“刷入”板载的eMMC或SD卡存储中。这里有几个关键点需要提前理解这能帮你避开很多坑2.1 为什么需要宿主机开发板本身在“白纸”状态下没有操作系统无法完成复杂的镜像写入工作。因此我们需要一台功能完整的计算机Windows, Linux, macOS均可但Linux环境兼容性最好作为工作机来准备工具和镜像并控制烧录过程。2.2 启动模式的选择Loader模式RK3568芯片支持多种启动模式如Normal模式从eMMC/SD卡启动、MaskRom模式芯片出厂状态用于救砖、Loader模式用于烧录。我们主要用到的是Loader模式。当开发板通过USB连接到电脑并短接板子上的特定触点或按住某个按键上电时芯片会进入Loader模式。此时电脑上的烧录工具就能识别到一个特殊的USB设备并与之通信执行烧录操作。2.3 存储介质的选择eMMC vs SD/TF卡YY3568开发板通常板载eMMC存储比如8GB或16GB同时也有SD/TF卡槽。两者的烧录流程类似但各有优劣eMMC速度快稳定性高是最终产品的首选。烧录后系统就固化在板子上。SD/TF卡灵活性极高。你可以准备多张卡分别烧录不同系统进行测试无需擦写eMMC。非常适合前期学习和快速验证。本次教程为了安全性和灵活性会以SD卡烧录为例eMMC烧录流程几乎完全相同。2.4 镜像文件的构成一个完整的、可启动的Linux系统镜像并非一个单一的文件。对于RK平台它通常是一个打包好的.img文件内部包含了多个重要的分区镜像例如Loader相当于PC的BIOS负责最基础的硬件初始化和加载下一阶段程序。U-Boot通用的Bootloader负责引导操作系统内核。KernelLinux内核包含核心的硬件驱动。Resource资源分区可能包含设备树二进制文件dtb、开机logo等。Boot内核镜像、初始内存盘initrd/initramfs所在分区。Rootfs根文件系统分区也就是我们常说的系统盘存放所有应用程序和库文件。烧录工具的工作就是把这个打包好的.img文件按照预定义的分区表解包并写入到存储设备的对应位置。理清了这些我们的操作路径就非常明确了获取镜像 - 准备烧录工具 - 进入Loader模式 - 执行烧录 - 验证启动。3. 核心细节解析与实操要点3.1 工具链选型为什么是rkdeveloptool在Linux宿主机上进行瑞芯微平台的烧录主流工具有rkdeveloptool和Windows下的RKDevTool。我们选择rkdeveloptool因为它是开源命令行工具更轻量与Linux开发环境集成度更高也便于脚本化自动化。它本质上是一个与芯片BootROM通信的客户端。当开发板处于Loader或MaskRom模式时芯片内部的BootROM程序会通过USB接口暴露一个简单的通信协议。rkdeveloptool就是利用这个协议实现读取芯片信息、上传Loader程序、擦写Flash等操作。注意确保你使用的rkdeveloptool版本较新以兼容RK3568。老版本可能无法识别新芯片。3.2 系统镜像来源官方 vs 社区 vs 自构建对于YY3568系统镜像有几个来源官方SDK最权威的来源。瑞芯微会为RK3568提供完整的Linux SDK里面包含内核、U-Boot源码以及构建好的参考镜像。你需要从官方渠道获取可能需要签署协议。镜像最稳定与硬件匹配度最高。开发板供应商像Firefly风火轮这样的核心板/开发板供应商会在官方SDK基础上进行适配如修改设备树、添加自家外设驱动并提供针对自家载板的现成镜像。这是最推荐新手使用的来源兼容性有保障。社区构建如Armbian项目为大量ARM开发板提供维护良好的Debian/Ubuntu系统。你可以查看是否有社区为YY3568适配的Armbian镜像。优点是软件包新社区活跃。自己构建使用Yocto或Buildroot从零开始构建。这是最灵活也是最复杂的方式适合深度定制需求。对于首次体验强烈建议从开发板供应商的Wiki或下载页面获取专为YY3568适配的Linux镜像例如Firefly提供的Debian或Ubuntu镜像。这能避免掉进设备树不匹配、驱动缺失导致屏幕不亮、网卡不通等初级坑里。3.3 Loader模式进入的“玄学”与确凿方法让开发板进入Loader模式是烧录的门槛也是新手最容易卡住的地方。原理是让芯片在上电复位时检测到某个或某几个GPIO引脚为特定电平从而强制进入烧录模式。对于YY3568开发板常见方法有按键法按住开发板上标有“RECOVERY”或“LOADER”的按键有时是音量减键然后给板子上电保持按压几秒后松开。短接法找到板上标有“MASKROM”或“FLASH”的两个金属触点通常是两个裸露的焊盘用金属镊子或导线将其短接然后上电短接保持2-3秒后断开。实操心得不同批次、不同厂商的板子进入Loader模式的方法可能有细微差别。最可靠的方法是查阅你手中这块开发板最新的官方文档。如果文档不清晰可以尝试组合先短接触点再上电然后断开。同时在Linux下执行lsusb命令观察当出现“USB download gadget”或“Rockchip”相关设备时ID通常为2207:350a或类似即表示成功进入Loader模式。多试几次这是个体力活也是经验活。3.4 分区表的重要性为什么不能乱刷在烧录时烧录工具需要依据一个“分区表”信息来知道把镜像的每个部分写到存储设备的哪个位置。这个分区表信息可能直接包含在.img镜像文件中也可能需要一个单独的配置文件如parameter.txt。直接使用供应商提供的完整镜像文件.img是最省心的因为它内部已经包含了正确的分区布局。绝对不要随意拿一个其他板子的镜像或者通用发行版的镜像直接往YY3568里烧极大概率会砖。轻则无法启动重则损坏Loader导致连MaskRom模式都进不去虽然MaskRom模式是硬件级一般还能救。如果你是自己构建系统那么就需要精心设计分区表包括每个分区的起始扇区、大小、类型等并确保U-Boot和内核的设备树配置与之一致。4. 实操过程与核心环节实现下面我们以在Ubuntu 22.04宿主机上为YY3568开发板烧录Firefly提供的Debian系统镜像到SD卡为例展示完整流程。4.1 第一步宿主机环境准备首先在Linux电脑上安装必要的工具。# 更新软件包列表 sudo apt update # 安装编译rkdeveloptool所需的依赖 sudo apt install -y git build-essential libusb-1.0-0-dev pkg-config meson # 安装其他有用工具 sudo apt install -y gdisk lsusb wget接下来从GitHub克隆并编译rkdeveloptool。# 克隆仓库 git clone https://github.com/rockchip-linux/rkdeveloptool.git cd rkdeveloptool # 使用meson构建 meson setup build cd build ninja # 将编译好的可执行文件安装到系统路径可选也可以直接使用build目录下的 sudo cp rkdeveloptool /usr/local/bin/编译完成后执行rkdeveloptool -v如果能显示版本信息说明安装成功。4.2 第二步获取系统镜像与准备SD卡获取镜像访问Firefly官网的YY3568维基页面找到“下载”或“资源”板块下载适用于你板型比如带屏或不带屏的Debian系统镜像文件通常是一个以.img.xz结尾的压缩包例如yy3568-debian11-gnome-20240520.img.xz。解压镜像使用xz命令解压得到原始的.img文件。xz -d yy3568-debian11-gnome-20240520.img.xz这会得到yy3568-debian11-gnome-20240520.img文件。请记录下这个.img文件的完整路径。插入SD卡将一张容量足够建议16GB或以上的SD卡通过读卡器插入电脑。使用lsblk命令确认SD卡在系统中的设备名例如/dev/sdb请务必确认准确误操作会格式化你的电脑硬盘。lsblk你会看到类似输出sdb就是你的SD卡sdb1、sdb2等是它上面的现有分区。NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS ... sdb 8:16 1 29.7G 0 disk ├─sdb1 8:17 1 512M 0 part └─sdb2 8:18 1 29.2G 0 part卸载SD卡分区如果系统自动挂载了SD卡的分区需要先卸载。sudo umount /dev/sdb1 sudo umount /dev/sdb2 # 如果有更多分区继续卸载4.3 第三步进入Loader模式并烧录这是最关键的一步请严格按照顺序操作。连接USB线使用USB Type-C数据线将开发板的OTG口通常有标识连接到电脑的USB口。先不要给开发板上电。准备进入Loader模式根据你的板子文档找到进入Loader模式的方法例如找到MASKROM的两个触点。用镊子准备好短接或者手指按住RECOVERY键。上电并触发Loader模式短接法用镊子短接MASKROM的两个触点保持短接然后给开发板上电插入电源适配器。等待2-3秒松开镊子。按键法按住RECOVERY键不放然后给开发板上电。保持按压几秒后松开。检查设备连接在电脑终端执行lsusb。lsusb如果看到类似Bus 003 Device 027: ID 2207:350a Fuzhou Rockchip Electronics Co., Ltd.的设备说明开发板已成功进入Loader模式并被识别。2207:350a就是RK3568在Loader模式下的USB VID/PID。使用rkdeveloptool烧录到SD卡重要以下命令中的/dev/sdb请替换为你的SD卡设备名。此操作会完全清除SD卡上所有数据。# 首先列出当前连接的Rockchip设备确认工具能识别到 sudo rkdeveloptool ld # 应该会输出一个设备号如 DevNo1 Vid0x2207,Pid0x350a,LocationID106 Loader # 使用dd命令将镜像直接写入SD卡最直接的方法 # 确保.img文件路径和/dev/sdb设备名正确 sudo dd if./yy3568-debian11-gnome-20240520.img of/dev/sdb bs4M statusprogress oflagdsyncdd命令参数解释if输入文件即镜像路径。of输出设备即SD卡。bs4M块大小设为4MB有助于提高大文件写入效率。statusprogress显示写入进度。oflagdsync确保数据同步写入避免缓存导致烧录不完整。写入过程耗时几分钟取决于镜像大小和SD卡速度。当终端提示完成并返回命令提示符时烧录就结束了。安全弹出SD卡写入完成后执行sync命令确保所有数据写入磁盘然后安全移除SD卡。sync # 然后从物理上拔出SD卡读卡器4.4 第四步首次启动与验证组装启动将烧录好的SD卡插入YY3568开发板的SD卡槽。断开开发板的USB连接如果之前连着。只连接电源适配器和显示器如果需要。上电启动给开发板上电。此时板子会从SD卡启动。你应该看到串口调试信息如果接了调试串口或者屏幕上出现系统启动的Logo和登录界面。基础系统验证串口登录最可靠的调试方式。使用USB转TTL串口线连接开发板的调试串口通常是板子上标有DEBUG或UART的3针排针引脚为GND、TX、RX波特率设置为1500000。在宿主机上用串口工具如minicom,picocom,screen连接。上电后你会在串口看到大量的内核启动日志最后出现登录提示。默认用户名和密码通常是firefly/firefly或root/root具体看镜像说明。网络连接如果系统配置了DHCP且网络环境可用可以通过ip a命令查看是否获取到IP地址并尝试ping一下外网。基础命令登录后运行uname -a查看内核版本df -h查看磁盘空间确认系统运行正常。至此你已经成功将YY3568开发板的系统替换为了原生Linux。现在这块板子就是一个完整的、纯净的Linux计算机你可以开始安装软件、部署应用或者进行更深层次的内核和驱动开发了。5. 常见问题与排查技巧实录即使按照步骤操作也可能会遇到一些问题。这里汇总了一些常见坑点和解决方法。5.1 宿主机无法识别Loader设备现象执行lsusb看不到2207:350a设备rkdeveloptool ld也没有输出。排查USB线确认确保使用的是数据线而非仅充电线。尝试更换一个USB口最好是电脑主板原生的USB口避免使用扩展坞。驱动确认Windows用户注意如果在Windows下使用RKDevTool需要安装特定的驱动。在Linux下libusb库已包含通用驱动。操作时序进入Loader模式的操作短接/按键 上电的时序非常关键。多试几次先短接/按住再上电保持2-3秒后松开。可以尝试不同的持续时间。板子状态确保板子之前没有刷坏。如果完全没反应尝试进入MaskRom模式救砖。通常方法是断开所有电源短接MASKROM触点不放先连接USB到电脑再上电。此时lsusb应看到PID0x180a或0x300a的设备。识别后可以用rkdeveloptool的db命令下载Loader程序恢复。5.2 烧录过程报错或卡住现象dd命令或rkdeveloptool写入时出错或进度条卡住不动。排查权限问题所有命令是否都加了sudo对/dev/sdb设备的写入需要root权限。存储设备问题SD卡或读卡器质量差、有坏块。换一张高速、品牌可靠的SD卡Class10/A1/A2标准和读卡器再试。也可以尝试用sudo badblocks -sv /dev/sdb检查SD卡坏道数据会丢失慎用。镜像文件损坏重新下载镜像文件并用sha256sum校验下载文件的哈希值是否与官网提供的一致。空间不足确保SD卡容量大于镜像文件大小。5.3 系统无法启动卡在某个阶段现象上电后屏幕无输出或串口日志停在某一行如“Starting kernel ...”之后。排查镜像兼容性这是最常见原因。确认你下载的镜像是否完全匹配你的YY3568开发板的具体型号比如是Firefly的ROC-RK3568-PC还是其他厂商的板子。不同载板的设备树dtb不同不匹配会导致内核无法识别硬件。启动介质顺序开发板可能优先从eMMC启动。确保已插入SD卡并确认板子的启动跳线或软件设置是否正确配置为从SD卡启动。有些板子是通过拨码开关选择有些则是在U-Boot中设置环境变量。串口查看详细日志一定要连接串口调试屏幕不亮时串口日志是唯一的诊断信息。观察卡在哪个阶段。如果是U-Boot阶段就失败可能是SD卡接触不良或镜像的U-Boot部分有问题。如果是内核panic通常是驱动或设备树问题。尝试最小系统如果带桌面环境的镜像启动失败可以尝试下载一个不带GUI的、更精简的服务器版镜像排除图形驱动兼容性问题。5.4 网络、显示等外设不工作现象系统能启动登录但以太网无连接、Wi-Fi找不到、HDMI无输出。排查内核驱动运行lsmod查看已加载的内核模块检查是否有对应的网卡如r8169for千兆网卡、GPU驱动模块。使用dmesg | grep -i error或dmesg | grep -i “eth\|drm\|hdmi”查看内核启动信息中是否有相关错误。设备树外设依赖正确的设备树。确认你使用的镜像是否为你的板型正确编译了设备树文件dtb。可以查看/boot目录下的设备树文件名称。固件有些无线网卡需要额外的固件文件/lib/firmware。确保镜像包含了这些固件。5.5 性能优化与日常使用建议更换国内软件源系统启动后第一件事就是更换/etc/apt/sources.list为国内镜像源如清华、阿里、中科大源可以极大提升软件安装更新速度。扩展根文件系统使用SD卡烧录的镜像其根分区大小通常是固定的。如果SD卡容量很大可以使用gparted工具或在命令行用resize2fs和fdisk工具扩展rootfs分区充分利用剩余空间。启用交换分区如果内存较小比如1GB可以创建一个交换文件或交换分区防止内存不足导致应用崩溃。# 创建一个2GB的交换文件 sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 为了开机自动挂载将以下行添加到 /etc/fstab # /swapfile none swap sw 0 0散热考虑RK3568性能不错长时间高负载运行会发热。如果板载散热片较小可以考虑增加一个微型风扇或更大的散热片以保证稳定性。烧录系统只是嵌入式开发的第一步但也是最基础、最重要的一步。这个过程里遇到的每一个错误和解决过程都会加深你对硬件启动流程和系统组成的理解。当你第一次在串口终端里看到自己烧录的系统成功启动并打出登录提示符时那种对硬件完全掌控的感觉就是嵌入式开发最原始的乐趣之一。