- 积分
- 311
- 最后登录
- 2024-4-25
- 精华
- 0
- 阅读权限
- 30
- 主题
- 23
- UID
- 431241
- 帖子
- 777
- PB币
- 1010
- 威望
- 0
- 贡献
- 0
- 技术
- 21
- 活跃
- 1093
软件爱好者
- UID
- 431241
- 帖子
- 777
- PB币
- 1010
- 贡献
- 0
- 技术
- 21
- 活跃
- 1093
|
本帖最后由 ganyuansi 于 2018-1-27 22:03 编辑
Windows7操作系统作为一代经典(上一代还是Windows XP),是目前最顺手的操作系统,可惜对一些新的硬件技术支持不太好,比如USB3.0和NVME。USB3.0相对比较的容易,集成Intel/AMD的驱动即可,难的是NVME,以下是为了让Windows 7支持NVME(Windows 7+NVME Boot)所经历的磨难。
作为一个软件洁癖,首先考虑是修改Windows 7自身安装文件实现完全的NVME支持,需要修改Boot.WIM文件和Install.WIM文件。
一、第一个方法考虑的是使用微软自己推出的驱动支持。搜索发现没有单独的驱动提供,不过有热修复补丁KB2990941,然后磨难开始了,Boot.WIM集成了这个补丁过后,进入安装分区界面,仍然弹框要求加载驱动,而实际通过Diskpart发现NVME SSD已经识别了。怀疑是集成补丁的工具DISM++造成,按照KB2990941说明采用dism命令集成仍然会出现这个弹框,后面发现使用技嘉的Windows USB Installation Tool集成上面的KB并集成Intel和三星的NVME驱动,安装分区界面却不会弹框,于是又测试,用DISM++工具集成技嘉工具目录下的KB和驱动,仍然会出现弹框,实在找不到原因,放弃此方法。
二、第一个方法行不通,想到了第二个办法,那就采用曲线救国的方式,提取KB2990941里面的inf和sys驱动文件,在集成过程中提示证书不对,后发发现驱动都有对应cat签名文件,KB里面提取出来的驱动不包含cat文件,无法使用。后面想到没有cat文件就自己生成一个cat文件,找到WinDDK里面的工具签名inf和sys文件,发现就算生成了cat文件也无法使用,因为没有对应电子证书,cat文件会提示安全目录无效,使用DISM++集成也会提供驱动证书无效无法集成,只能放弃此法。
三、后面想到第三种方法,既然官方的通用驱动无法使用,那就找第三方驱动,结果还真有,pceva提供的第三方通用驱动,最新3.0版本没有搜索到下载,官方网站也需要160多RMB才能注册,鉴于投入的成本,放弃使用pceva的nvme驱动。
四、既然pceva通用驱动找不到,那就想到了第四种方法,就是集成主流的NVME SSD主控的驱动,诸如intel和三星,慧荣SMI,群联Phison,美满Marvell…,在找驱动过程中还真有了发现,宇瞻SSD(群联主控)和阿斯加特SSD(Realtek主控)提供了inf完全相同的一个驱动,驱动签名不一致(WDKTestCert/Realtek),描述为Community NVMe 1.0e Storport Miniport,版本为1.4.0.0,怀疑为一个社区通用驱动,于是提取inf文件与微软KB2990941里面的inf文件进行对比,发现内容除了排版和变量名不一样外,主要的参数都是完全一样的,安装分区界面加载确认,Intel 600P(慧荣主控)可以驱动,VMware虚拟机(UEFI+NVME)可以驱动,就更加确信这是一个社区通用驱动,但用DISM++集成后发现在安装界面无法识别到SSD硬盘了,于是采用安装分区界面加载这个驱动的方法,识别SSD成功,但在安装进程重启过后就会蓝屏或者报NVME.SYS文件有问题,于是暂时只能放弃此驱动,希望后续有其他正常签名正常加载正常使用的版本出现。 继续采用集成主流主控驱动的方法。收集驱动时发现,慧荣也有签名的驱动,最新版本1.4.24.0,支持intel 600p,内容与上面的社区通用驱动一致,添加了少许参数以支持新功能,查看其changlog.txt,发现两个重要信息,一是1.4.0.0版本都由NVM Express organization社区提供代码,二是此驱动有支持列表。经过VMware虚拟机(UEFI+NVME)加载测试发现然只能用于慧荣主控的SSD。
五、鉴于集成主流SSD主控驱动不能覆盖所有的SSD主控,且加载SSD主控驱动不能重复驱动文件名,既然windows 7 boot.wim加载驱动有问题,考虑采用Windows 8.1/10的安装文件+集成了KB2990941的Windows 7的Install.wim,实际安装分区界面完美识别SSD,安装好的Windows 7完美驱动SSD
于是总结如下:
方法一:用Windows 7的boot.wim和install.wim集成主流SSD主控驱动,优势是原厂驱动性能功能更好,但不能全部覆盖,其他不支持的另外加载驱动。
方法二:用Windows 8.1/10安装文件+集成了KB2990941的Windows 7的Install.wim,支持所有SSD,但需要另外加载原厂驱动。
本人环境:技嘉GA-Z87-HD3主板F8版本BIOS,添加NVME模块;Intel 600p 256G SSD;Windows 7 SP1集成汇总更新。
Update:
1.找到集成KB290941集成的问题了,boot.wim中的Index 2的sources目录要和安装ISO里面的sources文件版本一致。所有微软通用驱动也可以使用了。
2.有第三方开源驱动,地址https://svn.openfabrics.org/svnrepo/nvmewin/,上面提到的通用驱动原来也是这个,不过不适合生产环境使用。
|
-
2
查看全部评分
-
|