无忧启动论坛

标题: [20110331 修正] CMPE (03核心,通用外置SRS、PCI三卡驱动架构,全面硬件支持) [打印本页]

作者: canmao    时间: 2010-6-12 12:38
标题: [20110331 修正] CMPE (03核心,通用外置SRS、PCI三卡驱动架构,全面硬件支持)
----20110331(包含29日)修正----
1. 调整四个 LAN 驱动包结构,以适应新版 PECMD.EXE 中 DEVI 命令的变化;
2. 解决Intel  AHCI/RAID 10.1版驱动不能正确加载的问题;
3. 增加驱动处理判断,方便通过简单删除驱动目录,就能达到对硬件的取舍;
4. 修正 _LAN.TXT  ID文件中的错误(29日)。
请解压缩包中的文件,替换对应的目录中的文件。

PEDRVS.part1.rar (400 KB, 下载次数: 662) PEDRVS.part2.rar (388.47 KB, 下载次数: 607)

----20110328更新----
1. 使用Grub4dos下的chkpci进行设备检测处理,比原来处理速度有很大地提高。感谢 Chenall !
2. PECMD.EXE更新至2011.0101版;
3. 更新Intel SRS原9.6版为10.1.2.1004版(IASTORA1.SY_),增加VEN_8086&DEV_1C02、1C03两个ID;
4. FiraDisk升级至0.0.1.30、WinVBlock升级至0.0.1.8;
5. 去除非本地 exe、com、bat、cmd、vbs等文件运行时的安全提示;
6. 替换 snapman.sys 以运行ADDS 10 b2288版;
7. 外置TXTSETUP.SIF(\PEDRVS目录下),方便加载驱动的取舍。比如选择加载FiraDisk还是WinVBlock(本PE必须二选一);
8. 新发布压缩包中仍保留20100809版(DOS下进行PCI设备检测),与新版共用WINPE9.IMG核心及SRS、PCI三卡驱动;
9. 新版只能使用任意根下OEMSRS.IMG(可Gzip压缩)格式的F6模块,旧版仍使用OEMSRS.ZIP形式。
10.可通过修改 \CMPE\MENU.LST(旧版为MENU_.LST),控制是否采用动态密码登陆PE(超级密码:canmao)。

----20100810修正----
修正不能U启的问题。下载附件替换 \PEFiles\CMPE 和 \PEFiles\PEDRVS 中同名文件。
不好意思原附件文件名中的日期写错了;是对0809版的修正。

----20100809更新----
1.PECMD更新为730版;Grub4Dos更新为0809版(解决了上一版PXE下黑屏或死机状况);
2.可用内存<256M,可人工干预虚拟内存文件的存放位置;
3.通过修改CMPE\MENU.LST,可设置三条网络共享路径;具体见MENU.LST中说明;
4.向PE核心传入三卡驱动采用(rd)中转方式,以提高速度(感谢Zhaohj);
5.其他一些脚本的细微优化;
6.本次发布的PE核心,未进行碎片整理,可直接挂载后YY;建议YY满意后,最好用WinImage做"碎片整理",以减小Img尺寸(为三卡驱动预留的空间);
7.这一版PE核心的极限尺寸为:76M。

下载地址见附件


----20100709更新----
1.采用可通用外置SRS、PCI三卡驱动架构。说明详见此楼
2.全面硬件支持(三卡、WLAN、PPPOE),PE核心比上版增加不到2M;
3.外置驱动增加无线、声卡、显卡;但声显卡驱动较旧;
4.此版直接登录到PE桌面,方便新用户。需要动态密码登录PE的用户,YY核心中的PECMD.INI;
5.默认分辨率调整为1024x768。

   下载地址见附件。

----缺陷----
1.无线连接状态不能正确显示。表现为:已正常连接后,无线状态仍为"未连接"或"正在获取IP地址"
2.icbc网站无法访问。
3.MMC服务管理缺省为"扩展"选项卡,显示为空白。如果能缺省显示"标准"选项卡就好了;
4.控制面板->网络连接->本地连接,刚启动到桌面时点击无反应,大约2分钟后正常;同样启动到桌面立即启用无线网络,无线图标也不能立即出现在右下角的托盘中。

   对以上缺陷,请有解决办法的坛友不吝赐教。谢谢!



主要特点:
    1.外置SRS&Net驱动。由两个img组成:
      03PE核心:WINPE9.img 53M
      SRS&Net驱动:SRS_NET.img  12.5M;坛内img核心NonRam启动的pe稍加修改,即可使用该模块。
      启动时同时装载(map -mm)两个Img,先由SRS_NET.img在DOS下,向PE注入SRS和Net驱动后,卸载SRS_NET.img,使PE有更多的可用内存;
    2.PE核心内置Firadisk驱动,G4D Map --mm后以NON_RAM方式启动,不浪费丝毫内存;
    3.实现动态密码登录到PE桌面,有利用安定团结;
    4.自动按指定的路径(\WXPE\TOOLS\MapShare.ini中首行的变量值)映射并挂载PETools 工具;
      在有多网卡,且有网卡不能自动获取到Ip地址的情况下,这一过程会持续近1分钟;
      自动映射挂载模块通过精心设计,兼容性非常好。
    5.支持F6加载SRS驱动(启动根下放置OEMSRS.Zip)。

    基于特点1和2,此PE启动所需内存门槛低。实机(IDE盘),91M内存可启动,并完美运行各种应用;考虑到加载SRS驱动的情况,96M内应该能启动绝大部分机器;128M应该100%吧。此PE核心启动所需内存,可按以下公式计算:


     启动所需内存(M)=PE核心大小+38+SRS驱动所需内存

     注:如果向PE核心中增加其他驱动,38这个值需要放大。加入内置应用无妨。

           还有一个前提是小内存启动,还需要一定的本地硬盘(u盘)空间来容纳PAGEFILE.SYS

    公式由实测而来(实机128M内存、显卡等集成硬件占用10M、IDE盘控):
    1.逐M增加PE核心大小,最终能进入到PE桌面的极限值为:80M;此时可用的物理内存为38M(80+38+10=128M);
    2.进入桌面后,正常自动挂载网络映射的WIM格式PETools;
    3.运行挂载的WIM格式各种应用,均能正常运行;
    见图(蜗牛啊,完成这幅图花了我近十分钟)。




PE核心说明:
    1.核心主要由DVD008的骨头YY 而成;
    2.内核中只集成了所有IDE驱动及Nv盘控,setupreg.hi_中只保留了n版0408综合包中的注册表内容,其它SRS相关Services通通被干掉。
      (不知会不会有兼容性问题,n版?)
    3.内置Firadisk 0.0.1.20、Imdisk 1.2.8,PECMD为2010.06.07版;
    4.内置全面的MMC,但无单独的管理模块;通过"我的电脑"右键-->"管理"使用;
    5.集成WIMNT,自动挂载所有分区PETOOLS目录下的应用 到开始菜单;
    6.内置完整7-Zip,并关联常用的压缩文件;
    7.内置拼音加加, Crtl+Space调出,  ,(<) .(>)可翻页。
    8.所有对注册表的处理全部内置到setupreg.hi_、shell32.dll以及config目录下的注册表文件中。

SRS&Net驱动说明:
    1.SRS完全采用N版0408的综合版,并打了后面的补丁。但不包含IDE和Nv部分(核心已内置)、需要DLL的盘控也无法支持;
    2.Net驱动也是YY自骨头,合并了VM驱动的inf,增加了Broadcom的K57驱动;替换了Broadcom的NetXtreme II驱动(要在PE下驱动该系列网卡,应使用其"RIS"驱动)

    3.包中\net目录下的nic.map是与pciscan.exe配套使用的,是最初版网卡查找方案,可删除。
   
关于动态密码登陆PE:
    1.实现动态密码登录(\WXPE\NET\StartShell.ini),超级密码为:canmao
    2.密码算法非常简单(\WXPE\NET\GenPwMd5.cmd),要真正实用,还需你自行YY。如果使用批处理的话,你最好对批处理进行加密,然后用老九的"卡巴不叫"处理成EXE文件。当然最好的办法是用C 整一个无窗口控制台程序。
    3.获取动态密码的代码文件为:GetPw.cmd

   
感谢:
    此PE核心YY中,参考、使用、"道"取、得到 了下列坛友的帖子、作品、程序、代码、成果、答疑、解惑:
    alexo、chenall、coolg、dgxhls、dvd008、hhh333、hlstudio、jianliulin、lxl1638、neo4026、netwinxp、NicTense、nn2nn、pseudo、secowu、xiao75918、yh_tl、zhaohj、zhhsh、zhxy9804、不点、天涯海角1216、网虫2008、老毛桃.....
    在此一并表示感谢!





[ 本帖最后由 canmao 于 2011-3-31 14:50 编辑 ]

20100810修正.zip

1.87 KB, 下载次数: 682, 下载积分: 无忧币 -2

20100809下载地址.zip

170 Bytes, 下载次数: 243, 下载积分: 无忧币 -2

CMPE_20110328下载地址.zip

179 Bytes, 下载次数: 862, 下载积分: 无忧币 -2


作者: pseudo    时间: 2010-6-12 12:58
下载看看。。。。。。。。
作者: coolg    时间: 2010-6-12 12:59
好!支持这样的好作品!!!
作者: 水韵    时间: 2010-6-12 13:22
新作品,下载来测试一下。。
作者: 极度凶残    时间: 2010-6-12 13:33
好东西,收下玩玩,谢谢LZ
作者: canmao    时间: 2010-6-12 14:01
原帖由 coolg 于 2010-6-12 12:59 发表
好!支持这样的好作品!!!

从你的PE中抄袭了很多东西,比如
echo.|net use....
我原来的代码是:
net use<file.txt
作者: sunhl    时间: 2010-6-12 14:29
添加到winpe索引了。
作者: canmao    时间: 2010-6-12 14:32
谢谢搂上抬爱!!!!!
作者: caomaoLBL    时间: 2010-6-12 14:33
不错 好东西,支持下 学习下!
作者: dlwfdlikuan    时间: 2010-6-12 15:02
下载试一试,就喜欢占内存少的pe.谢谢楼主!
作者: zhaohj    时间: 2010-6-12 15:02
很好,完成了Coolg没完成的任务。
SRS_NET.img中不要放置驱动,放在外面方便用户任意换驱动。
作者: canmao    时间: 2010-6-12 15:18
原帖由 zhaohj 于 2010-6-12 15:02 发表
很好,完成了Coolg没完成的任务。
SRS_NET.img中不要放置驱动,放在外面方便用户任意换驱动。

没太明白你的意思。是用户换完驱动,自己生成SRS_NET.img?
作者: zhaohj    时间: 2010-6-12 15:21
也就是SRS.ZIP、NET.ZIP放在外面,象SRS_F6处理一样。
作者: canmao    时间: 2010-6-12 15:58
@zhaohj
基于以下考虑,暂维持原来方案:
1.不论zip还是img,更换驱动都需要开包,只是工具不同;
2.如果驱动放在外部,还需用FAT Copy来搬运,有碰到虫子的可能性;
3.原方案不必upzip,直接copy,速度应该快一些;必要时,还可以去掉config.sys中的himem.sys,提高兼容性。

另:麻烦把我目录下的PETOOLS.rar干掉。

[ 本帖最后由 canmao 于 2010-6-12 16:21 编辑 ]
作者: hwslj    时间: 2010-6-12 16:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: liuzhaoyzz    时间: 2010-6-12 16:34
启动方式类似0PE和CSPE,核心是dvd008、coolg喜欢的win9pe,界面好像是tango2003,集成了不少技术啊。
作者: lee88889999    时间: 2010-6-12 16:39
应该用NTFS压缩模式的IMG内核,内核可以更小。
作者: zhaohj    时间: 2010-6-12 16:47
比较关心nic.map是怎么生成的,有没有现成的程序?
以前的写法一般是:
PCI\VEN_10B7&DEV_1700="3COM\EL2000X"
PCI\VEN_10B7&DEV_9300="3COM\El910"
PCI\VEN_10b7&DEV_9902="3COM\EL99X_NT"
PCI\VEN_10b7&DEV_9903="3COM\EL99X_NT"
...
作者: lmle    时间: 2010-6-12 16:55
试了一下,好像不支持把SRS_NET.IMG放到其他盘的根目录。
如果支持这个,对量产有重大意义。因为可以随时增减驱动,不用重新量产了。
作者: canmao    时间: 2010-6-12 17:06
@zhaohj
包中nic.map是与pciscan.exe配套使用的,是最初版网卡方案。
后来发现在实机中,运行较慢;就尝试用n版的CHKPCI.BIN,结果没问题,速度也上去了。
现在用的是chknet.com
pciscan.exe和nic.map保留,是想给大家另一个选择,结果误导了;呵呵。

另一个想法:网卡声卡驱动是否也可如此,体积也是一个大问题。

[ 本帖最后由 canmao 于 2010-6-12 17:43 编辑 ]
作者: canmao    时间: 2010-6-12 17:12
原帖由 lmle 于 2010-6-12 16:55 发表
试了一下,好像不支持把SRS_NET.IMG放到其他盘的根目录。
如果支持这个,对量产有重大意义。因为可以随时增减驱动,不用重新量产了。


是的。但这个对于zhaohj应该不难,修改menu.lst菜单。我对G4D命令不熟,还是请zh大出手吧。
作者: canmao    时间: 2010-6-12 17:20
原帖由 liuzhaoyzz 于 2010-6-12 16:34 发表
启动方式类似0PE和CSPE,核心是dvd008、coolg喜欢的win9pe,界面好像是tango2003,集成了不少技术啊。

驱动注入类似0PE和CSPE;
0PE和CSPE是采用分级内核启动PE滴。
作者: zhaohj    时间: 2010-6-12 18:26
CHKNET.COM及CHKSRS.COM是N版新的吗还是你自己编的?里面的头包含ID?
作者: netwinxp    时间: 2010-6-12 19:10
CHKPCI,不管具体类型的PCI设备,如果里面放的是网卡硬件库则匹配出来的就是网卡,放的是硬盘控制器则出来SRS,程序段很小(仅几百个字节),主要部分在后面的硬件库。估计CHKNET里面放的是网卡库,CHKSRS则放硬盘控制器库。
作者: canmao    时间: 2010-6-12 19:14
原帖由 zhaohj 于 2010-6-12 18:26 发表
CHKNET.COM及CHKSRS.COM是N版新的吗还是你自己编的?里面的头包含ID?

还是原来n版的。我是在win下编好ID,并排序后合并到chkpci.bin中,改名为CHKNET.COM及CHKSRS.COM
另外我的ID中都去掉了"PCI\",这样SRSID可以减小3到4K,使chksrs.com能更长时间控制在64K以内。

[ 本帖最后由 canmao 于 2010-6-12 19:15 编辑 ]
作者: fyqingshan    时间: 2010-6-12 19:52
支持呀,学习学习,有个在pe下注入srs驱动的批处理那个帖子怎么找不到了?
作者: cmdy268    时间: 2010-6-12 20:24
新东西要学习下。。。
作者: canmao    时间: 2010-6-12 21:38
原帖由 fyqingshan 于 2010-6-12 19:52 发表
支持呀,学习学习,有个在pe下注入srs驱动的批处理那个帖子怎么找不到了?

我的srs驱动注入是用PECMD的INI脚本实现的,我个人认为相对短小、直观,你参考一下(\wxpe\tools\InjSRS.INI)

作者: husiqin    时间: 2010-6-12 21:43
原帖由 canmao 于 2010-6-12 17:12 发表


是的。但这个对于zhaohj应该不难,修改menu.lst菜单。我对G4D命令不熟,还是请zh大出手吧。

要是能实现,将是革命性的改变。
作者: canmao    时间: 2010-6-12 22:12
原帖由 husiqin 于 2010-6-12 21:43 发表

要是能实现,将是革命性的改变。

首先,"革命性"这个词太重、很严重!
其次,如果是基于U盘量产前提的"革命性",那就不怎么"革命性"了。因为前有USB+、后更有fbinst,U盘量产成CD是最不得以的选择。
作者: zhaohj    时间: 2010-6-13 00:09
chipci.bin+硬件库=chkpci.com
还是喜欢CHENALL的方式,通用性强。
如果驱动改变了,CHKPCI.COM也得更新。
作者: zj    时间: 2010-6-13 08:09
不错,用在单位局域网维护方便
作者: canmao    时间: 2010-6-13 09:10
原帖由 zhaohj 于 2010-6-13 00:09 发表
chipci.bin+硬件库=chkpci.com
还是喜欢CHENALL的方式,通用性强。
如果驱动改变了,CHKPCI.COM也得更新。


是通过SIF2PCI.COM处理txtsetup.sif,得到硬件库,然后chipci.bin+硬件库=chkpci.com ?

如果单纯驱动更新,没有新ID增加,chksrs.com不动;
如果有新ID,需更新chksrs.com,实际也很简单,将新ID处理成以下文本形式:
PCI\VEN_0001&DEV_0002
$PCI\VEN_0001&DEV_0002
$PCI\VEN_0001&DEV_0002
$

然后,用 UltraEdit 或 WinHex 打开chksrs.com,将以上文本复制到最一个$后面,保存就成了。
作者: qdcnc    时间: 2010-6-13 10:05
这个不错,下来学习学习。
作者: tianjingji    时间: 2010-6-13 11:02
好东西,大家应该要支持。
作者: lyywyqd    时间: 2010-6-13 17:39
好作品,收藏了谢谢。
作者: 33445566    时间: 2010-6-14 09:16
XP系统服务器系统,NETBOOTM为网启服务器,网启本PE成功

NETBOOTM:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=166188&extra=&page=1
作者: www_888    时间: 2010-6-14 09:41
感谢楼主的分享,希望体积小,功能全的东东,更希望集成3G网卡驱动……


俺是来鸟,那位告诉一下怎么安装,好吗

[ 本帖最后由 www_888 于 2010-6-14 09:55 编辑 ]
作者: O.Y.M.2010    时间: 2010-6-14 15:01
Firadisk 是不是对 ghost32 有影响?此PE中 ghost32反应非常迟纯
作者: canmao    时间: 2010-6-14 15:39
标题: 回复 #39 O.Y.M.2010 的帖子
是启动时卡,还是恢复速度慢?
作者: O.Y.M.2010    时间: 2010-6-15 08:18
标题: 回复 #40 canmao 的帖子
启动时卡 而且有时不能备份与恢复
作者: zhaohj    时间: 2010-6-15 08:45
FIRADISK对GHOST影响是有的。内置Firadisk我认为没有必要。
象万能显卡驱动,也是有后遗症的,VM拖放就无法使用。

楼主的作品,如果通用性做得再强一点,还是有发挥空间的。你要从一个最普通用户考虑。
PXE启动,网卡是很关键的,但我们遇到问题肯定是这台机器的网卡驱动很不常见,你想想这个时候网管可以做,普通用户能做到吗?
作者: loveelva30    时间: 2010-6-15 09:33
不错。bucu8o。。哈哈。。38M。。不错啊
作者: canmao    时间: 2010-6-15 16:22
原帖由 O.Y.M.2010 于 2010-6-15 08:18 发表
启动时卡 而且有时不能备份与恢复

    运行Ghost32确实卡!表现为:Ghost32下,从任何弹出窗口返回主菜单,都会卡;VM测试中,卡的时间每次都是30s。原因正在冥思苦想中。tango PE也集成了firadisk,却无此现象。

    关于“有时不能备份与恢复”问题,我做了些测试:
    VM下:对XP做备份,然后恢复;不退出ghost32,连续5次后,启动XP正常;

    实机上对XP和win7系统各备份恢复一次,再启动均正常。
作者: canmao    时间: 2010-6-15 16:32
标题: 回复 #42 zhaohj 的帖子
   当初yy此PE时,主要考虑在自己的生产环境中用,普及性确实考虑较少。在通用性方面,zhao大有好建议,请不吝指教。
   关于碰到网卡不能驱动的问题,你的意思是说,应该给予用户提示,并在PE中加入安装网卡的工具?
   ghost32下卡的问题,你经验丰富,能否帮忙参详一下?

作者: canmao    时间: 2010-6-15 18:07
ghost32下卡的原因基本定位:加载了网络,但缺少它需要的环境或文件。
作者: huakeha    时间: 2010-6-15 21:43
密码是多少啊?
作者: chiannet    时间: 2010-6-16 07:05
应该有不少好玩的。学习学习。
作者: O.Y.M.2010    时间: 2010-6-16 08:46
原帖由 canmao 于 2010-6-15 18:07 发表
ghost32下卡的原因基本定位:加载了网络,但缺少它需要的环境或文件。


即用03做内核,建议不要用DVD008大大的骨头版 此版精简过度了
作者: canmao    时间: 2010-6-16 10:34
标题: 回复 #49 O.Y.M.2010 的帖子
    dvd008的核心精简是有度滴。从顶楼图中,正常运行的那些应用就能证明。ghost的问题并不是精简过度,而是:

    ghost32在有网络的环境下,需要“Network Connections”(Netman)服务的支持。如果该服务不能启动,ghost下返回主菜单就会卡30秒。如果不开启网络,此问题自动消失。

    此PE要开启Netman服务还需要的加入一些文件,而这些文件全部包含在对WLAN、PPPOE的支持文件中。因此下一次更新,将集成对WLAN、PPPOE的支持。


[ 本帖最后由 canmao 于 2010-6-16 10:40 编辑 ]
作者: zhaohj    时间: 2010-6-16 10:53
希望下一版用NETID.TXT方式,或者两个版本。
作者: canmao    时间: 2010-6-16 10:58
标题: 回复 #51 zhaohj 的帖子
正在做这方面的工作。
作者: chiannet    时间: 2010-6-20 16:18
你好,很喜欢你的“偏重于PXE客户端启动的03PE”,烦请楼主提供包含ie6上网等上网功能模块的完整版本。
作者: chiannet    时间: 2010-6-20 16:22
集成对WLAN、PPPOE的支持。


我等翘首以待,希望此pe实用开来。

