2015-06-10 55 views
0

我正在開發一個簡單的Grub模塊,它可以在引導過程的早期階段啓用一些額外的視頻設置/初始化。我最好的想法是使用一些VESA電話來完成這項任務。如何使用來自GRUB的實模式BIOS/VESA調用?

不幸的是,最近我發現真正的模式調用不可用於Grub。

但是,GRUB可以做非常複雜的操作,如果沒有BIOS的幫助,這可能是無法想象的。

這怎麼可能?我怎麼能從grub調用這個bios?

回答

1

就我所見,grub使用函數grub_bios_interrupt來調用16位中斷。此功能在內部使用prot_to_real功能切換到實模式並且real_to_prot切換回。我猜你應該也可以使用這些功能,但也許你需要將它們封裝在grub_bios_interrupt這樣的函數中。

1

您可以使用BIOS擴展器。它們允許您使用來自保護模式的實模式中斷!我自己並沒有使用過它們,儘管我聽說它們真的有效。一個例子是SudoBIOS,它能夠在保護模式下啓動MikeOS,但我自己無法擔保。

+0

從grub模塊的BIOS擴展?你確定? – peterh

+0

爲什麼不呢?你只需要按照說明安裝一個。例如,SudoBIOS被構建爲平面二進制文件(?),需要在0x2000處加載。我不認爲GRUB可以做到這一點,所以你需要加載你自己。它可能需要一些工作才能運行,但這是值得的。 – I8086

相關問題