Automatycznie odpowiadaj na wartości domyślne podczas wykonywania polecenia „make oldconfig” w drzewie jądra


36

Czy budując nowe jądro w oparciu o poprzednią konfigurację, istnieje sposób na zautomatyzowanie make oldconfigprocesu, aby ustawiał nowe opcje na wartości domyślne?

Edycja: Mam na myśli to, że gdy używasz .config (z /boot/config-*lub /proc/config.gz) na nowszym jądrze, make oldconfigproces zapyta czy chcesz włączyć opcje, które nie były dostępne w twoim starszym jądrze. Możesz odpowiedzieć T / n / m lub naciśnij klawisz Enter, aby zaakceptować wartość domyślną. Chciałbym automatycznie zaakceptować ustawienia domyślne bez interakcji użytkownika.


@ jscott To tylko „naciśnij enter” dla pierwszego pytania, nie wszystkie. Możesz użyć polecenia „tak”, aby wydrukować ciąg w nieskończoność.
Laurent Parenteau

Odpowiedzi:


37

Użyj polecenia:

yes "" | make oldconfig

Polecenie „tak” wielokrotnie wyświetla wiersz ze wszystkimi określonymi ciągami lub domyślnie „y”.

Możesz więc użyć go po prostu do „wciśnięcia enter”, co spowoduje użycie domyślnej wartości dla polecenia „make oldconfig”.


Ahh, nie wiedziałem, że polecenie „tak” może wygenerować dowolny ciąg. Dziękuję Ci!
Jean-Francois Chevrette

3
To jest fenomenalne.
Ivan X

1
Odpowiedź jest znacznie lepszym pomysłem serverfault.com/a/538150/18822
Evan Carroll

56
make olddefconfig

jest tym, czego chcesz. Z pomocy ( make helpw katalogu źródła jądra)

olddefconfig - Taki sam jak silentoldconfig, ale ustawia nowe symbole na ich wartość domyślną


Szukałem czegoś takiego od dłuższego czasu ... bardzo dziękuję!
Jafar Kofahi

Która wersja Linuksa to przyszła? Po prostu ciekawy. Obecnie obsługuję starą wersję (3.0) i jeszcze jej nie ma.
clacke

1
To powinna być poprawna odpowiedź.
suprjami

0

Tak. Jest przechowywany w „.config” na najwyższym poziomie katalogu źródłowego.

Dodatkowo, jeśli używasz jądra dystrybucji, niektóre dystrybucje, takie jak RedHat, przechowują go w katalogu / boot / config - $ (uname -r). (wersja jądra) [1]

Wreszcie, jeśli skompilowany w uruchomionym jądrze, jest dostępny w /proc/config.gz. Zapominam, która wersja wprowadziła tę opcję.

[1] Te opcje:

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y 

Edytować

Sprawdź /usr/src/linux/kernel/Documentation/kbuild/kconfig.txt (lub odpowiednią ścieżkę). Możesz użyć niektórych z ich zaleceń, aby napisać rozwiązanie. Użyłbym kombinacji skryptów i textutils, aby osiągnąć to, co opisujesz.

Edytuj 2

Dodatkowo jest to zły pomysł. Co się stanie, jeśli opcjonalna obsługa sprzętu zmieni się w Twoim środowisku, ale nie będzie domyślna? Co się stanie, jeśli wystąpią negatywnie wpływające zmiany? To naprawdę powinno być interaktywne. Możesz dokonać konfiguracji i zautomatyzować resztę.

„make silentoldconfig” jest nieco mniej gadatliwy, co może być pomocne. Nadal jest interaktywny.


Nie o to mi chodzilo. Dodałem więcej szczegółów do mojego pytania, aby wyjaśnić, co chcę osiągnąć.
Jean-Francois Chevrette

0

make silentoldconfig


2
make silentoldconfig jest nadal interaktywny, jest po prostu mniej gadatliwy
Laurent Parenteau
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.