Introduction.
This is the Official Frequently Asked Questions document for TNOS. This
document is designed to aid the TNOS user, and prospective user in
setting up and maintaining a working TNOS system.
The document will take the form of common questions relating to TNOS, complete with answers. The document will cover both the Linux/Unix and DOS versions of TNOS. Where specific differences between the versions apply, they will be noted.
This document is prepared using the 'tkHTML 2.3' HTML editor for the X window system, using Linux. (Though to be honest much of it was done with good old vi & GPM selection !)
If you find any mistakes with this FAQ or have any suggestions etc, please mail me:- mike@lurpac.lancs.ac.uk
Notes.
In this FAQ I make reference to the TNOS 'home' or TNOS 'root' directory.
These directories are the same and refer to the directory from which the
other TNOS directories are made from. You may also see '..tnos/' and
can take this to mean the same.
Where I make reference to Linux specifics, this may also apply to
other Unix like operating systems as mentioned in question 5 below:-
"What platforms/operating systems has TNOS been successfully compiled/run on?".
*** Please login with '/n
bit back from
the server?
ctlcheck
program
that comes with TNOS actually do ?
'ERROR: Group DGROUP exceeds 64k
limit.'
??
TNOS is a multi-threaded application that contains a complete implementation of industry standard TCP/IP with drivers, applications, and support for use in an RF environment, primarily the Amateur Packet Radio environment.
There are two versions, one that runs under MS-DOS/PC-DOS/DR-DOS and any multi-taskers that support virtual DOS boxes, and the other which runs as an application under Linux and other unix systems.
TNOS serves as a good dedicated router, firewall, email exchanger, gateway, etc.
TNOS is derived from KA9Q NOS, and has many of the same roots as JNOS, another KA9Q derivitive.
Some of the TNOS differences from JNOS:
TNOS is supported by it's author, Brian A. Lantz/KO4KS, and several Internet mailing lists.
A lot more information on what TNOS is can be found here.
For the Linux version only, you can also try sunsite.unc.edu in the /Pub/Linux/Incoming directory.
There is also a mirror site of ftp.lantz.com which you will probably get
better performance from, Brians net link is 28.8k PPP, this is a T1 link.
FTP to ftp.mwmicro.com and look in
mirrors/tnos. You will also find all the other goodies from ftp.lantz.com
mirrored here.
TNOS can also be obtained from dial up BBS's for those without 'net' access.
Here is some info from Mike Bilow regarding his BBS:-
Now available for FReq (1:323/107@fidonet) or download (+1 401 944 8498), at up to 28800 bps V.34, KO4KS TNOS v2.01: ***** DOS ***** Filename Area Size Date Description TNOS201.RDM TCP-TNOS 2K 9-24-95* TNOS 950924v2.01: README: Instructions to assist you in chosing the proper files to download TN201EX4.ZIP TCP-TNOS 267K 9-24-95* TNOS 950924v2.01: Same as TN201EX1, with PPP, & DIALER TN201EX3.ZIP TCP-TNOS 260K 9-23-95* TNOS 950924v2.01: Same as TN201EX1, with SLIP, TIPMAIL, DIALER, & XMODEM TN201EX2.ZIP TCP-TNOS 259K 9-23-95* TNOS 950924v2.01: Assorted TNOS executables with CONFERENCE BRIDGE TN201EX1.ZIP TCP-TNOS 263K 9-23-95* TNOS 950924v2.01: Assorted TNOS executables without CONFERENCE BRIDGE TNOS201S.ZIP TCP-TNOS 1217K 9-23-95* TNOS 950924v2.01: All TNOS release 2.01 source code TNOS201B.ZIP TCP-TNOS 228K 9-23-95* TNOS 950924v2.01: All TNOS release 2.01 base files/support executables; has not changed since release 1.10 ***** Linux/Unix ***** TN201DOC.TGZ TCP-UNIX 81K 9-24-95* (Tnos-2.01-doc.tgz) KO4KS TNOS for Linux/Unix 95-Sep-24, all TNOS release 2.01 docs TN201EXE.TGZ TCP-UNIX 641K 9-24-95* (Tnos-2.01.tgz) KO4KS TNOS for Linux/Unix 95-Sep-24, all TNOS release 2.01 executables TN201SRC.TGZ TCP-UNIX 1048K 9-24-95* (Tnos-2.01-src.tgz) KO4KS TNOS for Linux/Unix 95-Sep-24, all TNOS releaseTNOS and lots of other Linux/Dos packet programs etc can also be downloaded from BayBBS (more useful for those in the UK.) BayBBS is at +44 (0)1524 833222 . It is run by myself Mike Dent- G6PHF and also provides dial in access for licensed amateur radio operators to the WW convers and my TNOS system.
A working list, striving to produce a usable Frequently Asked Questions (FAQ) document.
Varied discussions on TNOS and related topics.
Example:
SUBSCRIBE tnos-stuff@ko4ks.ampr.org tnos-topics
Example:
UNSUBSCRIBE tnos-stuff@ko4ks.ampr.org tnos-topics
It may also compile for SunOS 4.1.x.(not confirmed, anybody??)
To compile for BSD/OS, you should add the following make.inc
to your source directory and compile.
# # Included makefile for BSD/OS by Dave VK2KFU # USEELF = INSTALL= install -c -g dialer -m 2755 CC = gcc PATCHES = -DIS_LITTLE_ENDIAN -DUSE_SETSTACK -DBSD_RANDOM -DDUMP_CORE SETSTACK= setsp.o ICURSES = -I/usr/local/include/ncurses OPTIONAL = "-DOPTIONAL=" DEBUG = -g LOCKDIR = /var/spool/uucp #
Recent versions of TNOS seem to do this after the TNOS binary is made
..tnos/spool/askhome.dat
. This
file will then be shown to the user before the HOME-BBS> prompt.
Here is a sample askhome.dat
file.
Sorry to have to ask, but this system does not know your HOME BBS! This information is needed in order to properly send any mail to you from users of this system. Your HOME BBS is like your Postal Address. If you have already defined your HOME BBS on another system, the name of that system is needed. NOTE: only use a BBS hierarchial address, not a TCP/IP address.
forward fbb-style on
. If you also want
the FBB compressed forwarding then use forward fbb-compression on
. You should also note that the syntax of the forward.bbs
file has changed completely. You can use the cnvfwd program distributed
with
TNOS 2.0+ releases to convert your old pre-2.0 forward.bbs file to the new
format.
mbox tdisc 1800
will disconnect a BBS user if they have
been idle for more than 30 minutes. Also make sure you are using version
1.12 or newer of TNOS, there was a bug with the tdisc timer in earlier
versions.
ax25 mycall
and ax25 user
. Make sure these are set to your callsign, or
at least the callsign you want.
It should also be noted that with TNOS 1.13 you should only need to do
an ax25 user
*if* you want it different from the 'ax25 mycall'.
That bug
is fixed in 1.14 and later.
You should also make sure you are running a fairly recent version of TNOS.
At the time of writing this I am running 2.0pl2 for Linux, and it seems to
be proving very stable. If you must run an earlier version than 2.0 for
Linux, then make sure you do not have the status line turned on, also the
tcpgate facility is buggy in earlier versions.
Check you are not using trace iface 0211
if using 1.13 or older,
there is a bug in the trace code when it is used in this way.This trace bug
is fixed in 1.14 and later.
*** Please login with '/n
bit back from
the server?
convers header
to on.
../tnos/startnos
from the /etc/inittab
file. The
way I do it is to start it in place of one of the VT's (virtual
terminals), I choose the one under function key F7.
Note, this will depend on which style of init your system uses!
If you have a line in
your /etc/inittab
file to start a 'getty' process on this
key, then you must comment it out, just put a '#' sign at the start of the
line, for example:-
#c7:45:respawn:/sbin/agetty 38400 tty7
Now we must add a line to execute the startnos script, this looks like this:-
c7:3456:respawn:/tnos/startnos /dev/tty7
Remember to replace '/tnos' with the root directory of your TNOS
installation.
Here is a sample of the 'startnos' script incase you did not get it with
your TNOS files (please note, this is a slightly different startnos
script to the one currently distributed in the TNOS releases):-
##########################################################################
# Sample 'startos' script to keep TNOS running if it should crash. Place
# this script in your TNOS root directory.
##########################################################################
#!/bin/bash
ps -aux | grep " ./tnos" | while read user pid rest
do
kill -STOP ${pid} 2>/dev/null
sleep 2
kill -KILL ${pid} 2>/dev/null
done
/bin/rm /home/g6phf/bin/tnos/spool/mqueue/*.lck 2>/dev/null
/bin/rm -f /home/g6phf/bin/tnos/spool/mail/*.lck 2>/dev/null
cd /home/g6phf/bin/tnos
export TZ=GMT0
export TERM=console
sleep 1
exec ./tnos < $1 > $1 2>&1
##########################################################################
# In this script you must make sure to replace the root directory of your
# TNOS installation. Mine is set to /home/g6phf/bin/tnos.
# This script also does a check to make sure there is not already a TNOS
# running, if so it kills it before it restarts.
# Thanks to Mat, dl1bjl@db0fho.ampr.org.
#
##########################################################################
/etc/inittab
then you can go ahead and re-read the
file in. To do this type:-
telinit q
After a moment you can change to vt7 (press ALT F7) and TNOS should be running! If you type 'exit' at the 'Net>' prompt it should exit and restart again.
Ok occasionaly you will see TNOS 'lock' all together, at least I do with
version 1.12, it does not happen often, but you can bet it will happen just
after you leave on holiday, or for the weekend :-).
Here is a short script that can be run from one of you startup files, I put
the command:-
echo "Starting TNOS watchdog." /home/g6phf/bin/tnos/nosreset &
/etc/rc.d/rc.local
file, this will depend on your installation of Linux I guess and of course you
will have to alter the path to your nosreset script above.Below is the nosreset file itself.
############################################################################ # Nosreset script. ############################################################################ #!/bin/bash # This is the nosreset script that checks that TNOS is still running, and # if not will kill the process and restart it. NOTE!! this script assumes # that you have the Linux kernel IP talking to TNOS over a pseudo slip link. # It also assumes you are running TNOS with the 'startnos' script. # See another section of this FAQ to connect Linux IP to TNOS. # Every 5 minutes several pings are sent to your TNOS IP address from your # Linux IP address. If 0 packets are received it assumes your TNOS has # locked and will then find the process, stop it and kill it. Then the # startnos script will restart TNOS. # A message is then mailed to you to let you know when it was restarted. # while test -f /home/g6phf/bin/tnos/nosreset do if ping -q -c 3 g6phf | grep "0 packets received" > /dev/null then ps -aux | grep " ./tnos" | while read user pid rest do kill -STOP ${pid} 2> /dev/null sleep 2 kill -KILL ${pid} 2> /dev/null done sleep 20 echo "TNOS was restarted by nosreset" | mailx -s "TNOS reset" g6phf fi sleep 300 done ########################################################################## # Thanks again to Mat, dl1bjl@db0fho.ampr.org. # ##########################################################################
Of course that may not be the only way to do it, but it works for me :-).
With the above two scripts I am able to make sure my TNOS system is up and running all the time without having to keep looking to see if it has crashed or locked.
As I do not run DOS on my packet PC's here I asked for the information from a local DOS/NOS user. With DOS it is a case of adding a loop around TNOS, to make sure that if TNOS crashes and exits it will be restarted again. However if TNOS locks when it crashes this way of restarting TNOS will be of no use!
# These lines can be put in a batch file maybe called startnos.bat, and # called from the last line in your autoexec.bat file. # The sleep program is just a little utility to give you chance to stop # the loop if you want to come out of TNOS. # :loop n: cd\ @echo "Control C to abort TNOS load !" n:\sleep 6 del n:\spool\mqueue\*.lck del n:\spool\mail\*.lck n:\tnos\tnos @echo " Control C to abort TNOS load !" n:\sleep 6 goto :loop # # EOF
As I do not use TNOS with DOS, I cannot really add much to this.
Sysops can also use the 'AS ALL' command, which gives the above and all
USER areas, too.....
If the site you are mailing is down stream of a TheNet X1J type node/router,
(or indeed any other router that does not handle SMTP connects) and you have
a IP route set via one of these nodes, then the smtp hopper code will be trying
to deliver your mail to this node!
If this is the case simply turn off the smtp hopper, smtp hopper off.
# TNOS FTPUSERS permissions as of Version 2.01 # #LABEL DECIMAL HEX DESCRIPTION #ftp_read 1 0x00000001 (Read files) #ftp_create 2 0x00000002 (Create new files) #ftp_write 4 0x00000004 (Overwrite or delete existing files) #ax25_cmd 8 0x00000008 (AX.25 gateway operation allowed) #telnet_cmd 16 0x00000010 (Non-ampr Telnet gateway operation allowed) #netrom_cmd 32 0x00000020 (NET/ROM gateway operation allowed) #sysop_cmd 64 0x00000040 (Remote sysop access allowed) #excluded_cmd 128 0x00000080 (This user is banned from the BBS) # 256 0x00000100 (Used in PPP) # 512 0x00000200 (Used in PPP) #no_sendcmd 1024 0x00000400 (Disallow send command) #no_readcmd 2048 0x00000800 (Disallow read command) #no_3party 4096 0x00001000 (Disallow third-party mail) #is_bbs 8192 0x00002000 (This user is a bbs) #is_expert 16384 0x00004000 (This user is an expert) #no_convers 32768 0x00008000 (Disallow convers command) #no_escape 65536 0x00010000 (Default is no escape) #ampr_telnet 131072 0x00020000 (Ampr Telnet gateway operation allowed) #no_slip 1048576 0x00100000 (Disallow tipmail exit to IP) #no_pbbs_mail 2097152 0x00200000 (Disallow PBBS mail addresses) #no_inet_mail 4194304 0x00400000 (Disallow non-ampr mail addresses) #no_ampr_mail 8388608 0x00800000 (Disallow ampr mail addresses) #hold_mail 16777216 0x01000000 (Any mail entered held for sysop review) #no_linkedto 262144 0x00040000 (No '*** LINKED TO' allowed)You can further configure the security of your TNOS system by using the
security
commands.
(The following four commands allow you to tailor your users security
level according to their connection method to your BBS)
security amprperms value
This defaults to 0, disabled. When a user logs in anonymously
via telnet, i.e. they do not
have a specific entry in the ftpusers file, then they first get
assigned the value of 'univperm' (assuming it is set), then their permission
will be set to whatever value you have this set to, as long as it is non-zero.
NOTE:- ampr/nonampr is determined by a 44.xx.xx.xx address, NOT by a
.ampr.org hostname.
security ax25perms value
This defaults to 0, disabled. When a user logs in anonymously
via AX25, i.e. they do not
have a specific entry in the ftpusers file, then they first get
assigned the value of 'univperm' (assuming it is set), then their permission
will be set to whatever value you have this set to, as long as it is non-zero.
security nonamprperms value
This defaults to 0, disabled. When a user logs in anonymously
via a non ampr IP address, i.e. they do not
have a specific entry in the ftpusers file, then they first get
assigned the value of 'univperm' (assuming it is set), then their permission
will be set to whatever value you have this set to, as long as it is non-zero.
NOTE:- ampr/nonampr is determined by a 44.xx.xx.xx address, NOT by a
.ampr.org hostname.
security tipperms value
This defaults to 0, disabled. When a user logs in anonymously
via a TIP connection, i.e. they do not
have a specific entry in the ftpusers file, then they first get
assigned the value of 'univperm' (assuming it is set), then their permission
will be set to whatever value you have this set to, as long as it is non-zero.
security ampronly [on|off]
When set to on and assumiung you do not allow non amprnet telnets (see
ftpusers permissions above), then when a user attempt to telnet to a non 44
address, they will see the following message:-
Sorry, but only Amateur Radio IP stations can be reached from here!
Note. A message is NOT sent to sysop notifying you of the users action
With this set to off they will get a 'Permission denied' message.
Or, if you use the following script, and place it in spool/cmds
it will give them some further information:-
Permission denied.
Sorry, g9xxx, but access is denied :-(
Only telnets to ampr.org stations are permitted, and those are denied to non-ampr telnet sessions.
To check out your security level permissions use the 'SEC' command.
Here is the script:-
~ Denied access Sorry, ~c, but access is denied :-( ~p 1 0 7 20 ~a 2 converse ~c 1 2 ~n test2 The Conference Bridge is not available to non-ampr telnet sessions. ~g common ~l test2 ~a 2 telnet ~c 1 2 ~n test3 Only telnets to ampr.org stations are permitted, and those are denied to non-ampr telnet sessions. ~g common ~l test3 ~a 2 ax25 ~c 1 2 ~n test4 AX25 connects are not allowed from non-ampr telnet sessions. ~g common ~l test4 ~a 2 netrom ~c 1 2 ~n test5 NETROM connects are not allowed from non-ampr telnet sessions. ~g common ~l test5 The BBS is secured against any RF access from all anonymous users. ~g common ~l common To check out your security level perimissions use the 'SEC' command.
The script also does other things! Note. A message is sent to 'sysop' to notify you of the users actions.
security nonsecureampr < addr >
Here is what Brian has to say about this one:-
I discovered one remaining security hole that I had, so we have a new subcommand of the security command, 'security nonsecureampr'. This sets up a single ampr.org address (44.xx.xx.xx) as being NON-SECURE for anonymous ampr/ax25/netrom access. The problem on my end was that the Linux side of my machine has an ampr address on its side of the SLIP connection. All connections coming from the Linux side of the machine come with that AMPR address. I allow logins to lantz.com to come into the gateway, which made them unsecured and set as a trusted ampr site. Now any coming this way are treated as non-ampr for that one address only.
security encode
This simply encodes the passwords in your ftpusers
file so
that they cannot be determined if somebody was to get hold of or view your
ftpusers file. Please note that if you make an alteration to the ftpusers
file whilst TNOS is running, then you must do a 'security encode' to make the
changes take effect. 'security encode' is also done at TNOS boot time.
MD5 is the encoding method used, for those interested.
security mbsecure [on|off]
This secures your radio ports so that any anonymous user cannot gateway
out on them via AX25 or netrom, this overrides any permissions set for anonymous
users in the 'ftpusers' file. Please note it also overrides any
'security [ampr | non | ax25p | tip] values which are set.
security level [levelname pathstring permissions]
Allows you to set up a name for a security level, that can be used
as a shortcut in the ftpusers files. The
levelname can be anything descriptive. The pathstring is the same
format as the third field of the ftpusers files .
The permissions field is the same format as the fourth field of the
ftpusers files.
Some examples:-
# Security level examples for inclusion in autoexec.nos file. # # set a security level called 'low' and allow the user(s) with this level # access only to '/pub/restricted' directory with ftp read permission only. # security level low /pub/restricted 1 # # set a security level called 'medium' and allow user(s) with this level # of access to the directory '/pub' with ftp read and write permission. # security level medium /pub 3 # # set a security level called 'top' and allow user(s) with this level of # access to the '/' (root) directory with read/write and overwrite permission!. # security level top / 7
And in your ftpusers file.
################## # Assign a lowly security level to guest users! guest * #low # # and a slightly higher level to univperm. univperm * #medium # # and a level for our registered/trusted users perhaps? g0vgs sEcret_PwoRD #top # ###################
From the above examples you can see it is easy to assign an easy to remember name to a specific security level. Above I have only shown examples which are useful for 'ftp' type connections, it is however possible to set up any type of security level and assign it a name, e.g. sysop, sub-sysop, guest etc. NOTE, you ,must put the hash '#' before the security level. The "security level" command (without the rest of the parameters) displays the currently defined security levels.
I should also point out that there is an addition to the ftpusers
file which
allows you to branch out to another file with further users/permissions in it.
To do this use the line:-
#include filename
in the ftpusers
file.
Where 'filename' above is the name of your 'sub' ftpusers file. Maybe called
ftpusers-2 or something.
After this additional file has been scanned, and the user lookup was
unsuccessful, control returns to the original 'ftpusers' file.
You can have as many included files as you wish, but
you cannot include a file from within an included file.
This also works for the the output of the BBS 'ms' command too. But
be warned, if you have had mail in the areas you have excluded above, and
they still show up on the Mail for: line, you will have to do a
mbox mailfor now
to 'flush' these out.
If I had the time (or volunteers) to document this stuff, you'd already
have the docs ;-)
An example, you should be able to fill in the blanks........
My setup has ONE port out, to ONE TNC, that forwards to many BBSs. MOST of them go out on ONE RF port.
In order to pace the traffic and better use the bandwidth, I place all those that must travel the same RF path into a subchannel together. Ones that travel ANOTHER RF path, go into another subchannel.
Then the 'forward subchannel' command allows me to restrict HOW MANY of these will be active at one time (outgoing), and how many I will reverse forward to (incoming). When a BBS has been deferred due to a maximum being reached on a subchannel, a flag is set, and when a forwarding session completes (making a slot available), the forwarding cycle is 'kicked' again (even if the 'forward timer' hasn't expired), to allow the subchannel to be 'filled' again.
BUT, no one BBS will get a second turn, until all have had their shot at it.
On mine, I set a maximum of 1 per subchannel, and this makes them all go in turn, rather than all at once.
If I had several ports with a single BBS on each, I would probably not define these BBSs as being on a subchannel; so they would not have any pacing used.
NOTE: The FBB forwarding (inbound) needs a little attention here, since it doesn't yet account for subchannels. TNOS Version 2.01 when released will fix this.
ctlcheck
program
that comes with TNOS actually do ?
ctlcheck
is a diagnostic tool used to display the
raw values of a *.ctl file. It is not normally needed other than for
diagnosing problems when altering code that manipulates *.ctl files.
1) DO take your time and explain the situation. DON'T assume that the reader(s) have your knowledge.
2) DO give as detailed a description as possible, indicating what actions/commands you used, the order used, the given output (if any), and the expected results.
3) DON'T send along a copy of your config files unless asked.
4) DO your own investigation.
5) DO use the trace function for the feature you are having a problem/question with, if there is one available.
6) DO double-check your config files.
7) DON'T present bug reports/questions with an attitude or when angry.
8) DON'T even bother with a report if all you can say is "it don't work!". If you follow the rest of this list, you will have FAR more to say about the situation than this.
9) DO indicate the Operating System being used, and the release version number. These can be found in the first line of output from the Command Session command 'status'.
10) DO realize that the author of TNOS CANNOT fully test/debug all portions of a program as vast as TNOS, and that some conditions MAY slip through the cracks.
11) DO be wise enough to know that everything you can do to help pin down the circumstances of failure will make it that much easier to fix the problem.
12) DON'T be afraid to ask questions.
13) DON'T expect that there are answers to all questions.
14) DON'T send bug reports/questions to the author directly, unless he has asked you to. DO send bug reports/questions to the TNOS-TOPICS mailing list.
15) DON'T send the same question/bug repeatedly.
16) DON'T *even* expect immediate resolution of problems. This support is free and you get what you pay for, sometimes ;^D
17) DON'T get discouraged if you run into problems. TNOS is very complex, with scores of complete subsystems. It is easy to enter areas where you can get lost.
18) DO provide GDB output (if you can) if you are running Unix. A
'backtrace' command's COMPLETE output can make a massive problem
disappear in seconds.
(GDB is the GNU debugger, used to get better
information from a TNOS crash. You have to have the de-bugging code
compiled into TNOS to use this. Read the GDB man page.- ED)
19) DO read the docs before posting. Yep, SOME of the FAQs are there in the body of the new2tnx.xx files. DO take the time to see if the answer has already been given to you, before asking for it to be given again.
20) DON'T go out into the rain without your raincoat (I ran out of ones that pertained to the subject, and thought an even 20 would be nice) ;-)
To overcome this you must set your ifconfig <port> ipcall
and your ifconfig <port> linkaddress
to different
callsigns or more usually different SSID's.
Example:-
ifconfig 2m linkaddress gb7mbb
ifconfig 2m ipcall gb7mbb-5
Here, users connecting in via ax25 would connect to gb7mbb. and all IP packets/frames would use gb7mbb-5 as the hardware address.
################################################################################ # Startup file for Linux based TNOS, as used at gb7mbb.ampr.org. # Virtually everything in this file applies to both DOS and Unix # TNOS installations. # This file was annotated in somewhat of a rush to help out users who # often request an example autoexec.nos file for TNOS. It is likely # that you will have to heavily modify this sample file to make it # useful for your system. You have been warned!. # Mike Dent. g6phf. October 1995.################################################################################ ip address 44.131.1.158 hostname gb7mbb.ampr.org ################################################################################ # Setup ax25 params before attaches. To modify on per/port basis, use # ifconfig port ax25 param, after attaches. ################################################################################ ax25 user gb7mbb # callsign to use on outgoing ax25 connects from console. ax25 mycall gb7mbb-5 # callsign for incoming ax25 connects. ax25 retry 15 # ax25 connection retries before giving up. ax25 blimit 6 # backoff this many times then no more. default 30. ax25 t4 100000 # this is the link redundancy timer for ax25. ax25 hsize 30 # number of stations in (J)heard listing. ax25 version 2 # hmm, lets use AX25 version 2. ax25 maxframe 2 # no. of outstanding frames allowed without an ACK. max 7. ax25 paclen 256 # length of ax25 packets. ax25 window 2048 # window size allowed on ax25 frames. ax25 maxwait 30000 # maximum timeout in msecs of the ax25 retry timer. ax25 timer linear # timer is either linear or exponential. ################################################################################ # Next our tcp/ip params. global. ################################################################################ tcp window 1024 # tcp window size in bytes. tcp mss 432 # maximum segment size of datagrams. tcp irtt 6000 # initial round trip timer in milliseconds. tcp retries 100 # no. of tcp retries before giving up. tcp maxwait 30000 # maximum timeout in msecs of the tcp retry timer. tcp blimit 20 # backoff this many times then no more. tcp timer linear # timer is either linear or exponential. ip hsize 22 # max no. of entries in mbox (IH)eard listing. ip ttl 150 # time to live. ################################################################################ # Attach interfaces next. ################################################################################# # attach asy < port > - < mode > < iface > < buffsize > < mtu > < speed > # attach < h/ware > < address > < - > slip|ax25|nrs < label > < buffers > < mtu > < speed > attach asy ttyS0 - ax25 2m 512 256 9600 attach asy ttyS1 - ax25 4m 512 256 9600 attach asy ttyS2 - ax25 70cm 512 512 19200 attach asy ttypf - slip sl0 2048 1024 38400 ################################################################################ # Ifconfigs. These override global parameters above. ################################################################################ # # ipcall sets the callsign/hwaddr to use on IP packets. ifconfig 2m ipcall gb7mbb ifconfig 4m ipcall gb7mbb # # set the mtu/window/blimit different for port '70cm' ifconfig 70cm mtu 555 ifconfig 70cm tcp window 2048 ifconfig 70cm tcp blimit 4 # # description below is displayed on mbox (PO)rts listing. ifconfig 2m description "144.625 local access, tcp/ip channel. 1200bd.\nsl0 : 38400 internal slip link to Linux IP." ifconfig 4m description "70.3375 access to WC and CRV nodes. 1200bd." ifconfig 70cm description "9k6 WW Amprnet link at 70cms." # # rx queue and tx queue. (refer to other documentation.) asyconfig 70cm rxq 5 asyconfig 70cm txq 5 # ################################################################################ # Netrom params ################################################################################ # attach netrom # kind of like 'start netrom' :-) netrom interface 4m 192 # quality to use for our netrom port. '4m' in this case. netrom call GB7MBB # set this to your netrom callsign. netrom alias MBBBBS # and this to your netrom alias. netrom retries 5 # no. of netrom retries before giving up. netrom timer linear # timer is either linear or exponential. netrom promiscuous on # # # load in netrom routing table from disk, file netrom.sav. This file is # created with 'netrom save' command. netrom load # ################################################################################ # Domain params. ################################################################################ domain suffix ampr.org. # gets added to all host names etc. domain dns on # set on if we want to process domain queries. domain addserver sys2.g0uje # set this to your domain server. domain cache size 40 # no. of entries to hold in memory. domain maxwait 30 # time to wait on a domain query of your server ################################################################################ # Convers commands. ################################################################################ convers host BayBBS # what we call our convers server. conv entry 131 # default channel users go to from the bbs conf alias. # # if set 'on' the user will see "*** Please login with '/n '" when they # first enter the conference bridge. If set to 'off' they dont get this. conv head on # show login info when user first enters conf. # # message a user gets when he has logged in with /n . you can # use '\n' to add more lines to your login message. conv motd "Please avoid channel 0. The default entry channel is 131.\nInternational users, if you have a more local convers server, please use that!" # conv time on # shows time when users come on/off convers. # # this is the maximum amount of data (bytes) that is allowed to backup in the # queue for a user logged into the conference bridge before the connection # is assumed to be in trouble and disconnected. conv umaxq 12000 # # this is the maximum amount of data (bytes) that is allowed to backup in the # queue for a host that is linked to your conference bridge before the # connection is assumed to be in trouble and disconnected. conv hmaxq 12000 # # unixphf.ampr.org is the convers host I link to, and BayCONV is the name of it. conv link unixphf.ampr.org BayCONV # # sysinfo is displayed when a convers user requests '/sysinfo baybbs'. conv sysinfo "g6phf@gb7mbb.ampr.org or mike@lurpac.lancs.ac.uk" # # when we type 'conf' from our console, this is the user we will be logged in as. conv console g6phf # # this sets the type of filter mode. When set to accept, it will then only allow # hosts to link in to your convers that you specifically allow. conv filter mode accept # # allow *only* following hosts to link with our convers. conv filter unixphf conv filter g0vgs conv filter unix.g0vgs conv filter ppc.g6crv conv filter g6crv ############################################################################ # SMTP commands. ############################################################################ # # set the smtp timer for 20 mins between processing of the smtp mail queue. smtp timer 1200 # Time in seconds smtp quiet yes # Do not ring bell when "New mail arrives". # # Do not batch up mail when sending. Can cause problems with some *nix MTA's. smtp batch off # # our mail gateway. smtp gateway gb7mbb # # If you have 'smtp hopper' in your compile, this may cause problems if you # route to hosts you send mail to via IP only routers, e.g. TheNet nodes. # I set it to off to avoid this as I route mail via a TheNet X1J node. #smtp hopper off # not compiled in so #'d out anyway! # # set the smtp delivery timeout for mail which cannot be delivered. # return to sender after 4 days. smtp dtimeout 96 # time in hours. # Fast compression mode. lzw mode fast ############################################################################## # Some commands for the running of my BBS, gb7mbb. ############################################################################## # set expire timer to 12 hours. Expires mail areas depending on settings in # spool/expire.dat and also will delete mail marked for deletion. expire 12 # set the string users get when the BBS is performing maintenance. mbox maintstr "Sorry, automatic BBS maintenance is in progress. Logins are disabled.\nPlease call back in a short while. (5 mins or so)." # # Bump users off when expire process kicks, and send them maintstr above. mbox maintclear on # # we act as a white pages client and server. wpages client on wpages server on wpages dest gb7ulv # where to send our WP updates. # # this checks our outbound mails R: lines to see if they contain the callsign(s) # of any BBS's that are in our forward.bbs file. If so they do not get forwarded # out. bulletin check on # # hold locally entered bulletins for review by sysop before forwarding. bulletin hold on # # check R: lines for user return address etc. bulletin return on ############################################################################## # Mailbox commands. ############################################################################### # # users get this text when they attempt a chat/tty with you. motd "If I dont answer shortly, leave a message @gb7mbb.ampr.org, Mike" # # message displayed just before the 'login:' prompt. mbox tmsg "Please login with your callsign, and use your name for the password." # # motd displayed just before the 'A,B,C..Z>' prompt. mbox motd "For help on using this system type 'TUTOR'. For news about this \nsystem 'NEWS'. For other information type 'INFO'\n # # set to 1 to always display the file 'spool/motd' at logins. Comes just # after the [TNOS-2.01-BFHIMT$] banner. mbox motdalways 1 # # users idle this long (secs) are bumped off the BBS. mbox tdisc 1800 # # this sets the 'Send this message (N=no)?' query on or off after users have # finished entering a message. mbox sendq off # # log mailbox logins to spool/mbox.log in this form:- # MBOX from g6phf (Mike) on Sun, 12 Mar 95 18:02:55 UTC mbox log on # # message users see when they (B)ye from BBS. '\n' inserts carriage return & LF mbox mexit "\n73, Call again\nMike!" # # maximum session time (secs) for users of the BBS. mbox maxtimer 13600 # # these define our custom commands. mbox cmd MUD "t unixphf 7777" mbox cmd MUD2 "t unixphf 4000" mbox cmd CONV "t unixphf 3600" mbox cmd CALLUS "t 44.98.24.25 7373" # # this defines what we want our BBS prompt to look like. You must also include # the commands above if you want users to see them. mbox prompt "?,A,B,C,CALL,CALLUS,CONF,D,E,F,G,H,I,J,K,L,M,MUD,MUD2,N,O,P,Q,R,S,T,U,V,W,X,Y " # # set the mailfor beacon to 'on' mbox mailfor on # # how often (secs) to broadcast a mailfor beacon. mbox mailfor 3600 # # this adds the area prompt to the BBS for new users. Toggled with 'SET A' # in the BBS. mbox newuser area on # # this suppresses the 'beep/bell' when listing messages that some people insist # on inserting in subject lines. mbox nosubjbell on # # this defines wether we want the 'mbox tdisc' idle timer to affect users # defined as sysop or not. Set to 'off' sysops are not affected by tdisc, # but will be bumped off if 'mbox maxtimer' is defined. mbox tdiscsysop off # ##################################################### # NO AX25 access on 144.625Mhz. As from 1st Dec 94 ##################################################### # I dont allow any ax25 connects on the UK tcp/ip channel. mbox noax25 2m on ############################################################################## # NTS mail forwarding commands ############################################################################## # # this allows me to use a 2 letter continent designator. 'EU'. forward tapr off # # sets my hierarchical BBS address. Note, no callsign needed. forward haddress #16.GBR.EU # # with 'fwdinfo' , 'rcall' and 'qth' below, my R: line looks like this:- # R:951015/2157z @:GB7MBB.#16.GBR.EU [Morecambe] TNOS/U $:7388_GB7MBB forward fwdinfo "Morecambe" forward qth "TNOS/U" forward rcall GB7MBB # defines callsign in R: line. # # strip off smtp headers on outbound NTS mail. forward smtptoo off # # use FBB type batched forwarding. forward fbb-style on # # use FBB compression for forwarding too. forward fbb-compression on # # define the callsign used for outgoing mail forwarding. forward mycall GB7MBB # # set to 'on' to keep original BID in R: lines. forward bid on # # set to 'on' to add a local MID to R: lines. forward mid off # # set a forwarding session off each hour. forward timer 3600 # time in seconds. # ########################################################################## # Set TNC paramaters ########################################################################## # set our KISS parameters for our TNC's. I use Tiny-2's. # param 70cm 1 25 # TXdelay param 70cm 2 64 # PPersist param 70cm 3 5 # Slottime param 70cm 4 5 # Tailtime param 2m 1 30 param 2m 2 50 param 2m 3 5 param 2m 4 5 param 4m 1 25 param 4m 2 50 param 4m 3 5 param 4m 4 5 # # use device driver-level queuing, only good for *nix TNOS's I think. param 70cm min 255 param 2m min 255 param 4m min 255 ########################################################################### # FTP commands. ########################################################################### # ftpmax 3 # maximum number of incoming FTP sessions allowed. ftype image # set default transfer type. image or ascii. ftptdisc 900 # FTP idle disconnect timer in seconds. # ############################################################################# # TCP and IP access stuff. ############################################################################## # Allow 44 stuff of course. tcp acc permit 44/8 1 8888 # Allow some other stuff. tcp acc permit 148.88/16 1 8888 tcp acc permit 194.80.36/24 1 8888 tcp acc permit 127.0.0.1 1 8888 # anything else is ignored. # load in our ip access rules from file 'ipaccess'. source ipaccess # ############################################################################## # Misc commands. ############################################################################## # ip hport sl0 on # show ip hosts heard on slip port, 'sl0'. # # set the console prompt to display the directory we are in. My console prompt # looks like this:- '/home/g6phf/bin/tnos> ' prompt dir # # this sends our tracing output to the screen 'under' Fkey 9. strace on # # this sets the permission that users connecting via netrom/ax25 get. See # security section of FAQ. security ax25 1441835 # # when a user attempts to telnet to a non ampr host, i.e. non 44.x.y.z. With # 'security ampr on' set, a message will be sent telling them :- # 'Sorry, but only Amateur Radio IP stations can be reached from here!' # see security section of FAQ for more explanations. # security ampr on # # this uses the 'callbook' at pi8esk for 'CALL' look ups. callserver pi8esk # statline on quiet # I like the status line, but don't like the bell! history 30 # keep 30 entries in command buffer. Up/Down arrows. # 'gone' refuses incoming ttylink (port 87) and BBS 'o' chats. gone # source routes # this reads in my routes file 'routes' off disk. # # log to 'net.log' file. log net.log ############################################################################## # Some 'at' commands. ############################################################################## # # 'here' and 'gone' are for incoming tty sessions and BBS 'o'. # 'gone' sets 'attend off' and 'mbox attend off'. 'here' does the reverse. at 1730 "here+" # at 17:30 I'm here. at 2115 "gone+" # at 21:15 now I'm gone! # # do a tcp clean to reset any tcp sockets in FIN WAIT 2 state every 3hrs. at now+0300 "tcp clean+" # # This is a special for my log renaming program run from crontab. at 0000 "log net.log+" # # at 04:00 do a wpages update at 0400, sorting the wpages files. at 0400 "wpage kick+" # # at 05:00 kick out wpages updates to BBS(s) specified in 'wpages destination' at 0500 "wpages update now+" # # at 05:30 expire mail areas depending on settings in # spool/expire.dat and also delete mail marked for deletion. at 0530 "expire now+" # ############################################################################## # START servers at end of file! ############################################################################## start ax25 start telnet start ftp start netrom start smtp start remote start finger start tutor start info start convers start news start time start pop3 start ttylink # # Thats all folks! ##############################################################################
The AREA file defines which public areas are available to the non-SYSOP
users. The AREAS.SYS file defines ALL of the public areas, even those that
are NOT available to the normal users. Such areas would be areas that you
place outgoing PBBS mail that is to be forwarded, etc.
Since the AREA.SYS is THE file that defines which are public areas, it MUST (at least) have all of the areas listed in the AREAS file.
Brian says:-
"It will run, but only if you use a stripped down version (less features compiled in), and have almost NO drivers, etc loaded into memory. TNOS must exist in conventional memory, and on processors earlier than a 386, you had no support in the CPU for altering memory maps to maximize the conventional memory. I ran TNOS on a 286 for several years, I just needed a good "shoehorn" to get in what features I needed."
So there you go. Of course the above *only* applies to the DOS version of TNOS, as Linux needs at least a 80386 or greater processor.
'ERROR: Group DGROUP exceeds
64k limit.'
??
At about line 447 (function asy_speed() ) in file unixasy.c change the #if 1 to #if 0. See the examples below.
-----unixasy.c before mod for FreeBSD-------- #if 1 /* This is obsolete stuff! */ termios.c_cflag &= ~CBAUD; termios.c_cflag |= speed_table[sp].flags; #endif ----------------------------------------------- -----unixasy.c after mod for FreeBSD----------- #if 0 /* This is obsolete stuff! */ termios.c_cflag &= ~CBAUD; termios.c_cflag |= speed_table[sp].flags; #endif ------------------------------------------------After this mod TNOS 1.13 should work ok with FreeBSD.
Brian says:-
attach asy ttypf - slip linux 1024 1024 38400
This adds an interface named 'linux' to TNOS, which it 'thinks' is a SLIP connection at 38400, but is actually a 'pseudo-terminal' link into the Linux kernel
# # Setup for TNOS/Linux gateway # # 44.98.24.1 is the TNOS ampr IP address (ko4ks.ampr.org) # 163.125.16.254 is the TNOS internet IP address (gw.lantz.com) # 44.98.24.25 is the linux box's AMPR IP address (linux.ko4ks.ampr.org) # 163.125.16.1 is the linux box's internet IP address (lantz.com) echo "" # blank line echo "Initiating SLIP connection to TNOS/Linux..." /usr/net/bin/slattach -s 38400 -p slip /dev/ptypf & sleep 1 # allow time for slattach to catch up /usr/net/bin/ifconfig sl0 broadcast 44.255.255.255 pointopoint 44.98.24.1 \ mtu 576 44.98.24.25 /usr/net/bin/route add 44.98.24.1 sl0 /usr/net/bin/route add 163.125.16.254 sl0 /usr/net/bin/route add -net 44.0.0.0 netmask 255.0.0.0 gw 44.98.24.1NOTE: while other values probably CAN be used for MTU in the ifconfig line here and the 'attach' line in the autoexec.nos file, these are KNOWN to work.
ls -la /dev/tty7You should see something like the following:
crw-rw-rw- 1 root system 4, 7 May 13 20:43 /dev/tty7If you do, skip the next step....
copy makefile.dos makefile touch depend
ln -s makefile.lnx Makefile
make doeverything
autoexec.nos
file. An example:-
attach asy ttyS0 - ax25 iface 1024 256 9600You must use the linux device name of the serial port you are attaching. In the above case 'ttyS0', is your first serial port, COM1 in DOS terms, or 0x3f8. Just put a '-' hyphen after the port, this field is not used. Next comes the protocol to use, 'ax25'. Then put your interface name, 'iface' in the above example. Next '1024' is the buffer size, then '256' is the MTU, and lastly '9600' is the TNC to serial port speed.
NOTE: You must also have IP_FORWARDING enabled in your Linux kernel.
This is set in the make config part of building a kernel.
Please note. Brian, ko4ks, shows another similar way of doing this
above.
######################################################################## # Usually these lines can be put in one of the rc.* files found in # # the /etc/rc.d directory, at least that is the case for the Slackware # # Linux distriution. I recommend the file /etc/rc.d/rc.inet1, though # # rc.local is an alternative. # # Add these lines to the bottom of the file. # ######################################################################## # # First we must set up a pseudo slip port at the Linux kernel side to # talk to linux. If this is your only slip port on your Linux machine # it will become 'sl0'. If you already have a slip port configured on # your machine, say to talk to a modem or another pc, then this port # will become 'sl1'. Your will need to know this for later. We will assume # that it is your only slip port, 'sl0'. # /sbin/slattach -v -s 38400 -p slip ptypf & # # OK, that is the port attached, now we must wait a while for it to get a # hold before we can configure it. # /bin/sleep 1 # # Right that should have done it. We now have a slip port 'sl0' attached # to the kernel. The -v indicates verbose, so we can see everything is # ok, the -s is the speed 38400, the -p is the port, ptypf in this case # and the ampersand is to put the command in the background. # # Next we shall configure it and assign it an IP address. You must # have seperate IP addresses for TNOS and Linux. Make sure you have # these entries in /etc/hosts also. # /sbin/ifconfig sl0 linux.g6phf.ampr.org up # # Ok we have now assigned the Linux kernel IP stack with its own # IP address and set it in an 'up' or working state. # Next we must add a route to TNOS down the pseudo slip link, 'sl0', # so the kernel IP knows how to reach it. # /sbin/route add g6phf.ampr.org sl0 # # Right now the kernel IP knows how to reach TNOS, we should tell # the kernel how to reach the other 44.x.y.z addreses. # /sbin/route add 44.0.0.0 gw g6phf.ampr.org sl0 # # That should do it. We have added a route to all 44 addresses via the # gateway 'gw' of g6phf.ampr.org (TNOS) down sl0. # If you wanted to add any other routes to non 44 addresses, you would # do it in the same way, e.g. # /sbin/route add 148.88.0.0 gw g6phf.ampr.org sl0 # # NOTES: If you paste the above file into one of your rc.* files # remember to change g6phf.ampr.org to your TNOS hostname and # linux.g6phf.ampr.org to your Linux hostname. These hostnames will # also need to be in your /etc/hosts file, and your ../tnos/domain.txt. ########################################################################
Ok, now we have configured and setup the Linux IP stack to talk to TNOS
via a pseudo (internal) slip link. We used the device /dev/ptypf
for the port 'sl0', we shall now use the other end of this slip
link /dev/ttypf
for our interface within TNOS.
Below are the necessary lines for your ../tnos/autoexec.nos file.
##################################################################### # Lines needed in autoexec.nos file for Linux TNOS this allows TNOS # # to talk to the Linux IP stack and visa-versa. # ##################################################################### # # First we must attach the port. Put this attach line with your other # attach statements. # attach asy ttypf - slip kernel 1024 512 38400 # # As you can see the format is very similar to your other attach # statement(s)./dev/ttypf
is the other end of the pseudo # slip port from/dev/ptypf
, the Linux kernel end. 'slip' # is of course the protocol used, 'kernel' is the name of the interface # I have chosen, you can of course call this 'sl0' or whatever you like. # 1024 is the buffer size, 512 the MTU of the port and 38400 the speed. # # Now we must add a route to the Linux IP stack down out port 'kernel'. # route add linux.g6phf.ampr.org kernel # # Make sure your hostname and IP address are in your ../tnos/domain.txt # file. If we want other people to be able to access your Linux IP, be # it for smtp, ftp or whatever, then it is best if your TNOS will answer # ARP queries for it. So we need to advertise that fact. We use 'proxy' # arp to do that. # arp publish linux.g6phf.ampr.org ax25 g6phf 2m # # In the statement above replace linux.g6phf.ampr.org with the hostname # or IP address of your Linux kernel, replace g6phf with your ax25 # callsign, and replace '2m' with the interface name of your radio port. # If you have several radio ports you may need to arp publish your # Linux address on each port. I have 2 more entries like this:- # arp publish linux.g6phf.ampr.org ax25 g6phf 4m # arp publish linux.g6phf.ampr.org ax25 g6phf 70cm # ########################################################################
Ok that should do it, you should now be able to sucessfully communicate
between TNOS and your Linux kernel. Test it by trying a ping or better
still telnet between the two. If it fails make sure you have a kernel with
SLIP compiled in, (check /var/adm/messages or watch your system
bootup messages) also make sure TNOS has SLIP in it and that you have the
speeds set correctly at each end.
NOTE. You will have to reboot your machine for the changes in rc.local
to take effect. I recommend typing them in by hand (logged in as root)
at the Linux prompt first to check you have everything correct.
start time
.
ln -s makefile.lnx Makefile
, you must make a
small change to Makefile
. About 2 screens down the file:-
####################### # Compiler Variables # ####################### # # Define whether or not you are using GCC 2.6.x which support ELF and a.out # USEELF = 1 # Use this for GCC 2.5.x or for 2.6.x a.out-only compiler setup #USEELF =
####################### # Compiler Variables # ####################### # # Define whether or not you are using GCC 2.6.x which support ELF and a.out # #USEELF = 1 # Use this for GCC 2.5.x or for 2.6.x a.out-only compiler setup USEELF =
Now, with TNOS 2.01 (and possibly later versions, you must look further
down the Makefile
, about line 162 and you will see:-
# if you are using GCC 2.7.0, you need this line..... OPTIONAL = "-DOPTIONAL=__attribute__ ((unused))" # otherwise, use this one.... # OPTIONAL = "-DOPTIONAL="
This should be changed for:-
# if you are using GCC 2.7.0, you need this line..... #OPTIONAL = "-DOPTIONAL=__attribute__ ((unused))" # otherwise, use this one.... OPTIONAL = "-DOPTIONAL="
This is of course assuming you are using GCC 2.6.3 as comes with Slackware 2.3.0.
However if it fails on the curses.c
file, then you will need to
remove your ncurses package, 1.8.6. , use pkgtool to do this. Then
you will need to get the ncurses package from an earlier Slackware release
and install this. To do this put the package ncurses.tgz
in
your root directory and use the installpkg program.
At present (as of TNOS 2.0pl2) you will need ncurses 1.8.5 to compile TNOS.
You can ftp the ncurses Slackware 1.8.5 package from
ftp://lurpac.lancs.ac.uk/tnos,
the package is 'ncurses.tgz'.
rc.local
or rc.inet1
file (or wherever
you choose to put it depending on your Linux/unix installation.
It is usual to assign a non 44 IP address to TNOS too, when working with
a network/internet connection. This is assigned to the TNOS end of the
pseudo slip link to the kernel. You should refer to Brian's setup details
in Software section, Q-4 for more details of this type of setup.
Assuming you have TNOS talking ok to the kernel, but cannot access TNOS from
other machines on the ethernet/network, then you need to add the following
line:-
# Line to add to your /etc/rc.d/rc.local or rc.inet1 file. # echo "Publishing TNOS IP address" /sbin/arp -s 192.129.16.99 00:00:c0:99:1a:1c pub # # Needless to say you *must* replace the IP address and hw address of the # network card above.
You must also have IP_FORWARDING enabled in your Linux kernel. This is set in the make config part of building a kernel.
patch -p1 -s < xxxxx
where xxxxx above is your patch file to be applied.
For more information on patch see the patch man page.
John says:-
The function key problem with TNOS under X has to do with the fact that the
terminfo entry for xterm is seriously broken in many distributions (I know
it is in Slackware through at least 1.2.0).
Following is an "xterm.tic" souce file for my hacked version that restores fkey functionality. Run it through tic to generate the new database file, and the problem should be solved in xterms (or rxvts) opened thereafter.
BTW -- this problem drove me nuts for almost a month. It was only sheer luck that led to me finding it; the way the config files and docs for X are scattered around makes it great fun to track down problems like this.
John
-- John Ackermann AG9V Internet: jra@ag9v.ampr.org Packet: AG9V@N8ACV.#DAY.OH.USA
xterm.tic (from /usr/lib/terminfo, run 'tic xterm.tic' to compile and install):
xterm|vs100|xterm terminal emulator (X Window System), am, km, mir, msgr, xenl, xon, cols#80, lines#25, bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=\b, cud=\E[%p1%dB, cud1=\n, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=\t, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\n, is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=\b, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8, rev=\E[7m, ri=\EM, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m, rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<, sc=\E7, sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3k, kf1=\E[11~,kf2=\E[12~,kf3=\E[13~,kf4=\E[14~,kf5=\E[15~, kf6=\E[17~,kf7=\E[18~,kf8=\E[19~,kf9=\E[20~,kf10=\E[21~,
You must first make sure you have the trace server running in TNOS
start trace
Then, from your xterm you wish to trace to, you must telnet to your TNOS
host/ip on port 1236.
One the session is established you can issue the command:-
trace <iface> <mode> !
The '!' tells it to attach the output to the current session.
e.g.:-
trace 2m 111 !
This would trace your '2m' port with input and output (ASCII dump) to
your current session or xterm.
TNOS 2.02 will have support for X builtin. I hope to make this a part of the next FAQ!