nuevo en fedora

Gain Paolo Mureddu gmureddu at prodigy.net.mx
Tue Jan 31 00:13:06 UTC 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

icarus ic wrote:

> Tengo una duda..
>
> En slack puedo compilar dos kernels y hacer que convivan, me
> imagino que en fedora tambien se puede. La verdad que he intentado
> el manual que viene en
> http://fedora.redhat.com/docs/release-notes/fc4/#sn-kernel donde me
> dice como compilarlo. Mis preguntas son:
>
> 1. ¿Cómo le hago para que fedora me reconozca el kernel nuevo
> compilado? ¿Tengo que cargarlo en el grub o lo reconoce
> automáticamente?
>
> 2. ¿Como le hago para hacer un rpm binario del kernel?
>
> Espero me puedan ayudar, ya que esta distribución se me hace
> bastante inteligente y rápida.

Bien, si ya te sientes cómodo haciendo kernels, puedes hacer lo mismo
con Fedora. Para compilar un kernel de la manera tradicional:

1.- Consigue las fuentes en kernel.org
2.- Aplica los parches que quieras utilizar.
3.- Configura tu kernel
4.- Compila. La forma en que yo en lo personal lo hago (luego de haber
configurado y todo ese rollo) es:
'make bzImage modules modules_install install' (todo en la misma línea).

Cuando instalas un kernel con 'make install', se añade automáticamente
a GRUB, sin embargo, el comportamiento por defecto es NO hacer de ese
kernel el kernel por defecto, así que para ello tendrías que editar
/etc/grub.conf (un symlink a /boot/grub/grub.conf).

Para compilar un kernel en formato RPM, lo mejor que puedes hacer es
primero asegurarte de tener un entorno para construir "sano", es
decir, que puedas construir como usuario. Para ello, el archivo
~/.rpmmacros es necesario. Lo   que dicho archivo debe contener es
algo similar a esto:

# ~/.rpmmacros
%packager %(echo "$USER")
%_topdir %(echo "$HOME")/rpmbuild

Así es como está el mío. En mi caso ~/rpmbuild es el directorio donde
se instalarán los archivos .src.rpm por defecto, cuando llamo el
comando rpm como usuario, y se trata de un paquete .src.rpm
*unicamente*. Dentro de este directorio (puede ser el que tu elijas,
realmente), tendrás que recrear el árbol de directorios de
/usr/src/redhat, es decir, los directorios BUILD, RPMS, SOURCES,
SPECS, SRPMS y sus subdirectorios, lo que yo hice fue copiar
/usr/src/redhat a mi ruta y listo (cp -R /usr/src/redhat/* ~/rpmbuild/).

Ya con esto en su lugar, puedes comenzar a estudiar un paquete de
kernel en formato src.rpm, los archivos se "instalarán" en
%_topdir/SOURCES y %_topdir/SPECS. En el mundo RPM la forma de
construir es a través de una guía, como un script que le dice a rpm
qué hacer, cuando instales el kernel-<versión>.src.rpm, tendrás los
archivos en los directorios antes mencionados. El archivo
kernel-2.6.spec estará en el SPECS y el resto de las fuentes y lo
archivos de configuración estarán en SOURCES.

En el caso particular del kernel, los archivos de configuración son
probados para la arquitectura, esto lo lograron los chicos de Fedora y
Red Hat anteponiendo un comentario como primera línea de los archivos
de configuración con la arquitectura (p. ej. # i386 para x86 o #
x86_64 para AMD64). Te recomiendo que te leas el libro en línea
"Maximum RPM" que está en la página de Red Hat en el área de
documentación. No está que digas super actualizado, pero te dará idea
general de qué necesitas para hacer paquetes RPM.

Una vez que ya hayas entendido cómo funcionan los archivos .spec y
hayas hecho tus cambios, para construir tu paquete es ciertamente simple:

rpmbuild -bb --target=<arch> <ruta_a_archivo>.spec

donde -bb significa "build binary" (construye binario) y --target
(objetivo) es la arquitectura para la que quieras construir el kernel;
estos datos se obtienen del archivo .spec, espero no te haya "hecho
bolas" con esta brevísima explicación sobre los paquetes RPM.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFD3quSXM+XOp70dwoRAg0uAJ0dVA9RnAYtIul08QMaPF9EJgySHACfZI0Y
OSSbYM4lwQ5atNww3Fdv4sw=
=Il3w
-----END PGP SIGNATURE-----




More information about the Fedora-es-list mailing list