学习做一个基于RK3588的简单视频监控系统

学习做一个基于RK3588的简单视频监控系统 一、整体介绍本文基于正点原子 ATK-DLRK3588B 开发板完整梳理 RK3588 平台环境搭建、系统烧录、串口调试、两种系统启动方式实操流程配套 Windows 上位机 Ubuntu 虚拟机组合开发方案。1.1 硬件资源说明开发板底板外设板载资源包含千兆网口、多路 USB、Type-C 调试 / 烧录口、HDMI、MIPI 摄像头、六轴传感器、功能按键、RS485/232、TF 卡、音频接口、电源输入等外设配套用户指示灯、复位 / 烧录控制按键满足调试与产品开发需求。核心板硬件参数主控瑞芯微 RK35884×A76 4×A55 八核架构运行内存4GB LPDDR4X本地存储32GB EMMC 高速闪存1.2 嵌入式 Linux 三大核心组成任何嵌入式 Linux 设备运行都离不开三部分开机按顺序执行二、开发板运行模式与进入方式RK 平台共 4 种工作模式仅 Loader、Maskrom 支持镜像烧录表格模式支持烧录功能说明Normal 正常启动否日常运行 Linux 系统产品常态模式Recovery 恢复模式否系统升级、恢复出厂固件使用Loader 模式是常规刷机模式开发调试主流方案Maskrom 模式是底层救砖模式空白新板 / 系统损坏无法开机时使用2.1 Loader 模式进入方法2.2 Maskrom 救砖模式进入方法三、整体开发环境架构U-BootBootloader 引导程序设备上电后第一个运行程序完成硬件初始化、内存配置负责加载 Linux 内核同时支持刷机、切换启动模式等同于 PC 电脑 BIOS。Linux Kernel内核系统底层核心统一管理 CPU、内存、网口、显示、外设驱动是硬件与上层软件的桥梁没有内核所有外设无法正常工作。Rootfs 根文件系统内核启动后挂载的系统目录存放所有 Linux 命令、运行库、软件程序、配置文件日常ls/cd/ifconfig等操作指令全部存储在此。开发板内置 EMMC 闪存划分多个独立分区各司其职uboot 分区 (4M)存放开机引导程序boot 分区 (64M)存放 Linux 内核镜像rootfs 分区 (14G)根文件系统系统运行主体misc、recovery、backup、oem、userdata系统恢复、厂商配置、用户数据存储分区硬件按键按住 V 音量键上电 / 复位开发板直接进入U-Boot 命令串口打断自动启动输入downloadLinux 系统内执行reboot loader重启跳转。空白未烧录镜像的开发板上电自动进入已烧录系统但无法正常启动按住 UPDATE 按键上电 / 复位U-Boot 命令行执行rbrom强制切换。整套环境分为 Windows 主机、Ubuntu 虚拟机、RK3588 开发板三端分工明确Windows 主机Type-C0 烧录口搭配 RKDevTool 工具完成系统镜像烧写Type-C 调试串口搭配 Putty 串口工具实时查看开机日志、下发 Linux 指令Ubuntu 虚拟机虚拟机网卡桥接电脑物理网口与开发板 ETH0 网口互通存放 NFS 根文件系统支持网络挂载启动两种系统启动方案EMMC 本地启动内核、根文件系统全部存放在开发板自带存储上电本地加载NFS 网络启动仅从 EMMC 加载 U-Boot 与内核根文件系统挂载虚拟机共享目录开发调试高频使用。硬件接线清单搭建环境需连接三类线材DC 电源线为开发板供电网线连通电脑网口与开发板 ETH0实现网络通信两根 Type-C 数据线一根接调试串口用于 Putty 交互一根接 Type-C0 烧录口用于系统烧写。四、RKDevTool 镜像烧录实操4.1 工具准备工具存放路径D:/RK3588开发板资料/05开发工具/RKDevTool_Release_v2.92.zip解压压缩包双击RKDevTool.exe启动瑞芯微烧录工具。4.2 进入刷机模式并识别设备按住开发板 V 音量键后上电设备进入 Loader 模式工具底部状态栏提示「发现一个 LOADER 设备」代表通信正常。4.3 导入分区配置右键工具空白区域选择【导入配置】定位镜像目录D:/RK3588开发板资料/09系统镜像/default.cfg并打开工具自动填充所有分区镜像路径。4.4 执行烧录确认所有镜像路径加载完成点击【执行】按钮开始批量烧录各分区镜像右侧日志窗口实时打印烧录进度全部分区完成后提示「下载完成」断电重启开发板即可。五、Putty 串口调试与系统启动5.1 Putty 串口参数配置打开 Putty切换至 Serial 串口分类填写参数Serial line设备管理器查询对应 COM 号例 COM4Speed (波特率)1500000Data bits8Stop bits1ParityNoneFlow controlNone 配置完成点击 Open 打开串口窗口。5.2 进入 U-Boot 命令行重启开发板串口持续打印硬件初始化日志出现提示Hit key to stop autoboot(CTRLC)倒计时阶段按下CtrlC打断自动启动进入 U-Boot 交互终端。5.3 两种启动命令run mmcboot从板载 EMMC 本地存储启动 Linux 系统run nfsboot通过网络挂载 Ubuntu 虚拟机根文件系统启动。 输入对应指令回车等待内核与文件系统加载。5.4 进入 Linux Shell 终端系统加载完成后窗口输出rootATK-DLRK3588:/#命令提示符代表成功进入 Linux 系统可执行各类调试指令。基础概念讲解1. V4L2 视频框架Linux 下所有图像、摄像头设备统一遵循V4L2驱动标准应用程序通过这套标准接口采集画面、调节曝光 / 分辨率等参数。2. vivid 虚拟驱动是什么vivid 全称 Virtual Video Test Driver是内核自带的虚拟摄像头驱动无需实体硬件就能模拟出标准 V4L2 视频设备/dev/videoX。 作用开发图像算法、调试视频采集程序时不用外接真实摄像头快速验证代码逻辑。3. 两种编译部署方案对比直接编译进内核驱动代码打包到内核镜像开机自动生效缺点是每次修改驱动配置都要重新编译、烧录内核。编译为内核模块 (.ko 文件)单独生成驱动模块文件复制到根文件系统配置开机脚本自动加载无需重刷内核调试更灵活。二、开发环境基础要求硬件正点原子 ATK-DLRK3588B RK3588 开发板上位机WindowsPutty 串口工具、RKDevTool 烧录工具 Ubuntu 编译虚拟机前置条件能通过 Putty 串口正常登录开发板 Linux 系统三、内核配置 编译 vivid 驱动内置内核方案1. 进入内核源码目录bash运行cd sdk_rk3588/kernel/2. 打开图形化内核配置界面bash运行make menuconfig3. 逐层开启 vivid 驱动支持菜单路径plaintextDevice Drivers --- * Multimedia support --- Media drivers --- [*] V4L test drivers --- * Virtual Video Test Driver*代表将驱动直接编译进内核配置完成保存退出。4. 编译 RK3588 内核镜像-j2 代表使用 2 线程并行编译可根据虚拟机 CPU 核心数调整bash运行make rk3588-atk-devkit.img -j25. 打包生成 boot 分区镜像bash运行./mkimg.sh执行后输出boot.img该镜像包含更新后的内核与 vivid 驱动。6. 更新内核到开发板使用上一篇文章提到的 RKDevTool 烧录工具单独烧录boot.img到开发板 boot 分区烧录完成重启开发板。四、验证 vivid 虚拟摄像头设备开发板重启进入 Linux 系统后通过v4l2-ctl工具校验虚拟设备是否正常生成。1. 列出系统全部视频设备bash运行v4l2-ctl --list-devices输出会出现 vivid 标识的虚拟摄像头设备节点/dev/video0。2. 查看 vivid 驱动详细信息bash运行v4l2-ctl --device/dev/video0 -D能查看驱动名称、内核版本、设备类型、采集能力、画面参数控制项亮度、曝光等正常输出示例