Mostrando entradas con la etiqueta kernel. Mostrar todas las entradas
Mostrando entradas con la etiqueta kernel. Mostrar todas las entradas

29 de diciembre de 2011

Solución de los problemas con atheros wifi en Ubuntu 10.04 Lucid Lynx

Después de mi chasco con Ubuntu - Ubuntu 11.10 ...NO me ha funcionado - decidí instalar la versión Ubuntu 10.04  Lucid Lynx.
Y funciona bién salvo que que tengo problemas con la wifi, se producen desconexiones y es extremadamente lenta.
La tarjeta wifi es una PCI, TPLink:

Ethernet controller: Atheros Communications Inc. Atheros AR5001X+ Wireless Network Adapter (rev 01).

Revisando por la red he visto que en los kernels anteriores a 2.6.39 hay un bug que ocasiona estos problemas, recomendando actualizar el kernel a la version 2.6.39, ... o superiores.
http://www.tubuntux.com/2011/05/solucion-problemas-wifi-en-ubuntu-1104.html

De modo que por eso de estar a la última voy a probar a instalar la version 3.0 del kernel en mi Lucid Lynx.

Proceso:

Actualizo los sources list para los kernels:
# add-apt-repository ppa:kernel-ppa/ppa
# aptitude update
# aptitude search linux-image

...ummhhh, Veo que el último es el linux-image-3.0.0-14

Instalo el kernel 3.0.0-14:
# aptitude install linux-image-3.0.0-14-generic linux-headers-3.0.0-14-generic

... ... ... ... y reinicio
# reboot

Si todo ha salido bien ya debemos tener nuestro sistema con en nuevo kernel:
# uname -a
Linux lynx 3.0.0-14-generic #23~lucid1-Ubuntu SMP Thu Dec 8 13:06:17 UTC 2011 i686 GNU/Linux

perfecto!!

Con este nuevo kernel parece que los problemas con la wifi atheros se han solucionado.
Ahora los ping al router tardan menos de 10 ms, mientras que antes tardaban varios miles e incluso se cortaba la comunicación.

La velocidad de descarga también se ha mejorado notablemente, antes no pasaban de 100K/s mientras que hora pasa de los 500K/s.

Update: Tal vez lo mejor sea usar madwifi: Instalando Madwifi en Ubuntu para wifi Atheros

18 de octubre de 2010

exoRecompilando el kernel 2.6.35.7 / 2.6.36 en Ubuntu 10.10


Ubuntu10.10 tiene el kernel 2.6.35.7; y esto me hacer pensar que ya hace tiempo que no lo actualizo en mi sobreexplotado servidor micra que todavia está con debian lenny kernel 2.6.32.3 .

Para soluccionarlo pillo mis propios howtos:

Exo-RedPill-Compilación del Kernel 2.6.32.3 para Micra
Exo-Recompilación del Kernel
Recompilar el Kernel al estilo Debian: La Píldora Roja

... y me pongo a ello utilizando el actual fichero de configuración del kernel 2.6.32.3 de micra exoRecompilando en un pentium2800 de doble nucleo con debian-lenny como sistema operativo.


