Lucent Winmodem en Knoppix

Cuando estoy en casa, el ordenador portatil se conecta al de sobremesa y ambas comparten la salida a Internet repartiéndose el ancho de banda como buenas hermanas. Bien... esto puede hacerse usando una red Ethernet convencional o una red WiFi, que es lo más normal hoy en día. Pero además de conectarlos en red, se puede incluso conectar el portátil como "terminal tonto" del de sobremesa, con lo que éste último está siendo entonces usada por dos usuarios simultáneos, pero no voy a contar aquí ese tema, puesto que los chicos de Bulma ya lo han hecho muy bien (de hecho, ese truco lo aprendí de ellos).

El problema es cuando NO estas en casa. En ese momento el portátil no puede salir a Internet porque le falta su salida habitual a la red.

Los Toshiba Satellite 2100 CDS, como mi vieja moira, estaban equipados de serie con un módem interno, con el que podría conectar con otro proveedor. Pero se trata de un Winmodem, con lo que lo primero es conseguir que funcione en linux. :-(

Afortunadamente, el fabricante del modem es Lucent, que tiene el buen sentido de publicar drivers para linux, tanto en forma de módulos instalables, como en forma de código fuente.

Aunque cuando estaba en activo moira, Lucent incluía módulos para RedHat, Debian, etc... pero no para Knoppix.

Vale, ¿qué se podía hacer?.

Pues se podía instalar el código fuente, claro. Pero eso exige instalar las fuentes del kernel, entre otras cosas. Sin entrar en detalles, digamos que como que no me apetecía demasiado. Claro que Knoppix viene a ser una Debian testing, ¿no?.

Pues sí, lo es. Así que nos vamos a la página adecuada, seguimos el enlace con los drivers de Lucent (si nos deja, porque la última vez que lo intenté, me pedía un login y una contraseña para entrar). Luego nos bajamos el paquete Debian correcto y lo instalamos. Ya está, digo yo.

Pues no. Porque resulta que son módulos compilados para el kernel 2.4.20, y Knoppix usa el 2.4.20-xfs (uuuuyyyy...), con lo que si intentamos hacer un modprobe nos saltan todos los unresolved symbols y a freir espárragos. Eso, sin tener en cuenta que los módulos no están donde deberían...

Vale. La solución más fácil y rápida (también la menos ortodoxa) era forzar la carga de los módulos:

[root@moira lacofi]# insmod -f /lib/modules/2.4.20/ltmodem/lt_modem.o

Y nos contesta:

Warning: kernel-module version mismatch
/lib/modules/2.4.20/ltmodem/lt_modem.o was compiled for kernel
version 2.4.20 while this kernel is version 2.4.20-xfs
Warning: loading /lib/modules/2.4.20/ltmodem/lt_modem.o will
taint the kernel: non-GPL license - UNKNOWN
See http://www.tux.org/lkml/#export-tainted for information about
tainted modules
Warning: loading /lib/modules/2.4.20/ltmodem/lt_modem.o will
taint the kernel: forced load
Module lt_modem loaded, with warnings

(Que traducido, significa "¡Uy lo que me ha dicho!. Vale, no es muy ortodoxo y te aviso, pero lo hago").

Ahora cargamos el segundo módulo (el orden es importante, al reves no lo admite):

[root@moira lacofi]#insmod -f /lib/modules/2.4.20/ltmodem/lt_serial.o
Warning: kernel-module version mismatch
/lib/modules/2.4.20/ltmodem/lt_serial.o was compiled for kernel
version 2.4.20 while this kernel is version 2.4.20-xfs
Warning: loading /lib/modules/2.4.20/ltmodem/lt_serial.o will
taint the kernel: forced load
See http://www.tux.org/lkml/#export-tainted for information about
tainted modules
Module lt_serial loaded, with warnings

Tras esto nos aseguramos de que exista el dispositivo /dev/ttyLT0, que es el que representa al propio modem. Si no es así, podemos crearlo a mano:

[lacofi@moira lacofi]$ ls /dev/ttyLT0
ls: /dev/ttyLT0: No existe el fichero o el directorio
[lacofi@moira lacofi]$ su
password:
[root@moira lacofi]# cd /dev
[root@moira dev]# mknod /dev/ttyLT0 c 62 64
[root@moira dev]# chown root.root /dev/ttyLT0
[root@moira dev]# chmod a+rw /dev/ttyLT0
[root@moira dev]# ln -s /dev/ttyLT0 /dev/modem
[root@moira dev]# exit
[lacofi@moira lacofi]$

También convendría crear un enlace /dev/modem apuntando a /dev/ttyLT0, porque muchos programas acuden automáticamente a /dev/modem cuando necesitan usarlo.

[root@moira rc5.d]# ln -s /dev/ttyLT0 /dev/modem

Sin embargo, comprobaremos que el enlace /dev/modem desaparece cada vez que rearrancamos la máquina. Esto ocurre porque lo borra el script /etc/init.d/knoppix-autoconfig, que es el que ejecuta toda la maravillosa autoconfiguración del Knoppix en el arranque. Bueno, pues solo hay que editarlo, irse a la linea donde dice:

# Delete obsolete links and files before starting autoconfig
rm -f /dev/cdrom* /dev/cdwriter* /dev/mouse* /dev/modem*
/dev/scanner* /etc/sysconfig/i18n /etc/sysconfig/keyboard \
/etc/sysconfig/knoppix 2>/dev/null

... y borrar lo que he marcado en color cian. Lo principal ya está. Ahora arrancamos el KPPP y veremos que detecta el modem y conecta sin problemas. Pero en mi caso, quería tener los módulos cargados desde el arranque, así que pongo en /etc/init.d un script llamado "ltmodem", con permisos de lectura y ejecución:

#!/bin/sh
insmod -f /lib/modules/2.4.20/ltmodem/lt_modem.o
insmod -f /lib/modules/2.4.20/ltmodem/lt_serial.o

A continuación se hace un link a /etc/rc5.d

[lacofi@moira lacofi]$ cd /etc/rc5.d
[lacofi@moira rc5.d]$ su
Password:
[root@moira rc5.d]# ln -s ../init.d/ltmodem S29ltmodem

Y esto fue todo. El módem siempre listo y la Red siempre a punto, por los siglos de los siglos... :-)

Naturalmente, todo esto es probablemente inútil a estas alturas, porque el tiempo ha pasado y tanto Knoppix como todas las demás distribuciones deberían soportar de serie los Winmodems Lucent. Así que la respuesta correcta probablemente sea: "actualiza tu sistema operativo, por Dios". Pero además porque moira ha muerto dejando su sitio a lynette. En cualquier caso, dicho queda para nostálgicos y curiosos a modo de ejercicio. Quizás le de alguna idea a alguien, con otro problema de hardware distinto, en Knoppix.

Be Sociable, Share!

Puedes seguir cualquier respuesta a esta entrada mediante el canal RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio.

Deja un comentario

Disculpa, debes iniciar sesión para escribir un comentario.