Jarvis's Blog

白帽子、全栈、IoT安全专家、嵌入式系统专家

P106-100改显示接口翻车记

写在前面:

本篇文章发表之后,有不少朋友提出很多有价值的建议和问题,为此,笔者特地花了些时间仔细分析了NVIDIA的vbios,为本篇写了篇后记,大家有需要可直接移步文章:《P106-100改显示接口翻车后记——之NVIDIA显卡vBIOS分析

在前面的文章《【接盘需谨慎】小白慎买之P106-100矿卡接盘小记》里提到,笔者接盘了一块P106-100矿渣,并且根据网上的魔改教程进行了一番测试,发现如下一些问题:

  1. 由于没有显示接口,只能使用类似双显卡切换的方法来使用。
  2. 虽然用来计算毫无问题,但需要用显卡来运行程序的时候,实际发现问题很多。
  3. 实际测试在win10的控制面板里虽然可以设置对应应用程序所使用的GPU,但实际使用时候,很多程序即使设置了高性能GPU也无法成功切换过去用P106来运行。但是在运行游戏的时候倒是能切换过去了。

如上图,虽然我设置了FurMark使用高性能GPU即P106,但是打开程序拷机,结果还是以核显在跑甜甜圈,试了很多办法都不行。最后发现,只有完全卸载核显驱动,开机以后,只有1024×768分辨率,这时候倒是可以用P106拷机了,一旦核显驱动被系统自动识别并安装,马上就不行了。

那么问题来了,既然问题在于P106没有显示接口,而使用核显输出造成了这些麻烦的问题,那么能不能给P106加上一个显示接口呢?为了证实这个猜想,笔者开始了尝试。

首先笔者买的这一块索泰的P106,本身是焊上了一个DVI接口的,但是没有输出。

P106 布局

通过对比微型GTX1060的布局可以发现,区别在于,DVI接口周围的一些电阻电容元件并没有焊接:

MSI GTX1060焊接了这些元件
P106对应部分并未焊接这些元件

那么这些元件参数是什么呢?笔者参考了微星GTX1060的原理图,可以发现只是一些电阻电容和晶体管。

那是不是对应参数焊接上就可以了呢?于是果断下单,购买了这些元件,然后一个个焊上去,然而,没有输出!

显示依然没有输出,不知道为什么,那会不会是vbios的问题?于是尝试刷GTX1060的vbios,可是好像Pascal这一代开始nvflash需要5.370以上的版本,
,本想很简单的就能刷, 可是貌似直接运行nvflash.exe -4 -5 -6 gtx1060.rom提示parameter error,测试了一下是-4,-5参数没有了,去掉这两个参数却提示错误:GPU Mismatch?

上网查了一下,说是从pascal这一代开始,nvflash不让强刷vbios了,估计是为了防止js魔改。

用IDA分析了一下nvflash的代码,貌似是软件校验的,程序里验证了固件的签名、子供应商ID,PCIe Device ID和Board ID.

好吧,直接patch大法好:

patch完成了之后,结果还是不能刷,错误是:

PMU command complete with error, Error code = 0x005A

这次好像是显卡板子上的vbios更新程序校验的,查了一下代码里0x005A对应的错误是

NV_UCODE_ERR_CODE_DEVID_MATCH_LIST_DEVID_MATCH_FAILED

是microcode那一层了,就不是系统驱动层面的事情,看来显卡端vbios的微码还校验了一次ID,所以没办法了,只能祭出大招,直接用热风枪把flash吹下来用CH341A编程器来强刷。

不过虽然我这里用nvflash不能刷,还是提供一下我patch过的以后nvflash程序,这样大家同一ID互刷vbios以及修改频率和风扇策略的话会方便点。

用法:

nvflash64.exe --index=0 -6 rom.bin --overridesub
显卡上的bios芯片

然而结果 不但还是没有输出,就算用核显进系统,装了nvidia的驱动,然而直接蓝屏。

难道还有哪里姿势不对?到这里我也没有办法了~~~只能认命。

不过收集了一些网络传闻,可以看出一些端倪:

  1. 在魔改驱动方法出来之前P106-100显卡的价格只有200左右,魔改方法出来以后价格直接飙升到400。
  2. 据说华强北的”科学家”们早就试过这些方法了,更有甚者直接把P106的芯片焊在GTX1060的PCB上,然而这些测试最终都杳无音讯,猜测和笔者是一样的结果,无论怎么折腾,显示接口都无输出。
  3. 据说现在淘宝闲鱼上还有P106-100改显示接口的服务,不用说,全是骗子
  4. 猜测我这块索泰的P106厂商自己也测试过显示接口到底能不能用了,肯定是厂商经过测试发现也不行,虽然留着DVI,但相应接口元件没有焊上。那个DVI接口应该只是起到固定挡板的作用!否则挡板只靠底部的两颗螺丝固定的话容易折弯。

有了如上的传闻,笔者来做个大胆的猜测。

首先,P106矿卡的显示核心代号是P106-100-A1,而正常的GTX1060的核心代号是P106-400-A1,猜测P106后面的数字代号100到400应该是指这个核心的一个相对功能完善程度,就好比TITAN X Maxwell的核心代号是GM200-400-A1,而980Ti的是GM200-310-A1。再举个例子,最新的TITAN RTX核心代号是TU102-400-A1,而2080Ti则是TU102-300A,所以很显然的,同样的核心代号,后面跟的尾缀数字越小,就代表核心被屏蔽的模块越多,而笔者查了一下资料,历史出过的显示核心中,从没出现过小于150的尾缀,一般都是300 400居多。所以笔者提出如下结论:

  1. P106-100其实本身就是一批有问题的核心,可能在蚀刻或晶圆切割的时候,显示部分电路损坏无法正常工作,但CUDA核心仍能运作,老黄于是就顺水推舟把这部分原来应该报废的晶圆拿来做了P106-100矿卡,甚至还有品质更差的P106-90,老黄啊老黄,没了竞争真是越来越奸商了。
  2. 正是因为这批GPU品质差,所以老黄给这批矿卡的质保只有三个月,美其名曰挖矿显卡寿命短,事实应该是自己知道这批芯片本身品质就差,指不定什么时候出问题,直接甩锅给挖矿了,找个理由而已。
  3. 并不是卖矿渣的奸商技术差,自从矿难开始,相信对于P106如何才能正常用于游戏的研究一直就没停过,只不过大家都没成功改出过显示接口,用魔改驱动也是没办法的办法!有点常识想想就知道,如果加点电路就能正常显示输出的话,绝不会有这种尴尬的魔改方法,目前流出的方法只是一种折中妥协而已,能有点效果总比翻车的好。

好了,笔者结论很明显了,P106矿渣非常不值得接盘!要么买来就当个玩具玩,否则还不如多加个几百去接盘RX570,RX570才真的是可以勉强说成是挖矿游戏两不误~~

【接盘需谨慎】小白慎买之P106-100矿卡接盘小记

上一篇

强烈抵制Devotion(还愿)夹带私货辱华行为

下一篇
评论
发表评论 说点什么
  • pcie拉压上去,核心封装可能有问题,重新封装飞线看看,这个貌似有一批技嘉的是通过pcb屏蔽,不说太多,祝你成功

  • 我认为改pcb和BIOS,加接口还是有希望的,就是改出相应的BIOS太难,毕竟NV家有自己的测试屏蔽工具,我们最多提取里面的那部分来用

    • 不太靠谱,据说现在nv都是晶圆上的熔丝屏蔽,就是怕js乱改,现在厂商基本都没什么折腾的空间了~~

    • 一般是可编程开关,但修改不需要动那么多,只要增加输出功能就行

    • 这个改BIOS需要改的部分很少,改代码打开DX等支持,输出检测等(可能要改线路)。 而核心其它规格最好不要改,P106-090到时可以试试降低频率打开核心

  • 今天才发现最新14/16NM的AN卡都是自动检测核心数量的,这样的话就比较有戏了

  • 【图片】破不了啊~bios里好多证书~【p106吧】_百度贴吧 https://tieba.baidu.com/p/6068344378 你跟这位交流一下吧

    • 那家伙最后得出的结论和我一样,就是输出不由BIOS设置,看来也是翻车了~~

    • 不,他刷的没改我说的部分,老黄不可能那么切

  • 看来你得找有同样公版1060的矿卡来参考和改动了(另外很可能需要有人给你拆板和GPU提供硬件对比)

    • vbios我已经分析完了,因为PMU会校验证书,所以只能拆flash用编程器刷,因为显卡的flash是低压flash,手头没能写低压flash的编程器,需要整个电平转换板,不然写不进去,等东西到了再试一下。过几天会出个分析文章。

  • 换个思路,在Vbios里定位显卡的Pid,尝试替换为GTX1060 MaxQ的Pid以及Vid,线刷回去看一下能不能工作,如果能工作去英伟达官网下载NoteBook版的驱动看看能不能装得上。既然有部分同学用魔改的4980HQ能在驱动层面欺骗nvidia把P106识别成移动版,那改PID或许可行

    • 放心吧,不行的,vbios我已经完全分析完了,里面有很多有意思的东西,没那么简单,过几天我会出一个详细的分析文章~~

    • Nvidia18年的时候出过一个官方的更新DP1.4接口的bios升级工具,里面有新版的NvFlash1.0.9,会不会有刷bios用的认证证书

    • bios是由nvidia官方用私钥签名的,nvflash和显卡上面的PMU的微码都会对证书进行校验,他们只有公钥,只有获得了私钥才能重新对修改过的bios进行签名,否则即使patch了nvflash,在显卡的PMU里面也会因为证书校验不过而不让刷。所以目前nvflash最多刷刷原厂bios,改过就不行。

    • wewealex

      我已经把改过的p106bios刷入了,特别简单就是记得保持与原bios的checksum 32bit值一致就行了,这个很好改,改了字段后checksum 32bit会变,然后我把bios末尾的那些没用的FF,00之类的拿来改几个把checksum 32bit改回原值,这样就能刷入,亲测成功,不过我不知道pcie带宽之类的定义字段在bios里哪里!

浙公网安备 33011002014706号