El resultado no es bueno, ya que no termina la recompilación apareciendo errores:
... ... ...
make[1]: se sale del directorio `/usr/src/linux-2.6.35.7'
/usr/bin/make EXTRAVERSION=.7-micra-pp01 ARCH=i386 \
-C Documentation/lguest
make[1]: se ingresa al directorio `/usr/src/linux-2.6.35.7/Documentation/lguest'
cc -m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE lguest.c -o lguest
lguest.c:21:25: error: sys/eventfd.h: No existe el fichero o el directorio
lguest.c: In function 'create_thread':
lguest.c:1026: warning: implicit declaration of function 'eventf
d'
make[1]: *** [lguest] Error 1
make[1]: se sale del directorio `/usr/src/linux-2.6.35.7/Documentation/lguest'
make: *** [debian/stamp/build/kernel] Error 2
micra:~#
Revisando la web veo que es un error ya reportado en el kernel 2.6.35.7:
What's up with Kernel 2.6.35.7? Annoying bugs while compiling...

Y para mi mayor sorpresa, ...ya descrito por yo mismo, con solucción y todo!!!! en:
Exo-RedPill-Compilación del Kernel 2.6.32.3 para Micra

Aplico mi propia solucción editando el fichero:
"lenny:# nano /usr/src/linux-2.6.35.7/Documentation/lguest/Makefile
-Cambiamos- "all: lguest" por "all:"
... y exorecompilando ...
... tarda un poquillo.

... parece que no ha funcionado !!??
Aparaece el mismo error que hace referencia a que kernel package 11.015 no esta actualizado. En lenny es el que se instala pero en squeeze es la versión kernel package 12.036. En los kernel superiores a 2.6.33 el kernel package 11.015 no funciona.

Veo otra solucción que es innactivar las opciones LGUEST de la configuración del kernel:
http://permalink.gmane.org/gmane.linux.debian.user/386867

Cambio el fichero de configuración del kernel:
de:
...
CONFIG_PARAVIRT_GUEST=y
CONFIG_VMI=y
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_LGUEST_GUEST=y
...

a:
...
CONFIG_PARAVIRT_GUEST is not set
CONFIG_VMI=y
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST is not set
CONFIG_LGUEST_GUEST is not set
...

... a exorecompilar ... y
tampoco funciona, sale el mismo error con kernel package 11.015

Más opciones:
( ) recompilar el kernel 2.6.25.7 desde debian squeeze
( ) ó desde Ubuntu 10.10

Vamos con la opción: exoRecompilación con Ubuntu 10.10

1) Instalo Ubuntu10.10 en una partición de 5GB del portatil vaio.
2) Actualizo el sistema, instalo paquetes necesarios.
3) Descargo el kernel... pero si ya ha cambiado!!!! el último estable es el kernel 2.6.36 !!!!!!; bueno pues vamos con este.
4) lo descomprimo
5) Pillo el fichero de configuración del kernel 2.6.32.3 de micra.
6) ... a exorecompilar ...
... y FUNCIONA !!!!!


Ya tenemos el paquete .deb con el kernel, solo falta instalarlo en micra a ver que hace.

micra con este nuevo kernel 2.6.36 NO termina el boot ya que hay problemas con algunos modulos ...lo tengo que revisar ( ).

Con Ubuntu10.10 se puede exorecompilar los últimos kernels y aplicarlos a sistemas debian lenny.

9 de enero de 2010

Exo-RedPill-Compilación del Kernel 2.6.32.3 para Micra


En mi micro-servidor micra tengo instalado Debian 5.0-lenny y funciona muy bien, solo la wifi rt73 me da algunos problemillas:
  • Error wifi del kernel con mensages constantes a los ficheros logs.
  • Problemas en la configuración simultanea de la ethernet y wifi provocando desconexiones y teniedo que hacer netwoks restart.
  • No me funcionan los puentes de red ni la funcion AP de la wifi.
El kernel actual que tiene Lenny es el 2.6.26 y la última versión estable a día de hoy del kernel es la 2.6.32.3 que presenta interesantes mejoras.
Ha llegado el momento de recompilar el kernel de micra para actualizarlo y ver si puedo solucinar los problemillas de la red.

Y para dar ejemplo me aplicaré mis propias recetas:
- Recompilar el kernel mediante la píldora roja.
- Exo-recomplación del kernel para micra en lenny: un pentium2800MHz.

Pasos:
1) Descargamos el kernel 2.6.32.3 en lenny:/usr/src/.
Descompresión, Creamos el enlace simbólico linux a la carpeta del nuevo kernel.

2) Configuración:
Copiamos el fichero de configuración actual de micra:/boot/config-linux-2.6.26-486 a lenny:/usr/src/linux/

3) Compilamos el kernel 2.6.32.3:
La compilación no finaliza ya que me da un error de compilación:
...
make[1]: se sale del directorio `/usr/src/linux-2.6.32.3'
/usr/bin/make EXTRAVERSION=.3-pp01 ARCH=i386 \ -C Documentation/lguest make[1]: se ingresa al directorio `/usr/src/linux-2.6.32.3/Documentation/lguest' cc -m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE lguest.c -o lguest lguest.c:21:25: error: sys/eventfd.h: No existe el fichero o el directorio lguest.c: In function 'create_thread': lguest.c:1027: warning: implicit declaration of function 'eventfd' make[1]: *** [lguest] Error 1 make[1]: se sale del directorio `/usr/src/linux-2.6.32.3/Documentation/lguest' make: *** [debian/stamp/build/kernel] Error 2


Consultamos al oráculo: www.google.com
Posible problema (1):
http://www.debianadmin.com/step-by-step-tutorial-howto-compile-kernel-in-debian-5-0-lenny.html
http://www.esdebian.org/foro/27925/error-compilar-kernel-2626

Parece ser puede surgir este error sin no está instalada la librería zlib1g-dev.
Veamos si tenemos instalada la librería zlib1g-dev:

lenny:# dpkg -l|grep zlib1g-dev ii zlib1g-dev - 1:1.2.3.3.dfsg-12 - compression library - development

Pues esta correctamente instalada, esto no es la causa del error, a seguir buscando.

Posible problema (2), esta es la solucción:
Error al compilar Kernel 2.6.31.5: lguest / eventfd
2.6.31 for Debian 5/Lenny

Parece ser que hay un problema con libc-dev al instalar lguest.
Recomienda solcionarlo del siguiente modo:

lenny:# nano /usr/src/linux/Documentation/lguest/Makefile
-Cambiamos- "all: lguest" por "all:"

Y vuelta a realizar los pasos 1), 2), 3) .. y funciona!!!
generando los paquetes debian

linux-kernel-26-32-3-pp01.deb
linux-headers-2-6-32-3-pp01.deb

4) Instalación del paquete en micra.
micra:# dpkg -i linux-kernel-26-32-3-pp01.deb
micra:# dpkg -i linux-headers-26-32-3-pp01.deb

5) micra reboot
Funciona a la perfección.

Y ha solucionado el problema con la wifi rt73 de la generación de errores que llenaba warnings el kern.log

Ref:
Caracteristicas del Kernel 2.6.32

Exo-Recompilación del Kernel


En máquinas antiguas y lentitas, la recopilación del kernel puede ser una tarea lenta y penos, de horas o incluso días!!!.
Recuerdo que mi arcaico p90 con su intel pentium 90MHz y sus 32MB de RAM estuvo toda una noche y creo que no llegó a terminar la compilación del kernel 2.6.31. Eso si, lo intento con todo su entusiasmo y cpu.

Es posible compilar el nuevo kernel al estilo debian o red pill en otrá máquina que tengamos, con el sistema debian instalado y que sea más rápida. Pudiendo compilar el kérneles por un lado y probándolos en la maquina antigua simultaneamente !!!.

Howto: -seguir el howto de debian red pill pero con dos máquinas-
  • Descargar el nuevo kernel en la new-maquina (compiladora).
  • Configurar en nuevo kernel en la new-maquina con el archivo de configuración del kernel actual de la old-maquina (al que vamos a actualizar el kernel).
  • Compilar el new-kernel la new-maquina.
  • Instalar el paquete debian del new-kernel en la old-maquina.
... más vale una imagen de gimp que mil palabras:

.. o al menos eso dicen.

8 de enero de 2010

Recompilar el Kernel al estilo Debian: La Píldora Roja


Compilar el Kernel de Linux no es tan terrible como suena y se puede hacer de una forma conservadora manteniendo el anterion kernel por si las moscas.
En debian hay un método de recompilación del kernel que genera un paquete .deb instalable y desinstalable con apt o aptitude.
Tambien es posible recompilar el kernel en una máquina diferente a la que va destinada, esto está especialmente indicado en ordenatas antiguos, pudiendo luego instalarlo en la máquina carca como un paquete debian sin más.
Este método lo vi por algún sitio denominado como: La Píldora Roja.

Y ahora paso por paso:

1) Descargamos el Kernel y Patches: en www.kernel.org
La última versión estable o la que queramos con sus patches si los tuviera.

-lo descargamos en la carpeta /usr/src/ y lo descomprimimos-


# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.3.tar.bz2
# tar xvf linux-2.6.32.3.tar.bz2

- Hacer el enlace simbólico a la carpeta del nuevo kernel-
- Es recomendable borrar otros enlaces simbólicos de kernels anteriores que hubiera-

# ln -s linux-2.6.32.3 linux


2) Paquetes Debian necesarios:


# aptitude update
# aptitude install kernel-package build-essential libncurses5-dev fakeroot initramfs-tools zlib1g-dev

-aptitude se encargará de revisar los paquetes instalados, sus dependencia y si faltara algún otro paquete-

3) Configurando el Kernel:

Este es el paso clave. Aquí es donde se pueden hacer virguerias simplificando el kernel, quitando módulos que no sean necesarios y/o poniendo nuevos modulos necesarios para el hardware del equipo. Aqui es donde hacemos que no funcione ni a tiros o cuando el kernel se adapta angelicalmente a las especificaciones de nuestro hardware.
Para la gente normal hay dos opciones asumibles:
  • Usar la configuración por defecto del nuevo kernel.
  • Si ya hay un sistema linux funcionando en la máquina podemos usar la configuración de nuestro kernel actual, pero ojo puede que las mejoras del nuevo kernel no se configuren correctamente e incluso que no funcione si son versiones muy distantes.
