Copy Link
Add to Bookmark
Report

7 Compilando Linux Kernel

eZine's profile picture
Published in 
FIH EziNe
 · 1 year ago

|-----------------------------------------------------------------------------------------------| 
| Compilando Kernel |
|-----------------------------------------------------------------------------------------------|
| 03-02-2003 | | Cuantico |
|-----------------------------------------------------------------------------------------------|
| _____ ___ _ _ _____ _ |
| | ___|_ _| | | | | ____|___(_)_ __ ___ |
| | |_ | || |_| | | _| |_ / | '_ \ / _ \ |
| | _| | || _ | | |___ / /| | | | | __/ |
| |_| |___|_| |_| |_____/___|_|_| |_|\___| |
| cuantico@orangemail.com.do |
| |
|-----------------------------------------------------------------------------------------------|

Bueno, a travez de todas las luchas que he cogido con mi linux (no es q sea dificil), pero al tener un winmodem, mas si es pctel, se daran cuenta de la tremenda lucha q se coje, en fin he aprendido bastante.

Es una de las cosas primordiales, que todos ustedes al iniciarse y los iniciados ya deben de saber.. Claro como compilar el linux.

Primero que todo tu linux (cualquiera q tengas instalado), trae la maginifica opcion de que tu mismo puedas compilar tu kernel ( nucleo de linux ), y asi acomodarlo a tus propias necesidades (hardware, etc :P), ya que al instalar tu sistema operativo, ya lo trae preocompilado por supuesto. pero tiene un "pero", y es que viene con las configuraciones mas comunes, muchas veces te detecta la tarjeta de sonido, y no se escucha, pero entonces debe activar su soporte en la configuracion del kernel (solo un ejemplo, para que me entiendas)

A compilar!!, por pasos...

Abre tu consola y has lo siguiente.
(claro lo que esta luego del "[cuantico@localhost cuantico]")

[cuantico@localhost cuantico] cd /usr/src/linux

Si al hacer esto te dice que no se encuentra ningun directorio con tal nombre, resulta que este no esta creado, lo creas de la siguiente manera:

Claro debes pasarte a root antes, tecleando la palabra "su":

[cuantico@localhost cuantico] su 
Password: *************

ahi:

[cuantico@localhost src] md linux 
(para crear el directorio)

Ya esta creado el directorio, pero al ser nuevo, si entras a el te daras cuenta que esta vacío (compruebalo, "dir linux"), necesitamos "linkearlo" (enlazarlo), al directorio de tu linux precompilado (o ya compilado), que debe ser algo como: /usr/src/linux-2.4.18 (no tiene que ser asi, el 2.4.18 es la version del tuyo, por lo que no es seguro q sea el mismo), en fin, lo que tienes q hacer para enlazarlo es:

[cuantico@localhost src] ln -s /usr/src/linux-VERSION-DEL-TUYO /usr/src/linux

Aca ya podes revisar que funciona tecleando:

[cuantico@localhost src] dir linux

Bien?, sigamos... Ahora pasamos a teclear:

[cuantico@localhost src] cd linux

Ya aqui, podemos elegir una de tres formas la cual queremos configurar el kernel para luego compilarlo, estas tres formas son con: make config, Este es todo en modo texto, eres newbie, no te lo recomiendo.. make menuconfig, este, es un poquitin mas facil, pero tampoco lo recomiendo a newbies (no es modo grafico). y make xconfig, este es el que si te recomiendo, pq se configura todo en modo grafico (botones, checks, etc).

Bien tecleas:

[cuantico@localhost linux] make xconfig

Te aparece el dialogo, lo configuras todo a tu gusto y necesidades. Luego ya hallas configurado todo, presionas el boton llamado Save & Exit... Te aparecera un dialogo diciendo que debes teclear make dep, claro lo haces:

[cuantico@localhost linux] make dep

(crea las DEPendencias necesarias para poder compilar nuestro (tuyo solo :P), kernel)

Cuando todo termine continuamos ejecutando:

[cuantico@localhost linux] make clean

(esto borra los posibles binarios que ya hallan sido creados por otra compilacion, y asi solo trabajar con los nuevos).

Luego pasamos a crear la imagen con:

[cuantico@localhost linux] make bzImage

Esto lo compila, y cre una imagen en "/usr/src/linux/arch/i386/boot" (en vez de i386, puede ser 686 u otro ojo en eso, es otro tema). Y esa imagen es la que nos ayudara a arrancar el equipo con el nuevo kernel q compilamos. Todo esto puede tardar severeos minutos, asi que mientras tanto vete a la cocina y me preparas un sandwiche.

Ahora, solo te falta instalar los modulos, (si no lo haces te hará falta un famoso modversions.h que jode), lo haremos ejecutando:

[cuantico@localhost linux] make modules

Luego que termine de crear estos modulos.. pasas a ejecutar:

[cuantico@localhost linux] make modules_install

Esto instala los modulos en "/lib/modules/linux-VERSION-DEL-TUYO", tambien tarda bastante :P....

Ahora que crees, nos vamos a la parte del mayor suspenso, ARRANCAR CON EL NUEVO KERNEL. Para esto hay dos formas, una es editando el lilo LInux LOader, osea cargador de linux), y la otra creando un disco de arranque, la que te recomiendo es editando el lilo, que es la unica q he usado, pero allá tus necesidades

Para arrancar con el LInux LOader (lilo), empecemos:

Lo primero es que debemos copiar la imagen al directorio de /boot, lo hacemos con:

[cuantico@localhost linux]  cp /usr/src/linux/arch/i386/boot/bzImage /boot

(recuerda donde dice i386, puede ser i686 u otro, solo revisa bien el tipo de procesador que tengas configurado)

Ahora nos dirigimos al directorio boot y cambiamos el nombre a la imagen, asi:

>>Como la seguridad ante todo, haz una copia de seguridad del /boot/system.map :)

[cuantico@localhost linux] cd /boot 
[cuantico@localhost boot] mv bzImage vmlinuz-VERSION-DEL-TUYO

(como se nota le hemos cambiado el nombre de bzImage a vmlinuz-VERSION-DEL-TUYO, ejemplo: vmlinux-2.4.18)

Seguro te preguntara que si deseas sobreescribir el archivo, y desde luego le das que si (yes o oui, depen de tu idioma :P).

Ahora vamos a configurar el lilo, etidanto el /etc/lilo.conf con un editor de texto te recomiendo el vi, asi:

[cuantico@localhost boot] vi /etc/lilo.conf

Copia la siguiente linea al archivo:

---aqui empieza (solo copia la linea de abajo)---- 
image=/boot/vmlinuz-VERSION-DEL-TUYO label=linux-VERSION-DEL-TUYO
root=/dev/hda1
----aqui termina (solo copia la linea de arriba)----

(recuerda siempre cambiar las letras "VERSION-DEL-TUYO", por la version de tu kernel, para ver cual version, escribi "uname -a").
- hda1 es donde tengo mi linux instalado, para saber donde tienes tu linux instalado revisalo con el comando de df

[cuantico@localhost boot] df

Debe salir algo como:

Filesystem Size Used Avail Use% Mounted on || 
/dev/hda1 9.97G 1.3G 7.4G 24% /

Ahi notas que yo lo tengo instalado en hda1...

Bueno Salvamos y salimos con esc, :w y :q ... en la consola tipeas

[cuantico@localhost boot] lilo

(debe salir algo como "Added linux-VERSION-DEL-TUYO)

Bien ahora reiniciamos tu cafetera, y cuando nos salga el lilo, debe de salir algo como:
linux-VERSION-DEL-TUYO

Si quieres poner que este se arranque por defecto (lo digo ahora, despues que compruebes que todo corre bien), debes editar la linea default=* por algo como default=linux-VERSION-DEL-TUYO .

Para iniciar desde el diskete, es algo mas facil :P...

Debes buscar un diskete formateado. Para formatearlo solo debes de teclear el comando fdformat /dev/fd0 o solo dar un click derecho al icono del floppy en tu escritorio (si lo tienes), y buscar donde dice Formatear...

Luego para crear el diskette de inicio hacemos:

[cuantico@localhost home] cd /usr/src/linux 
[cuantico@localhost linux] mkbootdisk

(Sigues los pasos configuras y listo)

Parcheando tu kernel

Sigue los pasos

[cuantico@localhost home] cd /usr/src/linux 
[cuantico@localhost linux] make clean

Copia los patchs q te has descargados (www.kernel.org) al directorio /usr/src ...

Antes que todo (seguridad ante todo :P), hagamos una copia de seguridad del actual kernel compilado, para esto escribamos:

[cuantico@localhost linux] cd .. 
[cuantico@localhost src] tar cvfz copia-de-seguridad.tar.gz linux
[cuantico@localhost linux] zcat patch-2.0.xx.gz | patch -p0 -s

patch-2.0.xx.gz es tu patch se puede meter todos los patchs que se quiera OJO, correlativamente.. ¿como?
osea, si tienes tu kernel 2.4.14 y lo quieres llevar a 2.4.20 tienes que bajarte los patchs:

  • patch-2.4.15
  • patch-2.4.16
  • patch-2.4.17
  • etc....

Tendras que hacer lo del zcat con cada uno de los patches uff suerte q no tengas la 2.4.2 :P. Como creo que notaste, el ultimo numero es que dice el ultimo patch de tu kernel... :)

----

Hay otra forma de parchear tu kernnel, que es usando un script que ya viene incluido en tu linux. En el directorio /usr/src/linux/scripts/, se llama patch-kernel.

Si no tiene atributo de ejecutable, solo tienes que dárselo con la orden:
[cuantico@localhost linux] chmod +x scripts/patch-kernel

Tieness que copiar todos los parches al directorio /usr/src/linux/ y desde ahí ejecutar el script de la siguiente forma:

[cuantico@localhost linux] cd /usr/src/linux 
[cuantico@localhost linux] ./scripts/patch-kernel

Y el mismo script cojera todos los parches por si solo (mas facil, haragán xD). Comprueba si ha quedado algún fichero con extensión ".rej". Si lo hay quiere decir que paso un problema, ves.. para casos como estos es que necesitamos la copia de seguridad que te dije q hiciera antes.. si la hiciste felicidades..

Si todo va bien, limpiamos.

[cuantico@localhost linux]  find . -name '*.rej' -print 
[cuantico@localhost linux] find . -name '*.orig' -print -exec rm {} \;
[cuantico@localhost linux] make clean

empieza otra vez... un saludo


Toda critica y coolaboracion es bien recivida... :)
Tambien podes hacer con este texto lo que te venga en ganas...

Texto escrito para el numero dos de la revista electronica FIH.

Escrito por: Cuantico
Mail: cuantico@orangemail.com.do
Web: www.elhacker.info

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT