Для полноценной работы AX.25 в Linux, нужно чтобы ядро было собрано с поддержкой протокола AX.25 (в slackware стандартное ядро bare.i уже имеет поддержку) и нужно установить пакеты: ax25_apps, ax25_tools и libax25, они позволяют создать очень гибкую пакетныю систему и работают с большим кол-вом различного 'железа', от звуковых и DSP-карт, до многопортовых TNC. На схеме ниже вы видите одну из возможных конфигураций, которая позволяет работать APRS, Packet Radio, AMPR, FlexNet, NETROM, INP3, WEBHAM. У меня она сделана на основе старого LapTop CPU 233мГц, RAM 64Мб, HDD 2GGb и Linux Slackware 11. Двухпортовые контроллеры подключены к портам COM1 и COM2.
Пакеты ax25_apps, ax25_tools и libax25 можно взять из комплекта Salckware или скомпилировать самому более новые версии взяв их на сайте linux-ax25.org. Сначала рассмотрим самую простейшую конфигурацию, с одним портом и TNC2. После установки утилит потребуется создать запускающий скрипт и отредактировать некоторые конфигурационные файлы.
# /etc/ax25/axports # #name callsign speed paclen window description p1 UA6HJQ-1 9600 255 3 TNC2 (6pack)Порт имеет имя p1 (можно придумать другое), к нему подключен TNC2 с прошивкой 6pack. Скорость между TNC2 и СОМ-портом 9600бод, скорость в радиоканале (у моего TNC2W) 1200бод. Теперь создаём файл rc.ax25, который будет запускать нашу AX.25 конфигурацию с нужными параметрами и дополнительные программы.
#!/bin/sh # /etc/rc.d/rc.ax25 # # load modules insmod ax25 insmod 6pack # # port 1: tnc2 on 6pack mode via COM1 kissattach -6 /dev/ttyS0 p1 44.178.92.100 sleep 1 # echo "ax.25 parameters for tnc2" # -p port, -r persystanse, -l txtail, -s slottime, -t txdelay kissparms -p p1 -r 60 -s 100 -t 330 sleep 1 # echo "listen (monitor) on tty10" listen -ari8ct > /dev/tty10 & sleep 1 # echo "start mheardd" mheardd -n 20 sleep 1 # echo "start AX.25 beacons" beacon -d WSEM -s p1 "AX.25 utils is runing..." beacon -c UA6HJQ -d CQ -t 20 p1 "My home packet radio system on Linux Slackware" & #Что мы получили? К порту COM1 подключен TNC2 с прошивкой 6PACK (на мой взгляд, удачная прошивка) к TNC2 подключена УКВ радиостанция Yaesu FT-60R и антенна.
В файле запуска есть два маяка, первый передаётся один раз, только в момент запуска AX.25 системы. Второй маяк, каждые 20 минут, передаёт в эфир указанный текст. В 10-ом терминале (Alt+F10), мы можем наблюдать все переданные маяки и принимаемые из эфира пакеты от других станций. Смотрите вид экрана фото1.
Запуск mheardd нужен для того чтобы можно было смотреть статистику по всем работающим AX.25 портам, командой mheard. Вот как это выглядит на экране: фото2.
Командой kissparms мы установили несколько важных (именно для передачи пакетов) параметров. Теперь, чтобы соединиться с другой пакетной станцией (например с rz6hxa-8), нужно набрать в консоли команду call p1 rz6hxa-8. Цифра 1 это имя порта, оно может быть и другим. Сеанс связи выглядит так: фото3.
Итак, у нас есть базовая конфигурация, которая будет основой для создания более сложных систем на протоколе AX.25. Для наглядности нарисуем блок-схему которая выглядит так:
\|/ | .------. .------. .---------------------. | FT60 |---| TNC2 |---| COM1---Linux(AX.25) | <--- beacon, listen, call, mheard '------' '------' '---------------------'
Уже сейчас, без использования дополнительных программ, мы можем передавать маяки, мониторить частоту, соединяться с другими пакетными станциями, собирать статистику. Это базовые функции AX.25. Теперь рассмотрим, на конкретных примерах, варианты подключения различных программ к имеющейся конфигурации:
APRX
Чтобы через созданный порт могла работать программа APRS шлюза APRX, нужно
в файле конфигурации /etc/aprx.conf указать позывной
порта и запустить APRS-маяк, а обычный маяк отключить.
/etc/aprx.conf <interface> ax25-device UA6HJQ-1 <--- позывной указанный в /etc/ax25/axports tx-ok true </interface> <beacon> beaconmode both cycle-size 30m beacon symbol "I&" lat "4502.19N" lon "04158.35E" comment "Rx-Tx-iGate from Stavropol" </beacon>В строке ax25-device нужно указать позывной присвоенный порту в файле /etc/ax25/axports в нашем случае это UA6HJQ-10. Так программа APRX поймёт что требуется работать через этот порт. Для автоматического запуска APRX из скрипта, конец файла /etc/rc.d/rc.ax25 нужно дописать:
/etc/rc.d/rc.ax25 echo "aprx runing..." cd /sbin ./aprxПрограмма APRX, по умолчанию, запускается как демон и не занимает терминал, да там и смотреть не на что. Можно отметить, что APRX может работать напрямую с COM-портом и без AX.25 в Linux. В этом случае поддерживаются любые TNC имеющие KISS режим или TNC2 совместимые модели с прошивкой 6PACK или SMACK.
XNET
Чтобы через созданный порт мог работать роутер XNET, нужно дописать указанные
строки в указанные файлы. Работа XNET напрямую с AX.25 не предусмотрена,
поэтому, сначала создаём виртуальный порт (ptyp0-ttyp0) между AX.25 и XNET,
а затем запускаем сам XNET в 7-ом терминале. От туда с ним можно работать.
/etc/rc.d/rc.ax25 net2kiss -i sp0 /dev/ptyp0 & sleep 1 echo "(X)NET on tty7" cd /usr/xnet ./linuxsnet < /dev/tty7 > /dev/tty7 & /usr/xnet/AUTOEXEC.NET attach sdev0 kiss 0 1 9600 /dev/ttyp0 po 0 name 144625khz
Нужно отметить, что XNET можеть работать напрямую с COM-портом и без поддержки AX.25 со стороны Linux, но в этом случае выбор 'железа' ограничен TNC2 совместимыми моделями с прошивкой TRKISS. Кстати, работает он с ними очень хорошо!
OpenBCM
Делать соединение между портом и BBS нет смысла (хотя и возможно), гораздо
практичнее соединить их через XNET, так BBS получит возможность вести форвардинг
как через радиоканал, так и через FlexNet, NETROM, INP3, AMPR сети,
а пользователи этих сетей, получать доступ к нему. Поэтому создаём ещё один
виртуальный порт в XNET для BBS. Работа роутера XNET в связке с BBS OpenBCM,
это оптимальный вариант, они гармонично дополняют друг друга.
/usr/xnet/AUTOEXEC.NET attach sdev1 kiss 1 1 38400 /dev/ptyp2 # link to baybox po 1 name local mailbox po 1 baud 38400 po 1 duplex 255 po 1 per 200 po 1 txd 0 route local add 1 ua6hjq-8 nd BCM /usr/bcm/init.l2 dcall ua6hjq-2 ; xnet call monitor 4 mselect 0 mcalls -0 ; assign kiss mode 38400 device /dev/ttyp2 /etc/rc.d/rc.ax25 echo "BayCom-Mailbox on tty8" cd /usr/bcm ./bcm144k < /dev/tty8 > /dev/tty8 &OpenBCM должен запускаться после (его строки стоят ниже) XNET. В 8-ой консоли вы будете видеть что он делает, в режиме реального времени. Это удобно и нужно для отладки его работы. ББС должен работать под постоянным контролем SysOp, как и любая почтовая система он требует обслуживания.
NODE и AWZNODE
Эти программы выполняют простые узловые функции, на мой взгляд они устарели,
роутер XNET может их полностью заменить. Поэтому настройку и конфигурацию
NODE и AWZNODE здесь я рассматривать не буду.
Полезные ссылки:
hamcmw.qrz.ru/pr/ - большой раздел о пакетной связи и aprs
APRX ,
OpenBCM , XNET ,
AWZnode
Игорь UA6HJQ