Vamos con la configuración:
-limpiamos configuraciones de anteriores compilaciones del kernel-

# cd linux
# make clean && make mrproper


Hay varias formas de configurar el kernel:
  • make defconfig; configuración por defecto.
  • make oldconfig; toma el antiguo config y pregunta las cosas nuevas.
  • make xconfig; menus basados en X.
  • make gconfig; menus para gnome.
  • make localmodconfig; nuevo sistema de configuración en 2.6.32.
  • make menuconfig; menus basados en ncurses.

-Para usar la configuracion del kernel actual: Copiamos el fichero de configuración del kernel actual al directorio del nuevo kernel con el nombre .config-


# cp /boot/config-2.6.26-2-486 /usr/src/.config

-Creamos el menu de configuración-

# make menuconfig

... y aqui tenemos el sancta sanctorum del kernel, que podemos curiosear, revisar, cambiar y escojer la mejor configuración para nuestro hardware.

- Seleccionamos "Load alternate Configuration File"
- Y nos aparace en el siguiente menu el archivo que hemos copiado ".config"
- Aceptamos todo y salimos del menú de configuración.

4) Compilando el Kernel:

# make-kpkg clean
# fakeroot make-kpkg --initrd --append-to-version=-pp01 kernel_image

Se puede y/o compilar también las cabeceras del kernel añadiendo al final del comando anterior: kernel_headers

Y ahora ... paciencia, ya que esto lleva su tiempo, tiempo, y tiempo de compilación.
En pantalla iran apareciendo los módulos que se van compilando.

Comprobar que no aparecen errores de compilacion: en este caso hay que encomendarse a san google para ver si hay algún otro incauto le haya ocurrido lo mismo, intentar corregirlo y vuelta a empezar.

Finalmente obtendremos los paquetes debian:

kernel-linux-image.deb
kernel-linux-headers.deb (si hemos puesto la opción kernel_header)

5) Instalación del nuevo kernel:

# dpkg -i kernel-linux-image.deb

La instalación hace todos los cambios necesarios para el funcionamiento del nuevo kernel, incluso cambia el menu de arranque de grub /boot/grub/menu.lst poniendo como arranque por defecto el nuevo kernel, cosa que convien revisar ya que a veces no acierta.
Comprobar tambien que se ha creado la carpeta /lib/modules/linux-2.6.32.3 con los nuevos módulos correspondientes.

y solo queda...

# reboot

No es de extrañar que la cosa no funcione a la primera, don't panic ... lo podemos desinstalar y el sistema volverá, ó debe volver!, a su estado anterior :))

# dpkg -r kernel-linux-image.deb


webRef:

-Tutoriales-
Kernel_Compilation_From_Source
Compilar-kernel-estilo-debian

-Optimizar el kernel 2.6.32-
Nueva opción de configuración: # make localmodconfig
http://preguntas.barrapunto.com/preguntas/10/01/04/2254250.shtml

Debian 5.0 Lenny con el kernel 2.6.32


El kernel actual de Debian Lenny es el 2.6.26, y segun este Brief Updates on Debian Project hay una imagen con el kernel 2.6.32.
Uuummh... esto puede ser interesante para ver si arreglo los problemas de la wifi rt73 de micra:

http://kmuto.jp/debian/d-i/

i386
  • lenny-custom-1230.iso - kernel version 2.6.32 ... (more details)
    [ download from JP or FR (usually faster) ]
    MD5: d7c6faec22bac62e6ca0ec6bc29a462e Size: 256 MB (268632064 bytes)
    [ hd-media: boot.img.gz (512MB USB image), netboot.tar.gz (TFTP boot) ]

  • lenny-custom-0627.iso - kernel version 2.6.30 + linux-firmware + ext4 support ... (more details)
    [ download from JP or FR (usually faster) ]
    MD5: 41d2cf9a3f03b067c97b7576eef0d856 Size: 228 MB (239527936 bytes)
    [ hd-media: boot.img.gz (512MB USB image), netboot.tar.gz (TFTP boot) ]

  • lenny-custom-0302.iso - kernel version 2.6.28 + WPA support + Ubuntu linux-firmware ... (more details)
    [ download from JP or FR (usually faster) ]
    MD5: cf6ef8f345d4ef259de8f69002529026 Size: 217 MB (228560896 bytes)
    [ hd-media: boot.img.gz (512MB USB image), netboot.tar.gz (TFTP boot) ]