Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gnu/Linux Vagos → Zona GNU/Linux → Manuales / Tutoriales / Guías GNU/Linux → Administración / Sistema
GUÍA
Configurar y compilar el kernel Linux (Debianeros y no tan Debianeros)
Iniciado por Shiba87 , Jul 20 2012 18:41
Guía,,
Guía compilar,,
compilar kernel,,
kernel Linux,,
Linux Debian,,
Debian General,,
General Configuración,,
Configuración
Pagina 1 de 2
Hace tiempo escribí un tema similar y aunque las ansias de trastear siguen siendo las mismas, hay cosas que debemos
poner al día.
Es por eso que he querido rehabilitar esta "pequeña" guía que a más de uno, incluyéndome, le ha servido de ayuda en más
de una ocasión
Importante:
Todos los comandos son ejecutados como Root, salvo el utilizado para la descompresión del kernel. Si usas Ubuntu
o derivados, anteponer siempre sudo.
Paciencia, no apresurarse, el proceso no es complicado, pero hay que ser meticulosos, y tomarse tiempo para
indagar y recapacitar
Un kernel con demasiados añadidos será muy lento, y uno con muy pocos, estará muy limitado en compatibilidad.
Buscar un término medio aceptable
La regla de oro a la hora de configurar el kernel será: Si no se sabe o no se está seguro, no se toca
Método General
Ocultar
1º Para compilar el kernel de esta manera es necesario tener instalados los paquetes:
http://www.kernel.org/ (http://www.kernel.org/)
1 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
ln -s /usr/src/linux-4.6 /usr/src/linux
rm /usr/src/linux
make clean
make mrproper
make menuconfig
Para eso he creado una sección especial justo debajo. Una vez esté el kernel configurado, retomar desde aquí
NOTA: Es posible utilizar la configuración del kernel que ya teníamos, ejecutando lo siguiente en lugar de make
menuconfig:
make oldconfig
NOTA 2: Si existe alguna diferencia entre los kernels, nos preguntará por las características que no coinciden, una por
una.
NOTA 3: Exite otra manera de configurar el kernel para que incluya sólo los módulos que realmente usamos, lo que nos
ajusta muy bien Linux a nuestras máquina/necesidades.
El comando es el siguiente.
make localmodconfig
Como dije al principio del a guía, el inconveniente de esta configuración es que es muy ajustada, pues sólo reconoce lo
que estamos usando en el momento que la ejecutamos, y eso puede ocasionar que módulos que sí usamos o que
necesitaremos más adelante no se incluyan en el kernel porque no estaban en uso esos dispositivos cuando lo
configuramos.
4º Compilar e instalar
(Puede tardar entre 2 minutos y dos horas, dependiendo del nº de módulos a compilar y de la potencia de la cpu)
2 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
(Lo he colocado todo en una sola línea porque el proceso es muy largo y hacerlo por pasos sería perder mucho tiempo.
En caso de error, no quedará más remedio que ir paso a paso para ver dónde falla)
A día de hoy no es necesario, pero si por alguna razón quisiéramos generar manualmente las imágenes initrd, basta con
indicar la ruta correcta a mkinitramfs
5º Actualizar GRUB
Si todo ha salido bien, el kernel estará compilado y listo para usar, ya sólo falta actualizar el grub, para que nos dé la
opción de arrancar con él, aunque lo más probable es que el update grub se ejecute automáticamente al ejecutar el make
install.
En caso de que no sea así, basta con ejecutar:
update-grub
Método Debian
Ocultar
1º Para compilar el kernel de esta manera es necesario tener instalados los paquetes:
Cita
libncurses5-dev
build-essential
initramfs-tools
kernel-package
Es decir:
http://www.kernel.org/. (http://www.kernel.org/)
3 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
ln -s /usr/src/linux-4.6 /usr/src/linux
rm /usr/src/linux
3.1 Ingresar en /usr/src/linux, hacer limpieza y configurar los parámetros del kernel.
make clean
make mrproper
Para la configuración podemos optar por menuconfig, xconfig o, si somos más valientes, editar el archivo .config con
nuestras propias manos
Simplemente
make menuconfig
Y para hacerlo de manera más gráfica necesitaremos algunas dependencias extra, pues dependemos de las librerías y
herramientas de desarrollo de Qt
4 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
Para tratar este tema con un poco más de profundidad he creado una sección específica justo debajo. Una vez esté
el kernel configurado, retomar desde aquí
NOTA: Es posible utilizar la configuración del kernel que ya teníamos, ejecutando lo siguiente:
make oldconfig
NOTA 2: Si existe alguna diferencia entre los kernels, nos preguntará por las características que no coinciden una por
una
NOTA 3: Exite otra manera de configurar el kernel para que incluya sólo los módulos que realmente usamos, lo que nos
ajusta muy bien el kernel a nuestras máquina/necesidades.
El comando es el siguiente.
5 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
make localmodconfig
Como dije al principio de la guía, el inconveniente de esta configuración es que es ajustada en extremo, pues sólo
reconoce lo que estamos usando en el momento que la ejecutamos, y eso puede ocasionar que módulos que sí usamos
o que necesitaremos más adelante no se incluyan en el kernel porque no estaban en uso cuando realizamos la
configuración.
4º Compilar e instalar
(Puede tardar entre 2 segundos y dos semanas, dependiendo del nº de módulos a compilar y de la capacidad de la cpu)
5º Instalar el kernel
El comando anterior habrá reducido el kernel resultante a 2 paquetes deb que estárán en /usr/src
Ya sólo nos quedaría instalarlos,para tener un nuevo kernel funcional (aunque esto último dependerá de si hemos hecho
las cosas bien):
dpkg -i /usr/src/linux*.deb
Método "Externo"
Ocultar
Este método es una variante del método Debian y se utiliza para compilar el kernel de una máquina desde otra distinta.
Viene muy bien para compilar kernels para máquinas poco potentes desde pc más rápidos, o para ahorrar algo de tiempo.
(se puede hacer desde la máquina donde se va a compilar, pero hay que tener mucho más cuidado con las opciones que se
eligen)
2º Copiar el fichero de configuración del kernel desde el pc objetivo hasta el equipo donde
vamos a compilar.
Cita
/usr/src/linux/.config
3º En el pc que se encargará de compilar seguiremos también los pasos del método Debian,
pero en lugar de configurar el kernel, colocaremos el .config que ya tenemos del otro pc en la
carpeta:
Cita
/usr/src/linux/
4º Procedemos a crear los paquetes .deb que contienen el kernel y sus cabeceras
6 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
Ahora es cuando se lía la cosa y es el momento en el que tiramos de "la solución chapuza"
Para máquinas de la misma arquitectura, no existe ningún problema, la instalación de los paquetes deb no tiene ningún
misterio.
Pero para máquinas de diferente arquitectura, aunque hayamos compilado bien el kernel con la arquitectura correcta, el
make-kpkg nos creará un deb para la arquitectura del pc donde se ejecutó y no para el pc objetivo. Intentar instalar un
paquete amd64 en un pc i386 o viceversa nos dará error de arquitectura.
Se pueden crear paquetes para otras arquitecturas utilizando entornos de chroot, pero me parece demasiado trabajo para
un paquete que es para un sólo ordenador y que se va a instalar una sola vez.
No habrá lugar a conflicto, el contenido del paquete es de la misma arquitectura que elegimos al compilarlo.
NOTA En el caso de compilar un kernel de 32 en una máquina de 64, puede evitarse anteponiendo a la orden
make-kpkg el comando linux32
Ocultar
make menuconfig
7 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
make xconfig
make gconfig
8 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
No suele quedar claro cómo se debe configurar Linux para, posteriormente, compilarlo, y hay poca información al
respecto, por lo que intentaré centrarme en varias secciones y opciones que pueden resultar importantes.
A la hora de seleccionar qué se incluye como módulo y qué no, tener en cuenta lo siguiente:
Mostrar
3º Guardar los cambios y continuar con el método que estábamos llevando a cabo:
Pulsar exit, repetidas veces hasta que salgas del configurador, y cuando pregunte si queremos guardar le decimos que sí
Ocultar
Velocidad de Compilado
Hace poco me enteré de que Linus Torvalds es capaz de compilar el kernel en menos de un minuto utilizando algunos
"trucos" de su arsenal privado. Nosotros no vamos a ser menos.
1º Para usar varios hilos simultáneos al compilar tenemos que ejecutar el make con la opción
-jn. Siendo n el número de procesadores o núcleos que tenga nuestro equipo +1.
Por ejemplo, para un equipo de 4 núcleos en el caso del método general, sería:
9 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
Cita
make -j5
En el caso del método Debian, no se puede especificar la opción -j a make-kpkg, así que habrá que especificarla antes,
mendiante:
Cita
export CONCURRENCY_LEVEL=X
Tanto para "CONCURRENCY_LEVEL=", como para la opción -j, el número asociado X debe ser igual al número de
nucleos o procesadores de nuestra máquina
Cita
export CONCURRENCY_LEVEL=5
Según vaya recopilando información iré colocando en esta sección algunos "trucos" para que tardemos menos en
compilar el kernel
Ocultar
A todos nos ha pasado, después de pasar un buen rato compilando, comprobamos que todo funciona y es entonces
cuando caemos en la cuenta de que nos falta un módulo importante.
¿Tenemos que volver a compilarlo todo?. La respuesta es NO.
1º Localizar el módulo que nos falta desde menuconfig y además de marcarlo, también copiamos su ruta.(Es difícil de
explicar, por lo que pondré un ejemplo):
1.1 Supongamos que se nos ha olvidado el soporte para USB3 (algo muy común :lol:)
Abrimos el menuconfig y nos vamos hasta donde está el módulo y solicitamos ayuda pulsando "shift + ?"
Cita
make modules_prepare
make M=drivers/usb/host/ modules
1.3 E instalamos:
10 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
make modules_install
Ocultar
Método General
Descargamos el parche que queramos incluir y lo copiamos a la carpeta con las fuentes del kernel (/usr/src/linux). Una
vez allí ejecutamos
Parche simple
Cita
Puede ocurrir que nos encontremos intentando aplicar un conjunto de parches comprimidos. En este caso no es
necesario que los extraigamos para luego ir aplicándolos uno a uno, podemos optimizar un poco las cosas actuando
directamente sobre el archivo comprimido.
GZ
Cita
BZ2
Cita
XZ
Cita
Método Debian
Descargamos el parche que queramos incluir y lo copiamos a la carpeta con las fuentes del kernel (/usr/src/linux)
Y en lugar de compilar como se expone en el "método Debian", lo que debemos ejecutar para compilar es lo siguiente:
Cita
https://www.kernel.o...ing-patches.txt (https://www.kernel.org/doc/Documentation/applying-patches.txt)
https://www.kernel.o.../Documentation/ (https://www.kernel.org/doc/Documentation/)
11 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
bueno, no quiero agregar nada al post. ya que es perfecto, lo vengo usando desde que lo pusiste por primero vez hace años
en vagos. y siempre que tengo que compilar un kernel recurro a el, como mi manual principal.
Muchas gracias.
A ver si me pueden ayudar.. estoy pensando en compilar un kernel para mi distro.. la que estoy usando es mint 15 con
kernel 3.8.0 y tengo problemas con la instalacion de los drivers de la placa de WiFi.. el problema viene por la
compatibilidad con el kernel (corrijanme por favor si estoy errado).
El asunto es que antes los tenia instalado en un kernel 3.2 e iban perfectos, ahora en el 3.8 se complico, me tira unos
errores al querer instalarlos, les dejo el log aca..
Mi pregunta es, me combiene compilar un kernel mas antiguo para mi distro? y de ser asi, al darla a actualizar me dara
conflictos?
Tambien al momento de compilarlo queria optimizarlo un poco para aumentar el rendimiento para mi notebook, vamos
traen soporte para bluetooth y mas cosas que no tiene, ocupan espacio en vano y estaria bueno sacarlas.
Perdon si esta duda no va aca, pero es que justo como es de compilacion, por eso decidi hacerla aca. Si no corresponde,
creo un hilo nuevo donde me indiquen y pido disculpas de ante mano.
Normalmente si tienes los drivers funcionando en Kernel 3.2 y actualizas a 3.8, deberían ir sin problema alguno. Lo mejor
sería o volver a instalar el kernel 3.2 o compilar una versión más actual y activar en ellos el soporte para los drivers de tu
tarjeta Wifi. En mi caso tengo kernel 3.10 y lo compile sin noveau , siempre tengo los 3.9 alli instaladitos en caso que
algo me falle con los 3.10 pero hasta ahora van de maravilla y ya llevo algunos meses sin cambiar de kernel . Ahora
como estas instalando el driver de la wifi? Por medio se synaptic? por medio de la consola con aptitude? o estas
compilandolos? en caso de ser lo último, busca en los repos si exísten tus drivers alli para que no pases tanto problema
12 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
lspci -nn
Si es usb
lsusb
Muchas gracias por sus respuestas.. ya he dejado el problema donde corresponde, pido disculpas.. les dejo el hilo hacia el..
http://gnulinuxvagos...e-wifi-interna/ (http://gnulinuxvagos.es/topic/1892-problema-placa-de-wifi-interna/)
para trabajar, utilizo una red VPN, me conecto desde el propio gestor de KDE que es el que mejor y mas facil me va. tengo
mi perfil ".pfc" de "cisco" importado, con todos los datos de la VPN de mi empresa, y luego con Kdrc o cualquier
programa RDP, ya me conecto a mi ordenador del trabajo... hasta ahi, todo facil y normal.
tras compilar el kernel, diferentes kernels....la vpn no conecta. en cambio con los kernel oficiales de mi distro, el mas
reciente "3.10.3", puede conectar a la VPN sin problemas, como siempre. entiendo que algo me he dejado fuera del kernel,
que me impide conectar a la VPN en particular.
tambien quiero añadir que la VPN es CISCO, que siempre he oido que son algo mas complejas por el tipo de cifrado que
utilizan...
PD: con el kernel nuevo 3.12.1, mi solydk (debian), 8gb de ram DDR3, un intel I3 normalucho, una gtx550, y un disco
SSD Samsung + (steam)= metro last nigth que te corres...xD todo al maximo y es una delicia jugar en linux, me funcionan
hasta los mandos de juego, sin previa configuracion ni nada. ya no hay excusas para quedarse en windows...
Una forma "fácil" de averiguar qué es lo que falta sería conectarse a la red VPN desde la versión de Linux que funciona y
luego ver la lista de módulos cargados con:
lsmod
Otra forma sería partir de la configuración del kernel funcional y empezar a eliminar lo que sobre manualmente en lugar
de recurrir a localmodconfig. Más trabajosos, pero vas "a lo seguro"
Pues el unico modulo distinto que veo diferente, entre tener levantada la VPN y no, es este...
13 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
[/IMG] (http://www.subeimagenes.com/img/instantanea1-787468.html)
"tun"
lo puedo añadir a mi kernel compilado a mano??? o tengo que volver a compilar, si tengo que volver a compilar, donde
encuentro ese modulo y que hago con el??? xD
Todos los problemas que yo he tenido de red los he solucionado compilando esto aparte, lo que no se si llevara los drivers
que te hacen falta para VPN, busca el de tu kernel:
https://www.kernel.o...ckports/stable/ (https://www.kernel.org/pub/linux/kernel/projects/backports/stable/)
Cuando hagas el make se te abrira una configuracion parecida a la del kernel con los drivers que lleva el paquete, mira si
van los que tu necesites y si estan los instalas, si no cancelas y le haces un make clean
py8q.png
Ahí está
Postear Imagen
Ahí está
Ok.
Gracias a los dos, mañana me pondré con ello a ver que sale.... seguro que me cargo algo mas.... jajaja
Pedazo de post @Shiba87 (http://gnulinuxvagos.es/user/2-shiba87/) , yo siempre habia tirado de make oldconfig para no
rayarme y normalmente con buenos resultados , pero este post me lo guardo para mi "hall of fame" ya que es un currazo.
Se agradece el esfuerzo.
Como no tenía nada que hacer me ha dado por compilar la versión 4.1 por enésima vez (las anteriores veces que he
compilado algo ha fallado). El caso es que me pregunto, si habiendo compilado a la debian, y no funciona, puedo ejecutar
desde el paso de compilación directamente el modo tradicional.
14 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
Sí, claro.
La manera "Debian" la única diferencia que tiene es que al final lo empaquetará en un .deb, de resto configurar y compilar
es exactamente igual.
me ha funcionado a la manera debian, pero está bien resolver esta pequeña duda...
pues yo tambien!!!
por retomar esto y ver si puedo ajustar un poquito el kernel apesar de estar contento con liquorix, me voy a compilar mi
propio 4.1.1.
de primeras con localmodconfig, he encendido vpn, de todo...a ver si esta vez a la primer asolo con eso me va todo bien!!
xDDD
wuooooo!!! ni 5 minutos me ha llevado compilar el kernel con el I7, nunca habia compilado con el. deje la cocina y las
historias de los kernels cuando aun andaba con el i3 y madre mia!!!!! no hay color!!!
con vpn y todo funcionando, solo me volvio a ejecutar liquorix para volver a instalar los drivers de nvidia, y listo, una
excusa mas para poneros otra captura de mi escritorio...que se que os mola!!
(http://subefotos.com/ver/?d1588cf32d8b82221dbffae86eaf7bbdo.png)
Como no tengo prisa, y he probado el liquorix que me ha dejado colgado el equipo, me quedo con el mío compilado, y me
haré alguna actualización más adelante.
Como no tengo prisa, y he probado el liquorix que me ha dejado colgado el equipo, me quedo con el mío compilado, y me haré alguna
actualización más adelante.
15 de 16 05/02/17 01:04
[Guía]Configurar y compilar el kernel Li... http://gnulinuxvagos.es/topic/22-configu...
Pagina 1 de 2
CHARLA Zona general de charla → Charla → Ya tengo pc nueva y es AMD . 18 respuestas Rohlling
Empezado por portaro , 25 Jan 2017 Charla, AMD, Asus, Linux, K20 218 Visitas 02 Feb 2017
Gnu/Linux Vagos → Zona GNU/Linux → Manuales / Tutoriales / Guías GNU/Linux → Administración / Sistema
16 de 16 05/02/17 01:04