Responde automáticamente los valores predeterminados al hacer 'make oldconfig' en un árbol de kernel


36

Al construir un nuevo kernel basado en una configuración anterior, ¿hay alguna forma de automatizar el make oldconfigproceso para que establezca nuevas opciones a sus valores predeterminados?

Editar: lo que quiero decir es que cuando se utiliza un .config (desde /boot/config-*o /proc/config.gz) en un kernel más nuevo, el make oldconfigproceso le preguntará si desea habilitar opciones que no estaban disponibles en su kernel anterior. Puede responder S / n / mo presionar enter para aceptar el valor predeterminado. Me gustaría aceptar los valores predeterminados automáticamente sin interacción del usuario.


@jscott Esto solo "presionar enter" para la primera pregunta, no todas. Puede usar el comando 'sí' para que se imprima una cadena de forma indiferente.
Laurent Parenteau

Respuestas:


37

Usa el comando:

yes "" | make oldconfig

El comando 'sí' genera repetidamente una línea con toda la cadena especificada, o 'y' por defecto.

Por lo tanto, puede usarlo para simplemente "presionar enter", lo que dará como resultado el uso del valor predeterminado para el comando 'make oldconfig'.


Ahh, no sabía que el comando 'sí' podía generar una cadena. ¡Gracias!
Jean-Francois Chevrette

3
Esto es fenomenal.
Ivan X

1
La respuesta es una idea mucho mejor serverfault.com/a/538150/18822
Evan Carroll

56
make olddefconfig

es lo que quieres De la ayuda ( make helpen el directorio fuente del núcleo)

olddefconfig: igual que silentoldconfig pero establece nuevos símbolos en su valor predeterminado


He estado buscando algo como esto por un tiempo ... ¡muchas gracias!
Jafar Kofahi

¿Qué versión de Linux llegó esto? Sólo curioso. Actualmente estoy manejando una versión anterior (3.0) y todavía no la tiene.
clacke

1
Esta debería ser la respuesta correcta.
suprjami

0

Sí. Se almacena en ".config" en el nivel superior del directorio de origen.

Además, si usa el núcleo de distribución, algunas distribuciones como RedHat lo almacenan en / boot / config - $ (uname -r). (versión del núcleo) [1]

Finalmente, si está compilado en el núcleo que está ejecutando, está disponible en /proc/config.gz. Olvidé qué versión introdujo esta opción.

[1] Estas opciones:

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y 

Editar

Consulte /usr/src/linux/kernel/Documentation/kbuild/kconfig.txt (o la ruta adecuada). Puede usar algunas de sus recomendaciones para escribir una solución. Usaría una combinación de scripts y textutils para lograr lo que usted describe.

Editar 2

Como nota adicional, esta es una mala idea. ¿Qué sucede si el soporte de hardware opcional único para su entorno cambia pero no es predeterminado? ¿Qué sucede si se producen cambios que impactan negativamente? Esto realmente es algo que debería ser interactivo. Puede hacer la configuración y automatizar el resto.

"make silentoldconfig" es un poco menos detallado, lo que podría ser útil. Todavía es interactivo.


Eso no es lo que quise decir. He agregado más detalles a mi pregunta para explicar lo que quiero lograr.
Jean-Francois Chevrette

0

make silentoldconfig


2
make silentoldconfig sigue siendo interactivo, es menos detallado
Laurent Parenteau
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.