String-Manipulation in Grub2

1813
deft_code

Eine der neuen Funktionen von Grub2 ist die Skriptfähigkeit. Bei meiner Arbeit nutzen wir es mit großem Einfluss. Ich bin jedoch kürzlich auf ein schreckliches Nachlassen gestoßen. Es gibt keine String-Manipulations- oder Arithmetik-Unterstützung.

Mein genaues Problem: Ich muss mich vor dem Booten mit einem PCI-Gerät herumschlagen. Zwischen setpciund write_dwordich kann leicht die Werte schreiben, die ich brauche. Ich erhalte das Basisadressregister von setpciund 0x18 und schreibe den gewünschten Wert an diese Adresse.

Ich habe die Mathematik in meinem Kopf während des Experimentierens gemacht, aber jetzt kann ich nicht herausfinden, wie ich Grub2 dazu bringen kann, die gleiche Mathematik beim Booten zu machen.

Um die Verletzung zu beleidigen, endet die PCI-Adresse immer in 000. Theoretisch könnte ich die letzten beiden Nullen durch "18" ersetzen. Das würde auch funktionieren. Wieder einmal versagt mir Grub2, ohne Unterstützung der String-Manipulation.

Gibt es eine Möglichkeit, einen Teilstring in einem Grub2-Skript zu erhalten?
Gibt es eine Möglichkeit, Arithmetik in einem Grub2-Skript auszuführen?

1

1 Antwort auf die Frage

2
Gilles

Wenn Sie Skriptfähigkeit in Grub2 wünschen, benötigen Sie die Lua-Unterstützung, die nicht Bestandteil der veröffentlichten Version ist. Es ist ein Teil der Grub-Extras, und Sie können die Quelle aus dem Basar-Repository erhalten . Sie müssen Grub2 aus dem Quellcode neu erstellen. Ich glaube nicht, dass es abgesehen von der Quelle eine Dokumentation gibt, obwohl Sie in der grub-devel- Mailingliste um Hilfe bitten können . Viel Glück.