微星X79主板修改BIOS支持NVMe

背景

这里的废话比较多,快速浏览请看标题直接往下跳段看。

主板型号:微星X79MA-GD40

CPU:主板支持Intel Xeon E5-2600 V1、V2 CPU
内存:4通道4条内存(不支持ECC内存条,即便要用ECC UDIMM,请在第一个DIMM槽插一条non-ECC即台式机内存条)
PCIe插槽:4个PCIe扩展槽,2个X16, 2个X1
Form Factor: m-ATX

这个主板比较少见,市场定位有点怪怪的,当垃圾买的,但我还是很喜欢。主要理由是性价比高啊!它支持服务器CPU E5-2600V2系列,这种CPU在某宝有大量拆机的,不到1000元就有10核CPU(如E5-2680V2),组装成一台视频处理的工作站,花费不多,性能不是普通台式机能比的。随着SSD便宜了,有升级的心动。

NVMe SSD:三星SM963 480GB

产品编号:MZ1KW480HMHQ-000MV
容量:标称值 480GB
接口:PCIe 3.0 x4
顺序性能:读1200MB/s, 写900MB/s
随机性能:读280KIOPS,写23KIOPS
耐写性:3.6DWPD(5年),折算为总写入量 3200TB
Form Factor: M.2 20110

前些天淘了片库存的SM963 480GB SSD,这是企业级的22110尺寸的M.2长条板,布局了很多电容,检测到系统掉电时会把剩余没写的数据尽快写完。这种卡能用的场景比较少,消费级电脑上一般都不能用,所以用¥0.62/GB的价格买来玩玩。性能一般,基本上是PCIE 2.0 X4的水平,但胜在耐写,比一般的SATA SSD强很多。在消费级SSD切向QLC颗粒的今天,这种eMLC颗粒就很难得了。

驱动

OS:Windows 7
驱动:三星官网搜到的NVMe驱动,2.0以上版本就可以支持Polaris主控。

安装官方驱动以后,随机性能提升80%,这么强的盘应该安装OS才好,OS下默认的临时文件写入区就是OS所在盘,随机性能好的话,用来装系统会有非常好的表现。

问题

主板支持UEFI,但不支持从NVMe启动。意图在BIOS里加入NVMe模块,让它支持目标M.2 SSD安装、引导Windows 7.

改BIOS方案

网上盛传硬改BIOS(嗯,这里不是指改硬件,是暴力改,就是强行把UEFI NVMe模块加进去)可以支持NVMe启动,也有模块NVMexpressDxE.ffs下载,我一直持怀疑态度。

我有另一台台式机,是Z87芯片组的,华擎的板,最新发布的BIOS支持NVMe,虽然板上并没有M.2槽,但有PCIe啊,客户插张高级的PCIe SSD还不支持启动么?所以,华擎这方面维护做得不错。

微星X79MA-SD40这块板的BIOS下载下来只有一个E7738v38.exe文件,它必须存在U盘里,然后在Windows下运行即可把BIOS刷了。仔细分析exe文件结构,发现它后面8192M字节就是BIOS ROM映像文件,不用管前面是什么东西,直接二进制编辑软件剥离下来,然后用AMI UEFI BIOS工具mmtool加NVMe模块插入进去,然后再与前面的那部分接起来就好。不用担心校验的问题,BIOS ROM映像文件本身是Checksum校验的,用工具插入保存的映像文件会重新算Checksum值,确保整个映像文件所有字节值相加后的值为0.

方案一:用华擎NVMe模块

我手上有一套UEFI源代码,里面NVMe模块编译后是3个文件:
Nvme.ffs
NvmeSmm.ffs
NvmeInt13.ffs
这跟网上的攻略不一样。我比较倾向于这组模块,起码INT13得有,要不然怎么在Boot loader或Legacy OS引导初期来访问NVMe SSD呢?

我用这3个文件插入到ROM里后,组装成一个新的刷写文件e7738nv3.exe,顺利地在原系统里刷新BIOS成功。

重新启动机器,进入BIOS Setup却一直没找到NVMe盘的任何提示,这跟华擎主板上的现象不一样! Boot选项里多出一项,Windows Boot Manager, 这个倒是与华擎BIOS里的一样。但华擎板会在启动选项里列出NVMe SSD的名称型号,而这个不会。

也许这是一次失败,放弃此方案。事后反省可能这次是成功的,只是没达到预期现象,以为是失败的。

方案二:用微星X99主板里的NVMe模块

主板BIOS界面不同,也许模块跟这个有相关性,找微星家族的板也话会好些。

找了几个版本的微星X99工作站主板,果然BIOS映像里有上面说的3个模块,用mmtool分离出来后,发现果然有差别,文件大小有差别。

用以上方案一同样方法,刷新BIOS后,还是什么提示都没有,连Windows Boot Manager也没有了。

失败!

方案三:用模块NVMexpressDxE.ffs

很多人说用这个模块在微星主板上成功了。这个模块只有一个文件,文件大小超过20k,多数人宣称在华硕板上没有问题,但别的板没试过。

我有点怀疑这个模块在微星上是否可以用,毕竟华硕喜欢自己改一些文件结构什么的,存在不少与其他厂商不兼容模块的情况。

这个模块用了以后,BIOS Setup里还是没有任何NVMe SSD的信息,多出一个PATA盘,难道是这个?

试图安装了一下OS, 安装成功了。

我原来有一个UEFI安装的WIN7, 现在加上这个,BIOS Boot选项里有2个Windows Boot Manager选项,但没标示哪个是NVMe,哪个是另一个系统盘。来回重启多次,BIOS选项里的开始乱了,出现几十项Windows Boot Manager,看起来是这个模块有点兼容性问题,把启动设备向Flash里写的时候,可能数据结构对不上,多启动几次之后,BIOS就挂在启动界面,再也不动了。

这下问题有点大,BIOS ROM芯片给启动选项擦写时破坏了!要把BIOS Flash芯片取下来用Programmer来烧才行。花了几个小时处理好这个问题,按下不表。

总之,这个模块对我的板不兼容,或者是同期的UEFI模块兼容性问题比较大,一定不可以用!

真不知道这个模块从哪来的,为了验证这个怀疑,下载几个版本的华硕主板的BIOS,跟上面一样,都是3个模块,没有这个模块!

方案四:用微星同期NVME模块

方案二失败的原因,可能是X99用的源码库升级太多了,其NVME模块跟老的库不兼容,找到同期刚开始加NVME模块的版本,也许兼容性才好。

找了很久,费了很多力气,发现微星Z97主板BIOS支持NVME算早的,分离ffs模块的时候,那3个文件时放在相邻位置的,而晚一些的BIOS则把3个文件分别放到BIOS不同的加载阶段去了,这一点给我带来点信心。

如方案一刷了新BIOS,现象与方案一基本相同。能顺利引导进入WINDOWS7, 启动选项里还是没啥提示。

偶然在BIOS启动过程是按了F11键,临时弹出引导OS的菜单,第一项就是Windows Boot Manager (MZ1KW480HMHQ), 嗯,突然觉得一切都很美妙!

成功了!

验证

BIOS反复重启

BIOS Setup下没有发现异常,反复重启10次也没有发现异样,增加、减少可启动OS系统的设备,也都很正常,没有出现方案三中的错乱现象。

也许真的不用动电铬铁了,这块板的BIOS芯片,真的很不好拆,pin8可焊性很差。

操作系统反复重启

重启3次正常。

加其它系统盘、包括SSD和HDD,功能都正常。

性能测试

SSD常用的工具测试如CrystalDiskMark、AS SSD Benchmark等测试结果都正常。

CrystalDiskInfo检查SM963这块盘的SMART信息,发现Number of Error Information Log Entries在增加,可能与BIOS无关,因为克隆系统盘造成太多次死机和异常断电相关,后续再查。

长期使用(补充)

试用3个月,未发现异常。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值