LinuxParty
Fedora tiene como objetivo proporcionar un kernel con tantas opciones de configuración habilitadas como sea posible. A veces, los usuarios pueden querer cambiar esas opciones para probar o para una característica que Fedora no admite. Esta es una breve guía sobre cómo se generan las configuraciones del kernel y cómo realizar mejor los cambios para un kernel personalizado.
Encontrar los archivos de configuración
Fedora genera configuraciones de kernel usando una jerarquía de archivos. Las opciones de kernel comunes a todas las arquitecturas y configuraciones se enumeran en archivos individuales en baseconfig . Los subdirectorios de baseconfig pueden anular la configuración según sea necesario para las arquitecturas. Como ejemplo:
$ find baseconfig -name CONFIG_SPI
baseconfig/x86/CONFIG_SPI
baseconfig/CONFIG_SPI
baseconfig/arm/CONFIG_SPI
$ cat baseconfig/CONFIG_SPI
# CONFIG_SPI is not set
$ cat baseconfig/x86/CONFIG_SPI
CONFIG_SPI=y
$ cat baseconfig/arm/CONFIG_SPI
CONFIG_SPI=y
Como se muestra arriba, CONFIG_SPI está inicialmente desactivado para todas las arquitecturas, pero x86 y arm lo habilitan.
El directorio debugconfig contiene opciones que se habilitan en las compilaciones de depuración del kernel. El archivo config_generation enumera el orden en el que se combinan y anulan los directorios para realizar configuraciones. Después de cambiar una configuración en uno de los archivos individuales, debe ejecutar el script build_configs.sh para combinar los archivos individuales en archivos de configuración. Estos existen en kernel-$flavor.config.
Al reconstruir un kernel personalizado, la forma más fácil de cambiar las opciones de configuración del kernel es ponerlas en kernel-local. Este archivo se fusiona automáticamente al compilar el kernel para todas las opciones de configuración. Puede configurar las opciones para que estén deshabilitadas ( #CONFIG_FOO is not set ), habilitadas ( CONFIG_FOO=y ) o modulares ( CONFIG_FOO=M ) en kernel-local .
Detectar y corregir errores en sus archivos de configuración
El proceso de construcción del kernel de Fedora realiza algunas comprobaciones básicas en los archivos de configuración para ayudar a detectar errores. Por defecto, el kernel de Fedora requiere que todas las opciones del kernel estén configuradas explícitamente. Un error común ocurre cuando la habilitación de una opción del kernel expone otra opción que debe configurarse. Esto produce errores relacionados con .newoptions , por ejemplo:
+ Arch=x86_64 + grep -E '^CONFIG_' + make ARCH=x86_64 listnewconfig + '[' -s .newoptions ']' + cat .newoptions CONFIG_R8188EU + exit 1 error: Bad exit status from /var/tmp/rpm-tmp.6BXufs (%prep) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.6BXufs (%prep)
Para corregir este error, establezca explícitamente las opciones ( CONFIG_R8188EU en este caso) también en kernel-local .
Otro error común es configurar una opción de forma incorrecta. El verificador de dependencias de Kconfig del kernel cambia silenciosamente las opciones de configuración que no son las esperadas. Esto sucede comúnmente cuando una opción selecciona otra opción o tiene una dependencia que no se satisface. Fedora intenta una verificación básica de cordura de que las opciones especificadas en el árbol coincidan con lo que espera el motor de configuración del kernel. Esto puede producir errores relacionados con discrepancias:
+ ./check_configs.awk configs/kernel-4.13.0-i686-PAE.config temp-kernel-4.13.0-i686-PAE.config + '[' -s .mismatches ']' + echo 'Error: Mismatches found in configuration files' Error: Mismatches found in configuration files + cat .mismatches Found CONFIG_I2C_DESIGNWARE_CORE=y after generation, had CONFIG_I2C_DESIGNWARE_CORE=m in Fedora tree + exit 1
En este ejemplo, la configuración de Fedora especificó:
CONFIG_I2C_DESIGNWARE_CORE=m, pero el motor de configuración del kernel lo configuró en CONFIG_I2C_DESIGNWARE_CORE=y. El motor de configuración del kernel es en última instancia lo que se usa, por lo que la solución es cambiar la opción a lo que espera el kernel ( CONFIG_I2C_DESIGNWARE_CORE=y en este caso) o investigar más a fondo qué está causando la configuración inesperada.
Una vez que las opciones de configuración del kernel estén configuradas a su gusto, puede seguir los procedimientos de compilación estándar del kernel para compilar su kernel personalizado.
-
Linux
- Cambiar la Hora y la Fecha al sistema Linux
- Montar un directorio remoto, vía NFS, en Linux
- Predicciones de Linux para 2025
- Elementary OS 8: una distribución de Linux para usuarios de Windows y macOS
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- Mis predicciones sobre Linux para 2025: será un buen año
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad