无忧启动论坛

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

[求助] configfile (md)4+8不能立刻返回主菜单

[复制链接]
跳转到指定楼层
1#
发表于 2011-9-29 14:12:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
执行 pause --wait=5 &&  configfile (md)4+8

结果 configfile (md)4+8
不会被执行

查了帮助和grub4dos文档,都没这个方面的提示。

经过测试,pause返回是 0 也就是真

用别的命令配合 configfile (md)4+8 只要是连接付 &&或者|| 都不会执行。

问题已经解决:
原因是gfxmenu /message,我的主菜单用它做的。

直接用fontfile (ud)/fonts.gz 去掉gfxmenu /message 解决。

不知道是不是BUG。

[ 本帖最后由 hotdll 于 2011-9-29 19:51 编辑 ]
66#
 楼主| 发表于 2011-10-2 20:13:11 | 只看该作者

回复 #63 chenall 的帖子 #64 不点的帖子

谢谢两位老大
C和汇编我都略懂一些,从明天开始我去读源代码,等我想到想要实现什么功能的时候就开帖讨论。
回复

使用道具 举报

65#
发表于 2011-10-2 18:59:56 | 只看该作者
哈哈,我今天才看到这个,我自作聪明,把4+8改的乱七八糟的,现在又改出来了
回复

使用道具 举报

64#
发表于 2011-10-2 16:44:23 | 只看该作者
我在 61 楼所说的是开发 grub4dos 所需要的最高标准。不是最低标准。

最低标准,正如 chenall 所说,懂 C 语言就够了。

其他东西如果不懂,可以随便在 google 上搜,了解一些知识也就可以了。不懂也没关系。
回复

使用道具 举报

63#
发表于 2011-10-2 15:27:24 | 只看该作者

回复 #62 hotdll 的帖子

善用Google,基本我学习的资料都是从Google里面找出来的,基本的东西自己学习一下.

其它的东西从Google找就行了.

其实想加入GRUB4DOS开发是很简单的,熟悉一下C语言就可以开工了.

练手过程.(编译+测试环境是必须的)

首先你要有想去实现的功能,并且这个功能需要在你已知的知识中觉得有能力实现的.

刚开始可以先尝试一些比较简单的,慢慢了解,然后再接触复杂的东西.

然后要怎么样去实现.

尝试修改源码一步一步去实现.

我最早修改的源码是builtins.c(基本上GRUB4DOS的大部份功能都在这个中实现)

不能调用C语言的函数库,只能使用GRUB4DOS已经提供的,如果没有提供则需要自己编写实现.

碰到一个函数不了解它的用法,可以参考find stage2/*.c里面的相关调用的方法.基本上就了解了.
回复

使用道具 举报

62#
 楼主| 发表于 2011-10-2 13:00:42 | 只看该作者
原帖由 不点 于 2011-10-2 12:40 发表
编程语言:需要熟悉 C 语言,熟悉汇编语言。

底层技术:需要了解 BIOS 相关知识(中断调用,BIOS 数据区,等等)。需要懂得磁盘分区结构知识。

只要你掌握了这些,开发 grub4dos 完全顺手,不存在困难。

汇编在学习中 BIOS数据区哪里有资料的?磁盘分区结构这个好像零零碎碎的学了一些。哪里有具体的资料?

我曾弄了一段时间的51汇编,汇编我觉得挺有意思,非常灵活,完全按照自己的意思。
回复

使用道具 举报

61#
发表于 2011-10-2 12:40:33 | 只看该作者
编程语言:需要熟悉 C 语言,熟悉汇编语言。

底层技术:需要了解 BIOS 相关知识(中断调用,BIOS 数据区,等等)。需要懂得磁盘分区结构知识。

只要你掌握了这些,开发 grub4dos 完全顺手,不存在困难。
回复

使用道具 举报

60#
 楼主| 发表于 2011-10-2 12:00:14 | 只看该作者
原帖由 不点 于 2011-10-1 21:20 发表
那其实是你们几位解决的。你们的劳动量比我还大。我由于身体差,只不过动动嘴皮子 “瞎指挥” 一通罢了。

无论如何,解决了就是好事。当然感谢你这个 “始作俑者” 了。没有你是不行的。

不点大大,读懂 GRUB4DOS 的源代码需要哪些知识?我打算为grub4dos做点贡献。就当做是业余爱好。
回复

使用道具 举报

59#
发表于 2011-10-1 21:20:24 | 只看该作者
那其实是你们几位解决的。你们的劳动量比我还大。我由于身体差,只不过动动嘴皮子 “瞎指挥” 一通罢了。

无论如何,解决了就是好事。当然感谢你这个 “始作俑者” 了。没有你是不行的。
回复

使用道具 举报

58#
 楼主| 发表于 2011-10-1 21:09:16 | 只看该作者
今天送我妈回家,本来说好上传代码的。想不到不点大大已经都解决了。并发布了新版本。

对我今天没兑现承诺表示歉意。

同时为不点的高效率喝彩。我就不上传我那不堪入目的代码了。
回复

使用道具 举报

57#
发表于 2011-10-1 18:55:02 | 只看该作者
这些就让 chenall 做吧,我都不太熟悉。chenall 一直就在做这方面的工作。
回复

使用道具 举报

56#
发表于 2011-10-1 18:40:08 | 只看该作者
借此帖向不点大建议:
1.configfile (rd)+1不要改变启动设备。chenall已将configfile (md)*+*这样处置了。
2.增强目录是否存在的检测功能。
  目前,检测目录是否存在的方法大致有二:
(1)ls /test/                     缺点:目录下的文件太多时,一是影响显示,当然可以clear,但觉得有点不爽。
(2)cat --length=0 /test    缺点:分区为ntfs格式时就失灵了。
  故建议:给ls 增加一个参数,不显示目录下的文件。目录存在就返回真,否则返回假。
回复

使用道具 举报

55#
发表于 2011-10-1 18:09:26 | 只看该作者
测试正常,既不死循环也不冲突。

[ 本帖最后由 幸运的草 于 2011-10-1 18:12 编辑 ]
回复

使用道具 举报

54#
发表于 2011-10-1 18:00:30 | 只看该作者
大家最好尽快测试,都来报告使用情况,好让 chenall 能够决定更新到 svn 上。
回复

使用道具 举报

53#
发表于 2011-10-1 17:50:15 | 只看该作者

回复 #52 不点 的帖子

呵,动作真快。包括0PE及一些批处理测试正常。

[ 本帖最后由 zxw 于 2011-10-1 17:54 编辑 ]
回复

使用道具 举报

52#
发表于 2011-10-1 17:43:12 | 只看该作者
在下午 17 点 30 分以后,又编译了一个版本。

这个版本不调整优先级,只解决冲突。这样可以保持兼容性。

试试看,估计这次没问题了。
回复

使用道具 举报

51#
发表于 2011-10-1 17:26:23 | 只看该作者
>>> gfxmenu有个特性,gfxmenu执行成功后,后面的语句不会执行。当菜单执行出错或按ESC退出gfxmenu后才会执行。

这是没办法的事情。本来就是 “两张皮”。

>>> 为防止出错后菜单乱码,目前坛内很多菜单,出现这样类似的语句:
>>> gfxmenu /message
>>> configfile (md)4+8

现在的新版本,不可以这样用了,因为 configfile 将优先于 gfxmenu 的执行。

更新:

最新的版本(17点30分以后的编译)保持兼容性,以往的菜单无须改变。

[ 本帖最后由 不点 于 2011-10-1 18:22 编辑 ]
回复

使用道具 举报

50#
发表于 2011-10-1 17:21:56 | 只看该作者
仔细地看完了不点大大的分析,透亮了许多。
回复

使用道具 举报

49#
发表于 2011-10-1 17:16:06 | 只看该作者
gfxmenu有个特性,gfxmenu执行成功后,后面的语句不会执行。当菜单执行出错或按ESC退出gfxmenu后才会执行。

为防止出错后菜单乱码,目前坛内很多菜单,出现这样类似的语句:
gfxmenu /message
configfile (md)4+8
===========================
测试版将 configfile 和 gfxmenu 的优先级进行了调整,这个特性在这种菜单就“消失”了。测试版如再这样使用,呵,当然就形成无限循环了。
其它,包括本帖讨论的问题等暂时测试正常。

[ 本帖最后由 zxw 于 2011-10-1 17:30 编辑 ]
回复

使用道具 举报

48#
发表于 2011-10-1 16:52:24 | 只看该作者
新的测试版本刚刚上载到时空论坛,请测试。

将 configfile 和 gfxmenu 的优先级进行了调整。

当两者同时存在时,configfile 优先执行。

由于改动较大,属于 “部分不兼容” 改动,因此,请全面测试,确认没问题之后再采用。
回复

使用道具 举报

47#
发表于 2011-10-1 16:16:26 | 只看该作者
测试了一下2009-03-29版本,也是一样的问题。
回复

使用道具 举报

46#
发表于 2011-10-1 15:59:35 | 只看该作者
早期的版本这里还可以下..

http://download.gna.org/grub4dos/
回复

使用道具 举报

45#
发表于 2011-10-1 15:49:45 | 只看该作者
2009-03-31 的版本无处下载了。
回复

使用道具 举报

44#
发表于 2011-10-1 15:45:36 | 只看该作者
如果可能的话,也测试一下 2009-03-31 的版本。

如果都是一样的,那说明,这是老问题了。

剩下的就要看,我们究竟有没有可能去解决它了。

我现在就准备去研究一下相关的源代码。
回复

使用道具 举报

43#
发表于 2011-10-1 15:39:00 | 只看该作者

回复 #40 不点 的帖子

测试了一下0.4.4 的版本,2009-12-03的版本。
问题同38#贴。


此时按ESC,才会回到主菜单。

[ 本帖最后由 zxw 于 2011-10-1 15:47 编辑 ]
回复

使用道具 举报

42#
发表于 2011-10-1 15:31:15 | 只看该作者
不是延迟不延迟的问题,而是说,究竟 gfxmenu 与 configfile 命令能否 “兼容” 的问题。

configfile 要 “跑” 去执行另外一个 menu,而 gfxmenu 让不让它 “去” 的问题。

请测试 0.4.4,看看是否存在同样问题。

我一向对于 bug 比较看重,也比较敏感。

凡是有可能表现出 bug 的,我都会高度警惕。
回复

使用道具 举报

41#
发表于 2011-10-1 15:24:39 | 只看该作者

回复 #37 不点 的帖子

和ZXW进行了一番讨论,原SS.LST中的内容受gfxmenu命令的影响,执行无延迟,但这个测试好像不严格。
又把原来内置菜单中的内容完全放入外置SS.LST中,发现同内置菜单一样,出出现有延迟。
menu.usr是为测试而写的一个虚拟的文件名,实际并无真实的menu.usr。
测试结论是:configfile的延迟与gfxmenu命令有关。这样的延迟可能有好处,正如不点大所说。

不点大的回复好快。

[ 本帖最后由 幸运的草 于 2011-10-1 15:29 编辑 ]
回复

使用道具 举报

40#
发表于 2011-10-1 15:20:09 | 只看该作者
参见 37 楼后一段的说明。怀疑 gfxmenu 之下无法正常使用 configfile 命令。请全面测试,看看 0.4.4 的版本是否也存在类似问题。
回复

使用道具 举报

39#
发表于 2011-10-1 15:16:05 | 只看该作者
在测试批处理的某个时候,configfile 命令确实被 chenall 更改过。

gfxmenu毕竟是强行改造给予grub4dos 的一个功能,很多问题都与gfxmenu有关。gfxmenu不用也罢。

[ 本帖最后由 zxw 于 2011-10-1 15:30 编辑 ]
回复

使用道具 举报

38#
发表于 2011-10-1 15:11:57 | 只看该作者

回复 #37 不点 的帖子

在#35号的帖子又补充了一句。
这个菜单的两个菜单项均进入命令行。此时再按ESC键却进入了configfile的菜单。
  1. title test1
  2. configfile (md)4+8
  3. commandline
复制代码

按ESC键后回到了内置菜单。
  1. title test2
  2. configfile /menu.usr
  3. commandline
复制代码

按ESC键后这个菜单项进入了menu.usr菜单。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-2-24 20:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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