Редактирование аргументов командной строки ядра внутри ядра

U-boot передает параметры командной строки ядра. В моем требовании я хочу отредактировать эти параметры в дереве исходного кода ядра и не хочу менять код U-boot. Я использую ядро ​​​​2.6.35.

Поэтому, пожалуйста, укажите мне, какую часть исходного кода ядра я должен проверить для этого.


person user3693586    schedule 16.12.2015    source источник


Ответы (2)


Следуйте этой процедуре:

  • Войдите в конфигурацию ядра, набрав make menuconfig
  • Войдите в меню Тип и функции процессора.
  • Включить встроенную командную строку ядра
  • Укажите свою командную строку, щелкнув Встроенная командная строка ядра.
  • Выберите Встроенная командная строка переопределяет аргументы загрузчика, если вы хотите, чтобы bootargs игнорировалось.
person Claudio    schedule 16.12.2015
comment
Спасибо за ответ. Кажется, что CONFIG_CMDLINE, определенный в файле конфигурации по умолчанию, отображается в make menuconfig (выберите параметры загрузки). Я должен изменить во время выполнения на основе значения GPIO. - person user3693586; 16.12.2015
comment
Что вы имеете в виду под изменением во время выполнения? В конфигурации ядра есть опция времени компиляции. Если вам нужно изменение во время выполнения, вам лучше понять, как изменить параметр bootargs (например, разрешив U-boot проверять GPIO с помощью соответствующего сценария во время выполнения) - person Claudio; 16.12.2015
comment
Пока идет работа над ядром, мне нужно изменить командную строку ядра. Пример: скажем, console=ttyS0 определено в CONFIG_CMDLINE, мне нужно изменить на console=ttyS1, если значение gpio равно 1, иначе console=ttyS0. - person user3693586; 16.12.2015
comment
Вы не можете изменить командную строку загрузки после запуска ядра. Вам нужно найти другую стратегию. U-boot позволяет запускать скрипты (т.е. программы). Вы можете загрузить в ОЗУ программу в U-boot, которая проверяет GPIO, а затем меняет параметр bootargs. Это просто и вам не нужно изменять исходники U-Boot. - person Claudio; 16.12.2015

Вы можете изменить if из конфигурации ядра: -

+CONFIG_CMDLINE="foo=1"
+CONFIG_CMDLINE_EXTEND=y

Check runtime:-
$cat /proc/cmdline
person Zakir    schedule 01.06.2017