mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-24 11:29:10 +00:00
143 lines
6.5 KiB
Plaintext
143 lines
6.5 KiB
Plaintext
MINI INFO:
|
|
The following info pertains mainly to SunOS4.x in respect to installation.
|
|
Installation for SunOS5.x (Solaris 2.x) is very simple - just drop the parse
|
|
module into /kernel/strmod.
|
|
All others notes about the software structure refer to both environments.
|
|
|
|
#ifdef ENGLISH
|
|
Installation of a Streams module requires knowledge in kernel generation
|
|
and possession of "superuser" rights.
|
|
|
|
This directory contains the STREAMS module code for the supported DCF/GPS
|
|
receivers of the "parse" driver.
|
|
The dataformat should be easy to adept for other clocks.
|
|
|
|
A suitable kernel module can be generated in two ways:
|
|
1) loadable driver
|
|
2) linking into the kernel
|
|
|
|
Solution 1 has the advantage that the kernel module is present right at system startup,
|
|
while solution 2 avoids reconfigurating the kernel (except for VDDRV).
|
|
|
|
Loadable Driver: (Kernel must be configured with VDDRV option like e.g. GENERIC)
|
|
make -f Makefile.kernel
|
|
|
|
# make one module for each kernel architecture you intend to use this module for
|
|
|
|
make -f Makefile.kernel mparsestreams.o
|
|
# use the above command for a version with increased time stamp precision
|
|
# (available only for sun4c and sun4m architectures (thanks Craig Leres)
|
|
|
|
Integration into kernel (refer to the Manual for complete instructions)
|
|
Still possible, but not recommended
|
|
|
|
if you run into trouble: time@informatik.uni-erlangen.de
|
|
|
|
Porting to different clock formats:
|
|
The streams module is designed to be able to parse different time code
|
|
packets. The parser is very simple and expects at least a start or end of packet
|
|
character. In order to be able to distinguish time code packets a list
|
|
of several start/end pairs and conversion routines can be defined in the
|
|
clockformats structure. Whenever a packet delimited by any start/end pair is
|
|
detected the conversion routines are called in a RR fashion for converting the
|
|
time code into a clocktime structure. A return code of CVT_OK indicates a
|
|
correct conversion.
|
|
(This routine will be called first on the next conversion attempt). CVT_FAIL
|
|
indicates the the packet format was detected, but the actual conversion failed
|
|
(e.g. illegal time codes). A CVT_NONE indicates that this conversion routine
|
|
did not recognize the packet format.
|
|
See the simpleformat conversion routines for Meinberg clocks for examples.
|
|
It might be possible to parse other periodically sent time codes with a fixed
|
|
format with these simple conversion routines.
|
|
The parser can be found in parse/*.c
|
|
|
|
The actual STREAMS module is parsestreams.c. It contains some fudge factors.
|
|
These are needed if a PPS hardware signal is sampled via the serial CD input.
|
|
There are some emperically determined valued for sun4c type machine in there.
|
|
Measurements have shown, that for full precision these values have to be
|
|
determined in the actual environment, as line lengths and capacities DO matter.
|
|
So for absolute precision you need a good oscilloscope and the license for
|
|
hardware work.
|
|
WARNING: DO NOT ATTEMPT TO MEASURE IF YOU ARE NOT ABSOLUTELY CERTAIN WHAT YOU
|
|
ARE DOING.
|
|
|
|
This instructions are distributed in the hope that they will be
|
|
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
I will not be in any case responsible for any damage cause by this
|
|
Software/Instruction.
|
|
|
|
USE AT YOUR OWN RISK.
|
|
|
|
#else
|
|
|
|
Die folgenden Hinweise zur Uebersetzung und Installation besiehen sich auf
|
|
SunOS 4.x (Solaris1.x). Die Installation auf SunOS5.x (Solaris 2.x) gestaltet
|
|
sich erheblich einfacher. Man muss nur die Daten "parse" in dem Verzeichnis
|
|
/kernel/strmod ablegen.
|
|
Alle anderen Hinweise zur Softwarestruktur sind fuer beide Umgebungen gueltig.
|
|
|
|
Installation eines STREAMS Moduls setzt Kenntnisse in der Kerngenerierung
|
|
und "Superuser"-Rechte vorraus.
|
|
|
|
Dieses Inhaltsverzeichnis enthaelt das aktuelle Streams Modul fuer Sun.
|
|
|
|
Man kann dieses Modul auf zwei Weisen in den Kern integrieren:
|
|
1) direkt durch Einbinden (neuer Kern)
|
|
2) als ladbarer Treiber
|
|
|
|
Loesung 1 hat den Vorteil, dass das Modul gleich nach Systemstart zur
|
|
Verfuegung steht.
|
|
Loesung 2 besticht dadurch, das man das Modul nachtraeglich laden und
|
|
auch debuggen kann, ohne einen neuen Kern zu booten.
|
|
|
|
Fuer ein ladbares Modul muss der Kern mit der VDDRV option konfiguriert sein und das
|
|
parsestreams.c muss mit -DVDDRV uebersetzt werden.
|
|
|
|
Uebersetzung fuer ladbaren Treiber (Kern muss mit VDDRV konfiguriert sein):
|
|
make -f Makefile.kernel
|
|
bitte einmal fuer jede Kernelarchitektur, fuer die dieses Modul
|
|
benoetigt wird durchfuehren.
|
|
|
|
make -f Makefile.kernel mparsestreams.o
|
|
Das obige make erstellt eine Version, die die Rechneruhr besser
|
|
als SunOS abliest. Nur fur sun4c und sun4m Architekturen verfuegbar
|
|
|
|
Uebersetzung als .o Modul oder vorherige Einbindung in die Kernbauumgebung:
|
|
Immer noch moeglich, wird aber nicht mehr empfohlen.
|
|
|
|
Anpassung an andere Datenformate:
|
|
Das Streamsmodul ist in der Lage verschiedene Datenformate zu erkennen und
|
|
umzusetzen. Der Parser ist einfach gehalten und kann Datenpakete anhand von
|
|
Start und Endekennzeichen unterscheiden. Jedes so erkannte Paket wird einer
|
|
Liste von Konvertierroutinen vorgelegt (clockformats Struktur). Die
|
|
Konvertierroutinen koennen mit drei verschiedenen Rueckgabewerten angeben,
|
|
wie die Konvertierung verlaufen ist. CVT_OK heisst, dass die Konvertierung
|
|
in die clocktime Struktur erfolgreich verlaufen ist. Beim naechsten
|
|
Umsetzungsversuch wird diese Routine als erstes wieder befragt werden
|
|
(Optimierung). CVT_FAIL bedeutet, dass zwar das Format erkannt wurde, aber
|
|
die eigentliche Konvertierung fehlgeschlagen ist (z. B. illegale Feldwerte).
|
|
CVT_NONE heisst, dass das Format dieser Konvertierroutine nicht erkannt wurde.
|
|
Die simpleformat Routinen fuer Meinberg Uhren koennen als Vorlage fuer eigene
|
|
Anpassungen an Uhren mit periodischem Zeittelegramm und festem Format genommen werden.
|
|
Der Parser ist in parse/*.c zu finden.
|
|
|
|
Das eigentliche STREAMSmodul ist parsestreams.c. Es enthaelt einige
|
|
Korrekturfaktoren, die beim Einsatz von Hardware-PPS Signalen benoetigt werden.
|
|
Einige empirische Werte fuer sun4c Maschinen sind schon vorgegeben. Bei exterm
|
|
hohen Genauigkeitsanforderungen muessen diese Werte aber in der aktuellen
|
|
Installation NEU ermittelt werden, weil die Zeiten unter anderem von
|
|
Leitunglaengen der PPS Leitung abhaengen. Wenn Sie diese Abstimmung
|
|
durchfuehren, benoetigen Sie ein gutes Oszilloskop und die Lizenz fuer
|
|
Hardwarearbeiten.
|
|
|
|
ACHTUNG: VERSUCHEN SIE NICHT DIESE MESSUNGEN ZU MACHEN, WENN IHNEN DIE
|
|
VORAUSSETZUNGEN DAFUER FEHLEN !
|
|
|
|
WIR GEBEN KEINE GARANTIEN
|
|
|
|
Bei Schwierigkeiten email an: time@informatik.uni-erlangen.de
|
|
|
|
#endif
|