С новыми версиями OpenWRT это не работает
Как и обещал выкладываю инструкцию по настройке связки APRX SoundModem в системе OpenWRT. Как оказалось, самое сложное из этого, стало найти необходимые пакеты, т.к. самому собирать из исходников не очень то и хотелось. Эта статья для тех, кто не хочет собирать по каким либо причинам TNC модем, ну или ещё что-нибудь, т.е. всё что описано ниже работает без TNC, а с помощью звуковой карты. Нам понадобится из железа:
- Маршрутизатор с OpenWRT (я использовал TPLink MR3220 v2 и последняя на сегодняшний день OpenWRT.)
- USB звуковая карта (любая, у меня куплена на ebay за 1.5 USD)
из программного обеспечения:
- aprx
- ax25-apps
- ax25-tools
- libax25
- libzip
- libzip-utils
- soundmodem
- kmod-ax25
- kmod-sound-core
- kmod-usb-audio
- alsa-utils
- Возможно что то ещё, чего не хватает скажет opkg, инструкцию пишу по памяти 🙂
Первым делом устанавливаем пакеты
opkg update
opkg install kmod-sound-core kmod-usb-audio alsa-utils kmod-ax25
т.к. эти пакеты есть в репозитории, то установить их просто, а вот следующих там нет, их нужно сначала загрузить в маршрутизатор, а потом устанавливать, к примеру загрузили мы их в /tmp
. Пишем cd /tmp
и дальше вот так:
opkg install aprx_2.08_r596-kissOZ.dk_ar71xx.ipk
opkg install libax25_0.0.12-rc4_ar71xx.ipk
opkg install libzip_0.10.1-1_ar71xx.ipk
opkg install libzip-utils_0.10.1-1_ar71xx.ipk
opkg install ax25-apps_0.0.8-rc4_ar71xx.ipk
opkg install ax25-tools_0.0.10-rc4_ar71xx.ipk
opkg install soundmodem_0.18-1_ar71xx.ipk
После того как установил, решил просто без конфига запустить soundmodem, но вдруг вылезла ошибка о невозможности загрузить libaudiofile.so.0
думал его нет в системе, установил opkg install libaudiofile
но безрезультатно. Полез в директорию /usr/lib/
и заметил, что этот файл имеет запись libaudiofile.so.1
, и простым созданием симлинка libaudiofile.so.0
или копированием с этим же именем решили проблему. Дальше пройдёмся по конфигам.
создадим конфиг /etc/ax25/soundmodem.conf
его содержание:
<?xml version="1.0"?>
<modem>
<configuration name="AX25">
<chaccess txdelay="150" slottime="100" ppersist="40" fulldup="0" txtail="10"/>
<audio type="alsa" device="plughw:0,0" halfdup="1" capturechannelmode="Mono"/>
<ptt file="none" hamlib_model="" hamlib_params="" gpio="0"/>
<channel name="sm0"><mod mode="afsk" bps="1200" f0="1200" f1="2200" diffenc="1" inlv="8" fec="1" tunelen="32" synclen="32"/>
<demod mode="afsk" bps="1200" f0="1200" f1="2200" diffdec="1" inlv="8" fec="3" mintune="16" minsync="16"/>
<pkt mode="MKISS" ifname="sm0" hwaddr="EW8BAK-1" ip="172.16.16.119" netmask="255.255.255.0" broadcast="172.16.16.255" file="/dev/dsp" unlink="1"/></channel></configuration>
</modem>
Жирное выделение меняем на свои значения.
дальше правим файл /etc/ax25/axports
и добавим туда
sm0 EW8BAK-1 9600 255 2 soundmodem
Дальше пойдём в конфиг /etc/aprx.conf
Основные настройки я выкладывал в прошлом посте, так что их трогать не будем, а к тому что есть добавляем следующее:
<interface>
ax25-device $mycall
tx-ok true # transmitter enable defaults to false
#telem-to-is true # set to 'false' to disable
</interface>
<beacon>
beaconmode both
cycle-size 20m
beacon symbol "I#" $myloc comment "DE EW8BAK-1 iGate + Digipeater"
</beacon>
<digipeater>
transmitter $mycall
<source>
source $mycall
</source>
<source>
source APRSIS
relay-type third-party
viscous-delay 5
via-path WIDE1-1
</source>
</digipeater>
Здесь мы настроили интерфейс для связи, маяк который через каждые 20 минут буде обозначать себя и в радио и в Интернете, и дигипитер который должен работать в двух направлениях, но увы это ещё не проверял. Сохраняем и выходим. Дальше запускаем soundmodem
soundmodem /etc/ax25/soundmodem.conf -R -M &
и aprx
aprx -f /etc/aprx.conf
Вроде бы всё, эта связка работает, осталось сделать PTT для трансивера в котором к примеру нет VOX. Это будет дальше. Так же можно посмотреть что принимает soundmodem
, для этого нужно ввести команду listen -a
или с кем то соединится к примеру call sm0 EW8BAK via EW8BAK-1
И ещё позже скрипты автозагрузки может быть напишу. Так же хочу отметить, что приведённые выше пакеты собраны для архитектуры ar71xx. Если у вас другая, то оно естественно не установится и opkg скажет об этом.