2012-06-23 10 views
5

Intenté usar make defconfig para compilar el kernel, pero como era de esperar, no se inició. Me preguntaba qué archivo .config usan los proveedores de kernel como Canonical para Ubuntu, que el kernel puede arrancar directamente desde el primer momento. Por supuesto, todavía soy un principiante y configuro varios parámetros, actualmente estoy un poco fuera de mi alcance.¿Cómo obtengo el archivo .config correcto para compilar la fuente de kernel de Linux específica para mi hardware?

Específicamente, estoy buscando cargar un "hola, mundo" básico. módulo a mi núcleo en ejecución 2.6.32.41. Para eso, necesitaría compilar kernels source en el mismo archivo .config que se utilizó para el kernel en ejecución.

Respuesta

5

No sé cómo obtener el que es "correcto para su hardware", pero puede usar la configuración que Ubuntu le brinda al buscar en /boot/ un archivo que comienza con el nombre config. Puede haber más de uno, en cuyo caso use el comando uname -r para indicar qué núcleo está ejecutando actualmente, y luego puede usar la configuración apropiada.

0

"defconfig" generalmente está vinculado al hardware comúnmente utilizado - x86, o x86_64, y tal vez no tan reciente chipset o placa base. A veces, al igual que mi laptop Lenovo, solo la última fuente del kernel, y con habilitar alguna opción de configuración, después de buscar en la base de datos de bugzilla, funcionará.

Al igual que Jeff Welling dijo, para obtener la configuración en uso, puede buscar en el directorio/boot. Lo mismo para mi Fedora Core también. Pero si desea compilar un programa básico como un "módulo kernel", y con eso simplemente significa "módulo de kernel cargable", no necesita compilar el código fuente del kernel. Solo necesito los encabezados del kernel para esa versión actual. Por ejemplo, "apt-cache search" en Ubuntu 10.04 retornos varias opciones posibles:

linux-headers-2.6.38 - Header files related to Linux kernel, specifically, 
linux-libc-dev - Linux Kernel Headers for development 

Ubuntu normalmente parcheado el núcleo de valores (de kernel.org) para tener su propio núcleo. Si ha descargado el kernel de stock, e intenta utilizar el archivo de configuración de/boot (o a veces puede encontrar la configuración cargada actualmente como /proc/config.gz, como Ubuntu de Backtrack, que se basa en 10.04 LTS), entonces u puede necesitar hacer un "make oldconfig" con el archivo de configuración actual nombrado como ".config". "make oldconfig" usará .config para generar un nuevo .config que sea compatible con la fuente del kernel.

13

Si su núcleo en ejecución fue compilado con la opción CONFIG_IKCONFIG_PROC, se puede obtener la configuración en /proc/config.gz:

$ zcat /proc/config.gz >my_config 

Copia my_config en su directorio de construcción del núcleo como .config y ejecutar make config que se le solicite opciones de configuración que están ausente de su archivo de configuración (esto solo ocurrirá si está usando una fuente del núcleo que es más reciente que su kernel en ejecución). Entonces debería poder compilar un nuevo kernel con las mismas características que su actual.

Las distribuciones generalmente usan su propia configuración de kernel, donde la mayoría de los controladores se compilan como módulos para ser cargados dinámicamente cuando se solicita el hardware correspondiente. Además, el kernel necesita ser iniciado con opciones de arranque relevantes (como el que especifica el sistema de archivos raíz). Su kernel defconfig probablemente no pudo arrancar debido a eso.

5

option1:

código fuente de su sistema de bota

cd /usr/src/linux-headers-3.2.0-29; 

esto generará .config

sudo make oldconfig; 
vi .config 

opcion2:

zcat /proc/config.gz > my_config 

opción3:

echo /boot/config* > my_config 
+0

en algún momento .oldconfig se encuentra en el interior cd/usr/src/kernel; – ashish

Cuestiones relacionadas