news 2026/10/21 10:43:00

把吃灰的摄像头变成 RTSP 流媒体机器:Thingino 开源固件刷写与配置全记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
把吃灰的摄像头变成 RTSP 流媒体机器:Thingino 开源固件刷写与配置全记录

把吃灰的摄像头变成 RTSP 流媒体机器:Thingino 开源固件刷写与配置全记录

🔥【免费下载链接】thingino-firmwareOpen-source firmware for Ingenic SoC IP cameras项目地址: https://gitcode.com/GitHub_Trending/th/thingino-firmware

家里有吃灰的 Ingenic 芯片摄像头吗?我试了一遍 Thingino——一款专为 Ingenic SoC 设计的开源固件,刷上去之后 RTSP 流、ONVIF 协议、运动检测、MQTT 接入 Home Assistant 这些原厂死活不给的东西就都有了。这篇记录我按真实顺序踩过的流程:从判断自己的机器能不能刷,到 SD 卡刷写、OTA 升级、刷砖后怎么救,最后讲讲刷完怎么接入智能家居。每一步都给了具体命令和参数,照着做就行。

先泼盆冷水:为什么原厂固件用起来这么憋屈

在拆机之前,先把原罪的根源说清楚,否则你不知道自己在换什么:

  • 功能被锁死:视频流只走厂商私有协议,想在 VLC 或者 Frigate 里拉一路 RTSP?没有。
  • 数据去向不透明:不少品牌默认连自家云,录像、画面过一遍第三方服务器。
  • 想改个设置都费劲:Web 界面只开放厂商允许的那几项,配置项藏在私有 API 里。

Thingino 的思路是把整套系统换掉:基于 Buildroot(Buildroot 是一套从零搭建嵌入式 Linux 系统的构建框架)重新编译出 boot + 内核 + 根文件系统,全部源码开放。代价是它只认 Ingenic 芯片,其他 SoC 的机器不在服务范围内。

动手前的第一件事:确认你的摄像头在支持列表里

这一步决定后面一切,别跳过。

  • 完整型号清单在 docs/hardware/supported-hardware.md,按品牌逐个列了 SoC(比如 T31X、T23N)、图像传感器、WiFi 模块的组合。
  • 每个目录名就是一套硬件配置,例如xiaomi_xiaofang_t20l_jxf22_rtl8189ftv表示"小方摄像头、T20L 芯片、JXF22 传感器、RTL8189FTV 无线模块"。
  • 仓库分两个分支:ciao是稳定版,日常使用选它;master带实验性功能(用了尚未定型的新版 U-Boot),官方自己都建议刷 master 前最好手头有 UART 串口线和救砖经验,新手别碰。

翻到自己的型号对应条目,就记下那个目录名,后面刷写和 OTA 都要用。

三条刷写路线:SD 卡、网络 OTA、CH341A 编程器

同一个目标,三条路,难度和前置条件完全不同,按你的现状选。

路线一:SD 卡盲刷(最省事,前提是原 bootloader 还活着)

适合固件还能启动、或者已经跑过 Thingino 的机器:

  1. 拿到对应型号的完整固件镜像(编译产物形如thingino-<camera>.bin,也可以从项目 release 里下载)。
  2. 把 SD 卡格式化成 FAT32(exFAT/NTFS 不认)。
  3. 把镜像放到卡根目录,按设备情况命名:
    • 已装 Thingino bootloader 的机器:autoupdate-full.bin,开机后 boot 阶段自动检测、写入整片 flash 并重启,刷完会在卡上留一个autoupdate-full.done标记防止重复刷;
    • 部分原厂机器:thingino.bin,配合 UART 进 U-Boot 手动执行sf probe / sf erase / sf write序列写入。
  4. 断电插卡,上电等待,别中途拔电源。

这条路最大的风险点:如果你不确定自己 bootloader 是哪种,插错文件白等三分钟。所以先查自己的型号文档(docs/cameras/ 下有逐机型的说明,含 UART 引脚位置图)。

路线二:网络 OTA(机器能正常上电联网时的最佳路线)

编译好固件后,不用拆机、不用拔卡,在构建机上直接推给摄像头:

IP=192.168.88.127 make ota

常用变体(都要带IP=<摄像头地址>):

