无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: chenall
打印 上一主题 下一主题

[原创]支持外置硬盘控制器驱动,可任意方式启动的PE[10-01-13稳定版]

  [复制链接]
1081#
发表于 2009-4-16 14:24:24 | 只看该作者

回复 #1086 zhaohj 的帖子

有空可试试4.15的0PE,预期可以驱动
回复

使用道具 举报

1082#
 楼主| 发表于 2009-4-16 20:14:07 | 只看该作者
原帖由 zhaohj 于 2009-4-16 13:20 发表
PXE启动,这个SRS目录下每个驱动能不能不打包处理,方便驱动更新。目前这个SRS目录下缺少太多驱动,常见的PCIIDE、pciidex也没有。
如果能不打包处理,以后真的方便了,读SCSI.PCI(或这里是TXTSETUP.SIF),找 ...


下午尝试了一下,初步实现以上方案.只能用于PXE启动.可以方便添加驱动.
使用方法.
1.从其它PE中提取TXTSETUP.SIF文件复制到MINIPE\SRS目录.
2.从其它PE中复制DRIVERS目录下的所有文件到MINIPE\SRS目录
3.修改TXTSETUP.SIF让它不大于60KB(如果不大于60KB可以不用修改).
TXTSETUP.SIF里面除了SRS或IDE驱动以外的段都可以删除.
[SourceDisksFiles]也是属于没有用的字段.

需保留段列表如下.

[HardwareIdsDatabase]
[scsi.load]
[BusExtenders]
[BusExtenders.Load]
[files.*]

使用PXE启动时,如果之前支持的驱动都没有找到才会启用这个功能,

流程
首先下载TXTSETUP.SIF->提取[HardwareIdsDatabase]并整理成CHKPCI支持的格式,-->检测驱动.-->下载检测到的驱动需要的文件并集成到PE中.

其中SCSI.LOAD里面的驱动下载的文件就是SCSI.LOAD指定的驱动.
[BusExtenders.Load]里面的驱动需要下载的文件是[files.*]里面对应的驱动.

EXT.zip

226.21 KB, 下载次数: 35, 下载积分: 无忧币 -2

回复

使用道具 举报

1083#
发表于 2009-4-17 08:15:06 | 只看该作者
原帖由 chenall 于 2009-4-16 20:14 发表


下午尝试了一下,初步实现以上方案.只能用于PXE启动.可以方便添加驱动.
使用方法.
1.从其它PE中提取TXTSETUP.SIF文件复制到MINIPE\SRS目录.
2.从其它PE中复制DRIVERS目录下的所有文件到MINIPE\SRS目录
3 ...


作为备用方案,是不是先把目录改为MINIPE\SRS\DRIVERS,这样也不影响主体方案有不引起文件混乱。
马上测试...

成功!我认为这个可作为主方案!

[ 本帖最后由 zhaohj 于 2009-4-17 08:52 编辑 ]
回复

使用道具 举报

1084#
 楼主| 发表于 2009-4-17 17:20:51 | 只看该作者
HOH,我又犯了一个错误.
碰到[BusExtenders.Load]
它自身对应的文件也需要下载.忘了.晕现在只下载它的files.*驱动.

下次再一起改吧.
回复

使用道具 举报

1085#
发表于 2009-4-17 23:23:49 | 只看该作者
http://bbs.wuyou.net/forum.php?m ... age%3D1&page=81
上面808楼解答一下。
PXE启动,网卡驱动太关键了!看来有空得好好整理一下。
回复

使用道具 举报

1086#
发表于 2009-4-18 10:59:37 | 只看该作者
NET目录下能不能做个分类,如:
NET
  |--3COM
  |--INTEL
  |--MARVELL
  |--REALTEK
  ....
回复

使用道具 举报

1087#
发表于 2009-4-18 13:52:41 | 只看该作者

回复 #1093 zhaohj 的帖子

试试这样:
1、将NET\VM.CAB移到NET\TEST\VM.CAB
2、修改NETMAP.TXT,将
VMWARE=VM
改为VMWARE=TEST\VM
3、修改chknet.bat,在set CabName=前加一行:
copy /y 0PE\net\%CabName%.cab c:\0PE\net\.

只适合PXE启动,要求.CAB文件名全局唯一。
回复

使用道具 举报

1088#
 楼主| 发表于 2009-4-18 16:05:36 | 只看该作者
修正前面使用TXTSETUP.SIF提取驱动的一些错误.

EXT.zip

252.47 KB, 下载次数: 37, 下载积分: 无忧币 -2

回复

使用道具 举报

1089#
 楼主| 发表于 2009-4-18 16:17:49 | 只看该作者
原帖由 zhaohj 于 2009-4-18 10:59 发表
NET目录下能不能做个分类,如:
NET
  |--3COM
  |--INTEL
  |--MARVELL
  |--REALTEK
  ....

就按pseudo的方法修改netid.txt(可以有多级目录)

但是由于DOS下的TFTP需要目录有存在才能下载成功,所在在CHKNET里面也需要建立目录.DOS好像不能直接建立a\b\c之类的目录.

可以通过第三方工具来实现这个建立目录的过程.下次可以考虑一下加进去.

或者修改一下TFTP.EXE的源码重新编译.
回复

使用道具 举报

1090#
 楼主| 发表于 2009-4-18 18:50:15 | 只看该作者
补一下C语言,
准备为TFTP.EXE添加一个参数,让它可以指定下载的文件存放位置.(比较简单)
如果可能的话,还可以再添加一个参数,指定blksize的值,这样使用DOS的TFTP.EXE下载文件就不会慢了(有点难度)
回复

使用道具 举报

1091#
发表于 2009-4-19 00:49:48 | 只看该作者
原帖由 chenall 于 2009-4-18 18:50 发表
补一下C语言,
准备为TFTP.EXE添加一个参数,让它可以指定下载的文件存放位置.(比较简单)
如果可能的话,还可以再添加一个参数,指定blksize的值,这样使用DOS的TFTP.EXE下载文件就不会慢了(有点难度)


现在SRS已经很完善了,按照备用方案可以很方便补充修改;网卡驱动如果能按分类存放,补充完善将更加方便。
PXE又提升了一大步!
期待中...
回复

使用道具 举报

1092#
 楼主| 发表于 2009-4-19 01:24:35 | 只看该作者
重新编译的TFTP.EXE.
关于blksize,尝试着调了一下,需要改动的内容太多,我功夫还没有学到家就不改了.

在原来的基础上添加了指定文件存放位置的可选参数(如果没有加这个参数就和以前的一样)
这样可以方便处理.

例子,
下载服务器上MINIPE目录下的EXT.ZIP到当前目录.
tftp get minipe\ext.zip %tftp_server% .\

如果这个可以正常使用的话解决网卡分类就不是很大问题了.^_^

....
我使用BC4.5编译的,比原来的文件大了20KB左右,不知怎么调整.算了暂时就这样用了.
原版好像是BC4的.有空再找找BC4的编译试下.

[ 本帖最后由 chenall 于 2009-4-19 01:26 编辑 ]

TFTP.rar

35.29 KB, 下载次数: 35, 下载积分: 无忧币 -2

回复

使用道具 举报

1093#
发表于 2009-4-19 12:07:23 | 只看该作者
good job !
回复

使用道具 举报

1094#
 楼主| 发表于 2009-4-19 17:26:38 | 只看该作者
to zhaohj
看来您又有得忙了.^_^

新的EXT.ZIP上传测试.(针对网络启动的改进)

使用新的TFTP.EXE以方便支持网卡驱动分类.新的TFTP.EXE修改了下载失败重试次数,所以等侍时间相应会比较少一些.(原版默认重试6次,这里改成了3次)

分类方法就是上面pseudo所说的.例子

PCI\VEN_1022&DEV_2000="vm\NETAMD2"

这就有一个vm分类的目录了需要把netamd2驱动放在VM目录下才可以找得到.

新的EXT.ZIP使用PXE启动时,下载网卡驱动充许使用ZIP或7Z格式.

优先级
CAB>ZIP>7Z.
如上例子.
如果NET\VM目录下存在NETAMD2.CAB和NETAMD2.ZIP.优先使用CAB格式.

其它的不需要改变.

这里需要注意的时,如果使用7Z格式需要注意一下内存是否可用.7Z对内存要求比较高.
对于这些小文件一般字典大小设为1M或64KB,可以有效减少解压时的内存占用.

[ 本帖最后由 chenall 于 2009-4-19 19:24 编辑 ]

EXT.zip

251.6 KB, 下载次数: 26, 下载积分: 无忧币 -2

回复

使用道具 举报

1095#
发表于 2009-4-19 18:52:14 | 只看该作者
今天下午在分类网卡驱动,我分类好了会上传到FTP2下"PE常用工具\net目录
已经测试成功了。
恭喜!


PS:网卡驱动按分类已上传!!!

[ 本帖最后由 zhaohj 于 2009-4-19 19:32 编辑 ]
回复

