OpenIPC 初探: GK7205 v200 出图记录

在这里插入图片描述

OpenIPC 和芯片 GK7205V200

OpenIPC 是一个开源固件/系统项目,面向 IP 摄像机(网络摄像头)硬件,用来替代那些厂商出厂的、闭源、偶尔弃用或安全性较差的固件。

  • 它基于 Buildroot 构建一个 Linux-系统环境,并适配不同的 SoC(芯片)、图像传感器、网络/视频流接口。
  • 源码采用 MIT 许可(较宽松),允许用户出于个人目的使用,并且欢迎社区贡献。
  • 它的目标是提供更多控制权给用户:你可以控制相机的网络、视频流、设置、删除那些你不想的服务(比如后门、挖矿、无谓的云上传)——OpenIPC 自己就提到“no back-doors, no botnets, no crypto-mining malware”之类的话。

GK7205V200 Goke Microelectronics(国科微或 Goke)推出,型号为 GK7205V200。官方资料中称其 “Vision Processing Chip GK7205V200 for Industry Market”。典型用于网络摄像机 /安防模块

GK7205V200 是 OpenIPC 官方支持的硬件之一, 可以考虑用 OpenIPC 来替换原厂固件,从而获得更高的控制、可能更好的隐私保障

关键特性如下:

  • 支持 2MP 分辨率(1920×1080@30fps, 1280x720@120fps)或其他高分辨率依厂商模块。
  • 支持网络协议:TCP/IP、HTTP、RTSP、ONVIF 等。 模块说明中提到 Onvif 2.4 支持。 ([Global Sources][9])
  • 支持日/夜切换 (Day & Night)、3D DNR(数字降噪)、Digital WDR(宽动态范围)等监控常见功能。 ([Global Sources][9])
  • 工作温度范围较大、支持网络接口(如 10/100 Base-T Ethernet)等。 ([Global Sources][9])

购买

国科微 gk7205v200
在这里插入图片描述
老板人不错, 知无不言, 官网上的FPV固件已经找不到了, 后面找老板要了一个.
寄过来的摄像头, 已经接好了串口和网口线等, 少了不少事.

烧录

  1. 原厂SDK(验证SDK)
    购买的是带SDK的版本, 官方的SDK比较简单, 基于Buildroot 构建的Linux系统, 没有复杂的功能
    按文档的编译过程也很顺利:
    在这里插入图片描述
    编译完成后可以看到SDK目录下的生成固件:
$ tree out/gk7205v200/image/
out/gk7205v200/image/
├── emmc_image
│   ├── bootargs.bin
│   ├── emmc_partitions.xml
│   ├── rootfs_96M.ext4
│   ├── uboot_gk7205v200.bin
│   └── uImage_gk7205v200
├── nand_image
│   ├── bootargs.bin
│   ├── nand_partitions.xml
│   ├── uboot_gk7205v200.bin
│   └── uImage_gk7205v200
└── spi_image
    ├── bootargs.bin
    ├── rootfs.64k.jffs2
    ├── spi_partitions.xml
    ├── uboot_gk7205v200.bin
    └── uImage_gk7205v200

3 directories, 14 files

烧录过程, 需要安装对应的驱动, 连接串口和网口, 在Windows 环境下烧录, 和海思的烧录基本一样.


  1. OpenIPC 官方固件

    • 官网已经提供了固件下载和烧录指导Goke GK7205V200

    • 准备工作

      网络连接: 固件传输是通过TFTP下载到IPC中的
      串口连接: 需要通过输入命令来升级
      TFTP服务端: PC端安装TFTP服务, 并存放相应的固件
      OpenIPC 的固件: 从官网下载, 放到TFTP服务端.

    • 配置固件的相关参数
      在这里插入图片描述

    • 下载固件, 在指导页面有相关的链接和操作说明
      Download OpenIPC Firmware (Ultimate) image在这里插入图片描述

    • 开始烧录
      烧录指导中, 备份固件部分可以忽略
      根据文档的步骤, 一行行执行命令输入到串口中执行.

     	# Enter commands line by line! Do not copy and paste multiple lines at once!
     	setenv ipaddr 192.168.1.10; setenv serverip 192.168.1.254
     	mw.b 0x42000000 0xff 0x1000000
     	tftpboot 0x42000000 openipc-gk7205v200-ultimate-16mb.bin
     	# if there is no tftpboot but tftp then run this instead
     	# tftp 0x42000000 openipc-gk7205v200-ultimate-16mb.bin
     	sf probe 0;
     	sf erase 0x0 0x1000000; sf write 0x42000000 0x0 0x1000000
     	reset
    

    到这里, IPC主板会重启, 从串口的LOG看, 出现各种错误信息可以忽略.
    在这一步执行完后, 是 不能 正常工作的, 需要再次进入uboot(重新上电, 快速输入CTRL+C)

    在引导加载程序的命令行中,使用run setnor16m配置闪存大小和类型重新映射 ROM 分区

    	# Enter commands line by line! Do not copy and paste multiple lines at once!
    	run setnor16m
    
    
  2. 使用自编译的OpenIPC固件
    基于OpenIPC的官方固件后, 可以使用sysupgrade来进行升级烧录(支持1080P @ 60fps 和 720P @ 120 fps).

    root@openipc-${soc}:~# sysupgrade --help
    OpenIPC System Updater v1.0.48
    
    Vendor  sigmastar
    SoC  ssc338q
    Kernel  04:02:47 2025-07-06
    RootFS  master+3674581, 2025-07-06
    
    Usage: /usr/sbin/sysupgrade [options]
    Where:
      -k                    Update kernel from online repository.
      -r                    Update rootfs from online repository.
          --url=[URL]       Custom URL to update from (.tgz format).
          --archive=[FILE]  Custom archive to update from (.tgz format).
          --kernel=[FILE]   Update kernel from file (uImage format).
          --rootfs=[FILE]   Update rootfs from file (squashfs format).
      -f, --force_all       Do not validate anything.
      -n, --wipe_overlay    Wipe overlay partition.
      -x, --no_reboot       Do not reboot after updating.
      -z, --no_update       Do not update self.
      -h, --help            Display this help and exit.
    

