2020 年 3 月,稚晖君(彭稚晖)发了一条约 3 分钟的视频:在自制的「小电视」里播放 B 站小电视——经典的套娃画面。机身不过苹果耳机盒大小,却能跑完整 Linux,还能做人脸识别和语音对话。
很多人把它当成可爱摆件,实际上这是 自研主板 + 全链路软件 的整机:原理图、6 层 PCB、贴片、U-Boot、内核、驱动、应用、3D 外壳,一个人走通。核心 PCB 后来抽成量产的 夸克(Quark),软件与硬件资料集中在开源 Project-Quantum(量子计划)。
如果你正在自己 Bring-up 一块板子,缺的往往不是「又一块能跑系统的开发板」,而是 整机链路怎么串。这篇文章,把这个链路摊开——从上电顺序看技术栈,再说怎么学。
别和 HoloCubic 混了:那是 ESP32 + 棱镜摆件;本文只谈 全志 H3 + 完整 Linux
原视频:【自制】B站最强小电视 https://www.bilibili.com/video/BV1jE41137eu/?spm_id_from=333.337.search-card.all.click
1. 它到底是什么
一句话:不是电视,是超迷你 Linux 主机。
- SoC:全志 H3,四核 Cortex-A7,最高约 1.2 GHz
- 硬件:自研 6 层 DDR 高速板 + 小屏、USB、Wi-Fi、音频、麦克风、TF 卡等
- 软件:U-Boot + Linux + Debian 系 rootfs(可装 Xfce 桌面)
- 体积:约耳机充电盒级;外壳为 Rhino 建模 + 3D 打印
- 和商品开发板的区别:当时 没有现成整机可买,Bring-up 全自研;路线与 Quark 一致
图1:从硬件到应用的大致链路2. 难在哪里
难点一:硬件不是「能亮就行」。 H3 带 DDR 控制器,PCB 要做到 6 层、阻抗与 EMI 过关。DDR 不稳,内核连启动都谈不上。
难点二:软件没有「下载镜像就能用」。 要从 U-Boot 移植 做起,再配 内核 + 设备树,再把屏、USB、Wi-Fi、音频、摄像头、存储等 驱动逐项对齐。稚晖君后来也提过:硬件「熬夜还能扛」,软件调试更让人头秃——所以项目里曾 改版重画了一版板子。任何一层和硬件对不上,就是你熟悉的那句:「能进系统,但某个外设死活不工作。」
3. 技术栈怎么串
从芯片到应用,大概可以分成下面几层(后面按这个顺序往下拆):
| | |
|---|
| | |
| U-Boot | |
| Linux BSP | |
| 显示、USB、Wi-Fi、音频、摄像头、MMC 等 | |
| Debian | |
| 播放、RTSP、Web、OpenCV/TensorFlow、语音 | |
上电 → U-Boot → kernel + dtb → mount rootfs → 桌面/服务 → 应用
图2:各层职责(与上表对应)
3.1 硬件与结构(硅片之上的第一层)
- 方案:H3 最小系统 + DDR + 电源 + eMMC/TF 等存储
- EDA:Altium Designer 画原理图与 Layout
- 生产
- 结构:Rhinoceros 建模,3D 打印外壳,机加工亚克力面板
- 外设接口:显示、USB(键鼠/摄像头)、SDIO(Wi-Fi 常见)、I2S(音频)等——后面每一类都要在 DTS和驱动「对上号」
3.2 Boot:U-Boot 干什么
这一层解决「板子能稳定跑到内核门口」:
- 裁剪、移植 U-Boot,配置从哪启动(eMMC/TF 等)
- 完成 DDR training、时钟、存储控制器等早期初始化
串口里的 U-Boot 命令行,是 Bring-up 前半场的主战场。
3.3 内核与设备树:板子长什么样,由 DT 写清楚
- 使用全志生态下的 Linux BSP(内核
defconfig、驱动开关) - Device Tree(.dts)
- 驱动通过
compatible 与 DT 节点 probe 绑定——节点写错,内核里就像「没有这个设备」
典型路径:改 dts → 编译 dtb → 重启 → 看 dmesg。
3.4 驱动层:外设逐项打通
Bring-up 里很常见的一幕:串口能进 U-Boot,桌面也能起来,偏偏 Wi-Fi 或摄像头单独挂掉——问题往往就卡在这一层。
项目里需要调通的能力与常见栈如下(调试时可对照 dmesg、设备节点):
驱动层往往是软件阶段 最磨人 的一环:难的不是背多少技术名词,而是 每一项外设都要和你的板子设备树对上号。
3.5 用户态与应用:像普通 Linux 一样叠功能
驱动稳了之后,用户态就和常见 Linux 桌面/服务器类似:
- rootfs:Debian 系 + systemd +
apt 装包 - 桌面与远程:Xfce + 键鼠;SSH、VNC/RDP(不嫌屏小可当真终端)
- 网络与媒体:Wi-Fi 联网、RTSP 推流、Web / 博客等个人服务
- AI demo:OpenCV、TensorFlow(A7 算力有限,适合轻量模型);USB 摄像头识别、麦克风 + 语音对话
- 开发语言
视频里最能说明「这是完整 Linux」的几项:套娃播放(小屏播 B 站小电视)、流媒体、Web 服务、视觉与语音 demo——都建立在上述用户态之上,不必为每个 App 重写底层。
要点在于:框架装在用户态即可,整机软件栈闭环。
4. 怎么学
不必复刻一整台小电视,按开源路线把 Boot → 内核 → DT → 驱动 走通,收获已经很大。整机并未以「商品资料包」全部公开,但核心板与软件资料拆成了可复用模块:
夸克 / Project-Quantum(H3,贴近小电视)
- 小电视核心板的量产形态,Seeed 合作套件(稚晖君正版授权可购硬件的主要渠道之一)
- 仓库:https://github.com/peng-zhihui/Project-Quantum
- Wiki:https://wiki.seeedstudio.com/Quantum-Mini-Linux-Development-Kit/
- 含硬件工程、U-Boot、Kernel、镜像与文档,可与上文 Boot 到应用各节对照着看
Planck Pi(F1C200s,低成本入门)
- 全志 F1C200s(ARM9、SIP DDR),BOM 很低
- 仓库:https://github.com/peng-zhihui/Planck-Pi
- 适合先跑通 Boot + 内核 + 最小 rootfs,再回来看 H3 六层板难在哪
建议五步
- 克隆 Project-Quantum,烧录镜像,串口登录
- 选一个外设(Wi-Fi 或摄像头)跟
dmesg 走一遍
自检:你卡在哪一层?
- 电路 / 高速 PCB → 本项目含 6 层 + DDR
- Debian / 桌面 / RTSP / OpenCV → 驱动通了之后的上层
5. 别和 HoloCubic 搞混
搜「稚晖君小电视」常会看到两条线:
| Linux 小电视 / Quark | HoloCubic |
|---|
| | ESP32 |
| | |
| | |
| | |
图3:两框「小电视」产品对比
6. 小结
- 整机是叠出来的:硬件、Boot、内核、DT、驱动、rootfs 必须对齐同一块板。
- 难在两头:DDR 高速板 + 无现成镜像;软件问题有时会逼你改硬件。
- 可复用的是核心板:小电视 → Quark → Project-Quantum;学习路径是 视频定边界 → 仓库烧录 → DTS/驱动实操。
参考与链接
- 原视频:https://www.bilibili.com/video/BV1jE41137eu/?spm_id_from=333.337.search-card.all.click
- 量子计划:https://github.com/peng-zhihui/Project-Quantum
- Planck Pi:https://github.com/peng-zhihui/Planck-Pi
- Seeed夸克Wiki:https://wiki.seeedstudio.com/Quantum-Mini-Linux-Development-Kit/
- HoloCubic:https://github.com/peng-zhihui/HoloCubic
- 作者 GitHub:https://github.com/peng-zhihui