无忧启动论坛

标题: Grub4DOS_0.4.5A_2010.03.11 版问题 [打印本页]

作者: 0cat0    时间: 2010-3-12 18:38
标题: Grub4DOS_0.4.5A_2010.03.11 版问题
试了Grub4DOS_0.4.5A_2010.01.08和Grub4DOS_0.4.5A_2010.01.23_Chenall版没问题,Grub4DOS_0.4.5A_2010.03.11_Chenall版无法引导PLPBT.BIN,下面是截图及菜单:

title                 [9] Debug On/USB2.0 Module.
clear
debug off
read 0x60110 || write 0x60110 2
checkrange 1 read 0x60110 && write 0x60110 0
read 0x60110 && write 0x60110 1
#read 0x60110 || debug off
#read 0x60110 || pause Debug is now off...
read 0x60110 || find --set-root /0PE/SRS/PLPBT.BIN
read 0x60110 || kernel /0PE/SRS/PLPBT.BIN
read 0x60110 && pause Debug is now on...
read 0x60110 && debug on
kernel || clear

2010-03-12_182953.png (6.97 KB, 下载次数: 31)

2010-03-12_182953.png

2010-03-12_183001.png (1.97 KB, 下载次数: 27)

2010-03-12_183001.png

作者: viptks    时间: 2010-3-12 20:36
我认为03的版改动是比较大的
作者: freesoft00    时间: 2010-3-12 21:28
楼主最好pm下cheall,要不他不一定看到
作者: chenall    时间: 2010-3-12 21:43
想确定新版的G4D不能启动PLPBT.BIN
只要一个语句。
kernel /plpbt.bin
如果启动失败,那就一定有问题了。

汗。

按这个菜单来看,逻辑有问题,根本就没有执行到kernel plpbt.bin的语句,当然出错了。

[ 本帖最后由 chenall 于 2010-3-12 21:48 编辑 ]
作者: 0cat0    时间: 2010-3-12 22:32
回C大,菜单是0PE的菜单,这个我没动过,有没有问题也不是很清楚,但问题就在这里,因为03月份的版本改动都比较大,编程的东西我不会,我只能提交报告,同一个菜单其它都没动过,Grub4DOS_0.4.5A_2010.01.08版没问题,更新到新版就有问题了,只能说明G4D改动过了,不知道会不会是因为改的时候出来的BUG,还是别的问题。。。。

还有

http://bbs.wuyou.net/forum.php?m ... page%3D1&page=2

17楼的问题还是一样,没能解决。。。。。。。
作者: chenall    时间: 2010-3-13 13:14
我可以确定的是新版启动PLPBT正常。

这个菜单你执行了几次,前面的菜单内容我不知道,但可以肯定的是,如果是第一次执行这个菜单根本就不可能启动PLPBT.BT。也许第二次应该就可以了,具体的原因,自己看一下GRUB4DOS的说明。。

如果以前的版本可以直接启动,那说明了是旧版GRUB4DOS出现了问题,新版本已经解决了。
作者: 不点    时间: 2010-3-13 13:18
@chenall

kernel || clear

kernel 失败的时候,要执行 clear。可是,看贴图,却没有执行 clear,而是显示错误并结束。这是不对的。似乎 kernel 命令失败了却仍然返回了成功(非0的值)。或者 “||” 的逻辑处理部分出现了漏洞。
作者: chenall    时间: 2010-3-13 13:20
至于另一个问题,原因可能是新版的磁盘仿真代码有变化(我一部份我没有动过,也不太清楚),使用新版的仿真然后再启动旧版的来访问可能就会出问题。反之应该就不会了。

你可以试试在ISO里面用新版GRUB4DOS。

然后使用旧版的GRUB4DOS仿真这个ISO启动看看有没有问题。。。
作者: chenall    时间: 2010-3-13 13:22
原帖由 不点 于 2010-3-13 13:18 发表
@chenall

kernel || clear

kernel 失败的时候,要执行 clear。可是,看贴图,却没有执行 clear,而是显示错误并结束。这是不对的。似乎 kernel 命令失败了却仍然返回了成功(非0的值)。或者 “||” 的逻 ...


我倒没注意这一点,汗。

这是另外一个问题了。可能是我对|| &&修改时出现的问题。不过这个是以前改的。出问题也应该以前的版本就会这样了。

不使用后面不使用clear命令看起来就是正常的,只要是clear命令,才会这样。

[ 本帖最后由 chenall 于 2010-3-13 13:30 编辑 ]
作者: 0cat0    时间: 2010-3-13 13:33
刚刚试了一下,只要把菜单里面的
kernel || clear
这一行去掉或只去掉kernel只留clear就可以了,为什么会这样呢????????
作者: chenall    时间: 2010-3-13 13:40
原帖由 0cat0 于 2010-3-13 13:33 发表
刚刚试了一下,只要把菜单里面的
kernel || clear
这一行去掉或只去掉kernel只留clear就可以了,为什么会这样呢????????


这个其实也没有什么影响的。。。看图好像clear没有执行,其实是执行过了。。因为我在处理的时候忘了清除前一句命令的error值,所以导致clear执行后error值还是前一句的命令退出后就显示出这个错误来了。

不管有没有改变这个菜单至少要执行两次才可以进入plpbt.bin。
作者: 0cat0    时间: 2010-3-13 13:43
不用执行两次呀,上个图,只要改成这样就能进去了。。。。。。。

2010-03-13_134202.png (7 KB, 下载次数: 24)

2010-03-13_134202.png

作者: chenall    时间: 2010-3-13 13:49
那就是前面的菜单内容有对这个进行初始化过了。。我是说单单只有这一个菜单的情况下,如果不执行两次根本不可能启动plpbt.bin
作者: 0cat0    时间: 2010-3-13 13:55
明白了,第一次执行是debug on,第二次才到plpbt.bin,不过不加kernel选择菜单的时候不能上下选择这个菜单了,只能按“9”才能选择这个菜单,看来kernel命令有问题吧?
作者: 0cat0    时间: 2010-3-13 14:11
试了一下另外一个问题,只要用新版替换原来VEDE_CD.ISO里面的就正常了。。。
作者: chenall    时间: 2010-3-13 14:29
原帖由 0cat0 于 2010-3-13 13:55 发表
明白了,第一次执行是debug on,第二次才到plpbt.bin,不过不加kernel选择菜单的时候不能上下选择这个菜单了,只能按“9”才能选择这个菜单,看来kernel命令有问题吧?


这是正常的。。。。

如果这个菜单没有启动命令,那这个菜单将不能使用上下键选择,可以用数字键或左右键选择。

你可以多看看GRUB4DOS的readme.
作者: 0cat0    时间: 2010-3-13 14:34
多谢C大的指导,这就去看看要怎么改。。。。。。。。。
作者: 不点    时间: 2010-3-13 15:22
原帖由 chenall 于 2010-3-13 13:40 发表


这个其实也没有什么影响的。。。看图好像clear没有执行,其实是执行过了。。因为我在处理的时候忘了清除前一句命令的error值,所以导致clear执行后error值还是前一句的命令退出后就显示出这个错误来了。

...


clear 不是清屏吗?怎么没有清除掉 kernel 显示的信息呢?
作者: pseudo    时间: 2010-3-13 15:22
早先菜单为
title [9] Debug On/Off.
第一次选中该菜单项,功能为设置debug为on,第二次选中该菜单项,功能为设置debug为off。
第三次为on...

后来菜单为
title [9] Debug On/USB2.0 Module.
第一次选中该菜单项,功能为设置debug为on,第二次选中该菜单项,功能为加载plpbt.bin。

后一个功能是后加的,因为不想引起其它菜单项编号的改变,就让两种功能共用一个菜单项了。

这个菜单在老版grub4dos里正常。从今年某时起的新版就有问题了。

问题正如不点说的,在kernel || clear处。新版grub4dos表现为菜单失控。

