查看: 10845|回复: 10

【Windows XP 安装版定制教程】第四章 系统后期处理(三)整合驱动包

  [复制链接]
发表于 2011-10-2 21:30:16 | 显示全部楼层 |阅读模式
六、整合驱动
现在我们可以接着整合驱动了。
驱动程序是沟通操作系统和硬件的重要桥梁,通过驱动程序可以让操作系统识别更多的硬件,并使硬件发挥更好的性能,如果缺乏驱动程序。系统就会出现无法上网,无法播放视频音频,显示效果糟糕,摄像头无法使用等情况,所以我们要把驱动包整合进去。
整合驱动有两种方法:第一种是通过整合包整合,第二种是手动整合。
我们先用第一种方法:
IT天空(原来叫自由天空)驱动包为例,这里选用的是E驱动5.20版。
我们先打开RVMI,单击“选择附加组件包”浏览框,选择蜻蜓特派员制作的添加E驱动的组件包。然后单击“开始集成”。
一分多钟后,E驱动整合包已经集成进去了,但是这个这是集成了配置文件,驱动并没有集成进去。现在我们继续添加驱动文件。
打开I386文件夹,我们发现已经多了一个EasyDrv的文件夹,把鼠标放上去还提示“请把驱动文件放在这里”。我们把E驱动的驱动文件放到该文件夹,把不需要的文件删掉。目录结构如下:
同时,我们记得修改EasyDrv5x86.exeEasyDrv.exe。否则该文件不会启动。接着,我们简单修改E驱动的配置文件[WinXP.x86]EzDrv5.ini。设置如下:
做好这些后,E驱动就整合进去了,将于“剩余39分钟”被调用。
PS:这个是利用微软官方T39接口来实现的。就是离安装完成还有39分钟时调用某一程序,而该功能在WINNT.SIF文件的[GuiUnattended]段的DetachedProgram 设置项实现的,如:DetachedProgram = "%WinDir%\DrvLoad.exe "
自由天空驱动调用工具参数说明:
-DrvMain=XXX.exe :主程序名参数
默认值为 EasyDrv.exe
-TimeOut=X :删除驱动程序等待时间(关于X的解释如下)
-2 禁用驱动删除功能
-1 表示直到用户单击删除才会删除驱动
0 表示不提示用户直接删除驱动
其他大于0值表示 X秒后自动删除驱动
默认值为 -1
示例:
DetachedProgram = "%WinDir%\DrvLoad.exe -DrvMain=DrvS.exe -TimeOut=10"
测试效果:
第二种办法:
这里我们需要修改 txtsetup.sif dosnet.inf 文件和Winnt.sif文件来实现。
其实关于 txtsetup.sif dosnet.inf 中有很多深奥的东西,不过我们没必要熟悉它们其中的每一个字符,我们只用最好用和最简单的。掌握这些最好用和最简单的已经可以让我们关于安装版系统光盘的制作技术上一个台阶了。
Txtsetup.sif是控制安装过程中要从哪个位置读取哪个文件复制到何许位置,简单的说,就是文件复制控制。Dosnet.inf则是控制在 DOS Windows 环境下安装系统时预先复制到硬盘上的文件。
基本而言,txtsetup.sif dosnet.inf中的文件应该是一一对应,不过如果不需要 DOS Windows 环境下安装系统,则无需修改 dosnet.inf只修改 txtsetup.sif既可。
这里我们以添加小兵驱动选择工具和IT天空驱动包为例。我们先在I386文件夹下新建Drivers文件夹,把小兵驱动选择工具和IT天空驱动包释放到该文件夹下。
接着我们修改 txtsetup.sif文件。
首先我们了解下 txtsetup.sif文件的部分含义。
先要看的是[SourceDisksNames.x86]
[SourceDisksNames.x86]
1 = %cdname%,%cdtagfilei%,,\i386
2 = "%cd2name%","%cd2tagfilei%",,\cmpnents\tabletpc\i386
……
这里规定了复制文件时的源位置,例如1 代表光盘根目录下的 i386文件夹。
其次我们要注意的是“[WinntDirectories]”段
[WinntDirectories]
[WinntDirectories]
1 = "\"
2 = system32
……
这里规定了复制文件时的目标位置,默认根目录是 Windows 文件夹,1 代表 Windows文件夹根目录,2 代表 Windows\System32 文件夹。
最后要看的是[SourceDisksFiles]段,这一段控制我们从源位置读取什么文件复制到什么位置。
例如我们想集成  OEM 信息和图片,这就需要把 oeminfo.ini oemlogo.bmp 复制到Windows\System32 文件夹下,我们可以在[SourceDisksFiles]段下添加
oeminfo.ini = 1,,,,,,,2,0,0
oemlogo.bmp = 1,,,,,,,2,0,0
oeminfo.ini oemlogo.bmp代表我们要复制的文件的文件名。
1 这个位置是用来填写源文件位置,即[SourceDisksNames.x86]段中规定好的位置,以上两行中的源位置都是1,那么系统在复制文件时就会去 i386 根目录下去寻找这个文件。
1 2 之间的“,” ,其实每个“,”间都有相应参数,不过这些参数我们用不上,所以就不用写了。
2 这个位置用来填写目标文件位置,也就是[WinntDirectories]段中预先规定的位置,例如2 代表Windows\System32 文件夹,那么系统在复制文件时就会把这个文件复制到Windows\System32 文件夹下。
随后的两个“0”也是参数,不过意义不必了解,但是一定要写。0 后其实还可以跟一个参数,就是用来重命名文件的,例如:
Ty.jpg = 1,,,,,,,1981,0,0,type.jpg
1 代表源文件所在地为 I386 文件夹,1981 代表目标为 Windows\Web\Wallpaper。那么这行的含义即从 i386 文件夹中复制 ty.jpg文件到 Windows\Web\Wallpaper 下,并改名为type.jpg
现在我们开始对 txtsetup.sif文件进行修改:
在[SourceDisksNames.x86]字段添加如下内容:
2900 = %cdname%,%cdtagfilei%,,"\i386\Drivers"
2901 = %cdname%,%cdtagfilei%,,"\i386\Drivers\VIDEO"
2902 = %cdname%,%cdtagfilei%,,"\i386\Drivers\AUDIO"
2909 = %cdname%,%cdtagfilei%,,"\i386\Drivers\AIDA64"
其中2900290129022909是任意指定的,记住不要和[SourceDisksNames.x86]字段其他内容重复即可。
在[WinntDirectories]字段添加如下内容:
2900 = Drivers
2901 = Drivers\VIDEO
2902 = Drivers\AUDIO
2909 = Drivers\AIDA64
接着在[SourceDisksFiles]字段下添加:
drv2012.exe = 2900,,,,,,,1,0,0
drv2012.ini = 2900,,,,,,,1,0,0
AIDA64.exe = 2909,,,,,,,2909,0,0
AIDA64.dat = 2909,,,,,,,2909,0,0
kerneld.x32 = 2909,,,,,,,2909,0,0
lang_cn.txt = 2909,,,,,,,2909,0,0
pkey.txt = 2909,,,,,,,2909,0,0
adi.7z = 2902,,,,,,,2902,0,0
ati.7z = 2901,,,,,,,2901,0,0
Chipset.7z = 2900,,,,,,,2900,0,0
Camera.7z = 2900,,,,,,,2900,0,0
C-Media.7z = 2902,,,,,,,2902,0,0
Conexant.7z = 2902,,,,,,,2902,0,0
Creative.7z = 2902,,,,,,,2902,0,0
HDAudio.7z = 2902,,,,,,,2902,0,0
intel.7z = 2901,,,,,,,2901,0,0
Network.7z = 2900,,,,,,,2900,0,0
modem.7z = 2900,,,,,,,2900,0,0
nVIDIA.7z = 2901,,,,,,,2901,0,0
other.7z = 2902,,,,,,,2902,0,0
Realtek.7z = 2902,,,,,,,2902,0,0
Sigmatel.7z = 2902,,,,,,,2902,0,0
sis.7z = 2901,,,,,,,2901,0,0
via.7z = 2902,,,,,,,2902,0,0
via(s3).7z = 2901,,,,,,,2901,0,0
vmware.7z = 2901,,,,,,,2901,0,0
这里面左列的文件为Drivers下所有的文件,记住文件夹名不可错误,否则复制时出错。另外右列的2902对应着上面指定的Drivers\AUDIO文件夹。2901、2900对照其他相应文件夹。而“drv2012.ini = 2900,,,,,,,1,0,0”1对应着[WinntDirectories]字段指定的Windows文件夹。
然后我们再修改DOSNET.INF文件。
Dosnet 中相应要修改的东西就简单的多。先看[Directories]段,这段代表文件复制的源位置
[Directories]
d1 = \I386
d2 = \cmpnents\tabletpc\I386
d10 = "\i386\Drivers"
……
再看[Files]
[Files]
d1,2gmgsmt.sf2
d1,3cwmcru.sys
……
这段代表要从源位置去复制哪些文件。
如果在 txtsetup.sif中添加了:
drv2012.exe = 2900,,,,,,,1,0,0
那么 dosnet 中要相应添加:
d10,drv2012.exe
这样即可。
具体操作如下:
我们先在[Directories]字段添加:
d10 = "\i386\Drivers"
d11 = "\i386\Drivers\VIDEO"
d12 = "\i386\Drivers\AUDIO"
d19 = "\i386\Drivers\AIDA64"
其中D10D11等可任意指定,记住不要和该字段其他内容重复即可。
接着在[Files]字段添加:
d10,drv2012.exe
d10,drv2012.ini
d10,Camera.7z
d10,Chipset.7z
d10,Network.7z
d10,modem.7z
d11,ati.7z
d11,intel.7z
d11,NVIDIA.7Z
d11,SIS.7Z
d11,VIA(S3).7Z
d11,VMWARE.7Z
d12,C-Media.7z
d12,Conexant.7z
d12,Creative.7z
d12,HDAudio.7z
d12,OTHER.7Z
d12,REALTEK.7Z
d12,Sigmatel.7z
d12,VIA.7Z
d19,AIDA64.exe
d19,AIDA64.dat
d19,kerneld.x32
d19,lang_cn.txt
d19,pkey.txt
即可。
最后我们修改winnt.sif 文件:
[GuiUnattended] 段下添加一项
DetachedProgram = "%windir%\Drv2012.exe"
[Unattended] 段下设置
DriverSigningPolicy = Ignore
NonDriverSigningPolicy = Ignore
PS:微软官方提供了一个T39接口,就是离安装完成还有39分钟时调用某一程序,而该功能在WINNT.SIF文件的[GuiUnattended]段的DetachedProgram 设置项实现的。
测试效果如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2011-10-2 21:32:41 | 显示全部楼层
蜻蜓特派员制作的添加E驱动的组件包:

http://115.com/file/bhizzm4w#
Easy_DriverPacks_Addon.7z
发表于 2011-10-3 00:00:57 | 显示全部楼层
这个好东西,我看到天意在天空发的那个帖子,就一直想找这方面的教程的,
发表于 2011-10-4 16:51:11 | 显示全部楼层
好教程~~~~~~~~~~~~~
发表于 2011-10-18 19:10:46 | 显示全部楼层
每次制作都感觉这个地方难弄。
发表于 2011-10-18 19:15:53 | 显示全部楼层
楼主,大容量磁盘控制器驱动怎样整合进系统?与天空的综合驱动包有冲突吗?
发表于 2012-1-2 01:13:23 | 显示全部楼层
天意 发表于 2011-10-2 21:32
蜻蜓特派员制作的添加E驱动的组件包:

http://115.com/file/bhizzm4w#

楼主,我下载的蜻蜓特派员制作的添加E驱动的组件包杀毒软件报告有毒是,能不能使用?还有请教一下能不能用NLITE整合。
发表于 2012-1-2 10:05:38 | 显示全部楼层
我自己用EasyBoot做了个维护盘里面想添加“安装WinXP安装版菜单”这样可以用这个维护盘安装 安装版WinXP,我在论坛上下载了 DIY天意U盘维护系统.iso  并把里面的I386复制过来了可这个菜单的执行命令是什么啊 搞了半天不行 求解谢谢 !
头像被屏蔽
发表于 2012-1-9 15:59:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-1-26 18:50:51 | 显示全部楼层
哦~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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