Domanda

Sto sviluppando un kernel per un sistema operativo. Per eseguirlo, ho deciso di utilizzare GRUB. Attualmente, ho uno script collegato a stage1 , stage2 di GRUB, un file pad e il kernel stesso che lo rendono avviabile. L'unico problema è che quando lo eseguo, devi far sapere a GRUB dove si trova il kernel e quanto è grande manualmente e quindi avviarlo, in questo modo:

kernel 200+KERNELSIZE
boot

KERNELSIZE è la dimensione del kernel in blocchi. Questo va bene e va bene per cominciare, ma è possibile ottenere questi valori nel file binario e fare in modo che GRUB si avvii automaticamente nel kernel? Qualche suggerimento su come farlo?

È stato utile?

Soluzione

Immagino che potresti semplicemente creare il tuo file menu.lst conf, caricarlo sulla shell grub con " configfile /path/to/menu.lst" e poi fai " setup (hd0) " sostituendo i valori secondo necessità. Sto solo indovinando però ... senza dire quali sono le differenze nella tua configurazione personalizzata.

Altri suggerimenti

http://www.gnu.org/software/grub/manual/grub.html#Embedded -data fornisce alcune informazioni generali sulla memorizzazione dell'elenco blocchi in GRUB. Ancora più importante, menziona che gli elenchi di blocchi sono memorizzati in posizioni ben definite nella fase2.

Probabilmente vorrai guardare il codice sorgente di GRUB per capire la posizione esatta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top