无忧启动论坛

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

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

  [复制链接]
61#
 楼主| 发表于 2010-6-24 20:10:16 | 只看该作者

回复 #59 yynq 的帖子

UltraISO编辑有时会造成不能启动,最好重新生成一下。给你一个模板:

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

[ 本帖最后由 canmao 于 2010-6-24 20:15 编辑 ]
回复

使用道具 举报

62#
发表于 2010-6-29 21:14:24 | 只看该作者
在无忧试用了六、七版本的PXE网启PE,客服端启动后再加载网络应用,一般都要求机器的内存在200MB以上,不是256MB的机器就根本无法启动。楼主的这个PE客服端真不错,128MB能成功加载网络应用,实用价值很高,值得称赞!可惜在内存小于256MB时,把页面文件默认设定在C盘则欠妥,直接导致GHOST32无法恢复C盘系统。最后,本人经修改启动配置文件后才ghost成功。
回复

使用道具 举报

63#
 楼主| 发表于 2010-6-30 20:19:03 | 只看该作者

回复 #62 hjm6624669 的帖子

谢谢指正,当初没考虑到ghost的情况。下一版改为 D:\ 。

[ 本帖最后由 canmao 于 2010-6-30 20:22 编辑 ]
回复

使用道具 举报

64#
发表于 2010-7-1 11:30:20 | 只看该作者
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


谁能帮忙解释一下红色这两句。
回复

使用道具 举报

65#
 楼主| 发表于 2010-7-1 15:21:16 | 只看该作者
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 编辑 ]
回复

使用道具 举报

66#
 楼主| 发表于 2010-7-9 16: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 编辑 ]
回复

使用道具 举报

67#
发表于 2010-7-9 17:25:29 | 只看该作者
原帖由 canmao 于 2010-6-30 20:19 发表
谢谢指正,当初没考虑到ghost的情况。下一版改为 D:\ 。


页面文件建议手动设置,不然恢复数据可能麻烦。
回复

使用道具 举报

68#
发表于 2010-7-9 17:55:59 | 只看该作者
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 编辑 ]
回复

使用道具 举报

69#
 楼主| 发表于 2010-7-9 18:27:02 | 只看该作者
@zhaohj
#67: 哎,还是没有考虑周到。
#68: 你给的链接都说的是menu啊?

另有时间帮我给menu(autoexec.txt)把把关,特别是PXE部分。如果能解决实机问题,我就不必出临时方案了。
回复

使用道具 举报

70#
发表于 2010-7-9 18:30:15 | 只看该作者
挺不错的,再加些判断还要好;如用户只要SRS和LAN,可以做个配置文件,或让用户选择需要什么。

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

Snap1.jpg
回复

使用道具 举报

71#
 楼主| 发表于 2010-7-9 18:43:10 | 只看该作者

回复 #70 zhaohj 的帖子

当初考虑了这个问题,只是没有说明。
autoexec.txt中有判断。即:如果PE启动菜单中不传入相应的IDs即可。
甚至可以简单的删除\PEDRVS中相应的驱动目录来达到目的,只不过这样会在启动时看到FAT copy的错误信息。
回复

使用道具 举报

72#
发表于 2010-7-9 19:01:00 | 只看该作者
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 编辑 ]
回复

使用道具 举报

73#
发表于 2010-7-9 19:41:51 | 只看该作者
不错,内存占得很少,工具没有啊!
回复

使用道具 举报

74#
 楼主| 发表于 2010-7-9 19:52:14 | 只看该作者
脑壳进酒了,明天再仔细。
回复

使用道具 举报

75#
发表于 2010-7-10 08:04:06 | 只看该作者
感谢楼主分享,下来看看,,
回复

使用道具 举报

76#
 楼主| 发表于 2010-7-10 09:08:02 | 只看该作者

回复 #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 编辑 ]
回复

使用道具 举报

77#
 楼主| 发表于 2010-7-10 09:18:14 | 只看该作者

回复 #73 h6124900 的帖子

回复

使用道具 举报

78#
发表于 2010-7-10 09:31:52 | 只看该作者
客户端PXE启动,同时存在\PEDRVS的可能性很少,可以这样:

1:PXE启动,如果PXE上存在\PEDRVS,就用PXE上的。
2:PXE启动,如果PXE上不存在\PEDRVS,再搜索本地上的\PEDRVS,存在就用本地。
回复

使用道具 举报

79#
 楼主| 发表于 2010-7-10 10:00:27 | 只看该作者
客户端存在\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
回复

使用道具 举报

80#
发表于 2010-7-10 10:42:20 | 只看该作者
不错。。。下载下来试用吧
回复

使用道具 举报

81#
发表于 2010-7-10 12:58:31 | 只看该作者
虚拟机测试,是不是SRS驱动处理有问题?

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

Snap1.jpg
回复

使用道具 举报

82#
 楼主| 发表于 2010-7-10 15:57:15 | 只看该作者

回复 #81 zhaohj 的帖子

查了一下,没发现SRS处理的问题;
出现这种状况通常是dos下发现本地盘控驱动symmpi.sys,并向txtsetup.sif中追加了相应的内容,而sysmmpi.sy_没有被正确地拷贝到 %systemroot%\system32\drivers 下造成的。
回复

使用道具 举报

83#
发表于 2010-7-10 16:14:41 | 只看该作者
可能新版的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
回复

使用道具 举报

84#
 楼主| 发表于 2010-7-10 16:42:05 | 只看该作者
看的晕晕滴。如果你的虚机真是需要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. 先拷贝到内存有什么好处?
回复

使用道具 举报

85#
发表于 2010-7-10 16:55:22 | 只看该作者
我测试COPY时很卡,所有先拷贝到内存加快速度,这对于大文件速度优势很明显。

我没有发现上面有什么错,检查了一下(hd0)、(fd0)中的内容也正确。
------------------
问题是直接用你的原版可以设别硬盘,真见鬼了。
但COPY是很卡,时间太长了。
回复

使用道具 举报

86#
 楼主| 发表于 2010-7-10 17:15:03 | 只看该作者
FAT copy的执行效率的确较低。Copy SRS IDs...等显示就是为此而加入的。否则10多秒的光标闪速,就像死机了一样。
而且FAT copy在grldr和grub.exe下的表现也不一样:
grldr下不显示read和write;另外感觉grub.exe下 FAT copy 似乎快一些。
回复

使用道具 举报

87#
 楼主| 发表于 2010-7-10 17:20:43 | 只看该作者
回复

使用道具 举报

88#
发表于 2010-7-10 17:22:46 | 只看该作者
跟踪了一下,也正确

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

Snap1.jpg
回复

使用道具 举报

89#
发表于 2010-7-10 17:35:52 | 只看该作者
<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
回复

使用道具 举报

90#
 楼主| 发表于 2010-7-10 17:36:40 | 只看该作者
的确见鬼了~~~~~~~
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-1 19:16

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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