Cómo personalizar tu propio kernel de Linux
¿Por qué deberías compilar tu propio kernel? Las respuestas son las siguientes:
1 Para investigar, estudie el código fuente del kernel.
2 Admite nuevo hardware o habilita funciones del kernel.
3 Para poder actualizar el kernel a una versión más reciente.
4 Personaliza y optimiza las funciones del kernel según tus propias necesidades.
Espera, espera...
No hay necesidad de tirar una razón, así que no diré más aquí e iré directamente al tema.
Métodos para compilar el kernel
Hay muchas formas de compilar el kernel. Elija descargar el código fuente del kernel de la versión requerida desde kernel.org,
#cd /home/user/
#tar -xjvf linux-2.6.32-rc1.tar.bz2
2. Prepare el entorno de compilación
Antes de comenzar la compilación, primero asegúrese de que se hayan instalado los siguientes paquetes de software (al compilar CIMB PP 4.0, puede instalar directamente todos los paquetes de software en CD3 para asegurarse de que se cumpla esta condición).
* rpmdevtools
* yum-utils
Los sistemas Fedora se pueden instalar usando el siguiente comando:
#yum install yum-utils rpmdevtools
1. Genere un árbol de directorios que el comando rpmbuild pueda ejecutar. Puede usar el siguiente comando para completarlo o puede crear el árbol de directorios manualmente.
Comando de compilación:
#rpmdev-setuptree
Este comando generará la siguiente estructura de directorios en el directorio /usr/src/rpmbuild/ (si es no en este directorio, se genera en el directorio de usuario actual).
# árbol /usr/src/rpmbuild/
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
La parte anterior es la configuración del entorno de rpmbuild. Instale las dependencias necesarias para el paquete de código fuente del kernel (puede omitirlo aquí)
su -c 'yum-builddep kernel-lt;versiongt;.src.rpm'
4. Instale el código fuente del kernel en el sistema>
1. Descomprima el paquete del código fuente y parchee todo el contenido en el directorio BUILD
cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` kernel.
El código fuente del kernel se encontrará aquí:
/usr/src/neoshine/rpmbuild/BUILD/kernel -lt;versiongt;/linux-lt;versiongt;.lt;archgt; directorio
Configurar el código fuente del kernel
1. Ir al código fuente del kernel:
cd ~/rpmbuild/BUILD/kernel-2.6.$ver/linux-2.6.$ver.$arch
2. Copie el archivo de configuración /boot/config* al directorio del código fuente.
Copie el archivo de configuración /boot/config* al directorio del código fuente. El archivo de configuración también puede ser un archivo de configuración del kernel que haya sido configurado o respaldado en otro lugar:
cp /boot/config2.6- 2.6. .$ ver.$arch .config
3. Verifique las nuevas opciones en la configuración del kernel:
Realice la configuración del kernel anterior. p>
make oldconfig
4. Personalice la funcionalidad del kernel desactivando la opción de soporte initrd y ejecutando la utilidad de configuración gráfica del kernel:
make menuconfig
Nota: En la opción Configuración general, busque compatibilidad con el sistema RAM inicial y el disco RAM (initramfs e initrd) y descomprímalo. También asegúrese de que los controladores para el sistema de archivos y la memoria donde reside el sistema estén compilados en el kernel (de lo contrario, el sistema no arrancará).
5. Cambie la primera línea del archivo .config a lo siguiente (nota: sin esta línea, la compilación posterior informará un error)
# i386
6. Copie .config a SOURCES/:
cp .config ./SOURCES/config-$arch
Cuatro Compile el nuevo kernel
1. Empezamos a prepararnos para compilar el nuevo paquete de software del kernel
Abrir SPEC/kernel.spec
vim SPEC/kernel.spec
Modifica las siguientes líneas para personalizar el nombre de la extensión del kernel (por ejemplo, extensión del kernel (como fc10 u otra):
defina buildid .lt; el nombre de su propia versión menor del kernel>
El siguiente paso será generar uno para el nuevo paquete rpm del kernel, este proceso requiere compilar el paquete de código fuente del kernel
Utilice el siguiente comando para generar un nuevo paquete de código fuente del kernel
rpmbuild -bb --with baseonly - -sin información de depuración -- target =`uname -m`target=`uname -m`target=`uname -m`target=`uname -m`target=`uname -m`target=`uname target=`uname -m `kernel.spec p>
Descripción del parámetro: bb significa solo compilar paquetes binarios, es decir, descripción del parámetro: bb significa solo compilar paquetes binarios, es decir, no se genera ningún paquete de código fuente sin debuginfo, lo que significa que no hay información de depuración; se proporciona;
target=`uname -r` significa generar un paquete del kernel correspondiente a la plataforma actual
Si el comando anterior se completa con éxito, se generará un nuevo paquete de instalación del kernel en el directorio BUILD/i686
V Instalar nuevo kernel
rpm -ivh kernel-$ver-$arch.rpm
Este paso instalará automáticamente el kernel al directorio de inicio e instale el módulo del kernel correspondiente en el directorio / lib/$modules/ y genere el menú de inicio de grub para el nuevo kernel
Modifique el menú de inicio de grub al siguiente formato
.título nuevo kernel
kernel /.vmlinuz-$ver-$arch root=/dev/sdax(hdax)
Tenga en cuenta que uuid no debe usarse para especificar el sistema de archivos que se montará en la partición raíz.
(Es posible que el kernel no pueda montar la partición raíz, lo que provocará que el kernel falle) y no agregue parámetros relacionados con la visualización (si el kernel no admite la configuración correspondiente, solo verá una pantalla negra).
¡En este punto, la nueva configuración del kernel que deshabilita initrd está instalada!
¡En este punto, la nueva configuración del kernel que deshabilita initrd está instalada!