a1ive/grub

截屏模块 和 某些命令 的问题。

Closed this issue · 12 comments

@a1ive
大佬,有关于 截屏模块 和 某些命令 的问题 要问下你。

截屏模块的问题

image
我用 grub 2.0.4,insmod /....../....../crscreenshot.mod
进入 grub 主题的一瞬间,屏幕左上角 有个亮点。
然后,按了【F10】和 【Ctrl】+【Alt】+【F10】,然后进入系统文件管理器,发现没有截图。
然后,又重启,【F1】到【F12】以及带上修饰键的,都试过了,没有任何截图。

  • 截屏的快捷键是什么?
  • 图片保存在那个目录?
  • 截屏模块需要依赖其他的模块吗?
  • 还需要 insmod 什么模块,才能截屏成功呢?

某些命令的问题

exit

image

中文手册上写了,exit 可以退出 grub。
grub 2.0.6 使用exit ,成功退出;
grub 2.0.4 使用exit,退出失败,提示 “cann't find command”

  • 需要载入什么模块,才能够拥有 exit 命令呢?

Ventoy 的 grub 就是 2.0.4的,就可以 exit
我觉得,grub 2.0.4 应该是可以装载这些模块的,
就是不知道是哪些模块。
难不成需要提前载入一个内核吗?

sendkey

grub 2.0.6 使用sendkey ,命令可以工作。
grub 2.0.4 使用sendkey,提示 “cann't find command”

  • 需要载入什么模块,才能够拥有 sendkey 命令呢?

@a1ive
还有,这个直接用脚本编译出来的 grubx64.efi 没法自动装载 相同路径下的 grub.cfg。

是欠缺什么操作吗?

a1ive commented

关于截图:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=421511
按 左Ctrl+左Alt+F12,截图的时候左上角会亮起一个小方块。绿色是成功。
具体执行流程请看原作者仓库。
有的老古董 BIOS 不支持 Ctrl Alt 等修饰键,或者不支持 F12。那就没办法了,你要自己改热键。

a1ive commented

哪个命令在哪个模块里面,可以在 command.lst 里面查找。
中文手册里面的命令说明是针对我的 GRUB 分支的。其他 GRUB 分支可能没有对应命令,或者用法不一样。

a1ive commented

还有,这个直接用脚本编译出来的 grubx64.efi 没法自动装载 相同路径下的 grub.cfg。

GRUB 默认情况下硬编码加载 $prefix 下的 grub.cfg,而不是同目录下的 grub.cfg。

那做什么操作,可以弄相同路径呢?

我想让 grubx64.efigrub.cfg 在同一个文件夹里面。

a1ive commented

那做什么操作,可以弄相同路径呢?

我想让 grubx64.efigrub.cfg 在同一个文件夹里面。

改源码吧。

里面有 efi mouse 的模块。
你在grub主题中使用鼠标成功点击过没有啊?

a1ive commented

那是鼠标映射键盘操作的。GRUB 的 GUI 从设计上就不支持鼠标。
具体怎么用可以看我给 Ventoy 提的 PR (已经合并了)。

截图模块的源代码在哪里啊?

我想编译一个,不带修饰键的,直接 F12 的。

a1ive commented

我建议你直接修改原项目,编译生成 DXE 驱动。
这样在 rEFInd, Ventoy, G4E, a1ive GRUB2 里面都能加载使用。
https://github.com/LongSoft/CrScreenshotDxe
我的 GRUB2 里面用

efiload -n /CrScreenshotDxe.efi

Ventoy 里面用

fwload -n /CrScreenshotDxe.efi

加载驱动就行 (只需要加载一次)

rEFInd 自带截屏功能,是 F10 截屏。

我想生成 .mod 模块,怎么操作呢?

我以为 你有 生成 .mod 模块的代码。

a1ive commented

我以为 你有 生成 .mod 模块的代码。

有,你自己找。如果你找不到,那你也编译不了。