Compilar el kernel de Linux

Iniciado por chillinfart, Abril 21, 2006, 03:46:13 AM

Tema anterior - Siguiente tema

chillinfart

Hace una semana reconstruì una pc (celeron 466, matrox G100 agp, 128 MB SDRAM pc-100 80GB HD win 98) y tambièn pensè en ponerle linux(hice particiones pensando en ello y tengo una copia de corel linux de hace 6 años). No se mucho sobre linux(apenas unos comandos y el resto lo hago en modo grafico), y quisiera saber como hacerle upgrade al kernel (Para usar mi memoria USB mas que nada, ademàs de continuar destripàndolo-estoy aprendiendo programaciòn.) me bajè el kernel 2.6 pero no sè como instalarlo.
Nine O' clock, charge your glock.

Eye del Cul

Vaya, da la casualidad de que yo compilé el mío hará un par de días, así que lo tengo bien fresco. Pero ojo, era un kernel 2.4.xx; no sé si en los de la serie 2.6.xx habrán cosas que cambien...

Lo primero que tienes que hacer el descomprimir el código fuente del nuevo kernel -vamos, el archivo que te has bajado- dentro del directorio /usr/src. Por ejemplo, suponiendo que tu kernel es el 2.4.32 -el mío, vaya :)-, la cosa vendría a ser así:

cp linux-2.4.32.tar.gz /usr/src
cd /usr/src
tar -zxvf linux-2.4.32.tar.gz


Esto creará un directorio llamado "linux-2.4.32" dentro de /usr/src, con todas las fuentes del nuevo kernel. Por cierto, en /usr/src tendrás otras carpetas, con el código de los kernels que ya trajera tu distribución, con nombres del estilo "linux-2.4.10", etc. Evidentemente, depende de la versión del kernel que use por defecto tu Linux. También verás un enlace simbólico llamado "linux", que apuntará al directorio de dicho kernel por defecto. Hay que borrar este enlace y crear otro que apunte a las fuentes del nuevo kernel:

rm linux
ln -s linux-2.4.32 linux


Y ahora llega lo divertido...
Entramos en la carpeta del nuevo kernel y nos ponemos manos a la obra:

cd linux
make mrproper


"Make mrproper" se supone que limpia los directorios de trabajo, eliminando restos de otras compilaciones, o algo así. Sea como sea, en las guías que he leído por ahí dicen que se use, y total tampoco hace daño...

make menuconfig

Tras este paso el ordenador cargará un menú con todas las opciones que pueden especificarse para el nuevo kernel. Aquí poco se te puede ayudar; eres tú el que conoces las piezas de tu ordenador -hay que dar soporte al procesador, modelo de placa, etc-... Por suerte el mismo menú trae ayuda sobre la mayoría de sus opciones, y esto es muy valioso; consúltala siempre que tengas dudas.
Por lo demás, el menú es largo, tiene muchas cosas que toquetear y ajustar, así que vas a estar ocupado un buen rato.

make dep
make bzImage


"Make dep" lee las dependencias y prepara el código para ser compilado. Y "make bzImage" compila el nuevo kernel.
Quedaría compilar los módulos, e instalarlos:

make modules
make modules_install


¿Y hemos terminado? No, pero casi. Cuando ejecutamos "make bzImage" se compiló el nuevo kernel propiamente dicho. Éste se encontrará probablemente dentro de la carpeta "arch/i386/boot/". Hay que copiarlo a la carpeta "/boot", que es dónde se almacenan los kernels que puede usat el sistema para arrancar.
La cosa vendría a ser más o menos así:

cp arch/i386/boot/bzImage /boot
cd /boot
mv bzImage vmlinuz-2.4.32


Si, le cambiamos el nombre por algo más informativo, para no confundirnos... Y ya sólo quedaría actualizar el Lilo o Grub -vamos, el gestor de arranque que uses-, e introducir la opción para arrancar con el nuevo kernel.
Y nada, que la suerte te acompañe.
Yo, como soy coleccionista de las capturas de pantalla -manías que tiene uno-, hice un par mientras compilaba mi kernel:

 

Por lo demás, ya te digo que no sé si algo de esto cambiara con los kernels de la serie 2.6; supongo que si hay algún cambio será poco importante. De todas formas seguro que Karnizero, Kain o algún otro manitas del foro pueden ampliar esta información :).
«Porque buscar a alguien patético en Internet es como buscar caballos en un establo: encontrarás alguno, seguramente» -- Phobos Anomaly

tmaniak

Asegúrate de tener instalado algún compilador de C , por ejemplo gcc.

[url=http://www.a

Karnizero

Todo lo que ha escrito Eyedelcul, aparentemente parece estar correcto.

También te repito lo que ya te dijo tmaniak. Necesitarás un compilador capaz de compilar código fuente hecho en C. El más común es el gcc. Aunque normalmente esas herramientas ya suelen venir con la distribución.

Sin embargo, hay un detalle que le faltó decir a Eyedelcul.

Una vez que tengas tu nuevo Kernel, necesitas "actualizar" tu gestor de arranque, ya que éste intenará arrancar el Kernel que tenía antes de que hubieses compilado e instalado el nuevo.

Tanto si usas GRUB como LiLo, tendrás que editar el fichero de configuración.

Supongamos que tienes instalado el grub (para LiLo sería igual). Entonces, accedes al directorio /boot/grub:

$ cd /boot/grub

Ahora te identificas como Administrador (root):

$ su root (o su a secas, si te gusta más)
Password:    <<--- Escribes aqui la contraseña de root
#

Una vez que tenemos permisos suficientes, editamos el fichero grub.conf. Pero antes, hacemos una copia de seguridad:

# cp grub.conf grub.conf.copia
# vi grub.conf

Bién. Para poder escrivir usando el vi, pulsa una vez la tecla "INSERT".

Ahora, tendrás que modificar el fichero, para que te quede algo así como lo siguiente:

kernel (<partición_Linux>)/vmlinuz-[b]<versión_Kernel>[/b] root=<Partición_Raíz>

initrd (<partición_Linux>)/initrd-<versión_Kernel>.img


En donde:
<Partición_Linux> es la partición y el disco duro en donde se encuentra la imagen vmlinux, por ejemplo hd0,1 (disco duro 0, partición 1). El primer número es el número de disco duro, y este valor empieza en cero. El segundo valor es la partición del disco duro.

<versión_kernel>: aquí tienes que escribir exactamente qué versión es el nuevo kernel. Esto lo puedes saber haciendo un "uname -r". Copia exactamente lo que te aparezca en pantalla. Por ejemplo:

#uname -r
2.4.10-7
#

<Partición_raíz>: la partición raíz de tu linux. Osea, en qué partición se encuentra tu directorio " / "

Por ejemplo, un fichero grub.conf podría ser:

kernel (hd0,4)/vmlinuz-2.4.10-7 root=/dev/hda6

initrd (hd0,4)/2.4.10-7.img



[EDIT]
Por cierto, Eyedelcul. ¿Por qué usas un Kernel del tipo 2.4.X si es un Kernel ya antiguo?
La serie 2.6 tiene soporte para más hardware, y está más optimizado que los anteriores.
No te estoy riñendo ni nada parecido. Simplemente tengo curiosidad  :D

Ronald

hablando de linux... yo tambien reicen le estoy entrado a ese mundo...
me podrian decir que requisitos minimos debe tener una CPU... porque tengo guardado una pentium MMX... con 32 RAM, 2GB disco duro y quisera hacer mis practicas ahi.... puede aguantar el ordenador para el linux?


http://www.universedoom.com ya descubri el sentido de la vida..... es hacia la

linuxuser

Advierto que eso de compilar un kernel no es tan sencillo como parece. Yo hace ya bastantes años que dejé de jugar a gurú y me instalé en la comodidad de dejar que el sistema se actualizara él solito. Ubuntu lo hace de manera automática, y en otras distribuciones basta con actualizar cuando sale una nueva versión. Digo esto porque antes de compilar el núcleo hay que renombrar no recuerdo qué librerías porque de otra forma se produce una sobreescritura y se fastidia el asunto. Esto me ocurrió una vez, pero, ya digo, ni me acuerdo de que librerías eran esas.
Ubi Sapientia Ibi Libertas

kain

devi haber visto este post antes.
es todo como lo dijo eye y karnizaro pero yo ocupo lilo aunque he oido que grub es bueno pero no me gusta prefieron seguir con mi fiel lilo y yo tengo debian en la  testing en la version 2.6.15.4 no he tenido tiempo de actualizarlo.
-------------
eye la serie 2.6 es mejor por que tiene soporte ha mas hadware y maneja mejor la memoria y mas chiches.
"Si el rock es ilegal, metan mi trasero en la carcel" Kurt  Cobain

Karnizero

Cita de: "linuxuser"Advierto que eso de compilar un kernel no es tan sencillo como parece. Yo hace ya bastantes años que dejé de jugar a gurú y me instalé en la comodidad de dejar que el sistema se actualizara él solito. Ubuntu lo hace de manera automática, y en otras distribuciones basta con actualizar cuando sale una nueva versión. Digo esto porque antes de compilar el núcleo hay que renombrar no recuerdo qué librerías porque de otra forma se produce una sobreescritura y se fastidia el asunto. Esto me ocurrió una vez, pero, ya digo, ni me acuerdo de que librerías eran esas.

Cuánta razón tienes.
Aún así, compilar el kernel tienen la ventaja de que puedes activar y desactivar las características que quieras, dependiendo de tu ordenador, aumentando así la velocidad del carga del sistema ¿Para qué voy a querer soporte para AGP en mi Kernel, si mi ordenador no tubiese AGP? O incluso USB, si los ordenadores antiguos no tienen USB...O red, o lo que sea...

Cita de: "Ronald"hablando de linux... yo tambien reicen le estoy entrado a ese mundo...
me podrian decir que requisitos minimos debe tener una CPU... porque tengo guardado una pentium MMX... con 32 RAM, 2GB disco duro y quisera hacer mis practicas ahi.... puede aguantar el ordenador para el linux?

Tranquilo. Con ese ordenador tienes más que suficiente. Acuérdate que esto no es Wind*ws Vista ni mucho menos. Lo mínimo para correr Linux es:

Microprocesador 486
24 Mb de RAM
Targeta gráfica VGA ó compatible.
100 Mb de Disco Duro (yo llegué a ver distribuciones que ocupaban poco más de 30 Megas)

Aún así, con estas características, sólo podrás tener algo parecido a MS-DoS. Es decir, sin ventanitas ni nada.

Con tu ordenador, ya puedes tener algo más decente. Aún así, no sé que microprocesador tienes, pero supongo que será un Pentium MMX a 200 o por ahí.
Algo como eso podría tener:
- Kernel 2.6 (independiente de qué ordenador tengas)
- Suitte Ofimática (OpenOffice.Org)
- The Gimp (Photoshop para Linux)
- Aplicaciones de desarrollo. (Eclipse, Gambas, Qt...)
- Algún juegecillo
- Y quizás, forzándo mucho la cosa, Gnome, como entorno gráfico.

Aún así, ésto último no se si será posible. No sé cuánta memoria RAM te chupará el Gnome, pero creo que al menos 32 Mb.
Pero no te preocupes. También tienes IceWM o incluso XFce, que son dos entorno gráficos estables, agradables a la vista, fáciles de usar, y lo mejor de todo, ocupan menos que una mosca en un campode fútbol:

IceWM:
Página Oficial: http://www.icewm.org/
Capturas de Pantalla:
http://themes.freshmeat.net/screenshots/28661
http://themes.freshmeat.net/screenshots/36636/
http://themes.freshmeat.net/screenshots/34802/

XFce:
Página Oficial: http://www.xfce.org
Capturas de Pantalla:
http://www.xfce-look.org/content/preview.php?preview=1&id=38242&file1=38242-1.jpg&file2=&file3=&name=Candido-Redux
http://www.xfce-look.org/content/preview.php?preview=1&id=37654&file1=37654-1.jpg&file2=37654-2.png&file3=&name=DigitalDark-2-Green
http://www.xfce-look.org/content/preview.php?preview=1&id=28583&file1=28583-1.jpg&file2=28583-2.jpg&file3=&name=Nuvola-Olive


Así que ya sabes, para cualquier duda, ya sabes dónde preguntar.

tmaniak

Yo soy bastante maniático.

Window maker forever !

[url=http://www.a

Karnizero

Cita de: "tmaniak"Yo soy bastante maniático.

Window maker forever !

Sí, WindowMaker es genial, sólo que alguien que nunca ha manejado Linux, puede hacerse un lío.

linuxuser

Precísamente es mi gestor de ventanas preferido: rápido, bonito y económico.
Ubi Sapientia Ibi Libertas

Eye del Cul

Cita de: "Karnizero"
Por cierto, Eyedelcul. ¿Por qué usas un Kernel del tipo 2.4.X si es un Kernel ya antiguo?
La serie 2.6 tiene soporte para más hardware, y está más optimizado que los anteriores.
No te estoy riñendo ni nada parecido. Simplemente tengo curiosidad  :D

Bueno, yo tenía entendido que los kernels de la serie 2.4 funcionaban mejor y eran más estables en las máquinas más viejas, como la mía. De hecho, se sigue trabajando en ellos y dentro de poco parece que saldrá la versión 2.4.33.

Cita de: "linuxuser"Advierto que eso de compilar un kernel no es tan sencillo como parece. Yo hace ya bastantes años que dejé de jugar a gurú y me instalé en la comodidad de dejar que el sistema se actualizara él solito.

A mí no es que me motive especialmente, pero bueno, aprovechando que es una instalación nueva y tal... Una vez configurado a tu gusto y funcionando ya no hay que preocuparse más del tema.
De todas formas yo no he tenido los problemas con las librerías que mencionas; ¿será que últimamente se han ido simplificando las cosas? No sé...

Cita de: "Tmaniak"Yo soy bastante maniático.
Window maker forever !

Pues yo, de lo que he visto hasta el momento me quedo con Fluxbox. En su sencillez me parece genial.

Cita de: "Karnizero"- Y quizás, forzándo mucho la cosa, Gnome, como entorno gráfico.

Aún así, ésto último no se si será posible. No sé cuánta memoria RAM te chupará el Gnome, pero creo que al menos 32 Mb.

Hmm, no he tocado nunca Gnome, pero lo veo dudoso. A mí me parece una buena alternativa IceWM + Rox Filer -este último por si se quieren iconos en el escritorio-. Incluso se podría sustituir el Rox Filer por algo como Idesk, que parece más ligero.
Algunas distribuciones pequeñas usan soluciones como ésta con muy buenos resultados en máquinas pequeñas: Damn Small Linux, si no ha cambiado, arranca por defecto en Fluxbox + Idesk; Puppy Linux emplea JWM + Rox Filer; Vector Linux, XFCE + Rox Filer... Vamos, hay alternativas ligeras y funcionales a los grandes escritorios.

Lo comento porque aunque a mí no me hagan mucha gracia los iconos en el escritorio -ni siquiera en Windows tengo costumbre de usarlos-, entiendo que a la mayoría de la gente no le entusiasme encontrarse con un Fluxbox mondo y lirondo. Pero por suerte, aunque se tenga una máquina vieja no hay por qué resignarse a eso...
«Porque buscar a alguien patético en Internet es como buscar caballos en un establo: encontrarás alguno, seguramente» -- Phobos Anomaly

kain

yo he provado el ROX con todos los manejadores de ventana en el fluxbox se ve muy chulo y en otros tambien pero despues de la crisis existencial acerca de los manejadores de ventana (los he ocupado todos pero todos se configurar asta el blackbox pero me quedo con el Window Maker,aunque la consola la tengo tambien muy chula le puse color verde a la letra una imagen de un pinguino y la ocupo con frame fuber) y es preferible el Xfce4 con ROx liviano lindo y todo pero la pregunta del millon: ¿para que carajo sirven los iconos?? algunos disen que sirve para accesos directos mas rapidos a los progrmas pero es mejor configurar el teclado para eso asi cargas cualquier programa sin coger el mouse
"Si el rock es ilegal, metan mi trasero en la carcel" Kurt  Cobain

tmaniak

Acabo de encontrar una captura de pantalla de cuando tiraba con un Duron a 700Mhz y 1Gb de ram.

http://tmaniak.altervista.org/temp/post/8-11-2004-mywindowmaker.jpg

Mi combinación era Windowmaker + Konqueror .

Me encanta Konqueror, es de las pocas cosas que me gusta de KDE, pero lo demás, no me mola nada XD. (de ahí que salga lo de kdeinit en uno de los dockapss)

Por cierto, la captura tiene fecha. 8-11-2004.... osea, vieja XD

[url=http://www.a

kain

Karnizero yo ocupe un pentium 1 con 166 Mhrz con 32 MB de ram y 2,5 Gigas de espacio en disco 1 MB de video  y con iceWM funcionaba bien al igual que con Window Maker,Blackbox,Twm,Mtwm pero con el xfce4 funciona bien pero  imagina que para cargar un menu demora 2 segundos y los programas se cargan mas lentos por falta de memoria asi que yo le recomnedaria el Window Maker funciona bien es lindo por hay colgaria un team del doom que hice
"Si el rock es ilegal, metan mi trasero en la carcel" Kurt  Cobain