Red de conocimiento informático - Material del sitio web - Cómo utilizar su propio kernel de Linux compilado

Cómo utilizar su propio kernel de Linux compilado

El kernel es el núcleo del sistema operativo. Es responsable de administrar los procesos, la memoria, los controladores de dispositivos, los archivos y los sistemas de red del sistema, y ​​determina el rendimiento y la estabilidad del sistema. Como software gratuito, Linux

con el apoyo de un gran número de entusiastas, la versión del kernel se actualiza constantemente. El nuevo kernel corrige los errores del kernel anterior y agrega muchas características nuevas. Si los usuarios desean aprovechar estas nuevas características, o desean personalizar el kernel para su propio sistema

, necesitarán recompilar el kernel para hacerlo más eficiente y estable. Este artículo describe cómo compilar un kernel en Linux usando RedHat Linux 6.0 (kernel

2.2.5) como plataforma del sistema operativo.

I. Descargue el código fuente del nuevo kernel

Actualmente, hay muchos sitios web en Internet que proporcionan el código fuente de Linux. Los lectores pueden elegir un sitio web más rápido para descargar. El autor descargó el código fuente de la última versión de desarrollo del kernel de Linux 2.3.14 del sitio web www.kernelnotes.org. Todos los códigos están comprimidos en un archivo llamado Linux-2.3.14.tar.gz.

Dos: liberar el código fuente del kernel

Dado que el código fuente es un archivo comprimido, debe liberar el código fuente en el directorio especificado antes de configurar el kernel. Primero inicie sesión como usuario root e ingrese al subdirectorio /usr/src. Si los usuarios instalan el código fuente del kernel al instalar Linux, encontrarán un subdirectorio linux-2.2.5. Este directorio contiene el código fuente del kernel 2.2.5. Elimine el enlace y copie los archivos fuente del nuevo kernel en el directorio /usr/src.

(a) Utilice el comando tar para liberar el código fuente del kernel

# cd /usr/src

# tar zxvf Linux-2.3.14.tar .gz < Una vez que el archivo /p>

se haya liberado exitosamente, se creará un subdirectorio de Linux en el directorio /usr/src. Contiene el código fuente completo del kernel 2.3.14.

(ii) Vincular /usr/include/asm, /usr/inlude/linux y /usr/include/scsi a los directorios correspondientes en el directorio /usr/src/linux/include.

# cd /usr/include

# rm -Rf asm linux

# ln -s /usr/src/linux/include/asm-i386 asm

# ln -s /usr/src/linux/include/linux linux

# ln -s /usr/src/linux/include/scsi scsi

(c) Elimine los archivos .o y otros archivos dependientes que quedan en el directorio del código fuente.

# cd /usr/src/linux

# make mrproper

3: Configurar el kernel

(a) Iniciar el kernel programa de configuración.

# cd /usr/src/linux

# make config

Además de los comandos anteriores, los usuarios también pueden usar el comando make menuconfig para iniciar el Interfaz de configuración del modo menú. Si el usuario ha instalado el sistema X window, también puede ejecutar el comando make xconfig para iniciar el programa de configuración del kernel en la ventana X.

(ii) Configuración del kernel El programa de configuración del kernel de

Linux

proporciona una serie de opciones de configuración. Para cada opción de configuración, el usuario puede responder "y", "m" o "n".

Entre ellos, "y" significa que el soporte para la función o el controlador del dispositivo se compilará en el kernel; "m" significa que el soporte para la función o el controlador del dispositivo se compilará en un módulo cargable, que puede ser compilado por el sistema o usuario cuando sea necesario. Agregue este módulo al kernel; "n" indica que el kernel no proporciona soporte para la característica o el controlador

. Dado que existen muchas opciones de configuración para el kernel, este artículo sólo presenta algunas de las opciones más importantes.

1. Opciones de nivel de madurez del código

Solicitud de desarrollo y/o código/controladores incompletos

(CONFIG_EXPERIMENTAL) [N/y/?]

p>

Puede seleccionar Y si desea utilizar código o controladores que aún están en versión beta. Si desea compilar un kernel estable, seleccione "n".

1. Tipo y función del procesador

(1), serie de procesador (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC, PPro /6x86MX ) [PPro/6x86MX] Seleccione el tipo de procesador, el valor predeterminado es Ppro/6x86MX.

(2), Memoria física máxima (1GB, 2GB) [1GB] La cantidad máxima de memoria admitida por el kernel, el valor predeterminado es 1G.

(3), Emulación matemática (CONFIG_ MATH_EMULATION) [N/y/?] Emulación de coprocesador, el valor predeterminado es sin emulación.

(4), admite MTRR (registro de rango de tipo de memoria) (CONFIG_MTRR) [N/y/? ]

Al seleccionar esta opción se generará el archivo /proc/mtrr para administrar MTRR para uso del servidor X.

(5) Soporte de multiprocesamiento simétrico (CONFIG_SMP) [S/n/?]. Seleccione "y" y el kernel admitirá el multiprocesamiento simétrico.

2. Compatibilidad con módulos cargables

(1) Habilitar compatibilidad con módulos cargables (CONFIG_MODULES) [Y/n/?]. Seleccione "y" para habilitar la compatibilidad con módulos cargables en el kernel.

(2) Cargador de módulos del kernel (CONFIG_KMOD) [N/y/? ] Seleccione "y", el kernel cargará automáticamente el módulo cargable; de ​​lo contrario, el usuario deberá cargarlo manualmente.

3. Configuración general

(1) Soporte de red (CONFIG_NET) [Y/n/? Esta opción establece si el kernel proporciona soporte de red.

(2) Soporte PCI (CONFIG_PCI) [Y/n/?] Esta opción establece si el kernel proporciona soporte PCI.

(3) Modo de acceso PCI (BIOS, Directo, Cualquiera) [Cualquiera] Esta opción establece la forma en que Linux detecta los dispositivos PCI. Seleccione "BIOS" y Linux usará el BIOS; seleccione "Directo" y Linux no usará el BIOS. Seleccione "Cualquiera" y Linux detectará el dispositivo PCI directamente. Seleccione "Cualquiera" y Linux detectará el dispositivo PCI directamente y utilizará el BIOS si falla la detección.

(4) Compatibilidad con puertos paralelos (CONFIG_PARPORT) [N/y/m/?] Seleccione "y", el kernel admitirá puertos paralelos.

4. Configuración Plug and Play

(1) Compatibilidad Plug and Play (CONFIG_PNP) [Y/m/n/? ] Seleccione "y" para que el kernel configure automáticamente los dispositivos plug-and-play.

(2) Compatibilidad con ISA Plug and Play (CONFIG_ISAPNP) [Y/m/n/?] Seleccione "y" para permitir que el kernel configure automáticamente dispositivos plug and play basados ​​en el bus ISA.

5. Dispositivo de bloqueo

(1) Admite disquete de PC normal (CONFIG_BLK_DEV_FD) [Y/m/n/? ]. Seleccione "y" y el kernel proporcionará soporte para disquetes.

(2) Compatibilidad mejorada con disco/cdrom/cinta/disquete IDE/MFM/RLL (CONFIG_BLK_DEV_IDE) [Y/m/n/?] Seleccione "y", el kernel admitirá disco duro IDE mejorado, Se admiten unidades de CDROM y cintas.

6. Opciones de red

(1) Socket de paquete (CONFIG_PACKET) [Y/m/n/? ]. Cuando se selecciona "y", algunas aplicaciones utilizarán el protocolo de paquetes para comunicarse directamente con dispositivos de red sin pasar por otros protocolos intermedios en el kernel.

(2) Firewall de red (CONFIG_FIREWALL) [N/y/? ]. Seleccione "y" y el kernel admitirá firewalls.

(3) Red TCP/IP (CONFIG_INET) [Y/n/?] Seleccione "y", el kernel admitirá el protocolo TCP/IP.

(4) Protocolo IPX (CONFIG_IPX) [N/y/m/?] Seleccione "y", el kernel admitirá el protocolo IPX.

(5)Appletalk DDP (CONFIG_ATALK) [N/y/m/?]. Seleccione "y" y el kernel admitirá el protocolo Appletalk DDP.

8. Soporte SCSI

Si el usuario desea utilizar dispositivos SCSI, configure las opciones correspondientes.

9. Compatibilidad con dispositivos de red (Soporte de dispositivos de red)

Compatibilidad con dispositivos de red (CONFIG_NETDEVICES) [Y/n/?] Seleccione "y", el kernel proporcionará compatibilidad con controladores de red.

10. Ethernet (10 o 100 Mbit)

En esta configuración, el sistema proporciona muchos controladores de tarjetas de red y los usuarios solo necesitan elegir su propio controlador de tarjeta de red. Además, los usuarios pueden agregar soporte para FDDI, PPP, SLIP y LAN inalámbrica (red de área local inalámbrica) en el kernel según sea necesario.

11. Dispositivo de caracteres

(1), terminal virtual (CONFIG_VT) [Y/n/? Seleccione "y", el kernel admitirá el terminal virtual.

(2). Consola de soporte en terminal virtual (CONFIG_VT_CONNSOLE) [Y/n/? ]

Seleccione "y" para permitir que el kernel use una terminal virtual como consola del sistema.

(3) Soporte serie estándar/universal (tonto) (CONFIG_SERIAL) [Y/m/n/?]

Seleccione "y" y el kernel admitirá puertos serie.

(4), Consola de soporte en puerto serie (CONFIG_SERIAL_CONSOLE) [N/y/?]

Seleccione "y", el kernel utilizará el puerto serie como torre de control del sistema.

12. Ratón

Compatibilidad con ratón PS/2 (también conocido como "dispositivo auxiliar") (CONFIG_PSMOUSE) [Y/n/? ]. Si el usuario utiliza un mouse PS/2, esta opción debería ser "y".

13. Sistema de archivos

(1), admite cuotas (CONFIG_QUOTA) [N/y/?Seleccione "y", el kernel admitirá cuotas de disco.

(2) Soporte de contador automático del kernel (CONFIG_AUTOFS_FS) [Y/m/n/?] Seleccione "y", el kernel proporcionará soporte de contador automático para que el sistema pueda montar automáticamente el sistema de archivos remoto en puesta en marcha .

(3) Compatibilidad con DOS FAT fs (CONFIG_FAT_FS) [N/y/m/?]. Seleccione "y" y el kernel admitirá el sistema de archivos DOS FAT.

(4), compatibilidad con el sistema de archivos CDROM ISO 9660 (CONFIG_ISO9660_FS) [Y/m/n/?]

Seleccione "y", el kernel admitirá el archivo CDROM ISO 9660 sistema.

(5), compatibilidad con el sistema de archivos NTFS (solo lectura) (CONFIG_NTFS_FS) [N/y/m/?]

Seleccione "y" para permitir que los usuarios accedan a NTFS en modo de solo lectura Sistema de archivos.

(6) Soporte del sistema de archivos /proc (CONFIG_PROC_FS) [Y/n/?] /proc es un sistema de archivos virtual utilizado para almacenar el estado de ejecución del sistema Linux. Se debe seleccionar "y". este artículo.

(7) Soporte para el segundo sistema de archivos extendido (CONFIG_EXT2_FS) [Y/m/n/?] EXT2 es el sistema de archivos estándar de Linux y también se debe seleccionar "y" para este elemento.

14. Sistema de archivos de red

(1) Compatibilidad con el sistema de archivos NFS (CONFIG_NFS_FS) [Y/m/n/? Seleccione "y", el kernel admitirá el sistema de archivos NFS.

(2) Compatible con el sistema de archivos SMB (montar recurso compartido WfW, etc.) (CONFIG_SMB_FS)

Seleccione "y", el kernel admitirá el sistema de archivos SMB.

(3) Compatible con el sistema de archivos NCP (montar volumen NetWare) (CONFIG_NCP_FS)

Seleccione "y", el kernel admitirá el sistema de archivos NCP.

15. Tipo de partición

Esta opción admite algunos tipos de partición menos utilizados. Si es necesario, el usuario puede seleccionar "y" en la opción correspondiente.

16. Controlador de consola

Consola de texto VGA (CONFIG_VGA_CONSOLE) [Y/n/?Seleccione "y", los usuarios pueden usar Linux en una pantalla VGA estándar.

17. Sonido

Soporta tarjeta de sonido (CONFIG_SOUND) [N/y/m/?]. Seleccione "y" para permitir que el kernel proporcione soporte para tarjetas de sonido.

18. Intrusión del kernel

Clave Magic SysRq (CONFIG_MAGIC_SYSRQ) [N/y/? Seleccione "y" para permitir al usuario controlar parcialmente el sistema. Normalmente se selecciona "n".

4. Compile el kernel

(a) Cree los archivos dependientes necesarios para la compilación

# cd /usr/src/linux

# make dep

(b) Borra los archivos de destino compilados por el kernel

# make clean

(c) Compila el kernel<

# make zImage

Después de que el kernel se haya compilado exitosamente, el nuevo archivo de imagen del kernel zImage se generará en el directorio /usr/src/linux/arch/i386/boot. Si el kernel que se va a compilar es muy grande, el sistema le solicitará que utilice el comando make bzImage para compilar. En este punto, el compilador generará un archivo de imagen del kernel llamado bzImage.

(iv) Compilar módulos cargables

Si el usuario configura módulos cargables al configurar el kernel, estos módulos deben compilarse para que puedan cargarse usando el comando insmod en el futuro .

# make module

# make modelus_install

Después de una compilación exitosa, se generará un subdirectorio 2.3.14 en el directorio /lib/modules, que contiene el nuevo Todos los módulos cargables del kernel.

V. Inicie el nuevo kernel

(a) Copie el nuevo kernel y el archivo System.map en el directorio /boot

# cp /usr/src / linux/arch/i386/boot/bzImage /boot/vmlinuz-2.3.14