出图

烧录OpenIPC成功后, 将IPC 和 电脑接入相同的局域网后, 可以通过Web页面来对设备进行管理配置
假如设备IP为: 192.168.1.10, 使用浏览器输入: http://192.168.1.10, 会显示如下
在这里插入图片描述

  • 默认用户密码是: root 和 12345
  • 初次登录会提示修改密码, 任意即可
  • 右上角的几个主要菜单
    • Information: 设备信息

    • Majestic: 图像配置, 包括分辨率, 帧率, RTSP开关, MJPEG配置等等.
      在这里插入图片描述

    • Preview: 实时图像预览

  1. RTSP
    在配置中启用RTSP配置, 之后在播放器(如VLC)中输入: rtsp://用户名:密码@IP:端口/stream=0
    在这里插入图片描述

  2. Outgoing RTP 直推
    默认的配置是指向本地的5600端口.

    outgoing:
      enabled: true
      server: udp://127.0.0.1:5600
    

    只需要修改server的地址为接收端的IP(如: serveer: udp://192.168.1.101:5600), 即可用PC来播放来自IPC的RTP视频流:

    gst-launch-1.0 udpsrc port=5600 ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink
    

OpenIPC的出图方式相当丰富, 然而, 整个调试过程中并不是一帆风顺:

  1. 资料和文档相当不完善, 对新手极不友好
  2. 匹配的硬件在某些程度上全靠猜和蒙, 没有明确的标杆/官方化的产品
  3. 官方的固件只能输出1920x1080@20, 25, 不支持更高的帧率
  1. MJPEG 预览
    直接访问IPC的web管理页面可以看到Preview功能

其他

  1. Majestic 配置: /etc/majestic.yaml
    # 修改后重启Majestic 即可生效
    /etc/init.dS95Majestic restart
    
  2. 烧录命令解析
    • setenv ipaddr 192.168.1.10; setenv serverip 192.168.1.254

      • setenv:设置 U-Boot 的环境变量。
      • ipaddr:开发板自身的 IP 地址(这里是 192.168.1.10)。
      • serverip:TFTP 服务器的 IP 地址(PC 或服务器,存放固件文件的地方)。
        👉 作用:保证 U-Boot 知道从哪里下载固件文件。
    • mw.b 0x21000000 0xff 0x1000000

      • mw.bmemory write (byte),往内存写数据。
      • 0x21000000:内存的起始地址。
      • 0xff:写入的字节值。
      • 0x1000000:写入的字节数量(16MB)。
        👉 作用:把 0x21000000 地址开始的 16MB 内存区域全部写成 0xFF,相当于清空缓存区域。
    • tftpboot 0x21000000 openipc-ssc325-ultimate-16mb.bin

      • tftpboot:通过 TFTP 下载文件到内存。
      • 0x21000000:文件下载后存放到内存的地址。
      • openipc-ssc325-ultimate-16mb.bin:要下载的固件文件名。
        👉 作用:把固件从 TFTP 服务器下载到内存。
    • sf probe 0; sf lock 0;

      • sf probe 0:初始化 SPI Flash 设备(编号 0)。
      • sf lock 0:解锁 Flash,允许写入。
        👉 作用:准备好 Flash 芯片进行擦写操作。
    • sf erase 0x0 0x1000000; sf write 0x21000000 0x0 0x1000000

      • sf erase 0x0 0x1000000:从 Flash 起始地址 0x0 开始,擦除 16MB (0x1000000 字节)。
      • sf write 0x21000000 0x0 0x1000000:把内存地址 0x21000000 中的数据(即刚才下载的固件)写入 Flash 起始地址 0x0,写入大小 16MB。
        👉 作用:把固件完整烧写到 Flash 中。
    • reset

      • 复位系统,重启。
        👉 作用:设备重启后,就会从刚刚写入的 OpenIPC 固件启动。

参考

Welcome to OpenIPC Documentation
openipc记录
Ardupilot & OpenIPC & 基于WFB-NG构架分析和数据链路思考
OpenIPC(SCC338Q+IMX415+Hi3536DV100+RTL8812AU)性能测试
Sysupgrade

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值