找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 254|回复: 0

修改MS2130/31采集卡显示名称等EDID信息模拟为其他显示器

[复制链接]

28

主题

1

回帖

148

积分

管理员

积分
148
发表于 2024-10-9 17:49:16 | 显示全部楼层 |阅读模式
背景
MS2130,虽然价格只有几十元,但是在1080p下的性能还是很不错的。我有一个MS2130和一个MS2131,但是使用的时候发现他们在设备上的显示名都叫“HDMI TO USB”,一个很不优雅的名字...每次看到这个名字,强迫症就犯了,于是就决心改掉他。
设备大都是通过EDID来获取显示器元数据信息,EDID共有128字节,里面包含了显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等,具体可参见:[color=var(--color)][backcolor=var(--background-color)]什么是EDID,EDID能做什么,EDID基本介绍
或[color=var(--color)][backcolor=var(--background-color)]EDID - 维基百科

那么,只要修改采集卡的EDID信息,便也许能够实现伪装/模拟成其他显示器的效果。
实践
第一步要做的是,需要导出采集器的固件,这步网络上有不少教程,总结步骤如下
  • 打开固件刷写工具
  • 界面上选择对应的芯片(MS2130/31)
  • 按实际填入VID和PID,一般来说默认的VID是345F;MS2130的PID是2310,MS2131的PID是2131;可以通过iChipGenius功能查看
  • 点击Connect连接采集卡
  • 选择Flash选项框
  • 点击Read读取固件
  • 点击SaveTo Bin保存固件
[color=var(--color)][backcolor=var(--background-color)]
更具体可参考B站大佬教程:[color=var(--color)][backcolor=var(--background-color)]【图吧小白教程】MS2130国产采集卡刷校色4K输出固件+备份教程
第二步,用任意Hex浏览工具(如WinHex)打开导出的固件文件,搜索EDID的header,果然能找到EDID信息:
[color=var(--color)][backcolor=var(--background-color)]
解析下EDID信息,便看到了那个不顺眼的"HDMI TO USB":
[color=var(--color)][backcolor=var(--background-color)]
将这128字节数据保存下来
用各类edid修改器(如EEditGold)修改下型号信息,替换掉固件中的EDID信息,然后用刷写工具刷入修改后到固件,再重新拔插下采集卡,可以看到这次设备将采集卡识别为修改后的型号了:
[color=var(--color)][backcolor=var(--background-color)]
工具化
以上整套流程下来,时间大多耗费在找EDID解析修改器,重新拼接固件上,步骤很繁琐。于是便写了个工具实现对固件中EDID的一次性修改。
工具原理如下:
  • 解析固件,查找EDID的header
  • 解析EDID
  • 按需修改EDID
  • 重新计算EDID校验码,替换原固件中的EDID,并保存修改后的固件到指定的位置。
工具中对EDID的解析是使用了[color=var(--color)][backcolor=var(--background-color)]github.com/anoopengineer/edidparser这个package,为了实现EDID的修改,魔改了这个package,目前能够实现对如下基础参数的修改:
  • ManufacturerId 三位大写字母,制造商代码,如LEN
  • ProductCode 16位产品代码
  • SerialNumber 32位序列号
  • YearOfManufacture 生产年份
  • WeekOfManufacture 生产所在周
  • MonitorName 显示器名,比如那个"HDMI TO USB",最长13位ASCII字符
程序整体使用方法如下:
  • 使用固件刷写工具备份采集卡固件
  • 按如下步骤生成修改后的固件
ms213x-rename -m <ManufacturerId> -p <ProductCode> -s <SerialNumber> -y <YearOfManufacture> -w <WeekOfManufacture> -d <MonitorName> -o <修改后固件保存位置> <备份的固件位置>
举例:
  ms213x-rename -m LEN -p 6666 -s 2333 -y 2022 -w 20 -d XianShiQi -o ./modify.bin ./firmware.bin  # 修改firmware.bin的EDID,并输出位modify.bin
示例:
[color=var(--color)][backcolor=var(--background-color)]
  • 刷写修改后的固件到采集卡中即可。
如果只是想查看固件中的edid信息,执行ms213x-rename <固件位置>即可,如果需要更详细的信息,加上-v参数:ms213x-rename -v <固件位置>
工具代码和编译release文件见:[color=var(--color)][backcolor=var(--background-color)]https://github.com/starainrt/ms213x-rename
将这个修改工具、用于查看VID和UID的ChipGenius、Edid修改器以及固件刷写工具整体打包到我的Onedrive(刷写需谨慎):[color=var(--color)][backcolor=var(--background-color)]https://rapid.b612.me/s/NlJf1 密码:5ftw3q
其他问题与解决方法使用修改EDID的固件后,在win 10/11上不显示“显示器音频”
这是windows自身的问题,问题复现方法如下:
  • 使用旧固件,采集windows系统,windows上音频设备能看到“HDMI TO USB显示器音频”
  • 刷写修改EDID后的固件,再次采集同一个windows系统,采集功能正常,但windows上音频设备无法看到这个采集卡的音频输出
使用非windows设备测试或在首次使用此采集卡的windows系统上测试,不会出现此问题,MS2131的录音与音频功能也没有失效。
具体原因可能与[color=var(--color)][backcolor=var(--background-color)]通过修改注册表强制更新Windows中显示器音频设备名的方法
这篇文章中记录的原理有关,但使用文中的方法无法解决这个问题,目前也没有能找到这个问题的解决方案,待进一步跟踪。
更新:EDID的问题,重刷一遍就好了
刷写固件当中报错
包括或不限于不小心拔掉了采集卡,或者写入固件时报校验失败或者写入了不合适的EDID。
  • 此时,如果USB设备还能识别,flash可能被重置为默认固件,VID和PID会有变化。用ChipGeius之类的工具能看到采集卡的VID和PID,将固件刷写工具中的VID和PID设置为ChipGeius中显示的VID和PID,重新刷写备份的原固件即可救活。
  • 如果此时显示不可识别的USB设备,那只能短接针脚救砖了,具体可参考此文:[color=var(--color)][backcolor=var(--background-color)]MS2130采集卡reset强刷固件救砖方法-哔哩哔哩


修改MS2130/31采集卡显示名称等EDID信息模拟为其他显示器 - Asteroid B612

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|整天BBB

GMT+8, 2025-1-10 14:09 , Processed in 0.099298 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表