无忧启动论坛

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

[已解决] G4E 2022-12-27 内置菜单中的configfile似乎不能正确跳转

[复制链接]
1#
发表于 2023-1-30 10:40:52 | 显示全部楼层
此外,在1920x1080模式下,似乎g4e的菜单和输出都不能有效利用屏幕,而只能左上角

设置了菜单框,就指定了菜单框的位置和尺寸,是绝对值,不随屏幕尺寸改变。
因此设计菜单,一般是指定一个普遍的,通常电脑都支持的分辨率。然后选择背景图,设计菜单框,选择合适的字体尺寸。
但是有的电脑启动时就支持一种分辨率,而且是他所支持的最大值,那必然是字体尺寸太小,菜单框也只能在左上角。
避免这种情况,就是菜单框不要指定尺寸。不使用
setmenu --box ......
此时就是满屏。
字体尺寸可以根据分辨率设置,比如:
calc *0x834c > nul ;; set a=%@retval%
if %a%>=801 && font --font-high=40 /efi/grub/menu40.hex  && splashimage /efi/grub/da.jpg
if %a%<=800 && font /efi/grub/unifont.hex.gz && splashimage /efi/grub/xiao.jpg

点评

所以还是比较奇怪为什么没有放setmenu --box输出也占不满屏幕。以及有些电脑的固件大概确实比较神奇,开CSM对1024*768的支持就没有了,菜单中使用graphicsmode -1 1024也不报错,就后续命令一大堆Error滚过去然后花  详情 回复 发表于 2023-2-7 09:15
菜单中没有放setmenu --box也会出现2楼的问题。  详情 回复 发表于 2023-1-30 10:52
回复

使用道具 举报

2#
发表于 2023-1-30 11:00:54 | 显示全部楼层
如题所示。部署至本地硬盘。机器为联想拯救者Y720-15IKB。

你这个内置菜单没有什么特别的,为什么不使用原始的?
我估计是这两句不适合:
root (bd)
configfile ()/efi/grub/menu.lst
原始的是:
find --set-root /efi/grub/menu.lst
configfile /efi/grub/menu.lst

点评

采用该内置菜单:(结尾处没有空行) 同样看不到最后一句can you see me直接进入命令行。使用winhex检查mkimage.exe生成的bootx64.efi二进制文件发现最后一行出现了,怀疑是g4e菜单处理时因为某种原因漏掉了最后一  详情 回复 发表于 2023-1-30 11:29
对于1楼问题发现了一个神奇的workaround办法:压制bootx64.efi时在内置菜单结尾处多加一个空行。非常神奇。  详情 回复 发表于 2023-1-30 11:25
主要是害怕查找到别的硬盘上去。按照你的方案修改过后QEMU仍然不通过。截图如下: [attachimg]518909[/attachimg]  详情 回复 发表于 2023-1-30 11:05
回复

使用道具 举报

3#
发表于 2023-1-30 11:57:01 来自手机 | 显示全部楼层
意思是加一个空格,问题就解决了?有可能是处理预置菜单有问题,下午排查一下。

点评

加一个【空行】。  详情 回复 发表于 2023-1-30 12:09
回复

使用道具 举报

4#
发表于 2023-1-30 17:39:39 | 显示全部楼层
找到问题产生的原因了,是预置菜单最后一行缺少回车、换行符,即缺少 0xd 0xa 。
看来预置菜单最后一行必须敲换行键。

不明白的是,为什么显式菜单最后一行可以没有回车、换行符,也正常。

点评

经测试,外置菜单没有问题是因为我halt后面又多敲了几个空行。去除外置菜单中的结尾空行后(1楼那个菜单),“关闭计算机”这一选项消失。所以外置菜单处理也应该有类似问题。  详情 回复 发表于 2023-1-30 18:38
我盲猜外置菜单往往是boot这种没了也会自动补全的命令造成的……  详情 回复 发表于 2023-1-30 18:06
回复

使用道具 举报

5#
发表于 2023-1-31 08:49:17 | 显示全部楼层
经测试,外置菜单没有问题是因为我halt后面又多敲了几个空行。去除外置菜单中的结尾空行后(1楼那个菜单),“关闭计算机”这一选项消失。所以外置菜单处理也应该有类似问题。

我今天又测试了一次,内置菜单有你反馈的问题,但是外置菜单正常呀。

点评

再跑了一次,外置菜单是正常的。外置菜单部分应该没有问题。可能是QEMU加载时被某种缓存干扰。那么问题应该就在内置菜单处理上。  详情 回复 发表于 2023-1-31 09:40
回复

使用道具 举报

6#
发表于 2023-1-31 10:41:42 | 显示全部楼层
给您造成判断麻烦了抱歉

版主的话言重了。应当感谢你反馈问题,并精准定位。
回复

使用道具 举报

7#
发表于 2023-2-7 13:32:34 来自手机 | 显示全部楼层
你是想根据不同的分辨率设置不同的菜单?

点评

啊。是支持什么模式用什么菜单……  详情 回复 发表于 2023-2-7 15:21
回复

使用道具 举报

8#
发表于 2023-2-7 16:03:28 | 显示全部楼层
那个电脑跑不支持的模式graphicsmode也不出错

