Я ищу способ редактировать параметры командной строки ядра из пользовательского пространства, без необходимости останавливаться в U-Boot и изменять значения вручную. Я хочу изменить параметры ядра для следующей загрузки. Например, если командная строка ядра включает параметр с именем example1=true' I would like to change it to the following boot to
example1=false`
Я использую систему на базе OpenWRT.
решение1
Быстрый поиск в вики OpenWrt в разделе Das U-Boot Environment...
«Das U-Boot использует небольшой объем пространства на флэш-памяти, обычно в том же разделе, где он хранится, для хранения некоторых важных параметров конфигурации».
конкретно...
bootargs: Содержимое этой переменной передается ядру Linux в качестве аргументов загрузки (т. н. «командная строка»).
Делая некоторые предположения, но вы должны иметь возможность редактировать этот файл конфигурации из работающего ядра. Возможно, потребуется найти раздел u-boot и файл конфигурации, на котором он находится, и смонтировать его в режиме R/W. Кроме того, вы также должны иметь возможность редактировать этот файл конфигурации из командной строки u-boot, только один раз, если вы сохраните переменную с помощью saveenv
.
решение2
Возможно, я неправильно понимаю, но, насколько мне известно, вы не можете изменить аргументы командной строки, которые загрузчик передает ядру после того, как вы уже запустили ядро... если вы имеете в виду, как настроить параметры ядра во время выполнения, то этот инструмент называется sysctl
.
Если, например, вы хотите изменить:
sysctl -w kernel.stack_tracer_enabled=1
Эти изменения будут потеряны после перезагрузки.