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. 技术栈怎么串

从芯片到应用,大概可以分成下面几层(后面按这个顺序往下拆):

层次关键技术在本项目里
硬件H3、6 层 PCB、DDR、外设自研主板 + 结构件
BootU-Boot初始化 DDR/时钟/存储,加载内核
内核Linux BSP设备树(DT)描述板子,挂驱动
驱动显示、USB、Wi-Fi、音频、摄像头、MMC 等无现成镜像,逐项调
用户态DebianXfceVNC/RDP桌面、远程、装软件
应用播放、RTSP、Web、OpenCV/TensorFlow、语音视频里的 demo
上电 → U-Boot → kernel + dtb → mount rootfs → 桌面/服务 → 应用

在这里插入图片描述
图2:各层职责(与上表对应)

3.1 硬件与结构(硅片之上的第一层)

  • 方案:H3 最小系统 + DDR + 电源 + eMMC/TF 等存储
  • EDAAltium Designer 画原理图与 Layout
  • 生产:钢网刷膏、贴片、回流焊(密集脚位难度高)
  • 结构Rhinoceros 建模,3D 打印外壳,机加工亚克力面板
  • 外设接口:显示、USB(键鼠/摄像头)、SDIO(Wi-Fi 常见)、I2S(音频)等——后面每一类都要在 DTS和驱动「对上号」

3.2 Boot:U-Boot 干什么

这一层解决「板子能稳定跑到内核门口」:

  • 裁剪、移植 U-Boot,配置从哪启动(eMMC/TF 等)
  • 完成 DDR training、时钟、存储控制器等早期初始化
  • 内核镜像 + dtb 加载进内存并跳转

串口里的 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、设备节点):

外设常见栈关注点
显示屏显示驱动、Framebuffer/DRM时序、背光
USBUSB host、V4L2(摄像头)lsusb、权限
Wi-Fi芯片驱动 + wpa_supplicant固件、链路
音频I2SALSA麦/喇叭通路
TF 卡MMC 子系统分区、挂载 rootfs
按键等GPIO、输入子系统设备节点

驱动层往往是软件阶段 最磨人 的一环:难的不是背多少技术名词,而是 每一项外设都要和你的板子设备树对上号

3.5 用户态与应用:像普通 Linux 一样叠功能

驱动稳了之后,用户态就和常见 Linux 桌面/服务器类似:

  • rootfsDebian 系 + systemd + apt 装包
  • 桌面与远程Xfce + 键鼠;SSHVNC/RDP(不嫌屏小可当真终端)
  • 网络与媒体Wi-Fi 联网、RTSP 推流、Web / 博客等个人服务
  • AI demoOpenCVTensorFlow(A7 算力有限,适合轻量模型);USB 摄像头识别、麦克风 + 语音对话
  • 开发语言:驱动之上常见 C/C++、Python

视频里最能说明「这是完整 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 六层板难在哪

建议五步

  1. 看原视频 BV1jE41137eu,建立功能边界
  2. 克隆 Project-Quantum,烧录镜像,串口登录
  3. 打开 设备树,对照驱动层表格看外设节点
  4. 选一个外设(Wi-Fi 或摄像头)跟 dmesg 走一遍
  5. 门槛再低时,用 Planck-Pi 练最小闭环

自检:你卡在哪一层?

  • 电路 / 高速 PCB → 本项目含 6 层 + DDR
  • U-Boot / 内核 / DT → 自研板必做
  • 多外设驱动 → 本项目核心难度
  • Debian / 桌面 / RTSP / OpenCV → 驱动通了之后的上层

5. 别和 HoloCubic 搞混

搜「稚晖君小电视」常会看到两条线:

Linux 小电视 / QuarkHoloCubic
芯片全志 H3 + LinuxESP32
软件栈U-Boot / DT / Debian…IDF、LVGL
适合学板级 Linux、驱动、rootfsUI、棱镜、物联网屏
仓库Project-QuantumHoloCubic

在这里插入图片描述

图3:两条「小电视」产品对比

6. 小结

  1. 整机是叠出来的:硬件、Boot、内核、DT、驱动、rootfs 必须对齐同一块板。
  2. 难在两头:DDR 高速板 + 无现成镜像;软件问题有时会逼你改硬件。
  3. 可复用的是核心板:小电视 → Quark → Project-Quantum;学习路径是 视频定边界 → 仓库烧录 → DT/驱动实操

参考与链接

  • 原视频: 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
    在这里插入图片描述
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