MoDem BAYCOM Linux

Como utilizar MODEM Baycom en Linux

Como siempre todo como ROOT … todo de consola, desde el home de root

para aprender linux el mouse tíralo 😉

Introducción

El driver original de baycom para Linux fue desarrollado por el colega

Thomas M. Sailer, HB9JNX/AE4WA, sailer@ife.ee.ethz.ch

Originalmente se trataba de un solo controlador, llamado “baycom” el cual creaba los dispositivos bc0, bc1, bc2 y bc3. A partir de 1998 el driver fue separado en diferentes drivers independientes, los cuales se adaptan a las necesidades de cada tipo de MODEM baycom que se utilice. Desde aquí los dispositivos creados varían de nombre de acuerdo con el tipo de driver baycom a utilizar. No se denominarán mas bc0, bc1 etc. Esto puede crear alguna confusión si recurrimos a documentación antigua, o a versiones del kernel anteriores a 1998.

https://i2.wp.com/www.danielstolfi.com/packet/img/am7910.gif

En principio debemos determinar cual de los drivers baycom
se adapta al MODEM que utilizaremos. Repasemos cada uno de ellos:

baycom_ser_fdx

Este controlador soporta los MODEM de tipo SER12 y es capaz de operar tanto en half-duplex como en full-duplex. La velocidad (baud rate) puede ser ajustada y se adapta a la mayoría de los casos. Los dispositivos por crear serán : bcsf0, bcsf1, bcsf2 etc.

Comúnmente se utilizarán módems con TCM 3105 a través de puerto serial.

baycom_ser_hdx

Se trata de un driver alternativo que solamente soporta 1200 baudios en half-dulplex. Creará los dispositivos : bcsh0, bcsh1 etc.

El autor recomienda utilizar este controlador si el baycom_ser_fdx no funciona correctamente con el UART que utilicemos.

baycom_par

Este driver, para puerto paralelo soporta los MODEM conocidos como “par96” y “picpar” Creará los dispositivos : bcp0, bcp1, etc

baycom_epp

Este es un driver para los módems del tipo “epp” que están diseñados para operación a velocidades mayores y por puerto paralelo. Creará los dispositivos : bce0, bce1, etc

Cargando los módulos

Si elegimos compilar con los dirver incluidos en el kernel, podremos dedicarnos directamente a la configuración de los dispositivos.

Si optamos por compilar los módulos, deberemos cargarlos antes de configurar:

modprobe ax25
modprobe baycom_ser_fdx

(o el driver baycom que necesitemos)

Recordemos algunos comandos para el manejo de módulos:

insmod nombre_del_modulo ——-> Carga el módulo
modprobe nombre_del_modulo —-> Carga el módulo y módulos dependientes
lsmod  ————————-> Muestra la lista de módulos cargados
rmmod nombre_del_modulo ——-> Descarga un determinado módulo

Recordemos que los módulos se pueden cargar con el comando “insmod”, pero para que funcione satisfactoriamente habrá que cargar en orden el resto de los módulos dependientes. Por ello si utilizamos “modprobe” se cargaran de forma inteligente todos los módulos necesarios que dependan del indicado.

Configurando el Driver Baycom

Una vez que hemos boteado con el nuevo kernel (y cargado los módulos si fuere necesario) deberemos configurar los dispositivos a utilizar. Estas herramientas de configuración están incluidas en el paquete de utilidades ax25

Es recomendable instalar este paquete completo en nuestro sistema ya que nos proveerá de herramientas indispensables para diferentes usos.

apt-get install ax25-apps ax25-tools 

Ahora, procederemos a liberar el puerto serial que vamos a utilizar.
Recordemos que en linux las denominaciones son diferentes a D.O.S:

COM1          ttyS0
COM2          ttyS1
COM3          ttyS2
COM4          ttyS3

Supongamos que elegimos el “ttyS1” (COM2), con el driver baycom_ser_fdx.
Lo liberaremos, para dejar que el driver del baycom lo pueda utilizar:
En una terminal ejecutaremos:

setserial /dev/ttyS1 uart none

Si no lo tienes instálalo

apt-get install setserial

  • para saber los datos de tus puertos COM

setserial -g /dev/ttyS*

Ahora sí, utilizaremos la ax25-util conocida como “sethdlc” para configurar

sethdlc –i bcsf0 –p mode “ser12” io 0x2f8 irq 3

 Así quedará creado el dispositivo bcsf0, el cual podremos observar con el comando

ifconfig bcsf0

 Ya estamos en condiciones de asignar a ese dispositivo nuestra
licencia de radioaficionado y la ip correspondiente:

ifconfig bcsf0 44.153.32.70 hw ax25 lw2dtq

Ahora rutearemos por allí las direcciones de ips que necesitemos.

Por ejemplo:

route add 44.153.32.83 bcsf0

Declarando el nuevo dispositivo

Cada aplicación AX.25 lee un archivo que le proveerá las configuraciones
según el puerto que se utilice.
Este archivo se aloja en:
/etc/ax25/axports
Se puede crear con un procesador de texto común, y su formato es el siguiente:

/etc/ax25/axports
#name callsign       speed   paclen window   description
bcsf0 LW2DTQ          1200   256     4      Modem Baycom en VHF
bcsf1 LW2DTQ-3       1200  512      4      Modem Baycom en UHF
scc0  LW2DTQ-4      4800   512     4      Placa SCC

Como vemos en este ejemplo, hemos cargado dos puertos baycom y un puerto scc. Claro está que si tenemos un único MODEM, solo bastará la primera línea. En este ejemplo observamos que cada puerto necesita la señal distintiva con SSID diferentes, y así poder asociarlas correctamente al dispositivo correspondiente.

IMG_20170415_152526

Ajustando los parámetros AX25

Para ajustar los parámetros ax25 recurriremos una vez mas a la utilidad “sethdlc”

Con ella podremos configurar, txdelay, txtail, persist, slotime, y e indicar si opera full o half duplex. Los valores se expresan en múltiplos de 10 milisegundos.

Es necesario utilizar a opción –a para cargar los parámetros, y la opción –i para indicar el dispositivo a calibrar:

Ejemplo:

sethdlc -i bcsf0 -a txd 200 txt 50 slot 100 ppersist 220 half

Otra opción para ajustar los parámetros ax25 es utilizar la utilidad kissparms.
usa el comando axlisten para ver si escuchas

axlisten -a -c -t -r

Aca esta el script que uso yo como ejemplo

/sbin/modprobe baycom_ser_fdx
/bin/setserial /dev/ttyS1 uart none
/usr/bin/sethdlc -i bcsf0 -p mode “ser12*” io 0xc000 irq 19
/sbin/ifconfig bcsf0 44.153.35.200 hw ax25 LU9DCE-12
/sbin/ifconfig bcsf0 netmask 255.255.255.0
/usr/sbin/axparms -setcall bcsf0 LU9DCE-12

Algunos datos

si usas mode

“ser12” el equipo tendra que trabajar a sql cerrado (ideal vhf fm)
“ser12” para sql abierto
“ser3” para 300 baud hf a sql cerrado
“ser3
” para 300 baud a sql abierto (ideal hf blu)

Ya tienen tu modem andando en linux “Buenos DX’s”