2022年磁盘控制器驱动集成方略 .pdf
《2022年磁盘控制器驱动集成方略 .pdf》由会员分享,可在线阅读,更多相关《2022年磁盘控制器驱动集成方略 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、磁盘控制器驱动集成方略第一章、关于磁盘控制器Skyfree我在之前不少的教程中都提到过有关这方面的内容,不过由于之前技术水平有限,不能较为完整详细的解释这方面的内容,所以一直感到惭愧。现今,经过了相当长一段时间的学习与实践,我想现在的我应该可以把有关磁盘控制器驱动集成原理的部分较为明了的解释一下了。;h1 a 一、正确理解磁盘控制器驱动的含义很多朋友将“SATA 硬盘驱动”这个词经常挂在嘴边,Skyfree我当年也是这个样子。其实这种说法是一种从表象上看问题的说法,所以有不少的偏差。好吧,现在我要将一个概念深入人心,即“磁盘控制器与磁盘类型没有直接的关系”。当然,或许这个说法也有部分偏差,有兴
2、趣的朋友可以更为深入的研究,并可以找我讨论。“磁盘控制器驱动”是针对磁盘控制器的(似乎是废话),而不是针对磁盘(硬盘以及相关类似的存储介质,狭义的可以认为磁盘就是指的硬盘)的。磁盘控制器有主板芯片组自带的,有主板集成的第三方的,也有独立的磁盘控制器卡。磁盘控制器,就像是磁盘到计算机的一个中间介质,简单说,系统是通过磁盘控制器认识磁盘的。所以,如果系统里没有和磁盘控制器匹配的磁盘控制器驱动,是无法识别磁盘的。$1 h&A)p)K如果对这个不好理解,可以这样来想,例如我们当年的98 系统,98 系统里没有常用的 USB控制器驱动,所以我们的U盘插上后系统识别不出来,而我们现在最常用的XP中包含了大
3、量常用的USB控制器驱动,所以基本上所有的U盘插上后会自动识别出来。这里,你可以把 USB控制器看做磁盘控制器,U盘控制器驱动看做磁盘控制器驱动,U盘看做磁盘。USB控制器驱动是为USB控制器装的,而不是为U盘装的。说到这里,我们来看一下我们最常见的两种磁盘控制器:.*|!P6 u*G&u2 6 J4 Q 1、并行磁盘控制器,或者叫做ATA(PATA)磁盘控制器。1 H,%F/7 X/U.W基本上来说,这种磁盘控制器都是为IDE 接口的磁盘准备的,而并行磁盘控制器也一般只有并行工作模式。所以,一般来说,并口磁盘所使用的磁盘控制器都是工作在并行模式的并行磁盘控制器。1 L-5 h8 W;q+V4
4、 u2 Y但也由此,让许多人将这个概念照搬到了串行磁盘控制器上,造成了一些理解错误。还有一点,很多人认为IDE 的磁盘就不需要安装磁盘控制器驱动,这个也是错误的。并不是因为不需要安装,而是因为系统内已经集成了并行磁盘控制器,就像XP集成了大量常用 USB控制器驱动一样。2、串行磁盘控制器,或者叫做SATA磁盘控制器。SATA磁盘控制器,广义上讲,SATA(Serial ATA)指的是所有的串行磁盘控制器,包括普通的串行磁盘控制器、RAID磁盘控制器、SCSI磁盘控制器等等;狭义上讲,我们普遍的将 SATA磁盘控制器理解为普通的串行磁盘控制器,就像你我的计算机上正在使用的这种一样。我们在下文中,
5、都将“SATA磁盘控制器”理解为其狭义概念。0 W+i$S:(_1 o7,R5 m(N(1)串行磁盘控制器的工作模式串行磁盘控制器比较灵活,不像并行磁盘控制器一般只工作在并行模式,而是可以在BIOS里将其设置为多种工作模式,根据主板BIOS的不同,名称可能有所差别,并行工作模式有:IDE、ATA、PATA等,串行工作模式有:SATA、RAID、AHCI 等。很多二线厂或者通路商主板上的串行磁盘控制器都默认为并行工作模式,这会折损部分磁盘工作效能,但是却提高了兼容性;很多一线大厂则都是将串行磁盘控制器默认为串行名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 9 页 -工作模式,这样
6、可以发挥磁盘的最高工作效能。2$L4 s($f|$|所以,请记住,串行磁盘控制器可以在并行与串行两种工作模式间进行调换,而非只工作在串行工作模式。(2)串行磁盘控制器的接口!?:E)1 _&o1 T这好像是个白痴话题,串行磁盘控制器的接口肯定是串口(SATA接口),大多数人这么认为,当然,也包括之前的我。好吧,我们暂且排除有SCSI 的特殊接口的串口,只说说我们常见的。F _(U.V,J;M9:G4 u+l+大多数,应该是绝大多数的情况下,串行磁盘控制器的接口是串口。不过,在某些集成了第三方磁盘控制器的主板上,例如有一块945P的主板上集成了ITE 的串行磁盘控制器,它的 ITE 串行磁盘控制
7、器不仅提供用于组建RAID 的 SATA接口,同时也提供了组建RAID的IDE 接口。所以,IDE 磁盘也是有可能工作在串行模式下的,绝非IDE 磁盘一定工作在并行模式下。综上,我们可以不通过磁盘类型来看问题,也就是说,在今后研究磁盘控制器驱动时我们看到的只有磁盘控制器,至于磁盘是什么样子、什么接口,只是一个可用的参照而已,不是我们主要要观察的东西。$T,s4 B+/&_:p(|*i(q二、磁盘控制器驱动集成原理磁盘控制器驱动的集成方法是由微软提供的,当然不排除很多高人不用这个方法,但是似乎他们都挺喜欢自娱自乐,所以具体这些高人的方法是什么我们不得而知,那么我们这些菜鸟们还是专心跟着盖茨走,看
8、看微软提供了什么样的集成磁盘控制器驱动的方法。为了便于理解,我只讲最核心的方法,如果您对此有极高的兴趣,建议您阅读微软在XP原版光盘中自带的Deploy.chm 中的相关内容。4 z Q%b;d7-b5 _)j5 f微软提供了这样一种方法,即在Sysprep.inf中添加SysprepMassStorage段,SysprepMassStorage段下内容的写法是:5 P b8&|5 z0 v$,硬件 ID=硬件驱动Inf文件路径1 l,!G;p M0 Y6 K(D4 u例如:#A8(C4 h e0 F7 Y SysprepMassStorage pciven_10de&dev_0055&cc_
9、0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_0054&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf!Ypciven_10de&dev_0267&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf pciven_10de&dev_0266&cc_0101=D:Skyfree_MassStorageMMCP55nvata.inf7+V7 pciven_10de&dev_037f&cc_0101=D:Skyfree_MassStorageMMCP5
10、5nvata.inf pciven_10de&dev_0055&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf pciven_10de&dev_0054&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf pciven_10de&dev_0267&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf7 z,r0 pciven_10de&dev_0266&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf1 n;+pciven_10de
11、&dev_037f&cc_0104=D:Skyfree_MassStorageMMCP55nvraid.inf*m%R:其中像“pciven_10de&dev_0267&cc_0101”这类就是硬件ID,硬件ID 是每一类硬件专用的唯一的编号,注意,是每一类不是每一个。而像“D:nvata.inf”就是包含这个硬件ID 的驱动 INF 所在的位置了。好的,按照微软的说法,只要我们在Sysprep.inf里写对了 SysprepMassStorage段的列表(以下我们称为Device-InfPath列表),然后运行Sysprep.exe进行封装就可以了。这时,在运行Sysprep.exe封装时,
12、Sysprep 会根据 MassStoragel列表的内容,逐一将磁盘控制器驱动文件复制到当前系统中,并创建相应的注册表项目。,o/R3 8 O4 j6-b)p微软的这个方法具有绝对的权威性,以及相对较高的稳定性,不过读到这里您应该有很名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 9 页 -多疑问了,诸如Device-InfPath列表怎么生成等等,别着急,更详细的内容我会在下一章具体介绍。第二章、手动生成磁盘控制器驱动列表一、要有驱动简单不过的道理,如果我们要向当前系统里集成磁盘控制器驱动,那么我们就必须先得有磁盘控制器驱动。而这些驱动,从哪来,怎么收集?由于认识和习惯问题,
13、很多情况下,磁盘控制器驱动并不是单列出来的。例如VIA K8T890主板,假设它是K8T890 北桥+8237A南桥,关于K8T890 的驱动包肯定不会单独告诉你哪一部分是8237A 南桥磁盘控制器的驱动,而是告诉你整个驱动包就是关于K8T890主板的,甚至会告诉你这个驱动包是关于VIA 主板全系列的。怎么办?其实也不用过于担心,很多主板驱动包中绝大多数部分都是关于磁盘控制器的,其他的部分基本都是关于系统总线等等系统设备的,所以就算是误集成了部分系统驱动,也不会有什么影响。这个我可以用一年的实践经验来保证。好,那现在要做的,就是去驱动之家()或者硬件厂商的官方网站去下载您需要的设备的驱动了。要
14、注意的是,很多时候磁盘控制器与主板驱动是在同一个驱动包里的,所以下载时如果没有磁盘控制器驱动则可以只下载主板驱动。下载好之后,我们还有很多事情要做。很多驱动包提供给我们的是一个单个的安装包,用 7z 或类似软件将其强行解压缩,如果这个安装包有自解压的功能那么就让它自己释放,这样我们将获得一个包含着N个文件和N个文件夹的驱动文件夹。下面要做的事要很需要经验了,我们到这个驱动文件夹中,删除无用的文件(例如安装向导、图片文件等等),以及不适用于您系统的部分(例如您系统是XP,而驱动包里有关于 2K3 的部分)。我已经说了,这个很需要经验,所以不要指望自己可以一次就做的完美,这需要大量的驱动搜集实践经
15、验,可能不是一时半会能掌握的,但是却无意中可以让您掌握另一门技术驱动收集技术。如果您实在是对自己的驱动收集技术没信心,那么您可以用现成的收集好的驱动。向您推荐自由天空-自由的风驱动综合包系列和DPS驱动包系列。您可以从这两个驱动包中提取出已经收集好的主板驱动和磁盘控制器驱动,以备使用。二、要有耐心怎么忽然说耐心了?不说技术了么?不,耐心也是一种技术。随后我们要做一件可以测试我们的耐心程度的步骤生成Device-InfPath列表。(以下内容均已XP为例)1、生成微软自带磁盘控制器驱动的Device-InfPath列表(1)在 C盘创建 Sysprep 文件夹,不要怀疑,必须C盘,不要再为什么“
16、软件都要放 D盘”的概念迷惑了;(2)将XP 的“sysprep.exe”、“setupcl.exe”复 制 到C:Sysprep中,“sysprep.exe”、“setupcl.exe”可以在XP原版光盘的Deploy.cab中获取;(3)在 C:Sysprep中创建 Sysprep.inf文件,并写入“SysprepMassStorage”段的段名:SysprepMassStorage;(4)在命令提示符下运行:C:SysprepSysprep.exe bmsd 这时,回看你的Sysprep.inf,你会惊奇的发现其中的SysprepMassStorage段下有:*pnp0a00=c:wi
17、ndowsinfmachine.inf 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 9 页 -*pnp0a01=c:windowsinfmachine.inf *pnp0a04=c:windowsinfmachine.inf *pnp0a03=c:windowsinfmachine.inf pcicc_0604=c:windowsinfmachine.inf pcicc_0601=c:windowsinfmachine.inf pcicc_0602=c:windowsinfmachine.inf pcicc_0600=c:windowsinfmachine.inf pcicc
18、_0500=c:windowsinfmachine.inf rootftdisk=c:windowsinfmachine.inf rootswenum=c:windowsinfmachine.inf rootupdate=c:windowsinfmachine.inf rootmssmbios=c:windowsinfmachine.inf rootdmio=c:windowsinfmachine.inf,pcmciasony-memorystick(_8m)-9eb3=c:windowsinfmshdc.inf pcmciasony-memorystick(_16m)-d04d=c:wind
19、owsinfmshdc.inf pcmciasony-memorystick(_32m)-1766=c:windowsinfmshdc.inf pcmciasony-memorystick(_64m)-8c2c=c:windowsinfmshdc.inf pciven_1055&dev_9130=c:windowsinfmshdc.inf pcmciamicron-mtcf_-392d=c:windowsinfmshdc.inf pciven_1179&dev_0105=c:windowsinfmshdc.inf 这是一个相当长的(至少你现在认为是相当长的)Device-InfPath列表,这
20、个列表中包含了系统自带的所有磁盘控制器驱动的硬件ID 以及其驱动INF 所在位置。这些硬件ID 来源于系统的Machine.inf、Scsi.inf、Pnpscsi.inf 以及 Mshdc.inf,是正宗的系统自带驱动。这些驱动虽然不怎么新,但却是没法再稳定的驱动了。好了,现在随便找个其他地方把这个列表保存下来。不过这似乎不太需要什么耐心,而且好像没什么技术含量,哼哼,地狱还没到。2、生成第三方磁盘控制器驱动列表微软比较偏袒自家孩子,一个“C:SysprepSysprep.exe bmsd”命令,所有系统自带的磁盘控制器驱动的Device-InfPath列表就自动生成了。而大量的第三方磁盘控
21、制器驱动这些没人管的孩子,就得我们亲手来管一管了。下面我以集成我自己主板(NF550,芯片MCP55)的磁盘控制器驱动为例,讲述一下第三方磁盘控制器驱动Device-InfPath列表的生成方法。当然,首先我们还得按照刚才的方法创建Sysprep 文件夹并将需要的文件复制进去,这些我就不再赘述。我们先到驱动之家下载一份MCP55 的驱动,然后将里面我们需要的部分提取出来。我将这份 MCP55 的驱动放在了D:Skyfree_MassStorageMMCP55,注意,驱动放在D 盘是没问题的,因为所有的这些磁盘控制器驱动都会在封装阶段自动复制到C盘 System32 中。(本文的最后提供这个我提
22、取的MCP55 驱动包的下载,供大家参考和学习)整理好驱动之后,我们去哪找这个驱动里包含的硬件ID 呢?没有好的方法,我们只能一个一个INF 的看了。例如,我先打开了“nvata.inf”,阅读 INF 的全文,找到 NVIDIA段,内容如下:NVIDIA%CK804SSS%=Crush11_Inst,PCIVEN_10DE&DEV_0055&CC_0101 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 9 页 -%CK804SSS%=Crush11_Inst,PCIVEN_10DE&DEV_0054&CC_0101%MCP51S%=Crush11_Inst,PCIVEN_10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年磁盘控制器驱动集成方略 2022 磁盘 控制器 驱动 集成 方略
限制150内