卖弄一个“小技巧”:经实验,把WINPE9.IMG,SRS_NET.IMG分别用win 7-zip极限压缩为GZip格式,再去掉GZ扩展名是可行的。可使iso缩小不少。

[ 本帖最后由 chiannet 于 2010-6-20 16:28 编辑 ]
作者: canmao    时间: 2010-6-20 17:22
标题: 回复 #54 chiannet 的帖子
把WINPE9.IMG,SRS_NET.IMG分别用win 7-zip极限压缩为GZip格式,再去掉GZ扩展名是可行的。可使iso缩小不少。

压缩可以减少体积,但对老机(特别是小内存)不利。

[ 本帖最后由 canmao 于 2010-6-20 18:04 编辑 ]
作者: yynq    时间: 2010-6-21 10:31
怎么不能用UltraISO编辑
作者: junyu    时间: 2010-6-21 11:26
下载下来看看,不知道效果如何。
作者: tinglu168    时间: 2010-6-23 00:07
直接可以上网的吧???
作者: yynq    时间: 2010-6-24 15:48
怎么不能用UltraISO编辑
作者: canmao    时间: 2010-6-24 20:05
标题: 回复 #59 yynq 的帖子
UltraISO编辑有时会造成不能启动,最好重新生成一下。给你一个模板:

生成ISO.part1.rar

292.97 KB, 下载次数: 85, 下载积分: 无忧币 -2

生成ISO.part2.rar

98.18 KB, 下载次数: 68, 下载积分: 无忧币 -2


作者: canmao    时间: 2010-6-24 20:10
标题: 回复 #59 yynq 的帖子
UltraISO编辑有时会造成不能启动,最好重新生成一下。给你一个模板:

先发的回复,老久未反应,取消了。没想又出来了,晕!

[ 本帖最后由 canmao 于 2010-6-24 20:15 编辑 ]
作者: hjm6624669    时间: 2010-6-29 21:14
在无忧试用了六、七版本的PXE网启PE,客服端启动后再加载网络应用,一般都要求机器的内存在200MB以上,不是256MB的机器就根本无法启动。楼主的这个PE客服端真不错,128MB能成功加载网络应用,实用价值很高,值得称赞!可惜在内存小于256MB时,把页面文件默认设定在C盘则欠妥,直接导致GHOST32无法恢复C盘系统。最后,本人经修改启动配置文件后才ghost成功。
作者: canmao    时间: 2010-6-30 20:19
标题: 回复 #62 hjm6624669 的帖子
谢谢指正,当初没考虑到ghost的情况。下一版改为 D:\ 。

[ 本帖最后由 canmao 于 2010-6-30 20:22 编辑 ]
作者: lee88889999    时间: 2010-7-1 11:30
debug off
default 0
timeout 0

title [1] PEX_PE dy Canmao
pause --wait=0 Loading WINPE Image.
map --mem ()/WINPE9.IMG (hd0)
pause --wait=0 Loading SRS_NET Driver Image.
map --mem ()/SRS_NET.IMG (fd0)
map --hook
cat --length=0 ()/OEMSRS.ZIP && map --mem (fd0)/srs/oemsrs.gz (fd1)
map --hook
command --set-path=(fd0)/BIN/
cat --length=0 ()/OEMSRS.ZIP && FAT copy ()/OEMSRS.ZIP (fd0)/OEMSRS.ZIP
rootnoverify (fd0) && chainloader ()/io.sys || chainloader --force ()/io.sys


谁能帮忙解释一下红色这两句。
作者: canmao    时间: 2010-7-1 15:21
cat --length=0 ()/OEMSRS.ZIP && map --mem (fd0)/srs/oemsrs.gz (fd1)
如果当前根下存在OEMSRS.ZIP,则map oemsrs.gz(1.44M软盘空白映像)
cat --length=0 ()/OEMSRS.ZIP && FAT copy ()/OEMSRS.ZIP (fd0)/OEMSRS.ZIP
如果。。。,拷贝。。。

精炼一些:

title [1] PEX_PE dy Canmao
pause --wait=0 Loading WINPE Image.
map --mem ()/WINPE9.IMG (hd0)
pause --wait=0 Loading SRS_NET Driver Image.
map --mem ()/SRS_NET.IMG (fd0)
map --hook
command --set-path=(fd0)/BIN/
cat --length=0 ()/OEMSRS.ZIP && map --mem (fd0)/srs/oemsrs.gz (fd1) && map --rehook && FAT copy ()/OEMSRS.ZIP (fd0)/OEMSRS.ZIP
rootnoverify (fd0) && chainloader ()/io.sys || chainloader --force ()/io.sys

[ 本帖最后由 canmao 于 2010-7-9 16:05 编辑 ]
作者: canmao    时间: 2010-7-9 16:16
通用外置SRS、PCI三卡驱动架构

架构的适应性:
1.IMG格式PE核心;
2.PCI总线上的SRS、网卡、声卡、显卡;
3.G4D启动方式。

