Автоматично відповідати за замовчуванням, виконуючи "make oldconfig" на дереві ядра


36

Створюючи нове ядро ​​на основі попереднього конфігурації, чи є спосіб автоматизувати make oldconfigпроцес, щоб він встановив нові параметри до їх значень за замовчуванням?

Редагувати: Я маю на увазі те, що при використанні .config (від /boot/config-*або /proc/config.gz) на більш новому ядрі make oldconfigпроцес запитає , чим більше, чи не хочете ви, щоб увімкнути параметри, які були недоступні у вашому старшому ядрі. Ви можете відповісти Y / n / m або натиснути клавішу Enter, щоб визначити типовим. Я хотів би приймати типові настройки автоматично без взаємодії з користувачем.


@jscott Це було б лише "натиснути Enter" для першого питання, не для всіх. Ви можете використовувати команду "так", щоб рядок друкувався нескінченно.
Лоран Паренто

Відповіді:


37

Використовуйте команду:

yes "" | make oldconfig

Команда "так" кілька разів виводить рядок зі всіма вказаними рядками або "y" за замовчуванням.

Отже, ви можете використовувати його для простого "натискання клавіші", що призведе до використання значення за замовчуванням для команди "make oldconfig".


Ах, я не знав, що команда "так" може вивести будь-який рядок. Дякую!
Жан-Франсуа Шеврет

3
Це феноменально.
Іван X

1
Відповідь набагато краща ідея serverfault.com/a/538150/18822
Еван Керролл

56
make olddefconfig

це те, що ти хочеш. З довідки ( make helpу режимі джерела ядра)

olddefconfig - Те саме, що silentoldconfig, але встановлює нові символи за замовчуванням


Я шукав щось подібне деякий час ... спасибі багато!
Джафар Кофахі

До якої версії Linux це надійшло? Просто цікаво. Зараз я обробляю стару версію (3.0), але її ще немає.
клак

1
Це має бути правильна відповідь.
suprjami

0

Так. Він зберігається у ".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 (або відповідний шлях). Ви можете використовувати деякі їхні рекомендації для написання рішення. Я б використав поєднання сценаріїв і текстилів, щоб досягти того, що ви описуєте.

Редагувати 2

В якості додаткової примітки це погана ідея. Що робити, якщо додаткова апаратна підтримка, унікальна для вашого середовища, змінюється, але не є за замовчуванням? Що робити, якщо негативно впливають зміни? Це дійсно те, що має бути інтерактивним. Ви можете зробити конфігурацію та автоматизувати решту.

"make silentoldconfig" - це трохи менш багатослівний, який може бути корисним. Він все ще є інтерактивним.


Це я не мав на увазі. Я додав більше деталей до свого питання, щоб пояснити, чого хочу досягти.
Жан-Франсуа Шеврет

0

make silentoldconfig


2
зробити silentoldconfig все ще інтерактивно, це просто менш багатослівно
Лоран Паренто
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.