无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: chenall
打印 上一主题 下一主题

[分享] PE自动检测安装驱动 外置组件[01-17更新]

  [复制链接]
211#
发表于 2006-12-20 22:12:04 | 只看该作者
原帖由 chenall 于 2006-12-20 02:15 PM 发表


有没有可以在CMD下查找搜索的工具.
系统自带的FINDSTR不支持UNICODE.我本来想用FINDSTR.这个行不通了.
使用FIND不是很好处理.
这个如果解决了,那下一版将有可能采用这个模式.
至于查找速度,我有试过了应该 ...

  这个问题我在DOS联盟里已经说过了,可以用 type 或者 more 来对付 Unicode 文件,速度还是相当快的,这个 chenall 兄不必担心。
回复

使用道具 举报

212#
 楼主| 发表于 2006-12-21 12:44:46 | 只看该作者
多谢上面的所有朋友,用了另个一个方法.
1.该不会再出现之前的错误提示.
2.不再让系统到原XP系统的INF目录下查找驱动(对原系统的没有任何影响)
原理:
1.先分析硬件ID,然后复制相应的INF文件到临时目录.
2.用BARTPE -PNP从临时目录中安装匹配的驱动(找到了INF文件,虽然可以直接安装,但是有可能在系统中存在着多个可用的驱动文件,为了保证安装的驱动可用,所以让系统自己选择驱动)
3.接下来就和以前的版本一样安装正确的驱动.
新版为了方便测试在安装结束后有暂停,可以按任意键继续,方便查看出错信息.
选择XP系统目录的功能暂未加入,若不是C:\WINDOWS还是需要手工修改.

scandrive12.21.rar

40.14 KB, 阅读权限: 1, 下载次数: 553, 下载积分: 无忧币 -2

12.21 测试版

回复

使用道具 举报

213#
发表于 2006-12-21 14:03:18 | 只看该作者
原帖由 chenall 于 2006-12-21 12:44 PM 发表
原理:
1.先分析硬件ID,然后复制相应的INF文件到临时目录.
2.用 ...

这样是不是绕了一个圈,复制相应的文件?!会不会对速度有影响,不管怎么样,先下载试试!~~
回复

使用道具 举报

214#
 楼主| 发表于 2006-12-21 15:59:13 | 只看该作者
和上一版比较,在开头多了一个查找对应INF文件的过程.
其它的一些细微调整.
确实是绕了一个圈,将以前的复制INF文件到临时目录这个过程,提到最前面了了.
速度应该还是可以忍受的,相比以前应该会慢上几秒钟.
不过为了稳定性和保证不对原系统造成影响,只这样了.
回复

使用道具 举报

215#
发表于 2006-12-21 16:47:28 | 只看该作者
测试结果:

Snap1.JPG (18.88 KB, 下载次数: 141)

Snap1.JPG

Snap2.jpg (24.41 KB, 下载次数: 146)

Snap2.jpg
回复

使用道具 举报

216#
 楼主| 发表于 2006-12-21 17:08:34 | 只看该作者
磁盘空间不足,
不过我却发现了另外一个问题.谢谢你的报告.

再看了一下贴图.我想你的WINDOWS\DRIVER目录应该是存放驱动原文件的吧.

因为这个查找文件是根据文件名查的,并根据它的位置复制到PE的相应位置下.

这个就会复制了一些重复的文件过去.而且声卡的驱动本声文件比较多.

不知你的第一个贴图是什么时候的.出现磁盘空间不足后吗?

[ 本帖最后由 chenall 于 2006-12-21 05:50 PM 编辑 ]
回复

使用道具 举报

217#
发表于 2006-12-21 17:33:53 | 只看该作者
(我用的是老毛桃的1111板的那个)
把winpe.is_解出来.
用优化大师备份驱动,用infcacheXXX那个程序处理后.然后复制到wxpe里的system32,drivers,inf
重新makecab成is_
启动
bartpe -v -pnp  ↓↓↓出现以下信息,我的显卡是ati mobility radeon x700,究竟问题出在哪里呢???

Verbose level set to 1
Found Device: PCI\VEN_1002&DEV_5653&SUBSYS_00661025&REV_00\4&266C3FA7&0&0008
Getting Driver Nodes
Driver node #0
ATI MOBILITY RADEON X700
InfFile: x:\wxpe\inf\oem6.inf
Manufacterer: ATI Technologies Inc.
Version: 8.291.0.0
LoadLibrary() failed
System error code: 0x7E, 找不到指定的模块。

[ 本帖最后由 royliaoz 于 2006-12-21 05:35 PM 编辑 ]
回复

使用道具 举报

218#
 楼主| 发表于 2006-12-21 17:41:32 | 只看该作者
驱动安装失败,可能你的文件没有全部复制,或者INF文件没有完成处理(可以打开INF文件,查找COPYFILES =之类的,如果找得到就说明没有处理过)

修正216楼的驱动安装限制错误的问题.
默认是只安装网卡和显卡驱动的(这个版本可自己修改)
我看了216楼的贴图才发现我的失误.

scandrive12.21.rar

40.57 KB, 阅读权限: 1, 下载次数: 222, 下载积分: 无忧币 -2

12.21_fix

回复

使用道具 举报

219#
发表于 2006-12-21 17:47:21 | 只看该作者
原帖由 chenall 于 2006-12-21 05:41 PM 发表
驱动安装失败,可能你的文件没有全部复制,或者INF文件没有完成处理(可以打开INF文件,查找COPYFILES =之类的,如果找得到就说明没有处理过)



chanall大哥,
我的文件是优化大师backup出来的,有几个我就复制几个了,绝对不会漏的
至于处理,我是你的scandrive里面那个infcachexxx的那个程序处理的...绝对处理过了,内容我没核对过,但我核对过md5,确实经过处理了.
会是什么问题呢?会不会是winpe版本的问题呢?是不是还要改注册表才行?winpe他启动的时候不是自动搜索inf然后自动安装的吗?

[ 本帖最后由 royliaoz 于 2006-12-21 05:50 PM 编辑 ]
回复

使用道具 举报

220#
 楼主| 发表于 2006-12-21 17:55:06 | 只看该作者
最好再核对一下,确认已经处理过了.
然后那些文件还要复制到相对应的目录.
具体可以看看你系统中那些文件的具体位置,复制到PE的位置要对应.
如果以上确认都没有问题,但还是出错,可以打包传上来让论坛的兄弟研究一下.
回复

使用道具 举报

221#
发表于 2006-12-21 18:01:09 | 只看该作者
好的,我刚刚核对过了,无论位置还是inf的内容,都没错
还是出错

我压缩后有7MB那么大,放上论坛看来有点困难,不知道为什么那么大,优化大师备份出来的..很多文件..我XP装的是ATI的催化剂驱动

真郁闷..方法觉得没错,可是我一直没有成功过,很泄气
回复

使用道具 举报

222#
发表于 2006-12-21 18:13:24 | 只看该作者
测试·:

Snap1.jpg (63.52 KB, 下载次数: 112)

Snap1.jpg

Snap2.jpg (46.01 KB, 下载次数: 110)

Snap2.jpg
回复

使用道具 举报

223#
发表于 2006-12-21 18:14:14 | 只看该作者
续:

Snap3.jpg (47.89 KB, 下载次数: 115)

Snap3.jpg
回复

使用道具 举报

224#
发表于 2006-12-21 23:20:09 | 只看该作者
原帖由 chenall 于 2006-12-21 12:44 PM 发表
多谢上面的所有朋友,用了另个一个方法.
1.该不会再出现之前的错误提示.
2.不再让系统到原XP系统的INF目录下查找驱动(对原系统的没有任何影响)
原理:
1.先分析硬件ID,然后复制相应的INF文件到临时目录.
2.用 ...


呵呵,转了一个圈,又回到我原来用的方法上了。
下来,测试一下先(这两天工作好忙,刚刚才回家)
回复

使用道具 举报

225#
 楼主| 发表于 2006-12-21 23:38:23 | 只看该作者
为了不对原系统造成影响和影响PE稳定性,只好用这个方法了,速度慢了点.

看了上面的贴图,又发现了一个小问题,不过对功能并不影响.
回复

使用道具 举报

226#
发表于 2006-12-22 07:48:17 | 只看该作者
能不能在驱动复制的过程中,先过滤文件类型,把不需要的文件过滤掉,再复制必需的驱动文件,我发现有些驱动带HELP文件、说明也一块复制过去了,而造成驱动过大,复制慢,目标驱动器空间不足等问题。。。
回复

使用道具 举报

227#
发表于 2006-12-22 08:36:10 | 只看该作者
  我来提一下精简代码方面的建议:
  bartpe -v -pnp^|find /i "Found Device:" 一节,有两处是重复的,不同的只是 call 部分的不同而已,完全可以通过 if 来合并这两部分,效率还可以有所提升;
  观察了几个 for 语句,in 部分并没有带空格的路径,所以 usebackq 部分可以取消。

  另外,如果要提取的 devid 部分有好几个 & ,则只用 tokens=3,4 是无法完全提取的。

[ 本帖最后由 namejm 于 2006-12-22 08:38 AM 编辑 ]
回复

使用道具 举报

228#
 楼主| 发表于 2006-12-22 11:34:55 | 只看该作者
原帖由 hai2002713 于 2006-12-22 07:48 AM 发表
能不能在驱动复制的过程中,先过滤文件类型,把不需要的文件过滤掉,再复制必需的驱动文件,我发现有些驱动带HELP文件、说明也一块复制过去了,而造成驱动过大,复制慢,目标驱动器空间不足等问题。。。


因为是按照INF文件里面COPYFILES的语句复制的,而且不知少几个文件不知驱动可否安装成功(有可能还需要修改INF文件),所以暂时这个是没办法的了,我有机会再测试一下看能不能用.

原帖由 namejm 于 2006-12-22 08:36 AM 发表
  我来提一下精简代码方面的建议:
  bartpe -v -pnp^|find /i "Found Device:" 一节,有两处是重复的,不同的只是 call 部分的不同而已,完全可以通过 if 来合并这两部分,效率还可以有所提升;
...

bartpe -v -pnp^|find /i "Found Device:" 这两次的执行结果是不一样的,所以不能合并.

另外,如果要提取的 devid 部分有好几个 & ,则只用 tokens=3,4 是无法完全提取的。
只需提取前面两段就可以了,全部提取了反而不能用.

[ 本帖最后由 chenall 于 2006-12-22 11:37 AM 编辑 ]
回复

使用道具 举报

229#
 楼主| 发表于 2006-12-22 11:49:54 | 只看该作者
