OpenBCM V1.07b12 (Linux)

Packet Radio Mailbox

IW8PGT

[Mendicino(CS)-Italy]

 Login: GUEST





  
LW1EAA > TODOS    20.10.17 02:23l 251 Lines 11059 Bytes #999 (0) @ WW
BID : 1133-LW1EAA
Read: GUEST
Subj: Linux y Baycom
Path: IW8PGT<CX2SA<GB7CIP<I0OJJ<LU4ECL<LW1EAA
Sent: 171019/2336Z @:LW1EAA.LP.BA.ARG.SOAM #:1133 [LA PLATA] FBB7.00e $:1133-LW
From: LW1EAA@LW1EAA.LP.BA.ARG.SOAM
To  : TODOS@WW

Como utilizar MODEM Baycom en Linux
 
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.
 
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
 
Incluyendo los drivers en el Kernel
 
Como en la mayoría de las necesidades de radioaficionados, habrß que compilar un nuevo kernel capaz de soportar el protocolo AX.25 y los dirvers adecuados. El kernel genérico instalado por Linux no estß preparado, aunque el código fuente nos ofrece todas las herramientas como para armarlo a medida.
 
No describiremos aquí todas las opciones a incluir para un correcto funcionamiento del sistema. Tan sólo nos limitaremos a describir las opciones necesarias para operar AX.25 con MODEM baycom.
 Recordemos que solamente una cuidadosa selección de las opciones en concordancia con todo nuestro hardware nos garantizarß el correcto funcionamiento del sistema.
 
Para esta descripción utilizaremos Código fuente del kernel 2.4.19 (último kernel estable al momento de este documento)
 
En Linux es posible utilizar un kernel con los dirvers incluidos en él, o bien crearlos como módulos, para poder cargar y descargarlos según lo necesitemos.
 
Si nuestra intención es armar un kernel con los drivers incluidos (built in), en la sección Amateur Packet Radio seleccionaremos lo siguiente:
 
[*] Amateur Radio Support
<*> Amateur Radio AX.25 level 2 Protocol
 
AX.25 Network Device Drivers ---à
            <*> baycom  ser12 fullduplex driver for AX.25
            <*> baycom ser12 halfduplex driver for AX.25
            <*> picpar and par96 driver for AX.25
            <*> epp driver for AX.25
 
Como vemos aquí tenemos los cuatro drivers baycom disponibles. Podemos seleccionar todos, o tan solo aquel/aquellos que necesitemos.
 
Si nuestra intención es armar un kernel con los drivers construidos como módulos, en la sección Amateur Packet Radio seleccionaremos lo siguiente:
 
[*] Amateur Radio Support
<M> Amateur Radio AX.25 level 2 Protocol
 
AX.25 Network Device Drivers ---à
            <M> baycom  ser12 fullduplex driver for AX.25
            <M> baycom ser12 halfduplex driver for AX.25
            <M> picpar and par96 driver for AX.25
            <M> epp driver for AX.25
 
En el caso de necesitar alguno de los dirvers que operan sobre puerto paralelo, serß necesario habilitar otra opción en el momento de la compilación del kernel:
 
Parallel port support ---à
            <M> Parallel port support
 
 
Repasemos los pasos para compilar el kernel:
 
Comúnmente el código fuente lo encontraremos en el dir:
 
/usr/src/linux
 
allí, ejecutaremos los siguientes comandos:
 
make mrproper                Prepara archivos para compilar
make menuconfig            Presenta el menú contextual de selección
make dep                        Establece las dependencias
make clean                      Limpia elementos innecesarios
make bzImage                 Compila el nuevo núcleo
make modules                 Compila  los módulos
make modules_install       Instala los módulos en el dir  /lib/modules
 
 
Nuestro nuevo kernel se ubicarß en:
 
/usr/src/linux/arch/i386/boot/bzImage
 
Este archivo lo copiaremos a nuestro directorio de boteo y luego haremos las modificaciones necesarias en /etc/lilo.conf para que al reiniciar la mßquina encontremos disponible nuestro flamante kernel con soporte para modem baycom.
 
NOTA: Un error frecuente al reiniciar con el nuevo kernel, se debe a la selección del tipo de microprocesador. Si tenemos algún problema, podremos seleccionar procesador 386, el cual serß compatible con una gran cantidad de hardware, incluso Pentium y AMD.
 
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 conocidos como:
 
“ax25-utilsö
 
Es recomendable instalar este paquete completo en nuestro sistema ya que nos proveerß de herramientas indispensables para diferentes usos. La versión que yo utilizo es:
 
ax25-utils-2.1.42a-3.i386.rpm 
 
Este paquete auto-instalable lo podremos bajar de:
 
http://www.rpmfind.net
 
y lo instalaremos con:
 
rpm –i  ax25-utils-2.1.42a-3.i386.rpm 
 
Si lo deseamos, o si la distribución que utilicemos no soporta paquetes rmp,  podremos buscar una versión en código fuente y compilarla e instalarla a nuestro gusto.
 
 
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
 
Ahora sí, utilizaremos la ax25-util conocida como “sethdlcö para configurar el dispositivo:
 
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.
 
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.
 
Interconectando el Baycom con un Jnos/Tnos
 
Hasta este punto estamos en condiciones de salir al aire utilizando el kernel del linux, sin necesidad de ningún programa adicional.
 Pero si nuestra intención es correr un programa del tipo NOS, es posible usar el dispositivo ya creado y asociarlo para que pueda ser utilizado simultßneamente.
 Para esta tarea necesitaremos otra utilidad ax25 llamada:
 
net2kiss
 
Esto nos permitirß crear una pseudo terminal que vincularß el dispositivo del kernel con el dispositivo “atachadoö en el Jnos/Tnos. Esta pseudo-tty se la considera como un enlace con dos extremos. Del lado del kernel se llamarß:
 
ptyp0, ptyp1, ptyp2 etc.
 
Y del lado del jnos:
 
ttyp0, ttyp1, ttyp2 etc
 
Recordemos que siempre trabajarßn en pares, y que el numero del dispositivo virtual debe coincidir en ambos extremos.
Por ejemplo, crearemos en el kernel una pseudo-tty que enlace al Jnos para el dispositivo baycom bcsf0:
 
 
net2kiss -i bcsf0 /dev/ptyp0 &
 
Ahora en el otro extremo (un attach de Jnos) crearemos el puerto con:
 
attach asy ttyp0 - ax25 2m 1024 256 38400
 
NOTA: El símbolo  &  (ampersand) al final de los parßmetros del comando net2kiss hace que el proceso quede en background. Es decir que continúe ejecutßndose,  aunque no lo veamos.
 
Para no generar conflictos, debemos asignar números Ip diferentes al kernel y al jnos.
 
Mas detalles sobre Jnos/Tnos se pueden encontrar en el documento destinado  a placas scc en http://www.qsl.net/lw2dtq/scc.htm
 
 
12 de septiembre de 2002
Diego de Nicolßs
LW2DTQ
lw2dtq@qsl.net
 
*Agradecimiento a Claudio (LU7ARM)


Read previous mail | Read next mail


 11.05.2024 06:55:17lGo back Go up