1

Одной из новых функций Grub2 является возможность написания сценариев. На моей работе мы используем это, чтобы оказать большое влияние. Тем не менее, я недавно наткнулся на ужасное недопущение. Там нет какой-либо строковой манипуляции или арифметической поддержки.

Моя точная проблема: мне нужно связываться с устройством PCI перед загрузкой. Между setpci и write_dword я могу легко записать значения, которые мне нужны. Я получаю регистр базового адреса из setpci и 0x18 к нему, и записываю нужное значение в этот адрес.

Я экспериментировал с математикой в своей голове, но теперь не могу понять, как заставить Grub2 делать ту же математику во время загрузки.

Чтобы добавить оскорбление травмы, адрес PCI всегда заканчивается на 000. Так что в теории я мог бы просто заменить последние два 0 на "18", и это тоже сработало бы. Еще раз Grub2 подводит меня без поддержки манипуляции со строками.

Есть ли способ получить подстроку в скрипте Grub2?
Есть ли способ выполнить арифметику в скрипте Grub2?

1 ответ1

2

Если вам нужна возможность написания сценариев в Grub2, вам нужна поддержка lua, которая не является частью выпущенной версии. Это часть grub-extras, и вы можете получить исходный код из хранилища Bazaar. Вам нужно будет перестроить Grub2 из исходного кода. Я не думаю, что кроме источника есть какая-либо документация, хотя вы можете обратиться за помощью в список рассылки grub-devel. Удачи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .