	-----=== HF ===-----
	
H F   -   H O W T O 


LINUX-AMATEURFUNK-KURZWELLEN-PROGRAMM 
FR RTTY, AMTOR, GTOR, PACTOR 1, MT63 
MIT TCP/IP INTERFACE ZUR F6FBB - MAILBOX 

Version 0.7.3 (4/2005)
Von Gnther Montag DL4MGE
  


1. Einfhrung :
===============

Das hf-Paket implementiert die Amateurfunk-FSK-Protokolle  RTTY, AMTOR
(SITOR), GTOR, Pactor-1, auerdem Pawel Jalocha's Multiton-Protokoll
MT63 und eine CE-Elbug fr Maus und Paddle.

Es bentzt eine normale Soundkarte als Modem.  Der
Geschwindigkeitswechsel bei Pactor (von 100 auf 200 baud) geschieht
automatisch.  Das PTT- (push to talk) Signal kann ber den RTS-Pin 
einer seriellen Schnittstelle ausgegeben werden.  

Die Implementation der Protokolle ist im Programm hfkernel, das im
Hintergrund als "Dmon" luft. ber ein UNIX-domain-socket  kommuniziert
es mit dem zugehrigen graphischen Terminalprogramm hfterm. 

Hfkernel verwendet intern drei Unterprozesse (threads): einen Modemcode,
der im Echtzeitmodus die Soundkarte beschreibt und liest, einen fr das
jeweils laufende Digimode-Protokoll, und einen fr die Socket- Ein- und
Ausgabe.

Hfkernel kann fr die (traditionellen) OSS-Soundtreiber und somit auch
fr die OSS-Emulation der neuen ALSA-Treiber, aber auch fr die neue
ALSA-API direkt konfiguriert werden. 

Wegen des fr das Amtor- und Pactor-Protokoll notwendigen Echtzeitmodus
und den dafr ntigen kurzen Signallaufzeiten wird die Soundkarte in Tom
Sailer's Original-Code ber den "mmap()"-Mechanismus (memory mapping)
angesprochen, was nicht jede Hardware und nicht jeder  Treiber
untersttzt. Dieser Code luft deswegen nicht mit allen Soundkarten und
Treibern! Abstrze sind mglich. 

Die experimentelle Option '-n' (no-mmap) fr den OSS-Treiber
funktioniert oft gut, sie ist auch fr die 2 der 3 beigefgten
Kalibrierprogramme vorhanden, die mmap() verwenden. Sie wird nun (ab V.
0.7.3) in der globalen Konfigurationsdatei als Standard vorgegeben, um
den ersten Start mit dem Programm leichter zu machen.

Fr die ARQ-Modes und MT63 soll hfkernel aber auf jeden Fall ohne die
Option -n getestet werden, auerdem ist eine Kalibrierung in vielen
Fllen ntig.  Dazu sind drei Kalibrierprogramme im Paket enthalten.

Das Startskript hf liest die globale Konfigurationsdatei /etc/hf.conf
ein, prft sie und startet hfkernel und hfterm.

ber einen TCP-Port kann hfterm mit dem bekannten Mailbox-Programm F6FBB
mit anderen Mailboxprogrammen, mit allen Programmen, die eine
TCP/IP-Schnittstelle haben, oder mit solchen, die ber inetd.conf als
Internet-Dienst eingerichtet werden knnen, verbunden werden.

So kann hf als automatische Pactor- Amtor- oder (in Zukunft)
MT63-ARQ-Mailbox arbeiten oder zu Fernsteuerungszwecken dienen.

Das Programm wurde 1997 von Tom Sailer geschrieben (Danke!!!) und wird
laufend von Axel Krause, Gnther Montag und vielen Freunden
weiterentwickelt.

Bitte um Kontakt ber die Mailingliste!



2. Installation, Konfiguration, erster Test:
============================================

2.1. Voraussetzungen: 

Hardware: Unkritisch. Prozessor ab 100 MHz. RAM ab 16 MB. 

Software: hf bentzt das gtk+ Toolkit (Version ab 1.2.0), das in allen
Linux-Distributionen enthalten ist. Das Paket 'gtk-devel' mu auch
installiert sein. Mit 'gtk-config --version' wird dis getestet. Wenn
configure klagt 'Cannot find GTK: Is gtk-config in path?', gtk aber da
ist, suche es (which gtk-config) und dann hilft ein link wie dieses (als
root ausfhren): 

# ln -s /opt/gnome/bin/gtk-config /usr/bin/gtk-config. 
Oder trage den Pfad von gtk-config in /etc/ld.so.conf ein.


2.2. Installation des Quelltextpakets:

entpacke:
# tar -zxvf hf-<version>.tar.gz 
gehe in das Verzeichnis:
# cd hf-<version> ,
starte das configure-Skript:
# ./configure ,
(die Optionen sind sichtbar mit	configure --help,
aber normalerweise mssen keine Optionen angegeben werden)
kompiliere es (c- und c++ -Compiler mssen installiert sein):
# make
installiere es (wegen sonst fehlender Schreibrechte als root !):
# make install 


2.3. Installation des rpm-Pakets:

Das i386-rpm ist fr ltere Computer gedacht (auch ohne ALSA-Soundtreiber),
das i686-rpm fr neuere Systeme.

# rpm -i hf-<version>.rpm
oder (bei falscher Fehlermeldung wegen fehlendem gtk)
# rpm -i --nodeps hf-<version>.rpm


2.4. Erster Test:

2.4.1. Testen von hfkernel auf einer Konsole:

Starte einmal als root und als normaler Benutzer 
# /usr/bin/hf
ohne Optionen.

Das Startskript hf liest die systemweite Konfigurationsdatei
/etc/hf.conf  ein. Bei der Neuinstallation legt es ein Verzeichnis "hf"
im Home-Verzeichnis des Benutzers an und fllt es mit den
Beispieldateien aus /usr/share/hf/hf-examplefiles. 

Bei erfolgreichem Start von hfkernel rollt nach den ersten Meldungen
eine Zahlenreihe wie diese ber den Schirm:  

hfkernel running: corrout ... intermediate ...  

Das ist das EKG. Das bedeutet, da das "Herz" des Programms, hfkernel,
regelmig schlgt. Gewonnen! Beende nun hfkernel wieder mit <Strg>+c.

Kein Herzton? Dann braucht hfkernel besondere Optionen, siehe Kapitel 4. 

Fr ganz Ungeduldige:
Teste an einer Konsole diese Optionen in dieser Reihenfolge:
# hfkernel 
# hfkernel -a plughw:0,0
# hfkernel -n
# hfkernel -R
# hfkernel -h -R
# aoss hfkernel 
# aoss hfkernel -n
# aoss hfkernel -h
# aoss hfkernel -R
# aoss hfkernel -h -R
Bei Erfolg schreibe die guten Options auf und setze sie in /etc/hf.conf
und freue Dich.


2.4.2 Kombibierter Start hfkernel und hfterm durch das Skript hf:

Wenn hfkernel ergolgreich getestet ist, ffne im graphischen Modus mit
<Alt>++F2 ein Befehlsfenster und schreibe hinein:

# /usr/bin/hf

Das Startskript hf startet nun zuerst hfkernel im Hintergrund und dann
das graphische Terminal hfterm im Vordergrund. Wenn ein Funkgert an die
Soundkarte angeschlossen ist, zeigt das Spektrumdisplay (Spectrum-Button
oder F2 oder <Strg>+F), ob Signale ankommen, und ob die Verstrkung der
Soundkarte und der Squelch richtig eingestellt ist.  Der Squelch lt
sich mit der rechten Maustaste ndern. Im RX-Fenster erscheinen
decodierte Zeichen.

Wenn hf luft, kannst Du als root mit  

# ln -s /usr/bin/hf /home/(Benutzername)/Desktop/hf   

ein dynamisches Link auf das Desktop legen. Dies geht auch, wenn man mit
der rechten Maustaste auf das Desktop klickt, 'neu', 'Anwendung' ...
aber das wei ein alter Linux-Hase schon, oder? So kann das Programm in 
Zukunft mit einem Mausklick gestartet werden.


2.5. Konfiguration


2.5.1. Global:

Die globale Konfigurationsdatei, die vor dem Start eingelesen wird, ist
/etc/hf.conf. Sie kann (als root) mit jedem Editor bearbeitet werden.
Hier sollte die serielle Schnittstelle fr PTT (und Elbug) eingestellt werden.
Auperdem gibt es Optionen fr die Wahl der Soundkarte und des Soundtreibers.


2.5.2. Persnliche Konfiguration:

Die persnliche Konfiguration (Rufzeichen, Name, Baudraten)
erfolgt ber das Men 'config' von hfterm aus.

Die Textbausteine knnen ber das Men 'fixtexts' gendert werden.

Das Verzeichnis fr Deine persnlichen Dateien (Konfiguration, Fixtexte,
Log...) heit brigens "hf" in Deinem home-Verzeichnis  und wird beim
ersten Start von hf automatisch angelegt und mit Beispieldateien
gefllt. 

Die Dokumentation ist in /usr/share/hf, und - je nach Distribution -  in
/usr/share/doc/hf oder in /usr/share/doc/packages/hf, der wichtigste Text
ist dieser, auch ber das Hilfe-Men erreichbar.


3. Anschlu der PTT-Buchse und der Elbug: 
=========================================

3.1. PTT / Key:

Wie bei jedem Funkprogramm, werden mit 1 npn-Transistor und 2 Widerstnden 
Computer und Funkgert verbunden:
                              _____
                      /------|_10k_|---O  
 RTS pin             /                PTT pin 
 Computer           /                 Transceiver
       _____    B |/      C
 O----|_10k_|-----|\
                  |  \_|  E
                      \
            npn        \
            Transistor  |
                        |
                        |
               Masse  =====
                                               

Die gleiche Schaltung brauchst Du noch einaml, wenn Du die elbug mit
Ausgabe ber den DTR-Pin der seriellen Schnittstelle und Ansteuerung der
Key-Buchse des Funkgerts benutzen willst. Natrlich kannst Du auch die
Elbug an RTS lassen und mit einem Umschalter zwischen Key und PTT
whlen.

Fr PTT und Key gibt es jede Menge verfeinerte Mglichkeiten mit
Optokopplern und Relais.

Fr manche Transceiver ist diese Schaltung zu hochohmig, dann den 
Collectorwiderstand weglassen und als Basiswiderstand 330 Ohm. Fr
diesen Fall gibt es ein gutes Beispiel (Danke an Waldis Jirgens) bei:
http://members.optusnet.com.au/~waldis/ifacen.gif, da ist auch eine
Transformator-Kopplung fr die Soundkarte gezeigt.


3.2. elbug:

Mittelfeder: +9 V ber Widerstand 2 k                                                 
Linker Kontakt:  -> DCD (9-pin Stecker: 1) (25-pin Stecker: 8)     
Rechter Kontakt: -> CTS (9-pin Stecker: 8) (25-pin Stecker: 5)     
Masse                   (9-pin Stecker: 5) (25-pin Stecker: 7) 



4. Optionen und Problemlsungen fr hfkernel:
=============================================

Startet hfkernel nicht mit dem Startskript hf, oder mchtest Du "von Hand"
starten, um die Optionen kennenzulernen und zu testen?

Starte hfkernel auf einer Konsole, zuerst ganz einfach mit  
# hfkernel

Es ist ein "besonderes" Programm, und stellt daher auch manchmal 
"besondere" Ansprche. Darber mu man einiges wissen, um die 
hufigsten Fehlermeldungen verstehen zu knnen.


4.1. Root-Rechte

hfkernel mu wegen des besonderen Hardwarezugriffs (im Echtzeitmodus,
mit hoher Prioritt, threads, mmap) mit den Rechten von root, dem
Superuser, aufgerufen werden. Im normalen Betrieb sollte man aber nur
als normaler Benutzer arbeiten. Damit normale Benutzer hfkernel mit
hfterm zusammen bequem starten knnen,  wird nun bei der Installation
von hfkernel automatisch das Suid-Bit an hfkernel vergeben. Dann kann
das Programm vom normalen user mit Superuser-Rechten  ausgefhrt werden. 
Wenn das luft und Du so zufrieden bist, brauchst Du nichts weiter
ndern und diesen Abschnitt nicht weiterlesen.

Fehler mit 'permission denied' und mit 'pthread_create' bei Start von
hfkernel als Nicht-root weisen auf ein Problem hier hin: Ist das
suid-bit gesetzt?

# ls -l /usr/bin/hfkernel 
sollte etwa ergeben:
-rwsr-xr-x   1 root     root       372757 Sep 13 10:34 /usr/bin/hfkernel
Das 's' hier ist das suid-Bit, also Superuser-Recht bei Ausfhrung.
Wenn es nicht da ist, setze es von Hand mit
# chmod u+s /usr/bin/hfkernel. 
(gleichbedeutend: chmod 4755 /usr/bin/hfkernel)

Wenn das suid-Bit nicht gewnscht wird, brauchst Du eins der Programme,
die es normalen Benutzern ermglichen, Programme mit root-Rechten
auszufhren: 'su1' oder 'sudo'. Diese sind in den meisten
Linux-Versionen enthalten.

su1: (man su1). 
Installiere su1, ffne mit einem Editor 
/etc/su1.priv (als root natrlich) und ndere wie folgt:
	# Define some privileged users
	define	GODS	root <dein_user_name>
und
	# These never require a password since they are reasonably safe
	ask	never
	allow   GODS    prefix  /usr/bin/hfkernel
Und: hf (vom user gestartet) ruft hfkernel mit Root-Rechten auf.
Eine Beispieldatei fr /etc/su1.priv ist /usr/share/hf/hfsu1.priv.txt.
Allerdings ist su1 in neueren Distributionen oft nicht mehr enthalten.

sudo: (man sudo)
Als root ergnze die Datei '/etc/sudoers' mit der Zeile 
<dein_benutzername> ALL=(ALL) NOPASSWD: /usr/bin/hfkernel
Und: hf (vom user gestartet) ruft hfkernel (mit Root-Rechten) auf.

Vorsicht: Alle diese Umgehungen der Root-Schranke knnen
Sicherheitslcken sein!

Der primitivste Weg ist:
Starte hf als root, dann hfterm als user.


4.2 Serielle Schnittstelle:

Fehler mit 'ioctl: TIOCMBI[CS]:' 
Konflikt mit der Maus? Ist die serielle Schnittstelle in /etc/hf.conf
richtig eingestellt? (Als Default ist keine eingestellt, also kommt auch
zunchst dieser Fehler nicht...)


4.3. Probleme mit Soundkarten:

Die Soundkarte mu 16-Bit-Sampling in der Byteordnung der CPU, 8kHz
Sampling-Rate, und sollte memory mapping der DMA-Puffer and triggering
untersttzen. Sie mu im "Mono"-Betrieb laufen knnen, was manche neuere
Soundkarten nicht mehr knnen! Eine Voll-Duplex-Soundkarte ist vorzuziehen.

hfkernel mit Tom's Original-Code geht nicht mit jeder Soundkarte und
nicht mit jedem Treiber. Grund ist nicht, weil das Programm schlecht
wre, sondern weil es gut ist! Wegen der zeitkritischen
FSK-ARQ-Protokolle (Amtor, Gtor, Pactor) ist es notwendig, im
Echtzeit-Modus zu arbeiten, und deswegen wurde von Tom Sailer als bester
Weg das Programm mit dem "mmap()" - Systemaufruf geschrieben. Diese
Technik wird auch "DMA" (direct memory access, direkter Zpeicherzugriff)
genannt, also direktes Spiegeln des Soundkarten-Ringpuffers im
Arbeitsspeicher des Computers. Und nicht jede Soundkarte kann das, und
nicht jeder Soundtreiber untersttzt das richtig.

* Darum ist die '-n' -Option, die diese Schwierigkeit umgeht, nun als
* Standard in  /etc/hf.conf gesetzt, um den Anfang zu erleichtern.  Aber
* teste hf auch ohne  sie, um in den ARQ modes bessere Ergebnisse zu
* erreichen!

Fr MT63 ist es kein Problem wenn der mmap-Modus nicht arbeitet.

Halb-Duplex-Soundkarten werden umgeschaltet, wenn das Protokoll vom
Empfangen zum Senden und umgekehrt bergeht. Das dauert recht lang,
zwischen 5 und 35 ms. Das Program mit die durchschnittliche Zeit beim
Start. Es versucht, diese Latenz in der PTT-Auftastverzgerung (TXDelay) zu
verstecken, also stelle das txdelay im Parameters-Men von hfterm auf einen
etwas greren Wert ein, und hoffe, da die Summe aus Ausbreitungszeit zu
Deinem Funkpartner und dessen txdelay auch lnger ist.

Die Audio-Level und -Parameter knnen mit den blichen Mixer-
Programmen eingestellt werden. Das eingebaute AGC sollte ausgeschaltet
sein.


4.4. Probleme mit dem Sound-Treiber

4.4.1. Was ist ein Treiber, was ist ein API?

Ein Treiber ist ein Programm, das 'allgemeine' Befehle aus einer 
Anwendung (z.B. hfkernel, oder ein Programm zum Hren von Musikdateien)
in 'spezielle' Befehle fr ein spezielles Gert, z.B. die Soundkarte
Via 82C686, bersetzt.

Der Treiber stellt also fr den Programmierer die 'allgemeinen'
Befehlsstze zur Verfgung und bersetzt sie beim laufenden Programm im
Verborgenen in die 'speziellen'.

Die 'allgemeinen' Befehlsstze heien auch API (Application Programmer`s 
Interface) und man kann sie sich auch wie eine kleine 
`Programmiersprache', oder auch so etwas wie eine Fachsprache fr ein 
spezielles Gebiet innerhalb von c vorstellen.


4.4.2 OSS und ALSA

Fr Linux gibt es fr die Soundkartenprogrammierung 2 verschiedene APIs:

OSS: 

Die ltere, traditionelle API heit OSS (Open Sound Systems), in
Distributionen bis etwa Kernel 2.4 sind die OSS-Treiber als ladbare
Kernelmodule standardmig dabei. 

Es gibt auch kufliche, teils bessere Weiterentwicklungen der OSS-Treiber.

In alten Linux-Distributionen gab es ein Zwischending, ein mit der
Distribution bezahltes OSS-Paket, das, z.B. bei meinem SuSE 6.3 in
/tmp/opso gefunden werden konnte und mit hf gut funktioniert, ich verwende
es immer noch. 

Die Standard-OSS-Kernelmodule sind in /lib/modules/<kernelversion>/misc.
(Quelltexte in /usr/src/linux/<kernelversion>/drivers/sound). Sie lassen
sich, ggf. nach Deaktivieren von ALSA (rcalsasound stop), mit modprobe
installieren. (man modprobe, modprobe -p liefert Parameterinformation,
modprobe -d zeigt die Reihenfolge des Ladens der voneinander abhngigen
Module.) Vielleicht hilft Dir -bei ISA-PNP-Karten- pnpdump und isapnp,
(siehe manpages), bei PCI-Karten lspci, und die Dokumentation in	
/usr/src/linux/Documentation/sound fr Deine Soundkarte.  

So weit ich wei, wird OSS immer noch weiterentwickelt, die
neueren OSS-Treiber kosten etwas (www.opensound.com). 

ALSA: 

Neu entwickelt, flexibler, komplexer und fortschrittlicher, (und
deswegen  auch manchmal vielleicht noch fehleranflliger und langsamer)
ist ALSA (Advanced Linux Sound Architecture). Die ALSA-Treibermodule
sind ab Kernel 2.4 als Option, ab Kernel 2.6 als Standard dabei und
werden wohl in Zukunft die Hauptrolle spielen. ALSA untersttzt auch
viele der neuesten Soundkarten und wird fleiig bei SuSE
weiterentwickelt und von vielen anderen Linux-Distributionen bernommen.
Die neueste Version von ALSA und viel gute Dokumentation gibt es bei:

http://www.alsa-project.org
http:///www.alsa-opensource.org
Mailinglisten knnen abonniert werden, fast 1000 Mails pro Monat:
https://lists.sourceforge.net/lists/listinfo/alsa-devel 
https://lists.sourceforge.net/lists/listinfo/alsa-user

Du kannst als root mit dem Befehl
# lsmod
testen, welche Soundtreiber-Module in Deinem Linux laufen:
Die ALSA-Module fangen alle mit 'snd-' an.

Die ALSA-API hat eine vllig andere Logik als die OSS-API. Wenn ALSA
nicht auch noch zustzlich eine OSS-Emulation (`Nachahmung') enthalten
wrde, wre das schlimm, dann wrden viele guten alten Programme (fr
Funk, Musik, Spiele...) nicht mehr mit dem neuen Linux laufen. :-( 

(Du kannst die verschiedenen Programmcodes in hfkernel/l1/oss.c und
hfkernel/l1/alsa.c vergleichen!)

Nun wird es ein bichen kompliziert: ALSA hat 2 alternative Arten der 
OSS-Emulation:

Die standardmige, (in den ALSA-Kernelmodulen enthaltene)  wird
automatisch aktiviert, wenn ein Programm wie hfkernel die  erste
(zweite...) Soundkarte als /dev/dsp0 (dsp) anspricht, so wie es alle
OSS-Programme tun. 

Die andere (alternative) ist in einer zustzlichen library, die durch
das Skript /usr/bin/aoss (in dem steht: env
LD_PRELOAD=/usr/lib/libaoss.so $*)  an das Programm gelinkt wird:  
# aoss <Programm>.


4.4.3 hfkernel, OSS und ALSA:

hfkernel's Soundschnittstelle wurde, wie die der meisten
Amateurfunkprogramme, fr die  OSS-API geschrieben, luft aber auch mit 
den 2 OSS-Emulationen der ALSA-Treiber, die auch stndig verbessert 
werden. Ich habe noch nicht herausgefunden, ob das Prefix aoss einen
Vorteil bringt (Es kann in /etc/hf.conf eingestellt werden.)

Beide Arten der ALSA-OSS-Emulation sind noch in der Entwicklung, und da
hfkernel besondere Ansprche stellt (mmap und Realtime-Modus) luft es,
je nach Soundkarte, manchmal mit OSS, manchmal mit der OSS-Emulation von
ALSA, manchmal gar nicht! Es wird intensiv an Verbesserungen gearbeitet,
hole Dir die neuesten Version von ALSA und hf und sei geduldig!!! ( be
patient with your patient because your patient is a patient  patient.)

Ich habe zustzlich einen experimentellen Code in der OSS-API geschrieben, 
der nicht mmap(), sondern normale read() und write()-Zugriffe verwendet.
Dazu ist die Option "-n" (no mmap) vorbereitet. 

Fr Version hf-7.1.1 habe ich dazu noch den Voll-Duplex-Code fr die 
ALSA-API gemacht. Um ihn zu testen, mut Du hfkernel entsprechend der 
ALSA-Konvention mit der Option
-a plughw:0,0 fr die erste, oder 
-a plughw:1,0 fr die zweite Soundkarte aufrufen, usw.
Auch das feste Einstellen dieser Option ist in /etc/hf.conf vorbereitet.

Noch ist der Code fr das OSS-API als Standard in hfkernel eingestellt.
Aber bitte  teste den ALSA-Code! Danke!  ;-) 


4.4.4 Stufenplan bei Soundtreiber-Problemen mit hfkernel

Fehler mit 'open':
Ist der Soundkarten-Treiber berhaupt geladen ? 
(lsmod, kann ein anderes Programm, z.B. dcf77gen oder dcf77gen -n, 
einen Ton erzeugen?)

Wenn 
# hfkernel 
nicht luft, knntest Du die Optionen in dieser Reihenfolge zu testen:

Falls ALSA-Treiber installiert sind 
(teste das als root mit 'lsmod', die Module beginnen mit '-snd' ):
# hfkernel -a plughw:0,0

Sonst: 

Fehler mit 'MMAP':
Teste die read()/write()- verwendende Version ohne mmap() mit:
# hfkernel -n

Manchmal sagt das Testprogramm da die Soundkarte voll-duplexfhig ist, 
aber sie ist es nicht: 
Erwzinge den Halbduplex-Mode mit 
# hfkernel -h 

Wenn bei Halbduplexbetrieb die Zahlen bei 'corrout	... intermediate  
...' immer 8000 sind, funktioniert im Halbduplex-Modus die rdtsc-
Zeitabfrage nicht. Dies kommt vor allem bei Nicht-Intel- Prozessoren
vor. Dann mu die Option '-R' (deaktiviert der RDTSC-Instruktion)
zugefgt werden:
# hfkernel -R 
oder 
# hfkernel -h -R

Immer noch nichts? 

Dann versuche fr all diese Optionen zustzlich dem aoss-Prefix
(bis auf -a plughw:0,0, da bringt es ja nichts, ist ja kein OSS mehr):
# aoss hfkernel 
# aoss hfkernel -n
# aoss hfkernel -h
# aoss hfkernel -R
# aoss hfkernel -h -R

Immer noch nichts? 

Versuche eine andere Soundkarte.
Versuche die neueste ALSA-Version, es wird besser.
Versuche das kommerzielle OSS, wenn Du es hast (vielleicht eine 'freie' 
Version aus einer alten Distribution, wie ich, siehe oben!)

if (Nervensystem == am Ende) {
    subscribe_mailing_list
        ("https://lists.sourceforge.net/lists/listinfo/hfterm-hackers");
    mailto(hfterm.hackers@sf.net);
    sleep (24 hrs);
    break;
}

Achtung: Vor V. 0.6, bei manchen Kombinationen von Soundkarte und
-treiber hngte sich hfkernel mit einer Endlosschleife von  "...
fragments passed since last wakeup" oder "OSS driver lost interrupt". 
Leider gab es manchmal auch Abstrze und einmal einen Plattencrash,
sorry! In V.0.6 habe ich eine Sicherungsfunktion eingebaut, die dies
verhindern sollte.


4.4.5. Sichern der Konfiguration und Deiner Seele

Wenn hfkernel luft, fixiere ihn mit Leim und berhre das laufende
System nie mehr. Das heit, stelle die fr Dich richtigen Optionen fest
in /etc/hf.conf ein und sichere dieses, damit es beim nchsten Update 
nicht verlorengeht. (Darin wirst Du spter nach erfolgreicher 
Kalibrierung auch Deine wertvollen goldenen 3 Korrekturfaktoren
speichern!) So kannst Du hfkernel und hfterm ber das Skript hf, das
/etc/hf.conf einliest, leicht starten.

Arbeite nie mehr als 24 Stunden pro Abend. Schau ob Deine Familie noch
da ist. Vergi nie: Mach das Ganze nur mit Spa. Wenn Du depressiv
wirst, maile mir. Ich bin ein Psychotherapeut. Wirklich. Ich heile mich
selbst durch Klavierspielen, andere Sachen machen und computerfreie Tage
feiern.


4.4.6. Vollstndige Liste der Optionen von hfkernel:

 -2 Im Standby-Modus 200 Baud nicht decodieren
 -3 Im Standby-Modus 300 Baud nicht decodieren
 -a Pfad zum Audio-Gert (Default: /dev/dsp (OSS))
    (Fr ALSA: -a plughw:0,0)
 -c Pfad zur Software-Schnittstelle (Default: /var/run/hfapp)
 -f Im Standby-Modus keine Frequenznachstellung (frequency tracking)
 -h Halbduplex erzwingen (nur fr OSS)
 -i invertiert PTT-Impuls
 -k Hfkernel beenden (wird im Startskript hf verwendet)
 -l Eintrge in Logdatei (Default: keine)
 -M Pfad zum Mixergert 
 -m CPU-Uhr in MHz (auf khz genau)
 -n Verzicht auf 'mmap()' (kein direkter Zugriff auf Soundkartenpuffer).
    Experimentell! Fr manche Soundkarten, die (oder deren Treiber) mmap
    nicht richtig untersttzen. (Nur fr OSS)
 -p Pfad zur seriellen Schnittstelle fr die PTT-Ausgabe (Default: keiner)
 -R deaktiviert den Gebrauch der RDTSC-Instruction (nur bei Intel-Systemen).
    Die Verwendung der RDTSC-Instruktion kann bei Laptops und/oder 
    bei aktiviertem APM (Advanced Power Management) Probleme verursachen.
 -r Zugangsrechte zur Software-Schnittstelle (Default: 0777 = rwxrwxrwx)
 -s Korrektur der soundcard sampling rate
 -t gettimeofday - Korrekturfaktor (Zeitbestimmung ber Prozessortaktrate)


   
5. hfterm und die Digimodes:
============================

5.1. Einfhrung

Die Bedienung von hfterm ist intuitiv. Hilfe, wenn gebraucht: F1.
Status- und Mode-Men und die Buttons erklren sich selbst. Wenn Du, wie
ich, keine Muse magst, werden Dich die vielen Tastenkrzel siehe Mens) 
beglcken. Modus mit F..., Textmakros mit <Shft>F...

Es gibt 3 Ebenen fr Fehler- und Verlaufsmeldungen:
1. Das xterm-Fenster oder die Konsole im Hintergrund: 
   Ausgabe von hfkernel, die unterste Soundtreiber- und Protokoll-Ebene.
2. Das Monitorfenster: Level 2 der Protokoll-Ebene
3. Fr den normalen Benutzer am ntzlichsten sind 
   die Meldungen im Status-Display-Fenster unten im Schirm. 

Wenn Du wissen mchtest, wie die Digimodes klingen:
Beispielklnge in www.wunclub.com/sounds !

hfterm denkt mit (autorx / autotx -Funktionen). Eingaben ins
Sendefenster schalten auf Senden im passenden oder letzten Modus. Nach
einigen Sekunden schaltet hfterm auf Empfang, auer es ist explizit ein
Sendemodus, z.B. Rtty-Tx, gewhlt. Autorx/tx ist hilfreich fr die
Baken- und Mailbox-Funktion, kann aber durch zu wenig Warten und zu viel
Klicken verwirrt werden! Besonders MT63 braucht lange Zeit zwischen 
Empfang und Senden und zurck, wegen der Datenverschachtelung. Aber ich 
mag das, es entspannt.

Wenn Du einen Modus wechselst, gehe nicht von einem Sendemodus direkt 
in einen anderen! Sondern, wie Du als guter Funkamateur ja weit, 
zuerst auf Empfang (oder warte autorx ab), dann auf Empfang des neuen 
Modus, dann erst auf Sendung.

Falls sich das Programm aufhngt, erst mal warten, evtl. neu starten
(hf, nicht den Computer. Wir sind ja hier nicht bei Bill.) Im
schlimmsten Fall hngt sich hfterm ein einer Endlosschleife auf ('top'
zeigt 96% CPU-Auslastung), wenn hfkernel abstrzt. Dann hilft nur noch
- von einer Konsole aus -  
# killall hfterm
In letzter Minute habe ich hier noch eine Art Zhler mit Bremse
in hfterm's Socket-poll-Routine eingebaut, hoilft`s? 

Auf die Ursache dieser Schleife bin ich noch gekommen. Sie tritt beim 
neuesten Linux eher auf, und hufiger wenn hfkernel in einem xterm im 
Hintergrund von hfterm luft. (Race-Condition im Message-System ber 
hfapp durch Verlangsamung?) Stelle das xterm in /etc/hf.conf aus, 
oder, zum Debuggen, nehme xterm -hold -e hfterm.


5.2. Allgemeines 

5.2.1 SPEKTRUM

Als neuer Benutzer freunde Dich zuerst mit dem Spektrum an. Falls kein
Signal erscheint, schau nach ob Rig und Soundkarte (Line out) richtig
verkabelt sind, und ob die Signalstrke gut eingestellt ist, z.B. mit
ein Poti in der Leitung vom Rig zur Soundkarte oder einen Mixer wie
aumix (fr OSS) oder alsamixer. Das Spektrum hat eine blaue und rote
Linie fr Mark und Space, und eine grne Linie, der Squelch. 

Mark und Space:
Du kannst Mark und Space mit der Maus ndern:  Wenn einer der gegebenen
Shifts gewhlt ist, wird der linke Knopf mark whlen (space ist mark
plus shift), oder der mittlere Knopf whlt die Mittelfrequenz. Wenn der
"other" shift gewhlt ist, mut Du 2 mal fr erst mark, dann space 
klicken. 

Squelch:
Der rechte Knopf whlt den Squelch.


5.2.2 PARAMETER

'<Strg>+ P' ffnet eine Eingabemglickheit fr persnliche Parameter, 
wie Dein Rufzeichen und Leistung, Rig, Antenne, Locator, QTH, Name,
Mail. Diese Daten werden von einer Such- und  Ersetz- Funktion zusammen
mit den Fixtexten bentzt, um Textbausteine zu senden. Dann gibt es
Programm-Parameter wie Mark, Shift, Baudrate, Txdelay fr die
verschiedenen Betriebsarten. Beim Beenden von hfterm werden die
Parameter in  ~/hf/hfterm.rc  gespeichert (digital, bitte nicht
editieren!).


5.2.3 FIXTEXTE

Wenn Du Textbausteine magst, editiere die Fixtexte (bis to 12) mit
'<Strg>+ T'. Bestimmte Begriffe in eckigen Klammern werden ersetzt -
Gedchtnissttze fr die mglichen Schlsselwrter ist das Fenster unten
im Fixtexteditor.  Zum Beispiel: [B] = Bakenaussendung (z.B. CQ), [TIME]
= Zeitstempel. Zum Senden eines Bausteins auf einen der 12 Buttons
klicken oder  'Shift F<1 ..12>', zurcklehnen und Kaffee trinken.  Die
Fixtexte werden in ~/hf/fix.<nr> gespeichert und knnen auch  auerhalb
des Programms editiert werden.  Durch Einfgen oder Umbenennen kannst Du 
beliebige Ascii-Texte bis zu einer Lnge von 1024 Zeichen importieren.
Mit dem File-Men kannst Du aber auch eine beliebige Datei senden.


5.2.4 BAKE

Wie gesagt, wenn ein Fixtext [B] enthlt, wird bei seiner Auswahl 
automatisch die Bake gestartet. Du kannst sie mit <Alt>+B oder ber das 
File-Men stoppen. Wenn Du eine externe Datei als Bake senden mchtest,
starte den Bakenmodus mit <Alt>+B oder ber das File-Men, dann erscheint
ein  Dateiauswahl-Dialog. Nach Stop und Neustart der Bake wird die zuvor 
eingestellte Datei wieder gesendet. Wird dann ein Fixtext gewhlt, der 
[B] enthlt, ist dieser der neue Bakentext, usw. Wenn hf als Mailbox
betrieben wird, wird whrend eines Connects (von  auen) die Bake
unterbrochen, nach logout wieder mit gleichem Text fortgesetzt. 

Das Zeitintervall fr die Bakensendung wird im Config-Men festgelegt
(es wird auf ein  Vielfaches von 5 Sekunden gerundet).


5.2.5 LOGBUCH

Es gibt sogar 2. Eins fr groe Schirme, es ist immer offen. Einfach
ausfllen und auf 'save' (oder 'clear') klicken. Das andere Log ist fr
meinen alten kleinen Bildschirm (ein grerer pat nicht in mein
Funkzimmer).  Entferne das groe Log-Eingabefeld mit '<Strg>+ Q'.  Mit
'<Strg>+ N' ffnet sich das kleine Log, wenn Du es brauchst, und das
Status display unten bleibt zu sehen. '<Strg>+ L' zeigt das ganze
Logbuch, '<Strg>+ A' archiviert die Logdatei und ffnet eine neue.
'<Strg>+ O' sucht alte Eintrge zum Editieren oder Lschen. Das Log wird
in Portionen zu je 50 Eintrgen gespeichert. Die alten Logdateien werden 
numeriert und knnen nicht mehr von hfterm, aber mit jedem Texteditor 
bearbeitet werden. Das Ascii-Format ist an den Cabrillo-Standard
angepat. nderungswnsche fr  Deinen speziellen Contest knnen bei
Verstndnis der printf- Formatspezifizierer (man printf) im Quelltext 
hfterm/src/log.c leicht verwirklicht werden!


5.2.6 RX-TEXT

Empfangene Texte werden in ~/hf/hfrx gespeichert. Wenn das Programm lange 
luft, wird immer wieder eine Hlfte des Textes im Empfangsfenster an 
diese Datei angehngt. Bis zu 5 alte Texte in   ~/hf/hfrx.old... 
aufgehoben. Im File-Men kann auch zustzlich ein Dateiname zum Speichern
ausgewhlt werden.


5.3 Die Modes

5.3.0 CW Elbug

Mein neuerster Hack, einzigartig in Linux (?). Ich wurde dafr
inspiriert von Larry Winslow's "CW" DOS-Programm. Die Schaltung ist auch
aus Larry's Beschreibung. Es ist nur die Simulation einer elektronischen
Taste. Ein Tastatur-Encoder and -Decoder sind schon in gMFSK
verwirklicht, vielleicht bernehme ich sie das nchste mal.

Die Elbug ist lautlos, meine Tests mit der Soundkarte gaben eine zu
groe Verzgerung, das mit dem PC-Lautsprecher kommt noch, ich mu mich
erst mal im Code von Joop's and Rein's cedaemon belesen...
(http://www.qsl.net/pg4i/linux/cwdaemon.html).

Du kannst die elbug durch Klicken mit dem rechten und linken Mausknopf
in das Sendefenster testen. Verkabelung siehe Kap. 3 oben. Die
Geschwindigkeit kann im Config menu eingestellt werden.

Es gibt die Elbug auch als kleines Konsolenprogramm elbug!


5.3.1. RTTY

Zum Anfreunden mit dem Programm versuche zuerst RTTY zu empfangen und zu
senden. blich sind Shift 170 Hz und Baudrate 45. Suche im 20m-Band nach
dem typischen schnen RTTY-Maschinengerusch. ffne ber das Men
Utilities oder einfach mit '<Strg>+ F' (<Strg>+-Taste gedrckt halten und
F eingeben) das Frequenzspektrumdisplay. Nach meiner Erfahrung geht das
Abstimmen am schnellsten mit dem Transceiver.  Drehe die 2 Peaks unter
die blaue und rote Linie im Spektrum. Mit '<Strg>+ F' verlasse das
Spektrum, gehe auf 'RTTY-Rx' und staune, das  Empfangsfenster decodiert
Text. Warum nicht einen CQ-Ruf beantworten? Natrlich nur mit
Funklizenz, ohne bersteuerte Soundkarte, mit miger Leistung (20 W
gengt!), und mit Rcksicht auf die Anderen, wie in allen Digimodes. 
Bei Dauersendung kommt ein "Diddle" mit "LTRS...".


5.3.2. Die FEC / ARQ - Modes PACTOR - AMTOR - GTOR

Wenn Du mit hf diese Modes testen wollt, versucht bitte unbedingt, ob
hfkernel ohne die Option -n geht, und teste auch den
ALSA-Vollduplextreiber mit der Option -a plughw:0,0 !


5.3.2.1 Fehlerkorrektur-Mechanismen:

Pactor (hf implementiert den Pactor-Level 1 mit bis zu 200 Baud) und Amtor
knnen mit FEC laufen: Forward Error Correction: Signale werden mehrmals
gesendet und ausgemittelt.

Pactor, Amtor und Gtor knnen mit ARQ Connects zwischen 2 Stationen
aufbauen: ARQ heit Automatic Repeat Request: Nach jedem Datenpaket sendet
der Empfnger ein Kontrollpaket, das den richtigen Empfang besttigt (wenn
die vom Empfnger berechnete CRC, eine Checksumme, stimmt) und ggf. um
Wiederholung, Langsamerwerden, Schnellerwerden oder Richtungswechsel
bittet.

5.3.2.2 Amtor
5.3.2.3 Gtor
Das Howto ist hier noch unvollstndig, bitte schickt mir 
Dokumentationen ber Amtor und Gtor!

5.3.2.4 Pactor

Pactor ist eine Wissenschaft fr sich. Wenn Du noch nichts darber weit,
lies 'pactor.txt' in /usr/share/hf (und bersetze es dabei glauch ins 
Englische oder eine andere Sprache....! Und maile es mir. Danke!!) be
erst das Empfangen, es ist etwas schwieriger als bei RTTY. Im
Spektrumdisplay sieht Pactor wie RTTY aus, aber der Ton ist im 1.25
Sekunden- Rhythmus gehackt. (Amtor: 0,45 sec.) Manchmal kannst Du zwischen
den Datenblcken die kurzen Kontrollblcke hren. Auch bei exakter
Abstimmung kannst Du manchmal nichts dekodieren, wenn die Sendung in 
Pactor-Level II oder III ist (mit PTC). Manchmal erkennst du nur ein
Rufzeichen, das immer in  Level I gesendet wird. Rufe CQ in Pactor-FEC
(Geduld!). Wenn jemand in FEC ruft, antworte in ARQ. Rufe eine Mailbox in
ARQ. Gehe nach dem Senden nicht sofort in 'standby', das Programm knnte
hngen. (Wenn es hngt, einfach warten.) Sondern: QRT ('Alt Q'), etwas
warten (QRT -Routine), dann geht das Program von selbst in standby
(Bereitschaft). 


5.3.3 MT63

Vielen Dank an Pawel Jalocha, der diesen neuen Modus programmiert hat. Er
ist sehr robust, und insbesondere bei schlechten bertragungsbedingungen
besser als Pactor 3, und knnte in der Zukunft fr geplante "emcomm"
Systeme  wertvoll sein. (Emcomm heit Emergency communication,
Notfallnetzwerke, siehe dazu die gegenwrtig laufende interessante
Diskussion in der linlink-Mailingliste bei www.wetnet.net).

Aufgrund der vielen interessanten Experimentiermglichkeiten habe ich
Pawel`s gesamtes MT63-Paket mit den Konsolenprogrammen mt63tx, mt63rx und
mt63trx, die Tools morsecod, peakrms, addnoise  und das Kalibrierprogramm
ratecal1 ins hf-Paket eingefgt. Danke!

Ich fge hier einen Teil von Pawel`s Dokumentation ber MT63 ein. (Das
ganze Dokument ist mt63.txt im doc-Verzeichnis.)

Das ist Version 0.5 des MT63-Modem fr LINUX. 08-JUL-2004, 
Autor: Pawel Jalocha, SP9VRC, Pawel.Jalocha@cern.ch 

Wichtig: 
1. Um das MT63-Modem voll auszunutzen, mu die sampling rate Deiner    
Soundkarte entweder kalibriert werden oder genau bei 8000.0 Hz liegen.   
Derzeit informiert der MT63-Decoder nicht ber die die Abweichung,   
vielleicht schaffe ich die Mglichkeit in zuknftigen Versionen. 
2. Beschdige beim Verbinden der Soundkarte mit Deinem PC/Laptop nicht   
die Soundkarteneingnge. Ich schlage vor, erst die Massen von Rig und    
Computer, und erst dann die Audiokabel zu verbinden. 

Das MT63-Modem ist fr Amateurfunk als RTTY-hnliche Konversation gedacht,
bei der eine Station sendet und eine oder mehr Stationen hren. Es sendet
64 Tne in seiner Bandbreite von 1 kHz im Bereich 500-1500 Hz. In
differentialer bipolarer Phasenmodulation werden 10 Bits/s auf jedem Ton
codiert. Die Daten werden als 7-bit ASCII-Characters als Satz von 
64-Punkt-Walsh-Functionen encodiert. Die Bits werden ber 32 Symbols (3.2
Sekunden) verschachtelt (Orig. "interleaved", so auch die 
Parametereinstellung, Anm. d. .) gesendet, dies macht den Modus sowohl
gegen phasische als auch frequenzabhngige Strgerusche  und Fading
unempfindlich. 

Die bertragungsgeschwindigkeit fr Zeichen ist der fr Bits pro Ton 
gleich, also kann das Modem 10 7-bit-Zeichen pro Sekunde senden. Das Modem
kann auch in 2 anderen Betriebsarten laufen:

Bandbreite Frequenzbereich Baudrate Zeichenrate  Verschachtelung/Zeichen
  500 Hz   500-1000 Hz     5 baud     5 char/s   6.4 oder 12.8 sec
 1000 Hz   500-1500 Hz    10 baud    10 char/s   3.2 oder  6.4 sec
 2000 Hz   500-2500 Hz	  20 baud    20 char/s   1.6 oder  3.2 sec

Fr jeden Modus kann der Interleave-Faktor verdoppelt werden, so wird 
jedes Zeichenn ber die zweifache Zeitspanne verstreut gesendet. Die ersten
Versuche mit dieser Technik wurden mit dem EVM56K DSP evaluation board von
Motorola gemacht, das Programm hie MT63ASC.ZIP. Diese
LINUX-Implementierung ist mit diesem Paket kompatibel gehalten. Das
MT63-modem its fr SSB-Betrieb gemacht. Die Signale der Soundkarte werden
dem SSB-Modulator zugefhrt. Auf der Empfangsseite geht der Output  des
SSB-Demodulators zum Eingang der Soundkarte. 

Die Hllkurve des MT63-Signals ist nicht fest, wie in anderen
Vieltonsystemen - sie sieht mehr wie Rauschen aus. Man mu darauf achten,
den Sender nicht zu bersteuern. 

Die Empfangsseite von MT63 ist selbstabstimmend und selbstsynchronisierend,
so mu der OP im 1000 Hz -Grundmodus nur auf +/- 100 Hz genau in das Signal
hinein abstimmen. Das Modem wird die genaue Frequenzabweichung mitteilen,
nachdem es sich synchronisiert hat. Der OP sollte nicht versuchen, diese 
Abweichung zu korrigieren, wenn er nicht sehr langsam abstimmen kann,  da
MT63 als langsam phasenmoduliertes System schnelle Frequenznderungen nicht
mag. 

Pawel, SP9VRC. 
(Danke, Pawel!)

Ich habe in hf die Zeit des Auslaufens der Datenverschachtelung  ("flushing
data interleaver") am Ende jedes Sendezyklus noch mehr als Pawel im
Originalcode verlngert, damit meine Squelch-Funktion beim Empfang nicht
die letzten Daten abschneidet.



6. Echtzeit-Probleme und Kalibrierung: 
====================================== 

6.1 Grundlagen

Kurzwellenprotokolle sind normalerweise synchron. Sie bentigen eine exakte
Zeitquelle, um auch bei lngeren Unterbrechungen der bertragung
bitsynchron zu bleiben. Z.B. fordert das SITOR- (Amtor-) Protokoll,
da die Referenzzeitquelle nicht mehr als 20ppm vom Idealwert abweichen
darf. Pactor stellt hnliche Anforderungen, damit lngere Verbindungen
stabil bleiben. Es ist schwierig, eine so exakte Zeitquelle zu finden.
Deshalb erfordern alle Optionen, die in dieser Implementation gewhlt
werden knnen, eine manuelle Einstellung.

Wenn die Soundkarte voll-duplex-fhig ist, wird die Referenzzeit von der
Sampling-Rate (Zahl der pro Sekunde aufgenommenen, z.B.
16-Bit-Dateneinheiten) der Soundkarte abgeleitet. Um unzutreffende
Informationen des OSS-Treibers ber die Sample-Rate zu korrigieren, kann
die Option -s bentzt werden. Die Soundkarte sollte echte Quarze statt
billiger keramischer Resonatoren enthalten. Auch MT63 in hf benutzt den
Samplerate-Korrekturfaktor (-s).

Wenn die Soundkarte nicht voll-duplex-fhig ist, kann die o.g. Methode
nicht angewandt werden. 

Auf Intel-Architekturen testet das Programm die Prozessorinstruktion RDTSC
(read time stamp counters, lese Zeitmarkenzhler), um zu sehen ob sie
verfgbar ist und arbeitet (auf Pentium-Computern und neueren sollte dies
der  Fall sein). Dieser Zhler zhlt im Takt der CPU-Uhr, deshalb mu dem
Programm die auf khz exakte Frequenz der CPU-Uhr bekannt sein (Option -m).
La Dich nicht von Werbegags irrefhren, z.B. luft ein AMD K5 PR133  auf
100MHz.

Auf Nicht-Intel-Systemen, oder wenn die RDTSC-Instruktion nicht  verfgbar
ist oder nicht arbeitet, verwenden wir gettimeofday - in der  Hoffnung da
das tv_usec-Feld genau genug ist. Systematische Frequenzabweichungen
knnten mit der Option -t korrigiert werden.

RTTY, Pactor-FEC und Amtor-FEC sind oft ohne Kalibrierung mglich, es wurde
auch ber erfolgreiche Pactor- / Amtor-ARQ - Verbindungen ohne Kalibrierung
berichtet. Wenn ARQ-Verbindungen in Pactor, Amtor oder GTOR lnger bestehen
sollen, kann eine Kalibrierung die Leistung des Programms verbessern. 

Wie bereits beschrieben, kann man mittels Optionen an hfkernel
Korrekturfaktoren fr die Samplingrate der Soundkarte (-s), die
Prozessortaktrate (-m) und die gettimeofday-Funktion (-t) bergeben.
-s wirkt nur bei Vollduplex-Betrieb (Taktgeber ist hier die Soundkarte),
-m nur bei Halbduplexbetrieb mit funktionierender RDTSC-Instruktion 
-t nur bei Halbduplexbetrieb ohne funktionierende RDTSC-Instruktion,
das ist schlechter, da hier der Prozessor ber die Funktion
gettimeofday() die Zeit angibt, dies ist wegen schwankender
Systemauslastung ungenauer. 

Im hf-Paket sind 3 Programme zur Kalibrierung enthalten. Die beiden ersten,
dcf77rx und reffreq, schreiben sogar selbstttig ihre Ergebnisse in die
Konfigureationsdatei /etc/hf.conf. Aber bitte diese vor Gebrauch testen,
evtl. von Hand editieren! Am Ende des Kapitels beschreibe ich eine
primitive Schtzmethode mit der ich Erfolg hatte, und ein Skript das die
Samplerate fr MT63 raten kann. Das hilft bei alter Hardware, wo cpu
und/oder Speicher nicht fr die Kalibrier-Algorithmen ausreichen.


6.2. dcf77rx   
  
benutzt das Zeitzeichensignal des bekannten Langwellen- Frequenznormal-
Senders DCF77 auf 77,5 KHz in der Nhe von Frankfurt, der mit einer
Leistung von 25 kW in etwa 2000 km Entfernung in fast ganz Europa zu
empfangen ist und brigens auch das Signal fr die Funkuhren liefert.
(Siehe auch dcf77.txt, bitte bersetzt es wenigstens auf Franzsisch, 
Polnisch...) Wenn Du dieses Signal noch nie gehrt hast, teste doch einfach
einmal das Demo-Programm dcf77gen !

Das Signal mu dazu auf eine Frequenz von 1000 Hz umgesetzt und an den Mic-
oder Line in - Eingang der Soundkarte gelegt werden. Stelle dazu Deinen
Empfnger auf 78.5kHz LSB (oder 76.5kHz USB). Weil ich keinen
Langwellenempfnger fr diesen Bereich hatte, habe ich, von Vorschlgen aus
dem Internet inspiriert, einen kleinen Konverters gebastelt, der die 77,5
KHz auf 4077,5 KHz umsetzt, die ich dann mit meinem Funkgert empfangen
konnte. Fr den Konverter brauchte ich einen 4MHz-Quarz aus der
Bastelkiste, 5 npn-Transistoren und noch ein paar Teile, auf deren Werte es
nicht exakt ankommt. Zum Empfangen gengt eine Ferritantenne aus einem
alten Radio oder ein einfacher Draht. Der Schaltplan ist in
/usr/share/lfconv.jpg. 

Starte dann dcf77rx (vorzugsweise als root). Man mu im SSB- oder CW- Modus
den DCF77-Sender ziemlich fein auf 1000 Hz einstellen, bis die
Sekundenticks mglichst regelmig erkannt werden. Das gelingt am besten
mit der Option -v 2 oder (nach etwas Training) mit dem Blick auf die
rotierende Linie, 

Nach 1-2 Minuten (unter strungs- freien Bedingungen) sollte das Programm
die DCF77-Zeit ermittelt haben. Von da an warte etwa 15 Minuten und prfe
die Messungen auf. Du kannst sie zur Sicherheit aufschreiben. Aber sie
werden automatisch nach /etc/hf.conf geschrieben.  Sieh dort, ob die
Korrekturwerte glaubhaft und etwa konstant sind,  editiere sie wenn ntig,
die letzten in der Datei werden vom Startskript hf als Optionen fr
hfkernel gelesen.

Dcf77rx hat auch eine Option zum Setzen der Systemzeit zugefgt 
(siehe man dcf77rx).

dcf77rx und auch dcf77gen haben brigens jetzt auch schon eine -n (no 
mmap) -Option. Sie gibt fr den wichtigsten Wert -s bei mir akzeptable
Werte. Die anderen schwanken mehr.

Der Schweizer Zeitnormalsender HBG bei 75 kHz knnte vermutlich auch
verwendet werden, aber wir kennen das genaue Format seiner bertragung
nicht (es scheint dem des DCF77 sehr hnlich zu sein).

Wenn Du 2 Soundkarten aufeinander abstimmen mchtest, auch ber Funk,
knnte ein Partner dcf77gen und der andere dcf77rx laufen lassen.


6.3. reffreq  
  
Wenn Du weder DCF77 noch HBG empfangen kannst, bentze reffreq und eine
bekannte exakte Zeitquelle im Bereich von 20Hz-20kHz. 

Falls dcf77rx schlecht funktioniert, wenn Du aber das DCF77-Signal in AM
empfangen kannst, (2500 Hz), feht damit reffreq -f 2500. Es pulsiert,
aber es funktioniert!

Wenn Du Referenzfrequenzen in Funk oder Radio suchst, kann Dir hfterm's
Spectrum bei der groben Messung helfen. Rate dann einen runden Wert und
lasse reffreq damit laufen. Kennst Du Normfrequenzbaken in Deiner Gegend?
Teile sie mir mit!

Danke an Dave <dalechid@cox.net> fr die Information ber die
USA-Zeitstandardbake WWV, Boulder, Colorado,  die abwechselnd 500 und 600
Hz auf 2.5, 5 and 10 MHz AM sendet!  Also: reffreq -f 500 oder reffreq -f
600. Trotz der 10 oder 25 ms dauernden Pausen und der 5 ms dauernden 1000 Hz 
- Markierungen scheint reffreq gute, genaue Kalibrierdaten zu ergeben. 
Interessante Einzelheiten ber das WWV-Signal gibt es in:
http://www.boulder.nist.gov/timefreq/stations/iform.html 
(Ich wei, es gibt jemand hier, der lt sich von den WWV -Specs in dieser 
Homepage inspirieren, etwas wie dcf77rx fr WWV zu schreiben!)

Wer wei etwas ber JJY in Japan?

Eine in den meisten Haushalten bereitstehende und normalerweise  sehr
genaue Quelle ist die Zeilenfrequenz-Synchronisation eines gewhnlichen
Fernsehempfngers. Die Zeilenfrequenz des ZDF wird auch von Behrden als
Zeitnormal benutzt. 

Stelle Deinen  Fernseher (mit Video-Grundfrequenzausgang) auf einen Kanal
ein und leite den Videoausgang an die Soundkarte. Starte 'reffreq
-f 15625' als root. Nach einigen Sekunden sollte das Programm die 
Korrekturparameter ermittelt haben. (Die oben angegebene Kommandozeile
setzt das PAL-format mit seiner Zeilenfrequenz von 15625 Hz voraus. Fr
andere Formate verwende die entsprechende Frequenz.)

In der CQDL 3/2003, S. 168, ist ein interessanter Artikel von Stefan 
Steger, der beschreibt, wie man aus einem Fernsehempfnger das
Zeilenfrequenzsignal ableiten kann, dazu gibt es eine Schaltung die es in
gerade Normalfrequenzen umwandelt.
(http://home.t-online.de/home/stefan.steger/homepage.html)

Ich konnte auch schon aus dem Koax-Kabel, das einen Satellitenreceiver mit
dem Fernseher verbindet, mit dem Oszillographen die 15625 Hz erkennen.

Reffreq knnte fr eine Kalibrierung ber Funk dienen: Einer setzt bei
hfterm Mark- und Space-Frequenz auf 1000 und sendet RTTY (RTTY TX im
Mode-Men), Funkgert auf AM.  Ein Sinuston 1000 Hz wird gesendet. Der
andere hrt den Ton mit AM und kalibriert mit reffreq -f 1000.


6.4. ratecal1

Dieses Tool stammt auch von Pawel und ist Teil seines MT63, danke!
Ich fge hier seine Anleitung ein:

MT63 ist ein synchronisiertes System and hngt davon ab, da die 
Sampleraten der Soundkarten bei Sender und Empfnger gleich sind. Sie
sollten sich wenigstens nicht mehr als 10^-4 unterscheiden.

MT63 bentzt die Rate 8000 Hz. Wenn Deine Karte bei 8000.5 luft, ist 
es wahrscheinlich kein Problem, aber 8005 Hz ist nicht gut! 

Ein extremes Beispiel ist: Meine Soundman-16 (PAS-16-Klon) 
sagt mir, da sie nur 8008 Hz laufen kann, wenn ich sie um 8000 Hz bitte, 
luft aber wirklich mit 7910.3 Hz, eine Abweichung ber 1% - viel zu viel
fr MT63, auch beim besten Signal-Rausch-Abstand. 
Meine zwei anderen Karten (DSP-16 und Ensoniq 1371) sind vernnftiger: 
Sie weichen 0.3 - 0.5 Hz von 8000 Hz ab.

Um die Samplerate zu messen habe ich das "ratecal1" -Utility
vorbereitet. Es wurde fr den Empfang von Zeitsignalen im Sekundentakt 
auf Kurzwelle konzipiert. Ich verwende die Signale auf 4996.0, 9996.0 
und 14996.0 kHz. 

Ich stimme meinen Empfnger in USB auf 1 kHz unterhalb 
der zu empfangenden Frequenz ab, um 1 kHz-Tne zu erhalten. 

Im Prinzip kann jedes Signal verwendet werden, das eine periodische 
Hllkurve mit bekannter Regelmigkeit hat, z.B. eine AMTOR-/SITOR-Station,
wenn Du die Bezugsperiode mit der Option -T0.450 auf 450 ms nderst.
Was zhlt, ist die Hllkurve um das Signal mit etwa der Frequenz, die
mit -F angegeben wird, und innerhalb der Bandbreite die mit -B gegeben wird. 

Ich stelle also den Empfnger z.B. auf 4995.0 USB ein, 
so da die Pulse als 1kHz-Tne ankommen, schliee die Soundkarte an 
(z.B. /dev/dsp) und schreibe: 
# ratecal1 -d
Nach 10-20 sehe ich die gemessene Samplerate meiner Karte.
Die Rechenfunktion versucht, die Probe mit der kleinsten Abweichung zu 
finden. Das Verfahren ergibt die Samplerate bei 8000Hz auf 0.5 Hz genau an.

Fr grere Genauigkeit erhhe die Zahl der Wiederholungen des Pulssignals:
Gebe -T4.0 fr 4 Sekunden dauernde Vergleichsintervalle ein. Ein Signal
mit der Periode T ist auch periodisch ber die Zeit n * T wenn n eine ganze 
Zahl ist.

Wenn die Abweichung der Samplerate gro ist (wie bei meiner Karte),
sage dem Programm die ungefhre wahre Rate mit der Option -R.
Zum Beispiel lasse ich fr meine Karte einen genaueren Test laufen mit
# ratecal1 -r8000 -R7910 -T4.0 -I40 -B200
Der genaueste Test, den ich jemals gemacht habe, 
lief ber 10 min auf 14995.0 kHz USB und war:
# ratecal1 -r8000 -R7910.3 -T300 -I60.0 -B500 -D4
Nach erfolgtee Kalibration schreibe die zwei Werte auf:
Die angeforderte Rate (-r) und die wahre Rate, die Du erhalten hast.
Versuche verschiedene angeforderte Raten, um die wirkliche Rate nahe an 
die von Dir gewnschte zu bekommen. Zum Beispiel mute ich fr meine
Karte 8100 Hz anfordern, um die wirkliche Rate 8018.2 Hz zu bekommen, 
die am nchsten an den 8000 Hz ist, die ich fr meine Anwendungen brauche.

Die Zeitsignale auf 4996, 9996 and 14996 kHz sind nicht ideally periodisch,
weil manche Pulses lnger, manche doppelt sind. Das beeintrchtigt 
die Genauigkeit der Kalibration.
Die Pulse werden auch nicht den ganzen Tag ber gesendet, so da wir nicht
zu lange Zeit messen knnen. Doch ist eine Bestimmung der Rate mit einer 
Abweichung von etwa 10^-5 mglich.

Wenn Du die wirkliche Samplerate weit, kannst Du sie fr MT63 
mit der -R -Option angeben. Wenn Du fr Deine Karte /dev/dsp2 
die Rate 8010.5 Hz gemessen hast schreibe:
# mt63trx -d2 -R8010.5
Ich tat das fr meinen PAS-16-Klon und er arbeitet gut mit MT63
trotz der 1% -Abweichung.
Wenn Deine Karte nicht auf 8000 Hz arbeiten kann, bist Du nicht ganz 
verloren. Wenn z.B. /dev/dsp1 nur 9600 Hz samplen kann und aber bei 
der Anforderung 9600, in Wirklichkeit 9605.4 Hz samplet (gemessen mit 
ratecal1), schreibe fr den MT63-Empfang:
mt63rx -d2 -r9600 -R9605.4
Mt63rx wird den Soundtreiber bitten, mit 9600 zu samplen, und dabei
wissen da es eigentlich 9605.4 meint, und die Rate umrechnen.
Im Idealfall sollte jeder OP die Samplerate seiner Soundkarte wissen
und die Korrektur beim Senden und Empfangen angeben. So htte jedes Signal 
auf dem Band sein richtiges Timing und knnte von jedem gelesen werden.
(Danke, Pawel!)

Ich (Gnther) verglich ratecal1 mit den 2 anderen  Abstimmprogrammen und
erhielt gleich gute Ergebnisse.  Pawel teilte mir mit, da die erwhnten
Pulssignale auf 4996.0, 9996.0 und 14996.0 kHz aus Ruland stammen. Ich
konnte sie hier bei meinen Tests nicht empfangen, aber ratecal1
funktionierte gut mit den gepulsten Signalen von der DCF77-Bake. Wenn ich
die `offizielle` Samplerate meiner Soundkarte durch die  wirkliche, durch
ratecal1 ermittelte, teile, erhalte ich den selben "soundcorr" -Faktor (bei
mir z. B. 1, 0011) wie bei den anderen  2 Tools, auf 10^-4 genau, was
gengt.

Auch ratecal1 knnte fr eine Kalibrierung ber Funk dienen: 
Einer sendet Amtor ARQ oder Pactor ARQ, 
(oder sogar dcf77gen, das aber noch keinen Korrekturfaktor als
Option verarbeiten kann!) der andere kalibriert mit 
# ratecal -d -T0.45 (fr Amtor), -d -T1.25 (fr Pactor)
oder -d fr dcf77gen.


6.5. Schtzen der Samplerate mit dem Gehr und ratetry

Ich hatte ein Abenteuer mit meinem Laptop (150 MHz Pentium 1, nur 14 MB
RAM!), Ich mu Euch das erzhlen. Es hilft wenn Ihr auch so alte Hardware
habt... Hf und auch MT63 geht mit dem Laptop, aber die Kalibriertools gehen
schlecht,  sie brauchen viel Speicher und Prozessorlast!  Das Laptop hatte
in meinen Tests mit 2 verkabelten Computern  mit Pactor und Amtor gut
funktioniert, aber kein einziges Zeichen mit MT63 decodiert. Keine Idee wie
seine wirkliche Samplerate war! Ich schrieb das Skript ratetry (schau es
Dir an, Du kannst es nach Bedarf  ndern, es versucht einfach mit
wirklichen Sampleraten von... bis..., die als Option gegeben werden, MT63
zu senden.) Ich versuchte es erst um 8000 herum, kein Erfolg. In meiner
Verzweiflung fiel mir ein sehr primitiver erster Test ein, der nur mit dem
Gehr funktioniert: Ich sagte beiden Computern, mit  
# mt63tx -d -C_____T____ MT63 
mit einem einzelnen 'dah' (T) in 9 Leerrumen als CW-Id zu senden. Nun
hrte ich den Unterschied: Das Laptop waw viel schneller, es berholte  den
anderen Computer. Es klang wirklich wie der kleine Fuchs, der ber den 
faulen Hund springt.  Nun riet ich die wirkliche Rate vom Laptop: 8100,
8200, 8300... und sendete MT63 damit mit   
# mt63tx -d -C_____T____ -R8100
u.s.w. Mit R8300 klangen die 2 'dahs' in etwa gleichem Rhythmus. So
konnte ich, whrend  ratetry 8200 8350  lief, mit dem anderen Computer
zwischen Laptop's "wirklicher Rate"  8241 and 8335 Daten empfangen.
Versuchsaufbau luft, Projekt kann weitergehen.



7. Mailbox :
=============

7.1. Prinzip

hfterm hat einen TCP-IP-Portanschlu. Jedes Programm, das
"internetfhig" ist, also ber 'telnet <host> <port>' erreichbar ist,
kann prinzipiell von einem entfernten Partner ber angesteuert werden, 
wenn Du es so einrichtest. Siehe man inetd oder  /etc/services, um zu
sehen was auf Deiner Kiste so alles luft... 

Du kannst Deinen Computer mit hf fernsteuern... Znde nicht die
Fernraketen!


7.2. Erster Test des TCP/IP - Ports mit portecho:

Hf ist als F6FBB-Mailbox gedacht. Aber falls Du F6FBB noch nicht kennst,
ein schneller erster Test: Es gibt ein Testprogramm "portecho". Es gibt
einfach das, was es hrt, in Grobuchstaben zurck, es ist auch hflich,
grt und verabschiedet sich. 

Starte portecho mit einer Portnummer als Option: 
# portecho 3333 
Teste von einer anderen Konsole, ob es luft, mit 
# telnet localhost 3333. 

Dann setze im Config-Men von hfterm den Port auf 3333. Starte in hfterm
mit <Alt>++M die Mailboxfunktion. Durch Schreiben ins Empfangsfenster
kannst Du die ersten Tests machen, am besten in RTTY  oder Pactor-FEC
oder Amtor-FEC oder MT63.

Wenn Du hf auf 2 Computern mit gegenseitig verkabelten Soundkarten 
laufen lassen kannst, versuche doch einen Pactor- oder Amtor-Connect 
herzustellen, und lasse auf einem der beiden Computer hf im 
Mailbox-Modus mit Portecho laufen!


7.3. Konfiguration von F6FBB

hfterm kann ber das TCP/IP-Protokoll (das heit, ber seinen telnet-Port)
Verbindung zu dem hauptschlich im Packet Radio bekannten und bewhrten
Programm F6FBB aufnehmen. Dies kann auf dem gleichen, oder auf einem ber
Ethernet oder PLIP verbundenen anderen Computer installiert sein. Falls
Computer und Port fr F6FBB anders sein sollen als die Vorgabe (Localhost =
127.0.0.1 = derselbe Computer, Port 6300, wie fr F6FBB blich), bitte das
in /etc/hf.conf ndern. Aber wenn es geht, bleibe bei Port 6300, dann ist
in hfterm ein fr F6FBB optimierter spezieller Code aktiv, der Bugs von
F6FBB umgeht und beim  Pactor-Connect automatisch das Call des Partners an
F6FBB weitergibt.

Einiges ist als Vorbereitung in nur 5 Konfigurationsdateien und einer
Binrdatei zu ndern. Nicht erschrecken, ich helfe Dir. Logge Dich auf
einer Konsole als root ein. Falls xfbbd schon luft (prfe es mit ps -ax)
beende es mit killall xfbbd. Zum Testen nach den nderungen starte es
wieder mit `xfbbd`.

Also, es geht ganz einfach los:


7.3.1. /etc/ax25/fbb/passwd.sys:

Ersetze das Passwort nach der Zeile
#PASSWORD OF ALL NON DEFINED CALLSIGNS.
einfach durch eine leere Zeile!


7.3.2. /etc/ax25/fbb/port.sys:

Die nderungen sind mit Pfeilen markiert.
# FBB7.00
#
#Ports TNCs
 1     1				<-----	
#
#Com Interface Adress (Hex) Baud
 8   9         189C          0		<----- (189C hex. = 6300 dec.) 
#
#TNC NbCh Com MultCh Pacln Maxfr NbFwd MxBloc M/P-Fwd Mode  Freq
 0   0    0   0      0     0     0     0      00/01   ----  File-fwd.
# 1   8    9   ax0    250   3     1     10     30/60   XUWYL Linux
 2   8    8   0       250   2     1     10     0/60   TUR  # hf_telnet   <-----
#
# End of file.
#

(Diese port.sys ist nur fr hf konfiguriert. Wenn schon andere Ports 
/TNC's da sind, mu fr hf einfach je 1 Port / TNC zu den bestehenden
addiert werden. Die anderen mit Pfeil markierten Zeilen mssen fr hf
zustzlich eingefgt werden.)


7.3.3. /etc/ax25/fbb.conf:

(in lteren F6FBB-Versionen war das init.srv)

#
# FBB Set-up file
#
version = FBB7.01
callsign = DL4MGE.BAY.DEU.EU  			<-----   
# Qra Locator of BBS
locator = JN58NG				<-----
qral = JN58NG					<-----
# Qth of BBS
city = Baindlkirch				<-----
# First name of SYSOP
name = Guenther					<-----
# Callsign of SYSOP
sysop = DL4MGE					<-----
# Callsign (and route if needed) that will have copy of SYSOP messages
sysmail = DL4MGE				<-----
# Wait for informations (Name, HomeBBS, Qth, ZIP)
askinfo = NO 		(whle eins davon)	<-----
#askinfo = OK		( "    "     "   )	<-----				
# First connection mask :
# 0  : Disable
# 1  : Excluded
# 2  : Local				
# 4  : Expert	
# 8  : Sysop
# 16 : BBS
# 32 : Pagination
# 64 : Guest
# 128: Modem				
# 256: See-all-messages
# 512: Unproto list asking is allowed
# 1024: Liste des messages nouveaux.
# original was: mask = 3616
# orig + 2 + 128 means: plus local and modem    
mask = 3746 					<-----

Das wichtigste ist "mask" - addiere zur vorgegebenen "mask" 130. Das ist: 2
fr 'Local' und 128 fr 'Modem'. Dann kann sich ein User "local" (wozu auch
das IP und telnet zhlt) einloggen und hat Zugang zum "Modem", das ist auch
ein TNC, und hfterm  wird von F6FBB als TNC betrachtet. Nun kann ein neuer
Benutzer beim zweiten Einloggen Mails verschicken, ohne da der Sysop 
aktiv werden mu.

3746 ist brigens  2 + 32 + 128 + 512 + 1024 + 2048.
Es geht aber auch nur mit mask = 130, also  2 + 128!


7.3.4. /etc/ax25/fbb/lang/english.ent:

Ersetze die Datei english.ent durch eine leere Datei.


7.3.5. /etc/ax25/fbb/lang/english.txt: 

Du solltest die Botschaften fr Kurzwelle anpassen, das heit krzen! Ich
habe nun herausgefunden, wie man diese Datei ndert, ohne F6FBB  verrckt
zu machen: Es ist ganz einfach wichtig da die Zahl der Zeilen 287 bleibt!
Dabei werden Zeilen, die mit einem Kommentarzeichen ('#, wie in
Shellscripten) nicht mitgezhlt. Also kannst Du einfach eine Zeile mit #
auskommentieren (lsche sie nicht,  das hilft Dir spter beim Debuggen),
dann kopiere und verndere sie. Das '$W' bedeutet, da F6FBB eine neue
Zeile anfngt.  Einige der Zeilen (in denen F6FBB nach Name, 
Heimat-Mailbox, Stadt usw. fragt) hngen von Deiner Einstellung in 
/etc/ax25/fbb.conf bei "askinfo" ab: Nur newlines bei 'askinfo=NO', (ganz
leere Zeilen ergeben hier Fehler)  und z.B.  "Name ? " bei 'askinfo=OK'. 
Ich liefere meine english.txt in /usr/share/<doc>/hf mit. Schau sie an, 
editiere sie nach Deinen Wnschen und kopiere sie als root an ihren  Platz
in /etc/ax25/fbb/lang.


7.3.6. Verndern der Binrdatei /usr/sbin/xfbbd:

Und nun die gefhrlichste Operation. Medizinstudium erforderlich. ( ;-) )
Schon mal eine Binrdatei gehackt? Es geht ganz einfach: Es geht um die
erste Meldung von /usr/sbin/xfbbd, die ist nmlich im Programmcode
'hartcodiert', aber sie pat nicht mehr fr unser hf. Wenn sich ein neuer
user bei F6FBB einloggt, kommt die Meldung 

Login in read-only mode. 
You may leave a message to SYSOP.

Diese Meldung aber pat viel besser und ist klarer:  

First login to register. 
You can send mail at next login!

Wie geht das? Mache zuerst auf jeden Fall eine Sicherheitskopie von
usr/sbin/xfbbd. (Die Binrdatei kann durch nur ein Zeichen zu viel
unbrauchbar werden!) Dann ffne xfbbd mit einem  Editor, z.B. mcedit, am
besten im berschreibmodus. Suche (mit F7 bei mc) nach 'SYSOP'.
berschreibe nur die zwei Begrungszeilen, nicht mehr! Die erste Zeile
hat 24 Zeichen, die zweite 33. Bei mir ging es!

F6FBB zu konfigurieren, ist manchmal "kryptisch", aber es ist ein gutes und
stabiles Programm. Ich mute ein bichen knobeln um das alles
herauszufinden! Danke an alle  Freunde von der F6FBB-Mailingliste
xfbb@f6fbb.org und fr die gute Dokumentation:
http://www.f6fbb.org/fbbdoc/doc.htm und natrlich fr F6FBB selbst an  den
Autor Jean-Paul Robeller selbst!


7.3.7. F6FBB testen:

Nun kannst Du F6FBB mit `telnet localhost 6300` testen. Es mu mglich
sein, sich mit einem Rufzeichen einzuloggen, sich zu registrieren, 
auszuloggen, und beim nchsten login Mails zu senden und zu lesen. 

Nun ist das Starten der hf-Mailbox ganz einfach: Starte als root xfbbd, 
dann starte hf als normaler user, dann (wenn Du willst) aktiviere die
Mailbox-Bake (Fixtext 10, Alt-F10), dann aktiviere die Mailbox mit <Alt>+M
oder ber das State-Men, und es luft!

Die Verbindung hfterm <--> F6FBB kann nun durch Schreiben ins Empfangs-
Fenster getestet werden (im Modus Standby Pactor only, dann wird in
Pactor-FEC gesendet, oder im Modus MT63.) So kannst Du den Login eines
entfernten Bentzers simulieren, ohne 2 Computer verkabeln oder eine
Verbindung ber Funk machen zu mssen.

Ein Pactor-Connect mit dem Call im Men Utilities/Parameters/Pactor/Mycall
oder ein Amtor-Connect mit dem Call in ../Amtor/Mycall ffnet die Mailbox.
In FEC-Modes mu der Partner das Call, das in 'Personal Edit` (brag) 
konfiguriert ist, rufen.

Ich habe die Mailbox mit 2 Computern mit verkabelten Soundkarten  mit
Pactor FEC, Pactor ARQ, Amtor FEC und Amtor ARQ mit gutem Erfolg getestet.
Mit RTTY und MT63 geht sie jetzt manchmal mit viel Glck und Geduld, aber
ist doch sehr stranfllig, und das verwirrt F6FBB. (Die Squelch-Funktion
mu fr FSK eine kleine und fr MT63 eine ziemlich groe Zeitverzgerung
haben und lt daher noch am Anfang und Ende jedes Sendezyklus etwas Mll
durch!) Also warten wir doch besser auf den MT63-ARQ-Modus, der in
Entwicklung ist!

Beachte beim Betrieb einer automatischen Mailbox-Station die Bestimmungen
Deines Landes!

Aber das wre doch was mit einer ptc-freien, microsoft-freien, vllig mit
freier Software laufenden Mailbox in Eurer Clubstation?


7.4. hf als selbstkonfigurierte automatische Station 

Du kannst jedes Programm, das ein Konsolenprompt hat, als
Internet-Dienst einrichten und mit hf ber Funk ansprechen. 

Ich machte ein kleines Beispiel-Skript 'hftcp', es kann Deine Mails
lesen und senden (mit dem Programm 'mail'), und es kann fr alles was Du
willst konfiguriert werden, siehe die Beispielbefehle wie etwa die
Friedensbotschaft. Es kann sogar eine Shell erffnen (gefhrlich!). So
kannst Du mit hf Deinen Computer fernsteuern... Znde nicht die Raketen!

Teste das Skript auf einer Konsole, um zu sehen was es tut. Du kannst es
editieren und nach Deinem Geschmack verndern. Du knntest z.B. den
Mail-Lese-Modus erweitern, indem Du zuerst eine Internetverbindung
startest, mit fetchmail Deine Mails nach /var/mail/<Dein-user-name>
schaufelst, und dann 'mail' laufen lt. So kannst Du Deine Mails ber
Funk bestellen. (nicht in jedem Land erlaubt)

Nun schaue ob Port 3333 auf Deinem Computer frei ist mit 
# netcat -z localhost 3333 && echo nicht frei
oder
# telnet -e# localhost 3333
Wenn nicht, suche einen anderen.

Um hftcp mit hf zu verwenden, mut Du (als root) nur eine Zeile in
/etc/inetd.conf schreiben: 
hftcp	stream	tcp nowait	root /usr/bin/hftcp	hftcp 
und eine in /etc/services:   
hftcp           3333/hftcp   

Dann starte hftcp auf einer Konsole, teste es von einer anderen mit
netcat localhost 3333
Dann, wenn o.k., setze in hfterm den Port z.B. auf 3333 (Config-Men)
schalte zum Mailbox-Modus mit <Alt>+m, und es luft.



8. Liste aller im Paket enthaltenen Programme :
===============================================

    Alle werden in /usr/bin installiert:
   
    hfkernel, 
    hfterm:		Die 2 Hauptprogramme.
    hf: 		Das Startskript fr beide.
    elbug:		Konsolenprogram fr elektronische Taste. 
    paccalc:		berechnet den Datendurchsatz fr Pactor
    channel:		Simulator fr die bertragung auf Kurzwelle.
    dcf77rx:		Berechnet Uhr-Korrektur aus DCF77-Zeitnormalsignal
			Setzt auch die Systemzeit, siehe man dcf77rx.
    dcf77gen:		erzeugt DCF77-Signal, siehe man dcf77gen.
    reffreq:		Berechnet Uhr-Korrektur aus Referenzfrequenz 
    portecho:		Einfaches TCP-Testprogramm fr den Mailbox-Modus.
    hftcp:		Einfaches TCP-Testscript fr Fernsteuerung.
            
    und: (neu!) Pawel Jalocha's MT63 -Suite als 
    Konsolenprogramme, mit vielen experimentellen Features:
    
    mt63rx:		empfngt MT63
    mt63tx:		sendet   MT63
    mt63trx:		tut beides 
    ratecal1:		berechnet wirkliche Samplerate aus pulsierendem Signal
    addnoise:		setzt Rauschen auf Audio-Datei, experimental
    morsecod:		wandelt digitales in lesbares Morsealfabet
    peakrms:		Tools zum Untersuchen von MT63-Audiodateien
    ratetry:		Script testet von mt63tx mit verschiedenen Sampleraten 

    Weitere Testprogramme in den Unterverzeichnissen test und util des
    hf-Quelltext-Verzeichnisses. 
    Hilfe: Rufe die Programme ohne Optionen auf!
    (Bei Pawel's Programen: kein Zewischenraum zwischen Optionen und 
    Argumenten.)


9. Verzeichnis der Hilfetexte :
===============================
    
Bis jetzt gibt es Hilfe auf deutsch und englisch. 

bersetzungen in andere Sprachen sind willkommen!

Die Texte warten im Programm-Verzeichnisbaum unter /doc auf den
geneigten Leser, und kommen bei der Installation ins Verzeichnis 
/usr/share/hf 
und, je nach Distribution, in 
/usr/share/doc/hf oder
/usr/share//doc/packages/hf. 

Die wichtigsten Texte sind ber das Hilfe-Men von hfterm (F1) erreichbar.
   
  
    DEUTSCH:
    ========
   
    DE-HF-HOWTO.txt	(dieser Text, 
                        enthlt nun auch den Inhalt von 
			man hfkernel-de und man hfterm-de)
    pactor.txt		(gute Erklrung von Pactor, H.-P. Helfert et al.)
    pactor.ps		(wie oben in ps, drucke es mit lpr pactor.ps)
    dcf77.txt		(Langwellen-Zeitnormal fr Kalibrierung)

    deutsche manpages:
    man hfkernel-de	
    man hfterm-de   	
   
    ENGLISCH:
    =========
   
    HF-HOWTO.txt	(wie dieser Text)
    P-MB-list.txt	Liste der Pactor-Mailboxen von Jost, ZS5S
    english.txt		Beispiel fr /etc/ax25/fbb/lang/english.txt.
    mt63.txt		Pawel Jalocha's original MT63 doc

    englische manpages:
    man hf, man hfkernel, man hfterm, man dcf77gen, man dcf77rx  	


    BILDER :
    ========
    lfconv.jpg		Schaltplan von  DL4MGE's Langwellen-4 MHz-Konverter


10. TODO :
==========

MT63 ARQ. Es gibt einen (englischen) Vorschlag fr ein neues MT63 ARQ
System von Paul L. Schmidt <k9ps@arrl.net>. Zu finden auch im Archiv der
hfterm-hackers-Liste. Kann als pdf downgeloaded werden. Rein (Pa0OR) hat
schon eine ARQ-Modus fr gMFSK gemacht. Diskussion in hfterm und linlink
mailinglists.

CW: Encoder und Decoder aus gMFSK einbauen.

MAILBOX:
luft seit 0.6, testen, verbessern optimieren!
Bitte mailt Eure F6FBB-Konfigurationen, besonders fr Packet-Anschlu!

NOCH MEHR MODES:  
Ich hatte viel Spa daran, MT63 zu implementieren, 
obwohl es auch sehr harte Arbeit war. Aber ich habe viel gelernt. Fr
einen neuen Mode mu ich an etwa 20 Dateien plus header etwas ndern:
Button, Menitem, Parameter-Seite, Parameter-Struct, Struct msg, Struct
Parameter in hfkernel/msg.h, autorx, autotx,  Thread fr den mode,
Botschaften definieren, Mailbox.c, Doku...
Pactor 2 und 3? Das wre m.W. neu und wrde das
Programm noch wertvoller machen. Weil  ein PTC-2 usw. sehr teuer ist.
Aber: Pactor 2 und 3 sind kommerziell,  urheberrechtlich geschtzt.  300
Baud Packet? (gibt es das schon fr Linux?)   PSK 31 - es gibt
mindestens 5 gute PSK-Programme fr Linux, aber:  es ist sehr beliebt! 
MFSK? Aber ich mchte keine Konkurrenz zu dem guten Program gMFSK,  und
auch nicht das Rad mehrmals erfinden, sondern in hf eher den Schwerpunkt
auf ARQ-Modes, emcomm, Mailbox legen. 

LOG:
Einfhrung eines Contest-Zhlers, der sich bei jedem QSO um 1 erhht.
Pat Dir das Format in der Log-Datei? (Ich machte 2, Binrdatei zum 
Wiedereinlesen durch das Programm, Ascii-Datei zum Drucken 
/Weiterverarbeiten.) (Mit sprintf... kannst Du in  hfterm/src/log.c in
Funktion log_store die Ausgabe leicht ndern!). Wer kennt sich mit
Logformaten besser aus?  Jeder Contest mchte ein etwas anderes
Cabrillo-Format! Weitere Formate zum Speichern z.B. ADIF? Vielleicht
wre es aber die bessere Idee, hfterm mit einem bestehenden  Logprogramm
zu verbinden!  (Z.B. "hamlog", in SuSELinux 8.1. enthalten - das einige
schne Features, z.B. Suchfunktionen hat, allerdings ein ganz eigenes
Format 'Call|Name|QTH|RST|Band....' verwendet.!) ("X-Log" soll gut sein
aber nicht bei SuSE laufen).

WORLDMAP:
Axel macht was tolles: Zeigen der QTHs mit Hilfe von Daten aus dem Log.
Die Karte bereits von Axel vorbereitet, in hfterm/src/main ist die 
Berechnung des pixmaps auskommentiert (if MAP...endif) weil der 
Programmstart bei (m)einem langsamen Computer sonst 10 Minuten dauert.
Axel arbeitet an diesem Feature im Moment im Rahmen seiner 
Weiterentwicklung des Programms "Baken". Habe das Pixmap ausgebaut. (3
MB...)

HILFE:
bersetzungen...
Dokumentation in HTML....
Erfahrungsberichte mit den Modes, und Dokumentationen!


11. Schluwort :
================
 
Das Programm hat noch einige BUGS,  manche sind auch FEATURES,  nicht
brllen, besser warten, noch besser reporten,  am besten mitprogrammieren
(Siehe 'TODO')! Mich selbst hat dieses Programm inspiriert, c zu lernen,
ich habe sehr viel gelernt (alles, was ich hier geschrieben habe, wute ich
vorher auch nicht!) und es hat mir bisher (meistens) viel Spa gemacht !

Ich hoffe Tom und Ihr alle werdet es mgen.
Viel Spa!


Gnther Montag DL4MGE

00000000000000000000000000000000000000000000000000000000000000000000000


AUTOREN

Thomas M. Sailer	HB9JNX/AE4WA	Mail: sailer@scs.ch
			
Ralf-Axel Krause	DF3JRK		http://www.df3jrk.de.vu
					Mail: df3jrk@gmx.de	
					Packet: df3jrk @ df0hmb.#hh.deu.eu

Gnther Montag		DL4MGE  	Mail: dl4mge@darc.de
 					Packet: dl4mge @ db0zka.#bay.deu.eu

Pawel Jalocha		SP9VRC		Pawel.Jalocha@cern.ch	
	
Homepage des Projekts, neueste Meldungen und neueste Version:
	http://hfterm.sourceforge.net	
	(Link: www.hfterm.de.vu)

Bitte trage Dich UNBEDINGT als Mitglied der mailing list ein bei:	
	https://lists.sourceforge.net/lists/listinfo/hfterm-hackers

Bitte alle Fragen und Bugmeldungen NUR an die mailing list:
	hfterm-hackers@lists.sourceforge.net
	
