为什么做开源鸿蒙,以及选一块什么样的板-【万物智能之开源鸿蒙 OpenHarmony 系统实战开发系列教程】


这套教程从一块 RK3568、一份开源鸿蒙标准系统开始。今天不装工具、不刷机,先说清楚两件事:为什么做开源鸿蒙,以及这块板适不适合你。
第一次把开源鸿蒙刷进板子,很多人会晃一下神:这不就是 Linux 吗?
串口能敲命令,uname 打出来也是 5.10,/proc/device-tree 还在,I2C、GPIO、网卡,该有的节点好像都有。你会下意识地掏出在普通嵌入式 Linux 上用惯的那套:编一个小工具、拷上去、chmod +x、跑。
然后它不吃。
用户态不是 GNU 那一套。动态链接器叫 ld-musl-arm.so.1,还是 32 位的;应用不是一个 ELF,是 hap,要签名;调试口看着像 adb,命令却叫 hdc;你改了设备树,重启以后屏还是老样子——因为真正生效的那份 dtb,往往不在你刚刷的那个分区里。
所以它不是「Linux 换了个桌面」。内核那一层,做过嵌入式的人确实熟;熟的那一层上面,是另一套操作系统。这组文章要写的,就是这一层错位:环境怎么搭、镜像怎么来、屏怎么亮、外设怎么把数据送到应用里。芯片默认是瑞芯微 RK3568,系统钉在 OpenHarmony 4.1,API 11。你手头若是同档 Cortex-A、同样跑标准系统,路径名可能不同,判断问题的方法是一样的。
下面先把三件事说清楚:开源鸿蒙能用在哪、为什么值得在这条生态上做南向,以及你该买什么样的板。选错档,后面 70 篇的命令会对不上。
开源鸿蒙能用在哪
官方把它定义成面向全场景的智能终端操作系统。落到工程上,不要把「全场景」当成一次做完的功能清单。按设备形态,常见就是这几类。
带屏的人机界面。 产线操作员看的 7 寸、10 寸屏,楼宇门口机,仓储终端,充电桩和充电柜的面板,医疗监护仪的显示部分。RK3568 的 VOP2 能出 HDMI、MIPI、LVDS、RGB、eDP,正好覆盖从调试显示器到工业玻璃的几种接法。同一时刻通常只能把一路当主屏——这是后面显示那几篇的核心约束,也是这类产品最容易踩的坑。
边缘网关和联网终端。 双千兆、USB 上网卡、4G/5G 模组。车间里网线优先,户外屏和巡检车靠蜂窝。开源鸿蒙标准系统有网络管理子系统,板载网口常常能自动 DHCP;USB 网卡和模组却经常是自己拉起来的旁路,默认路由和 DNS 要另外处理。网关类产品买板时,网口和 USB 口比 CPU 核数重要。
采集和执行。 I2C 上的温度、光感、血氧,UART 上的定位和电台,GPIO 上的继电器、电机、报警灯。这类设备以前用 Qt 加一堆 /dev。开源鸿蒙上,标准 Kit 覆盖不到的芯片,仍然是 NAPI 去 open 节点,但应用是 hap、要签名、进程不是 root。南向的工作量在「节点出现」和「应用读得到」之间。
带预览的相机设备。 门口机、扫码工位、检测工位。MIPI CSI 或 USB UVC,经 ISP 或 UVC 进预览。花屏、偏暗、三条带,多半不是传感器没起来,是缓冲区写错、3A 没跑、格式和 stride 不一致。预览几何不正确,后面任何识别模型都是吃噪声。
教学和研发平台。 一块核心板加底板,引出 UART/I2C/SPI/GPIO,插不同模块练总线和驱动。这组文章按芯片型号写模块,不绑某一套外壳。总线对、芯片对,就能对上号。
轻量系统(MCU、一百多 KB 内存)做的是模组、传感器节点、简单穿戴,没有这套桌面和 hap。小型系统做猫眼、IPC。这组文章只写标准系统:要窗口、要 GPU 合成、要 ArkTS 应用。RK3568 属于这一档。
为什么要做开源鸿蒙生态,而不是只停在 Linux
如果你的产品只是「内核起来、有个 Qt 窗口、能 ssh」,继续用熟悉的嵌入式 Linux 完全成立。换开源鸿蒙,通常是因为产品形态已经靠近「带应用框架的终端」,而不只是「带网页或 Qt 的板子」。
应用层是统一的。 hap、Ability、ArkTS、权限和签名,是一套跨设备的包格式。同一套应用模型,可以从这块 RK3568 的屏,对到别的标准系统设备上——前提是南向把 HDI 对齐了。相机、音频、窗口这些 Kit,应用侧才能「一次开发」。HDI 没对齐,ArkTS 写得再漂亮也是调空。南向做的就是把芯片接进这套接口。
生态在要南向。 屏厂、模组厂、做行业终端的团队,需要的不是再发一份 Buildroot 镜像,而是:设备树、HDF、签名过的系统应用、能走 hdc 的调试链。你把 RK3568 上的显示、触摸、相机、网、外设走通,后面换同档芯片,改的是节点名和时钟,不是世界观。这就是「做生态」在工程上的含义:先有一块能被应用开发者用的板,而不是只有内核开发者能用的板。
分布式是后手,不是第一周的主线。 软总线、跨设备调度,官方有专门文档。单机屏都不稳,组网只是把不稳乘上 N。这组文章把单机做透:分区、dtb、hap、预览。分布式点到为止。端侧模型、NPU、把相机帧送进推理,放在预览稳定之后另写。
和传统 Linux 不是对立。 标准系统的内核就是 Linux 5.10。设备树、dmesg、示波器,全部还在。多出来的是 init 配置、HDF、包管理、32 位 musl。你会写 C、会看原理图,仍然可能在「刷哪一个分区」「so 是 32 位还是 64 位」上栽半天。栽了不要按发行版的经验继续加补丁,按这组文章的分层往上爬。
我在 RK3568 上走过的几件具体的事,决定了后面为什么写得细:dd 写到 /dev/mmcblk1p5 会建成普通文件、md5 还对;四颗灯一起灭是因为公版电源节点抢脚;hap 没签或指纹对不上,整卡刷桌面会一起没。这些不是奇闻,是这套系统的路径就是这样长。
先选档,再选芯片
开源鸿蒙能跑的芯片很多,文档也因此分成三套口气。拿着 MCU 的轻量手册来对 RK3568 的桌面和 hap,会对得很痛苦。
| 档 | 处理器 | 官方最低内存 | 你实际拿到的产品 |
|---|---|---|---|
| 轻量 | Cortex-M / RISC-V | 128 KB 量级 | 模组、节点、简单穿戴 |
| 小型 | Cortex-A | 1 MB 量级 | 猫眼、IPC、简单记录仪 |
| 标准 | Cortex-A,通常要 GPU | 写过 128 MB | 带桌面的屏、网关、本系列这条线 |
后面所有文章,默认你在标准系统、OpenHarmony 4.1、API 11。 内核 Linux 5.10,用户态 32 位 musl。RK3568 就是为这一档准备的。
官方 128 MB 是「能起来」,不是「能拿来开桌面和相机」。1 GB 会把时间耗在杀进程上。2 GB 起步,4 GB 开预览更从容。
标准系统,板上要有什么
CPU。 四核 Cortex-A55、主频到 1.8 GHz 这一档。更弱的 A 核能编进内核,滑动和预览会明显吃力。
内存。 桌面 2 GB;MIPI/UVC 预览优先 4 GB。loader 要和颗粒匹配,丝印 4G、loader 过旧,可能只认出一部分。
存储。 eMMC 8 GB 能装系统,16 GB 从容。另备 32 GB 以上 SD 卡刷可回滚的包。eMMC 别当草稿纸。
GPU。 窗口合成靠它。没有 GPU 的 A 核板,不适合跟这组文章对练显示和应用。
显示。 至少一路能稳定出图。先定你手头是 HDMI、MIPI、LVDS 还是 RGB,再看底板有没有座子。同一时刻通常只亮一路。
调试。 UART 控制台(这块 BSP 上是 1500000 8N1)+ USB OTG(hdc)。没有串口,早期只能盯黑屏;没有 OTG,装应用绕远。
USB Host。 键鼠、U 盘、UVC、网卡走 Host。OTG 留给电脑。两个口不要混。
触摸强烈建议有。没有的话 USB 鼠标也能点,输入那几篇你只能旁观。
为什么是 RK3568,而不是一上来上旗舰
它比 MCU 强很多:完整桌面、相机、双千兆。又比旗舰便宜一截,接口却齐——HDMI、MIPI DSI、LVDS、RGB、eDP,显示相关的坑在一颗芯片上就能轮一遍。CSI、USB 3.0、CAN、UART/I2C/SPI 也不缺。
更强的芯片解码更猛、NPU 更大,适合多路相机和大模型。入门用不上,价格和电源会先把人劝退。先在 RK3568 上把「dtb 怎么生效、hap 怎么签名、帧写在哪块内存」搞明白,换同档芯片改节点名即可。
NPU 有更好,没有也能在 CPU 上跑量化小模型做演示。那是后续端侧智能篇的事,不作为现在能不能学的门槛。
按你要做的产品选
只写应用。 一块已经能进开源鸿蒙桌面的 RK3568,带屏带触摸,2 GB。Windows 装 DevEco 和 hdc,不一定先编内核。
要改设备树、点亮自己的屏和外设。 必须有串口、OTG、能自己刷启动介质。还要一台 Ubuntu:电脑内存 16 GB 能编,32 GB 舒服,内核 LTO 不够会 137 被杀;磁盘 300 GB SSD。板子 2 GB 和电脑 16 GB 是两回事。
工业屏。 关心 LVDS/eDP 是否长期稳定、电源、双网口。触摸方案和屏一起定。
带预览的相机。 CSI 或可靠 UVC,内存尽量 4 GB。先几何正确,再谈识别。
网关。 网口和 USB 口比核数重要。蜂窝模组先看枚举出来是 wwan0(QMI)还是 usb0(NCM)。
端侧检测。 RK3568 够把「帧进、小模型出、框画回预览」跑通。更大模型再换同系列更强芯片。都先把预览跑正常。
不适合对练这组文章的:纯 MCU、只有几百 MB 又要开标准桌面和相机、没有串口也没有 OTG、只能用封闭工具刷一次出厂包。
编译发生在电脑上
OpenHarmony 4.1 标准系统在 Linux 里编。Windows 编应用、烧板、看日志。Ubuntu 22.04,用户名不要中文和空格。板子用 USB 连 hdc、用串口看启动。镜像从编译机拷出来时带 md5,不要只留在 out/。
起步可以只备这些
- RK3568 核心板,内存 2 GB 或 4 GB,配底板
- 一块屏,接口先定一种,带电容触摸更好
- USB 转串口,要能稳定跑 1500000(不少「115200 专用」线到 1.5 Mbps 会乱码)
- 能传数据的 USB 线,插 OTG
- 质量可靠的 SD 卡,32 GB 以上
USB 摄像头、一颗 I2C 温度芯片、一个 USB 网卡,有就练。没有不影响先点亮桌面。桌面是后面所有外设的乘法。
买之前对照底板丝印:调试口、OTG、你的屏插哪。丝印和文档打架时,以板上的字为准。
下一篇把标准系统的分层和三档再展开一次,然后从 Windows 工具链进到刷机。
更多推荐




所有评论(0)