无忧启动论坛

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

[讨论] 报告一个特例,不知eltorito.sys (built along with g4d) 是否可以再次改进?

[复制链接]
跳转到指定楼层
1#
发表于 2016-1-22 18:27:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、环境:
1、G4D:最新版0.4.6a、稳定版0.4.5c
2、ISO:使用mkiso制作,非仿真模式,grldr引导。含下面的IMG。
3、IMG:1.44M。使用Win98SE原版IO.SYS、himem.sys,grub.exe。
        在批处理里用devload /v /h eltorito.sys语句来加载eltorito.sys。

4、U盘:
SK6221和SMI3260主控固件USB3.0盘,为了模拟最常用的情况,都量产为
usb-cd+usb-hdd两驱模式。usb-cd使用上述ISO。usbhdd做DOS引导盘,
含有IO.SYS,grub.exe,eltorito.sys和IMG。

5、BIOS:
AMI BIOS:神舟A350-T45笔记本;
Phoenix UEFI/BIOS(BIOS优先):联想笔记本,
Insyde  UEFI/BIOS(BIOS优先):惠普G4-2022TX笔记本。

以上BIOS,均能正常识别usb-cd、usb-hdd。在设备菜单中同时
显示两驱条目。



二、现象描述
从USB-HDD引导:
在C>下,grub.exe调用IMG,再加载eltorito.sys,
或C>下,直接devload /v /h加载eltorito.sys,

结果:
AMI BIOS、Phoenix BIOS下,No booted CD (正常结果?)
但是,Insyde BIOS下,特例出现:eltorito.sys找到了可引导CD,
Drive A0 returns 0800h bytes...


三、问题
能不能再次改进eltorito.sys,让AMI BIOS、phoenixBIOS环境下,
也能得到Insyde BIOS下那样的效果。即:从USB-HDD引导并调用
eltorito.sys,也能驱动USB-CD。

================================================================

再次改进的事不急,各位可以在时间、身体健康允许的情况下再考虑。

题外话:
这个Insyde BIOS,在上次是作为Bad BIOS出现的,后置USB-CD
eltorito.sys将不能支持。不点改进eltorito.sys后,此问题已解决。

现在,Insyde BIOS下,从USB-HDD引导,eltorito.sys可找到USB-CD,
此特性,似乎是它的一个优点。 “失之东隅,收之桑榆”,矛盾体啊!
2#
发表于 2016-1-22 19:06:52 | 只看该作者
bios 根本不挂载 cd ,没戏。就是说,int13/DL=CDROM 的接口被 bios 屏蔽掉,没门——除了放弃,就是洗洗睡吧。

Insyde 的 bios 没把 cdrom 屏蔽掉,也许是违反了微软等巨头的意愿,属于 bug,将来修复 bug 后,可能就屏蔽掉了。

另外,bios 本身也正在被取缔,bios 本身已经成了微软、intel、amd 的敌人了。算了,清静一点,少折腾吧。
回复

使用道具 举报

3#
 楼主| 发表于 2016-1-23 08:26:21 | 只看该作者
收到,谢谢指点。

说这个话题,主要还是为了一些同学的DOS USBCD驱动,一键GHOST更方便。没这个功能也不影响大局。
回复

使用道具 举报

4#
发表于 2016-1-23 09:31:48 | 只看该作者
eltorito.sys 不能通过 bios 驱动真正的光驱。但是可以驱动映射的光盘(.iso)。

点评

错。 eltorito.sys 本来就是利用 int13 接口来在 dos 下驱动驱的。它的名字就说明了这个目的。 凡是符合 eltorito no-emulation mode 可启动规范的光盘,都可以驱动。  详情 回复 发表于 2016-1-23 13:03
回复

使用道具 举报

5#
发表于 2016-1-23 13:03:57 | 只看该作者
本帖最后由 不点 于 2016-1-23 13:09 编辑
2011yaya2007777 发表于 2016-1-23 09:31
eltorito.sys 不能通过 bios 驱动真正的光驱。但是可以驱动映射的光盘(.iso)。


错。

eltorito.sys 本来就是利用 int13 接口来在 dos 下驱动光驱的。它的名字就说明了这个目的。

凡是符合 eltorito no-emulation mode 可启动规范的光盘,都可以驱动。


当主板从一个 no-emulation mode 可启动光盘启动时,它会为该光盘分配 DL 盘符,并提供相应的 int13 接口。

eltorito.sys 就是利用这个 int13 接口来访问光盘扇区的,达到给 dos 提供光盘驱动的目的。

回复

使用道具 举报

6#
发表于 2016-1-23 20:13:59 来自手机 | 只看该作者
嗷 弄错了。 usb-hdd模式启动,执行usb --init,可以驱动usb-cd,为它分配盘符。grub4dos可以访问它。之后进入dos,执行那个.sys,挂载usb cd。

点评

在AMI BIOS,phoenix BIOS下, usb --init 枚举失败,error 81。延时、热启已试,无效。USB3盘、USB2盘与USB3口、USB2口各种组合已试,无效。 在Insyde BIOS下,usb --init 能枚举成功。  详情 回复 发表于 2016-1-26 07:29
回复

使用道具 举报

7#
 楼主| 发表于 2016-1-26 07:29:33 | 只看该作者
2011yaya2007777 发表于 2016-1-23 20:13
嗷 弄错了。 usb-hdd模式启动,执行usb --init,可以驱动usb-cd,为它分配盘符。grub4dos可以访问它。之后 ...

在AMI BIOS,phoenix BIOS下,
usb --init 枚举失败,error 81。延时、热启已试,无效。USB3盘、USB2盘与USB3口、USB2口各种组合已试,无效。

在Insyde BIOS下,usb --init 能枚举成功。
回复

使用道具 举报

8#
发表于 2016-1-26 20:11:43 来自手机 | 只看该作者
辛苦了。我没有这么多测试条件。但是有一台笔记本,通过usb3.0接口,再连接usb2.0集线器,再连接usb2.0u判,每次启动都枚举失败。探测设备不在端口,没有找到解决办法。但是重启后枚举正常。

点评

yaya客气了,开发USB驱动、排障才是真辛苦。我这个工作量很小,不能相提并论的。 8#这种连接方式有点复杂,USB2盘先直接插USB3口,不经过USB2 HUB,让BIOS自己auto, 试试USB --init行不行? ==================  详情 回复 发表于 2016-1-27 12:54
回复

使用道具 举报

9#
 楼主| 发表于 2016-1-27 12:54:34 | 只看该作者
本帖最后由 wuwuzz 于 2016-1-27 12:56 编辑
2011yaya2007777 发表于 2016-1-26 20:11
辛苦了。我没有这么多测试条件。但是有一台笔记本,通过usb3.0接口,再连接usb2.0集线器,再连接usb2.0u判 ...



yaya客气了,开发USB驱动、排障才是真辛苦。我这个工作量很小,不能相提并论的。
8#这种连接方式有点复杂,USB2盘先直接插USB3口,不经过USB2 HUB,让BIOS自己auto,
试试USB --init行不行?
============================================================
订正7#测试结果:

联想笔记本phoenix bios下,
USB2盘接USB2口,BIOS setup中 USB3.0模式设为auto,G4D用usb delay=3,再init,能枚举成功。
其他USB2盘、USB3盘与USB3口组合不能枚举成功。

现在就剩下神舟笔记本AMI BIOS。它只有USB2口,且BIOS没有USB参数调整选项。
加延时,USB2盘、USB3盘均不能init枚举成功。[init时能看到U盘灯闪烁,随即熄灭,然后error81]
===============================================================

G4D的USB2驱动,不知有没有   与BIOS USB驱动握手过程(移交USB控制权)。
即:先卸载BIOS USB驱动,再加载G4D USB驱动核心的动作。

如果没有这个过程,将很容易产生冲突,出现各种问题。

这个知识点,我也是很久以前在国内BIOS讨论网站,看到那些BIOS开发者说的一句话,具体细节不知。
不过,高版本Linux自举时有这个过程,不知是否可以借鉴Linux源代码的思路和命令细节?
回复

