Cómo configurar el Win Módem AMR/USB v90 56K PCtel HSP56 WDM sobre kernel 2.4. o 2.6.

Identificado como Silicon Integrated Systems [SiS] AC'97 Modem Controller (rev a0) por el utilitario GNU/scanModem. Identificado como HSP56 MR PCtel,Inc por Windows(tm) XP Professional.

J.A.P. javier.debian.bb.ar@gmail.com GNU/Linux Registered User # 389414 (http://counter.li.org)

Abstract

Este documento describe cómo configurar el Win Módem HSP56 de PCtel, Inc. en configuración "Audio Modem Riser" (AMR) y "Universal Serial Bus" (USB)

This document are free software; you can redistribute them and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. For more details, on Debian GNU/Linux systems, see the file /usr/doc/copyright/GPL for the full license.

1. Recomendación inicial:

Tira ese módem, cómprate uno compatible con GNU/Linux. WDM significa Windows(tm) Dial-up Módem, y por ende, bajísima o nula compatibilidad con GNU/Linux. Visita el enlace http://xmodem.org/

2. Sistema sobre el que fue probado el procedimiento.

3. Instalación del controlador.

La empresa fabricante del módem originalmente es PCtel Inc. la cual sólo provee soporte GNU/Linux para los núcleos 2.2. (pctel-2.2.tar.gz) y 2.4. ( pctel-0.9.7-9.tar.gz. La empresa Conexant (http://www.linuxant.com/drivers) está proveyendo soporte, pero con un controlador pago. Hay una versión gratuita, pero condiciona la capacidad del módem a un 50% de su ancho de banda.

LinModems (http://linmodems.technion.ac.il/linmodems_support_sp.html) posee uno que sí funciona, pero no es muy fácil de convencer al sistema para que lo haga adecuadamente. Dicho controlador es eficiente pero poco funcional en su instalación, sobre todo para los que entendemos inglés a gatas, cosa que trataré de simplificar. Mucho de lo que escribiré está en el README del controlador en cuestión, pero en inglés.

Por otra parte, esto está hecho para una instalación domiciliaria donde asumo que no hay una red corriendo, con varias personas que tienen sus propias sesiones en el mismo equipo, algo muy común en una casa de familia. Algunas cosillas del final en la configuración de kppp no son recomendables desde el punto de vista de seguridad en una máquina en red.

3.1. Características del controlador.

3.2. Hardware Soportado

HAMR5600 basado en tarjetas de módem AMR/CNR/MDC/ACR de los siguientes chips Southbridge:

3.3. Requerimientos mínimos.

3.4. Instalación.

Todo lo que sigue debes hacerlo desde una consola como root.

Lee el enlace http://linmodems.technion.ac.il/linmodems_support_sp.html

Bájate el archivo http://linmodems.technion.ac.il/packages/scanModem.gz, descomprime y ejecuta. Asegúrate que tu módem sea el que estamos tratando. Eso lo verás en los archivos modem/scanout y modem/ModemData.txt. Lee todo lo que se ha generado en la carpeta modem, que no viene mal y posee respuestas a muchas preguntas comunes.

Bájate el archivo "slmodem-2.9.11"; la última versión es http://linmodems.technion.ac.il/packages/smartlink/slmodem-2.9.11-20061021.tar.gz y cópialo en algún lugar, asumamos en /usr/src. Este es el controlador del módem en sí.

Bájate el archivo ungrab-winmodem de http://linmodems.technion.ac.il/packages/smartlink/ungrab-winmodem.tar.gz y cópialo en algún lugar, asumamos en /usr/src. Esto hace que Linux detecte al módem como si se tratase de un verdadero módem físico, y permite utilizar los puertos estándares.

Instala las cabeceras del kernel; en mi caso, el 2.6.16-2-686.

~# apt-get install linux-headers-2.6.16-2-686 -y

Descomprime el archivo de los controladores.

/usr/src# gzip -dc slmodem-2.9.11-20061021.tar.gz | tar -xf 
/usr/src# gzip -dc ungrab-winmodem.tar.gz | tar -xf 

Cámbiate al primer directorio creado.

/usr/src# cd slmodem-2.9.11-20061021

Compílalo.

/usr/src/slmodem-2.9.11-20061021# make

Instálalo.

/usr/src/slmodem-2.9.11-20061021# make install

Cámbiate al segundo directorio creado.

/usr/src/slmodem-2.9.11-20061021# cd ../ungrab-winmodem

Compílalo.

/usr/src/ungrab-winmodem# make

Instálalo.

/usr/src/ungrab-winmodem# make install

3.5. Activando el controlador.

El paquete trae el archivo slmodem-2.9.11-20061021/scripts/debian/slmodemd; cópialo a /etc/init.d. Este script te proveerá una forma de activar o desactivar el demonio de control pero... no funciona todo lo bien que debe.

~# cp scripts/debian/slmodemd /etc/init.d

3.6. Configurando los dispositivos del módem.

Aquí es donde empiezan los problemas. Vamos a modificar el script de inicio en reemplazo del que trae el controlador original. Por alguna razón que escapa a mis conocimientos, el controlador no es mantenido por el sistema, por lo que hay que reinstalarlo todas las veces que se arranca el sistema. Si alguien sabe cómo evitar esto, que avise y corrija. Por este motivo, es que cargué los fuentes en /usr/src/, y por ello, ¡no hay que borrarlos!. Además, al ejecutarse, se demora la creación del dispositivo /dev/ttySL0 correspondiente, y por ende no se pueden crear los enlaces pertinentes sin colocar un bucle de espera (me hace acordar mis lejanísimos tiempos de BASIC sobre Commodore64).

Abre con tu editor favorito (emacs, vim, mcedit) el script /etc/init.d/slmodemd y reemplaza la sección start() por lo siguiente:

start() {
        modprobe -r ungrab-winmodem
        modprobe -r slamr
        
        echo -n "Recompilando ungrab-winmodem... "
        cd /usr/src/ungrab-winmodem
        make install >/dev/null
        echo "hecho."
        cat /proc/modules | grep 'ungrab-winmodem' >/dev/null || { 
          echo -n "Cargando controlador ungrab-winmodem al kernel... "
          modprobe ungrab-winmodem && echo "hecho." || { i
            echo "ERROR."
            exit -1
          }
        }

        echo -n "Recompilando slmodem... "
        cd /usr/src/slmodem-2.9.11-20061021
        make install >/dev/null
        echo "hecho."
        cat /proc/modules | grep 'slamr' >/dev/null || { 
          echo -n "Cargando controlador SmartLink Modem al kernel ... " 
          modprobe slamr && echo "hecho." || { i
            echo "ERROR."
            exit -1
          }
        }
        echo -n "Iniciando controlador Starting SmartLink Modem para: $SLMODEMD_DEVICE"
        start-stop-daemon --start --pidfile $PIDFILE --exec $DAEMON --make-pidfile --background --quiet -- -c $SLMODEMD_COUNTRY /dev/$SLMODEMD_DEVICE
        RETVAL=$?

        until test -e /dev/ttySL0; do 
            echo -n ""
        done
        chmod a+w /dev/ttySL0
        ln -s -f /dev/ttySL0 /dev/modem
}

Lo que hemos hecho es automatizar el proceso de reinstalación al arranque, habilitar el módem para todos los usuarios y generar un enlace simbólico /dev/modem al dispositivo /dev/ttySL0 para que KPPP pueda accederlo.

Cárgalo para que arranque al inicio del sistema

~# update-rc.d slmodemd defaults

Activa el dispositivo

~# /etc/init.d/slmodemd start

3.7. Configurando y usando el módem desde las X.

Habilita a KPPP para que puedan usarlo los usuarios comunes. Por algún motivo que desconozco, sólo root puede ejecutarlo, y además, falta un archivo para que funcione correctamente.

~# chmod a+x /usr/bin/kppp
~# vi /etc/resolv.conf
        (y lo guardas vacío)
~# chmod a+rw /etc/resolv.conf

Luego, debes RTFM en /usr/share/doc/kppp/READEME.Debian. Dá de alta a los usuarios que deseas en el grupo "dip". Modifica el archivo /etc/ppp/peers/kppp-options y quita la marca de comentario a la línea "noauth".

Debes configurar la cuenta KPPP de la siguiente manera.

Ahora configuramos el módem.

Si has hecho bien los deberes, tendrás una pantalla con todas las características del módem.

Ayuda extra: desde root ejecuta wvdialconf, y copia el resultado grabado en el archivo /etc/wvdial.conf a la plantilla de configuración de kppp. Si prefieres a la antigua, conecta desde wvdial. Modifica el archivo de configuración para que marque por tonos (ATDT) y no por pulsos (ATDP)

3.8. Configuración por defecto.

Recuerda que el país por defecto del módem es USA. Si quieres cambiarlo, modifica el archivo /etc/default/slmodemd y pon tu país. Si tu módem es USB en vez de AMR, modifica la línea que dice

SLMODMEMD_DEVICE = slamr0

por la siguiente

SLMODMEMD_DEVICE = slusb0

4. Despedida.

Dale una leída a http://linmodems.technion.ac.il/pctel-linux/Pctel.ATCommand.Guide.6.23.00.pdf . A veces es necesario modificar algunos de los comandos de inicialización del módem debido a temas puntuales de tu proveedor de teléfono, tipo de central telefónica, tensión de línea, proveedor de internet, etcétera.

Bahía Blanca, Argentina, 6 de Noviembre de 2006.


CategoryHardware | CategoryProposedDeletion: Outdated installation procedure (software is packaged), content specific to an unsupported release.