Quiero automatizar una acumulación de Linux pero con el tiempo llegar a un punto en el que se necesita para ejecutar lo que parece ser un paso muy Manual: make menuconfig. ¿Esto parece sincronizar las configuraciones entre el SO y las configuraciones del núcleo?
cp git-tracked-config .config
make defconfig
make menuconfig # <- how to automate/script this?
make V=s
Básicamente, ¿cómo puedo eliminar la llamada a make menuconfigun script de compilación?
Por otro lado, esto es en reacción a un error de compilación que parece suceder cuando ejecuto sin siquiera llamar a make menuconfig:
make[1]: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
Lo que parece ser que falta una regla en un archivo MAKE quizás porque el archivo MAKE NO existe o el archivo MAKE no se ha generado / transformado para contener esa regla, pero esa es una pregunta separada.
Podría haber una forma más inteligente de abordar esto en conjunto. ¿Hay otras configuraciones que no estoy rastreando pero que debería (por ejemplo, oldconfig)?
fuente

make olddefconfig?Respuestas:
El sistema de compilación del kernel de Linux proporciona muchos objetivos de compilación, la mejor manera de conocerlo es probablemente hacer lo siguiente
make help:Como dice jimmij en los comentarios, las partes interesantes están en los
oldconfigobjetivos relacionados.Personalmente, le recomendaría que lo haga
silentoldconfig(si nada cambió en el.configarchivo oolddefconfigsi actualizó su.configarchivo con un nuevo núcleo.fuente
randconfigMe sorprendió. ¿Presumiblemente usado para probar construcciones generando combinaciones poco probables?make randconfig? (en el sitio web 'Ask Ubuntu').merge_config.shfragmentos de configuraciónLa sustitución de procesos no funciona desafortunadamente:
por: https://unix.stackexchange.com/a/164109/32558
merge_config.shes un front-end simple para elmake alldefconfigobjetivo.Cuando se realiza una compilación cruzada, se
ARCHdebe exportar cuando se ejecutamerge_config.sh, por ejemplo:El archivo de salida combinado se puede especificar explícitamente con la
KCONFIG_CONFIGvariable de entorno; de lo contrario, solo sobrescribe.config:Buildroot lo automatiza con
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES: /programming/1414968/how-do-i-configure-the-linux-kernel-within-buildrootRelacionado: /programming/7505164/how-do-you-non-interactively-turn-on-features-in-a-linux-kernel-config-file
fuente
Tuve este mismo problema ya que quería actualizar mi núcleo CentOS y necesitaba hacerlo en varias máquinas. Supongamos aquí que mi nuevo árbol de kernel CentOS está en /linux-5.1 (estoy conectado a la cuenta raíz)
cd /linux-5.1make menuconfigy realizar sus cambios y guardarlos en.config/linux-5.1/.configarchivo a tu servidor de desarrollo.configel archivo desde el servidor de desarrollo de/linux-5.1/.configla nueva máquina.Espero que esto ayude a alguien en la misma situación.
fuente