A lo largo de esta semana y las siguientes voy a explicar cómo compilar un kernel de linux desde 0. Espero que os sea útil.
¿Por qué compilar el kernel?
¿por qué compilar el kernel si ya funciona bien?. Hay varias razones por las que hacerlo.
- La primera porque te has comprado un nuevo hardware que no está soportado en el kernel actual pero sí en los nuevos.
- La segunda, puede que estés teniendo algún error o fallo de seguridad que haya sido corregido en otras revisiones.
- Finalmente quieres evitar toda la carga inutil de dispositivos que no utilizas y ocupan espacio y quieres que la máquina vuele literalmente, arrancando con lo mínimo imprescindible y sólo tu hadware real.
Lo primero que tenemos que hacer es bajarnos la última versión del kernel, lo mejor es hacerlo desde la propia web, http://www.kernel.org. Aquí tendremos para elegir la ubicación más cercana a nosotros, EEUU ó Europa y el protocolo por el que bajarlo, HTTP, FTP o RSYNC. Después nos aparecen las diferentes versiones de los kernels disponibles (2.2, 2.4, 2.6) y el tipo (completo, sólo el parche, etc...). Bien, elegiremos la última versión y haremos clic en el vínculo a la letra F (Full) que aparece. Con esto nos bajaremos la última versión completa (en este caso 2.6.24.4) en formato tar.tz2. Concretemente yo utilizo lynx para bajarlo, pero eso es indiferente.
Mientras tanto iremos realizando unos pequeños retoques necesarios en nuestro sistema. Tenemos que instalarnos los siquientes paquetes mediante apt-get install paquete:
Bueno, después de bajarnos los 44.6 Mb de kernel, mediante el comando mv lo movemos a /usr/src y allí lo decomprimimos mediante: tar jxvf linux-2.6.24.tar.bz2. Si en vez de tar.bz2 está empaquetado mediante tar.gz o tgz entonces sustituiremos la j de jxvf por una z quedando tal que así zxvf.
Después crearemos un enlace simbólico mediante: ln -s linux-2.6.24.4 linux y entramos en el enlace que hemos creado: cd linux, con lo cual debemos estar en el directorio /usr/src/linux.
Antes de ponernos a hacer nada más, necesitamos recopilar alguna información de la máquina que nos vendrá muy bien más adelante. Debemos instalar y ejecutar update-pciids y update-usbids, esto se conectará a internet y nos bajará las ultimas actualizaciones de los listados de hardware. Después ejecutaremos en la máquina: lspci -vv >lspci.txt e imprimiremos todo lo que nos aparezca, ésto es la mayoría de nuestro hardware (tipo de placa base, tarjeta de red, de sonido, controladoras ide, etc). Haremos lo mismo con lsusb. Por último nos será tambien útil y nos vendrá bien saber cuales son los módulos que tenemos cargados ahora mismo. Esto lo haremos con lsmod. Así que tenemos un montón de hojas impresas con la información de:
lspci, lsusb y lsmod.
No estaría de más echarle un vistazo a la salida del comando dmesg.
La idea principal es tener un conocimiento lo más detallado posible de nuestro hardware. Por ejemplo, debemos saber que nuestra tarjeta de red es una Realtek, pero además tenemos que saber el modelo exacto (ej. Realtek 8139). Si hacemos esto con todos los componentes hardware no tendremos el más mínimo problema para compilar nuestro kernel de forma fiable y con éxito.
También debemos saber el sistema de ficheros (ext2/3, reiser, xfs) que tenemos en nuestra máquina, aunque eso lo podremos averiguar luego.
Empezamos con el tema, pero eso será en la parte 2. :-) Hasta la vista.
¿Por qué compilar el kernel?
¿por qué compilar el kernel si ya funciona bien?. Hay varias razones por las que hacerlo.
- La primera porque te has comprado un nuevo hardware que no está soportado en el kernel actual pero sí en los nuevos.
- La segunda, puede que estés teniendo algún error o fallo de seguridad que haya sido corregido en otras revisiones.
- Finalmente quieres evitar toda la carga inutil de dispositivos que no utilizas y ocupan espacio y quieres que la máquina vuele literalmente, arrancando con lo mínimo imprescindible y sólo tu hadware real.
Lo primero que tenemos que hacer es bajarnos la última versión del kernel, lo mejor es hacerlo desde la propia web, http://www.kernel.org. Aquí tendremos para elegir la ubicación más cercana a nosotros, EEUU ó Europa y el protocolo por el que bajarlo, HTTP, FTP o RSYNC. Después nos aparecen las diferentes versiones de los kernels disponibles (2.2, 2.4, 2.6) y el tipo (completo, sólo el parche, etc...). Bien, elegiremos la última versión y haremos clic en el vínculo a la letra F (Full) que aparece. Con esto nos bajaremos la última versión completa (en este caso 2.6.24.4) en formato tar.tz2. Concretemente yo utilizo lynx para bajarlo, pero eso es indiferente.
Mientras tanto iremos realizando unos pequeños retoques necesarios en nuestro sistema. Tenemos que instalarnos los siquientes paquetes mediante apt-get install paquete:
- make,
- g++,
- gcc,
- libncurses5-dev,
- tar,
- bunzip2.
Bueno, después de bajarnos los 44.6 Mb de kernel, mediante el comando mv lo movemos a /usr/src y allí lo decomprimimos mediante: tar jxvf linux-2.6.24.tar.bz2. Si en vez de tar.bz2 está empaquetado mediante tar.gz o tgz entonces sustituiremos la j de jxvf por una z quedando tal que así zxvf.
Después crearemos un enlace simbólico mediante: ln -s linux-2.6.24.4 linux y entramos en el enlace que hemos creado: cd linux, con lo cual debemos estar en el directorio /usr/src/linux.
Antes de ponernos a hacer nada más, necesitamos recopilar alguna información de la máquina que nos vendrá muy bien más adelante. Debemos instalar y ejecutar update-pciids y update-usbids, esto se conectará a internet y nos bajará las ultimas actualizaciones de los listados de hardware. Después ejecutaremos en la máquina: lspci -vv >lspci.txt e imprimiremos todo lo que nos aparezca, ésto es la mayoría de nuestro hardware (tipo de placa base, tarjeta de red, de sonido, controladoras ide, etc). Haremos lo mismo con lsusb. Por último nos será tambien útil y nos vendrá bien saber cuales son los módulos que tenemos cargados ahora mismo. Esto lo haremos con lsmod. Así que tenemos un montón de hojas impresas con la información de:
lspci, lsusb y lsmod.
No estaría de más echarle un vistazo a la salida del comando dmesg.
La idea principal es tener un conocimiento lo más detallado posible de nuestro hardware. Por ejemplo, debemos saber que nuestra tarjeta de red es una Realtek, pero además tenemos que saber el modelo exacto (ej. Realtek 8139). Si hacemos esto con todos los componentes hardware no tendremos el más mínimo problema para compilar nuestro kernel de forma fiable y con éxito.
También debemos saber el sistema de ficheros (ext2/3, reiser, xfs) que tenemos en nuestra máquina, aunque eso lo podremos averiguar luego.
Empezamos con el tema, pero eso será en la parte 2. :-) Hasta la vista.
1 comentario:
Que pasa Felix :D
hay una forma más comoda usando el paquete linux-tree-2.6.xxx que trae el kernel de serie mas los parches y modificaciones específicas de debian. Con este paquete se puede generar un kernel en formato .deb para instalar y desinstalar versiones de kernel sin problemas ( usando la herramienta make-dpkg ). Por ultimo, aunque reacio al principio os animo a usar grub como gestor de arranque.
un saludo tio :D
http://senin.org
Publicar un comentario