0PE新版绕过了该问题,但问题确实存在,新版在这点上的的处理不如旧版合理。
作者: 0cat0    时间: 2010-3-13 15:37
我现在直接改成这样,正常了:

title                 [9] PLoP Boot Manager\n   Load /0PE/SRS/PLPBT.BIN
find --set-root /0PE/SRS/PLPBT.BIN
kernel /0PE/SRS/PLPBT.BIN

去掉了Debug开关了。。。。。。

[ 本帖最后由 0cat0 于 2010-3-13 15:40 编辑 ]
作者: chenall    时间: 2010-3-13 17:13
原帖由 不点 于 2010-3-13 15:22 发表


clear 不是清屏吗?怎么没有清除掉 kernel 显示的信息呢?



呵呵,这应该是G4D处理的一个逻辑吧。不管程序返回值是什么,如果error的值不是0就会返回error信息。

执行clear时确实是清屏没错。

但是由于前面的error值还存在,而clear命令也没有处理error信息,执行完clear以后又返回了一个error的值就表现为上面的情况了。

如果clear清屏没有执行的话,前面应该还会有一个提示debuf on的信息的。

当然了好像还是有问题,改天我把这个改下在执行下一句命令之前设置error值为0,再试试。我还不太清楚这些内容,只是了解了一点。

[ 本帖最后由 chenall 于 2010-3-13 17:17 编辑 ]
作者: 不点    时间: 2010-3-13 18:41
看了一下,似乎漏掉了一个赋值 errnum 的步骤:

                                if ((*p == '&' && ret) || (*p == '|' && ! ret))
                                {
+                        if ((int)builtin1 == -1 || ((builtin1->func) != errnum_func && (builtin1->func) != checkrange_func))
+                                errnum = 0;

                                        arg = skip_to (0, p);
                                }
作者: chenall    时间: 2010-3-13 19:45
原帖由 不点 于 2010-3-13 18:41 发表
看了一下,似乎漏掉了一个赋值 errnum 的步骤:

                                if ((*p == '&' && ret) || (*p == '|' && ! ret))
                                {
+                        if ((i ...



是的,就是少了个步骤。因为其它命令大都有设置error值的过程,而clear没有所以就体现出来了。
作者: 0cat0    时间: 2010-3-13 20:22
刚刚看到官方上面有13号的版本,试了一下,问题还没解决:

如下菜单,正常进入:




改成下面这样就出错了:

2010-03-13_202027.png (5.28 KB, 下载次数: 22)

2010-03-13_202027.png

2010-03-13_202033.png (1.97 KB, 下载次数: 22)

2010-03-13_202033.png

作者: 不点    时间: 2010-3-13 20:27
这个问题由 chenall 来解决。我发布的版本是用来解决其它问题的。那些问题与这里讨论的问题无关。
作者: 0cat0    时间: 2010-3-13 20:34
多谢不点大人,那还是等C大发布新版再试了,还有,参照P大的菜单,可以用:

errorcheck off
kernel
errorcheck on

来解决这个问题。。。。。。。。。
作者: cfgs    时间: 2010-3-13 21:15
2010-03-12的unifont外部命令有问题,中文都只显示半个字。
作者: chenall    时间: 2010-3-13 22:01
原帖由 cfgs 于 2010-3-13 21:15 发表
2010-03-12的unifont外部命令有问题,中文都只显示半个字。


你用了旧版的GRUB4DOS?还是下载的文件不对?有没有截图?

另外这个只能用于菜单上的显示。
作者: cfgs    时间: 2010-3-14 08:53
原帖由 chenall 于 2010-3-13 22:01 发表


你用了旧版的GRUB4DOS?还是下载的文件不对?有没有截图?

另外这个只能用于菜单上的显示。


0309的没问题,都使用wqy-microhei-lite_0_U16字库(中文是双字节,0312版会不会使用了单字节)。
作者: chenall    时间: 2010-3-15 21:00
我试了一切正常...

使用最新版G4D和UNIFONT试下.

注:要使用英文版的G4D,如果使用中文版的界面上可能会有一些乱码.




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