Linux kernel en un RPM

Con la colaboración de Elias Rincón (chinazo), 300409.


Compilación del kernel de linux

El kernel de linux se puede compilar ya sea de forma tradicional o utilizando las herramientas de las diferentes distribuciones, Debian o Fedora.  El documento inicia con la suposición que ha sido compilado de forma tradicional en una distribución de Fedora.



Herramientas

Serán necesario que el sistema de gestión de RPMs haya sido instalado. En una instalación tradicional de Fedora se instalan por defecto:

#rpm -qa | grep
rpmdevtools-4.6.0.0.rc1.7.i386
rpm-devel-4.6.0.0.rc1.7.i386
rpm-python-4.6.0.0.rc1.7.i386
rpm-libs-4.6.0.0.rc1.7.i386
rpm-build
-4.6.0.0.rc1.7.i386

En caso de que no se encuntre alguno de ellos se instala con el yum:

#yum install rpm-build




Archivo de especificaciones

Las especificaciones del archivo RPM se definen en un archivo de texto plano:

#vim mikernel.spec

Agregamos las especificaciones necesarias, Elias nos muestra la suya:


Name: miKernel
Summary: Kernel de Linux, nucleo del Sistema Operativo
Version: 2.6.27.4
Release: chinazo.23
License: GPL
Group: Kernel
Vendor: The Linux Community - mod por chinazo.
URL: http://elias.exofire.net
BuildRoot: /var/tmp/%{name}-%{PACKAGE_VERSION}-root
Provides: kernel-2.6.27.4-chinazo.23

%description
Kernel de Linux modificado por Elias Rincon Cruz [aka chinazo]
%build
%install
mkdir -p $RPM_BUILD_ROOT/boot
mkdir -p $RPM_BUILD_ROOT/lib/modules
cp /boot/System.map-2.6.27.4-chinazo.23
  $RPM_BUILD_ROOT/boot/System.map-2.6.27.4-chinazo.23
cp /boot/initrd-2.6.27.4-chinazo.23.img
  $RPM_BUILD_ROOT/boot/initrd-2.6.27.4-chinazo.23.img
cp /boot/vmlinuz-2.6.27.4-chinazo.23 $RPM_BUILD_ROOT/boot/vmlinuz-2.6.27.4-chinazo.23
cp -r /lib/modules/2.6.27.4-chinazo.23/ $RPM_BUILD_ROOT/lib/modules/
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%dir
/lib/modules
/boot


Notas: 2.6.27.4-chinazo.23 es una versión de ejemplo, será necesario respetar el nombramiento de cada distribución


Creación del RPM

El archivo con las especificaciones es utilizado por la herramienta rpmbuild para la creación del RPM:

#rpmbuild -bb mikernel.spec

Se creará un archivo RPM con el nombre definido en el archivo .spec, en la ruta de construcción:

/usr/src/redhat/RPMS/i386

El paquete puede ser incluido en un repositorio, o para la creación de un LiveCD y funcionará como cualquier paquete RPM basado en Red Hat o Fedora