make 目标动作底层工具
make ota/ota-full整片固件全刷sysupgrade
make ota-kernel只刷内核flash-ota
make ota-uboot只刷 bootloader + 环境分区flash-ota
make ota-rootfs刷根文件系统 + 数据分区flash-ota
make ota-upgraderootfs + data,刷前自动做配置备份flash-ota

两个可选环境变量:FORCE=1跳过 IMAGE_ID 一致性检查,BACKUP=1强制先备份配置。刷内核这类不碰 overlay 的分区时,配置备份分区(mtd2)原样保留;做全刷时系统会在开机早期自动把配置从备份分区还原回新系统,所以 WiFi 密码、时区这些不用重新填。

完整机制在 docs/firmware/sysupgrade.md,包括 magic 校验表(刷错文件会被拒绝,不会写坏分区)和两阶段写 flash 的流程。

路线三:CH341A 编程器(终极兜底,机器彻底不开机才用)

把 flash 芯片扣下来(或飞线夹住 SOIC8 焊盘)接 CH341A,用 snander 工具直接读写整片 flash。适合"SD 卡刷写失败 + 进不了 U-Boot"的彻底变砖场景。需要烙铁和一点焊接耐心。

刷完之后的日常:升级、备份、配置

升级与备份

系统内直接跑sysupgrade:

  • sysupgrade -f整包全刷,-b只刷 bootloader,-k只刷内核,-r只刷根文件系统;
  • sysupgrade -B(或--backup)在任何写操作前先做配置备份;
  • 也可以直接喂文件或 URL:sysupgrade /path/to/image.bin会自动识别 magic 字节决定刷哪个分区。

改配置的姿势:jct + thingino.json

Thingino 的系统配置集中在/etc/thingino.json,改它不用手编辑 JSON,用仓库里的jct工具:

jct /etc/thingino.json set ha.enabled true /etc/init.d/S93ha restart

上面两行就是打开 Home Assistant 接入。改完重启对应 init 服务即可生效,比手改 JSON 少踩引号转义的坑。

让摄像头干活:RTSP、ONVIF 与 Home Assistant 三件套

这是刷完固件最有成就感的部分,三样东西基本开箱可用。

RTSP 拉流

刷完即得标准 RTSP 端点,VLC、Frigate、go2rtc 都能直接消费。仓库里还有现成的拉流脚本可以参考 scripts/go2rtc.sh 和 scripts/mediamtx.sh,媒体链路细节文档在 docs/media/。

ONVIF

稳定版自带 ONVIF server(ciao 分支用的是原版实现),海康、大华生态的 NVR 和大部分 ONVIF 客户端能直接发现设备。规范文档都备在 docs/onvif/ 下,排障时对着查。

Home Assistant:自动发现,不用写一行 YAML

这是我最喜欢的功能。前置条件只有一个:局域网里有一个摄像头和 HA 都够得着的 MQTT broker(比如 HA 自带的 Mosquitto add-on),然后在摄像头 Web UI 的 Services → MQTT Subscriptions 里填 broker 地址,接着执行前面那两行jct命令。

几秒后 HA 里自动冒出一个设备,带全套实体(具体见 docs/thingino/services/homeassistant.md):

  • 二进制传感器:运动检测、门铃(如果有);
  • 开关类:运动检测总开关、IR-CUT、日夜模式、隐私遮挡、850nm/940nm 红外灯、白光灯;
  • 传感器:固件版本、WiFi 信号强度;
  • 按钮:抓快照、重启、PTZ 方向(如果硬件支持);
  • 固件更新实体:会自动检查上游 release,有新固件时 HA 里直接点安装。

不想暴露某个实体,jct关掉对应enable_xxx开关即可,比如jct /etc/thingino.json set ha.enable_reboot false。

翻车现场:救砖手册与几个高频坑

刷固件这件事,假设自己会翻车是基本修养。按恢复成本从低到高排:

  1. SD 卡恢复(bootloader 还活着):FAT32 卡根目录放autoupdate-full.bin,插卡上电,自动刷。
  2. Ingenic Cloner(USB 数据线连着 SoC 的机器):短接 flash 芯片 5/6 脚进 cloner 模式,电脑跑 cloner 工具灌固件。
  3. U-Boot 串口 + SD 卡:bootloader 挂了也能救,把 bootloader 镜像写到卡上,BOOT_SEL 短接 GND 开机从 SD 启动,先把引导链修回来。
  4. CH341A 编程器:以上全失效的最后底牌。

