如何在联想 G550 笔记本电脑上的 GRUB 2 中检测 Novo 按钮启动?

如何在联想 G550 笔记本电脑上的 GRUB 2 中检测 Novo 按钮启动?

我的联想 G550 笔记本电脑常规电源按钮旁边的备用电源按钮(称为“Novo 按钮”),显然是为了触发进入恢复分区的替代启动模式。在我的计算机上,它似乎只是启动普通的启动过程。我想对 GRUB2 进行编程,让它触发我选择的操作。

GRUB 手册提到我可以通过测试 RTC/CMOS 内存中的一位来检查备用启动键,但我无法识别它是哪一位。

有办法检测它吗?

答案1

使用哪个电源按钮的信息并不保存在 CMOS 中,而是保存在影子 ROM 中。

在段 0xF000(物理地址范围 [0xF0000, 0xFFFFF])内找到字符串"LegendKirk4"。从该字符串的开头开始 32 个字节,有一个字节具有您需要的值。如果计算机是使用普通电源按钮打开的,则该字节将为零。如果计算机是使用 Novo 按钮打开的,则它将为 15(0x0f)。

但是,从 GRUB 脚本中执行上述步骤并不容易,因为 GRUB 不提供“搜索内存”原语。您几乎被迫在配置文件中对地址进行硬编码。也就是说,通过从/dev/mem已启动的系统中 grepping 来查找签名;然后,在配置文件中使用几个read_dword命令验证签名的存在,之后您可以使用 读取值read_byte

相关内容