MeltIT
3Mar/101

Linux/Debian 5: Realtek RTL8139D ethernet drivers (8139D)

Hoy estaba instalando Linux, Debian 5 Lenny (i386), en una PC vieja, una Vectra VE. En esta, tengo una placa de red PCI. Según lspci, Hangzhou Silan Microelectronics RTL8139 [REALTEK] (rev 01). Según observo el controlador (fisico), leo RTL8139D.

El problema fue que en el instalador no me reconocía la placa de red. Me ofrecía una lista para seleccionar. Lo primero que hice fue ver la placa fisicamente, a ver que controlador veía, encontre el que menciono arriba. En la lista, encuentro dos opciones para el 8139, el correcto parece ser 8139too, pero el mismo falla (sigue pidiendome el controlador).

Con ALT+F2, accedo a una consola. Procedo a utilizar lspci y me encuentro con que aparece la placa de red, como mencione al inicio del post. Realizo un modprobe 8139too, y observo el dmesg, y me encuentro con que carga el módulo, pero al parecer sigue sin funcionar.

Una busqueda en google (rtl8139D debian), encuentro un resultado, un tanto extraño, ya que al parecer esta explicado así nomás y no parece muy real. No obstante, lo que menciona en el título es, rtl8139D = sc92031. Al ver esto lo que pienso es que el módulo que debo buscar es sc92031, el problema es que no esta inclúido en el CD de Debian.

Obteniendo el .ko (kernel object, module):

(A continuación relato como lo obtuve, adaptando esto se puede encontrar como obtener el controlador para otras arquitecturas, de no interesar, más abajo proporciono el link directo al .ko [aunque para i386 (32bits) únicamente])

Siguiendo en el post ese que encontré, veo la línea deb http://debian.torredehanoi.org/debian lenny main contrib non-free, la cual hace referencia a un repositorio Debian (en este caso, replíca oficial). Deduzco que es posible que el archivo que estoy buscando se encuentre ahí.

(En un futuro hare una guía simple de como explorar manualmente estos archivos) Entro mediante el navegador web ( link ), y navego hacía la raíz. Veo el archivo Contents-i386.gz (que es un archivo comprimido y adentro tiene un archivo de texto), el cual hace referencía a la plataforma que estoy utilizando (x86 [32-bit]). Este archivo es el que indica en que paquete se encuentra cada archivo.

Busco sc92031 y encuentro lib/modules/2.6.26-2-486/kernel/drivers/net/sc92031.ko (.ko = kernel object, módulo, controlador/driver) en el archivo admin/linux-image-2.6.26-2-486. Necesito el linux-image ese.

Navego hacía main/binary-i386/, y encuentro el archivo Packages.gz, el cual son los paquetes, y estoy dentro de la arquitectura. Como en el caso anterior, extraígo y examino el archivo. Busco el paquete, (linux-image-2.6.26-2-486), y encuentro su ubicación en el repositorio (Filename: pool/main/l/linux-2.6/linux-image-2.6.26-2-486_2.6.26-21_i386.deb). El archivo entonces esta en http://debian.torredehanoi.org/debian/pool/main/l/linux-2.6/linux-image-2.6.26-2-486_2.6.26-21_i386.deb.

(Para obtener de otras arquitecturas, en vez de i386, debería bastar con buscar el .deb correto, dentro del Packages.gz de la arquitectura deseada en este link (o en cualquier otro repositorio que sea réplica oficial) ya que el paquete que estamos buscando es linux-image-2.6.26 (?) , o cualquiera sea la versión del kernel, y en este, extraer el mencionado .ko)

En Windows, con 7-zip, se puede extraer el .deb, y navegar por data.tar.gz, que son los archivos del paquete. Abro el .deb descargado, y navego hacía lib/modules/2.6.26-2-486/kernel/drivers/net/ (directorio de los modulos del kernel, lo subrayado es la versión del kernel) y encuentro el sc92031.ko, que estaba buscando. Lo extraígo y copio a un diskette para pasarlo a la otra PC (esto es porque probe inicialmente pasarlo con la opción de buscar en un medio extraíble y no funciono) (es posible hacer esto con un pendrive).

sc92031.ko, descarga directa.

Moviendo e "instalando" el módulo:

En mi caso, lo voy a realizar con un floppy disk (diskette), ya que es una PC vieja, es lo mismo para un PENDRIVE, solo cambia el mount, para más info, ver este articulo, que explica como encontrar cual es la unidad USB.

Para montar un floppy, basta con mount /dev/fd0 /mnt/undirectorio, siendo undirectorio, una carpeta ya creada (mkdir /mnt/undirectorio/). Procedo a copiar el .ko al sistema:
cd /mnt/undirectorio/
cp sc92031.ko /lib/modules/2.6.26-2-486/kernel/drivers/net/

Por último, modprobe sc92031, y no me muestra nada, lo cual me índica una carga satisfactoria.

Vuelvo a la instalación, ALT+F1, y luego de seleccionar uno cualquiera (ej, 8391too), salta a la configuración DHCP (que también se completa), con lo cual la instalación fue satisfactoria y continuo con la misma.

Otra opción es también terminar la instalación del sistema, y luego agregar el .ko, una vez en el sistema.

Filed under: Linux Leave a comment
Comments (1) Trackbacks (0)
  1. Wauu parece que esta bueno, justamente tengo la misma placa espero poder configurarla, igualmente se agradece por el laburo ;)


Leave a comment

 

No trackbacks yet.