OpenBCM V1.07b12 (Linux)

Packet Radio Mailbox

IW8PGT

[Mendicino(CS)-Italy]

 Login: GUEST





  
LW1EAA > TODOS    20.10.17 15:42l 226 Lines 9853 Bytes #999 (0) @ WW
BID : 1183-LW1EAA
Read: GUEST
Subj: TNC en Linux
Path: IW8PGT<IR2UBX<IW2OHX<IR1UAW<IQ5KG<I0OJJ<LU4ECL<LW1EAA
Sent: 171020/1200Z @:LW1EAA.LP.BA.ARG.SOAM #:1183 [LA PLATA] FBB7.00e $:1183-LW
From: LW1EAA@LW1EAA.LP.BA.ARG.SOAM
To  : TODOS@WW

Como utilizar un TNC en modo KISS bajo Linux
 
La utilización de un TNC en modo KISS en uno de los métodos mßs comunes para hacer packet.
Para ello necesitaremos un TNC seteado en modo KISS con algún programa especial y conectado a uno de los puertos serie de la mßquina.
 Luego debemos crear en nuestro Linux, los dispositivos adecuados para operar.
Existen dos drivers destinados a esta tarea. Repasemos cada uno de ellos:
 
mkiss
 
Este es el driver utilizado con mayor frecuencia para conectar TNCÝs en modo KISS, al utilizarlo nos permitirß crear los dispositivos llamados:
ax0, ax1 etc
 
6pack
 
Este es un nuevo driver que se utiliza como una alternativa al KISS. Pero como nunca lo probé y este documento solo habla sobre configuraciones probadas y en funcionamiento., dejaremos su descripción para el momento adecuado.
 
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 TNC en modo KISS.
 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 ---à
            <*> Serial port KISS driver for AX.25
           
 
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> Serial port KISS driver for AX.25
           
 
 
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 TNC en modo KISS.
 
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 mkiss
 
Recordemos algunos comandos para el manejo de módulos:
 
insmod nombre_del_archivo         Cargo 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.
 
 
Declarando el nuevo dispositivo
 
 
Antes de configurar el driver serß necesario declarar datos escenciales de los nuevos puertos que utilizaremos.
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
#
vhf     LW2DTQ            9600    256     4         TNC en modo KISS
           
 
El formato de la línea serß: en primer término el nombre del port, en este caso vhf (que se asociarß al dispositivo ax0), luego la licencia, luego la velocidad de comunicación entre el puerto serie y el TNC (en este caso 9600 aunque luego el TNC salga al aire en 1200 bauds), luego el paclen, el window (similar al maxframe) y una descripción.
 
Configurando el Driver mkiss
 
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 podremos buscar una versión en código fuente y compilarla e instalarla a nuestro gusto. Pero esto es una tarea opcional por si queremos darle una personalización mayor.
 
 
Ahora, procederemos a elegir 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 mkiss
 
Ahora sí, utilizaremos la ax25-util conocida como “kissattachö para crear y  configurar el dispositivo:
 
kissattach /dev/ttyS1 vhf
 
Así quedarß creado el dispositivo ax0, el cual podremos observar con el comando:
 
ifconfig ax0
 
A medida que vayamos creando mßs dispositivos KISS, estos se llamarßn ax1, ax2 y ax3.
 
Ya estamos en condiciones de asignar a ese dispositivo dirección ip correspondiente:
 
ifconfig ax0 44.153.32.70
 
Ahora rutearemos por allí las direcciones  de ips que necesitemos. Por ejemplo:
 
route add 44.153.32.83 ax0
 
 
Especificando parßmetros AX.25
 
Existe otra utilidad ax25 que nos permite especificar parßmetros adecuados a nuestra transmisión como txdelay, persist, etc.  Por ejemplo:
 
kissparms –p vhf –t 100 –s 100 –r 25
 
Aquí el significado de cada una de las opciones mas comunes:
 
-p port          Indica el puerto que configuraremos
-t txd           Configura el txdelay expresado en milisegundos (múltiplos de 10)
-l txt            Configura en txtail expresado en milisegundos (múltiplos de 10)
-r persist         Configura el persist en el rango de 0 a 255
-s slot          Configura el slottime en milisegundos (múltiplos de 10)
 
 
 
 
Interconectando el TNC 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 ax0:
 
 
net2kiss -i ax0 /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
 
 
KISS con Jnos/Tnos sin recompilar el Kernel
 
Un TNC en modo KISS nos permitirß utilizar un Jnos/Tnos sin necesidad de los dispositivos creados en el kernel ni de las utilidades ax25. Es una función sencilla aunque menos completa que la descripta anteriormente.
Por ello no hace falta recompilar nada. Si tenemos una instalación estßndar de Linux, podremos instalar un Jnos/Tnos en versión de linux y agregar una línea en el autoexec.nos como la siguiente:
 
attach asy ttyS1 – ax25 vhf 1024 256 9600
 
Eso ya generarß el protocolo ax25 en el puerto serie ttyS1 (COM2). Luego el resto de parßmetros de Jnos/Tnos permitirßn ajustar a medida nuestra transmisión.
 
 
16 de septiembre de 2002
Diego de Nicolßs
LW2DTQ


Read previous mail | Read next mail


 11.05.2024 07:55:13lGo back Go up