我正在開發一個簡單的Grub模塊,它可以在引導過程的早期階段啓用一些額外的視頻設置/初始化。我最好的想法是使用一些VESA電話來完成這項任務。如何使用來自GRUB的實模式BIOS/VESA調用?
不幸的是,最近我發現真正的模式調用不可用於Grub。
但是,GRUB可以做非常複雜的操作,如果沒有BIOS的幫助,這可能是無法想象的。
這怎麼可能?我怎麼能從grub調用這個bios?
我正在開發一個簡單的Grub模塊,它可以在引導過程的早期階段啓用一些額外的視頻設置/初始化。我最好的想法是使用一些VESA電話來完成這項任務。如何使用來自GRUB的實模式BIOS/VESA調用?
不幸的是,最近我發現真正的模式調用不可用於Grub。
但是,GRUB可以做非常複雜的操作,如果沒有BIOS的幫助,這可能是無法想象的。
這怎麼可能?我怎麼能從grub調用這個bios?
就我所見,grub使用函數grub_bios_interrupt
來調用16位中斷。此功能在內部使用prot_to_real
功能切換到實模式並且real_to_prot
切換回。我猜你應該也可以使用這些功能,但也許你需要將它們封裝在grub_bios_interrupt
這樣的函數中。
從grub模塊的BIOS擴展?你確定? – peterh
爲什麼不呢?你只需要按照說明安裝一個。例如,SudoBIOS被構建爲平面二進制文件(?),需要在0x2000處加載。我不認爲GRUB可以做到這一點,所以你需要加載你自己。它可能需要一些工作才能運行,但這是值得的。 – I8086