无忧启动论坛

标题: gfxmenu 和 graphicsmode 两种模式交替进入死机 [打印本页]

作者: 2010qaqz111    时间: 2013-2-8 23:49
标题: gfxmenu 和 graphicsmode 两种模式交替进入死机
菜单里使用两种模式交替会引起死机,先进入 gfxmode,退出后再进入 graphicsmode,再进入 gfxmode,到此为止一切正常,但是这时候只要再一次进入 graphicsmode 就一定会死机。

从一个 gfxmode 菜单连续转入另外一个 gfxmode 菜单不会死机;从一个 graphicsmode 菜单连续转入另外一个 graphicsmode 菜单也不会死机。

我做了一个 fba,不论是直接在 FbinstTool-1.606.2012.1221 里面用 Qemu 测试还是刷进U盘真机测试都是如此,求解。


搜了论坛以前的帖子,也有其他人提到过一样的错误,但是貌似没人分析原因也一直没修正:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=204565&highlight=gfxmenu

附上测试的 fba 地址:(grldr不论是现在最新的稳定版0.4.5c还是最新的测试版0.4.6a都是一样的现象,这个fba里面是0.4.6a的)
http://pan.baidu.com/share/link?shareid=344450&uk=3506865498


这是菜单的写法:

grldr内置菜单:
configfile (ud)/BOOT/menu.lst
#只有这一行



(ud)/BOOT/menu.lst
gfxmenu (ud)/BOOT/message
graphicsmode -1 320:1024 240:768 24:32      #这行开始的一直到color的4行是设置graphicsmode模式的,如果没有这4行的话在[2]那里出错
font (ud)/BOOT/unifont.hex.gz                    #就会退回到字符界面,没有graphicsmode和splashimage会非常难看,而没有font中文会变乱码
splashimage (ud)/BOOT/Tranquillity.lzma
color normal=0x0f highlight=0xf0 heading=0x0f helptext=0x0f standard=0x0f

title [1] 进入 graphicsmode 菜单
configfile (ud)/BOOT/tools.lst

title [2] 错误菜单->会出错退出 gfxmenu 模式。看下面说明
map --mem (ud)/dummy (0xff)
chainloader (0xff)



(ud)/BOOT/tools.lst
graphicsmode -1 320:1024 240:768 24:32
font (ud)/BOOT/unifont.hex.gz
splashimage (ud)/BOOT/Tranquillity.lzma
color normal=0x0f highlight=0xf0 heading=0x0f helptext=0x0f standard=0x0f

title 进入 gfxmenu 菜单
configfile (ud)/BOOT/menu.lst

title 错误菜单->pause后返回本页,不会死机
map --mem (ud)dummy (0xff)
chainloader (0xff)

[ 本帖最后由 2010qaqz111 于 2013-2-8 23:55 编辑 ]
作者: 不点    时间: 2013-2-9 03:49
gfxmenu 已经不再维护了。你报告的问题,早就有人报告过了。
作者: 2010qaqz111    时间: 2013-2-9 10:33
有办法可以解决这个问题吗?
作者: 不点    时间: 2013-2-9 10:54
也许有办法。但恐怕没人去寻找这种办法。
作者: 2010qaqz111    时间: 2013-2-9 11:47
Oh,God.

我在老毛桃做成产品那个fba里见到了类似的用法,但是没有出问题。不过他写的菜单我不大看得懂,我照搬过来却不行,也不知道为什么。

我去找找那个菜单的写法粘上来请教一下。
作者: 2010qaqz111    时间: 2013-2-9 15:55
找来老毛桃的又测试了很多次,发现情况好像不是死机了。

而在gfxmenu菜单执行的时候如果出错,会根据情况出现不同的现象:
如果没有进入过graphicsmode,就不会出错,会返回字符界面显示出错信息,等待按键后重新显示菜单但是不会再加载 gfxmenu;
如果进过一次graphicsmode屏幕就黑掉了,按键之后又会重新显示菜单,但是不会再加载 gfxmenu

之前是因为屏幕黑掉我误以为死机了。


说到这里,很疑惑g4d的title下面的语句在遇到错误时是怎么处理的,如果没有指定errcheck off和fallback的时候出错,控制会转到哪里继续?比如这样一个菜单:

grldr:
configfile (ud)/main.lst


(ud)/main.lst
graphicsmode -1 320:1024 240:768 24:32
font (ud)/unifont.hex.gz
splashimage (ud)/back.lzma
gfxmenu (ud)/message

title ResetMenu
configfile (ud)/main.lst

title dummy
map --mem (ud)/dummy (0xff)

title NothingNothingNothing
clear


在dummy项出错之后,貌似是从头开始了,因为会加载splashimage,但是奇怪的是不会重新加载gfxmenu。

不同的是,如果第一次dummy出错,是能够在字符界面看到错误信息的,但是第二次以后的出错后就看不到错误信息了,光标停在左上角。

所以很奇怪出错之后g4d是怎么处理的。
作者: 大帝    时间: 2014-6-26 23:08
2010qaqz111 发表于 2013-2-9 15:55
找来老毛桃的又测试了很多次,发现情况好像不是死机了。

而在gfxmenu菜单执行的时候如果出错,会根据情 ...

graphicsmode 0x12
在返回gfxmenu图形菜单的时候,先执行这个命令,让g4d恢复默认显示模式,试试




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