新闻详情

新闻详情

首页 / 资讯中心 / 详情

【Linux】RK3568-系统镜像(六)

发布时间:2026/10/2 8:18:19来源:尧图网络
【Linux】RK3568-系统镜像(六)
文章目录1.镜像根文件系统1.镜像根文件系统一、核心概念对照表概念定义举例类比根文件系统Linux 运行时挂载的/目录树是内容/bin、/etc、/opt/camera书的内容镜像存储介质的逐字节副本是一个文件sdcard.img、rootfs.img书的影印件固件固化在芯片里的程序单片机 hex、路由器系统硬件里刻的字烧录把镜像写入存储介质dd ifxxx.img of/dev/mmcblk0复印量产把原型方案批量复制到多台设备生产线批量烧录批量印刷二、MCU 与 MPU 的本质区别维度单片机MCU微处理器MPU跑 Linux运行内容只有一个程序Bootloader Kernel 根文件系统 多个服务启动流程复位 → 执行main()BootROM → SPL → U-Boot → Kernel → systemd → 你的服务量产方式烧录 hex/bin 到 Flash制作整机镜像批量写入 eMMC/SD用户程序形态就是整个程序是系统里的一个服务差异化一般无每台设备需唯一 token/序列号/MAC关键结论MCU 烧程序MPU 烧系统 服务。三、Linux 启动与自启动机制3.1 完整启动链路芯片复位 ↓ BootROM芯片固化无法修改 ↓ SPL二级引导很小 ↓ U-Boot大引导加载内核 ↓ Kernel加载驱动、挂载根文件系统 ↓ init / systemdPID1总调度器 ↓ systemd 读取所有 .service 文件 ↓ camera.service 被触发 → 执行 start_camera.sh ↓ 启动 mediamtx / frpc / ffmpeg3.2 为什么 .service 能自动运行systemd 启动时扫描/etc/systemd/system/等目录下的.service文件。执行systemctl enable camera.service时systemd 在/etc/systemd/system/multi-user.target.wants/下创建一个软链接。开机进入multi-user.target时systemd 会启动所有被想要Wanted的服务。WantedBymulti-user.target就是告诉 systemd“我要跟着多用户模式一起启动”。本质enable 创建软链接。3.3 为什么不能用 rc.local对比项rc.localsystemd依赖管理无靠sleep硬等声明After、Wants自动排序崩溃重启无Restarton-failure自动拉起日志需自己重定向journalctl统一管理并行启动串行慢并行快量产可控性弱强结论rc.local 是玩具systemd 是产品。四、你的项目架构回顾4.1 数据流向USB摄像头 → FFmpeg(H.264编码) → MediaMTX(本机RTSP) → frpc(内网穿透) → 阿里云服务器(frps) → 手机VLC远程拉流4.2 目录结构原型阶段/home/baiwen/video1/ ├── mediamtx # MediaMTX 可执行文件 ├── mediamtx.yml # MediaMTX 配置 ├── frp_0.71.0_linux_arm64/ # FRP 客户端目录 │ ├── frpc │ └── frpc.toml ├── start_camera.sh # 开机自启脚本 └── camera.log # 运行日志4.3 三个关键文件文件作用位置start_camera.sh启动脚本负责依次拉起三个服务/home/baiwen/video1/camera.servicesystemd 服务定义实现开机自启/etc/systemd/system/frpc.tomlFRP 客户端配置含 token/home/baiwen/video1/frp_xxx/五、从原型到量产四个阶段阶段 1原型验证你现在做法手动配置逐台操作装系统拷贝文件到/home/baiwen/video1/写camera.servicesystemctl enable重启验证特点能跑通但不能批量复制。阶段 2小批量试产5~20 台做法SD 卡克隆 手动改 token在一台样机上配好所有东西用dd把 SD 卡做成.img每台烧完后手动 SSH 改frpc.toml的 token验证硬件和软件一致性# 制作镜像ddif/dev/mmcblk0ofsdcard.imgbs4M# 烧录到新卡ddifsdcard.imgof/dev/mmcblk0bs4M缺点手动改 token效率低易出错。阶段 3中批量100 台以上做法定制镜像 first-boot 自动化用Yocto或Buildroot定制精简根文件系统把mediamtx、frpc、脚本、camera.service直接编入镜像用厂商烧录工具如 RKDevTool、uuu批量烧录 eMMC首次启动运行first-boot.service自动个性化first-boot 脚本要做的事#!/bin/bash# 1. 生成唯一 tokenTOKEN$(openssl rand-hex16)# 2. 生成唯一序列号用 MAC 地址SERIAL$(cat/sys/class/net/eth0/address|tr-d:)# 3. 从模板生成配置文件seds/__TOKEN__/$TOKEN//opt/camera/frpc.toml.template/etc/frp/frpc.toml# 4. 设置唯一主机名echocamera-$SERIAL/etc/hostname# 5. 自我禁用只跑一次systemctl disable first-boot.service阶段 4正式产品做法CI/CD OTA 升级Yocto/Buildroot做完整构建流水线代码提交 → 自动编译 → 生成镜像镜像里预置应用打包成.deb或放到/opt/systemd 服务RAUC / SWUpdate做 OTA 升级框架A/B 分区方案升级失败可回滚生产线用夹具 自动化工具烧录写入序列号、MAC、密钥出厂后通过 OTA 推送更新六、量产镜像里应该装什么6.1 完整交付包结构你的应用包/ ├── opt/camera/ # 应用目录 │ ├── mediamtx # 可执行文件 │ ├── mediamtx.yml # 配置 │ ├── frpc # FRP 客户端 │ ├── frpc.toml.template # 配置模板token 留空首启时填 │ └── start_camera.sh # 启动脚本 ├── etc/systemd/system/ │ ├── camera.service # 服务定义 │ └── first-boot.service # 首启个性化服务 └── etc/first-boot.d/ └── 01-personalize.sh # 个性化脚本6.2 关键点项目原型阶段量产阶段token硬编码在 frpc.toml用模板 首启生成主机名手动设置用 MAC 地址自动生成服务启动手动systemctl start编入镜像开机自动升级方式手动 SSH 替换OTA 推送七、打包方式对比方式适合场景做法直接拷贝到 rootfs自己维护镜像放进 Yocto/Buildroot 的recipes或overlay打成.deb包Debian/Ubuntudpkg-deb --build生成安装自动放好服务Docker 容器应用隔离应用做成镜像宿主 systemd 拉起容器只读分区防篡改根文件系统只读应用分区单独可写八、镜像 vs 根文件系统核心区别维度根文件系统镜像本质目录树内容文件副本运行时是活的被挂载使用是死的只能被读写包含关系是镜像的一部分可以包含根文件系统路径/xxx.img制作方式用cp、dpkg填充用dd、mkfs、mksquashfs生成使用方式挂载后直接访问用dd写入存储介质类比书的内容书的影印件一句话根文件系统是 Linux 运行时看到的/镜像是把它打包成的.img文件。九、术语速查表术语含义类比镜像 (Image)存储介质的逐字节副本书的影印件根文件系统 (rootfs)Linux 运行时的/目录树书的内容固件 (Firmware)固化在芯片里的程序硬件里刻的字Bootloader启动引导程序U-Boot电脑的 BIOSKernelLinux 内核操作系统的心脏systemdLinux 的总调度器PID1工厂的调度中心Servicesystemd 管理的服务单元工厂里的一条产线烧录把镜像写入存储介质复印量产批量复制到多台设备批量印刷OTA空中升级手机系统更新A/B 分区双分区互为备份升级失败可回滚双系统启动first-boot首次启动时运行的个性化脚本新手机开机设置十、给你的下一步建议当前状态原型验证完成 ✅短期目标如果你想做几台设备自用在一台样机上配好所有东西用dd做成.img每台烧完后手动改 token验证一致性中期目标如果想做小批量产品学 Yocto 或 Buildroot做定制镜像写first-boot.sh做自动化个性化用厂商烧录工具批量写入长期目标如果要做正式产品引入 OTA 升级框架A/B 分区支持失败回滚云端设备管理十一、一句话总结整个项目你做的不是烧一个程序而是部署一个系统。镜像是打包方式根文件系统是运行内容systemd 服务是启动机制first-boot是个性化方案OTA是升级方案。这五点就是嵌入式 Linux 产品化的全部骨架。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

VSCode+Xdebug+phpstudy集成:PHP断点调试实操指南 2026/10/2 8:58:34

VSCode+Xdebug+phpstudy集成:PHP断点调试实操指南

还在用var_dumpdie排查 PHP 代码的朋友,建议把这篇看完。我见过太多开发者在一个 PHP 项目里堆满临时echo,改一行、删一行,识别变量的时间比写业务逻辑还长。VSCode Xdebug phpstudy 这套组合,能把 PHP 调试从“盲猜现场”变成“…

阅读更多 →
CentOS 7 22端口连接不上?SSH无法访问排查指南 2026/10/2 8:58:34

CentOS 7 22端口连接不上?SSH无法访问排查指南

先说个真实场景:某天同事跑过来说"我新装的 CentOS 7 用 SSH 连不上,22 端口根本无法访问",我过去一看,客户端一直卡在连接超时,ping 虚拟机倒是通的。这种问题我在工作中碰到太多次了,从新手到老…

阅读更多 →
基于YOLOv8的智能枕头打鼾频率统计:完整源码+可视化界面+数据集 2026/10/2 8:58:34

基于YOLOv8的智能枕头打鼾频率统计:完整源码+可视化界面+数据集

简介:这份资源面向计算机、人工智能、通信工程等专业的在校学生与教师,提供一套基于YOLOv8的智能枕头打鼾频率统计完整方案,可用于毕业设计、课程设计或大作业。项目围绕目标检测与计算机视觉展开,通过模型训练与可视化界面实现打…

阅读更多 →
YOLOv8人头计数检测系统:从训练到ONNX部署的完整实践 2026/10/2 8:58:33

YOLOv8人头计数检测系统:从训练到ONNX部署的完整实践

简介:基于YOLOv8的人头计数检测系统源码包,适合具备一定Python与深度学习基础的开发者,用于快速搭建人头检测与计数应用;资源集成PyTorch、Ultralytics框架及ONNX模型,附带精美GUI界面,可直接运行或二次开发…

阅读更多 →
COMSOL散射体法诺共振仿真:从物理机制到PML设置与散射截面提取 2026/10/2 8:58:33

COMSOL散射体法诺共振仿真:从物理机制到PML设置与散射截面提取

好久没写散射仿真的实操分享了。这两天帮一个做纳米光学方向的研究生调 COMSOL 模型,他的问题很有代表性:算出来的散射截面永远是那种左右对称的钟形峰,怎么看都不像文献里那种“陡谷尖峰”的不对称曲线。我问他入射极化、颗粒尺寸、背景条件…

阅读更多 →
SocraticLM:用状态机重构LLM教学逻辑 2026/10/2 8:58:26

SocraticLM:用状态机重构LLM教学逻辑

1. 这不是又一个“AI家教”:SocraticLM的本质是教学逻辑的逆向工程你有没有试过让大模型给你讲一道高中物理题?大概率会得到一段结构工整、术语准确、但让你越听越懵的解释——它把牛顿第二定律拆成三行公式,再配上两个生活例子,最…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