domingo, mayo 13, 2007

Configurar en linux tarjeta de red Marvell 88E8056 integrada en placa Gigabyte GA-965P-S3


Después de llevar bastante tiempo sin publicar ninguna entrada, motivado entre otras cosas por un cambio de equipo que me ha dado bastantes quebraderos de cabeza, recurro a publicar la solución a uno de los problemas que me he encontrado.

Inicialmente pedí el equipo con una placa base asus P5B, pero se sobrecalentaba y el equipo se quedaba colgado, daba igual cuál fuera el sistema operativo que le instalara. Tras dos cambios decidí que me cambiaran la placa por una Gigabyte 965P-S3, de características similares salvo por el puerto e-Sata que no incluye y por la tarjeta de red integrada, que en vez de una típica con chip Realtek incorpora el chip Marvell 88E8056.

Ubuntu Edgy no me la detectaba y en el CD-ROM venían drivers para linux con el inconveniente de que no eran binarios, sino que había que compilarlos. Primer problema, no tenía instalado el paquete linux-headers para poder compilar y no tenía red. La solución a esto fue poner al ordenador una antigua tarjeta de red PCI con chip Realtek 8139 que lógicamente se detectó a la primera.
Así me pude instalar el paquete linux-headers necesario para compilar:

sudo aptitude install linux-headers

En la carpeta Network/Marvell/Other Driver/Linux del cdrom de drivers de la placa base se encontraba el driver para linux, en el archivo install-7_06.tar.bz2, que descomprimí en mi carpeta de usuario utilizando la opción "Extraer en..." del menú contextual. Para ahorrar tiempo os diré que realicé todos los pasos que vienen en el fichero README y no compilaba correctamente, con lo cual decidí bajarme los drivers de la web del fabricante, que tampoco funcionaron.
Recurrí a buscar en internet y me bajé nuevamente los drivers de un enlace de la página www.opendrivers.com, concretamente
en está página. De aquí me bajé una versión superior, concretamente la 10.0.4.3, incluida en el archivo install_v10.0.4.3.tar.gz2. Nuevamente descomprimí este fichero, lo que generó la carpeta DriverInstall en mi directorio de usuario.

Hecho esto, entramos en el directorio DriverInstall y basta con ejecutar el script install.sh con sudo ./install.sh, pero al menos en mi caso, como el script indica que debe ser ejecutado por el shell /bin/sh, y en mi caso el enlace simbólico /bin/sh apuntaba al shell dash, se producía un error al ejecutar. Hay dos soluciones igual de rápidas: cambiar el script o cambiar el enlace simbólico a otro shell como por ejemplo bash. Yo abrí el archivo install.sh con gedit y cambié la primera línea #!/bin/sh por #!/bin/bash. Tras ejecutar el archivo, se compilaron e instalaron los módulos necesarios, apagué el equipo, quité la vieja tarjeta de red, arranqué de nuevo y con la herramienta de configuración de la red Sistema/Administracion/Red asigné la dirección IP, máscara de subred, dirección de puerta de enlace y servidores DNS y funcionó correctamente.