位置于:首页>>无盘专区>>EHD系统>>正文
 自己动手做98/me的pnp,--EHD不求人(初级篇)

ehd不求人--初级篇

好多初接触ehd的朋友都不明白多配置PNP是个什么概念,其实简单打个比方:就象你现在用的有盘98/me,你把硬盘拿到其它配置的机器上马上就自己发现新硬件,只要你把相应的驱动安装完成,那就可以在新配置的机器上正常使用了.而把硬盘拿回原来的机器也同样能正常工作. 我们就是要把ehd网络上的多配置机器也做到这种效果,姑且就称之为pnp吧.

ehd也是一种无盘系统,但ehd是做的跟有盘最相近的一种无盘系统.所以做ehd的pnp就可以模仿有盘的来做.因为无盘工作站的所有数据都是通过网络从服务器上接受的,网卡驱动不起来,必然就不能正常接受到来自服务器的数据,于是就产生这样那样的错误,不能正常启动工作.所以我们第一步就来解决如何使不同配置机器上的网卡都正常驱动起来,这一步就是ehd pnp的关键.

因为ehd系统与有盘系统是那么的接近,所以一起的实验都可以放到有盘的机器上来做.诸位一定都知道在有盘的98/me系统上有这么个现象: 即使你的网卡已经安装过驱动并能正常工作,但只要把网卡拔下来换个pci插槽,系统启动时就会发现新的网卡设备,并要求重新安装驱动,然后再重新启动计算机,网络才能正常工作. 这一系列的动作在有盘上不会导致系统不能启动等问题的发生,但如果在无盘上,这个动作将是致命的,因为网卡没有被驱动起来,所以就不能正常的从服务器上接受数据,也因此无盘工作站就启动不起来.呵呵. 那我们要做的事就是只要安装过网卡驱动后,不管网卡换到哪个插槽都不会发现新网卡,都能正常驱动工作就行了.

那我们来做个实验,看看在有盘的机器上为什么换个网卡插槽就会发现新网卡呢.细心的朋友通过对注册表的比较,会发现,在注册表的HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10下出现了两个分支.在没有换插槽前只有一个分支(比如08F000),换了个插槽后,又多出了一个新的分支(比如10F000).而注册表其它地方却没有发生大的什么变化.然后你把网卡在这两个已经插过的插槽上来回换插,系统却不会发现新的网卡了.由此可以推断,只要网卡安装过驱动并且网卡的插槽位置在注册表里建立过分支,就不会发现新网卡并能正常驱动了.呵呵.

ok,下面就想办法如何让网卡把自己的插槽位置在系统启动到保护模式前就登记到注册表分支里.这样就可以不再发现新网卡并能正常驱动了.那无盘不就可以正常启动了吗~~~哈哈.
这里推荐给大家3种初级办法,为什么说是初级办法呢,在以后的ehd不求人中级篇里会体会到的.呵呵.下面开讲了:

1. 把网卡做成非即插即用设备. 这个概念我就不多讲了,去网上搜索一下会得到答案的.做法:
做完98/me系统后,把网卡安装win95驱动.然后导入下面的一段注册表:
[HKEY_LOCAL_MACHINE\Enum\ROOT\NET]

[HKEY_LOCAL_MACHINE\Enum\ROOT\NET\0000]
"Capabilities"=hex:14,00,00,00
"HardwareID"="PCI\\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10,PCI\\VEN_
10EC&DEV_8139&SUBSYS_813910EC,PCI\\VEN_10EC&DEV_8139&REV_10&CC_
0200,PCI\\VEN_10EC&DEV_8139&CC_020000,PCI\\VEN_10EC&DEV_8139&CC_0200"
"CompatibleIDs"="PCI\\VEN_10EC&DEV_8139&REV_10,PCI\\VEN_10EC&DEV_
8139,PCI\\VEN_10EC&CC_020000,PCI\\VEN_10EC&CC_0200,PCI\\VEN_10EC,PCI\\CC_020000,PCI\\CC_0200"
"DeviceDesc"="Realtek RTL8139 PCI Fast Ethernet"
"HWRevision"="016"
"Class"="Net"
"ConfigFlags"=hex:10,00,00,00
"ClassGUID"="{4d36e972-e325-11ce-bfc1-08002be10318}"
"Driver"="Net\\0001"
"Mfg"="Realtek"

[HKEY_LOCAL_MACHINE\Enum\ROOT\NET\0000\Bindings]
"MSTCP\\0000"=""

接着把注册表里的HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10项删除掉.到系统INF目录里把网卡的inf文件删除掉,重启系统,这时候会发现一个未知设备,不管它,就让它认成未知设备就可以了. 至此.这个最傻瓜化的pnp就算完成了.你试试,无论网卡换哪个插槽都不会发现新设备了,并能正常使用网络.但遗憾的是虽然简单,但网卡驱动是NDIS3的,性能比不过win98驱动(ndis5)的.

2. 借用华教无盘里的一个工具pnpenv.exe和litenet里的工具qpatch.exe来做.做法如下:
装完系统和网卡最新驱动,设置好网络,添加tcp/ip ipx/spx netbeui 3个协议,设成网络友好登录.然后在98/me的autoexec.bat里添加如下命令:(me要先改成medos模式哟,从网上下载winme2dos工具就可以做)
@echo off
pnpenv.exe>pci.bat
call pci.bat >nul
SET intel=%PNPK%F000
SET viasis=BUS_%PNPB%&DEV_%PNPE%&FUNC_%PNPF%
qpatch.exe  lanpci.reg  lan.reg
c:\windows\regedit.exe c:\lan.reg >nul
cd\windows
win.COM
**************

lanpci.reg内容如下:
REGEDIT4


[-HKEY_LOCAL_MACHINE\Enum\PCI\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}]

[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}]

[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}\{%intel%}]
"Capabilities"=hex:14,00,00,00
"HardwareID"="PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%},PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%},PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&REV_{%PNPR%},PCI\\VEN_{%PNPV%}&DEV_{%PNPD%},PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&REV_{%PNPR%}&CC_0200,PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&CC_020000,PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&CC_0200"
"CompatibleIDs"="PCI\\VEN_{%PNPV%}&CC_020000,PCI\\VEN_{%PNPV%}&CC_0200,PCI\\VEN_{%PNPV%},PCI\\CC_020000,PCI\\CC_0200,PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}"
"DeviceDesc"="Realtek RTL8139/810x Family Fast Ethernet NIC"
"HWRevision"="0{%PNPZ%}"
"Class"="Net"
"ConfigFlags"=hex:10,00,00,00
"ClassGUID"="{4d36e972-e325-11ce-bfc1-08002be10318}"
"Driver"="Net\\0000"
"Mfg"="Realtek Semiconductor Corp."

[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}\{%intel%}\Bindings]
"NWLINK\\0000"=""
"NETBEUI\\0000"=""
"MSTCP\\0000"=""
[page]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ASD\Prob\{CF2524C0-29AE-11CF-97EA-00AA0034319D}]
"PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}\\{%intel%}"=hex:00

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ASD\Prob\{9B4E7760-3196-11CF-97EA-00AA0034319D}]
"PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}\\{%intel%}"=hex:00


[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}]

[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}\{%viasis%}]
"Capabilities"=hex:14,00,00,00
"HardwareID"="PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%},PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%},PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&REV_{%PNPR%},PCI\\VEN_{%PNPV%}&DEV_{%PNPD%},PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&REV_{%PNPR%}&CC_0200,PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&CC_020000,PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&CC_0200"
"CompatibleIDs"="PCI\\VEN_{%PNPV%}&CC_020000,PCI\\VEN_{%PNPV%}&CC_0200,PCI\\VEN_{%PNPV%},PCI\\CC_020000,PCI\\CC_0200,PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}"
"DeviceDesc"="Realtek RTL8139/810x Family Fast Ethernet NIC"
"HWRevision"="0{%PNPZ%}"
"Class"="Net"
"ConfigFlags"=hex:10,00,00,00
"ClassGUID"="{4d36e972-e325-11ce-bfc1-08002be10318}"
"Driver"="Net\\0000"
"Mfg"="Realtek Semiconductor Corp."

[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}\{%viasis%}\Bindings]
"NWLINK\\0000"=""
"NETBEUI\\0000"=""
"MSTCP\\0000"=""

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ASD\Prob\{CF2524C0-29AE-11CF-97EA-00AA0034319D}]
"PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}\\{%viasis%}"=hex:00

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ASD\Prob\{9B4E7760-3196-11CF-97EA-00AA0034319D}]
"PCI\\VEN_{%PNPV%}&DEV_{%PNPD%}&SUBSYS_{%PNPS%}&REV_{%PNPR%}\\{%viasis%}"=hex:00

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\PCI]
"Options"=hex:00,00,00,00

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0001]
"Network_Id"="00000002"
*********************************
把pnpenv.exe qpatch.exe lanpci.reg 这3个文件都拷贝到c:根目录下.另外注意一下,在me里config.sys文件要加上DEVICE=C:\WINDOWS\IFSHLP.SYS这句哟. ok,第二种over.

3.利用ehd软件里自带的pcidev.exe来做.
装完系统和网卡最新驱动,设置好网络,添加tcp/ip ipx/spx netbeui 3个协议,设成网络友好登录.然后在98/me的autoexec.bat里添加如下命令:(me要先改成medos模式哟,从网上下载winme2dos工具就可以做)
@echo off
pcidev.exe id net mstcp netbeui nwlink >nul
regedit pcidev.reg >nul

********************
把pcidev.exe文件都拷贝到c:根目录下.另外注意一下,在me里config.sys文件要加上DEVICE=C:\WINDOWS\IFSHLP.SYS这句哟. ok,第3种over. 第3种方法原本最简单,可是pcidev.exe 对某些主板插槽位置辨认不准,还得要手工改一下.

以上的3种方法,我尽量用通俗易懂的方法来叙述了,但我的脾气没有长性,就越写越马虎了,希望ehd初入门的朋友们可以看明白. 3种方法里提到的工具,可以在下面下载.

ehd不求人--中级篇和高级篇将会在我高兴的时候发出.在中高级篇里会讲述我如何根据网卡号来让不同配置的工作站来使用自己独立的纯净的注册表,如何让pnp2000,如何不再使用批处理来做网卡的pnp,以及如何二次加密edisk卡,做出自己的生意试用版,最后将公布ehd号的算法.呵呵.


以上的实验均可以在一台有盘站上进行.如果成功,在ehd上就必然成功.

pnpenv.exe


[download]http://wsbsoft.w112.leoboard.com/zybbs/down/pnpenv.exe[/download]

qpatch.exe


[download]http://wsbsoft.w112.leoboard.com/zybbs/down/qpatch.exe[/download]

pcidev.exe


[download]http://wsbsoft.w112.leoboard.com/zybbs/down/pcidev.exe[/download]


8139最新驱动


[download]http://wsbsoft.w112.leoboard.com/zybbs/down/8139drv.zip[/download]

动手练习的10个工作站和1个服务器文件


[download]http://wsbsoft.w112.leoboard.com/zybbs/down/rom.rar[/download]

ehd521千兆版


[download]http://wsbsoft.w112.leoboard.com/zybbs/down/ehd.rar[/download]内部:http://xp163.com/
 自己动手做98/me的pnp,--EHD不求人(初级篇)站内说明
 最新站点内更新

 

 书籍教程站内推荐信息
 书籍教程网站地图