USBSoundModem

Differences between revisions 4 and 18 (spanning 14 versions)
Revision 4 as of 2011-04-30 02:26:16
Size: 3462
Editor: www
Comment: kiss vs bbs
Revision 18 as of 2011-05-07 15:47:55
Size: 10001
Editor: www
Comment: added a pretty picture
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Joey, NV0N, has been working on finding the right configuration for USB Sound Modems like the Tigertronics SignalLink USB to be used for accessing packet BBSes. (APRS setup is a bit different in that it uses "kissattach" and "kissparms".)

Below is a work in progress under Natty. Feel free to edit this page if you have success.
Joey, NV0N on #ubuntu-hams, has a working configuration for USB Sound Modems like the Tigertronics SignalLink USB to be used for accessing packet BBSes.

Notes:
 * APRS setup is a bit different in that it uses "kissattach" and "kissparms". This config is for pbbs use and not APRS.
 * This is a known working configuration under Natty.
 * The configuration for NETROM has been commented out but in fact does work under Natty so enable it if you want it.
 * ROSE has been disabled.
 * Feel free to edit this page if you have success or other comments.
 * NV0N-8 is used below in the examples. Replace this with your callsign. The dash 8 iterator is not needed and you can simply use your callsign.
 * You do not have to change any of the IP addresses in the configs below (e.g. 44.94.11.8)
Line 14: Line 21:
 * ax25spyd - AX.25 traffic analyzer, dumper and spy daemon  * ax25spyd - AX.25 traffic analyzer, dumper and spy daemon - optional
Line 29: Line 36:
 * I've added hamlib_params below which you may need to change or delete.
Line 34: Line 42:
<configuration name="siglink"><channel name="Channel 0"><mod mode="afsk" bps="1200" f0="1200" f1="2200" diffenc="1" filter="df9ic/g3ruh" inlv="8" fec="3" tunelen="32" synclen="32"/><demod mode="afsk" bps="1200" f0="1200" f1="2200" diffdec="1" filter="df9ic/g3ruh"/><pkt mode="MKISS" ifname="sm0" hwaddr="NV0N-8" ip="44.128.248.62" netmask="255.255.255.224" broadcast="44.128.248.63" file="/dev/soundmodem0" unlink="1"/></channel><chaccess txdelay="300" slottime="100" ppersist="64" fulldup="0" txtail="30"/><audio type="alsa" device="plughw:2,0" halfdup="1" capturechannelmode="Mono"/><ptt file="/dev/ttyUSB0" hamlib_model="123" hamlib_params="-s 4800"/></configuration></modem>
}}}
<configuration name="siglink"><channel name="Channel 0"><mod mode="afsk" bps="1200" f0="1200" f1="2200" diffenc="1" filter="df9ic/g3ruh" inlv="8" fec="3" tunelen="32" synclen="32"/><demod mode="afsk" bps="1200" f0="1200" f1="2200" diffdec="1" filter="df9ic/g3ruh"/><pkt mode="MKISS" ifname="sm0" hwaddr="NV0N-8" ip="44.94.11.8" netmask="255.255.255.0" broadcast="49.94.11.255" file="/dev/soundmodem0" unlink="1"/></channel><chaccess txdelay="300" slottime="100" ppersist="64" fulldup="0" txtail="30"/><audio type="alsa" device="plughw:2,0" halfdup="1" capturechannelmode="Mono"/><ptt file="/dev/ttyUSB0" hamlib_model="123" hamlib_params="serial_speed=4800,rts_state=OFF,dtr_state=OFF"/></configuration></modem>}}}
Line 60: Line 67:
parameters 1 10 * * * * *
Line 62: Line 70:
#
# Uncomment to enable netrom
#<netrom>
#parameters 1 10 * * * * *
#NOCALL * * * * * * L
#default * * * * * * 0 root /usr/sbin/node node

}}}

=== Avahi ===
Avahi's publish command sends packets out over ax.25 which is something we don't want. Below is a copy of a working /etc/avahi/avahi-daemon.conf that you can use. The lines "#jjs changed" are the ports turned off.

{{{
# This file is part of avahi.
#
# avahi is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# avahi is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with avahi; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.

# See avahi-daemon.conf(5) for more information on this configuration
# file!

[server]
#host-name=foo
#domain-name=local
#browse-domains=0pointer.de, zeroconf.org
use-ipv4=yes
use-ipv6=no
#allow-interfaces=eth0
#deny-interfaces=eth1
#check-response-ttl=no
#use-iff-running=no
#enable-dbus=yes
#disallow-other-stacks=no
#allow-point-to-point=no
#cache-entries-max=4096
#clients-max=4096
#objects-per-client-max=1024
#entries-per-entry-group-max=32
ratelimit-interval-usec=1000000
ratelimit-burst=1000

[wide-area]
enable-wide-area=yes

[publish]
#jjs changed
disable-publishing=yes
#disable-user-service-publishing=no
#add-service-cookie=no
#jjs changed
publish-addresses=no
publish-hinfo=no
publish-workstation=no
publish-domain=no
#publish-dns-servers=192.168.50.1, 192.168.50.2
#publish-resolv-conf-dns-servers=yes
#publish-aaaa-on-ipv4=yes
#publish-a-on-ipv6=no

[reflector]
#enable-reflector=no
#reflect-ipv=no

[rlimits]
#rlimit-as=
rlimit-core=0
rlimit-data=4194304
rlimit-fsize=0
rlimit-nofile=768
rlimit-stack=4194304
rlimit-nproc=3
}}}

=== node.conf ===

 * set your callsign and related fields
 * don't forget to set the local node to whatever you are using (e.g. 44.94.11.0/24)

{{{
# /etc/ax25/node.conf - LinuxNode configuration file
#
# see node.conf(5)

# Idle timeout (seconds).
#
IdleTimeout 900

# Timeout when gatewaying (seconds).
#
ConnTimeout 14400

# Visible hostname. Will be shown at telnet login.
#
HostName nv0n.ampr.org

# Node ID.
#
NodeId #HAMLID:NV0N-8
#NodeId \033[01;31m***\033[0m

# ReConnect flag.
#
ReConnect on

# "Local" network.
#
LocalNet 44.94.11.0/24

# Command aliases.
#
# Alias CAllbook 'telnet %{2:jazz.oh7lzb.ampr.org} 1235 %1'
# Alias CONVers 'telnet %{2:hydra.carleton.ca} 3600 "/n %u %{1:32768}\n/w *"'
# Alias CLuster 'c hkiclh'

# Hidden ports.
#
#HiddenPorts 2

# External commands
#
# Flags: 1 Run command through pipe
# 2 Reconnect prompt
#
#ExtCmd PMS 3 root /usr/sbin/pms pms -u \%U -o VK2LID
#ExtCmd PS 1 nobody /bin/ps ps ax
#ExtCmd TPM 1 nobody /usr/bin/finger finger tpm
#ExtCmd Vpaiva 1 nobody /home/tpm/bin/vpaiva vpaiva
#ExtCmd NOde 0 root /usr/local/bin/node node
ExtCmd ECho 1 nobody /bin/echo echo \%U\%u \%S\%s \%P\%p \%R\%r \%T\%t \%\% \%0 \%1 \%2 \%3 \%4 \%5 \%6 \%7 \%8 \%9
#ExtCmd ECho 1 nobody /bin/echo echo foo\%{1:***}bar \%{U}\%{0:foo}\%{1:bar}\%{2:huu}\%{3:haa}
ExtCmd TIme 1 nobody /bin/echo echo %N Node session started at %I, current time is \%I.

# Netrom port name. This port is used for outgoing netrom connects.
# Note that you can leave this uncommented even though you've disabled netrom
#
NrPort nr0

# Logging level
#
LogLevel 3

# The escape character (CTRL-T)
#
EscapeChar ^T

# Resolve ip numbers to addresses?
#
ResolveAddrs off

# Node prompt.
#
NodePrompt "\n"
#NodePrompt "\n%s@%h \%i> "
#NodePrompt "\033[36m%U\033[0m de \033[01;35m#LNODE\033[0m:\033[01;31mVK2LID-10\033[0m> "
}}}

=== node.perms ===

Set your callsign and related fields

{{{
# /etc/ax25/node.perms - LinuxNode permissions file
#
# see node.perms(5)

# user type port passwd perms
nv0n * * secret 255

# User vk2lid can login without password from anywhere else but 'inet'.
#
#vk2lid inet * qwerty 95
#vk2lid * * * 95

# VK2BBS is a bbs so it needs escape disabled.
#
#vk2bbs * * * 287

# Default permissions per connection type.
#
* ax25 * * 31
* netrom * * 31
* local * * 31
* ampr * * 31
* inet * * 0
* host * * 31
}}}


=== nrports ===

{{{
# /etc/ax25/nrports
#
# The format of this file is:
#
# name callsign alias paclen description
#
# uncomment to enable netrom
#nr0 NV0N-8 #LNODE 236 Switch Port
}}}

=== rsports ===
ROSE is almost never used so just comment out the ports.

{{{
# /etc/ax25/rsports
#
# The format of this file is:
#
# name address description
#
#rose 2080192203 Rose port
}}}

=== modprobe ===
If you want to enable netrom, create a file called /etc/modprobe.d/netrom.conf and put this in it
{{{
alias nr0 netrom
}}}

=== nrbroadcast ===

Uncomment sm0 to enable netrom

{{{
# /etc/ax25/nrbroadcast
#
# The format of this file is:
#
# ax25_name min_obs def_qual worst_qual verbose
#
# 1 5 192 100 0
# 2 5 255 100 1
# sm0 5 255 100 0
Line 65: Line 319:
This is the startup script (I call it packet.sh). Must be run as root/sudo. Advice is to run these manually the first few times until you get no errors. Note: make sure you reboot at least once after doing all the above.

This is the startup script (I call it packet.sh). Must be run as root/sudo. Advice is to run these manually the first few times until you get no errors. Keep in mind the route commands below need to match what you put into soundmodem.conf above.
Line 69: Line 325:
#load netrom
#uncomment the next two lines to enable netrom
#modprobe netrom
#nrattach -i 44.94.11.8 nr0
Line 88: Line 348:
At this point you should be at a command line and can run  At this point you should be at a command line and can run
Line 93: Line 353:

== What to expect when you're done ==
{{attachment:axcall.png}}

Overview

Joey, NV0N on #ubuntu-hams, has a working configuration for USB Sound Modems like the Tigertronics SignalLink USB to be used for accessing packet BBSes.

Notes:

  • APRS setup is a bit different in that it uses "kissattach" and "kissparms". This config is for pbbs use and not APRS.
  • This is a known working configuration under Natty.
  • The configuration for NETROM has been commented out but in fact does work under Natty so enable it if you want it.
  • ROSE has been disabled.
  • Feel free to edit this page if you have success or other comments.
  • NV0N-8 is used below in the examples. Replace this with your callsign. The dash 8 iterator is not needed and you can simply use your callsign.
  • You do not have to change any of the IP addresses in the configs below (e.g. 44.94.11.8)

Software

This setup requires these packages:

  • libax25 - library for hamradio applications
  • ax25-apps - AX25 ham radio applications
  • ax25-tools - AX-25 tools
  • ax25-xtools - AX-25 tools (X versions) - optional
  • ax25spyd - AX.25 traffic analyzer, dumper and spy daemon - optional
  • soundmodem - Sound Card Amateur Packet Radio Modems
  • rigctl - Rig Control programs
  • node - ham radio node (digipeter) application

Configuration Files

Soundmodem config

From /etc/ax25/soundmodem.conf

Notes:

  • the IP address can be arbitrary for your testing (in fact, you can just leave it as is)
  • replace the NV0N callsign with yours
  • replace the hamlib configuration with yours. (123 is a Yaesu FT-897)
  • I've added hamlib_params below which you may need to change or delete.

<?xml version="1.0"?>
<modem>

<configuration name="siglink"><channel name="Channel 0"><mod mode="afsk" bps="1200" f0="1200" f1="2200" diffenc="1" filter="df9ic/g3ruh" inlv="8" fec="3" tunelen="32" synclen="32"/><demod mode="afsk" bps="1200" f0="1200" f1="2200" diffdec="1" filter="df9ic/g3ruh"/><pkt mode="MKISS" ifname="sm0" hwaddr="NV0N-8" ip="44.94.11.8" netmask="255.255.255.0" broadcast="49.94.11.255" file="/dev/soundmodem0" unlink="1"/></channel><chaccess txdelay="300" slottime="100" ppersist="64" fulldup="0" txtail="30"/><audio type="alsa" device="plughw:2,0" halfdup="1" capturechannelmode="Mono"/><ptt file="/dev/ttyUSB0" hamlib_model="123" hamlib_params="serial_speed=4800,rts_state=OFF,dtr_state=OFF"/></configuration></modem>

axports

The standard naming convention for soundmodems is sm0

# /etc/ax25/axports
#
# The format of this file is:
#
# name callsign speed paclen window description
#
sm0     NV0N-8  1200    255     2       145.090 MHz (1200  bps)

ax25d

# /etc/ax25/ax25d.conf
#
# ax25d Configuration File.
#
# AX.25 Ports begin with a '['.
#
[NV0N-8 via sm0]
parameters 1    10  *  *  *   *   *
NOCALL * * * * * * L
default 1 10 3 300 10 5 -       root    /usr/sbin/node node %d %s
#
# Uncomment to enable netrom
#<netrom>
#parameters 1    10  *  *  *   *   *
#NOCALL     *     *  *  *  *   *   L
#default    *     *  *  *  *   *   0        root /usr/sbin/node node

Avahi

Avahi's publish command sends packets out over ax.25 which is something we don't want. Below is a copy of a working /etc/avahi/avahi-daemon.conf that you can use. The lines "#jjs changed" are the ports turned off.

# This file is part of avahi.
#
# avahi is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# avahi is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with avahi; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.

# See avahi-daemon.conf(5) for more information on this configuration
# file!

[server]
#host-name=foo
#domain-name=local
#browse-domains=0pointer.de, zeroconf.org
use-ipv4=yes
use-ipv6=no
#allow-interfaces=eth0
#deny-interfaces=eth1
#check-response-ttl=no
#use-iff-running=no
#enable-dbus=yes
#disallow-other-stacks=no
#allow-point-to-point=no
#cache-entries-max=4096
#clients-max=4096
#objects-per-client-max=1024
#entries-per-entry-group-max=32
ratelimit-interval-usec=1000000
ratelimit-burst=1000

[wide-area]
enable-wide-area=yes

[publish]
#jjs changed
disable-publishing=yes
#disable-user-service-publishing=no
#add-service-cookie=no
#jjs changed
publish-addresses=no
publish-hinfo=no
publish-workstation=no
publish-domain=no
#publish-dns-servers=192.168.50.1, 192.168.50.2
#publish-resolv-conf-dns-servers=yes
#publish-aaaa-on-ipv4=yes
#publish-a-on-ipv6=no

[reflector]
#enable-reflector=no
#reflect-ipv=no

[rlimits]
#rlimit-as=
rlimit-core=0
rlimit-data=4194304
rlimit-fsize=0
rlimit-nofile=768
rlimit-stack=4194304
rlimit-nproc=3

node.conf

  • set your callsign and related fields
  • don't forget to set the local node to whatever you are using (e.g. 44.94.11.0/24)

# /etc/ax25/node.conf - LinuxNode configuration file
#
# see node.conf(5)

# Idle timeout (seconds).
#
IdleTimeout     900

# Timeout when gatewaying (seconds).
#
ConnTimeout     14400

# Visible hostname. Will be shown at telnet login.
#
HostName        nv0n.ampr.org

# Node ID.
#
NodeId          #HAMLID:NV0N-8
#NodeId         \033[01;31m***\033[0m

# ReConnect flag.
#
ReConnect       on

# "Local" network.
#
LocalNet        44.94.11.0/24

# Command aliases.
#
# Alias         CAllbook 'telnet %{2:jazz.oh7lzb.ampr.org} 1235 %1'
# Alias         CONVers  'telnet %{2:hydra.carleton.ca} 3600 "/n %u %{1:32768}\n/w *"'
# Alias         CLuster  'c hkiclh'

# Hidden ports.
#
#HiddenPorts    2

# External commands
#
# Flags:        1       Run command through pipe
#               2       Reconnect prompt
#
#ExtCmd         PMS     3       root /usr/sbin/pms pms -u \%U -o VK2LID
#ExtCmd         PS      1       nobody  /bin/ps ps ax
#ExtCmd         TPM     1       nobody  /usr/bin/finger finger tpm
#ExtCmd         Vpaiva  1       nobody  /home/tpm/bin/vpaiva vpaiva
#ExtCmd         NOde    0       root    /usr/local/bin/node node
ExtCmd          ECho    1       nobody  /bin/echo echo \%U\%u \%S\%s \%P\%p \%R\%r \%T\%t \%\% \%0 \%1 \%2 \%3 \%4 \%5 \%6 \%7 \%8 \%9
#ExtCmd         ECho    1       nobody  /bin/echo echo foo\%{1:***}bar \%{U}\%{0:foo}\%{1:bar}\%{2:huu}\%{3:haa}
ExtCmd          TIme    1       nobody  /bin/echo echo %N Node session started at %I, current time is \%I.

# Netrom port name. This port is used for outgoing netrom connects.
# Note that you can leave this uncommented even though you've disabled netrom
#
NrPort          nr0

# Logging level
#
LogLevel        3

# The escape character (CTRL-T)
#
EscapeChar      ^T

# Resolve ip numbers to addresses?
#
ResolveAddrs    off

# Node prompt.
#
NodePrompt      "\n"
#NodePrompt     "\n%s@%h \%i> "
#NodePrompt     "\033[36m%U\033[0m de \033[01;35m#LNODE\033[0m:\033[01;31mVK2LID-10\033[0m> "

node.perms

Set your callsign and related fields

# /etc/ax25/node.perms - LinuxNode permissions file
#
# see node.perms(5)

# user  type    port    passwd  perms
nv0n      *      *       secret  255

# User vk2lid can login without password from anywhere else but 'inet'.
#
#vk2lid inet    *       qwerty  95
#vk2lid *       *       *       95

# VK2BBS is a bbs so it needs escape disabled.
#
#vk2bbs *       *       *       287

# Default permissions per connection type.
#
*       ax25    *       *       31
*       netrom  *       *       31
*       local   *       *       31
*       ampr    *       *       31
*       inet    *       *       0
*       host    *       *       31

nrports

# /etc/ax25/nrports
#
# The format of this file is:
#
# name callsign alias paclen description
#
# uncomment to enable netrom
#nr0    NV0N-8 #LNODE   236     Switch Port

rsports

ROSE is almost never used so just comment out the ports.

# /etc/ax25/rsports
#
# The format of this file is:
#
# name address description
#
#rose   2080192203      Rose port

modprobe

If you want to enable netrom, create a file called /etc/modprobe.d/netrom.conf and put this in it

alias nr0          netrom

nrbroadcast

Uncomment sm0 to enable netrom

# /etc/ax25/nrbroadcast
#
# The format of this file is:
#
# ax25_name min_obs def_qual worst_qual verbose
#
# 1     5       192     100     0
# 2     5       255     100     1
# sm0   5       255     100     0

startup script

Note: make sure you reboot at least once after doing all the above.

This is the startup script (I call it packet.sh). Must be run as root/sudo. Advice is to run these manually the first few times until you get no errors. Keep in mind the route commands below need to match what you put into soundmodem.conf above.

#load netrom
#uncomment the next two lines to enable netrom
#modprobe netrom
#nrattach -i 44.94.11.8 nr0
# start ax25 with the soundmodem driver using the port
# defined in /etc/ax25/axports
/usr/sbin/soundmodem /etc/ax25/soundmodem.conf -R -M >/dev/null 2>/dev/null&
sleep 1
# TNC Parameters txd, persist, slottime, txtail are done by
# soundmodemconfig and stored in soundmodem.conf
# this adds a route to our soundmodem
/sbin/route add -host 44.94.11.8 dev sm0
# route to the rest of the netrom IP capable nodes
/sbin/route add -net 44.94.11.0 netmask 255.255.255.0 gw 44.94.11.8 dev sm0
sleep 1
# listen for various incoming connects like PMS, node, etc.
# (MUST first be configured in /etc/ax25/ax25d.conf)
/usr/sbin/ax25d
sleep 1
# listen for stations heard
/usr/sbin/mheardd

At this point you should be at a command line and can run

axcall sm0 callsign

where callsign is your local BBS.

What to expect when you're done

axcall.png

UbuntuHams/USBSoundModem (last edited 2011-05-07 15:47:55 by www)