Безопасное изменение конфигурации ядра Linux программно

8

Я пишу сценарий, который должен автоматически изменять ряд параметров конфигурации ядра Linux на основе входного файла.
Самым простым способом сделать это, конечно, было бы редактирование файла .config напрямую, но это не рекомендуется и может вызвать проблемы.
Я не могу найти способ сделать это "правильный путь", хотя.

«make help» не показывает способ изменения отдельных параметров, а также ./scripts/kconfig/conf --help. Этот файл на kernel.org , похоже, тоже не имеет пути.
Даже Genkernel Gentoo вручную изменяет файл .config.

Итак, в основном:
есть ли безопасный способ изменить параметры конфигурации ядра программно, с отслеживанием зависимостей и т. Д.?
Можно ли запустить Kconfig вручную, чтобы добиться этого?

SharkWipf
источник

Ответы:

3

Что я делаю, это первое:

make defconfig

Затем добавьте изменения настроек к .configследующим:

make olddefconfig

Это должно «исправить» любые несоответствия, внесенные в конфигурацию. YMMV, так как он может не исправить их так, как вы ожидаете.

DepressedDaniel
источник
Спасибо за ответ! Я думал об этом, но, как вы сказали, YMMV. Если есть 2 конфликтующих варианта, невозможно сказать, какой из них будет исправлен.
SharkWipf
@SharkWipf Ну, в любом случае, я ожидаю, что результат будет детерминированным. Поэтому, если результат не тот, который вы хотите, просто добавьте еще одно утверждение, отключающее конфликтующие вещи, и повторяйте этот процесс, пока он не заработает.
ДепрессияДаниэль
Да, но это может мешать другим параметрам, которые я не могу проверить, и, поскольку я в конечном итоге хочу установить этот скрипт на github, я бы хотел, чтобы он был максимально стабильным и надежным. Обычно этот сценарий будет использоваться для изменения существующих пользовательских конфигураций ядра, а не для генерации новых, поэтому сложно обеспечить его надежную работу таким образом.
SharkWipf
@SharkWipf Ну, звучит так, будто для того, чего ты пытаешься достичь, нужен своего рода ИИ;) Обычное решение - обеспечить работающий по умолчанию настрой и позволить людям настраивать, если они посмеют.
ДепрессияДаниэль
если я хочу сделать это полностью вручную, да. Но я надеялся, что у меня будет возможность использовать Kconfig для имитации «галочки» в menuconfig, потому что это звучит так, как будто это вещь. По сути, я хочу, чтобы пользователи могли копировать требования ядра из вики Gentoo, по возможности разрешать их в правильные значения конфигурации (достаточно легко), а затем соответствующим образом обновлять конфигурацию (после пользовательского обзора, конечно). Таким образом, в этом случае нет никаких «значений по умолчанию».
SharkWipf
0

Я бы пошел на патч файла .config. Шаги, которые вы должны предпринять, чтобы подготовить это:

cp .config .config.bck
make menuconfig # Here change all that you need to fit your needs
diff -u .config.bck .config > myconfig.$(kern_vers).patch

Затем в вашем скрипте добавьте эту строку

patch .config myconfig.$(kern_vers).patch
debuti
источник