FAQ
ldsped specific questions
ldsped does not do <something> and agwpe does. What is wrong ?
mheardd is running, but ldsped complains it cannot find the mheard.dat file
What is the purpose of the TRAFFIC object ?
I'm in a satellite band and want to limit the extra packets. How do I disable the TRAFFIC object ?
How do I control the probe beacon ?
I'm in a satellite band and want to limit the extra packets. How do I stop the probe beacon ?
What does that verbose level mean ?
I want a high verbose level on startup (to catch problems) but once running I do not want that much logging
What's all that about APRSQ and executing scripts ?
Linux AX25 issues not concerning ldsped :
I have a dual-port TNC, but the setup from the AX25 HOWTO does not work
My AX25 libs / apps / tools seems fairly old to me. Do/should I have the latest version ?
ldsped does not do <something> and agwpe does. What is wrong ?
ldsped is not a 100% compatible agw replacement.
There are several reasons for it :
- ldsped can not always behave as agwpe does in undefined (= not described in the agwpe documentation) situations, simply because I cannot foresee and test all those situations
- some client programs have bugs where ldsped might react different than agwpe does
- some client programs seem to rely heavy on the strings agwpe returns in some cases and the ldsped strings are not always exactly the same (ie see the port_info_compatible configuration directive)
- not all frames or all functions are implemented at this moment
-
receiving connection oriented connections is not yet possible (but connecting to others is!).
connectionless connections (as Xastir, UI-view, AGWTracker, ... use) are no problem.
Check the ldsped 1.00 and ldsped 1.1x pages for more information.
If you use ldsped and you have problems or want to use actually unimplemented functions, please let me know. Get me enough information about the setup you use and I'll see into it.
mheardd is running, but ldsped complains it cannot find the mheard.dat file
ldsped might have been compiled with the wrong options.
The mheard.dat file is expected in AX25_LOCALSTATEDIR/mheard/mheard.dat.
By default, AX25_LOCALSTATEDIR is /usr. Look at the INSTALL file for instructions how to change it before compiling.
As a quick fix, you might create a symlink in the directory where ldsped expects mheard.dat to the real file (most probably /usr/mheard/mheard.dat).
What is the purpose of the TRAFFIC object ?
It monitors the aprs traffic and puts out an object telling the others about it
(like http://www.apritch.myby.co.uk/traffic.htm, but without the graps. Graphs are done via MRTG)
I'm in a satellite band and want to limit the extra packets. How do I disable the TRAFFIC object ?
search and find in ldsped.conf :
# - amount of traffic status beacons per hour traffic <something>
and change it to
# - amount of traffic status beacons per hour traffic 0
The other traffic... parameters can stay. They will be read, but nothing will be done with them.
How do I control the probe beacon ?
to control the PHG probe, you have to change the probestring parameter.
You can calculate it by hand, or use an online calculator.
Here is one I derived from http://www.apritch.myby.co.uk/phgrcalc.htm
I'm in a satellite band and want to limit the extra packets. How do I stop the probe beacon ?
When you completely want to disable it, set
probe 0
as last of the probe parameters or as only probe parameter in ldsped.conf
What does that verbose level mean ?
The verbose level is 0 ... 5.
The messages one will see are those of the verbose level chosen and those of all lower verbose levels.
Generally level 3 is a good choice. Level 5 (as could be expected) produces a lot of data.
0 : Fatal errors and severe errors. Affects correct functioning of ldsped
1 : Important information and errors concerning the (mis)configuration of ldsped or the misuse by the client program
2 : Information about connections (making/breaking) of client programs
3 : ldsped going ONAIR
4 : Info about data being send and received with the client programs
5 : More info about what ldsped is doing and sending to the clients
I want a high verbose level on startup (to catch problems) but once running I do not want that much logging
No problem.
ldsped starts with the loglevel you specify on the command line. Each 'l' increases the loglevel by 1.
Once it reads the loglevel configuration directive, it switches to that level.
So when you start ldsped with
# ldsped -dlllll
it wil start with the highest verbose level.
You put the
loglevel 3
as last line in the ldsped configuration file. So when this file is read, ldsped will switch to loglevel 3.
(or, of course, you can specify another level)
What's all that about APRSQ and executing scripts ?
ldsped implements a way of executing scripts by sending an APRS message.
In the configuration file, you define the commands and the corresponding scripts to execute.
Then, you just have to send the message
?APRSQ <script name>
and ldsped will try to execute the named script (if it exists in ldsped.conf) with the there defined user credentials.
If there is output from the script, the last line of the output will be sent back to the querying station (that is, the total length of the answer will be limited, not exceeding the APRS message length (aprs protocol reference V1.0.1, page 71). If it would be more, at most the last 67 characters of the last line will be sent - the exaxt number depends on the way the scripts output is passed from the OS to ldsped)
Attention !
You have to specify the full path to the commands. I.e. if you want an APRSQ query to answer with the system's uptime when sending the ?APRSQ up query, do put following line in ldsped.conf :
scriptpath up /usr/bin/uptime
Also keep the scriptname in lower case and no more than 9 characters.
Linux AX25 issues not concerning ldsped :
I have a dual-port TNC, but the setup from the AX25 HOWTO does not work
I did run into this problem myself. My linux system was running for some years, when (in january 2010) the harddisk started to give problems. I decided to do a clean install on a new disk. When executing my (old) scripts to connect to my PK900 dual-port TNC, mkiss complained :
mkiss: open: No such file or directory
After some (extensive) searching, I discovered what was wrong :
The AX25 Howto is from 2001, when the /dev directory was populated with static devices (that could be created by MAKEDEV).
These days, udev is the device manager for the Linux >2.6 kernel series. It creates devices dynamically.
The original way to solve the dual-port TNC problem was using ttyq* / ptyq* pairs. These are predefined pairs of pseudo terminals. The mkiss program takes the TNC serial port (ttyS*) and 2 master pseudo (ptyq*) devices. Then, 2 kissattach programs can run on each of the corresponding slave ttyq* devices as if it were 2 normal serial ports.
Schematically :
normal, single port TNC with kiss
dual port TNC with kiss, static /dev
The udev way is (in this case) slightly more complicated. Since the devices are dynamically created, the name of the slave devices are not known a priori and therefore cannot be used in a shellscript.
For each connect() to the master side (/dev/ptmx, the "pseudo-terminal master multiplexer") a slave device will be created. Info about the slave's name will be returned by the system call used to connect the master side (named the Unix98 pty's).
Therefore, the mkiss program has to be altered to save the slave's name somewhere and the kissattach program has to be altered to find these names and connect to those devices.
f6bvp did write some code do accomplish this. You can find it here (or a tgz from my download section).
A better solution now is to use the latest ax25-tools (see next item).
dual portTNC with kiss, udev
Note : the example above uses pts/0 and /pts1, but it could be other numbers if there already exists pts devices before calling mkiss.
The pts in the arguments for kissattach in the shellscript should exist. Then, regardless of the pts numbers used in the script, the f6bvp kissattach program will search for the correct numbers, saved by mkiss. But beware ! If there are none, things will go terribly wrong.
As said, another, better solution is mentioned in the next item :
My AX25 libs / apps / tools seem fairly old to me. Do/should I have the latest version ?
SM5HUA pointed me to www.linux-ax25.org where the latest versions reside.
Below is a comparison between the versions of my system (Debian 2.6.26-19 lenny at the time) and the versions on www.linux-ax25.org
Package | my system | linux-ax25.org (april 2010) |
ax25-apps | 0.0.6 | 0.0.8-rc2 |
ax25-tools | 0.0.8 | 0.0.10-rc2 |
libax25 | 0.0.11 | 0.0.12-rc2 |
When I read the changelogs, I see that important differences are support for UNIX98 pseudo terminals & fixes to mkiss problems.
Also : switch to more modern autoconf and automake and other fixes of numerous build warnings and errors with modern distributions and compilers and other functional errors.
Do you need these versions ? Should you use these versions ?
Well: if you compile everything yourself, you'd better take the latest version.
If you use KISS, you could use the solution mentioned earlier (it works reasonable well, I tested it), but better is to use these last sources.
Note that the site has (had) some uptime problems. I had to check several times for some days to find it alive.
For those using debian or similar .deb aware distributions (i.e. Ubuntu) and who don't like compiling, I've managed to make .debs for these packages (on my 32 bit system). You can find them in my download section !
I upgraded my production system with the .debs I made and it's running smoothly. The solution from linux-ax25.org is a better solution than the f6bvp solution.
I also made a script to automate the process to set up the mkiss/kissattach construction. It takes little configuration.