jueves, 17 de septiembre de 2020

Módem SupraExpress 56i PRO SupraSST

En 1999 compré un módem SupraExpress 56i PRO SupraSST, creado por la empresa Diamond Multimedia, para conectar a internet a 56 Kb/s. Es una tarjeta PCI y me funcionó muy bien en Windows, pero cuando empecé a utilizar Linux y quise utilizarlo en este sistema operativo me di cuenta de que era un módem por software y necesitaba un controlador que solo estaba disponible para Windows. No funcionaba como mi antiguo módem Everex Traveller 2400i que es una tarjeta ISA, se configura como un puerto serie y no necesita controlador. Así que tuve que comprar un módem externo Conceptronic 56ER2 que se conecta a un puerto serie del ordenador y tampoco necesita controlador.


Los módems por software necesitan que alguna de sus funciones las realice el ordenador. Estás funciones pueden variar de unos a otros módems. Los llamados "controllerless" realizan la mayoría de las funciones y necesitan poca ayuda del ordenador. Por el contrario con los "pure software" la mayoría de las funciones las hace el ordenador.

El chip principal de la tarjeta es el Conexant RH56D-PCI y entra en la categoría de "controllerless" con funciones para datos, fax y voz. Ya no volví a usar este módem pero después de escribir los artículos sobre mi módem Everex Traveller 2400i y la comunicación módem a módem busqué en internet la posibilidad de usarlo en Linux y encontré que algunos años después la empresa Linuxant comenzó a desarrollar un controlador para este chip en Linux.

Esta empresa creó varios controladores para diferentes chips Conexant. Las funciones de datos hasta 14,4 Kb/s eran gratuitas, para la velocidad máxima de 56,6 Kb/s y FAX era necesario comprar una licencia. Instalé el módem en el ordenador "servidor2" que usé para el artículo Comunicación Módem a Módem y con el comando lspci pude ver que mi módem necesitaba el controlador HCF.

# lspci

00:0a.0 Communication controller: Conexant HCF 56k Data/Fax Modem (rev 08)

Como estos módems ya no se usan el desarrollo de los controladores ha cesado y la última versión disponible necesita un kernel 2.4 o 2.6. La versión más moderna de Debian que encontré donde se instalaba bien el controlador fue Lenny. Instalé esta versión y ya aproveché para escribir un artículo sobre la instalación de versiones antiguas de Debian.

Desde la página de descargas del controlador debemos descargar el paquete necesario para nuestra distribución. Si está comprimido deberemos descomprimirlo.

# wget http://www.linuxant.com/drivers/hcf/full/archive/hcfpcimodem-1.21full/hcfpcimodem_1.21full_i386.deb.zip
# unzip hcfpcimodem_1.21full_i386.deb.zip

Si es un paquete genérico con código fuente necesitaremos instalar gcc, make y las cabeceras del kernel para compilarlo.

# apt-get install gcc make linux-headers-2.6.26-2-686

Por último podremos instalarlo. La instalación compilará los módulos del kernel que componen el controlador, los cargará y configurará el sistema para que se carguen al iniciar mediante el archivo /etc/modprobe.d/hcfpci.conf.

# dpkg -i hcfpcimodem_1.21full_i386.deb

Seleccionando el paquete hcfpcimodem previamente no seleccionado.
(Leyendo la base de datos ...  
23331 ficheros y directorios instalados actualmente.)
Desempaquetando hcfpcimodem (de hcfpcimodem_1.21full_i386.deb) ...
Configurando hcfpcimodem (1.21full) ...
Conexant HCF controllerless PCI modem driver, version 1.21full

If you need license keys, assistance or more information, please go to:
	http://www.linuxant.com/

When reporting a problem for the first time, please send
us the file generated by "hcfpciconfig --dumpdiag".

No pre-built modules for: Debian-5.0.10 linux-2.6.26-2-686 i686-SMP

Trying to automatically build the driver modules...
(this requires a C compiler and proper kernel sources to be installed)

Building modules for kernel 2.6.26-2-686, using source directory
/lib/modules/2.6.26-2-686/build. Please wait...
done.

Automatically guessed region (using timezone): "SPAIN"

Setting region for modem unit 0: "SPAIN"

To change, use "hcfpciconfig --region" or "AT+GCI=<T35code>"
The current region can be displayed by entering "ATI9" in a terminal program.

Current parameters: ("hcfpciconfig --info")

Config for modem unit 0: /dev/ttySHCF0
	Device instance: 0-PCI-14f1:1033-1092:0ac8
	HW revision    : DP Part '74' Rev 'BA' Asic ID 0x85
	HW profile name: hcfpciv90
	Registration ID: 023B-60D5-5091
	License owner  : unknown
	License key    : FREE
	License status : FREE (max 14.4kbps data only)
	Current region : SPAIN (T.35 code: 00A0)

The /dev/modem alias (symlink) points to ttySHCF0

To enable full 56K modem and FAX functionality, enter your license information
with "hcfpciconfig --license".

License owner and key data must EXACTLY match the information respectively
provided to and by Linuxant. Otherwise, license status will remain "FREE"!

Además de los módulos el paquete incluye el programa hcfpciconfig con el que se pueden configurar varios parámetros del controlador y añadir una licencia para alcanzar la máxima velocidad de 56 Kb/s y usar las funciones de FAX. Con el comando lsmod podemos ver los módulos cargados y sus relaciones.

# lsmod | grep hcf

hcfpcihw                8832  0 
hcfpciserial           20420  1 hcfpcihw
hcfpciengine          952016  2 hcfpcihw,hcfpciserial
hcfpciosspec           65868  3 hcfpciserial,hcfpciengine

El controlador crea el puerto serie /dev/ttySHCF0 con el que podremos interactuar con el módem. Además la instalación del paquete crea un enlace simbólico desde /dev/modem a ese dispositivo. Con setserial podemos ver información sobre el puerto.

# setserial -a /dev/ttySHCF0

/dev/ttySHCF0, Line 0, UART: undefined, Port: 0xbc00, IRQ: 12
	Baud_base: 115200, close_delay: 50, divisor: 0
	closing_wait: 3000
	Flags: spd_normal

Para recibir conexiones de igual forma que explicaba en Comunicación Módem a Módem con el módem Everex Traveller 2400i se puede usar también mgetty. Para arrancar el programa en Debian Lenny podemos utilizar el sistema init, en esa versión de Debian aún no se usaba systemd. En el archivo /etc/inittab debemos añadir una línea como la siguiente:

T3:23:respawn:/sbin/mgetty -D /dev/ttySHCF0

La línea se compone de cuatro partes separadas por dos puntos: identificador, niveles de ejecución en los que se ejecuta, modo de ejecución y comando a ejecutar. El modo de ejecución "respawn" hace que se vuelva a ejecutar el comando una vez terminada su ejecución. Después de modificar la configuración de init debemos reiniciar el sistema o indicarle que vuelva a leer la configuración con el parámetro q para que los cambios hagan efecto.

# init q

A continuación ya podremos conectar desde otro ordenador usando minicom. En el mensaje de bienvenida podremos ver como aparece el nombre de puerto ttySHCF0. La velocidad de conexión de 38400 b/s no es real ya que la versión gratuita del controlador solo permite 14400 b/s.

Bienvenido a minicom 2.7.90

OPCIONES: I18n 
Compilado en Jul 26 2020, 10:44:57.
Puerto /dev/ttyACM0, 17:57:45

Presione CTRL-A Z para obtener ayuda sobre teclas especiales

ATDXXXXXXXXX
CONNECT 9600
Debian GNU/Linux ttySHCF0 38400 (38400)
              
servidor2 login: usuario1
Password: 
Linux servidor2 2.6.26-2-686 #1 SMP Sun Mar 4 22:19:19 UTC 2012 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
usuario1@servidor2:~$ ls /
bin    dev   initrd.img  media  proc  selinux  tmp  vmlinuz
boot   etc   lib         mnt    root  srv      usr
cdrom  home  lost+found  opt    sbin  sys      var
usuario1@servidor2:~$

Eso es todo lo necesario para utilizar el módem. Otros módems por software pueden necesitar acciones distintas dependiendo de las funciones que realice el módem y las que realice el ordenador. De esta forma podremos usar este tipo de módems para realizar comunicaciones de módem a módem.

No hay comentarios:

Publicar un comentario