Автоматический ответ на значения по умолчанию при выполнении make makeconfig в дереве ядра

При сборке нового ядра на основе предыдущей конфигурации, есть ли способ автоматизировать make oldconfig обрабатывать так, чтобы он устанавливал новые параметры в их значения по умолчанию?

Изменить: что я имею в виду, что при использовании.config (из /boot/config-* или же /proc/config.gz) на более новом ядре make oldconfig Process спросит, хотите ли вы включить опции, которые не были доступны в вашем старом ядре. Вы можете ответить Y/ N / M или нажмите Enter, чтобы принять значение по умолчанию. Я хотел бы принять значения по умолчанию автоматически без взаимодействия с пользователем.

4 ответа

make olddefconfig

это то, что вы хотите. С помощью (make help в исходном коде ядра dir)

olddefconfig - такой же, как silentoldconfig, но для новых символов устанавливается значение по умолчанию

Используйте команду:

yes "" | make oldconfig

Команда 'yes' многократно выводит строку со всей указанной строкой, или 'y' по умолчанию.

Таким образом, вы можете использовать его, чтобы просто "нажать ввод", что приведет к использованию значения по умолчанию для команды "make oldconfig".

Да. Он хранится в ".config" на верхнем уровне исходного каталога.

Кроме того, если используется ядро ​​дистрибутива, некоторые дистрибутивы, такие как RedHat, хранят его в /boot/config-$(uname -r). (версия ядра) [1]

Наконец, если скомпилировано в ядре, которое вы используете, оно доступно в /proc/config.gz. Я забыл, какая версия представила эту опцию.

[1] Эти опции:

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y 

редактировать

Проверьте /usr/src/linux/kernel/Documentation/kbuild/kconfig.txt (или соответствующий путь). Вы можете использовать некоторые из их рекомендаций, чтобы составить сценарий решения. Я бы использовал комбинацию сценариев и textutils, чтобы выполнить то, что вы описываете.

Редактировать 2

Как дополнительное примечание, это плохая идея. Что если дополнительная поддержка оборудования, уникальная для вашей среды, изменится, но не будет по умолчанию? Что делать, если происходят негативные изменения? Это действительно то, что должно быть интерактивным. Вы можете сделать конфигурацию и автоматизировать остальное.

"make silentoldconfig" немного менее многословен, что может быть полезно. Это все еще интерактивно.

make silentoldconfig

Хотя это старый вопрос, я так и не нашел хорошего ответа на вопрос OP.

Я нашел другой способ обойти интерактивные вопросы; вместо исправления.config я исправляю файл defconfig, т.е.

make ARCH=arm mrproper
patch -N -p1 < ../../patches/autofs.patch || true
make ARCH=arm xilinx_zynq_defconfig
make ARCH=arm UIMAGE_LOADADDR=0x8000 uImage
make ARCH=arm modules
make ARCH=arm INSTALL_MOD_PATH=target modules_install

Патч в моем случае:

--- a/arch/arm/configs/xilinx_zynq_defconfig    2019-12-12 08:31:42.985777534 +0100
+++ b/arch/arm/configs/xilinx_zynq_defconfig    2019-12-12 08:31:46.695777606 +0100
@@ -221,6 +221,7 @@
 CONFIG_XILINX_PR_DECOUPLER=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
+CONFIG_AUTOFS4_FS=y
 # CONFIG_DNOTIFY is not set
 CONFIG_MSDOS_FS=y
 CONFIG_VFAT_FS=y

Таким образом не возникает никаких вопросов.

Другие вопросы по тегам