#223和#224的驱动VEN_1106&DEV_3230已经安装成功.
不过我不知道这个是不是网卡驱动,只知道是VIA的,(
你可以以那个目录下执行
devcon drivernodes "VEN_1106&DEV_3230"
可以看出这是什么驱动.
如果这个不是网卡驱动,也就是说网卡驱动没有装上去,那启动网络肯定是失败的.
回复

使用道具 举报

230#
发表于 2006-12-22 12:35:40 | 只看该作者
  原来两次用 bartpe -v -png 时的状态不一样,是 start /w InfCacheBuild.exe %tmp_dir% 这一句在起作用吧?呵呵,对这两个东西完全不懂,见笑了。
回复

使用道具 举报

231#
发表于 2006-12-22 13:15:04 | 只看该作者
昨天匆匆忙忙测试,今天看了一下我机器中c:\windows下内容,发现c:\windows\drivers下存放了全部备份的驱动,把它全部删除,修改scandrive.cmd中 set 允许驱动类型=net,只检测网卡驱动,好象网卡是找到了,但服务没有启动,结果如下(via集成主板,8139网卡)

Snap1.jpg (66.52 KB, 下载次数: 100)

Snap1.jpg

Snap2.jpg (65.33 KB, 下载次数: 110)

Snap2.jpg
回复

使用道具 举报

232#
发表于 2006-12-22 13:16:03 | 只看该作者
续:

Snap3.jpg (89.78 KB, 下载次数: 87)

Snap3.jpg

Snap4.jpg (62.44 KB, 下载次数: 111)

Snap4.jpg
回复

使用道具 举报

233#
发表于 2006-12-22 13:16:20 | 只看该作者
续:
tcpip协议服务已经启动(网卡肯定找到了),dhcp服务没启动,差最后一步了。

[ 本帖最后由 zhaohj 于 2006-12-22 01:21 PM 编辑 ]

Snap5.jpg (47.52 KB, 下载次数: 109)

Snap5.jpg
回复

使用道具 举报

234#
 楼主| 发表于 2006-12-22 16:07:02 | 只看该作者
上面的驱动安装没有问题,应该是网络组件的文件不完整.
回复

使用道具 举报

235#
发表于 2006-12-22 16:19:15 | 只看该作者
我是用StrongChen修改版说明 (made at 2006.12.17),用他本身的没有问题,他是外置网络组件(这个也是你的l最新的外置驱动组件),外置网卡驱动,我测试只不过把外置网卡的过程换成你的scandrive.cmd。还有上次的一个测试版已经成功了的。

[ 本帖最后由 zhaohj 于 2006-12-22 05:03 PM 编辑 ]
回复

使用道具 举报

236#
发表于 2006-12-22 17:56:00 | 只看该作者
安装驱动时,出现如图所示

Snap1.jpg (48.8 KB, 下载次数: 113)

Snap1.jpg
回复

使用道具 举报

237#
发表于 2006-12-22 20:00:05 | 只看该作者
测试12.21  虚拟机VPC和VMware 中全通过.可实机中网卡驱动了,显卡没能驱动
回复

使用道具 举报

238#
 楼主| 发表于 2006-12-23 11:39:49 | 只看该作者
236#
我看了下,我觉得应该是和我那个批处理里面的语句有关,你可以先试试单据启动SCANDRIVE.然后再启动网络.
不要用批处理两个一起执行.单据执行试下,如果我的猜测没有错那应该就可以启动了.

238#
由于显卡的驱动的文件比较多,比较大,如果你的X盘可用空间不足是安装不上的.

237#
暂时无法看出出问题的原因.
因为那个版本的提示信息不多,具体不太清楚.
你可以试着将SCANDRIVE.CMD的@echo off语句注释掉,然后再执行,就可以知道具体在哪里出错了.

12.22
1.添加了/s参数,用于在批处理中选择安装的驱动类型.
例子:
scandrive.cmd "/s:net"  只安装网卡驱动
scandrive.cmd "/s:net,display"  安装网卡和显卡驱动.
注意:这个参数用使用""否则只使用第一个.
2.添加了Wfolder.exe用于手工选择XP系统目录.
当SCANDRIVE.CMD中的XP_DIR目录不存在时就会自动跳出选择目录的窗口.

解决之前一版本的批处理执行时间不对的问题.
有可能也解决了236#的问题.

[ 本帖最后由 chenall 于 2006-12-23 12:50 PM 编辑 ]

scandrive12.22.rar

44.58 KB, 阅读权限: 1, 下载次数: 52, 下载积分: 无忧币 -2

回复

使用道具 举报

239#
发表于 2006-12-23 13:41:23 | 只看该作者
我把批处理分开,能完美驱动了:
1:先加载网卡显卡组件
2:scandrive.cmd
3:startnet.cmd,start SetDisplay.exe F75

Snap1.jpg (32.25 KB, 下载次数: 92)

Snap1.jpg

Snap2.jpg (24.39 KB, 下载次数: 96)

Snap2.jpg
回复

使用道具 举报

240#
发表于 2006-12-23 13:48:51 | 只看该作者

靠,优化大师那个垃圾

要想备份驱动,还是要在驱动之家下载驱动备份精灵,优化大师备份出来的总是缺少系统文件,尤其是SYS文件,垃圾!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-2 06:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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