Configurando un puerto AX.25

6. Configurando un puerto AX.25.

Cada aplicación de AX.25 lee un fichero particular de configuración para obtener los parámetros de los varios puertos AX.25 configurados en su máquina Linux. Para los puertos AX.25 el fichero que se lee es /etc/ax25/axport, donde debe haber una linea de entrada por cada puerto que quieras tener en tu máquina.

6.1 Creando un dispositivo de red de AX.25.

El dispositivo de red es el listado cuando usas el comando “ifconfig”. Este es el objeto al cual el kernel de Linux le manda y recibe los datos de la Red. Casi siempre el dispositivo tiene un puerto físico asociado con él, pero hay ocasiones en que no es necesario. El dispositivo de red trabaja directamente con el driver del dispositivo.

En el código AX.25 de Linux hay numerosos driver de dispositivos. El más común probablemente es el KISS, pero otros son el SCC, el Baycom y el SoundModem.
Cada uno de estos driver crea un dispositivo de red cuando son iniciados.

6.1.1. Creando un dispositivo KISS.

Opciones al compilar kernel:

6.1.1. Creating a KISS device

Kernel Compile Options:

Amateur Radio support  --->
    [*] Amateur Radio support
    --- Packet Radio protocols
    <*>   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  --->
    --- AX.25 network device drivers
    <*> Serial port KISS driver
    ...

Probablemente la más común de las configuraciones es la de una TNC en modo KISS puesta en un puerto serie. Necesitaras la TNC ya configurada y conectada al puerto serie. Puedes usar cualquier programa de comunicaciones, para poner la TNC en modo KISS.

Para crear un dispositivo KISS se debe usar el programa kissattach. Simplemente haz lo que sigue:

# /usr/sbin/kissattach /dev/ttyS0 radio 44.135.96.242
# kissparms -p radio -t 100 -s 100 -r 25
OJO: El 44.135.96.242 es una dirección IP, hay que poner la tuya.

El comando kissattach crea el dispositivo de red KISS. Estos dispositivos se llaman “ax[0-9]”. La primera vez crea “ax0”, la segunda “ax1”, etc. Cada Kiss tiene asociado su puerto serie.

El comando kissparms te permite poner varios parámetros para el dispositivo KISS.

En el ejemplo de arriba creará un dispositivo de red KISS usando el dispositivo serie “/dev/ttyS0” y la línea de entrada en /etc/ax25/axports que tenga el nombre de puerto “radio”. Y lo configurará con un txdelay y slottime de 100 milisegundos y un valor de ppersist de 25.

Por favor dirigirse a las páginas man para más información.

Configurando una TNC de doble puerto.

La utilidad mkiss incluida en ax25-utils te permite hacer uso de ambos puertos. La configuración es simple. Trabaja hablando a un dispositivo de red simple conectado a un TNC simple multipuerto y haciendo aparecer un numero de dispositivos distintos, cada uno conectado a un puerto simple de la TNC.

Ud. hace esto antes de configurar el AX.25. Los dispositivos que configuras en el AX.25 son seudos-interfaces-TTY, (/dev/ttyq*), y no el dispositivo serie físico. Los dispositivos seudos-TTY crean una especie de redireccionamientos o entubados (pipes) a través de los cuales los programas para hablar con los dispositivos tty hablan con otros programas destinados a hablar con dispositivos tty. Cada entubamiento tiene un terminal maestro y otro esclavo. El maestro es llamado generalmente “/dev/ptyq*” y el esclavo “/dev/ttyq*”. Existe una relación de a pares de maestros y esclavos, así el /dev/ptyq0 es el maestro y /dev/ttyq0 es su esclavo. Siempre debes abrir el maestro antes de abrir el esclavo. Mkiss es el encargado de dividir un dispositivo serie simple en dos dispositivos separados.

Ejemplo: si tienes una TNC doble conectada a 9600 bps a un dispositivo físico serie /dev/ttyS0, el comando es el siguiente:

# /usr/sbin/mkiss -s 9600 /dev/ttyS0 /dev/ptyq0 /dev/ptyq1
# /usr/sbin/kissattach /dev/ttyq0 port1 44.135.96.242
# /usr/sbin/kissattach /dev/ttyq1 port2 44.135.96.242
OJO: El 44.135.96.242 como en el ejemplo anterior, es una dirección IP, hay que poner la tuya.

Esto creará dos dispositivos seudos-tty que aparecerán cada uno como una TNC de puerto simple. Entonces tratarás a /dev/ttyq0 y /dev/ttyq1 como si fuera un dispositivo serial común conectado a una TNC. Esto significa que usaras el comando kissattach exactamente como se describió anteriormente, en cada uno de ellos, en el ejemplo para los puertos AX.25 llamados port1 y port2. No deberías usar kissattach en el dispositivo serie real como lo usa el programa mkiss.

El comando mkiss tiene un número de argumentos opcionales que Ud. puede usar, y son :

-c
Habilita la adición del checksum de un byte en cada frame KISS.No es soportado en la mayoría de las implementaciones KISS pero sí en el G8BPQ KISS ROM.

-s <velocidad>
Pone la velocidad del puerto serie.

-h
Habilita el control por hardware del puerto sere que por omisión está en off. La mayoría de KISS no lo soportan, pero algunas sí.

-l
Habilita el logeo de información hacia el archivo de log del sistema(syslog).

6.1.2.Creando un dispositivo 6PACK.

Opciones al compilar el Kernel.

Amateur Radio support  --->
    [*] Amateur Radio support
    --- Packet Radio protocols
    <*>   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  --->
    --- AX.25 network device drivers
    ...
    <*> Serial port 6PACK driver
    ...

6PACK es un protocolo soportado por algunas TNC, es una alternativa al KISS. Se usa de forma parecida al driver del KISS, usando el comando slattach en vez de comado kissattach.

Ayuda, en forma de mini HOWTO, para incluir el driver de 6PACK, la podemos encontrar en /usr/src/linux/Documentation/networking/6pack.txt.

6.1.3.Creando un dispositivo Baycom.

Opciones al compilar kernel:

Amateur Radio support  --->
    [*] Amateur Radio support
    --- Packet Radio protocols
    <*>   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  --->
    --- AX.25 network device drivers
    ...
    <?> BAYCOM ser12 fullduplex driver for AX.25
    <?> BAYCOM ser12 halfduplex driver for AX.25
    <?> BAYCOM picpar and par96 driver for AX.25
    <?> BAYCOM epp driver for AX.25
    ...

Thomas Sailer, a pesar de que todos decian que no funcionaría muy bien, ha desarrollado soporte Linux para Baycom. Sus driver soportan el puerto serie Ser12, y los módem de puerto paralelo Par96 y el extendido PicPar. Más información puede obtenerse del sitio Web: Baycom Web Site.

El primer paso es determinar cual es el i/o y dirección del puerto serie o paralelo en el cual tienes conectado tu módem Baycom. Cuando los tienes, ya puedes puedes configurar tu Driver Baycom con ellos.

El Driver Baycom, cuando se configura, crea dispositivos de red llamados: bc0, bc1, etc.

La utilidad sethdlc te permite configurar el driver con estos parámetros, o, si solo tienes un módem Baycom puedes especificar los parámetros en el comando de línea insmod cuando cargas el módulo Baycom.

Ejemplo de una configuración sencilla. Deshabilitar el driver serie de COM1: y entonces configurar el driver Baycom para un módem de puerto serie Ser12 en COM1: con la opción de software DCD habilitada:

# setserial /dev/ttyS0 uart none
# insmod hdlcdrv
# insmod baycom mode="ser12*" iobase=0x3f8 irq=4
OJO: el iobase=0x3f8 y el la interrupción IRQ=4, son las standard, tu debes de poner las de tu COM1:

Para el módem Par96 el el puerto paralelo LPT1: usando la detección por hardware DCD:

# insmod hdlcdrv
# insmod baycom mode="par96" iobase=0x378 irq=7 options=0

OJO: el iobase=0x378 y el la interrupción IRQ=7, son las standard, tu debes de poner las de tu LPT1:Esta realmente no es mi manera preferida de hacerlo. El sethdlc trabaja igual de bien con uno que con varios dispositivos.

La página man de sethdlc tiene todos los detalles, pero un par de ej. Ilustrarán los aspectos más importante de la configuración. El siguiente ej. presupone que ya tienes cargado el módulo Baycom usando:

# insmod hdlcdrv
# insmod baycom

O que has compilado el kernel con el driver incluido.

Configurar el driver de dispositivo bc0 en el puerto paralelo LPT1: para un módem Baycom con DCD por software:

# sethdlc -p -i bc0 mode par96 io 0x378 irq 7

Configurar el driver de dispositivo bc1 para un módem Baycom en el puerto serie COM1:

# sethdlc -p -i bc1 mode "ser12*" io 0x3f8 irq 4

6.1.4.Configurando los parámetros de acceso a los canales en AX.25.

Los parámetros de acceso a los canales de AX.25 son los equivalentes a ppersist, txdelay y slottime de KISS. Otra vez tienes que usar la utilidad sethdlc para hacer esto.

Y de nuevo la página man de sethdlc trae la información completa, pero un ejemplo no está de mas:

Configurar el dispositivo bc0 como half dúplex, con txdelay de 200 ms., slottime de 1 ms. y ppersist de 40:

# sethdlc -i bc0 -a txd 200 slot 100 ppersist 40 half
OJO: los valores de tiempo, estan en milisegundos.

6.1.4.1.Configurando el kernel AX.25 para usar un dispositivo Baycom.

El driver Baycom crea dispositivos estándares de red que puede usar el código del kernel AX.25 . La configuración es similar a la de una tarjeta PI o PackletTwin.

El primer paso es configurar el dispositivo con un Indicativo(callsing) AX.25. Usamos la utilidad ifconfig para esto.

# /sbin/ifconfig bc0 hw ax25 EA4URE-15 up

Esto asigna el indicativo EA4URE-15 de AX.25 al dispositivo Baycom bc0. Alternativamente puede usar el comando axparms, pero igualmente tienes que usar el ifconfig para activar el dispositivo (up):

# ifconfig bc0 up
# axparms -setcall bc0 EA4URE-15

El próximo paso en crear una entrada en el archivo /etc/ax25/axports como harías para cualquier otro dispositivo. La entrada en el axports se asocia con el dispositivo de red que has configurado con el Indicativo. La entrada en el archivo axports que tenga el Indicativo con el cual configuró el dispositivo Baycom, es la que va a usarse para referirnos a él.

Puedes tratar al nuevo dispositivo AX.25 como a cualquier otro. Puedes configurarlo para TCP/IP, agregarlo a ax25d o correr NetRom o Rose, como mas te guste.

6.1.5.Creando en el Kernel un dispositivo SoundModem.

Opciones de configuración del kernel:

Amateur Radio support  --->
    [*] Amateur Radio support
    --- Packet Radio protocols
    <*>   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  --->
    --- AX.25 network device drivers
    ...
    <*> Soundcard modem driver
    [?]   soundmodem support for Soundblaster and compatible cards
    [?]   soundmodem support for WSS and Crystal cards
    [?]   soundmodem support for 1200 baud AFSK modulation
    [?]   soundmodem support for 2400 baud AFSK modulation (7.3728MHz crystal)
    [?]   soundmodem support for 2400 baud AFSK modulation (8MHz crystal)
    [?]   soundmodem support for 2666 baud AFSK modulation
    [?]   soundmodem support for 4800 baud HAPN-1 modulation
    [?]   soundmodem support for 4800 baud PSK modulation
    [?]   soundmodem support for 9600 baud FSK G3RUH modulation
    ...

Thomas Sailer a construido un nuevo driver para el kernel que te permite usar tu tarjeta de sonido como módem. Conecta tu equipo de radio directamente a la tarjeta de sonido y haga packet!!. Thomas recomienda como mínimo una 486DX2/66, si quieres usar este soft, ya que usa el cpu para todo el proceso digital de la señal.

Este driver actualmente emula los módem tipo 1200 bps AFSK, 4800 HAPN y 9600 FSK (Compatible G3RUH ). Las únicas tarjetas soportadas son los modelos Soundblaster y WindowsSoundSystem y compatibles. Las tarjetas de sonido necesitan algún tipo de circuitería para ayudar a usar el PTT (PushToTalk), y hay información sobre esto en La página web de Thomas´s SoundModem PTT. Hay varias posibilidades como son: detectar la salida de audio desde la tarjeta de sonido, o usar una salida del puerto paralelo, serial o midi. Hay circuitos de ejemplo en el sitio de Thomas.

Cuando se configura, el driver SoundModem, crea dispositivos llamados: sm0, sm1, etc.

Los Driver SoundModem utilizan los mismos recursos que los drivers de sonido de Linux. Por lo tanto si quieres usar SoundModem, debes estar seguro de que los drivers de sonido de Linux no estén instalados. Puedes compilar ambos como módulos e insertarlos y quitarlos a tu gusto.

6.1.5.1.Configurando la tarjeta de sonido.

El driverr SoundModem no inicializa la tarjeta de sonido. La utilidad ax25-util trae a “setcrystal” que puede usarse para tarjetas basadas en chipset Crystal. Si tienes otras tarjetas, deberás usar otra utilidad para inicializarlas. La sintaxis es la siguiente:

setcrystal [-w wssio] [-s sbio] 
    [-f synthio] [-i irq] [-d dma] [-c dma2]

Ejemplo: para una Soundblaster con dirección iobase 0x388, irq 10 y DMA 1, hay que usar:

# setcrystal -s 0x388 -i 10 -d 1

Para una Windows Sound System con dirección base i/o 0x534, irq 5 y DMA 3, usariamos:

# setcrystal -w 0x534 -i 5 -d 3

El parámetro [-f synthio] es para poner la dirección del sintetizador, y el [-c dma2] es para poner el segundo canal de DMA para operación full dúplex.

6.1.5.2.Configurando el driver soundModem.

Cuando ya hayas configurado la tarjeta, necesitarás configurar el driver para decirle donde encontrar a la tarjeta y que clase de módem quieres que emule.

La utilidad sethdlc te permite configurar los parámetros, o, si solo tienes una tarjeta de sonido instalada puedes usar el comando insmod con los parámetros necesarios cuando cargas el módulo de SoundModem.

Ejemplo: Una Soundblaster configurada como se describe arriba para emular a un módem de 1200 bps:

# insmod hdlcdrv
# insmod soundmodem mode="sbc:afsk1200" iobase=0x220 irq=5 dma=1

Esta no es la mejor manera de hacerlo ya que sethdlc trabaja lo mismo para uno como para varios.

La página man de sethdlc trae los detalles completos, pero un par de ejemplos aclararan los aspectos mas importantes de la configuración. El siguiente ejemplo supone que ya cargaste los módulos SoundModem usando:

# insmod hdlcdrv
# insmod soundmodem

O que compilaste el kernel con el driver.

Configurar el driver para soportar una tarjeta WSS como arriba emulando a un módem compatible G3RUH 9600, como dispositivo sm0 usando el puerto paralelo en 0x378 para el PTT.

# sethdlc -p -i sm0 mode wss:fsk9600 io 0x534 irq
     5 dma 3 pario 0x378

Configurar el driver para soportar una tarjeta Soundblaster como arriba emulando a un módem compatible 4800 HAPN como dispositivo sm1 usando el puerto serie ubicado en 0x2f8 para el PTT.

# sethdlc -p -i sm1 mode sbc:hapn4800 io 0x388 irq 10 
    dma 1 serio 0x2f8

Configurar el driverr para soportar una tarjeta Soundblaster como arriba emulando a un módem compatible 1200 AFSK como dispositivo sm1 usando el puerto serie ubicado en 0x2f8 para el PTT.

# sethdlc -p -i sm1 mode sbc:afsk1200 io 0x388 irq 10 
    dma 1 serio 0x2f8

6.1.5.3.Configurando los parámetros de acceso al canal AX.25.

Los parámetros de acceso a los canales de AX.25 son los equivalentes a ppersist, txdelay y slottime de KISS. Otra vez usaremos la utilidad sethdlc para hacer esto.

De nuevo vez la página man de sethdlc trae la información completa, pero un ejemplo ayuda:

Configurar el dispositivo sm0 como full duplex con TxDelay 100 ms., SlotTime 50 ms., PPersist 128.

# sethdlc -i sm0 -a txd 100 slot 50 ppersist 128 full
OJO: los valores de tiempo, estan en milisegundos.

6.1.5.4.Definiendo los niveles de audio y sintonizando el driver.

Para que trabaje correctamente el modem con el equipo de Radio, es necesario que los niveles de audio estén puestos correctamente. Lo mismo para SoundModem. Thomas ha desarrollado utilidades para hacer este trabajo más fácil y se llaman: smdiag y smmixer.

Smdiag
Suministra dos formas de display, tipo osciloscopio o tipo patrón de ojo

Smmixer
Permite ajustar el nivel de audio de transmisión y recepción.

Ejemplo: Para arrancar el smdiag en modo “ojo” (eye) para un SoundModem sm0 :

# smdiag -i sm0 -e

Para arrancar el smmixer para un SoundModem sm0:

# smmixer -i sm0

6.1.5.5.Configurando el kernel para usar un SoundModem.

El driver de SoundModem crea dispositivos de red estándares que puede usar el kernel AX.25. La configuración es idéntica que para una tarjeta PI o PacketTwin.

Lo primero es configurar el dispositivo con un indicativo AX.25. Usamos el comando ifconfig:

# /sbin/ifconfig sm0 hw ax25 EA4URE-15 up

Esto asigna el indicativo EA4URE-15 al dispositivo SoundModem sm0. Alternativamente puedes usar el comando axparms pero necesitaras el ifconfig para levantar el dispositivo:

# ifconfig sm0 up
# axparms -setcall sm0 vk2ktj-15

El próximo paso es crear una entrada en el archivo /etc/ax25/axports como haríamos para otro dispositivo. La entrada en el axports asocia el dispositivo de red que se ha configurado con el Indicativo configurado. La entrada en el archivo axports que tenga el Indicativo con el cual configuraste el dispositivo SoundModem, es la que va a usarse para referirse a él.

Puedes tratar el nuevo dispositivo AX.25 como a cualquier otro. Puedes configurarlo para TCP/IP, agregarlo a ax25d o correr NetRom o Rose, como te plazca.

6.1.6.Creando un dispositivo SoundModem en modo usuario.

No hay opciones, para la compilación del Kernel.

Thomas Sailer, ha escrito un driver para SoundModem, para que pueda ejecutarse en modo usuario, usando los modulos de sonido propios del Kernel, de esta forma podemos trabajar con las tarjetas de sonido que corren bajo Linux.

El driver esta implementado en el programa de usuario soundmodem. El programa gráfico soundmodemconfig configura y prueba los driver de soundmodem. Necesitaremos el soporte de sonido del Kernel AX.25 mkiss.

El sofware y la documentación, nos lo podemos bajar de: http://www.baycom.org/~tom/ham/soundmodem/.

6.1.7.Creando un driver para YAM

Opciones de compilación del Kernel.

Amateur Radio support  --->
    [*] Amateur Radio support
    --- Packet Radio protocols
    <*>   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  --->
    --- AX.25 network device drivers
    ...
    <?> YAM driver for AX.25
    ...

YAM es otro modem a 9600 baudios, diseñado por Nico Palermo. La información sobre los driver para Linux, puede bajarse de http://www.teaser.fr/~frible/yam.html, mas información de tipo general sobre este modem puede encontrarse en http://www.microlet.com/yam/.

6.1.8.Creando un dispositivo de tarjeta PI.

Opciones de configuración del kernel.

General setup  --->
    [*] Networking support
Network device support  --->
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Ottawa PI and PI/2 support for AX.25

El driver de dispositivo de la tarjeta PI crea dispositivos llamados “pi[0-9] [ab]”. La primera tarjeta detectada es “pi0”, la segunda “pi1” etc. La “a” o “b” se refieren a la primera o segunda interface física de la tarjeta. Si tienes compilado el kernel con el driver para PI incluido, y la tarjeta se ha detectado correctamente, puedes usar el comando siguiente para configurar el dispositivo de red:

# /sbin/ifconfig pi0a hw ax25 EA4URE-15 up

Este comando configura el primer puerto de la primera tarjeta PI detectada con el Indicativo EA4URE-15 y lo activa (up). Para usar el dispositivo lo que necesitas hacer ahora es agregar una entrada en /etc/ax25/axports con un Indicativo/ssid que se corresponda con el citado, y está listo para continuar.

El driver para PI fue escrito por: David Perry.

6.1.9.Creando un driver PacketTwin.

Opciones de configuración del kernel.

General setup  --->
    [*] Networking support
Network device support  --->
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Gracilis PackeTwin support for AX.25

El driver de dispositivo de tarjeta PacketTwin crea dispositivos llamados “pt[0-9] [ab]”. La primera tarjeta detectada es “pt0”, la segunda “pt1” etc. La “a” o “b” se refieren a la primera o segunda interface física de la tarjeta. Si tienes compilado el kernel con el driver para PacketTwin incluido, y la tarjeta se ha detectado correctamente, puedes usar el siguiente comando para configurar el dispositivo de red:

# /sbin/ifconfig pt0a hw ax25 EA4URE-15 up

Este comando configura el primer puerto en la primera tarjeta PacketTwin detectada con el Indicativo EA4URE-15 y lo activa (up). Para usar el dispositivo lo que necesitas hacer ahora es agregar una entrada en /etc/ax25/axports con un Indicativo/ssid que corresponde al citado, y estás listo para continuar.

El driver para tarjeta PacketTwin fue escrito por Craig Small,VK2XLZ.

6.1.10.Creando un driver genérico SCC.

Opciones de configuración del kernel.

General setup  --->
    [*] Networking support
Network device support  --->
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Z8530 SCC KISS emulation driver for AX.25

Joerg Reuter, DL1BKE, ha desarrollado el soporte genérico para tarjetas SCC basadas en Z8530. Su driver permite configurarlo para soportar un rango de diferentes tipos de tarjetas y presenta una interface que parece una TNC KISS, de tal modo que la trata como si fuera una TNC KISS.

6.1.10.1.Obteniendo y construyendo el paquete de herramientas de configuración.

Mientras el driver del kernel viene normalmente en la distribuciones estándares, Joerg distribuye la versión más reciente de su driver junto con las herramientas que tendrá que conseguir en:

Joerg’s web page

También en los siguientes sitios: ftp://db0bm.automation.fh-aachen.de/incoming/dl1bke, ftp://insl1.etec.uni-karlsruhe.de/pub/hamradio/linux/z8530, ftp://ftp.ucsd.edu/hamradio/packet/tcpip/linux, o ftp://ftp.ucsd.edu/hamradio/packet/tcpip/incoming.

Encontrarás muchas versiones. Selecciona la que mejor vaya con tu versión del kernel.

z8530drv-2.4a.dl1bke.tar.gz para 2.0.*
z8530drv-utils-3.0.tar.gz para 2.1.6 o mayor

Los siguientes comandos son los que usarás para compilar e instalar el paquete para el kernel 2.0.30:

# cd /usr/src
# gzip -dc z8530drv-2.4a.dl1bke.tar.gz | tar xvpofz -
# cd z8530drv
# make clean
# make dep
# make module         # Si quiere construir el driver como módulo
# make for_kernel     # Si quiere el driver incluido dentro del kernel
# make install

Después de la compilación, tendrás tres nuevos programas, instalados en /sbin : gencfg, sccinit y sccstat. Son los que se usan para configurar la tarjeta SCC.

También tendrás un nuevo grupo de archivos de dispositivos creados en /dev llamados scc0-scc7. Estos se usaran mas tarde y serán los dispositivos KISS que terminarás usando.

Si usas “make for_kernel” entonces deberás recopilar el kernel. Para estar seguro que se ha incluido el soporte para z8530, debes estar seguro de haber contestado “y” a “Z8530 SCC kiss emulation driver for AX.25” cuando te lo preguntan en el “make config”.

Si elegiste “make module” entonces el nuevo scc.o se instalará en el directorio /lib/modules apropiado, y no se necesita recompilar el kernel. Recuerda usar el comando insmod para cargar el módulo antes de configurarlo y usarlo.

6.1.10.2.Configurando el driver para tu tarjeta.

El driver z8530 SCC se creo para ser lo más flexible posible, para soportar la mayor cantidad de tarjetas posibles. Esta flexibilidad trae aparejado el costo de una mayor complicación en la configuración.

Hay mas información en el paquete y debes leerla si tienes problemas. Particularmente lee doc/scc_eng.doc o doc/scc_ger.doc para más detalles. He resaltado lo mas importante, pero hay detalles de bajo nivel que no he incluido.

El archivo de configuración maestro es leído por el programa sccinit y es llamado /etc/z8530drv.conf. Este archivo está separado en dos partes: configuración de los parámetros de hardware y configuración del canal. Después de haber configurado este archivo, solo necesitas añadir:

# sccinit

dentro del archivo rc que configura tu red de trabajo y el driver se inicializara de acuerdo con el contenido de este archivo de configuración. Debes hacer esto antes de intentar usarlo.

6.1.10.2.1.Configuración de los parámetros de hardware.

La primera sección esta dividida en partes o estrofas, cada estrofa representa un chip 8530. Cada estrofa es una lista de palabras claves con argumentos. Puedes especificar por omisión en este fichero hasta 4 chips SCC. El #define MAXSCC 4 en scc.c puede incrementarse si requieres soportar más.

Las palabras claves y argumentos permitidos son:

chip
Esta palabra clave se usa para separar estrofas. No usa argumento.

data_a
Esta palabra clave se usa para indicar la dirección del puerto de datos para el canal “A” del z8530. El argumento es un número hex. Ej. 0x300

ctrl_a
Se usa para indicar la dirección del puerto de control del canal “A” del z8530.. El argumento es un número hex. Ej 0x304

data_b
Esta palabra clave se usa para indicar la dirección del puerto de datos para el canal “B” del z8530. El argumento es un número hex. Ej. 0x301

ctrl_a
Se usa para indicar la dirección del puerto de control del canal “B” del z8530.. El argumento es un número hex. Ej 0x305

irq
Se usa para indicar el IRQ usado por la SCC 8530 descrita en esta estrofa. El argumento es un entero. Por ej. 5

pclock
Se usa para indicar la frecuencia del reloj en el pin PCLK del 8530. El argumento es la frecuencia en número entero de hetz, y por omisión usa 4915200, cuando no le indicamos otra.

board
El tipo de tarjeta que soporta esta SCC 8530. El argumento es una cadena de caracteres y se permiten los siguientes:

PA0HZP
Tarjeta PA0HZP SCC

EAGLE
Tarjeta EAGLE

PC100
Tarjeta DRSI PC100 SCC

PRIMUS
Tarjeta PRIMUS-PC (DG9BL)

BAYCOM
Tarjeta BAYCOM (U)SCC

scc
Es opcional y se usa para habilitar el soporte para chip extendidos SCC (ESCC) como los 8580, 85180 y 85280. El argumento es una cadena de caracteres y se permite “yes” o “no”. Por omisión “no”

vector
opcional. Especifica la dirección del vector de lanzamiento o “intack port” de la tarjeta PA0HZP. Puede haber solo un vector de lanzamiento para todos los chips. Por omisión 0.

special
Opcional. Especifica la dirección del registro de función especial de algunas tarjetas. Por omisión 0.

option
Opcional. Por omisión 0.

Ejemplos de configuraciones para las tarjetas más comunes:

BayCom USCC
chip    1
data_a  0x300
ctrl_a  0x304
data_b  0x301
ctrl_b  0x305
irq     5
board   BAYCOM
#
# SCC chip 2
#
chip    2
data_a  0x302
ctrl_a  0x306
data_b  0x303
ctrl_b  0x307
board   BAYCOM
PA0HZP SCC card
chip 1
data_a 0x153
data_b 0x151
ctrl_a 0x152
ctrl_b 0x150
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
#
#
#
chip 2
data_a 0x157
data_b 0x155
ctrl_a 0x156
ctrl_b 0x154
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
DRSI SCC card
chip 1
data_a 0x303
data_b 0x301
ctrl_a 0x302
ctrl_b 0x300
irq 7
pclock 4915200
board DRSI
escc no

Si ya tienes una configuración funcionando para tu tarjeta bajo NOS, entonces puedes usar el comando gencfg para convertir los comandos del driver PE1CHL del NOS al formato necesario por el archivo de configuración del driver z8530.

Para usar el gencfg simplemente invóquelo con los parámetros usados para el driver PE1CHL del NET/NOS. Por ejemplo:

# gencfg 2 0x150 4 2 0 1 0x168 9 4915200

Esto generará un modelo de configuración para la tarjeta OptoSCC.

6.1.10.3.Configuración del canal.

La Sección de configuración del canal es donde se especifica los otros parámetros asociados con el puerto a configurar. Otra vez, esta sección esta dividida en estrofas. Una estrofa represente un puerto lógico, y por lo tanto debería de haber dos de estas por cada una de las estrofas de parámetros de hardware, ya que cada 8530 SCC soporta dos puertos.

Estas palabras claves y argumentos se escriben también en el archivo /etc/z8530drv.conf y deben aparecer después de la sección de parámetros de hardware.

La secuencia correcta es muy importante, pero si usas la sugerida, funcionará perfectamente. Las palabras claves y argumentos son los siguientes:

device
Esta palabra clave debe ser la primera en la definición de un puerto y indica el nombre del archivo de dispositivo para el cual el resto de la configuración se aplica. Ejemplo: /dev/scc0

speed
Velocidad en bits por seg. De la interface. El argumento es un entero, por ejemplo: 1200

clock
indica de donde saca el origen el reloj para la data. Se permiten:

dpll
halfdulex normal

external
el módem provee su propio reloj de Rx/Tx

divider
usa divisor fullduplex, si esta instalado.

mode
Indica la codificación de datos usada. Se permite nrzi o nrz

rxbuffers
Indica el número de buffers de recepción para los cuales se reserva memoria. El argumento es un entero, por ej. 8

txbuffers
Indica el número de buffers de transmisión para los cuales se reserva memoria. El argumento es un entero, por ej. 8

bufsize
Indica el tamaño de los bufers de transmisión y recepción. El argumento es en bytes y representa el largo total del paquete, por lo tanto se debe tener en cuenta también las cabeceras AX.25 y no solo los datos. Es opcional y por omisión es 384.

txdelay
Valor de retardo de transmisión de KISS, argumento entero en miliseg.

persist
valor del persist de KISS, argumento entero.

slot
valor del slottime de KISS, argumento entero.

tail
valor de cola de tx. de KISS, argumento entero en miliseg.

fullduplex
bandera de fullduplex de KISS. Argumento entero y puede ser: 1==Full Duplex, 0==Half Duplex.

wait
valor de espera de KISS, argumento entero en miliseg.

min
valor mínimo de KISS, argumento entero en seg.

maxkey
Tiempo máximo de ptt on. Argumento entero en seg.

idle
valor del timer de idle de KISS, argumento entero en seg.

maxdef
valor maxdef de KISS, argumento entero.

group
valor de grupo de KISS, argumento entero.

txoff
valor de txoff de KISS, argumento entero en miliseg.

softdcd
valor del softdcd de KISS, argumento entero.

slip
Bandera del slip del KISS. Argumento entero.

6.1.10.4.Usando el driver.

Para usar el driver, trata simplemente a los dispositivo /dev/scc* como si fueran un dispositivo tty con una TNC KISS conectada a el. Ejemplo: para configurar el kernel de Linux para red y usar una tarjeta SCC deberías usar algo así:

# kissattach -s 4800 /dev/scc0 EA4URE

Ud. también puede usar NOS para adjuntarr (attach)al kernel de la misma manera. Por ejemplo del JNOS usarías algo así:

attach asy scc0 0 ax25 scc0 256 256 4800

6.1.10.5.Las herramientas sccstat y sccparam .

Para el diagnostico de problemas puedes usar sccatat para ver en el monitor la configuración de un dispositivo SCC. Prueba esto:

# sccstat /dev/scc0

Verás una gran cantidad de información relativa a la configuración y pulso (datos de funcionamiento) del puerto SCC /dev/scc0.
El sccparam te permite cambiar los parámetros de configuración después de haber rebotado. La sintaxis es similar a la del comando param del NOS, por lo tanto para poner la txtail de un dispositivo a 100 ms. Debería usar:

# sccparam /dev/scc0 txtail 0x8

6.1.11.Creando un dispositivo ethernet BPQ.

Opciones de configuración del kernel

General setup  --->
    [*] Networking support
Network device support  --->
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] BPQ Ethernet driver for AX.25

Linux tiene compatibilidad con BPQ Ethernet. Esto te permite correr el protocolo AX.25 sobre la LAN Ethernet y así usar tus maquinas Linux con otras máquinas BPQ en tu LAN.

Los dispositivo de red BPQ se llaman “bpq[0-9]”. El “bpq0” se asocia con “eth0” y así sucesivamente.

La configuración es bastante exacta. Primero debes tener configurado un dispositivo ethernet estándar, lo que significa que se debe tener el kernel compilado con soporte para ethernet , y que funcione. Para más información ver Ethernet-HOWTO.

Para configurar el soporte para BPQ, necesitas configurar el dispositivo ethernet con un Indicativo AX.25. Los siguientes comandos harán ese trabajo:

# /sbin/ifconfig bpq0 hw ax25 EA4URE-14 up

Recuerda, de nuevo, que el Indicativo usado aquí debe corresponderse con la entrada en el archivo /etc/ax25/axports que quieras usar para este puerto.

6.1.12.Configurando el Nodo BPQ para trabajar con el AX.25 de Linux.

El BPQ Ethernet usa normalmente una dirección multicast. Linux no, y en cambio usa la dirección normal de broadcast ethernet. Por lo tanto, el fichero NET.CFG para el driver BPQ ODI debe modificarse para que se parezca a lo siguiente:

LINK SUPPORT

        MAX STACKS 1
        MAX BOARDS 1

LINK DRIVER E2000                    ; or other MLID to suit your card

        INT 10                       ;
        PORT 300                     ; to suit your card

        FRAME ETHERNET_II

        PROTOCOL BPQ 8FF ETHERNET_II ; required for BPQ - can change PID

BPQPARAMS                            ; optional - only needed if you want
                                     ; to override the default target addr

        ETH_ADDR  FF:FF:FF:FF:FF:FF  ; Target address

6.2 Creando el fichero /etc/ax25/axports.

El archivo /etc/ax25/axports es simplemente un fichero texto que puedes crear con cualquier editor de texto. Su formato es el siguiente:

portname  callsign  baudrate  paclen  window  description

donde:

portname
Nombre (texto) con el que se referirá a ese puerto.

callsign
Indicativo AX.25 que quieres asignarle a ese puerto.

baudrate
Velocidad de comunicación de ese puerto con tu TNC.

paclen
Largo máximo del paquete que quieras configurar para ese puerto cuando usa AX.25 en modo conectado.

window
es el parámetro AX.25 window. En muchas TNC es lo mismo que el MAXFRAME.

description
descripción textual del puerto.

Un ejemplo:

radio    EA4URE-15       4800        256     2       4800bps 144.800 MHz
ether    EA4URE-14       10000000    256     2       BPQ/ethernet device

Recuerda que debes asignar Indicativos/ssid únicos para cada puerto AX.25 que crees. Crea una entrada para cada puerto AX.25 que quieras; esto incluye puertos KISS, Baycom, SCC, PI, PT y SoundModem. Cada entrada aquí, describe exactamente un dispositivo de red AX.25. Las entradas en este archivo estan asociadas con los dispositivo de red mediante su Indicativo/ssid. Esta es una buena razón para requerir un único Indicativo/ssid.

6.3 Configurando el enrutado AX.25.

A ti te gustaría configurar caminos específicos a determinados host a través de digipiters. Esto es útil tanto para conexiones AX.25 como para conexiones IP. El comando axparms te permite hacer esto. Otra ves las páginas man ofrecen una completa descripción, pero algunos ejemplos simples ayudan:

# /usr/sbin/axparms -route add radio EA4URE EA5B

Este comando pone un camino para EA4URE a través del digi EA5B en el puerto AX.25 llamado radio.

Anuncios