没有指定的模式,则返回一个显卡支持的模式,这样比返回错误要好一些。
奇怪为什么菜单没有setmenu --box也不占满屏幕……

这确实奇怪。可能是新显示模式的分辨率没有传递过来。

现在屏幕显示的信息,保存到内存,过滤分辨率好像有点复杂。
比如输出:
模式 x像素 y像素 模式 x像素 y像素 ...
这样比较容易一些。

点评

那希望能加一个参数能探测显卡支不支持某分辨率。我这是用了不支持的直接后续命令出一大堆奇怪错误然后花屏,怀疑是破坏了什么东西。以及怎么调试菜单的问题呢?  详情 回复 发表于 2023-2-7 17:54
回复

使用道具 举报

9#
发表于 2023-2-7 18:26:39 | 显示全部楼层
1. 你是要在命令行执行,还是在批处理执行?
2. 你输入分辨率 x y,函数返回0或者1?
3. 你输入指令,函数返回显卡支持的所有分辨率。你利用批处理筛选?

点评

1,我是希望给菜单用的,命令行我直接用graphicsmode --info人力判断了。 2,大概是希望有个graphicsmode --test x y这样的,函数返回1表示有,0无这样,然后我可以送checkrange 3,批处理筛选这事大概比较复杂,  详情 回复 发表于 2023-2-7 21:39
回复

使用道具 举报

10#
发表于 2023-2-8 15:38:23 | 显示全部楼层
graphicsmode --test x y
存在返回模式号,不存在返回0。

BOOTX64.rar

141.57 KB, 下载次数: 11, 下载积分: 无忧币 -2

点评

感谢,测试成功!以及内置菜单最后要有个换行符的问题方便处理吗……  详情 回复 发表于 2023-2-8 17:10
回复

使用道具 举报

11#
发表于 2023-2-8 17:22:45 来自手机 | 显示全部楼层
内置菜单最后换行符的问题,是历史遗留问题,g4d就有的。好像比较麻烦,不是大问题,就那样吧。

点评

那也行,那感觉文档加一句话说内置菜单结尾要有换行符比较好,免得不懂的人以为是什么问题。  详情 回复 发表于 2023-2-8 17:32
回复

使用道具 举报

12#
发表于 2023-2-8 17:27:42 来自手机 | 显示全部楼层
我觉得,批处理及菜单是按行处理的,因此要有明确的换行符。可能就是以前处理的思路吧。前人不认为这是bug。
回复

使用道具 举报

13#
发表于 2023-2-8 17:42:45 来自手机 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2023-2-8 18:00 编辑

因为我大概看了看,比较麻烦。喜欢内置菜单的人,大多是要压缩的。难不成还要解开菜单,加一个换行符,再压缩?如果是g4e自己引入的bug,能解决的尽量解决。
如果是g4d遗留的问题,大问题,关键问题尽量同步解决。小问题,尽量不处理。
前些时候有人在管网提出几个小问题,像返回数据多了个空格呀,多了个00呀。我处理了,结果按下葫芦起了瓢,又引起前人写的批处理失效(RUN,SISO)。只得又改回来。



点评

最近学习grub4dos,用RUN时确实出现了花屏问题,不知是不是新版引起,不过搜索发现很早前有人就遇到过这个问题,得到的回复是BIOS的问题  详情 回复 发表于 2023-2-8 20:51
那就文档提醒一下内置菜单结尾要有个换行符感觉比较好,这样不必实际改动一切维持原样但是用户又不会引发误会。  详情 回复 发表于 2023-2-8 18:51
回复

使用道具 举报

14#
发表于 2023-2-8 19:47:41 来自手机 | 显示全部楼层
主要是懒

点评

太真实了,那就这样吧,菜单我有时间试试怎么占不满屏幕……  详情 回复 发表于 2023-2-8 19:56
回复

使用道具 举报

15#
发表于 2023-2-8 20:04:33 来自手机 | 显示全部楼层
试试这个版本,改进了,不知是否解决了。

点评

如果你说的是29#的话,那么确实解决问题了,可以正常填满屏幕了,谢谢!  详情 回复 发表于 2023-2-9 08:17
回复

使用道具 举报

16#
发表于 2023-2-8 21:16:11 来自手机 | 显示全部楼层
可以肯定不是新版本的问题。或许是RUN指定的图像分辨率,BIOS不支持吧。看看RUN有没有入口参数可以设置分辨率。没有的话,只能修改RUN。
回复

使用道具 举报

17#
发表于 2023-2-23 17:19:22 | 显示全部楼层
报告超版,新版本解决了几个问题:
1. 屏幕分辨率大于1600*1200时覆盖字库的问题。现在字体尺寸、屏幕分辨率都不受限制。
   与屏幕分辨率有关,与图像尺寸无关。
2. 菜单最后一行没有换行符而缺失的问题。
   修正前,g4d的压缩菜单受影响。g4e的菜单压缩与否都受影响。

点评

挺好!感谢!  详情 回复 发表于 2023-2-24 14:01

评分

参与人数 1无忧币 +10 收起 理由
sunsea + 10 很给力!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-12 03:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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