使用道具 举报

1096#
 楼主| 发表于 2009-4-19 19:22:33 | 只看该作者
总算找到一个可以编译出和原版一样43KB的编译器了.^_^用这个替换进去再试试.

TFTP.rar

24.97 KB, 下载次数: 34, 下载积分: 无忧币 -2

回复

使用道具 举报

1097#
发表于 2009-4-19 19:41:37 | 只看该作者
原帖由 chenall 于 2009-4-19 19:22 发表
总算找到一个可以编译出和原版一样43KB的编译器了.^_^用这个替换进去再试试.



在IBMX3610服务器上实机测试,成功!
恭喜!
回复

使用道具 举报

1098#
发表于 2009-4-19 20:35:30 | 只看该作者
我喜欢这个模块化的PE,收藏了,感谢楼主
回复

使用道具 举报

1099#
 楼主| 发表于 2009-4-19 22:40:56 | 只看该作者
又优化了一下.去掉了TCPINFO.EXE(用于获取网关IP的程序)和IPREAD.COM

整合了TFTP.EXE和TCPINFO.EXE的源代码.(因为都是调用WATTCP库的,所以两个合起来的程序也不大,才增加1KB)又可以减小EXT.ZIP大小了^_^

给TFTP.EXE增加了一个新参数cfg用于获取并显示当前的IP信息.(用于代替TCPINFO.EXE来取得IP信息)

TFTP.EXE的使用说明没有修改,因为这些功能很少人用到,只是这里需要才增加的.

例子
tftp.exe cfg
显示的内容例子
Config file not found
Configuring through BOOTP/DHCP
MY_IP=192.168.0.193
netmask=255.255.255.0
gateway=192.168.0.100
nameserver=192.168.0.253
#Ethernet Address : 00:0C:29:C3:16:B7


其中前面两行是显示到STDERR的.
后面的是直接显示到屏幕上,所以可以使用
tftp.exe cfg >tcp.new
来取得后面的IP信息.

注:只有当TFTP.EXE同目录或运行目录下不存在TCP.CFG或WATTCP.CFG时才会显示上面的内容,否则返回错误值1

注意不可以直接使用以下命令,会起冲突的,因为程序执行时也要读取这两个文件.
tftp.exe cfg>tcp.cfg 或 tftp.exe cfg>wattcp.cfg

使用参考.
  1. TFTP CFG>\bin\tcp.new
  2. if errorlevel 1 del \bin\tcp.new
  3. if exist \bin\tcp.new ren \bin\tcp.new tcp.cfg
复制代码
附件的EXT.ZIP包含了新的TFTP.EXE程序在BIN目录下.

跨网段启动的可以试下使用新的EXT.ZIP看能不能正常使用.

[ 本帖最后由 chenall 于 2009-4-19 22:45 编辑 ]

EXT.zip

225.86 KB, 下载次数: 53, 下载积分: 无忧币 -2

回复

使用道具 举报

1100#
发表于 2009-4-19 23:10:27 | 只看该作者
哇,又减少了20多K,明天测试了。
回复

使用道具 举报

1101#
发表于 2009-4-20 08:00:16 | 只看该作者
原帖由 chenall 于 2009-4-19 22:40 发表
又优化了一下.去掉了TCPINFO.EXE(用于获取网关IP的程序)和IPREAD.COM

整合了TFTP.EXE和TCPINFO.EXE的源代码.(因为都是调用WATTCP库的,所以两个合起来的程序也不大,才增加1KB)又可以减小EXT.ZIP大小了^_^

...


一早虚拟机及实机测试,都正常!
跨网段需要其他人测试了。

[ 本帖最后由 zhaohj 于 2009-4-20 08:01 编辑 ]
回复

使用道具 举报

1102#
发表于 2009-4-20 11:11:43 | 只看该作者
看来有解决了一些BUG,楼主,啥时候上传MicroPE0410后的补丁到网盘呀?
回复

使用道具 举报

1103#
 楼主| 发表于 2009-4-20 14:14:35 | 只看该作者
原帖由 紫狐 于 2009-4-20 11:11 发表
看来有解决了一些BUG,楼主,啥时候上传MicroPE0410后的补丁到网盘呀?


由于上次结构的调整,所以现在更新比较方便 .

实际上只要把上面的EXT.ZIP替换进去就是最新版的了.
回复

使用道具 举报

1104#
发表于 2009-4-20 23:44:28 | 只看该作者
原帖由 chenall 于 2009-4-20 14:14 发表


由于上次结构的调整,所以现在更新比较方便 .