高频坑,我挨个说过:

  • SD 卡格式错(exFAT 不行,必须 FAT32)→ 开机无任何反应,指示灯行为异常;
  • 文件名错(该叫autoupdate-full.bin的机器放了别的名字)→ boot 扫不到,白等;
  • 刷master分支的固件后想回滚 → 没有 UART 备份就只能走 cloner/编程器;
  • OTA 时IMAGE_ID校验失败 → 确认CAMERA=传对了型号,或临时FORCE=1(先想清楚为什么不一致)。

完整恢复流程在 docs/firmware/camera-recovery.md,建议刷写前先把这篇读完,五分钟的事。

获取代码与编译:两分钟搞定的部分

git clone --recurse-submodules https://gitcode.com/GitHub_Trending/th/thingino-firmware cd thingino-firmware

--recurse-submodules不能省,内核、U-Boot、大量依赖库都在子模块里。拉下来之后两条编译路线:

  • 直接编译:make update && make,需要宿主机装齐 Buildroot 依赖;
  • 容器编译(更省心):./build-container.sh,自动拉预构建镜像,只要机器上有 Docker 或 Podman。

产物在output/images/下,thingino-<camera>.bin就是完整固件,另有rootfs.squashfs、data.jffs2、uImage等分区文件供 OTA 部分升级使用。各机型的 defconfig 都放在configs/cameras/<型号>/里,比如configs/cameras/xiaomi_xiaofang_t20l_jxf22_rtl8189ftv/下有对应的*_defconfig和thingino.json,想知道某台机器默认装了什么,翻那里的文件比猜快。

写在最后:去哪继续挖

刷进去只是开始,这个项目的文档密度比大多数固件项目高得多,几个值得收藏的入口:

  • 硬件支持总表:docs/hardware/supported-hardware.md
  • 固件镜像结构与分区布局:docs/firmware/firmware-image-structure.md
  • 刷写/OTA 机制:docs/firmware/sysupgrade.md
  • 救砖流程:docs/firmware/camera-recovery.md
  • Home Assistant / MQTT 接入:docs/thingino/services/
  • 开发向:术语表 docs/dev/glossary.md、provisioning 批量部署 docs/dev/provisioning-system.md(用 DHCP option 160 让多台机器开机自动拉配置,装多路监控时省得逐台点)

一句话总结我的体验:确认芯片是 Ingenic、查表确认型号被支持,然后照着autoupdate-full.bin或者make ota走一遍——半小时左右,一台闭源云摄像头就变成了局域网里标准的行为。翻车了也别慌,SD 卡 + cloner + 编程器三级救援链摆在那,这个项目的维护者明显把"救砖"当成了一等公民来设计。

🔥【免费下载链接】thingino-firmwareOpen-source firmware for Ingenic SoC IP cameras项目地址: https://gitcode.com/GitHub_Trending/th/thingino-firmware

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 10:41:21

Unity 转微信小游戏:从 WebGL 导出到真机预览的完整路径

Unity 转微信小游戏&#xff1a;从 WebGL 导出到真机预览的完整路径 【免费下载链接】minigame-unity-webgl-transform 微信小游戏Unity引擎适配器文档。 项目地址: https://gitcode.com/GitHub_Trending/mi/minigame-unity-webgl-transform Unity WebGL 微信小游戏适配…

作者头像 李华
网站建设 2026/10/21 10:38:16

SatDump 卫星信号接收与图像解码完整指南:三步出第一张气象图

SatDump 卫星信号接收与图像解码完整指南&#xff1a;三步出第一张气象图 【免费下载链接】SatDump A generic satellite data processing software. 项目地址: https://gitcode.com/GitHub_Trending/sa/SatDump SatDump 是一款开源卫星数据处理软件&#xff1a;它能直接…

作者头像 李华
网站建设 2026/10/21 10:33:35

STM32多参数采集报警系统:ADC多通道+DMA+OLED仿真设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 10:33:31

混合信号设计验证:形式化+统计+电路分析三重一致性验证方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 10:33:31

STM32传感器实战:从信号类型到多传感器融合的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华