Manipulação de strings no Grub2

1

Um dos novos recursos do Grub2 é a capacidade de script. No meu trabalho, estamos usando isso para um grande efeito. No entanto, eu recentemente tropeçou em uma curta vinda terrível. Não há qualquer manipulação de string ou suporte aritmético.

Meu problema exato: preciso mexer em um dispositivo PCI antes de inicializá-lo. Entre setpci e write_dword , posso escrever facilmente os valores de que preciso. Eu recebo o registro de endereço básico de setpci e 0x18 para ele e escrevo o valor desejado para esse endereço.

Eu fiz as contas na minha cabeça enquanto fazia experiências, mas agora não consigo descobrir como fazer com que o Grub2 faça a mesma matemática no momento da inicialização.

Para piorar ainda mais, o endereço PCI sempre termina em 000. Então, em teoria, eu poderia simplesmente substituir os dois últimos 0s por "18" e isso também funcionaria. Mais uma vez, o Grub2 me falha, sem suporte à manipulação de strings.

Existe uma maneira de obter uma substring no script Grub2?
Existe uma maneira de realizar aritmética no script Grub2?

    
por deft_code 07.09.2010 / 21:17

1 resposta

2

Se você deseja criar scripts no Grub2, você precisa do suporte lua , que não faz parte da versão lançada. É parte dos grub-extras , e você pode obter o fonte do repositório do bazar . Você precisará reconstruir o Grub2 a partir do código-fonte. Eu não acho que haja alguma documentação além da fonte, embora você possa pedir ajuda no grub-devel

    
por 07.09.2010 / 22:04