Одной из новых возможностей Grub2 является scriptability. На моей работе мы используем его для большого влияния. Однако я недавний наткнулся на ужасное короткое прибытие. Нет никакой обработки строк или арифметической поддержки.
Моя точная проблема: Я должен смешать с устройством PCI перед начальной загрузкой. Между setpci
и write_dword
Я могу легко записать значения, я должен. Я получаю Индексный регистр от setpci
, и 0x18 к нему и запись требуемое значение к тому адресу.
Я сделал математику в голове при экспериментировании, но теперь я не могу выяснить, как заставить Grub2 делать ту же математику во время начальной загрузки.
Для добавления оскорбления травмы адрес PCI всегда заканчивается в 000. Таким образом в теории я мог просто заменить последние два 0 "18", и это будет работать также. Еще раз Grub2 приводит меня к сбою без поддержки обработки строк.
Существует ли способ получить подстроку в сценарии Grub2?
Существует ли способ выполнить арифметику в сценарии Grub2?
Если Вы хотите scriptability в Grub2, Вам нужна поддержка lua, которая не является частью выпущенной версии. Это - часть отдельно оплачиваемых предметов личинки, и можно получить источник из репозитория базара. Необходимо будет восстановить Grub2 из источника. Я не думаю, что существует любая документация кроме источника, хотя можно обратиться за помощью в списке рассылки личинки-devel.Удачи.