实际上只要把上面的EXT.ZIP替换进去就是最新版的了.



明白,先更新下,等zhaohj把驱动整理完再更新一下驱动。
回复

使用道具 举报

1105#
发表于 2009-4-21 19:10:59 | 只看该作者
原帖由 zhaohj 于 2009-4-19 18:52 发表
今天下午在分类网卡驱动,我分类好了会上传到FTP2下"PE常用工具\net目录
已经测试成功了。
恭喜!


PS:网卡驱动按分类已上传!!!



zhaohj ,是不是保留原net下面的“自动检测网卡驱动.CMD”和“PCI32.EXE”,然后把ftpnet下面的文件拷贝到pe的net下面就可以使用了?
回复

使用道具 举报

1106#
发表于 2009-4-21 23:12:01 | 只看该作者
原帖由 紫狐 于 2009-4-21 19:10 发表



zhaohj ,是不是保留原net下面的“自动检测网卡驱动.CMD”和“PCI32.EXE”,然后把ftpnet下面的文件拷贝到pe的net下面就可以使用了?


是的。新版支持目录结构。
现在这个先用吧,过几天再更新一下。
回复

使用道具 举报

1107#
发表于 2009-4-22 12:58:50 | 只看该作者
get_id_cab.rar (58.79 KB, 下载次数: 32)
原帖由 chenall 于 2009-4-19 22:40 发表
又优化了一下.去掉了TCPINFO.EXE(用于获取网关IP的程序)和IPREAD.COM

整合了TFTP.EXE和TCPINFO.EXE的源代码.(因为都是调用WATTCP库的,所以两个合起来的程序也不大,才增加1KB)又可以减小EXT.ZIP大小了^_^

...


测试了新版的dos tftp程序, 可以支持cab的多级目录了。
比如下面的netid.txt
PCI\VEN_1011&DEV_0019="NET_DRV\INTEL\21X4\21X4"
PCI\VEN_1011&DEV_0039="NET_DRV\INTEL\21X4\21X4"
PCI\VEN_1022&DEV_2000="NET_DRV\VMWARE\VMWARE"
PCI\VEN_1039&DEV_0190="NET_DRV\SIS\190_DRV\190_DRV"
PCI\VEN_1039&DEV_0191="NET_DRV\SIS\190_DRV\190_DRV"

推荐用这样的目录结构,这样可以直接使用小马的网卡驱动,改所有目录名成8个字符以下, 用python程序处理一下,在每个包含inf的文件夹中生成成一个"目录名.cab",  并且生成netid.txt文件。 这样更新驱动也很方便,只要copy到net_drv文件夹,重新生成cab和netid.txt


生成NETID.TXT的脚本, 同时在驱动文件夹内生成“目录名.cab”文件, 需要安装一个python解释器,用pxe启动的朋友可以参考使用
比如目录结构如下:
─net_drv
├─3COM
│  ├─EL2K_XP
│  ├─el90xbc5
│  ├─el985n51
│  ├─EL99XN51
│  ├─w9x90xbc
│  └─w9xel90x
├─admtek
│  ├─983B
│  ├─AN983
│  └─AN986
├─Agere
运行在net_drv的上级目录下面运行 c:\python26\python get_id.py  net_drv  , 则会生成net_drv\3com\el2k_xp.cab, net_drv\3com\el90xbc5.cab,...和NETID.TXT, 省得自己去打包和修改NETID.TXT了

如果需要不同的目录结构或者不需要剔除重复id,  可以根据需要修改get_id.py脚本就可以了。  

python 2.6下载: http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi

也可以用py2exe编译成.exe文件,不过需要很多lib文件在同一个目录才可以运行,还是以脚本方式运行比较好。

[ 本帖最后由 jamesdai2002 于 2009-4-22 13:05 编辑 ]
回复

使用道具 举报

1108#
 楼主| 发表于 2009-4-23 11:12:41 | 只看该作者
还有一点我忘了说了,
分类目录不要太多级了.一般情况下不建议使用超过5级的分类目录.

因为 DOS下有命令行长度限制,如果分类目录太长的话就不能正常使用了.
回复

使用道具 举报

1109#
 楼主| 发表于 2009-4-23 11:56:33 | 只看该作者
先放着测几天,等zhaohj 的新的网卡驱动传上来再进行最后的更新上传,
基本上没有什么问题了,也没有什么可改的了.

这个就是最终版了.
回复

使用道具 举报

1110#
发表于 2009-4-23 13:10:53 | 只看该作者
等着你的最终版的面世了!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-15 05:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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