Pergunta

Estou desenvolvendo um kernel para um sistema operacional. Para executá -lo, decidi usar o Grub. Atualmente, tenho um script anexado ao Grub's stage1, stage2, um arquivo PAD e o próprio kernel juntos, o que o torna inicializável. O único problema é que, quando eu o executo, você deve informar o Grub onde está o kernel e o tamanho manualmente e depois inicializá -lo, assim:

kernel 200+KERNELSIZE
boot

KERNELSIZE é o tamanho do kernel em blocos. Tudo bem e tudo bem para começar, mas é possível obter esses valores no binário e fazer com que o grub inicialize o kernel automaticamente? Alguma sugestão sobre como conseguir isso?

Foi útil?

Solução

Eu imagino que você poderia simplesmente criar seu próprio arquivo menu.lst conf, carregar isso no Shell Grub com "configfile /path/to/menu.lst" e depois fazer "setup (hd0)", substituindo os valores conforme necessário. Estou apenas adivinhando ... sem dizer quais são as diferenças na sua configuração personalizada.

Outras dicas

http://www.gnu.org/software/grub/manual/grub.html#embedded-data fornece algumas informações gerais sobre o armazenamento da lista de blocos no Grub. Mais importante, ele menciona que as listas de blocos são armazenadas em locais bem definidos no estágio2.

Você provavelmente desejará olhar para o código -fonte Grub para descobrir o local exato.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top