USB视频采集卡(ms2130、2109)固件烧录修改pid、vid及eeid

USB视频采集卡(ms2130、2109)固件烧录修改pid、vid及edid

一.写在前面

本文章可通过修改、烧录固件实现USB视频采集卡(ms2130、2109)的相关信息,包括:

1.采集端USB摄像头、USB音频设备的名称及PID、VID

2.设备本身的PID、VID

3.被采集端(视频输出端)的EDID信息,包括显示器名称、PID、VID、分辨率及色彩信息

二、项目相关地址

1.ms21xx-firmware : https://github.com/sandbox-pokhara/ms21xx-firmware 一个Python库,用于生成ms2130/2109的固件

2.ms21xx-firmware-research : https://github.com/sandbox-pokhara/ms21xx-firmware-research 介绍了ms2130/2109的固件的格式

3.[MS21XX MS91XX Download Tool],ms2130/2109的官方烧录工具,可读取、烧录、保存固件,目前国内打不开。

4.[HxD] : https://mh-nexus.de/en/hxd/ 二进制文件编辑器

5.EDID Decode:https://people.freedesktop.org/~imirkin/edid-decode/ 在线解析EDID信息

6.[Monitor Asset Manager]:https://www.entechtaiwan.com/util/moninfo.shtm 可查看本机当前及历史显示器的EDID信息

三、烧录过程

1.用[Monitor Asset Manager]提取EDID信息或从网上下载相关EDID,注意VGA和DVI显示器的EDID信息是128kB(256kbit),HDMI和DP显示器是256kB(512kbit),ms21xx-firmware仅支持256kB(512kbit),否则生成时会报错 !=512,实测把程序里的==512改成256,生成的固件刷入后无法工作,但可以继续用工具刷回来

提取出的EDID可能是下面这样的(以下是一个128kB的EDID)

  00,FF,FF,FF,FF,FF,FF,00,30,AE,A5,65,82,53,00,00,29,18,01,04,68,33,1D,78,2A,DD,45,A3,55,4F,A0,27, 12,50,54,AF,EF,00,D1,C0,B3,00,A9,C0,95,00,81,80,81,8A,71,4F,81,00,02,3A,80,18,71,38,2D,40,58,2C, 45,00,FD,1E,11,00,00,1E,00,00,00,FF,00,30,31,35,33,36,45,34,31,32,31,33,37,38,00,00,00,FD,00,32, 4B,1E,53,11,00,0A,20,20,20,20,20,20,00,00,00,FC,00,4C,45,4E,20,4C,49,32,33,34,32,77,41,0A,00,09

填入python时不区分大小写,要把空格或者逗号去掉即可,之后最好再去EDID Decode在线验证以下能否正确识别

参数说明:

ms21xx-firmware -h
usage: generate.py [-h] [--chip {ms2109,ms2130}] [--output OUTPUT] [--vid VID] [--pid PID] [--firmware-version FIRMWARE_VERSION] [--video VIDEO] [--audio AUDIO] [--edid EDID] [--serial SERIAL]

options:
  -h, --help            show this help message and exit
  --chip {ms2109,ms2130}
  --output OUTPUT
  --vid VID
  --pid PID
  --firmware-version FIRMWARE_VERSION
  --video VIDEO
  --audio AUDIO
  --edid EDID
  --serial SERIAL

官网示例信息(ms2109 DELL S2421HN)

ms21xx-firmware --chip ms2109 --vid 534D --pid 2109 --firmware-version 20200211 --video "Patched Video" --audio "Patched Audio" --edid 00FFFFFFFFFFFF0010ACF14142555944011F010380351E78EAF995A755549C260F5054A54B00714F8180A9C0D1C00101010101010101023A801871382D40582C45000F282100001E000000FF004633534B4332330A2020202020000000FC0044454C4C205332343231484E0A000000FD00304B1E5312000A202020202020013502032BF14F90050403020716010611121513141F230907078301000065030C001000681A00000101304BE62A4480A070382740302035000F282100001A011D8018711C1620582C25000F282100009E011D007251D01E206E2855000F282100001E8C0AD08A20E02D10103E96000F2821000018000000000000000000000000AC  --output ms2109_DELL_S2421HN.bin
ms21xx-firmware --chip ms2130 --vid 345F --pid 2130 --firmware-version 20200211 --video "Patched Video" --audio "Patched Audio" --edid 00FFFFFFFFFFFF0010ACF14142555944011F010380351E78EAF995A755549C260F5054A54B00714F8180A9C0D1C00101010101010101023A801871382D40582C45000F282100001E000000FF004633534B4332330A2020202020000000FC0044454C4C205332343231484E0A000000FD00304B1E5312000A202020202020013502032BF14F90050403020716010611121513141F230907078301000065030C001000681A00000101304BE62A4480A070382740302035000F282100001A011D8018711C1620582C25000F282100009E011D007251D01E206E2855000F282100001E8C0AD08A20E02D10103E96000F2821000018000000000000000000000000AC  --output ms2130_DELL_S2421HN.bin

在python中运行后,即可在项目根目录获得bin固件文件

注意:

(1)如果修改了默认的VID和PID,则需要手动输入后才可以读取到硬件信息,建议使用默认的,避免遗忘后无法再次操作硬件。

默认:MS2130-vid=345F,pid=2130

​ MS2109-vid=534D,pid=2109

(2)在python3.8中,会出现报错,原因为to_byte()方法缺少参数,在generate.py主函数相关方法中加入"big"参数后解决(一共有5处,为14行、92行、94行、133行、135行)

(3)ms2109不支持序号(serial)参数,执行时不添加该参数即可

3.使用[MS21XX MS91XX Download Tool]进行烧录操作,注意备份原厂固件数据,MS2130要点击flash,ms2109默认第一个即可

刷入完成后,重新插拔即可更新固件信息

posted @ 2024-08-02 17:41  leewh1993  阅读(1368)  评论(0)    收藏  举报