LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

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.

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías