Compilar tu propio Kernel para LMDE (actualizado)

Spanish Forum

Moderator: vrkalak

Compilar tu propio Kernel para LMDE (actualizado)

Postby Rayeta76 on Mon Dec 24, 2012 7:39 pm

Compilar tu propio Kernel para LMDE para muy, muy novatos, ( modo en que a mi me funciona )
Antes que nada decir que este tutorial, el primero que hago, en realidad es una mezcla de muchos otros que hay en los foros, pero me he decidido ha realizar este tutorial, porque ninguno de los que hay por internet me funcionaba al 100%, por que faltaban paquetes o librerías o por incompatibilidad con LMDE.
Así que he decidido hacer para mi, este manual y compartirlo con todos.
Lo primero que necesitamos para compilar nuestro kernel es tener los binarios y las herramientas necesarias:
build-essential
kernel-package

Comprobamos una vez descargados los paquetes anteriores que no nos falte las siguientes librerías de desarrollo:
GCC - (4.7.2)
Make - (3.82)
Qt - (3.3.8b) - (si vamos a usar la interfaz gráfica Qt con make xconfig)

Si nos falta alguna podemos instalarlas desde Synaptic o con apt-get install.
En terminal :
$ sudo apt-get install build-essential kernel-package make gcc qt4-dev-tools libqt4-dev libqt4-core libqt4-gui
Una vez preparado nuestro Linux, necesitamos descargar las fuentes del Kernel de http://www.kernel.org y descargamos la versión de Kernel que queremos compilar, yo para este caso he descargado la ultima versión estable 3.7.1. Cuando termine la descarga tendremos un fichero linux-3.7.1.tar.bz2.
Copiamos este fichero en la ruta /usr/src desde el navegador de archivos como root o desde la terminal.
Para abrir el navegador de archivos como root escribimos en terminal: $ sudo caja
Image
Para copiar el fichero directamente en la terminal con linea de comando:
$ sudo cp /home/usuario/Descargas/linux-3.7.1.tar.bz2 /usr/src/
Cambiar usuario por el nombre que uséis vosotros como usuario.
Image
Una vez copiado el fichero linux-3.7.1.tar.bz2 en el directorio anterior vamos a descomprimirlo, como siempre con el navegador de fichero “caja” con privilegios de usuario o desde la terminal, primero vamos al directorio:
$ cd /usr/src
Una vez en el directorio lo descomprimimos:
$ sudo tar xvjf linux-3.7.1.tar.bz2
Bueno ya tenemos creada la carpeta linux-3.7.1 y aquí tenemos todo lo necesario para compilar nuestro Kernel.
En este punto todos los manuales dicen que es conveniente crear un enlace simbólico al código fuente del Kernel, no me pregunten porque, ya que en todos los tutoriales leídos todos lo recomiendan pero nadie explica el porque, y yo aun soy novato en este aspecto.
En la terminal escribimos:
$ sudo ln -s linux-3.7.1 linux
Ahora vamos al enlace simbólico:
$ cd linux
Ahora vamos a trabajar desde dentro del directorio linux, así en la terminal os aparcera toda esta linea:
javier@lmde:/usr/src/linux$
En al ventana terminal aparecerá así:
Image
Desde el directorio corremos el siguiente comando para asegurarnos que el árbol de las fuentes este limpio ( muy recomendable si no es la primera vez que compiláis esta versión de Kernel ).
$ sudo make mrporper
Image
Ahora llega la hora de configurar nuestro Kernel, y aquí todos los tutoriales que he leído eran muy difusos ya que te dan unas series de opciones pero no explican lo que va a pasar.
Vamos a conectar todos los dispositivos que queremos que entre en el núcleo a nuestra pc como ser, pendrive, impresora, discos externos, todo los dispositivos usb, ya que si haces los siguientes comandos sin haber conectado estos dispositivos el Kernel no los detectara.
Ejecutamos:
$ sudo make localmodconfig
Image
Como ya trabaje con el comando solo me aparece esto pero la primera ves que lo activéis saldrán una serie de lineas preguntando sobre la implementación de controladores nuevos al Kernel, aquí hay que tener cuidado con lo que contestamos Yes o No.
Yo lo que no esta claro le digo No. Luego desde la ventana de configuración gráfica se puede modificar.
Ahora ejecutamos este otro comando:
$ sudo make localyesconfig
Image
Lo que hace esto es similar al anterior nada mas que esta vez no agrega como módulos sino como pertenecientes al núcleo. En esta ventana saldrán nuevamente lineas preguntando por que módulos cargar, en la captura no aparecen porque no es la primera vez que ejecuto el comando.
Ahora ya tenemos listo para ser compilado, pero vamos a utilizar la aplicación xconfig para verificar que nos ha cargado en el Kernel estos módulos:
$ sudo make xconfig
Image
Esto abrirá la consola gráfica para configuración del kernel, en ella repasamos todos los controladores que nos ha cargado el sistema predefinidamente, y cambiamos los que creamos conveniente:
Yo en este punto siempre quito o agrego lo siguiente:
En partition types: quito todo, solo dejo el soporte para PC Bios y sus submenus. Y también dejo soporte para Sun el actual Solaris. Todas los otros soportes tipo amiga, machintos etc para que los quiero.
Otra característica importante es el CPU Frecuency scaling, aquí lo que seleccionamos es el tipo de gobernador para nuestra CPU, el gobernador no es mas que un controlador que regula la velocidad de trabajo de la CPU, yo no lo suelo tocar, pero si tienes un pc portátil tal vez te interesa seleccionar ondemand o conservative para aumentar la duración de la batería.
Image
Quito todo lo que no tiene mi PC de sobremesa, Amateur radio suport, IrDA ( es el puerto de infrarojos), Bluetooth, ya que no tengo, Wireless, Wimax, RF, vamos todos los modulos que se que no tengo y que te mete el Kernel genérico.
Image
En grafic suport activo Nouveau (nVidia) cards, ninguna mas. Si tienes otro modelo activa el soporte para ella.
Image
Activo el Bootsplash screen y Bootup logo. ( Ojo para activar el BootSplash screen hay que aplicar un parche al kernel, pero eso es otro tema).
Image
En el apartado de USB le presto mucha atención a los módulos cargados, yo he pasado de 9 Mb/s de transferencia a 20Mb/s configurando las opciones.
Image
MMC/SD/SDIO yo no lo tenia activo pero es necesario activarlo si quieres leer SD o MMC.
Image
Legamos a el apartado File systems, aquí doy soporte a todo, aunque por desgracia el Kernel sigue sin llevar el soporte para ZFS, tiene el Fuse-zfs pero no detecta mi partición de OpenIndiana.
Image
En CD-ROM filesystem doy soporte a todos los sistemas de archivos para no tener líos.
Image
En DOS/FAT/NT doy soporte a todo.
Image
Kernel hacking doy soporte a todo dejando.
Image
En Security options activo el Selinux ( buscar en wiki para saber somo instalar y configurar luego )
Image
Como habréis podido observar en el menú gráfico al pinchar en cada una de las diferentes opciones del Kernel nos muestra una descripción de la función que realiza. Con ello nos puede ayudar a realizar la selección correcta.
Llegados a este punto salvamos el fichero y salimos.
Ahora de nuevo desde la terminal ejecutamos:
$ sudo make clean
Con lo que limpiaremos todos los módulos que no vayamos a usar.
Image
Ahora solo nos queda compilar e instalar el Kernel, la duración de la compilación depende de la potencia de nuestro pc y de la cantidad de módulos a compilar.
En la termina ejecutamos el siguiente comando como root:
# make-kpkg --initrd --append-to-version=-kernel-3.7.1-1-amd64 --revision 3.7.1-1 kernel_image kernel_headers
--initrd da la orden de que genere el archivo initrd.img
--append-to-version=” colocamos como queremos que se llame nuestro kernel
--revisión va a ser la revisión de empaquetada
kernel_image generara el linux-image-xxxx.deb (nuestro kernel)
kernel_headers generara linux-headers-xxxx.deb (las cabeceras de nuestro kernel)
Ahora ya solo nos falta instalar el kernel con este comando:
# cd .. && dpkg -i *.deb
Una vez instalado si no ha salido ningún, al reiniciar el pc arrancara con el nuevo kernel.
Las ventajas de compilar tu propio kernel son enormes ya que el tiempo de arranque es mucho menor, no consume tantos recursos en tu pc, etc...
Atención los que drivers privativos, es recomendable desinstalar el driver y cuando arranques con el nuevo kernel volver a instalar el driver de Nvidia o ATI.
Si no lo haces así otra solución la puedes encontrar en este post: viewtopic.php?f=68&t=120676

Si no te arranca el kernel compilado no pasa nada, selecciona el GRUB el que tenias antes de instalar tu nuevo Kernel y arranca con ese.
Para desinstalar el kernel es tan secillo como ir al Synaptic y buscar el nombre que le has dado al Kernel y seleccionar para desinstalar.
Image
Espero que este tutorial solucione los problemas iniciales que tuve yo al intentar compilar el Kernel, sobre todo porque soy muy novato en linux, pero si yo pude tu también.
Otra forma de tener siempre la ultima versión del kernel en LMDE es añadiendo los repositorios siguientes al sources.list, pero piensa que el Kernel sera genérico, es decir cargara muchos módulos que seguro no necesitas.
deb http://liquorix.net/debian sid main
deb-src http://liquorix.net/debian sid main

Para mas información sobre liquorix:
http://liquorix.net/
Last edited by Rayeta76 on Wed May 15, 2013 5:43 pm, edited 12 times in total.
Image
User avatar
Rayeta76
Level 3
Level 3
 
Posts: 141
Joined: Thu Oct 25, 2012 8:02 pm

Linux Mint is funded by ads and donations.
 

Re: Compilar tu propio Kernel para LMDE para muy, muy novato

Postby Rayeta76 on Wed Dec 26, 2012 7:21 pm

Bueno liquorix acaba de lanzar ya la actualización del kernel Linux a la versión 3.7.0.

Para los que no se atrevan a compilar su propio kernel este es una buena opción.

Para ello agregar el repositorio:

# /etc/apt/sources.list.d/liquorix.list
deb http://liquorix.net/debian sid main

O consultar su pagina web:
http://liquorix.net/

Saludos
Image
User avatar
Rayeta76
Level 3
Level 3
 
Posts: 141
Joined: Thu Oct 25, 2012 8:02 pm

Re: Compilar tu propio Kernel para LMDE para muy, muy novato

Postby Wonder on Wed Dec 26, 2012 9:25 pm

Tremendo tutorial :)

Me lo añado a favoritos para cuando me instale LMDE para probarlo :)
Last edited by Wonder on Fri Dec 28, 2012 10:26 pm, edited 1 time in total.
Image
Wonder
Level 4
Level 4
 
Posts: 322
Joined: Wed Jul 11, 2012 8:09 pm

Re: Compilar tu propio Kernel para LMDE para muy, muy novato

Postby Rayeta76 on Wed Dec 26, 2012 10:53 pm

Wonder wrote:Tremendo tutorial :)

Me lo añado a favoritos para cuando me instale LMDE para probarlo :)


Gracias, espero que te sirva de ayuda.

También me gustaría que los diferentes usuarios agregaran sus experiencias al compilar el Kernel y mas explicaciones sobre módulos que activan porque creen que son importantes, así todos aprenderemos un poco mas.

Saludos.
Image
User avatar
Rayeta76
Level 3
Level 3
 
Posts: 141
Joined: Thu Oct 25, 2012 8:02 pm

Re: Compilar tu propio Kernel para LMDE para muy, muy novato

Postby Rayeta76 on Mon Jan 28, 2013 4:31 pm

Me han dicho que en la lineas de compilacion del kernel daba un error, ya esta solucionado, pue un problemilla al copiar el comando:
Code: Select all
# make-kpkg --initrd --append-to-version=-kernel-3.7.1-1-amd64 --revision 3.7.1-1 kernel_image kernel_headers


:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:
Image
User avatar
Rayeta76
Level 3
Level 3
 
Posts: 141
Joined: Thu Oct 25, 2012 8:02 pm

Re: Compilar tu propio Kernel para LMDE (actualizado)

Postby Rayeta76 on Tue Jan 29, 2013 12:16 pm

Hola a todos, ahora el manual esta todo correcto, a causa del corrector me cambio un par de guiones y daba error.
Ya me compile la versión 3.7.5 y funciona perfecto. La verdad respecto a la 3.7 no he notado nada de mejor.
Mi continua actualización de kernel solo es por ver si mejora la multitarea al copiar ficheros, pero parece que no.
Lo cual me lleva a pensar que aunque tengo una tarjeta Pcie USB 3.0, hay otros componentes de mi pc que no me dejan alcanzar mayores tasas de transferencia de ficheros al pen.

Como advierto en el articulo principal al actualizar el kernel me aparecio la pantalla negra ya que tengo driver privativo Nvidia.

Solucion:
Desde la terminal teclear:
Code: Select all
sudo apt-get --reinstall install nvidia-kernel-dkms

Code: Select all
sudo nvidia-xconfig


PD: para que os instale de nuevo el driver tenéis que tener el repositorio desde el que instalasteis el driver privativo en el sources.list
Image
User avatar
Rayeta76
Level 3
Level 3
 
Posts: 141
Joined: Thu Oct 25, 2012 8:02 pm

Re: Compilar tu propio Kernel para LMDE (actualizado)

Postby Rayeta76 on Wed Feb 06, 2013 6:57 pm

Diferentes comandos para la configuración del kernel:

- Alternative configuration commands are:

"make config" Plain text interface.

"make menuconfig" Text based color menus, radiolists & dialogs.

"make nconfig" Enhanced text based color menus.

"make xconfig" X windows (Qt) based configuration tool.

"make gconfig" X windows (Gtk) based configuration tool.

"make oldconfig" Default all questions based on the contents of
your existing ./.config file and asking about
new config symbols.

"make silentoldconfig"
Like above, but avoids cluttering the screen
with questions already answered.
Additionally updates the dependencies.

"make allyesconfig"
Create a ./.config file by setting symbol
values to 'y' as much as possible.

"make allmodconfig"
Create a ./.config file by setting symbol
values to 'm' as much as possible.

"make allnoconfig" Create a ./.config file by setting symbol
values to 'n' as much as possible.

"make randconfig" Create a ./.config file by setting symbol
values to random values.

"make localmodconfig" Create a config based on current config and
loaded modules (lsmod). Disables any module
option that is not needed for the loaded modules.

To create a localmodconfig for another machine,
store the lsmod of that machine into a file
and pass it in as a LSMOD parameter.

target$ lsmod > /tmp/mylsmod
target$ scp /tmp/mylsmod host:/tmp

host$ make LSMOD=/tmp/mylsmod localmodconfig

The above also works when cross compiling.

"make localyesconfig"
Similar to localmodconfig, except it will convert
all module options to built in (=y) options.

You can find more information on using the Linux kernel config tools
in Documentation/kbuild/kconfig.txt.
Last edited by Rayeta76 on Wed Feb 06, 2013 7:08 pm, edited 2 times in total.
Image
User avatar
Rayeta76
Level 3
Level 3
 
Posts: 141
Joined: Thu Oct 25, 2012 8:02 pm

Re: Compilar tu propio Kernel para LMDE (actualizado)

Postby Rayeta76 on Wed Feb 06, 2013 7:03 pm

Actualmente estoy experimentando con la configuración y compilación del zen-kernel, el cual tiene ya una gran cantidad de características modificadas para optimizar el trabajo del PC.
Pueden bajar el código original de aquí:
https://github.com/damentz/zen-kernel
Image
User avatar
Rayeta76
Level 3
Level 3
 
Posts: 141
Joined: Thu Oct 25, 2012 8:02 pm

Re: Compilar tu propio Kernel para LMDE (actualizado)

Postby Wonder on Wed May 01, 2013 8:29 pm

Esta misma tarde compile el kernel usando este tutorial en dos pc's.

En uno de ellos, al iniciar sistema, me aparecen unas lineas de error, la primera deduzco que ha sido algo que he añadido que no deberia haber añadido, las siguientes, son causadas por arrancar el pc con un pen usb, asi que algo habre configurado mal tambien.

Adjunto pantallazo.

Por cierto, he usado este procedimiento en linux mint 13 mate, un equipo 64 bits el otro 32 bits, pero ambos con misma distro).

Agradecido!
Attachments
kernel.jpg
Image
Wonder
Level 4
Level 4
 
Posts: 322
Joined: Wed Jul 11, 2012 8:09 pm

Re: Compilar tu propio Kernel para LMDE (actualizado)

Postby Rayeta76 on Mon May 13, 2013 5:38 pm

Muchas gracias por tu aporte
Image
User avatar
Rayeta76
Level 3
Level 3
 
Posts: 141
Joined: Thu Oct 25, 2012 8:02 pm

Re: Compilar tu propio Kernel para LMDE (actualizado)

Postby Rayeta76 on Wed May 15, 2013 5:37 pm

Voy a iniciar un nuevo tuto en un foro completamente en español sobre el kernel.

Estad atentos.
Image
User avatar
Rayeta76
Level 3
Level 3
 
Posts: 141
Joined: Thu Oct 25, 2012 8:02 pm

Linux Mint is funded by ads and donations.
 

Return to Español (Spanish)

Who is online

Users browsing this forum: No registered users and 16 guests