根目录
│  GRLDR
│  OEMSRS.ZIP             F6模块驱动包。可放置任何分区根下。
│  MENU.LST               合盘总菜单
├─CMPE                      合盘PE1
│      MENU.LST            PE1启动菜单。负责映射PE核心和IMGGETDRV.IMG、查找装载F6模块等。
│      WINPE9.IMG         PE1核心IMG
├─XXPE                      合盘PE2
│      MENU.LST
│      WINPE9.IMG
└─PEDRVS                    通用外置SRS、PCI三卡驱动目录。可放置任何分区根下。
    │  _SRS.TXT             SRS 硬件IDs
    │  AUTOEXEC.TXT     由PE启动菜单将其改名为AUTOEXEC.BAT传入GETDRV.IMG映射的fd0中,是所有也是唯一的查找本地硬件,

                                    然后将驱动传入PE核心并启动PE的控制代码。放置在GETDRV.IMG的外部方便YY及调试。
    │  GETDRV.IMG          查找本地硬件并导入驱动所需的支持程序文件集(1.44软盘GZ压缩镜像)。
    │  SCSI.TXT               对应于 txtsetup.sif 的 [SCSI] 段
    │  SCSILOAD.TXT       对应于 txtsetup.sif 的 [SCSI.LOAD] 段
    │  ......
    ├─SRS                      SRS驱动目录
    │      2310_00.SY_
    │      272X_1X.SY_
    │      ......
    ├─AUDIO                  声卡驱动目录
    │      _AUDIO.TXT      声卡硬件IDs
    │      ALI.CAB            声卡驱动包1
    │      CM8338.CAB      声卡驱动包2
    │      ......
    ├─LAN                     网卡驱动目录
    │      _LAN.TXT         网卡硬件IDs
    │      3CEL595.CAB    网卡驱动包1
    │      3CEL905.CAB    网卡驱动包2
    │      ......
    │
    ├─VIDEO                 显卡驱动目录
    │      _VIDEO.TXT     显卡硬件IDs
    │      ATI69201.CAB
    │      ATI72271.CAB
    │      ......
    └─WLAN                  无线网卡驱动目录
            _WLAN.TXT      无线网卡硬件IDs
            AGERE.CAB
            AR5XXX.CAB
            ......

WinPE核心根

├─PEDRVS                 空目录结构
│    ├─AUDIO
│    ├─LAN
│    ├─VIDEO
│    └─WLAN
└─WXPE

局限性和已知问题:
1.不能支持高清声卡、USB无线网卡等非PCI总线设备;
2.PXE方式加载PE核心时死机。测试4台实机,只有一台老本(I855GM)成功以PXE方式启动,不知是不是我的MENU写得有问题?晚些时候会放出PXE的临时解决方案。


[ 本帖最后由 canmao 于 2010-7-9 16:34 编辑 ]
作者: zhaohj    时间: 2010-7-9 17:25
原帖由 canmao 于 2010-6-30 20:19 发表
谢谢指正,当初没考虑到ghost的情况。下一版改为 D:\ 。


页面文件建议手动设置,不然恢复数据可能麻烦。
作者: zhaohj    时间: 2010-7-9 17:55
EXEC !CMD.exe /c echo.|net use Z: \\10.16.1.1\pets$ /user:guest
上面这个地方不够科学,具体可以看一下:
http://bbs.wuyou.net/viewthread. ... page=208#pid1997927


另外,为了避免兼容性,FIRADISK驱动就不要集成了。

[ 本帖最后由 zhaohj 于 2010-7-9 18:20 编辑 ]
作者: canmao    时间: 2010-7-9 18:27
@zhaohj
#67: 哎,还是没有考虑周到。
#68: 你给的链接都说的是menu啊?

另有时间帮我给menu(autoexec.txt)把把关,特别是PXE部分。如果能解决实机问题,我就不必出临时方案了。
作者: zhaohj    时间: 2010-7-9 18:30
挺不错的,再加些判断还要好;如用户只要SRS和LAN,可以做个配置文件,或让用户选择需要什么。

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

Snap1.jpg

作者: canmao    时间: 2010-7-9 18:43
标题: 回复 #70 zhaohj 的帖子
当初考虑了这个问题,只是没有说明。
autoexec.txt中有判断。即:如果PE启动菜单中不传入相应的IDs即可。
甚至可以简单的删除\PEDRVS中相应的驱动目录来达到目的,只不过这样会在启动时看到FAT copy的错误信息。
作者: zhaohj    时间: 2010-7-9 19:01
echo.cat --length=0 (fd0)/PXE.TXT ^^ find --set-root --ignore-floppies /PEDRVS/_SRS.TXT>>startpe.lst
::上一行命令正确的应该如下行;但PXE启动情况下,此时执行 "find" 会死机
::echo.find --set-root --ignore-floppies /PEDRVS/_SRS.TXT ^^ rootnoverify (pd)
上面是原话---------------------------
你的意思是:如果存在(fd0)/PXE.TXT,就是PXE启动,再判断PXE上有没有/PEDRVS/_SRS.TXT,有就指定为当前盘,没有再搜索硬盘上的
echo.cat --length=0 (fd0)/PXE.TXT && cat --length=0 (pd)/PEDRVS/_SRS.TXT && rootnoverify (pd)
echo.cat --length=0 (fd0)/PXE.TXT && cat --length=0 (pd)/PEDRVS/_SRS.TXT ^^ find --set-root --ignore-floppies /PEDRVS/_SRS.TXT



-----------------------------
copy驱动到(hd0)先判断_**.txt是否存在,存在就复制。这样用户只要把这个文件改名达到目的,减少COPY花费的时间。

另:链接中的SERV_SET.BAT是用户自定义的,pxe启动是0x8288是PXE服务器的IP地址,自动计算后写入到SERV_SET.BAT。你可以前后翻翻贴。

[ 本帖最后由 zhaohj 于 2010-7-9 19:07 编辑 ]
作者: h6124900    时间: 2010-7-9 19:41
不错,内存占得很少,工具没有啊!
作者: canmao    时间: 2010-7-9 19:52
脑壳进酒了,明天再仔细。
作者: www_888    时间: 2010-7-10 08:04
感谢楼主分享,下来看看,,
作者: canmao    时间: 2010-7-10 09:08
标题: 回复 #72 zhaohj 的帖子
我的原意是:优先搜索本地\PEDRVS,与PE启动菜单中的第7行相一致。
按现在这套代码运行,当客户端PXE启动,如果TFTP根和客户端某分区中同时存在\PEDRVS,就会有一个隐患:IDs用的是本地,而驱动来自TFTP。
---------
关于驱动剪裁,以 _Audio.txt 改为 Audio.txt 来举例:

1:MENU.LST中的"FAT copy ()/PEDRVS/AUDIO/_AUDIO.TXT (fd0)/" 会失败,因此 (fd0)/ 下不会存在 _AUDIO.TXT;
2:Autoexe.bat中有如下代码
  1. :audio
  2. if not exist _audio.txt goto video
  3. copy chkpci.bin /b+_audio.txt /b chkaudio.com>nul
  4. chkaudio|sort /*|lmod /l* FAT copy ()/PEDRVS/AUDIO/[$2].CAB (hd0,0)/PEDRVS/AUDIO/>>startpe.lst

  5. :video
复制代码

所以最终startpe.lst中不会出现 "FAT copy ()/PEDRVS/AUDIO/[$2].CAB (hd0,0)/PEDRVS/AUDIO/" 这行代码。
直至发布前,menu.lst菜单中,所有的"FAT copy"前都有"cat --length=0"。最后检查代码时,觉得先cat 再 FAT copy 影响速度,就删掉了,大不了就是出现FAT copy报错而已。
---------
关于共享服务器地址,最早的写法是:
  1.     REGI $HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DhcpNameServer,sDhcpSrvIp
  2.     EXEC !CMD.exe /c echo.|net use Z: \\%sDhcpSrvIp%\pets$ /user:guest
复制代码

  后来考虑nat、路由的情况,以及共享目录不一定就在DHCP服务器上,才使用直接IP的。



[ 本帖最后由 canmao 于 2010-7-10 09:11 编辑 ]
作者: canmao    时间: 2010-7-10 09:18
标题: 回复 #73 h6124900 的帖子
Wim格式工具集
作者: zhaohj    时间: 2010-7-10 09:31
客户端PXE启动,同时存在\PEDRVS的可能性很少,可以这样:

1:PXE启动,如果PXE上存在\PEDRVS,就用PXE上的。
2:PXE启动,如果PXE上不存在\PEDRVS,再搜索本地上的\PEDRVS,存在就用本地。
作者: canmao    时间: 2010-7-10 10:00
客户端存在\PEDRVS的情况的确很少。为避免隐患,请坛友把\CMPE\MENU.LST中7行:
find --set-root --ignore-floppies /PEDRVS/GETDRV.IMG || rootnoverify (pd)
改为:
cat --length=0 ()/PEDRVS/_SRS.TXT || find --set-root --ignore-floppies /PEDRVS/_SRS.TXT
作者: loveelva30    时间: 2010-7-10 10:42
不错。。。下载下来试用吧
作者: zhaohj    时间: 2010-7-10 12:58
虚拟机测试,是不是SRS驱动处理有问题?

Snap1.jpg (11.97 KB, 下载次数: 115)

Snap1.jpg

作者: canmao    时间: 2010-7-10 15:57
标题: 回复 #81 zhaohj 的帖子
查了一下,没发现SRS处理的问题;
出现这种状况通常是dos下发现本地盘控驱动symmpi.sys,并向txtsetup.sif中追加了相应的内容,而sysmmpi.sy_没有被正确地拷贝到 %systemroot%\system32\drivers 下造成的。
作者: zhaohj    时间: 2010-7-10 16:14
可能新版的FAT有问题,我尝试着先COPY到内存,出现上述情况
debug off
pause --wait=0 Load WinPE Image...
map (hd0) (hd)
map --hook
write 0x82a4 1
map --mem=0xB000 ()/CMPE/WINPE9.IMG (rd)
write 0x82a4 0
map (rd)+1 (hd0)
map --hook
map --mem ()/PEDRVS/GETDRV.IMG (fd0)
map --hook
command --set-path=(fd0)/G4DEXT/
FAT copy ()/PEDRVS/AUTOEXEC.TXT (fd0)/AUTOEXEC.BAT
ECHO Copy SRS IDs...
cat --length=0 ()/PEDRVS/_SRS.TXT && map --mem=0xB000 ()/PEDRVS/_SRS.TXT (rd) && FAT copy (rd)+1 (fd0)/_SRS.TXT
cat --length=0 ()/PEDRVS/SCSI.TXT && map --mem=0xB000 ()/PEDRVS/SCSI.TXT (rd) && FAT copy (rd)+1 (fd0)/SCSI.TXT
cat --length=0 ()/PEDRVS/SCSILOAD.TXT && map --mem=0xB000 ()/PEDRVS/SCSILOAD.TXT (rd) && FAT copy (rd)+1 (fd0)/SCSILOAD.TXT
ECHO Copy Lan IDs...
cat --length=0 ()/PEDRVS/LAN/_LAN.TXT && map --mem=0xB000 ()/PEDRVS/LAN/_LAN.TXT (rd) && FAT copy (rd)+1 (fd0)/_LAN.TXT
ECHO Copy Wlan IDs...
cat --length=0 ()/PEDRVS/WLAN/_WLAN.TXT && map --mem=0xB000 ()/PEDRVS/WLAN/_WLAN.TXT (rd) && FAT copy (rd)+1 (fd0)/_WLAN.TXT
ECHO Copy Audio IDs...
cat --length=0 ()/PEDRVS/AUDIO/_AUDIO.TXT && map --mem=0xB000 ()/PEDRVS/AUDIO/_AUDIO.TXT (rd) && FAT copy (rd)+1 (fd0)/_AUDIO.TXT
ECHO Copy Video IDs...
cat --length=0 ()/PEDRVS/VIDEO/_VIDEO.TXT && map --mem=0xB000 ()/PEDRVS/VIDEO/_VIDEO.TXT (rd) && FAT copy (rd)+1 (fd0)/_VIDEO.TXT
checkrange 0x21 read 0x82a0 && FAT mkfile size=1 (fd0)/PXE.TXT
#cat --length=0 ()/OEMSRS.ZIP || find --set-root --ignore-floppies /OEMSRS.ZIP
cat --length=0 ()/OEMSRS.ZIP && map --mem (fd0)/OEMSRS.GZ (fd1) && map --hook && map --mem=0xB000 ()/OEMSRS.ZIP (rd) && FAT copy (rd)+1 (hd0,0)/OEMSRS.ZIP
ECHO Program processing,Please waiting...
rootnoverify (fd0) && chainloader ()/io.sys || chainloader --force ()/io.sys
boot
作者: canmao    时间: 2010-7-10 16:42
看的晕晕滴。如果你的虚机真是需要symmpi.sy_,那说明你的menu中的FAT copy执行是正确的。
出现问题的应该是autoexec.bat中的这行代码:

<srsid.txt lmod /l* FAT copy ()/PEDRVS/SRS/[$2].SY_ (hd0,0)/WXPE/SYSTEM32/DRIVERS/>>startpe.lst

顺便请教:
1. map .... (rd), 而 FAT copy (rd)+1
2. 先拷贝到内存有什么好处?
作者: zhaohj    时间: 2010-7-10 16:55
我测试COPY时很卡,所有先拷贝到内存加快速度,这对于大文件速度优势很明显。

我没有发现上面有什么错,检查了一下(hd0)、(fd0)中的内容也正确。
------------------
问题是直接用你的原版可以设别硬盘,真见鬼了。
但COPY是很卡,时间太长了。
作者: canmao    时间: 2010-7-10 17:15
FAT copy的执行效率的确较低。Copy SRS IDs...等显示就是为此而加入的。否则10多秒的光标闪速,就像死机了一样。
而且FAT copy在grldr和grub.exe下的表现也不一样:
grldr下不显示read和write;另外感觉grub.exe下 FAT copy 似乎快一些。
作者: canmao    时间: 2010-7-10 17:20
再遇pe下拷贝文件消失的尴尬! 的反证?
作者: zhaohj    时间: 2010-7-10 17:22
跟踪了一下,也正确

Snap1.jpg (99.11 KB, 下载次数: 105)

Snap1.jpg

作者: zhaohj    时间: 2010-7-10 17:35
<srsid.txt lmod /l* tfind "[$2]" scsi.txt>scsi.bat
<srsid.txt lmod /l* tfind "[$2]" scsiload.txt>scsil.bat
<srsid.txt lmod /l* FAT copy ()/PEDRVS/SRS/[$2].SY_ (hd0,0)/WXPE/SYSTEM32/DRIVERS/>>startpe.lst
>nul str scsi.bat 0 0 /R /HEX:0D0A /HEX:3E3E53432E5458540D0A /A
>nul str scsil.bat 0 0 /R /HEX:0D0A /HEX:3E3E534C2E5458540D0A /A
call scsi.bat
call scsil.bat
pause
type startpe.lst
pause
echo.commandline>>startpe.lst

[ 本帖最后由 zhaohj 于 2010-7-10 17:37 编辑 ]

Snap1.jpg (189.58 KB, 下载次数: 109)

Snap1.jpg

作者: canmao    时间: 2010-7-10 17:36
的确见鬼了~~~~~~~
作者: greenmood    时间: 2010-7-10 17:38
这个不错,下来研究研究
作者: zhaohj    时间: 2010-7-10 17:43
这句可能有问题,PXE stack unload

Snap1.jpg (38.78 KB, 下载次数: 95)

Snap1.jpg

作者: canmao    时间: 2010-7-10 17:46
@zhaohj
歪招:\PEDRVS\SRS中的symmpi.sy_改名,然后再复制一份进去。
作者: canmao    时间: 2010-7-10 17:54
标题: 回复 #94 zhaohj 的帖子
的确,进dos之前好像没有 pxe keep
作者: zhaohj    时间: 2010-7-10 17:57
可以确定FAT可能出错
<srsid.txt lmod /l* FAT copy ()/PEDRVS/SRS/[$2].SY_ (hd0,0)/WXPE/SYSTEM32/DRIVERS/>>startpe.lst
echo.pause>>startpe.lst

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

Snap1.jpg

作者: zhaohj    时间: 2010-7-10 18:03
内核中取消FIRADISK及wimfs.sys,这样可能好点。问题可能在这两个驱动。
作者: canmao    时间: 2010-7-10 18:13
看了你在#85的代码,没有找到 "pxe keep"
从#95看是symmpi.sy_没找到,此时setupldr都未执行,怎会涉嫌FIRADISK及wimfs.sys呢?
作者: ones    时间: 2010-7-10 18:16
新版不稳定,双击打开文件夹或驱动器时,总是会弹出资源管理器的,也就是按win+E键的界面。而且也没找到浏览器放哪里了
作者: canmao    时间: 2010-7-10 18:26
标题: 回复 #98 ones 的帖子
在什么地方"双击打开文件夹或驱动器"?
是指IE浏览器么? 没有集成在内核中。
作者: zhaohj    时间: 2010-7-10 18:44
我记得新版GRLDR不用PXE KEEP的,我在做SRS_F6时
#pxe keep有可能返回后加载PE会死机,PXE启动默认按PXE启动菜单设置处理
rootnoverify (hd0,0) && chainloader ()/io.sys || chainloader --force ()/io.sys

并不需要pxe keep




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3