U-Boot: Loop Variable через пользовательское пространство
Во время выполнения MLO я создаю переменную, значение которой я хочу сделать доступной для приложений пользовательского пространства в Android. Как этого достичь?
Одним из способов было бы записать содержимое переменной во внешнюю память и позволить ей считаться процессом пользовательского пространства. Однако мне нужно убедиться, что во время загрузки никакой другой процесс не перезаписывает адрес.
Знаете ли вы какие-либо другие способы, ATAG? Если можно использовать ATAG, как это сделать? Нужно ли разрабатывать модуль ядра?
ура
1 ответ
Из пользовательского пространства linux вы можете получить информацию из переменных среды U-Boot, используя приложение "fw_printenv". Во время выполнения U-Boot вы должны "setenv variablename value", а затем saveenv.
Ваш U-Boot MLO будет нуждаться в настройках CONFIG для включения команд env. MLO обычно хочет (и нуждается) в небольшом коде, команды env увеличат код, что может стать препятствием.
На стороне Linux вам понадобится настроить fw_printenv для памяти вашей конкретной цели. Это можно сделать во время выполнения, см. Fw_env.config. Вы можете получить целевой исполняемый файл, встроенный в u-boot/tools/env/. Это предполагает, что Android переносит механизмы Linux в этой области; Я не знаком с деталями платформы Android.