使用道具 举报

10#
发表于 2016-1-27 16:46:52 | 只看该作者
8#的连接方式,是在我现有读设备上,好不容易发现错误81提示。用于代码测试。
你说读很对,移交USB控制权是重要的。松下的usb驱动,内部设置了好几个参数,在我以前的电脑上启动,第一次总是死机,就是死在没有移交控制权,但重启后可以正常启动。
后来参考了另一个范例,改成现在这个样子。有些机子可以正常移交控制权,我那台机子虽然没有移交控制权,但是不死机,可以枚举成功。
8#那台机子是正常移交了控制权,但是从集线器端口检测不到设备,测试30秒也不行,必须重启才正常。就是他自己,启动也非常困难,开机需要20几秒,才能出现启动画面。(只有1个U盘是这样的)。
回复

使用道具 举报

11#
 楼主| 发表于 2016-1-28 14:49:35 来自手机 | 只看该作者
“……就是他自己,启动也非常困难,开机需要20几秒,才能出现启动画面。(只有1个U盘是这样的)……"

这段话看得不是很明白。
是指有多个测试u盘,分别测试,均不经过hub,直接插usb3口,然后只有1个u盘困难,其他u盘都正常?

==
我这边测试情况则不容乐观。
Phoenix和Ami bios环境,
Usb3盘全失败,暂缓测试。

Usb2盘,ami  bios环境全失败。
Phoenix bios环境,大部分失败。
只有smi3252b主控盘init成功。

参加测试的u盘,均为口碑最好的名盘,包括群联,慧荣,擎泰,太烂的主控不参加测试。

现在情况有些复杂,不太好定位问题所在。是bios问题,g4d 问题,还是u盘固件问题。

回复

使用道具 举报

12#
发表于 2016-1-28 18:01:18 来自手机 | 只看该作者
我是说,有一个usb2.0u盘,256Mb,格式化为usb-fdd模式,插入笔记本上的2.0或3.0接口,启动时20多秒才进入启动画面。第一次启动肯定是错误81。重启成功。

点评

这个笔记本是什么bios呢? AMI? 格式化是格不成fdd的,容量256M才是bios看重的、决定设备类型的因素。 如果其他u盘没这种症状,则可考虑该u盘固件可能存在bug。  详情 回复 发表于 2016-1-28 18:27
回复

使用道具 举报

13#
 楼主| 发表于 2016-1-28 18:27:28 来自手机 | 只看该作者
2011yaya2007777 发表于 2016-1-28 18:01
我是说,有一个usb2.0u盘,256Mb,格式化为usb-fdd模式,插入笔记本上的2.0或3.0接口,启动时20多秒才进入 ...

这个笔记本是什么bios呢?  AMI?
格式化是格不成fdd的,容量256M才是bios看重的、决定设备类型的因素。

如果其他u盘没这种症状,则可考虑该u盘固件可能存在bug。
回复

使用道具 举报

14#
发表于 2016-1-28 20:54:33 来自手机 | 只看该作者
这个bios的类型是AMI。 u盘在其他电脑上启动正常,没有延时。

点评

AMI UEFI/BIOS的话,问题解决难度 可能就要降低了。因为有bios源码可供参考。 《bios研发技术剖析》第二版,光盘附带的汇编源码。支持usb2。 有兴趣的话,可以搜搜看。  详情 回复 发表于 2016-1-28 23:02
回复

使用道具 举报

15#
 楼主| 发表于 2016-1-28 23:02:18 来自手机 | 只看该作者
本帖最后由 wuwuzz 于 2016-1-28 23:03 编辑
2011yaya2007777 发表于 2016-1-28 20:54
这个bios的类型是AMI。 u盘在其他电脑上启动正常,没有延时。


AMI  BIOS的话,问题解决难度
可能就要降低了。因为有bios源码可供参考。

《bios研发技术剖析》第二版,光盘附带的汇编源码。支持usb2。

有兴趣的话,可以搜搜看。







回复

使用道具 举报

16#
发表于 2016-1-29 17:11:31 | 只看该作者
有时间的话,看一看。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 06:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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