Linux 小电视:稚晖君的开源桌面终端,从 6 层板到 Quark

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、外设 自研主板 + 结构件
Boot U-Boot 初始化 DDR/时钟/存储,加载内核
内核 Linux BSP设备树(DT) 描述板子,挂驱动
驱动 显示、USB、Wi-Fi、音频、摄像头、MMC 等 无现成镜像,逐项调
用户态 DebianXfceVNC/RDP 桌面、远程、装软件
应用 播放、RTSP 、Web、OpenCV/TensorFlow、语音 视频里的 demo
text 复制代码
上电 → 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 时序、背光
USB USB 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,贴近小电视)

Planck Pi(F1C200s,低成本入门)

建议五步

  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 小电视 / Quark HoloCubic
芯片 全志 H3 + Linux ESP32
软件栈 U-Boot / DT / Debian... IDF、LVGL
适合学 板级 Linux、驱动、rootfs UI、棱镜、物联网屏
仓库 Project-Quantum HoloCubic

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

6. 小结

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

参考与链接

相关推荐
qq_349447951 小时前
在ollama下部署DeepSeek-r1模型(linux机器)
linux·运维·服务器
hehelm1 小时前
仿muduo库实现高并发服务器—Channel类
linux·服务器·开发语言·网络·c++
小此方2 小时前
Linux加餐(二):藏在Linux中的设计模式(二)单例模式与线程池
linux·单例模式·设计模式
猫吃了源码2 小时前
Linux系统制作 Ubuntu Server 24.04 启动U盘详细教程
linux·服务器·ubuntu
hehelm2 小时前
仿muduo库实现高并发服务器—EventLoop
linux·服务器·网络·c++
Lucky09282 小时前
codex 安装前置软件
linux·运维·macos
mengge.cloud2 小时前
0823Keepalived + LVS(DR) + MariaDB主主 小白完整实战教程
linux·运维·网络·oracle·负载均衡·mariadb·lvs
kk”10 小时前
Linux的组和权限管理
linux·运维·服务器