如何使用GRUB的实模式BIOS / VESA调用?

时间:2015-06-10 05:13:16

标签: bios grub real-mode vesa

我正在开发一个简单的Grub模块,它可以在启动过程的早期阶段启用一些额外的视频设置/初始化。我最好的想法是使用一些VESA调用来完成任务。

不幸的是,最近我发现Grub无法获得实模式调用。

但是GRUB可以做很复杂的操作,如果没有BIOS的帮助,这些操作可能是不可想象的。

怎么可能?我怎么能从grub中调用bios?

2 个答案:

答案 0 :(得分:1)

您可以使用BIOS扩展程序。它们允许您从保护模式使用实模式中断!我自己没有用过它们,虽然我听说它们确实有效。一个例子是SudoBIOS,它能够在保护模式下启动MikeOS,但我自己也无法保证。

答案 1 :(得分:1)

据我所知,grub使用函数grub_bios_interrupt来调用16位中断。此功能在内部使用prot_to_real功能切换到实模式,real_to_prot切换回实时模式。我猜你也应该能够使用这些函数,但也许你需要将它们包装在像grub_bios_interrupt这样的函数中。