Una vez que tenía mi módem Everex Traveller 2400i preparado el siguiente paso era instalarlo en un ordenador con alguna ranura ISA libre, configurar otro módem en otro ordenador y realizar comunicaciones entre los dos módems a través de la línea telefónica para probar los sistemas que se usaban antes de internet y los sistemas que se pueden utilizar hoy día para conectar dos equipos sin necesidad de conectar a internet.
En los dos ordenadores usé Debian. El módem lo configuré para utilizar el puerto /dev/ttyS1. Con el comando setserial se puede ver como tiene la dirección 0x02f8, la IRQ 3 y 115200 baudios de velocidad máxima entre el módem y el ordenador. No hay que confundir esta velocidad con la velocidad entre módems. Al conectarse un módem a otro intentarán conectarse automáticamente a la mayor velocidad que les permitan los estándares de comunicación que compartan entre si. La comunicación con el puerto serie es binaria, con señales de dos niveles, por lo que la velocidad es de un bit/s por baudio. En la comunicación entre módems dependiendo del estándar usado cada baudio puede equivaler a más o menos bit/s.
# setserial -a /dev/ttyS1 /dev/ttyS1, Line 1, UART: 16550A, Port: 0x02f8, IRQ: 3 Baud_base: 115200, close_delay: 50, divisor: 0 closing_wait: 3000 Flags: spd_normal skip_test
A continuación instalé el módem en un ordenador con nombre "servidor2". Para poder recibir conexiones podemos usar el programa mgetty indicándole el puerto serie a usar. Se puede indicar la ruta completa o solo el nombre. También le podemos pasar el parámetro -D para que solo utilice el dispositivo como módem de datos y no haga la inicialización del fax. Con el parámetro -s podemos fijar la velocidad.
# mgetty -D /dev/ttyS1
Este programa antes se ejecutaba a través del archivo /etc/inittab, ahora con el uso de systemd es necesario crear una "unidad" de este sistema. Con el parámetro Restart se le indica que cuando termine su ejecución se vuelva a ejecutar. Esto hace que cuando se termine una conexión el programa se vuelva a ejecutar para recibir otra conexión.
[Unit] Description=mgetty Documentation=man:mgetty(8) Requires=systemd-udev-settle.service After=systemd-udev-settle.service [Service] Type=simple ExecStart=/sbin/mgetty -D /dev/ttyS1 Restart=always PIDFile=/run/mgetty.pid.ttyS1 [Install] WantedBy=multi-user.target
El archivo lo podemos guardar en /lib/systemd/system/mgetty.service y hacer que se inicie automáticamente con el comando enable o iniciar y parar manualmente con los comandos start y stop.
# systemctl enable mgetty
En otro ordenador, un portátil, usé un móvil Nokia 6630 para hacer de módem y conectar a "servidor2". Mediante un cable con una conexión no estándar que se conecta en la parte de abajo del móvil y un conector USB para el portátil quedan conectados los dispositivos y en Linux aparece el módem como el puerto serie /dev/ttyACM0.
Con setserial se puede ver que el módem no emula ninguna UART conocida y que la máxima velocidad entre módem y ordenador es de 9600 baudios = 9600 b/s.
# setserial -a /dev/ttyACM0 /dev/ttyACM0, Line 0, UART: unknown, Port: 0x0000, IRQ: 0 Baud_base: 9600, close_delay: 50, divisor: 0 closing_wait: 3000 Flags: spd_normal
Los dispositivos de puerto serie como /dev/ttyACM0 tienen como grupo dialout. Si queremos que un usuario distinto de root utilice el módem debemos añadirle a este grupo con el comando adduser o editando manualmente el archivo /etc/group
# ls -l /dev/ttyACM0 crw-rw---- 1 root dialout 166, 0 ago 13 18:10 /dev/ttyACM0 # adduser usuario1 dialout Añadiendo al usuario `usuario1' al grupo `dialout' ... Añadiendo al usuario usuario1 al grupo dialout Hecho. # cat /etc/group | grep dialout dialout:x:20:usuario1
Para interactuar con el módem debemos ejecutar un programa que nos permita la comunicación con el puerto serie como minicom. Es conveniente usar al menos la versión 2.7.90 que ahora se encuentra en Debian Unstable ya que tiene algunas mejoras y fallos corregidos respecto a la versión de Debian Stable.
Es posible que la primera vez que ejecutemos minicom no arranque por algún fallo en la configuración por defecto como por ejemplo no encontrar el dispositivo serie.
minicom: no se puede abrir /dev/modem: No existe el fichero o el directorio
Para reparar la configuración deberemos ejecutar minicom con el parámetro -s desde el usuario root.
# minicom -s +-------------[configuración]--------------+ | Nombres de ficheros y rutas | | Protocolos de transferencia de ficheros | | Configuración del puerto serie | | Modem y marcado de número | | Pantalla y teclado | | Guardar configuración como dfl | | Guardar configuración como.. | | Salir | | Salir del Minicom | +------------------------------------------+
Esto nos permitirá ir directamente a la configuración sin ejecutar el programa y podremos entrar en "Configuración del puerto serie", presionar la tecla "A" para modificar el "Dispositivo Serie" e indicar la ruta del puerto serie, en mi caso /dev/ttyACM0. Presionando la tecla E se puede modificar la velocidad de comunicación entre el módem y el ordenador en bits por segundo.
Junto a la velocidad se encuentra el texto 8N1 que indica la forma de comunicación: 8 bits de datos, ningún bit de chequeo de paridad y un bit para indicar el principio y el final de los datos. En total se transmiten 10 bits por cada 8 bits de datos a enviar. Esta es la forma más común de comunicación y normalmente no será necesario modificarla.
+-------------------------------------------------------------+ | A - Dispositivo Serie : /dev/ttyACM0 | | B - Localización del Fichero de Bloqueo : /var/lock | | C - Programa de Acceso : | | D - Programa de Salida : | | E - Bps/Paridad/Bits : 9600 8N1 | | F - Control de Flujo por Hardware: Sí | | G - Control de Flujo por Software: No | | H - RS485 Enable : No | | I - RS485 Rts On Send : No | | J - RS485 Rts After Send : No | | K - RS485 Rx During Tx : No | | L - RS485 Terminate Bus : No | | M - RS485 Delay Rts Before: 0 | | N - RS485 Delay Rts After : 0 | | | | ¿Qué configuración alterar? | +-------------------------------------------------------------+
Una vez modificado un parámetro presionamos Enter para volver a la lista de parámetros y otra vez Enter para volver al inicio de la configuración. A continuación deberemos pulsar sobre "Guardar configuración como dfl" para guardar la configuración y sobre "Salir del Minicom" para salir del programa. La configuración por defecto se guarda en el archivo /etc/minicom/minirc.dfl.
A continuación ya podemos ejecutar minicom desde un usuario normal del grupo dialout. El programa tiene varias funciones a las que se puede acceder presionando Control-A, soltando estas teclas y a continuación presionando la tecla de la función. Con Control-A y Z veremos la lista. Para entrar en la configuración debemos pulsar Control-A y después O. La configuración del usuario se guarda en el archivo .minirc.dfl de su directorio "home".
# cat .minirc.dfl #Fichero generado automáticamente - Utilizar menú de configuración del minicom para alterar parámetros. pu baudrate 9600 pu bits 8 pu parity N pu stopbits 1
Desde minicom podemos interactuar con el módem usando comandos Hayes. En principio solo será necesario utilizar el comando ATD, ATDP (marcación por pulsos) o ATDT (marcación por tonos) seguido del número de teléfono al que queremos llamar. Es posible que sea necesario utilizar otros comandos dependiendo del módem para su configuración e inicialización, para ello deberemos leer su documentación. Por razones de privacidad en los ejemplos del artículo el número de teléfono es sustituido por "XXXXXXXXX".
Al ejecutar el comando ATD el módem marcará el teléfono indicado y comenzará la comunicación con el otro ordenador. Al realizarse la conexión recibiremos del módem el comando CONNECT seguido de la velocidad de conexión, en este caso 9600 b/s. Aunque se muestre esta velocidad, como la velocidad máxima del otro módem es de 2400 b/s, esa será la máxima velocidad de la comunicación.
A continuación debemos presionar Enter y nos aparecerá un mensaje de bienvenida de "servidor2" mostrando el nombre de su sistema operativo, su puerto serie, la velocidad de conexión con su puerto serie y la velocidad de conexión entre módems, ambas en bits por segundo. Por último podremos escribir el usuario y contraseña. Después de comprobar la contraseña el ordenador remoto nos permitirá iniciar sesión como si conectáramos con SSH. La gran diferencia respecto a SSH es que esta comunicación no es cifrada y por tanto insegura, sería el equivalente a utilizar Telnet.
Bienvenido a minicom 2.7.90 OPCIONES: I18n Compilado en Jul 26 2020, 10:44:57. Puerto /dev/ttyACM0, 18:25:24 Presione CTRL-A Z para obtener ayuda sobre teclas especiales ATDXXXXXXXXX CONNECT 9600 Debian GNU/Linux ttyS1 38400 (2400) servidor2 login: usuario1 Contraseña: Último inicio de sesión:mié ago 12 18:17:32 CEST 2020en ttyS1 Linux servidor2 4.19.0-10-686-pae #1 SMP Debian 4.19.132-1 (2020-07-24) 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 home lib64 mnt run tmp vmlinuz.old boot initrd.img libx32 opt sbin usr dev initrd.img.old lost+found proc srv var etc lib media root sys vmlinuz usuario1@servidor2:~$
Con minicom además de poder ejecutar comandos podremos enviar y recibir archivos utilizando los protocolos ZMODEM, YMODEM, XMODEM o Kermit. Para ello utiliza programas externos. En la configuración, en "Protocolos de transferencia de ficheros", se pueden ver y configurar los programas que se utilizan para el envío y recepción con cada protocolo.
+------------------------------------------------------------------------------+ | Nombre Programa Nombre U/D Pantalla completa E/S| |-A zmodem sz -vv -b Y U N Y Y | | B ymodem sb -vv Y U N Y Y | | C xmodem sx -vv Y U N Y N | | D zmodem rz -vv -b -E N D N Y Y | | E ymodem rb -vv N D N Y Y | | F xmodem rx -vv Y D N Y N | | G kermit kermit -i -l %l -b %b -s Y U Y N N | | H kermit kermit -i -l %l -b %b -r N D Y N N | | I ascii ascii-xfr -dsv Y U N Y N | | J - | | K - | | L - | | M Activar la cadena de descarga Zmodem... D | | N Utilizar ventana de selección de ficheros.. Sí | | O Preguntar por el directorio de descargas..... No | | | | ¿Qué opción cambiar? (ESPACIO para borrar) | +------------------------------------------------------------------------------+
Al instalar minicom se instala también el paquete lrzsz que contiene estos programas. En "servidor2" es también necesario instalar ese paquete. ZMODEM es el protocolo más moderno y el más fácil de usar con mgetty y minicom. Si presionamos las teclas Control-A y a continuación S nos pedirá que elijamos el protocolo a utilizar. Debemos eligir "zmodem". A continuación nos pedirá que elijamos los archivos a enviar.
+-[Subida]--+ | zmodem | | ymodem | | xmodem | | kermit | | ascii | +-----------+
+-----------[Selecciona uno o más ficheros para subir]------------+ |Directorio: /home/usuario1 | | [Descargas] | | [Documentos] | | [Escritorio] | | [Imágenes] | | [Música] | | [Plantillas] | | [Público] | | [Vídeos] | | .ICEauthority | | .Xauthority | | .bash_history | | .bash_logout | | .bashrc | | ( Esc para salir, Espacio para marcar ) | +-----------------------------------------------------------------+ [Ir] [Previo [Mostra [Marcar [Desmar [Ok]
Podemos elegir uno o varios archivos presionando la barra de espacio. Para entrar en un directorio es necesario presionar la barra de espacio dos veces. Para subir a un nivel superior se debe entrar en el directorio "..". Al pulsar [Ok] se envían los archivos seleccionados y se muestra el proceso de envío. Los archivos se guardan en el directorio actual de "servidor2". Al terminar la transferencia se puede ver que la velocidad de transmisión ha sido de 249 B/s = 1992 b/s, no muy lejos de la velocidad de 2400 b/s del módem más lento.
+--------[zmodem subida - Presione CTRL-C para salir]--------+ |Sending: archivo-prueba | |Bytes Sent: 3201864 BPS:249 | | | |Transfer complete | | | | LISTO: presione alguna tecla para continuar... | | | +------------------------------------------------------------+
Para recibir archivos usando ZMODEM debemos usar el comando sz en "servidor2" indicándole el archivo a enviar. A continuación veremos el proceso de descarga. Para otros protocolos debemos usar su programa correspondiente. El archivo se guarda en el directorio desde el que hayamos ejecutado minicom o en el que tengamos configurado como directorio para las descargas.
# sz archivo-prueba
+--------[zmodem bajada - Presione CTRL-C para salir]--------+ |Receiving: archivo-prueba | |Bytes received: 26264/ 26264 BPS:236 | | | |Transfer complete | | | | LISTO: presione alguna tecla para continuar... | | | +------------------------------------------------------------+
En lugar de iniciar sesión en un ordenador remoto, dos personas desde dos ordenadores distintos pueden ejecutar minicom para conectar entre ellas y utilizar otras opciones del programa. Para probar la comunicación minicom a minicom con "servidor2" es necesario parar mgetty para liberar el puerto serie. Se puede matar el proceso o usar el comando systemctl si se utiliza systemd para ejecutarlo.
# systemctl stop mgetty
A continuación se ejecuta minicom, se configura el puerto serie /dev/ttyS1, se sale del programa y se vuelve a ejecutar. Tanto la comunicación como el envío de archivos se pueden iniciar desde cualquiera de los dos ordenadores, yo lo hice desde el portátil hacia "servidor2".
En el portátil debemos ejecutar el comando ATD para llamar a "servidor2". En "servidor2" se recibirá un comando RING desde el módem indicando que se está recibiendo una llamada y deberemos ejecutar el comando ATA para aceptarla. Por último se recibe el comando CONNECT seguido de la velocidad, indicando que se ha realizado la comunicación a 2400 b/s.
Bienvenido a minicom 2.7.90 OPCIONES: I18n Compilado en Jul 26 2020, 10:44:57. Puerto /dev/ttyS1, 17:03:36 Presione CTRL-A Z para obtener ayuda sobre teclas especiales RING ATA CONNECT 2400
Después de realizarse la conexión podemos probar a enviar un archivo con otro protocolo, por ejemplo YMODEM. Debemos indicarle a minicom en "servidor2" que se prepare para recibir un archivo presionando Control-A y después R. Nos pedirá que elijamos el protocolo a usar, elegiremos "ymodem" y el programa se quedará en espera del archivo.
+-[Bajada]--+ | zmodem | | ymodem | | xmodem | | kermit | +-----------+
+--------[ymodem bajada - Presione CTRL-C para salir]--------+ |rb waiting to receive. | | | | | | | | | | | | | +------------------------------------------------------------+
En el portátil debemos realizar el mismo procedimiento de envío de archivo que al conectar con mgetty. El proceso de recepción se mostrará en "servidor2".
Estos son los sistemas básicos que es interesante conocer para saber un poco más sobre las comunicaciones serie entre módems, pero si queremos utilizar hoy día una conexión por línea telefónica lo más útil es realizar una conexión PPP (Point to Point Protocol) (Protocolo Punto a Punto) como las que se utilizaban para conectar a internet. Esto nos permitirá utilizar protocolos con cifrado como SSH o TLS.
Para usar estos protocolos será necesario emplear módems de mayor velocidad como mi Conceptronic 56ER2. El Conceptronic 56ER2 es un módem externo de 56 kb/s que se conecta al ordenador por un puerto serie.
En "servidor2", para no tener que cambiar la configuración de los programas, primero desinstalé el módem de 2400 b/s y después conecté el de 56 Kb/s al segundo puerto serie. A continuación se debe volver a activar mgetty e instalar el paquete ppp con el programa pppd. En el archivo /etc/ppp/options.ttyS1 es necesario configurar la dirección IP del servidor y la del cliente así como la máscara de red. Debemos elegir una red que no interfiera con nuestras redes locales.
192.168.10.1:192.168.10.2 netmask 255.255.255.0
En el archivo /etc/ppp/pap-secrets, en la línea que da acceso a todos los usuarios del sistema, debemos cambiar "hostname" por el nombre del ordenador, en este caso "servidor2".
* servidor2 "" *
En el portátil seguí utilizando el mismo móvil ya que no tengo otro más rápido. Los móviles más modernos que tengo no permiten usarlos como módem, al conectarlos por USB aparecen en el sistema operativo como un dispositivo de red por el que conectar a internet. Tampoco dispongo de otra línea telefónica fija donde conectar otro módem.
Para realizar la conexión PPP desde el portátil podemos usar el programa Wvdial. Para configurarlo debemos ejecutar el comando wvdialconf.
# wvdialconf Editing `/etc/wvdial.conf'. Scanning your serial ports for a modem. Modem Port Scan<*1>: S0 S1 S2 S3 ttyACM0<*1>: ATQ0 V1 E1 -- OK ttyACM0<*1>: ATQ0 V1 E1 Z -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyACM0<*1>: Modem Identifier: ATI -- ATI ttyACM0<*1>: Speed 4800: AT -- OK ttyACM0<*1>: Modem Identifier: ATI -- Nokia ttyACM0<*1>: Speed 9600: AT -- AT ttyACM0<*1>: Speed 9600: AT -- OK ttyACM0<*1>: Speed 19200: AT -- OK ttyACM0<*1>: Speed 38400: AT -- Speed 38400: AT -- OK ttyACM0<*1>: Speed 57600: AT -- OK ttyACM0<*1>: Speed 115200: AT -- Speed 115200: AT -- OK ttyACM0<*1>: Speed 230400: AT -- OK ttyACM0<*1>: Speed 460800: AT -- Speed 460800: AT -- Speed 460800: AT -- OK ttyACM0<*1>: Max speed is 460800; that should be safe. ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK Found an USB modem on /dev/ttyACM0. /etc/wvdial.conf<Warn>: Can't open '/etc/wvdial.conf' for reading: No such file or directory /etc/wvdial.conf<Warn>: ...starting with blank configuration. Modem configuration written to /etc/wvdial.conf. ttyACM0<Info>: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
El comando wvdialconf detecta las características del módem y crea el archivo de configuración /etc/wvdial.conf si este no existe con los parámetros de inicialización necesarios. Si ya existía el archivo lo modificará.
Luego debemos editarlo para poner el número de teléfono, el usuario y la contraseña. Es necesario activar la opción "Stupid Mode" para que inicie directamente la conexión PPP, de lo contrario intenta interpretar los mensajes de inicio de sesión de mgetty y falla la conexión.
[Dialer Defaults] Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = USB Modem Phone = XXXXXXXXX ISDN = 0 Username = usuario1 Init1 = ATZ Password = xxxxxxxxx Modem = /dev/ttyACM0 Baud = 460800 Stupid Mode = yes
A continuación podemos ejecutar el programa wvdial y se realizará la conexión con "servidor2".
# wvdial --> WvDial: Internet dialer version 1.61 --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 OK --> Modem initialized. --> Sending: ATDTXXXXXXXXX --> Waiting for carrier. ATDTXXXXXXXXX CONNECT 9600 --> Carrier detected. Starting PPP immediately. --> Starting pppd at Thu Jul 23 19:01:28 2020 --> Pid of pppd: 3263 --> Using interface ppp0 --> local IP address 192.168.10.2 --> remote IP address 192.168.10.1
Con la conexión establecida ya podemos usar cualquier protocolo sobre IP para conectar con "servidor2" usando la dirección 192.168.10.1. También sería posible hacer configuraciones más complejas en las que no solo fuera posible contactar con un servidor sino acceder a una o varias redes. La velocidad máxima de conexión está limitada por los 9600 b/s del móvil, que debe usar el estándar V.32. Para cerrar la conexión debemos terminar el programa wvdial con Control-C.
Si copiamos un archivo con scp veremos como la velocidad no es mucha pero es suficiente para subir o bajar algunos archivos de datos pequeños. Utilizando dos módems 56K la velocidad podría ser bastante mayor.
# scp archivo-prueba root@192.168.10.1:/tmp archivo-prueba 71% 2224KB 20.0KB/s 00:44 ETA
La velocidad de 20 KiB/s = 20,48 KB/s mostrada por scp no es posible, debe estar calculada sobre datos almacenados temporalmente por el sistema TCP/IP del sistema operativo. La velocidad máxima que permite el módem de 56 Kb/s es de 7 KB/s sin tener en cuenta los datos usados por los protocolos de comunicación. La velocidad del móvil es de 9600 b/s = 1200 B/s = 1,2 KB/s.
Con el comando nload podemos comprobar como la media de subida de todo el tráfico es de aproximadamente 8,5 Kb/s = 1,063 KB/s, dentro de lo que permite el móvil. Esta parece una medida más real. También podemos ver como la comunicación es semiduplex/half-duplex según permite V.32 con dos hilos, cuando se envían datos no se reciben y viceversa.
El móvil también es posible conectarlo por bluetooth. Para ello el ordenador debe tener conexión bluetooth o se puede usar un adaptador USB como el Conceptronic CBT200U2.
Después de conectar el adaptador al portátil y activar la conexión bluetooth en el móvil debemos instalar en el portátil el paquete bluez con los programas necesarios para utilizar bluetooth en Linux. A continuación debemos buscar el móvil y hacer el emparejamiento usando el programa bluetoothctl.
# bluetoothctl Agent registered [bluetooth]# scan on Discovery started [CHG] Controller 00:80:5A:46:0E:5D Discovering: yes [NEW] Device 00:13:FD:BF:B3:59 nokia6630 [bluetooth]# pair 00:13:FD:BF:B3:59 Attempting to pair with 00:13:FD:BF:B3:59 [CHG] Device 00:13:FD:BF:B3:59 Connected: yes Request PIN code [agent] Enter PIN code: 8734 [CHG] Device 00:13:FD:BF:B3:59 ServicesResolved: yes [CHG] Device 00:13:FD:BF:B3:59 Paired: yes Pairing successful
Con el comando scan on se hace una búsqueda de dispositivos y se muestra su dirección MAC y su nombre. Con el comando pair y la MAC del dispositivo se hace el emparejamiento. Para el emparejamiento debemos elegir un PIN que se nos pedirá en el móvil para realizar la autenticación.
Para saber los servicios que proveé el móvil podemos usar el comando sdptool. El servicio que nos interesa es "Dial-Up Networking". Desafortunadamente los móviles modernos que tengo ya no tienen este servicio, al igual que por USB ha sido sustituido por otro en el que el móvil se conecta al ordenador como un dispositivo de red con el que conectar a internet y no como un módem con el que poder llamar a cualquier teléfono.
# sdptool browse 00:13:FD:BF:B3:59 Browsing 00:13:FD:BF:B3:59 ... Service Name: Dial-Up Networking Service RecHandle: 0x10006 Service Class ID List: "Dialup Networking" (0x1103) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 3 Language Base Attr List: code_ISO639: 0x454e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "Dialup Networking" (0x1103) Version: 0x0100
Con el comando rfcomm, indicándole la dirección MAC y el canal (channel) mostrado por sdptool, se crea un puerto serie que podremos usar como módem. En el móvil recibiremos la petición de conexión que deberemos aceptar. El puerto serie está activo mientras está en ejecución rfcomm. Si lo ejecutamos en primer plano podremos cerrar la conexión presionando Control-C. Para poder seguir utilizando la consola podemos ejecutarlo en segundo plano. Si reiniciamos el equipo será necesario volver a ejecutarlo.
# rfcomm connect /dev/rfcomm0 00:13:FD:BF:B3:59 3 Connected /dev/rfcomm0 to 00:13:FD:BF:B3:59 on channel 3 Press CTRL-C for hangup
Para que wvdialconf lo detecte debemos hacer un enlace simbólico en /dev cuyo nombre comience por ttyS. Luego podemos utilizar /dev/rfcomm0.
# ln -s /dev/rfcomm0 /dev/ttySrfcomm0
A continuación movemos o eliminamos el archivo de configuración de wvdial y ejecutamos wvdialconf para configurar el dispositivo de igual forma que con el cable USB.
# mv /etc/wvdial.conf /etc/wvdial.conf.usb # wvdialconf Editing `/etc/wvdial.conf'. Scanning your serial ports for a modem. Modem Port Scan<*1>: S0 S1 S2 S3 WvModem<*1>: Cannot get information for serial port. ttySrfcomm0<*1>: ATQ0 V1 E1 -- OK ttySrfcomm0<*1>: ATQ0 V1 E1 Z -- OK ttySrfcomm0<*1>: ATQ0 V1 E1 S0=0 -- OK ttySrfcomm0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttySrfcomm0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttySrfcomm0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttySrfcomm0<*1>: Modem Identifier: ATI -- Nokia ttySrfcomm0<*1>: Speed 4800: AT -- OK ttySrfcomm0<*1>: Speed 9600: AT -- OK ttySrfcomm0<*1>: Speed 19200: AT -- OK ttySrfcomm0<*1>: Speed 38400: AT -- OK ttySrfcomm0<*1>: Speed 57600: AT -- OK ttySrfcomm0<*1>: Speed 115200: AT -- OK ttySrfcomm0<*1>: Speed 230400: AT -- OK ttySrfcomm0<*1>: Speed 460800: AT -- OK ttySrfcomm0<*1>: Max speed is 460800; that should be safe. ttySrfcomm0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK Found a modem on /dev/ttySrfcomm0. /etc/wvdial.conf<Warn>: Can't open '/etc/wvdial.conf' for reading: No such file or directory /etc/wvdial.conf<Warn>: ...starting with blank configuration. Modem configuration written to /etc/wvdial.conf. ttySrfcomm0<Info>: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
Acto seguido editamos el archivo de configuración /etc/wvdial.conf para cambiar el dispositivo a /dev/rfcomm0 y añadir el teléfono, el nombre de usuario y la contraseña. Por probar otra cosa distinta que por USB, en lugar de configurarlo para conectar a "servidor2" lo configuré para conectar a internet con la conexión de Movistar.
[Dialer Defaults] Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = Analog Modem Phone = *99# ISDN = 0 Username = movistar Init1 = ATZ Password = movistar Modem = /dev/rfcomm0 Baud = 460800
Una vez configurado se puede conectar a internet ejecutando wvdial.
# wvdial --> WvDial: Internet dialer version 1.61 --> Cannot get information for serial port. --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 OK --> Modem initialized. --> Sending: ATDT*99# --> Waiting for carrier. ATDT*99# CONNECT ~[7f]}#@!}!} } }2}#}$@#}!}$}%\}"}&} }*} } g}%~ --> Carrier detected. Waiting for prompt. ~[7f]}#@!}!} } }2}#}$@#}!}$}%\}"}&} }*} } g}%~ --> PPP negotiation detected. --> Starting pppd at Wed Jul 29 02:16:15 2020 --> Pid of pppd: 7361 --> Using interface ppp0 --> local IP address 10.151.150.136 --> remote IP address 10.6.6.6 --> primary DNS address 80.58.61.250 --> secondary DNS address 80.58.61.254
Para cerrar la conexión con el móvil se puede usar la acción release de rfcomm o matar el proceso.
# rfcomm release 00:13:FD:BF:B3:59
Los parámetros de configuración de wvdial se pueden dividir en diferentes secciones Dialer y mezclarlos cuando queremos hacer una conexión. Por ejemplo podemos dividir las configuraciones en módems, puertos serie y sitios a conectar.
[Dialer nokia6630] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ISDN = 0 Baud = 460800 [Dialer usb] Modem = /dev/ttyACM0 [Dialer bluetooth] Modem = /dev/rfcomm0 [Dialer servidor2] Phone = XXXXXXXXX Username = usuario1 Password = xxxxxxxxx Stupid Mode = yes [Dialer movistar] Phone = *99# Username = movistar Password = movistar
De esta forma por ejemplo podemos utilizar el móvil Nokia 6630 como módem, usando el cable USB, para conectar a "servidor2", con el siguiente comando:
# wvdial nokia6630 usb servidor2
Con esto ya tenemos los conocimientos necesarios para poder conectar ordenadores u otros dispositivos a través de líneas telefónicas sin necesidad de conectar a internet. También nos pueden servir para conectar dos ordenadores a través de sus puertos serie con un cable null módem. Para otros artículos me queda analizar la electrónica del modem Conceptronic 56ER2, profundizar en los comandos Hayes y utilizar algún software de BBS.
No hay comentarios:
Publicar un comentario