- Re-added leafsite subdir (old FAQ)
|
@ -0,0 +1,34 @@
|
|||
Gentle Reader,
|
||||
|
||||
in this archive you find a complete easy-to-use tutorial concerning ISDN
|
||||
and syncPPP. You also find a lot of advices to build up a comfortable
|
||||
"leafsite": how to install an offline email system, an offline Usenet
|
||||
server, an answering machine, how to make "fax on demand" and how to
|
||||
create a fax machine (may be, some of these things come later).
|
||||
|
||||
*All* files within this archive are copyright (C) under the terms of the
|
||||
Gnu General Public License, Bernhard Hailer, 1996. You will find the text of
|
||||
this license within this archive (gnulis_e.html, or in German gnulis.html).
|
||||
You may distribute this archive and vary it, but do not remove my name,
|
||||
the names of the other involved authors, the README file or the GPL copyright
|
||||
notices. Please pass me a note, if you want to publicate or vary the package.
|
||||
|
||||
LYNX users: please load index.html (German) or index_e.html (English).
|
||||
|
||||
In the subdirectory "scripts" are some script files (as described in the
|
||||
WWW pages). They are mostly ready-to-use. There also is a database of provider
|
||||
data. I would be pleased if you send me your entries.
|
||||
|
||||
In the subdirectory "FAQ" is the complete ISDN4linux FAQ, compressed (MS-DOS
|
||||
PKZIP and Linux GNUZIP) and uncompressed. Please read it carefully before
|
||||
asking questions to me or to the ISDN4Linux mailinglist (see tutorial).
|
||||
|
||||
Have fun!
|
||||
Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de> 23-Nov-96
|
||||
|
||||
PS: I would be glad about criticism or bug reports!
|
||||
|
||||
--... ...-- . ... --. .-.. -.. . -.. .-.. ....- -- .... -.- -.-
|
||||
_ Tel ++49-89/5902-248; home: Tel/Fax ++49-8178/5634
|
||||
|_) |_| http://www.lrz-muenchen.de/%7Eui161ab/
|
||||
|_)ERNHARD | |AILER DL4MHK (hams: http://www.dl0tum.vo.tu-muenchen.de/)
|
|
@ -0,0 +1,440 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Audio
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="audio.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Ein Anrufbeantworter</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
|
||||
<FONT SIZE=+3><B>M</B></FONT>an
|
||||
kann schon feine Sachen machen mit seinem Linuxmaschinchen! Wer hätt's
|
||||
gedacht - inzwischen kann man relativ einfach sogar einen Anrufbeantworter
|
||||
selbst basteln. Die Grundlage zu dieser Anleitung bildet eine email, die mir
|
||||
dankenswerterweise
|
||||
<A HREF="mailto:hessler@wi-inf.uni-essen.de?subject=vbox-Anleitung">Matthias
|
||||
Heßler</A> geschickt hat - vielen Dank für die Erlaubnis, das
|
||||
übernehmen zu dürfen!
|
||||
<P>
|
||||
|
||||
Ein paar Voraussetzungen gibt es allerdings:
|
||||
<UL>
|
||||
<LI> Eine Soundkarte muß installiert sein und unter Linux laufen.
|
||||
Bei Eingabe von <TT>ls > /dev/audio</TT> sollte ein kurzes Rauschen
|
||||
zu hören sein - falls nicht, muß wohl der Kernel neu kompiliert
|
||||
werden unter Einbeziehung der Soundoptionen (siehe auch Sound-HOWTO!).
|
||||
<LI> Der Kernel muß im Abschnitt ISDN mit Audiosupport compiliert
|
||||
worden sein.
|
||||
<LI> Das mgetty-Paket muß installiert sein, wenn man auf andere
|
||||
Aufzeichnungsformate als uLAW zurückgreifen will (im Paket ist eine
|
||||
Tools-Sammlung enthalten, die in diesem Falle benötigt wird). Das
|
||||
Paket wird im Kapitel Fax genau erklärt (im Moment allerdings noch
|
||||
nicht :-).
|
||||
</UL>
|
||||
|
||||
Nun besorgt man sich die vbox-Software von
|
||||
<A HREF="mailto:michael@abadonna.franken.de?subject=vbox">Michael `Ghandi'
|
||||
Herold</A>, die <I>nicht</I> Bestandteil des ISDN4Linux-Pakets
|
||||
ist. Man muß sie sich herunterladen:
|
||||
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.franken.de/pub/isdn4linux/contributions/vbox-1.1.tgz">ftp.franken.de/pub/isdn4linux/contributions/vbox-1.1.tgz</A>
|
||||
</PRE>
|
||||
|
||||
Man setzt sich das ins Verzeichnis /usr/src und entpackt sie
|
||||
per "<TT>tar zxfv vbox-1.1.tgz</TT>". Im Verzeichnis
|
||||
|
||||
<PRE>
|
||||
/usr/src/vbox
|
||||
</PRE>
|
||||
|
||||
sind jetzt die benötigten Dateien. Die darin enthaltene Dokumentation
|
||||
(auf Deutsch, mit einem WWW-Browser anschaubar!) ist empfehlenswert!
|
||||
Nach der Compilation ist auch ein TeX-Dokument lesbar.
|
||||
|
||||
|
||||
<H2> Compilation</H2>
|
||||
|
||||
Vor der Übersetzung von vbox muß man sich das Makefile vornehmen
|
||||
und die Installationspfade anpassen (in der Regel sind keine Änderungen
|
||||
notwendig).
|
||||
|
||||
<P>
|
||||
|
||||
Ebenfalls angepaßt werden muß die Datei <TT>src/settings.h</TT>:
|
||||
<PRE>
|
||||
<B>src/settings.h</B> (Ausschnitt)
|
||||
...
|
||||
#define DEFAULT_RINGS 24 /* hebt ca. nach dem 4. Klingeln ab */
|
||||
...
|
||||
#define DEFAULT_RECORD_TIME 120 /* maximal 2 min Aufnahme zulassen */
|
||||
...
|
||||
#define VOICE_COMPRESSION_MODE 6 /* <--- Hier MUSS "6" stehen!!! */
|
||||
...
|
||||
#define VBOXPLAYCMD "/usr/local/sbin/vboxplay"
|
||||
...
|
||||
</PRE>
|
||||
|
||||
Zum <TT>VOICE_COMPRESSION_MODE</TT>: 2, 3 und 4 (ADPCM-2, ADPCM-3 und ADPCM-4)
|
||||
sind komprimierte Modi, zum Abspielen werden die <TT>pvftools</TT> von
|
||||
mgetty-0.99 benötigt. 5 entspricht einer Aufzeichnung im aLAW-Format,
|
||||
6 einer im uLAW-Format. Trotz gegenteiliger Angabe in der Anleitung kann man
|
||||
"aLAW"-Dateien nicht mit den mitgelieferten Tools (rmd*) abspielen - nur uLAW
|
||||
kann verarbeitet werden!
|
||||
<P>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<SMALL>
|
||||
Sollte man ein anderes Format angegeben haben, kann man sich über einen
|
||||
kleinen Trick die Nachrichten trotzdem abspielen: vboxgetty kennt nämlich
|
||||
alle Formate. Man kopiere die abzuspielende Datei um in das
|
||||
message-Verzeichnis (siehe unten) unter dem Namen standard.msg. Die wird dann
|
||||
als Ansage abgespielt, wenn man sich selbst anruft (vielleicht nicht ganz
|
||||
billig, aber ein schneller Weg... :-)
|
||||
<P>
|
||||
|
||||
Die <TT>pvftools</TT> sind im Paket <TT>mgetty</TT> von Gert Doering
|
||||
enthalten. Siehe dazu die Fax-Seiten in dieser Anleitungssammlung.
|
||||
</SMALL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
In meinem Falle mußte auch noch ein kleiner Patch angewendet werden,
|
||||
damit die Darstellung unter X brauchbar wurde (ohne Patch waren im
|
||||
vbox-Terminal nur wirre Zeichen zu sehen). Für den Hinweis, wo der Patch
|
||||
zu setzen ist, danke ich Roland Rosenfeld
|
||||
<<A HREF="mailto:roland@spinnaker.rhein.de?subject=vbox-patch">roland@spinnaker.rhein.de</A>>.
|
||||
<PRE>
|
||||
<B><A HREF="scripts/vbox.c.patch">/usr/src/vbox/vbox.c.patch</A></B>
|
||||
--- vbox.c Sat Sep 28 11:57:58 1996
|
||||
+++ vbox.c.orig Sat Sep 28 11:57:46 1996
|
||||
@@ -1953,9 +1953,9 @@
|
||||
|
||||
static chtype Color(int Pair)
|
||||
{
|
||||
- if (!Mono) return(COLOR_PAIR(Pair) | A_ALTCHARSET);
|
||||
+ if (!Mono) return(COLOR_PAIR(Pair));
|
||||
|
||||
- return(COLOR_PAIR(0) | A_ALTCHARSET);
|
||||
+ return(COLOR_PAIR(0));
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
</PRE>
|
||||
|
||||
Diesen Patch fügt man ein mit
|
||||
<PRE>
|
||||
root:# patch -p0 src/vbox.c <vbox.c.patch
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Nun kann es ans Compilieren gehen. Man lasse sich zeigen, was getan werden
|
||||
muß:
|
||||
<PRE>
|
||||
root:# make
|
||||
<I>(eine lange Liste erscheint)</I>
|
||||
root:# _
|
||||
</PRE>
|
||||
Im Ganzen ist das folgende zu tun:
|
||||
<PRE>
|
||||
root:# make vbox
|
||||
...
|
||||
root:# make vbox-install
|
||||
...
|
||||
root:# make vbox-spooldir
|
||||
...
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Sind die Programme nun installiert, geht es daran, das Spool-Verzeichnis
|
||||
aufzubereiten. Es ist wichtig zu wissen, daß für jeden User, der
|
||||
später vbox aufrufen will, ein separates Unterverzeichnis angelegt werden
|
||||
muß:
|
||||
<PRE>
|
||||
root:# mkdir /var/spool/vbox/<I>user</I>
|
||||
root:# mkdir /var/spool/vbox/<I>user/messages</I>
|
||||
root:# mkdir /var/spool/vbox/<I>user/incoming</I>
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Jetzt werden einige Scripte und Tools an ihren Platz kopiert und etwas
|
||||
Feinschliff daran vorgenommen:
|
||||
<PRE>
|
||||
root:# mkdir /usr/local/lib/vbox
|
||||
root:# cp /usr/src/vbox/scripts/vbox* /usr/local/sbin
|
||||
root:# cp /usr/src/vbox/bin/rmd* /usr/local/bin
|
||||
root:# chown root.root -R /usr/local/sbin/vbox*
|
||||
root:# chmod 755 /usr/local/sbin/vbox*
|
||||
root:# chown root.root -R /usr/local/bin/rmd*
|
||||
root:# chmod 755 /usr/local/bin/rmd*
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Falls sich die Verzeichnisse <TT>/usr/local/bin</TT> und
|
||||
<TT>/usr/local/sbin</TT> nicht im Pfad befinden, muß man
|
||||
<TT>/etc/profile</TT> editieren und diese Pfade in die PATH-Variable
|
||||
nachtragen.
|
||||
<P>
|
||||
|
||||
Schließlich muß jeder User in seinem Heimatverzeichnis die Datei
|
||||
<TT>~/.vboxrc</TT> installiert haben. Man kopiert sich am besten die
|
||||
mitgelieferte Beispieldatei an Ort und Stelle:
|
||||
<PRE>
|
||||
root:# cp /usr/src/vbox/samples/sample-vboxrc /home/<I><user></I>/.vboxrc
|
||||
root:# chown <I><user></I>.users /home/<I><user></I>/.vboxrc
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Diese Datei muß man noch editieren und den Inhalt an seine
|
||||
Bedürfnisse anpassen. Rufnummern mit Vorwahl ohne führende Null.
|
||||
Beispiel:
|
||||
|
||||
<PRE>
|
||||
<B>/home/<I><user></I>/.vboxrc</B>
|
||||
[CALLERID]
|
||||
81785005 - K. Gentner
|
||||
817890031 - Familie Hailer
|
||||
817890032 - Bernhard Hailer
|
||||
* - *** Unbekannt ***
|
||||
|
||||
[DEBUG]
|
||||
FATAL + ERRORS + WARNINGS + INFOS + DEBUG + JUNK
|
||||
|
||||
[RINGS]
|
||||
0-8 MO,DI,MI,DO,FR,SA,SO 5
|
||||
* * 30
|
||||
|
||||
[STANDARD]
|
||||
* * standard.msg 120
|
||||
</PRE>
|
||||
|
||||
Für den Anfang werden die mitgelieferten Ansagetexte in unser
|
||||
messages-Verzeichnis kopiert:
|
||||
<PRE>
|
||||
root:# cp samples/messages/* /var/spool/vbox/<I>user</I>/messages
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Nun können wir vboxgetty starten (unter <TT>EAZ</TT> die EAZ/MSN
|
||||
eintragen, unter der Anrufe entgegengenommen werden sollen):
|
||||
<PRE>
|
||||
root:# /usr/local/sbin/vboxgetty -d /dev/ttyI1 -i "ATZ&E<I>EAZ</I>" -u <I>user</I>
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>Ein Test</H3>
|
||||
|
||||
Einem Testanruf steht nun nichts im Wege - vboxgetty sollte nach dem 4.
|
||||
Klingeln (je nach <TT>DEFAULT_RINGS</TT>) abnehmen und eine kurze Ansage
|
||||
abspielen.
|
||||
<P>
|
||||
|
||||
Dabei kann man gleich seinen neuen Ansagetext aufsprechen (wer will schon
|
||||
die Telefonnummer des Autors von vbox in Würzburg in der Ansage behalten :-).
|
||||
Wenn's geklappt hat, müßte sich in /var/spool/vbox/incoming eine
|
||||
neue Datei finden. Mit
|
||||
<PRE>
|
||||
root:# cat /var/spool/vbox/incoming/<I>Zeit</I>-<I>Rufnummer</I> > /dev/audio
|
||||
root:# _
|
||||
</PRE>
|
||||
sollte man die sich dann schon relativ gut anhören können (falls
|
||||
VOICE_COMPRESSION_MODE nicht auf 6 gestellt wurde, ist natürlich
|
||||
nichts zu verstehen, zum Abspielen werden dann die pvftools im
|
||||
mgetty-0.99-Paket vom Juni benötigt).
|
||||
<P>
|
||||
|
||||
|
||||
<H3>Fehlersuche</H3>
|
||||
|
||||
Schiefgehen kann immer etwas. Falls im Folgenden etwas nicht funktioniert,
|
||||
sehe man in <TT>/var/log/messages</TT> oder - sehr aussagekräftig! -
|
||||
in <TT>/var/log/vbox.ttyI1</TT> nach.
|
||||
|
||||
|
||||
<H3>Feinjustage</H3>
|
||||
|
||||
Der Rest ist jetzt nur noch Feinkram, um es etwas komfortabler zu gestalten.
|
||||
<P>
|
||||
|
||||
Als erstes rufen wir vbox auf - das ist der "eigentliche" Anrufbeantworter:
|
||||
<PRE>
|
||||
root:# vbox -u <I>user</I>
|
||||
[Der vbox-Screen kommt im "View Mode"]
|
||||
</PRE>
|
||||
Die Angabe -u <I>user</I> ist nur unter root nötig/möglich - User
|
||||
<I>user</I> kann direkt
|
||||
<PRE>
|
||||
<I>user</I>:# vbox
|
||||
[Der vbox-Screen erscheint]
|
||||
</PRE>
|
||||
eingeben. Dann müßte unser Testanruf angezeigt werden.
|
||||
<P>
|
||||
|
||||
Wer kein "auplay" auf seinem System hat, legt sich einfach ein Script an, um
|
||||
nicht mehr den cat direkt verwenden zu müssen (auplay wird von vboxplay
|
||||
aufgerufen).
|
||||
<PRE>
|
||||
<B>/usr/local/bin/auplay</B>
|
||||
#!/bin/sh
|
||||
cat $1 > /dev/audio
|
||||
</PRE>
|
||||
Nachdem man mit <TT>chmod 755 /usr/local/bin/auplay</TT> das Script
|
||||
ausführbar gemacht hat, klappt das Abspielen auch so:
|
||||
<PRE>
|
||||
root:# auplay /var/spool/vbox/incoming/<I>Zeit</I>-<I>Rufnummer</I>
|
||||
root:# _
|
||||
</PRE>
|
||||
Wenn das klappt, kann man es auch in vbox versuchen: dazu auf dem
|
||||
aufgelisteten Anruf einfach RETURN drücken - und schon sollte die
|
||||
Nachricht zu hören sein.
|
||||
<P>
|
||||
|
||||
Wenn man zufrieden ist, kann man die Aufnahme zum Standard-Ansagetext machen:
|
||||
<PRE>
|
||||
root:# cp /var/spool/vbox/incoming/<I>Zeit</I>-<I>Rufnummer</I> /var/spool/vbox/messages/standard.msg
|
||||
root:# _
|
||||
</PRE>
|
||||
Und alles ist in Butter...
|
||||
|
||||
|
||||
<H3>Der automatische Systemstart</H3>
|
||||
|
||||
Natürlich soll der Anrufbeantworter auch bei jedem Booten automatisch
|
||||
gestartet werden. Dazu muß ein Eintrag in der Datei <TT>/etc/inittab</TT>
|
||||
vorgenommen werden. Wie der aussieht, kann auch der Datei
|
||||
<TT>/usr/src/vbox/samples/sample-inittab</TT> entnommen werden. Einige
|
||||
Änderungen sind aber nötig; der Eintrag sollte etwa so aussehen:
|
||||
<PRE>
|
||||
<B>/etc/inittab</B>
|
||||
...
|
||||
# getty-programs for the normal runlevels
|
||||
...
|
||||
I1:23:respawn:/usr/local/sbin/vboxgetty -d /dev/ttyI1 -i "ATZ&E<I>EAZ</I>" -u <I>user</I>
|
||||
...
|
||||
</PRE>
|
||||
Zu beachten ist, daß die Runlevel korrekt sein müssen (in der Regel "23").
|
||||
Nach einem Systemrestart läuft unsere Voicebox!
|
||||
|
||||
|
||||
<H3>Achtung - Aufnahme!</H3>
|
||||
|
||||
Nun kosten Ansagen, wenn man sie über einen Selbstanruf erledigt, Geld -
|
||||
so ist das sicherlich nicht im Sinne des Erfinders. Wir haben eine Soundkarte,
|
||||
und mit der kann man ja schließlich auch was aufnehmen, oder?
|
||||
<P>
|
||||
|
||||
Ein paar Zeichen am Beginn einer Sounddatei sagen etwas über ihre
|
||||
Verpackung aus. Mit vbox kommt ein Programm, mit dem man einen solchen Header
|
||||
herstellen kann. Dieses Programm benutzen wir nun, um einen solchen Header
|
||||
herzustellen (uLAW-Kompression):
|
||||
<PRE>
|
||||
root:# rmdcatheader -u >/etc/ulaw.header
|
||||
root:# _
|
||||
</PRE>
|
||||
Ein Miniscript macht uns aus au-Dateien uLAW-Dateien:
|
||||
<PRE>
|
||||
<B>/usr/local/sbin/au2ulaw</B>
|
||||
#!/bin/sh
|
||||
cat /etc/ulaw.header $1.au > $1.msg
|
||||
</PRE>
|
||||
Damit ist das Aufnehmen des Ansagetextes ganz einfach:
|
||||
<PRE>
|
||||
root:# cd /var/spool/vbox/<I>user</I>/messages
|
||||
root:# cat </dev/audio >standard.au
|
||||
<I>(Nun Ansagetext aufnehmen, danach Strg-C drücken)</I>
|
||||
root:# au2ulaw standard
|
||||
root:# _
|
||||
</PRE>
|
||||
Fertig! Entsprechend kann man noch eine individuelle <TT>beep.msg</TT>
|
||||
herstellen, in der der "Piep!" nach dem Ansagetext gespeichert ist.
|
||||
Ferner gibt es noch die Datei <TT>timeout.msg"</TT>, in der das Ende
|
||||
der Aufzeichnungszeit verkündet wird, und die Datei <TT>panic.msg"</TT>,
|
||||
in der bekanntgegeben wird, daß der Plattenplatz knapp wird.
|
||||
|
||||
|
||||
<H3>Tools</H3>
|
||||
|
||||
Dem Paket liegen zwei sehr interessante Scripten bei: <TT>vboxnotify</TT> und
|
||||
<TT>vboxmime</TT>.
|
||||
<P>
|
||||
|
||||
<TT>vboxnotify</TT> schickt eine simple Email als Nachricht, wenn ein Anruf
|
||||
hereinkommt, <TT>vboxmime</TT> schickt gleich die ganze Voicedatei selbst
|
||||
base64-kodiert weiter.
|
||||
<P>
|
||||
|
||||
Wer's unter X mag, der kann noch mit <TT>mam</TT> und <TT>xvboxled</TT>
|
||||
experimentieren.
|
||||
<P>
|
||||
|
||||
<TT>mam</TT> (Motif Answering Machine) von
|
||||
<A HREF="mailto:chrisb@ganzfix.duew.eunet.de?subject=mam">Chris Benndorf</A>
|
||||
benötigt zum Übersetzen allerdings Motif, so daß
|
||||
man sich das nicht so ohne weiteres basteln kann. Es gibt allerdings unter
|
||||
<A HREF="ftp://ftp.franken.de/pub/isdn4linux/contributions/">ftp.franken.de/pub/isdn4linux/contributions/</A>
|
||||
eine statisch gelinkte Version zum Downloaden. Sie ist optisch ansprechender
|
||||
als das vt100-vbox-Programm, stürzt aber gern mal ab, wenn es irgend
|
||||
etwas nicht findet. Apropos: die statisch gelinkte Version erwartet die
|
||||
vboxgetty-Dateien in den Originalverzeichnissen. Ich habe diese für die
|
||||
Anleitung etwas verändert, um die logische Linux-Verzeichnisstruktur
|
||||
besser zu unterstützen. Eventuell sind ein paar Softlinks von den
|
||||
erwarteten in die tatsächlichen Verzeichnisse zu legen.
|
||||
<P>
|
||||
|
||||
Auch <TT>xvboxled</TT> von
|
||||
<A HREF="mailto:schoenep@wrcs3.urz.uni-wuppertal.de?subject=xvboxled">Jan
|
||||
Schoenepauck</A> und <A HREF="mailto:gassen@uni-muenster.de?subject=xvboxled">Joachim
|
||||
Gassen</A>, ein Programm, das ähnlich wie xbiff die Ankunft neuer Anrufe
|
||||
anzeigt und vbox starten kann, muß man sich erst noch übersetzen.
|
||||
Dazu begibt man sich ins Verzeichnis <TT>/usr/src/vbox/xvboxled</TT>, kopiert
|
||||
<TT>example-config.h</TT> in <TT>config.h</TT> und editiert letzteres.
|
||||
Darin ist nur ein Pfad anzupassen:
|
||||
|
||||
<PRE>
|
||||
<B>/usr/src/vbox/tools/xvboxled</B> (Ausschnitt)
|
||||
#define INCOMING_DIR "/var/spool/vbox/<U>user</I>/incoming"
|
||||
</PRE>
|
||||
|
||||
Das Makefile ist in der Regel bereits so wie es ist brauchbar (vielleicht
|
||||
will man die Installationspfade verändern). Das Programm wird nun
|
||||
übersetzt und installiert:
|
||||
<PRE>
|
||||
root:# make
|
||||
...
|
||||
root:# make install
|
||||
...
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Programm nun aufrufen und benutzen! Bei mir hat es seinen Platz neben xbiff
|
||||
und isdnmon in einem "Schaltkasten" eingenommen. Kommt echt schön!
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="mailto:hessler@wi-inf.uni-essen.de?subject=vbox-Anleitung">Matthias
|
||||
Heßler</A>,
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
|
@ -0,0 +1,39 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Audio
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="audio.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>An Answering Machine</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
|
||||
<H3>Running an answering machine</H3>
|
||||
|
||||
I received a vbox tutorial from
|
||||
<A HREF="mailto:hessler@wi-inf.uni-essen.de?subject=vbox-Anleitung">Matthias
|
||||
Heßler</A>. It is now available in a nice HTML format, but you find it
|
||||
only on the
|
||||
<A HREF="audio.html">German page</A> yet. Thanks Matthias for your cooperation!
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
After Width: | Height: | Size: 174 B |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 1.0 KiB |
|
@ -0,0 +1,50 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Linux, ISDN, LRZ
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 12-Nov-1996 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY bgcolor="#000000" TEXT="#ff0000" LINK="#FFFF00" VLINK="#AAAA77" ALINK="FF8888">
|
||||
|
||||
<CENTER>
|
||||
<A HREF="contents.html">
|
||||
<IMG SRC="german.gif" ALIGN=CENTER ALT="(D)">
|
||||
</A>
|
||||
</CENTER>
|
||||
|
||||
<FONT SIZE=-1>
|
||||
<UL>
|
||||
<LI><A HREF="intro_e.html" TARGET=Main>Introduction</A>
|
||||
<LI><A HREF="faq_e.html" TARGET=Main>The ISDN4linux FAQ</A>
|
||||
<LI><A HREF="requir_e.html" TARGET=Main>Requirements</A>
|
||||
<LI><A HREF="setup_e.html" TARGET=Main>Installation, configuration</A>
|
||||
<LI><A HREF="ftp_e.html" TARGET=Main>FTP on demand</A>
|
||||
<LI><A HREF="email_e.html" TARGET=Main>An off-line email system</A>
|
||||
<LI><A HREF="enews_e.html" TARGET=Main>How to work on usenet off-line</A>
|
||||
<LI><A HREF="fax_e.html" TARGET=Main>Facsimile</A>
|
||||
<LI><A HREF="audio_e.html" TARGET=Main>Audio!</A>
|
||||
<LI><A HREF="hist_e.html" TARGET=Main>History</A>
|
||||
<LI><A HREF="plannd_e.html" TARGET=Main>Planned</A>
|
||||
<LI><A HREF="lit_e.html" TARGET=Main>Literature</A>
|
||||
<LI><A HREF="links_e.html" TARGET=Main>Links!</A>
|
||||
<LI><A HREF="hall_e.html" TARGET=Main>Hall of Fame</A>
|
||||
<LI><A HREF="please_e.html" TARGET=Main>Please...</A>
|
||||
</UL>
|
||||
</FONT>
|
||||
</CENTER>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<FONT SIZE=-1>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2) 1996<BR>
|
||||
Bernhard Hailer</A><BR>
|
||||
Last modification:<BR> 26-Aug-96 BeH
|
||||
</FONT>
|
||||
</ADDRESS>
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,49 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Linux, ISDN, LRZ
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 12-Nov-1996 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY bgcolor="#000000" TEXT="#ff0000" LINK="#FFFF00" VLINK="#AAAA77" ALINK="FF8888">
|
||||
|
||||
<CENTER>
|
||||
<A HREF="cont_e.html">
|
||||
<IMG SRC="british.gif" ALIGN=CENTER ALT="(GB)">
|
||||
</A>
|
||||
</CENTER>
|
||||
|
||||
<FONT SIZE=-1>
|
||||
<UL>
|
||||
<LI><A HREF="intro.html" TARGET=Main>Einführung</A>
|
||||
<LI><A HREF="faq.html" TARGET=Main>Die ISDN4linux-FAQ</A>
|
||||
<LI><A HREF="requir.html" TARGET=Main>Voraussetzungen</A>
|
||||
<LI><A HREF="setup.html" TARGET=Main>Installation, Konfiguration</A>
|
||||
<LI><A HREF="ftp.html" TARGET=Main>FTP on Demand</A>
|
||||
<LI><A HREF="email.html" TARGET=Main>Ein Offline-email-System</A>
|
||||
<LI><A HREF="enews.html" TARGET=Main>Das Usenet offline bearbeiten</A>
|
||||
<LI><A HREF="fax.html" TARGET=Main>Wir machen Fax(en)</A>
|
||||
<LI><A HREF="audio.html" TARGET=Main>Audio!</A>
|
||||
<LI><A HREF="history.html" TARGET=Main>Geschichte</A>
|
||||
<LI><A HREF="planned.html" TARGET=Main>Geplant</A>
|
||||
<LI><A HREF="lit.html" TARGET=Main>Literatur</A>
|
||||
<LI><A HREF="links.html" TARGET=Main>Links, zwo, drei, vier!</A>
|
||||
<LI><A HREF="hall.html" TARGET=Main>Hall of Fame</A>
|
||||
<LI><A HREF="please.html" TARGET=Main>Eine Bitte...</A>
|
||||
</UL>
|
||||
</FONT>
|
||||
</CENTER>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<FONT SIZE=-1>
|
||||
<A HREF="gnulis.html" TARGET=Main>Copyright © (GPL V 2) 1996<BR>
|
||||
Bernhard Hailer</A><BR>
|
||||
Letzte Änderung:<BR> 12-Nov-96 BeH
|
||||
</FONT>
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,332 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Email
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="psst.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Ein Offline-Email-System</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>Z</B></FONT>war
|
||||
kann man email auch online lesen und bearbeiten, aber auf Dauer
|
||||
kommt das etwas teuer - selbst im City-Bereich. Also was tun?
|
||||
<P>
|
||||
|
||||
Zwei Programme kann man heranziehen, damit man email daheim
|
||||
in aller Ruhe bearbeiten kann. Das eine ist <TT>sendmail</TT>, das andere
|
||||
<TT>popclient</TT>.
|
||||
<P>
|
||||
|
||||
Bevor wir in die Tiefen von sendmail und popclient einsteigen, müssen
|
||||
wir noch die Datei <TT>/etc/hosts</TT> um den Eintrag des Mailservers
|
||||
erweitern. Wer bei der Installation von isdn4linux die Datei
|
||||
<TT>i4l.config</TT> kreiert hat und "makeleaf" eingegeben hat, bei dem ist
|
||||
das korrekt eingebaut. Wer das nicht tun wollte, muß eingeben:
|
||||
|
||||
<PRE>
|
||||
<B>/etc/hosts</B> (Ausschnitt)
|
||||
<I><IP-Adresse></I> <I><Name_des_Mailservers></I> getmail
|
||||
</PRE>
|
||||
<P>
|
||||
|
||||
|
||||
<H2>sendmail</H2>
|
||||
|
||||
Auf die Low-Level-Konfiguration von sendmail will ich gar nicht erst eingehen
|
||||
- das überlasse ich Masochisten ;-) In meinem Falle setze ich eine
|
||||
Distribution ein (S.u.S.E. aktuell 4.2 Jun. 96; ELF), die sendmail in der
|
||||
Version R8 enthält. Diese läßt sich komfortabel
|
||||
mithilfe von m4-Scripts konfigurieren - siehe das zugehörige README.
|
||||
Ich habe die Originalkonfiguration ("<TT>linux.smtp.mc</TT>") übernommen
|
||||
und etwas bearbeitet. Man begebe sich nach <TT>/usr/src/sendmail/cf/cf</TT>
|
||||
und schreibe eine Datei <TT>linux.<I>beliebig</I>.mc</TT>, z.B.
|
||||
|
||||
<PRE>
|
||||
<B>/usr/src/sendmail/cf/cf/linux.<I>beliebig</I>.mc</B> # Meine eigene sendmail.cf
|
||||
include(`../m4/cf.m4')dnl # muß sein!!!
|
||||
VERSIONID(`<I>beliebig</I>')dnl # Version nach Gusto benennen
|
||||
OSTYPE(linux)dnl # Wir machen Linux!
|
||||
FEATURE(nodns)dnl # Kein eigener Nameserver
|
||||
FEATURE(nocanonify)dnl # Beim Senden DNS nicht benutzen
|
||||
FEATURE(nouucp)dnl # Wir benutzen kein UUCP
|
||||
define(SMART_HOST, relay:<I><fully.named.mailhost></I>)dnl # Post an: siehe /etc/hosts
|
||||
define(confCON_EXPENSIVE, True)dnl # Post verteilen ist teuer
|
||||
MASQUERADE_AS(<I><provider.name></I>)dnl # Wir mimen "Provider"
|
||||
define(confUSERDB_SPEC, /etc/userdb.db)dnl # Adresskorrektur
|
||||
FEATURE(notsticky)dnl # Userdatabase immer durchforsten
|
||||
MAILER(local)dnl # Benutzte Mailer:
|
||||
MAILER(smtp)dnl # local, Simple Mail Transfer Prot.
|
||||
</PRE>
|
||||
|
||||
Dem sendmail muß man jetzt nur noch kundtun, was Sache ist:
|
||||
|
||||
<PRE>
|
||||
root:# m4 linux.<I>beliebig</I>.mc > /etc/sendmail.cf
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Man muß seine email-Adresse so angeben, daß ein "Reply"
|
||||
zuverlässig wieder zurückkommt - das bedeutet, die From:-Zeile im
|
||||
Email-Header muß auf den Account beim Provider lauten. Das wird
|
||||
einerseits durch die Zeile "MASQUERADE_AS ..." im m4-Script erledigt,
|
||||
andererseits durch eine Email-Nutzer-Datenbank (<TT>/etc/userdb.db</TT>).
|
||||
diese muß hergestellt werden. Dazu editiert man eine Datei, in die
|
||||
pro Nutzer zwei Zeilen eingetragen werden müssen:
|
||||
|
||||
<PRE>
|
||||
<B>/etc/userdb.db</B>
|
||||
<I><eigener_login_name></I>:mailname <I><provider_login_name></I>
|
||||
<I><provider_login_name></I>:maildrop <I><eigener_login_name></I>
|
||||
</PRE>
|
||||
|
||||
Dieses muß in ein für <TT>sendmail</TT> lesbares Format umgesetzt
|
||||
werden:
|
||||
|
||||
<PRE>
|
||||
root:# makemap btree /etc/userdb.db < /etc/userdb
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
(Laut sendmail-FAQ funktioniert das nur, wenn man das Berkeley-db-Paket
|
||||
hat - das ist aber z.B. bei S.u.S.E. 4.2 der Fall.)
|
||||
<P>
|
||||
|
||||
Nach einem Reboot (alternativ kann man den sendmail auch killen und mit der
|
||||
Option "-bd" wieder neu starten) hat man einen funktionierenden Postmeister.
|
||||
<P>
|
||||
|
||||
Sendmail läuft als Dämon im Hintergrund, und man kann ihn dazu
|
||||
bringen, alle selbstgeschriebene email zu sammeln (sie wird in
|
||||
<TT>/var/spool/mqueue</TT> oder <TT>/var/mqueue</TT> zwischengelagert) und
|
||||
erst auf Kommando ("<TT>sendmail -q</TT>") über die Telefonleitung zu
|
||||
schicken.
|
||||
<P>
|
||||
|
||||
Damit das richtig funktioniert, muß sendmail beim Booten als
|
||||
Dämon <I>ohne</I> die "<TT>-q ...</TT>"-Option aufgerufen werden.
|
||||
Der Aufruf geschieht bei simpleinit in der zweiten Hälfte der Start-Datei
|
||||
<TT>/etc/rc.d/rc.M</TT>, bei sysvinit passiert es in einer Extradatei, bei
|
||||
SuSE 4.2 heisst sie <TT>/sbin/init.d/sendmail</TT>. Hier
|
||||
muß die genannte Option entfernt werden ("<TT>-bd</TT>" muß
|
||||
bleiben, das ist für sendmail der Befehl, sich als Dämon in den
|
||||
Hintergrund zu begeben).
|
||||
<P>
|
||||
|
||||
|
||||
<H2>Des Mailers Wille...</H2>
|
||||
|
||||
Mit dem UNIX-Klassiker <I>mail</I> funktioniert das Absenden von emails nun
|
||||
prächtig. Der Header wird richtig geschrieben, und die From-Zeile
|
||||
lautet so, wie sie muß: auf die eigene Adresse beim Provider.
|
||||
<P>
|
||||
|
||||
Andere Mailer sind aber recht eigenwillig. Programme wie pine oder Netscape
|
||||
überschreiben den Header ziemlich hemmungslos mit dem, was sie für
|
||||
richtig halten (was es in der Regel aber ganz und gar nicht ist)...
|
||||
<P>
|
||||
|
||||
<B>Mutt</B>
|
||||
<P>
|
||||
|
||||
Diesen Hinweis schrieb mir Jan Berkel <jan.berkel@on-line.de>:
|
||||
In der <TT>.muttrc</TT> im Heimatverzeichnis muß man folgende Zeile
|
||||
einfügen:
|
||||
<PRE>
|
||||
my_hdr From: foo@foonet.com (Fooname)
|
||||
</PRE>
|
||||
Damit funktioniert das Header-Rewriting.
|
||||
<P>
|
||||
|
||||
<B>Netscape</B>
|
||||
<P>
|
||||
|
||||
liest die Datei <TT>~/.netscape/preferences</TT> ein, die man
|
||||
editieren kann. Dort findet man die Zeile
|
||||
|
||||
<PRE>
|
||||
<B>~/.netscape/preferences</B> (Ausschnitt)
|
||||
[...]
|
||||
EMAIL_ADDRESS: <I><Email@Adresse></I>
|
||||
[...]
|
||||
</PRE>
|
||||
|
||||
Die Adresse muß mit der gewünschten Adresse ausgefüllt werden.
|
||||
<P>
|
||||
|
||||
<B>Pine</B>
|
||||
<P>
|
||||
|
||||
Tilo Winkler <twinkler@uni-paderborn.de> hat herausbekommen, wie man dem
|
||||
Pine abgewöhnen kann, die From:-Zeile vollzumüllen:
|
||||
Man muß sich die pine-Sourcen besorgen und dann in
|
||||
<TT>pine/makefile.lnx</TT> bei den <TT>CFLAGS</TT> ein
|
||||
<TT>-DALLOW_CHANGING_FROM</TT> anfügen und dann neu compilieren. Dann
|
||||
kann man in <TT>.pinerc</TT> im Heimatverzeichnis folgende Zeile(n)
|
||||
einfügen:
|
||||
<PRE>
|
||||
customized-hdrs=From: Mein Name <Meine@email.adresse>,
|
||||
Reply-To: Mein Name <Meine@email.adresse>
|
||||
</PRE>
|
||||
|
||||
<B>XEmacs</B>
|
||||
<P>
|
||||
|
||||
(Hinweise hierzu hat mir dankenswerterweise Markus Dickebohm
|
||||
<<A HREF="mailto:m.dickebohm@uni-koeln.de?subject=Mailer und Mailheader">m.dickebohm@uni-koeln.de</A>> geschickt.)
|
||||
<P>
|
||||
Beim XEmacs kann man die Mailadresse mittels
|
||||
<PRE>
|
||||
(setq user-mail-address "m.dickebohm@uni-koeln.de")
|
||||
(setq mail-host-address "mail.rrz.uni-koeln.de")
|
||||
</PRE>
|
||||
in der Datei <TT>~/.emacs</TT> faken. Auch hier keine ideale Sache, der Header
|
||||
wird nicht in Ruhe gelassen.
|
||||
<P>
|
||||
|
||||
<B>Weitere Mailer</B>
|
||||
<P>
|
||||
|
||||
Wer Informationen zu weiteren MUAs (<I>Mail User Agents</I>, also
|
||||
Mailprogrammen) hat, möge diese bitte
|
||||
<A HREF="mailto:hailer@ilo.baynet.de?subject=Mailer und Mailheader">mir
|
||||
zukommen lassen</A>. Vielen Dank!
|
||||
|
||||
|
||||
<H2>popclient</H2>
|
||||
|
||||
Popclient ist ganz einfach einzusetzen. Man ruft es so auf:
|
||||
|
||||
<PRE>
|
||||
~:# popclient -3 -u<I><host-login></I> -p<I><host-password></I> -o/var/spool/mail/<I><user></I> getmail
|
||||
~:# _
|
||||
</PRE>
|
||||
|
||||
<TT>getmail</TT> ist der in <TT>/etc/hosts</TT> definierte Mailhost.
|
||||
Gibt man zusätzlich noch die Option "-k" mit an, werden die Emails beim
|
||||
Provider <I>nicht</I> gelöscht.
|
||||
<P>
|
||||
|
||||
<B>Hinweis:</B> Inzwischen gibt es einen leistungsstarken Nachfolger von
|
||||
popclient namens fetchmail. Ich habe bisher allerdings noch keine Erfahrungen
|
||||
mit fetchmail gemacht.
|
||||
|
||||
|
||||
<H2>Gesamtkunstwerk</H2>
|
||||
|
||||
Eine Scriptdatei erledigt das Abholen und das Abschicken der
|
||||
emails. Mit etwas Glück dauert das so kurz, daß nur eine Einheit
|
||||
verloren geht. Etwas Kosmetik im Script erzeugt dabei einen verwertbaren
|
||||
Mitschnitt des fortschreitenden Transfers. Dieses Script erzeugt man als root
|
||||
und speichert sie in <TT>/sbin</TT>.
|
||||
<P>
|
||||
|
||||
Das Script benutzt die Datei <TT>/sbin/isdn</TT> zum öffnen der Leitung.
|
||||
|
||||
<PRE>
|
||||
<B><A HREF="scripts/transmail">/sbin/transmail</A></B>
|
||||
#!/bin/sh
|
||||
# transmail.sh: exchanges email with the provider.
|
||||
# Author: Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>
|
||||
# Version: 4.0 (27-Jan-97)
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
. /etc/i4l.provider
|
||||
. /etc/i4l.secrets
|
||||
|
||||
cd / # against PATH=. effect
|
||||
|
||||
echo -----------------------------------------------------------------------
|
||||
echo -e "Starting mail transfer: \c"; date
|
||||
|
||||
. /sbin/connect on
|
||||
|
||||
echo "Checking mail server..."
|
||||
set `ping -qc5 -i1 getmail | grep transmitted`
|
||||
if [ $4 -gt 0 ]
|
||||
then
|
||||
echo ":-) Mail server online - starting mail exchange"
|
||||
echo "Sending mail..."
|
||||
sendmail -q
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
echo "Fetching mail..."
|
||||
popclient -3 -u $MAIL_LOGIN -p $MAIL_PASSWD -o $MAIL_PATH getmail
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
else
|
||||
echo ":-[ Sorry - mail server is down. Try later..."
|
||||
fi
|
||||
|
||||
. /sbin/isdn off
|
||||
|
||||
# allow dl4mhk access to mail:
|
||||
chown dl4mhk.users /var/spool/mail/dl4mhk
|
||||
|
||||
echo -e "Finished mail transfer: \c"; date
|
||||
</PRE>
|
||||
|
||||
Die sleep-Befehle sind wichtig - sonst bleibt die Verbindung
|
||||
womöglich hängen!
|
||||
<P>
|
||||
|
||||
|
||||
<H2>Let's cron!</H2>
|
||||
|
||||
Wer den Rechner rund um die Uhr laufen läßt, kann einen
|
||||
automatischen Transfer erreichen, indem er den <TT>cron</TT>-Dämon
|
||||
bemüht. Man macht dazu folgendes:
|
||||
<P>
|
||||
|
||||
<B>1.) cron-Datei verändern.</B><BR>
|
||||
<PRE>
|
||||
root:# cd ~
|
||||
root:# cp /var/spool/cron/crontabs/root .crontab
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
An die Datei <TT>.crontab</TT> hängt man folgende Zeilen an:
|
||||
<PRE>
|
||||
# Transfer mail
|
||||
30 04 * * * /sbin/transmail.sh 1>> /var/log/transmail-log 2>> /var/log/transmail-log
|
||||
</PRE>
|
||||
|
||||
<B>2.) Dem cron die Änderung bekannt machen.</B><BR>
|
||||
<PRE>
|
||||
crontab .crontab
|
||||
</PRE>
|
||||
|
||||
Den Rest erledigt die Uhr des Rechners. Alltäglich nachts um halb
|
||||
fünf Uhr wird die Post erledigt! (Anmerkung: die Rechnerzeit muß
|
||||
natürlich richtig gesetzt sein; <TT>man date; man clock</TT>.)
|
||||
<P>
|
||||
|
||||
Hier muß man eine Kosten-/Nutzen-Rechnung aufstellen: der
|
||||
dauerlaufende Rechner kostet Strom - und nicht zu knapp. Bei mir geht das
|
||||
trotzdem so, es ist halt so bequem...
|
||||
<P>
|
||||
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard
|
||||
Hailer</A><BR>
|
||||
Letzte Änderung: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,329 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Email
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="psst.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>An Off-Line Email System</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>E</B></FONT>ven
|
||||
if you can read emails online, it is a very good way to waste your money.
|
||||
What can you do to save money?
|
||||
<P>
|
||||
|
||||
There are two programs which allow an off-line work at home. The first is
|
||||
<TT>sendmail</TT>, the second is <TT>popclient</TT>.
|
||||
<P>
|
||||
|
||||
But before we explore sendmail and popclient we have to edit the file
|
||||
<TT>/etc/hosts</TT> and to insert one entry for the mail server. If you have
|
||||
created <TT>i4l.config</TT> and called "makeleaf" this is done already.
|
||||
If you did not do it, you must add:
|
||||
|
||||
<PRE>
|
||||
<B>/etc/hosts</B> (cutting)
|
||||
<I><IP address></I> <I><name_of_mail_server></I> getmail
|
||||
</PRE>
|
||||
<P>
|
||||
|
||||
|
||||
<H2>sendmail</H2>
|
||||
|
||||
I will not explain the low level configuration of sendmail - this is
|
||||
somewhat for masochists ;-) I'm using a Linux distribution (S.u.S.E. aktuell
|
||||
4.2 June 96; ELF) with a sendmail version R8. It is configurable with some m4
|
||||
scripts - have a look at the README of sendmail. I prepared a slightly modified
|
||||
configuration of the suggested original ("<TT>linux.smtp.mc</TT>"). Go to
|
||||
<TT>/usr/src/sendmail/cf/cf</TT> and write a file
|
||||
<TT>linux.<I>asyoulike</I>.mc</TT>, e.g.:
|
||||
|
||||
<PRE>
|
||||
<B>/usr/src/sendmail/cf/cf/linux.<I>asyoulike</I>.mc</B> # Bernhard's sendmail.cf
|
||||
include(`../m4/cf.m4')dnl # must be!!!
|
||||
VERSIONID(`<I>asyoulike</I>')dnl # name it as you like
|
||||
OSTYPE(linux)dnl # We're doing Linux!
|
||||
FEATURE(nodns)dnl # No own name server
|
||||
FEATURE(nocanonify)dnl # Don't lookup DNS while sending
|
||||
FEATURE(nouucp)dnl # We don't use UUCP
|
||||
define(SMART_HOST, relay:<I><provider.name></I>)dnl # mail to ...
|
||||
define(confCON_EXPENSIVE, True)dnl # distributing mail is expensive
|
||||
MASQUERADE_AS(lrz.uni-muenchen.de)dnl # we act as "provider"
|
||||
define(confUSERDB_SPEC, /etc/userdb.db)dnl # Address correction
|
||||
FEATURE(notsticky)dnl # don't change From: line
|
||||
MAILER(local)dnl # use mailer:
|
||||
MAILER(smtp)dnl # local, Simple Mail Transfer Prot.
|
||||
</PRE>
|
||||
|
||||
You just must tell sendmail this now:
|
||||
|
||||
<PRE>
|
||||
root:# m4 linux.<I>asyoulike</I>.mc > /etc/sendmail.cf
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Writing emails you have to tell your address so that a "reply" works properly.
|
||||
This means, the From: line in the email header must contain your account name
|
||||
at your provider. This happens because of the line "MASQUERADE_AS ..." in the
|
||||
m4 script, and because of a user database built in there. This database
|
||||
(<TT>/etc/userdb.db</TT>) also must be prepared, therefore you must create a
|
||||
file containing two lines per user:
|
||||
|
||||
<PRE>
|
||||
<B>/etc/userdb.db</B>
|
||||
<I><login_at_your_pc></I>:mailname <I><provider_login_name></I>
|
||||
<I><provider_login_name></I>:maildrop <I><login_at_your_pc></I>
|
||||
</PRE>
|
||||
|
||||
It must be changed to a format <TT>sendmail</TT> can read:
|
||||
|
||||
<PRE>
|
||||
root:# makemap btree /etc/userdb.db < /etc/userdb
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
(sendmail-FAQ tells that this only works, if you have the Berkeley db package
|
||||
- the S.u.S.E. 4.2 installs it.)
|
||||
<P>
|
||||
|
||||
Now you have after a reboot (or after killing sendmail and restarting it
|
||||
with the option "-bd") a working mail slave.
|
||||
<P>
|
||||
|
||||
Sendmail is running as daemon in the background. You can tell him to
|
||||
collect all the email you wrote (it will be stored in
|
||||
<TT>/var/spool/mqueue</TT> or <TT>/var/mqueue</TT>), and to send it on demand
|
||||
only.
|
||||
<P>
|
||||
|
||||
Therefore you must start sendmail while booting as daemon
|
||||
<I>without</I> the "<TT>-q ...</TT>" option. In simpleinit environment this
|
||||
happens in the last part of the startup script <TT>/etc/rc.d/rc.M</TT>;
|
||||
if you have sysvinit it is in an extra file (SuSE 4.2:
|
||||
<TT>/sbin/init.d/sendmail</TT>. Here you must remove this option;
|
||||
"<TT>-bd</TT>" must remain,
|
||||
because it is the command for sendmail to go into background as daemon.
|
||||
<P>
|
||||
|
||||
|
||||
<H2>Mailer's Will...</H2>
|
||||
|
||||
Sending mails with the classical UNIX command <I>mail</I> works correctly
|
||||
now. The header is written properly, and the From: line contains the correct
|
||||
email address at your provider.
|
||||
<P>
|
||||
|
||||
But there are some mail programs which are something obstinate. Programs
|
||||
like pine or Netscape overwrite the header with some entries, which are
|
||||
not correct.
|
||||
<P>
|
||||
|
||||
<B>Mutt</B>
|
||||
<P>
|
||||
|
||||
Jan Berkel <jan.berkel@on-line.de> wrote me this hint:
|
||||
You need to edit <TT>.muttrc</TT> in your home directory and to add the following line:
|
||||
<PRE>
|
||||
my_hdr From: foo@foonet.com (Foo Name)
|
||||
</PRE>
|
||||
With this the header rewriting works.
|
||||
<P>
|
||||
|
||||
<B>Netscape</B>
|
||||
<P>
|
||||
|
||||
For Netscape you can edit the file <TT>~/.netscape/preferences</TT>.
|
||||
In it you find the line
|
||||
|
||||
<PRE>
|
||||
<B>~/.netscape/preferences</B> (cutting)
|
||||
[...]
|
||||
EMAIL_ADDRESS: <I><Email@Address></I>
|
||||
[...]
|
||||
</PRE>
|
||||
|
||||
Type in your correct email address.
|
||||
<P>
|
||||
|
||||
<B>Pine</B>
|
||||
<P>
|
||||
|
||||
Tilo Winkler <twinkler@uni-paderborn.de> found out how to manage it that
|
||||
pine does not write garbage into the From: line. You must get the pine source
|
||||
code and edit <TT>pine/makefile.lnx</TT>: add <TT>-DALLOW_CHANGING_FROM</TT>
|
||||
at the <TT>CFLAGS</TT> and recompile. Now you can add the following to
|
||||
<TT>.pinerc</TT> in your home directory:
|
||||
<PRE>
|
||||
customized-hdrs=From: My Name <My@email.address>,
|
||||
Reply-To: My Name <My@email.address>
|
||||
</PRE>
|
||||
|
||||
<B>XEmacs</B>
|
||||
<P>
|
||||
|
||||
(Thanks, Markus Dickebohm
|
||||
<<A HREF="mailto:m.dickebohm@uni-koeln.de?subject=Mailer und Mailheader">m.dickebohm@uni-koeln.de</A>> for sending me these hints!)
|
||||
<P>
|
||||
|
||||
You can fake the From: address within XEmacs, if you edit the file
|
||||
<TT>~/.emacs</TT> and add the following entries:
|
||||
<PRE>
|
||||
(setq user-mail-address "m.dickebohm@uni-koeln.de")
|
||||
(setq mail-host-address "mail.rrz.uni-koeln.de")
|
||||
</PRE>
|
||||
This is not ideal, like the mailer programs above: this mailer changes the
|
||||
mailer header.
|
||||
<P>
|
||||
|
||||
<B>More Mailers</B>
|
||||
<P>
|
||||
|
||||
If you have information about other MUAs (<I>Mail User Agents</I>), please
|
||||
<A HREF="mailto:hailer@ilo.baynet.de?subject=Mailer und Mailheader">send
|
||||
them to me</A>. Thank you!
|
||||
|
||||
|
||||
<H2>popclient</H2>
|
||||
|
||||
Popclient is a simple-to-use program. Use it this way:
|
||||
|
||||
<PRE>
|
||||
~:# popclient -3 -u<I><host-login></I> -p<I><host-password></I> -o/var/spool/mail/<I><user></I> getmail
|
||||
~:# _
|
||||
</PRE>
|
||||
|
||||
<TT>getmail</TT> is the mailhost defined in <TT>/etc/hosts</TT>. If you give
|
||||
an additional "-k" as option, the emails at the provider will <I>not</I> be
|
||||
erased.
|
||||
<P>
|
||||
|
||||
<B>Hint:</B> In the meantime a powerful child of popclient was born:
|
||||
fetchmail. Sorry, but I'm not familiar with fetchmail until now.
|
||||
|
||||
|
||||
<H2>A Script</H2>
|
||||
|
||||
This script manages the fetching and sending of your emails. If you are
|
||||
lucky this takes so few time, that only one telephone tariff unit is lost.
|
||||
Some cosmetics in it create a readable log output of the running transfer.
|
||||
You create this script as root and store it in <TT>/sbin</TT>.
|
||||
This file is also written now in a way which allows more open applications at
|
||||
one time - it uses the file <TT>/sbin/isdn</TT> which we discussed in the
|
||||
last chapter.
|
||||
|
||||
<PRE>
|
||||
<B><A HREF="scripts/transmail">/sbin/transmail</A></B>
|
||||
#!/bin/sh
|
||||
# transmail.sh: exchanges email with the provider.
|
||||
# Author: Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>
|
||||
# Version: 4.0 (27-Jan-97)
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
. /etc/i4l.provider
|
||||
. /etc/i4l.secrets
|
||||
|
||||
cd / # against PATH=. effect
|
||||
|
||||
echo -----------------------------------------------------------------------
|
||||
echo -e "Starting mail transfer: \c"; date
|
||||
|
||||
. /sbin/connect on
|
||||
|
||||
echo "Checking mail server..."
|
||||
set `ping -qc5 -i1 getmail | grep transmitted`
|
||||
if [ $4 -gt 0 ]
|
||||
then
|
||||
echo ":-) Mail server online - starting mail exchange"
|
||||
echo "Sending mail..."
|
||||
sendmail -q
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
echo "Fetching mail..."
|
||||
popclient -3 -u $MAIL_LOGIN -p $MAIL_PASSWD -o $MAIL_PATH getmail
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
else
|
||||
echo ":-[ Sorry - mail server is down. Try later..."
|
||||
fi
|
||||
|
||||
. /sbin/isdn off
|
||||
|
||||
# allow dl4mhk access to mail:
|
||||
chown dl4mhk.users /var/spool/mail/dl4mhk
|
||||
|
||||
echo -e "Finished mail transfer: \c"; date
|
||||
</PRE>
|
||||
|
||||
The <TT>sleep</TT> commands are important: the connection may hang without
|
||||
them.
|
||||
<P>
|
||||
|
||||
|
||||
<H2>Let's cron!</H2>
|
||||
|
||||
If you want to run your computer twentyfour hours a day, you could create an
|
||||
automatic mail transfer using the <TT>cron</TT> daemon. Therefore do:
|
||||
<P>
|
||||
|
||||
<B>1.) modify cron table.</B><BR>
|
||||
<PRE>
|
||||
root:# cd ~
|
||||
root:# cp /var/spool/cron/crontabs/root .crontab
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Append the following lines to the file <TT>.crontab</TT>:
|
||||
<PRE>
|
||||
# Transfer mail
|
||||
30 04 * * * /sbin/transmail.sh 1>> /var/log/transmail-log 2>> /var/log/transmail-log
|
||||
</PRE>
|
||||
|
||||
<B>2.) Tell crond these modifications.</B><BR>
|
||||
<PRE>
|
||||
crontab .crontab
|
||||
</PRE>
|
||||
|
||||
Now the clock in the computer automatically handles all the emails. Each
|
||||
night at 4:30 a.m. the mails are fetched and sent. Remark: Of course
|
||||
the system time must be set properly - <TT>man date; man clock</TT>.
|
||||
<P>
|
||||
|
||||
You need to calculate what's more expensive: telephone or electricity.
|
||||
Electricity is expensive. But I use this system because it is so
|
||||
comfortable...
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 21-Feb-97
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,669 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
News
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 20-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="enews.gif" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Das Usenet anzapfen</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
|
||||
<FONT SIZE=+3><B>A</B></FONT>uch
|
||||
das Usenet bietet reichlich Informationen - ich möchte auf
|
||||
so einige Newsgroups nicht verzichten müssen.
|
||||
<P>
|
||||
|
||||
Ein recht leistungsfähiges Paket ist "InterNetNews", kurz INN, von
|
||||
Rich $alz. Den INN zu bändigen ist nicht ganz einfach. Wer
|
||||
<TT>sendmail</TT> geschafft hat, kann sich freuen: es wird schwieriger...!
|
||||
<P>
|
||||
|
||||
Das Holen und Senden von News könnte zwar auch der INN übernehmen,
|
||||
wir werden uns aber der intelligenteren Hilfe von <TT>newsflash</TT> und
|
||||
<TT>postit</TT> bedienen.
|
||||
<P>
|
||||
|
||||
Wieder gehe ich von der S.u.S.E.-Linuxdistribution aus. INN kann man
|
||||
sich hier sehr schön hinzuinstallieren (mit dem Tool "YaST"). Es wird
|
||||
bei der Installation in das Verzeichnis <TT>/usr/lib/news</TT> gesetzt.
|
||||
Wer die neue S.u.S.E. 4.2 sein Eigen nennt, kann sich übrigens einen
|
||||
(leider nicht besonders hilfreichen) Überblick unter
|
||||
<TT>/usr/lib/news/README.linux</TT> verschaffen. Dort ist der INN bereits
|
||||
vorinstalliert (wenn man das im YaST vermerkt hat), leider fehlt ihm aber die
|
||||
gesamte Dokumentation. Diese kann man sich beschaffen, indem man eine
|
||||
email an
|
||||
<A HREF="mailto:majordomo@warren.mentorg.com">majordomo@warren.mentorg.com</A>
|
||||
schreibt:
|
||||
<PRE>
|
||||
Subject: <I>egal</I>
|
||||
sendme faq-inn-1
|
||||
sendme faq-inn-2
|
||||
sendme faq-inn-3
|
||||
</PRE>
|
||||
Dann kommt eine ausführliche FAQ, in der die Funktion des INN und das
|
||||
Beheben vieler Fehler erklärt werden. Desweiteren sollte man sich die
|
||||
Anleitung
|
||||
<A HREF="ftp://pople.pc.uni-koeln.de/pub/news-0.3.ps">news-0.3.ps</A>
|
||||
von <A HREF="mailto:m.dickebohm@uni-koeln.de">Markus Dickebohm</A> beschaffen,
|
||||
die eine Installation eines <TT>INN/newsflash/postit</TT>-Systems hervorragend
|
||||
beschreibt. Man sehe sich auf diesem Server um, vielleicht gibt es inzwischen
|
||||
eine neuere Version. Auch kann man gleich die Pakete <TT>newsflash</TT> und
|
||||
<TT>postit</TT> mitnehmen (siehe unten unter "Geben und Nehmen").
|
||||
<P>
|
||||
|
||||
|
||||
<H2>InterNetNews</H2>
|
||||
|
||||
Zuerst werden wir uns des INN annehmen. Vorbedingung ist ein bereits
|
||||
installierter <TT>sendmail</TT>.
|
||||
|
||||
|
||||
<H3>Vorarbeiten</H3>
|
||||
|
||||
Der INN-Dämon <TT>innd</TT> beißt sich mit allem, was sonst noch
|
||||
am News-Port "horcht", und ein fataler Fehler kann eine Zeile in
|
||||
<TT>/etc/inetd.conf</TT> sein:
|
||||
<PRE>
|
||||
nntp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.nntpd
|
||||
</PRE>
|
||||
Das muß unbedingt mit einem "#" auskommentiert werden, sonst weigert sich
|
||||
der <TT>innd</TT>, anzuspringen (diese Erkenntnis hat mich Tage gekostet).
|
||||
INN läuft auch nicht mit C-News und anderen News-Dämonen zusammen.
|
||||
Ist auch nicht notwendig!
|
||||
<P>
|
||||
|
||||
Und nochwas muß man tun. Wenn dem INN etwas nicht paßt, schreibt
|
||||
er an "<TT>usenet@localhost</TT>". Den User "usenet" muß man dem System
|
||||
bekanntgeben - wie einige andere neue Mailadressen auch. Dies geschieht, indem
|
||||
man der Datei <TT>/etc/aliases</TT> folgende Zeile anfügt (eventuell
|
||||
muß man diese Datei neu erzeugen):
|
||||
|
||||
<PRE>
|
||||
<B>/etc/aliases</B>
|
||||
news: root
|
||||
newsadm: news
|
||||
newsadmin: news
|
||||
usenet: news
|
||||
</PRE>
|
||||
|
||||
Damit Sendmail Bescheid kriegt, muß man daraus einen Datenbanksatz
|
||||
machen:
|
||||
|
||||
<PRE>
|
||||
root:# newaliases
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Ab sofort geht also alle Post, die mit dem Usenetsystem zu tun hat, an
|
||||
<TT>root</TT>.
|
||||
<P>
|
||||
|
||||
Jetzt müssen wir in unsere <TT>/etc/hosts</TT>-Datei noch die Adresse
|
||||
unseres Newsservers eingeben. Die Adresse muß man sich aus der
|
||||
<A HREF="scripts/i4l.config.db">Datenbank</A> holen oder bei der Hotline
|
||||
seines Providers erfragen. Man schreibe hinzu:
|
||||
|
||||
<PRE>
|
||||
<B>/etc/hosts</B> (Ausschnitt)
|
||||
<I><IP-Adresse></I> <I><Name_des_Newsservers></I> getnews
|
||||
</PRE>
|
||||
<P>
|
||||
|
||||
|
||||
<H3>INN-Konfigurationsdateien</H3>
|
||||
|
||||
Nun sind wieder ein paar Konfigurationsdateien fällig:
|
||||
|
||||
<PRE>
|
||||
<B>/var/lib/news/inn.conf</B> (Slackware: /usr/lib/news/inn.conf)
|
||||
# Grundeinrichtumg des INN
|
||||
server: <I>Rechner.name</I>
|
||||
organization: <I>wie's beliebt</I>
|
||||
fromhost: <I>Email_adresse@Host.Rechner</I> # erscheint in Postings
|
||||
</PRE>
|
||||
|
||||
Hierzu kam ein Hinweis von Thomas Schoepf
|
||||
<schoepf@informatik.tu-muenchen.de>: Falls beim INN-Start die
|
||||
Fehlermeldung <TT>ME: cant GetConfigValue pathhost...</TT> auftritt, ist noch
|
||||
die Zeile <TT>pathhost: <I><Host.Fuer.News.Path></I></TT>
|
||||
einzufügen.
|
||||
|
||||
<PRE>
|
||||
<B>/var/lib/news/hosts.nntp</B> (Slackware: /usr/lib/news/hosts.nntp)
|
||||
# Welcher Rechner füttert unsere Newsreader?
|
||||
localhost:
|
||||
<I>Rechner.name</I>:
|
||||
|
||||
<B>/var/lib/news/nnrp.access</B> (Slackware: /usr/lib/news/nnrp.access)
|
||||
# Welche Rechner dürfen uns anzapfen?
|
||||
localhost:Read Post:::*
|
||||
(none):Read Post:::*
|
||||
<I>Rechner.name</I>:Read Post:::*
|
||||
|
||||
<B>/var/lib/news/newsfeeds</B> (Slackware: /usr/lib/news/newsfeeds)
|
||||
# Wohin gehen die News von uns aus?
|
||||
# Unsere News geben wir nicht mehr weiter
|
||||
ME\
|
||||
:*::
|
||||
# für NOV Übersichtsdatenbank
|
||||
@overview:*:Tc,WO:/usr/lib/news/bin/overchan
|
||||
# Den Provider füttern wir mit allem, was wir haben:
|
||||
get/<I>providername</I>\
|
||||
:*:Ap,Tf,Wnm:get
|
||||
</PRE>
|
||||
|
||||
Zur genauen Erklärung ziehe man bitte die INN-Doku zu Rate.
|
||||
<TT><I>providername</I></TT> ist der Name, der bei Usenetnews vom
|
||||
Provider im Header unter "Path:" vermerkt wird. Dieser muß exakt so
|
||||
geschrieben werden. Unterläßt man das, werden die Verhandlungen
|
||||
über neue/vorhandene Artikel unnötig verlängert.
|
||||
<P>
|
||||
|
||||
Es fehlen einige aktuelle Dateien, die man sich von seinem Newsserver holen
|
||||
muß. Man bedient sich dabei am besten des Scripts <TT>getlist</TT>,
|
||||
welches dem INN-Paket beiliegen sollte. Wenn nicht, kann man es per ftp
|
||||
beziehen:
|
||||
<PRE>
|
||||
<A HREF="ftp://unix.hensa.ac.uk/mirrors/yggdrasil.fall95.disk1/usr/lib/news/bin/getlist">unix.hensa.ac.uk/mirrors/yggdrasil.fall95.disk1/usr/lib/news/bin/getlist</A>.
|
||||
</PRE>
|
||||
Man bringt es in <TT>/usr/lib/news/bin</TT> unter und macht es mit
|
||||
"<TT>chmod news getlist</TT>" ausführbar.
|
||||
<P>
|
||||
|
||||
Nun also holt man sich mit <TT>getlist</TT> zwei Dateien von <TT>lrznews</TT>:
|
||||
<PRE>
|
||||
root:# /usr/lib/news/bin/getlist -h getnews active >/var/lib/news/active.raw
|
||||
root:# /usr/lib/news/bin/getlist -h getnews newsgroups >/var/lib/news/newsgroups
|
||||
root:# _
|
||||
</PRE>
|
||||
Bei der Slackware ist das <TT>/var/lib/news</TT> gegen <TT>/usr/lib/news</TT>
|
||||
zu ersetzen.
|
||||
<P>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<FONT SIZE=-1>
|
||||
Man kann das auch "zu Fuß", also ohne "getlist", erledigen, indem man
|
||||
zwei Telnetverbindungen macht:
|
||||
<PRE>
|
||||
root: # telnet getnews 119 >/var/lib/news/active.raw
|
||||
<I>nun 10 sec. warten - es erscheint *kein* Prompt!</I>
|
||||
list active
|
||||
<I>wieder ein paar Sekunden warten</I>
|
||||
quit
|
||||
<I>nun warten, bis der Heimatprompt erscheint (dauert etwas):</I>
|
||||
root: # telnet getnews 119 >/var/lib/news/newsgroups
|
||||
<I>nun 10 sec. warten - es erscheint *kein* Prompt!</I>
|
||||
list newsgroups
|
||||
<I>wieder ein paar Sekunden warten</I>
|
||||
quit
|
||||
<I>wieder warten, bis der Heimatprompt erscheint:</I>
|
||||
root: # _
|
||||
</PRE>
|
||||
</FONT>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
Die frisch geholte Datei <TT>active</TT> muß noch bearbeitet werden.
|
||||
Sie enthält alle abonnierbaren Usenet-Groups und die aktuellen
|
||||
Artikelnummern. <B>Warnung:</B> Diese Datei ist empfindlich. Sie verträgt
|
||||
keine Änderungen in Bezug auf die Anzahl der Worte pro Zeile, der
|
||||
"white spaces" oder der Ziffernzahl! Nichts außer der im folgenden
|
||||
genannten Änderungen darf gemacht werden!!!
|
||||
<P>
|
||||
|
||||
Zweierlei Dinge sind erforderlich.<BR>
|
||||
Erstens werden wir alle Artikelnummern auf
|
||||
Null setzen. Das geht so:
|
||||
<PRE>
|
||||
root:# cd /var/lib/news # Slackware: /usr/lib/news
|
||||
root:# sed 's/ [0-9]* [0-9]* / 0000000000 0000000001 /' active.raw > active
|
||||
root:# _
|
||||
</PRE>
|
||||
Zweitens muß nachgesehen werden, ob folgende drei Einträge
|
||||
enthalten sind - falls sie fehlen, muß man sie nachträglich
|
||||
eintragen:
|
||||
<PRE>
|
||||
to 0000000000 0000000001 y
|
||||
junk 0000000000 0000000001 y
|
||||
control 0000000000 0000000001 y
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>Politur</H3>
|
||||
|
||||
Es hat sich auf dem harten Wege gezeigt, daß der INN auch
|
||||
vollständigen Zugang zum Verzeichnis <TT>/var/run</TT> benötigt.
|
||||
<PRE>
|
||||
root:# chown root.root /var/run # (und nicht root.uucp!)
|
||||
root:# _
|
||||
</PRE>
|
||||
(eventuell muß man noch mit den Zugriffsrechten spielen.)
|
||||
<P>
|
||||
|
||||
Zur Kontrolle sehe man auch unter <TT>/var/spool/news</TT> nach, ob die
|
||||
Verzeichnisse <TT>in.coming, news.archive, out.going</TT> und
|
||||
<TT>over.view</TT> vorhanden sind - eventunnell mit <TT>mkdir</TT> erzeugen!
|
||||
<P>
|
||||
|
||||
Zum Schluß muß man unbedingt alle Dateien in
|
||||
<TT>/var/lib/news</TT> (Slackware: <TT>/usr/lib/news</TT> und in
|
||||
<TT>/var/spool/news</TT> dem User <TT>news</TT> zuweisen:
|
||||
<PRE>
|
||||
root:# chown -R news.news /usr/lib/news/* # bei Slackware nur dieses Vz.
|
||||
root:# chown -R news.news /var/lib/news/* # falls vorhanden
|
||||
root:# chown -R news.news /var/spool/news/* # falls vorhanden
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Zur abschließenden Grundeinrichtung läßt man auch noch
|
||||
erstmalig ein paar Hilfsprogramme laufen: <TT>makehistory</TT> und
|
||||
<TT>news.daily</TT>. Das macht man als User <TT>news</TT> (wichtig!):
|
||||
|
||||
<PRE>
|
||||
root# cd /
|
||||
root# su news -c "/usr/lib/news/bin/makehistory -o"
|
||||
root# su news -c "/usr/lib/news/bin/news.daily"
|
||||
root# _
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>Die große Frage: Funktioniert's?</H3>
|
||||
|
||||
Ein Versuchsstart geht so:
|
||||
<PRE>
|
||||
root:# /usr/lib/news/etc/rc.news
|
||||
Starting innd.
|
||||
root:# telnet localhost 119
|
||||
Trying 127.0.0.1...
|
||||
Connected to localhost.
|
||||
Escape character is '^]'.
|
||||
200 <I>Eigener.Rechner</I> InterNetNews NNRP server INN <I>Version Datum</I> ready (posting ok).
|
||||
<I>Es kommt <B>kein</B> Prompt!</I>
|
||||
</PRE>
|
||||
|
||||
Kommt diese Meldung, kann man dreimal tief durchatmen und laut "uff!!!" sagen.
|
||||
Mit <TT>quit</TT> entkommt man wieder.
|
||||
<P>
|
||||
|
||||
Ansonsten ist längere Fehlersuche angesagt, bei der man sich durch die
|
||||
INN-FAQ helfen lassen sollte. Vielleicht ist auch eine Mail an
|
||||
"<TT>usenet</TT>" - und damit an "<TT>root</TT>" - abgeschickt worden, aus der
|
||||
man bereits entnehmen können sollte, was schiefgelaufen ist. Fehlt die
|
||||
Mail, kann man immer noch auf das <TT>syslog</TT>, auf
|
||||
<TT>/var/log/messages</TT> oder auf die diversen logs in
|
||||
<TT>/var/lib/news/log</TT> zurückgreifen.
|
||||
<P>
|
||||
|
||||
Bei mir war die Montage reichlich nervenaufreibend und hat über einen
|
||||
Monat gedauert. Ich habe versucht, hier alle Fehlerquellen zu
|
||||
berücksichtigen, habe aber das dumpfe Gefühl, daß mir das nicht
|
||||
vollständig gelungen sein wird. Leider verhält sich der INN bei der
|
||||
Fehlersuche nicht sehr kooperativ... Dennoch denke ich, daß ich Euch das
|
||||
meiste bereits abgenommen habe.
|
||||
|
||||
|
||||
<H3>Einbau beim Rechnerstart</H3>
|
||||
|
||||
Der INN wird auch beim Neustart des Rechners mit rc.news gestartet. Man
|
||||
muß das in sie Startup-Sequenz einfügen.
|
||||
<P>
|
||||
|
||||
Wieder haben wir es entweder mit <TT>simpleinit</TT> oder mit <TT>sysvinit</TT>
|
||||
zu tun. Hier beide Varianten:
|
||||
<P>
|
||||
|
||||
|
||||
<H4>simpleinit (z.B. Slackware)</H4>
|
||||
|
||||
In der Datei <TT>/etc/rc.d/rc.M</TT> geben wir eine weitere Startup-Datei
|
||||
bekannt:
|
||||
<PRE>
|
||||
<B>/etc/rc.d/rc.M; Sektion "# Initialize the NET subsystem."</B>
|
||||
. /etc/rc.d/rc.inet1
|
||||
. /etc/rc.d/rc.isdn
|
||||
. /etc/rc.d/rc.inet2
|
||||
. /usr/lib/news/etc/rc.news # <-- diese Zeile einfügen!
|
||||
</PRE>
|
||||
Ferner muß man sich die Datei suchen, die beim Reboot des Rechners
|
||||
aufgerufen wird (oft die Datei <TT>/etc/rc.d/rc.6</TT>). Hier sollte man vor
|
||||
den eigentlichen Shutdown-Routinen eintragen:
|
||||
<PRE>
|
||||
<B>/etc/rc.d/rc.6</B>
|
||||
echo -n "Shutting down NNTP port:"
|
||||
/usr/lib/news/bin/ctlinnd throttle "shutdown"
|
||||
/usr/lib/news/bin/ctlinnd shutdown "shutdown"
|
||||
<I>[weitere Shutdown-Befehle]</I>
|
||||
</PRE>
|
||||
Sonst kommt es zu einer Reihe von (harmlosen) Fehlermeldungen beim
|
||||
Herunterfahren.
|
||||
<P>
|
||||
|
||||
|
||||
<H4>sysvinit (z.B. S.u.S.E., Caldera, Red Hat...)</H4>
|
||||
|
||||
Im Falle des sysvinit der SuSE 4.2 ist es ein klein wenig komplizierter. Als
|
||||
erstes entwirft man eine Start/Stop-Datei:
|
||||
<PRE>
|
||||
<B>/sbin/init.d/news</B> # (Red Hat: /etc/rc.d/news)
|
||||
#! /bin/sh
|
||||
# Author: Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>, 24-Jun-96
|
||||
# /sbin/init.d/news
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Initializing NNTP port. (INN)"
|
||||
/usr/lib/news/etc/rc.news # rc.news wird beim INN mitgeliefert
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down NNTP port:"
|
||||
/usr/lib/news/bin/ctlinnd throttle "shutdown"
|
||||
/usr/lib/news/bin/ctlinnd shutdown "shutdown"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}"
|
||||
exit 1
|
||||
esac
|
||||
exit 0
|
||||
</PRE>
|
||||
Damit sie beim Herauf- und Herunterfahren der Maschine erkannt wird, muß
|
||||
man noch einige Soft-Links setzen:
|
||||
<PRE>
|
||||
root:# cd /sbin/init.d/rc2.d # Bei anderen Distributionen
|
||||
root:# ln -s ../news K20news # gelten andere Pfade!
|
||||
root:# ln -s ../news S20news
|
||||
root:# _
|
||||
</PRE>
|
||||
Jetzt sollte beim Bootvorgang auch der Start von INN angezeigt werden -
|
||||
zusammen mit dem Sendmail-Dämon. Das Herunterfahren sollte ebenfalls
|
||||
"zivilisiert" ablaufen.
|
||||
|
||||
|
||||
<H3>Täglicher Kleinkram</H3>
|
||||
|
||||
Das bereits manuell aufgerufene Script <TT>news.daily</TT> muß von nun
|
||||
an täglich aufgerufen werden, sonst beschwert sich der INN per email
|
||||
beim User <TT>usenet</TT>. Wir entwerfen also eine kleine Crontab für den
|
||||
User <TT>news</TT>, der alleine dieses Script ausführen sollte:
|
||||
<PRE>
|
||||
<B>/var/cron/tabs/news</B> # (oder evtl. /var/spool/cron/crontabs/news)
|
||||
PATH=/usr/lib/news/bin:/usr/lib/news/etc:/usr/lib/news:/usr/bin:/usr/sbin
|
||||
10 07 * * * /usr/lib/news/bin/news.daily
|
||||
</PRE>
|
||||
Und das machen wir dem <TT>crond</TT> kenntlich:
|
||||
<PRE>
|
||||
root:# chown news.news /var/cron/tabs/news
|
||||
root:# crontab -u news /var/cron/tabs/news
|
||||
root:# _
|
||||
</PRE>
|
||||
Jetzt sollte das Script täglich um 7 Uhr 10 automatisch aufgerufen werden.
|
||||
<P>
|
||||
|
||||
<TT>news.daily</TT> erledigt das Aufräumen. Alte Newsartikel werden
|
||||
gelöscht, und alte Spuren wie veraltete Logfiles etc. werden beseitigt.
|
||||
Zwei Steuerdateien sind vielleicht noch ganz interessant:
|
||||
|
||||
<PRE>
|
||||
<B>/var/lib/news/expire.ctl</B> # Slackware: /usr/lib/news/expire.ctl
|
||||
# Wenn Artikel gelöscht, erinnern wir uns noch 14 Tage an
|
||||
# seine ID, damit er uns nicht erneut angeboten wird:
|
||||
/remember/:14
|
||||
# (A)lle Artikel werden mindestens 3, normalerweise 10 und maximal 30 Tage
|
||||
# lang behalten (min. und max. bei gesetztem Expiredatum an der Nachricht)
|
||||
*:A:3:10:30
|
||||
# Sonder-Newsgroups bleiben viel kürzer:
|
||||
junk:A:1:1:2
|
||||
control:A:1:1:2
|
||||
|
||||
<B>/var/lib/news/control.ctl</B> # Slackware: /usr/lib/news/control.ctl
|
||||
# Voreinstellung: Meckereinen des INN gehen per Mail an admin.
|
||||
all:*:*:mail
|
||||
</PRE>
|
||||
|
||||
|
||||
<H2>Geben und Nehmen</H2>
|
||||
|
||||
Zum Posten und News-Holen gibt es einige Pakete, die dem INN zuspielen
|
||||
können, beispielsweise <TT>newsflash+postit</TT> von Chris Blum oder
|
||||
<TT>suck+rpost</TT> von Tim Smith. INN hat eigentlich selbst Scripten "an
|
||||
Bord", mit denen man das erledigen könnte. Da aber das NNTP-Handshaking
|
||||
recht aufwendig ist und die Telefonleitung möglichst effektiv ausgelastet
|
||||
werden soll, ist es durchaus sinnvoll, auf ein intelligentes Programm
|
||||
zurückzugreifen.
|
||||
<P>
|
||||
|
||||
Zwar ist das <TT>suck</TT>-Paket bekannter, doch habe ich mich wegen der guten
|
||||
Konfigurierbarkeit für die (sehr kompakten) Programme von Chris Blum
|
||||
entschieden. Dazu kommt, daß diese die Telefonleitung sehr
|
||||
effizient nutzen und die Übertragung in mehrere Unterprozesse aufteilen.
|
||||
Während der Newsserver zum Bleistift gerade ein Newspaket schnürt,
|
||||
laufen parallel gerade Verhandlungen für die nächste Newsgroup.
|
||||
<P>
|
||||
|
||||
Die genannten Programme holt man sich per ftp bei
|
||||
<PRE>
|
||||
<A HREF="ftp://pople.pc.uni-koeln.de/pub/newsflash-0.99.tgz">pople.pc.uni-koeln.de/pub/newsflash-0.99.tgz</A>
|
||||
<A HREF="ftp://pople.pc.uni-koeln.de/pub/postit-jun96.tar.gz">pople.pc.uni-koeln.de/pub/postit-jun96.tar.gz</A>
|
||||
</PRE>
|
||||
(nachsehen, ob es neuere Versionen gibt!). Man verstaut sie im Verzeichnis
|
||||
<TT>/usr/src</TT> und entpackt sie dort mit
|
||||
<PRE>
|
||||
root:# tar zxfv newsflash-0.99.tgz
|
||||
root:# tar zxfv postit-jun96.tar.gz
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
|
||||
<H4>Installation von <TT>newsflash</TT></H4>
|
||||
|
||||
Newsflash holt ausgewählte Newsgroups (zumindest das, was noch nicht
|
||||
am heimischen Rechner ist).
|
||||
<P>
|
||||
|
||||
Vor der Compilation sollte man sich <TT>/usr/src/newsflash/config.h</TT>
|
||||
ansehen und die dort eingestellten Pfade einstellen (<TT>/var/lib/news</TT>
|
||||
oder bei Slackware <TT>/usr/lib/news/newsflash</TT>). Dann:
|
||||
<PRE>
|
||||
root:# cd /usr/src/newsflash
|
||||
root:# make dep
|
||||
...
|
||||
root:# make
|
||||
...
|
||||
root:# cp newsflash /usr/lib/news/bin
|
||||
root:# cp printdate /usr/lib/news/bin
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Damit <TT>newsflash</TT> weiß, welche Newsgroups es holen soll,
|
||||
muß man ihm in einer Datei mitteilen, wo er die Auflistung der
|
||||
gewünschten Newsgroups findet:
|
||||
<PRE>
|
||||
<B>/var/lib/news/serverlist</B> # oder Pfad entsprechend <TT>config.h</TT>!
|
||||
get1 getnews 119 /var/lib/news/packet1 <I>timestamp</I>
|
||||
get2 getnews 119 /var/lib/news/packet2 <I>timestamp</I>
|
||||
get3 getnews 119 /var/lib/news/packet3 <I>timestamp</I>
|
||||
get4 getnews 119 /var/lib/news/packet4 <I>timestamp</I>
|
||||
</PRE>
|
||||
|
||||
Hier werden vier Pakete abgewickelt, alle laufen über den News-Server des
|
||||
Providers. Das erste Wort in der Zeile ist eine Kennung, das zweite der Server
|
||||
(definiert in /etc/hosts),
|
||||
die 119 ist der Standard-Usenet-Port. Dann kommt die Paketbeschreibung und
|
||||
zum Schluß eine Zeitmarke (<I>timestamp</I>). Eine aktuelle Zeitmarke
|
||||
kann man mit einem Umrechenprogramm namens <TT>printdate</TT>, welches dem
|
||||
Newsflash-Paket beiliegt, erzeugen; die erzeugte neunstellige Zahl ist die
|
||||
Zahl der seit dem 1.1.1970 um Mitternacht verstrichenen Sekunden. Um die
|
||||
Usenet-News der beiden Vortage zu bekommen, zieht man etwa 150000 ab (ein Tag
|
||||
sind 86400 Sekunden) und trägt das Ergebnis als <I>timestamp</I> ein.
|
||||
<P>
|
||||
|
||||
Nun erzeugt man noch die Paketdateien, die man gerade eingetragen hat.
|
||||
Newsflash kann die Datenübertragung sehr gut optimieren, indem es
|
||||
parallel mehrere Pakete abarbeitet. Hier macht man ihm die Vorgabe, wie das
|
||||
zu geschehen hat:
|
||||
|
||||
<PRE>
|
||||
<B>/var/lib/news/packet1</TT> # Slackware: /usr/lib/news/newsflash/packet1
|
||||
de.comm.isdn
|
||||
fido.ger.isdn
|
||||
de.comp.os.linux.networking
|
||||
|
||||
<B>/var/lib/news/packet2</TT> # Slackware: /usr/lib/news/newsflash/packet2
|
||||
de.comp.os.linux.networking
|
||||
fido.ger.isdn
|
||||
de.comm.isdn
|
||||
|
||||
<B>/var/lib/news/packet3</TT> # Slackware: /usr/lib/news/newsflash/packet3
|
||||
de.comp.os.linux.misc
|
||||
de.comp.os.linux.hardware
|
||||
de.comp.os.linux.x
|
||||
lrz.*
|
||||
|
||||
<B>/var/lib/news/packet4</TT> # Slackware: /usr/lib/news/newsflash/packet4
|
||||
lrz.*
|
||||
de.comp.os.linux.x
|
||||
de.comp.os.linux.hardware
|
||||
de.comp.os.linux.misc
|
||||
</PRE>
|
||||
|
||||
Wie an sieht, haben die Pakete 1/2 und 3/4 den jeweils gleichen Inhalt, nur
|
||||
die Reihenfolge ist vertauscht. Auf diese Weise wird ein Paket gleichzeitig
|
||||
von zwei Seiten abgearbeitet, die Übertragung wird optimiert. Die Pakete
|
||||
sollten jeweils das etwa gleiche Newsaufkommen besitzen.
|
||||
|
||||
|
||||
<H4>Installation von <TT>postit</TT></H4>
|
||||
|
||||
Auch hier: Vor der Compilation sollte man sich
|
||||
<TT>/usr/src/postit/config.h</TT> ansehen und die dort eingestellten Pfade
|
||||
einstellen (<TT>/var/spool/news</TT>). In der Regel paßt diese Datei
|
||||
aber auf Anhieb.
|
||||
<PRE>
|
||||
root:# cd /usr/src/postit
|
||||
root:# make dep
|
||||
...
|
||||
root:# make
|
||||
...
|
||||
root:# cp postit /usr/lib/news/bin
|
||||
root:# cp samples/sendnews /usr/lib/news/bin
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Die hier zuletzt auftauchende Datei <TT>/usr/lib/news/bin/sendnews</TT>
|
||||
muß editiert werden:
|
||||
<PRE>
|
||||
<B>/usr/lib/news/bin/sendnews</B>
|
||||
SPOOLPATH=/var/spool/news
|
||||
OUTGOING=${SPOOLPATH}/out.going
|
||||
BINPATH=/usr/lib/news/bin
|
||||
|
||||
${BINPATH}/ctlinnd flush get
|
||||
mv ${OUTGOING}/get ${OUTGOING}/get.postit
|
||||
${BINPATH}/ctlinnd begin get
|
||||
${BINPATH}/postit get.postit getnews
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>Die zweite große Frage: Klappt's <I>immer noch</I>?</H3>
|
||||
|
||||
Der Aufruf von <TT>newsflash</TT> sollte nun für einige Minuten die
|
||||
ISDN-Leitung zum Glühen bringen. Auf der Konsole sollten jede Menge
|
||||
Meldungen kommen, was gerade so abläuft. Da das Programm optimal
|
||||
parallelisiert, mag das alles etwas durcheinander aussehen.
|
||||
<P>
|
||||
|
||||
Wenn's nicht klappt, bleibt nur eine Fehlersuche mit Hilfe der READMEs
|
||||
übrig... In der Regel muß man etwas mit den Einträgen
|
||||
in <TT>hosts.nntp, nnrp.access, newsfeeds</TT> etc. herumspielen.
|
||||
<P>
|
||||
|
||||
Ansonsten kann man jetzt mit einem Newsreader (z.B. <TT>nn, tin</TT> oder
|
||||
Netscape) die Newsgroups durchackern, die man per <TT>newsflash</TT>
|
||||
geordert hat.
|
||||
<P>
|
||||
|
||||
Zum Holen der Dateien kann man sich wieder ein Script machen, das dem
|
||||
Email-Hol-Script sehr ähnlich ist:
|
||||
<PRE>
|
||||
<B><A HREF="scripts/transnews">/sbin/transnews</A></B>
|
||||
#!/bin/sh
|
||||
# transnews: gets and sends usenet news.
|
||||
# Author: Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>
|
||||
# Version: 4.0 (27-Jan-97)
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
. /etc/i4l.provider
|
||||
. /etc/i4l.secrets
|
||||
|
||||
cd / # against PATH=. effect
|
||||
|
||||
echo -----------------------------------------------------------------------
|
||||
echo -e "Starting news transfer: \c"; date
|
||||
|
||||
. /sbin/connect on
|
||||
|
||||
echo "Checking news server..."
|
||||
set `ping -qc5 -i1 getnews | grep transmitted`
|
||||
if [ $4 -gt 0 ];
|
||||
then
|
||||
echo "8-) News server online - starting news poll"
|
||||
echo "Sending news..."
|
||||
su news -c "/usr/lib/news/bin/sendnews"
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
echo "Fetching news..."
|
||||
su news -c "/usr/lib/news/bin/newsflash -v"
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
else
|
||||
echo ":-[ Sorry - news server is down. Try later..."
|
||||
fi
|
||||
|
||||
. /sbin/isdn off
|
||||
|
||||
echo -e "Finished news transfer: \c"; date
|
||||
</PRE>
|
||||
|
||||
|
||||
<H2>Für dauerlaufende Rechner...</H2>
|
||||
|
||||
... muß man sich die <TT>crontab</TT> des Users <TT>root</TT>
|
||||
vornehmen und folgenden Eintrag hinzufügen:
|
||||
<PRE>
|
||||
# Transfer news every night at 04:29 a.m.
|
||||
29 04 * * * /sbin/transnews 1>> /var/log/news-log 2>> /var/log/news-log
|
||||
</PRE>
|
||||
Wie schon im email-Kapitel beschrieben muß der cron mit der neuen
|
||||
crontab aufgerufen werden. Es empfiehlt sich, die Übertragung der
|
||||
Newsgroups eine Minute vor dem Emailtransfer (nicht gleichzeitig!!) zu starten,
|
||||
dann kann man eventuell eine Tarifeinheit sparen. Würde der Transfer
|
||||
gleichzeitig gestartet, würde eine der beiden Anwendungen eine
|
||||
vermeintlich bereits offene Leitung erkennen und sofort loslegen, obwohl
|
||||
die Verbindung gerade erst aufgebaut wird. Die Übertragung würde
|
||||
abgebrochen.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
Viel Spaß mit den News!
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 20-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,637 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
News
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="enews.gif" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Tap the Usenet</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
|
||||
<FONT SIZE=+3><B>T</B></FONT>he
|
||||
Usenet offers lots of information - I wouldn't like it to miss some of them.
|
||||
<P>
|
||||
|
||||
A powerful package is Rich $alz's "InterNetNews", say INN.
|
||||
It isn't easy to master the INN. Who made the <TT>sendmail</TT>
|
||||
may be happy: it becomes more difficult...!
|
||||
<P>
|
||||
|
||||
INN would be able to fetch and send news by itself, but we will get some
|
||||
cooperation from a more intelligent package: <TT>newsflash</TT> and
|
||||
<TT>postit</TT>.
|
||||
<P>
|
||||
|
||||
Again I'll describe it depending on the S.u.S.E. 4.2 Linux distribution.
|
||||
Here INN is easily installable in the <TT>/usr/lib/news</TT> directory
|
||||
(with the "YaST" tool). By the way you can find here a (sorry, not very
|
||||
useful) overview: <TT>/usr/lib/news/README.linux</TT>, and INN is pre-installed
|
||||
(if marked in YaST), but all the Documentation is missing. You can get the
|
||||
documentation, if you send an email to
|
||||
<A HREF="mailto:majordomo@warren.mentorg.com">majordomo@warren.mentorg.com</A>
|
||||
<PRE>
|
||||
Subject: <I>empty</I>
|
||||
sendme faq-inn-1
|
||||
sendme faq-inn-2
|
||||
sendme faq-inn-3
|
||||
</PRE>
|
||||
Then you will receive a long FAQ describing how INN works and how to fix
|
||||
many problems. You also should read the tutorial (in German language)
|
||||
<A HREF="ftp://pople.pc.uni-koeln.de/pub/news-0.3.ps">news-0.3.ps</A>
|
||||
by <A HREF="mailto:m.dickebohm@uni-koeln.de">Markus Dickebohm</A>.
|
||||
It describes in a very good way how to install a <TT>INN/newsflash/postit</TT>
|
||||
system. Have a look at this server: Maybe there are newer tutorials available.
|
||||
And you could also load down the packages <TT>newsflash</TT> and
|
||||
<TT>postit</TT> (see below: "Give and Take").
|
||||
<P>
|
||||
|
||||
|
||||
<H2>InterNetNews</H2>
|
||||
|
||||
The first thing we will install is INN. A properly installed
|
||||
<TT>sendmail</TT> is required.
|
||||
|
||||
|
||||
<H3>Preworking</H3>
|
||||
|
||||
The INN daemon <TT>innd</TT> does not like any other program listening at the
|
||||
news port, and there may be a line in <TT>/etc/inetd.conf</TT> causing
|
||||
a fatal error:
|
||||
<PRE>
|
||||
nntp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.nntpd
|
||||
</PRE>
|
||||
You must add a "#" in the first column to make it a comment, otherwise
|
||||
<TT>innd</TT> will not start (I needed several days to notice that).
|
||||
INN does not run together with C News or any other news daemon, too.
|
||||
It isn't necessary, by the way.
|
||||
<P>
|
||||
|
||||
There is one thing you also should do. If INN does not like something it
|
||||
writes an email to "<TT>usenet@localhost</TT>". You must tell your system
|
||||
that "usenet" is a user of your system - some other mail addresses too.
|
||||
You do it by editing <TT>/etc/aliases</TT>. Add the following lines (perhaps
|
||||
you have to create a new file):
|
||||
|
||||
<PRE>
|
||||
<B>/etc/aliases</B>
|
||||
news: root
|
||||
newsadm: news
|
||||
newsadmin: news
|
||||
usenet: news
|
||||
</PRE>
|
||||
|
||||
Type in to tell sendmail the new aliases:
|
||||
|
||||
<PRE>
|
||||
root:# newaliases
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Now all emails concerning your Usenet system come to <TT>root</TT>.
|
||||
<P>
|
||||
|
||||
But before we start configuring INN we have to edit the file
|
||||
<TT>/etc/hosts</TT> and to insert one entry for the news server. Take the
|
||||
address from the <A HREF="scripts/i4l.config.db">database</A> or call the
|
||||
provider's hotline. Add:
|
||||
|
||||
<PRE>
|
||||
<B>/etc/hosts</B> (cutting)
|
||||
<I><IP address></I> <I><name_of_mail_server></I> getmail
|
||||
</PRE>
|
||||
<P>
|
||||
|
||||
|
||||
<H3>INN configuration files</H3>
|
||||
|
||||
There are some configuration files required.
|
||||
|
||||
<PRE>
|
||||
<B>/var/lib/news/inn.conf</B> (Slackware: /usr/lib/news/inn.conf)
|
||||
# Basic installation of INN
|
||||
server: <I>your.computer</I>
|
||||
organization: <I>as you like</I>
|
||||
fromhost: <I>Email_adresse@Host.Computer</I> # for posting header
|
||||
</PRE>
|
||||
|
||||
Thomas Schoepf <schoepf@informatik.tu-muenchen.de> wrote me:
|
||||
if there appears a error message like <TT>ME: cant GetConfigValue
|
||||
pathhost...</TT> while starting INN, you should add the line
|
||||
<TT>pathhost: <I><Host.Fuer.News.Path></I></TT>.
|
||||
|
||||
<PRE>
|
||||
|
||||
<B>/var/lib/news/hosts.nntp</B> (Slackware: /usr/lib/news/hosts.nntp)
|
||||
# Which site feeds our newsreader?
|
||||
localhost:
|
||||
<I>Rechner.name</I>:
|
||||
|
||||
<B>/var/lib/news/nnrp.access</B> (Slackware: /usr/lib/news/nnrp.access)
|
||||
# Which computers may tap us?
|
||||
localhost:Read Post:::*
|
||||
(none):Read Post:::*
|
||||
<I>your.computer</I>:Read Post:::*
|
||||
|
||||
<B>/var/lib/news/newsfeeds</B> (Slackware: /usr/lib/news/newsfeeds)
|
||||
# Where do the news go?
|
||||
# We don't feed our news to anywhere.
|
||||
ME\
|
||||
:*::
|
||||
# for NOV database
|
||||
@overview:*:Tc,WO:/usr/lib/news/bin/overchan
|
||||
# Feed the LRZ with all we have:
|
||||
get/getlist\
|
||||
:*:Ap,Tf,Wnm:get
|
||||
</PRE>
|
||||
|
||||
Please refer to the INN documentation for more information.
|
||||
<TT><I>providername</I></TT> is the name the provider writes into the news
|
||||
header in the "Path:" line. You must exacltly write it the way your provider
|
||||
does. If you don't the article negotiation will take much more time.
|
||||
<P>
|
||||
|
||||
There are some files missing, which can be fetched from the news server.
|
||||
Therefore you could use the script <TT>getlist</TT>, which should be part
|
||||
of the INN package. If not, load it via ftp:
|
||||
<PRE>
|
||||
<A HREF="ftp://unix.hensa.ac.uk/mirrors/yggdrasil.fall95.disk1/usr/lib/news/bin/getlist">unix.hensa.ac.uk/mirrors/yggdrasil.fall95.disk1/usr/lib/news/bin/getlist</A>.
|
||||
</PRE>
|
||||
Store it in <TT>/usr/lib/news/bin</TT> and make it executable:
|
||||
"<TT>chmod news getlist</TT>".
|
||||
<P>
|
||||
|
||||
So you can load two files from <TT>lrznews</TT> using <TT>getlist</TT>:
|
||||
<PRE>
|
||||
root:# /usr/lib/news/bin/getlist -h getnews active >/var/lib/news/active.raw
|
||||
root:# /usr/lib/news/bin/getlist -h getnews newsgroups >/var/lib/news/newsgroups
|
||||
root:# _
|
||||
</PRE>
|
||||
If you have the Slackware distribution change <TT>/var/lib/news</TT> against
|
||||
<TT>/usr/lib/news</TT>.
|
||||
<P>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<FONT SIZE=-1>
|
||||
You even could manage this manually (without "getlist") using telnet:
|
||||
<PRE>
|
||||
root: # telnet getnews 119 >/var/lib/news/active.raw
|
||||
<I>now wait 10 sec. - *no* prompt appears!</I>
|
||||
list active
|
||||
<I>wait again a few seconds</I>
|
||||
quit
|
||||
<I>wait until your own prompt appears (takes some time):</I>
|
||||
root: # telnet getnews 119 >/var/lib/news/newsgroups
|
||||
<I>now wait 10 sec. - *no* prompt appears!</I>
|
||||
list newsgroups
|
||||
<I>wait again a few seconds</I>
|
||||
quit
|
||||
<I>wait until your own prompt appears (takes some time):</I>
|
||||
root: # _
|
||||
</PRE>
|
||||
</FONT>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
The fresh file <TT>active</TT> must be edited now. In it you find all the
|
||||
subsribable Usenet groups and the actual posting numbers. <B>Warning:</B>
|
||||
this file is sensitive. It does not like any changes (words per line, number
|
||||
of white spaces or number of digits)! You may not change anything except
|
||||
the things we discuss here!!!
|
||||
<P>
|
||||
|
||||
You should do now two things. First, set all posting numbers zo zero.
|
||||
Do it this way:
|
||||
<PRE>
|
||||
root:# cd /var/lib/news # Slackware: /usr/lib/news
|
||||
root:# sed 's/ [0-9]* [0-9]* / 0000000000 0000000001 /' active.raw > active
|
||||
root:# _
|
||||
</PRE>
|
||||
Second, look if there are entries for the following newsgroups. If they are
|
||||
missing add them now.
|
||||
<PRE>
|
||||
to 0000000000 0000000001 y
|
||||
junk 0000000000 0000000001 y
|
||||
control 0000000000 0000000001 y
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>Polish</H3>
|
||||
|
||||
I found some errors the hard way. INN needs total access to the whole
|
||||
directory <TT>/var/run</TT>:
|
||||
<PRE>
|
||||
root:# chown root.root /var/run # (not root.uucp!)
|
||||
root:# _
|
||||
</PRE>
|
||||
(perhaps you need to play something with the access bits)
|
||||
<P>
|
||||
|
||||
For testing look into <TT>/var/spool/news</TT> whether the directories
|
||||
<TT>in.coming, news.archive, out.going</TT> and <TT>over.view</TT> are
|
||||
present - if not, create them using <TT>mkdir</TT>!
|
||||
<P>
|
||||
|
||||
Finally you must give all files in <TT>/var/lib/news</TT> (Slackware:
|
||||
<TT>/usr/lib/news</TT> and in <TT>/var/spool/news</TT> the user <TT>news</TT>:
|
||||
<PRE>
|
||||
root:# chown -R news.news /usr/lib/news/* # for Slackware only this one
|
||||
root:# chown -R news.news /var/lib/news/* # if present
|
||||
root:# chown -R news.news /var/spool/news/* # if present
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
For basic installation call now some assisting programs:
|
||||
<TT>makehistory</TT> and <TT>news.daily</TT>. Do it as user <TT>news</TT>
|
||||
(important!):
|
||||
|
||||
<PRE>
|
||||
root# cd /
|
||||
root# su news -c "/usr/lib/news/bin/makehistory -o"
|
||||
root# su news -c "/usr/lib/news/bin/news.daily"
|
||||
root# _
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>The Big Question: Does it Work?</H3>
|
||||
|
||||
A test start:
|
||||
<PRE>
|
||||
root:# /usr/lib/news/etc/rc.news
|
||||
Starting innd.
|
||||
root:# telnet localhost 119
|
||||
Trying 127.0.0.1...
|
||||
Connected to localhost.
|
||||
Escape character is '^]'.
|
||||
200 <I>my.computer</I> InterNetNews NNRP server INN <I>version date</I> ready (posting ok).
|
||||
<I><B>no</B> prompt appears!</I>
|
||||
</PRE>
|
||||
|
||||
If this message appears you may breath deeply and say loudly "uff!!!".
|
||||
You can escape here typing in <TT>quit</TT>.
|
||||
<P>
|
||||
|
||||
If the message does not appear, sorry: you need to find the bug, and this may
|
||||
take some time. Let the INN-FAQ help you. Perhaps INN could send you an email
|
||||
to "<TT>usenet</TT>" - respectively "<TT>root</TT>", in which you may read what
|
||||
happened. If there is no mail perhaps you can find some hints in the
|
||||
<TT>syslog</TT>, in <TT>/var/log/messages</TT> or in the log files in
|
||||
<TT>/var/lib/news/log</TT>.
|
||||
<P>
|
||||
|
||||
The INN installation made some gray hairs onto my head and took more than
|
||||
one month time. I tried to tell you all the mistake possibilities, but I feel
|
||||
I could not cover all of them. The INN is not very cooperative while
|
||||
debugging... But I think I could help you in most cases
|
||||
|
||||
|
||||
<H3>Start-up of the System</H3>
|
||||
|
||||
The INN is started while system start in rc.news. You must include it in
|
||||
the start-up sequence.
|
||||
<P>
|
||||
|
||||
Again we have the possibls cases <TT>sinpleinit</TT> or <TT>sysvinit</TT>.
|
||||
<P>
|
||||
|
||||
|
||||
<H4>simpleinit (e.g. Slackware)</H4>
|
||||
|
||||
In <TT>/etc/rc.d/rc.M</TT> we define a new file:
|
||||
<PRE>
|
||||
<B>/etc/rc.d/rc.M; Sektion "# Initialize the NET subsystem."</B>
|
||||
. /etc/rc.d/rc.inet1
|
||||
. /etc/rc.d/rc.isdn
|
||||
. /etc/rc.d/rc.inet2
|
||||
. /usr/lib/news/etc/rc.news # <-- add this line!
|
||||
</PRE>
|
||||
You also must find the file which is called while system reboot (often this is
|
||||
<TT>/etc/rc.d/rc.6</TT>). Here you should add before the shutdown commands:
|
||||
<PRE>
|
||||
<B>/etc/rc.d/rc.6</B>
|
||||
echo -n "Shutting down NNTP port:"
|
||||
/usr/lib/news/bin/ctlinnd throttle "shutdown"
|
||||
/usr/lib/news/bin/ctlinnd shutdown "shutdown"
|
||||
<I>[more shutdown commands]</I>
|
||||
</PRE>
|
||||
If you don't some (harmless) error messages appear while shutdown.
|
||||
<P>
|
||||
|
||||
|
||||
<H4>sysvinit (z.B. S.u.S.E, Caldera, Red Hat...)</H4>
|
||||
|
||||
If you have sysvinit (like S.u.S.E. 4.2) it is a bit more complicated.
|
||||
First, create a start/stop file:
|
||||
<PRE>
|
||||
<B>/sbin/init.d/news</B> # (Red Hat: /etc/rc.d/news)
|
||||
#! /bin/sh
|
||||
# Author: Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>, 24-Jun-96
|
||||
# /sbin/init.d/news
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Initializing NNTP port. (INN)"
|
||||
/usr/lib/news/etc/rc.news # rc.news wird beim INN mitgeliefert
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down NNTP port:"
|
||||
/usr/lib/news/bin/ctlinnd throttle "shutdown"
|
||||
/usr/lib/news/bin/ctlinnd shutdown "shutdown"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}"
|
||||
exit 1
|
||||
esac
|
||||
exit 0
|
||||
</PRE>
|
||||
You must set some soft links, because the system needs to know which files
|
||||
have to be executed while starting or stopping:
|
||||
<PRE>
|
||||
root:# cd /sbin/init.d/rc2.d # There are other path definitions
|
||||
root:# ln -s ../news K20news # in other Linux distributions!
|
||||
root:# ln -s ../news S20news
|
||||
root:# _
|
||||
</PRE>
|
||||
Now while booting the INN start-up should appear on the screen - together
|
||||
with the sendmail daemon. Also while shutdown some messages should appear.
|
||||
|
||||
|
||||
<H3>Daily Work</H3>
|
||||
|
||||
The file <TT>news.daily</TT> we used above should be called daily - if not,
|
||||
INN will mail some reproaches to the user <TT>usenet</TT>. And therefore
|
||||
we create a small crontab entry for the user <TT>news</TT>, who should
|
||||
be the only user allowed to execute this script:
|
||||
<PRE>
|
||||
<B>/var/cron/tabs/news</B> # (perhaps /var/spool/cron/crontabs/news)
|
||||
PATH=/usr/lib/news/bin:/usr/lib/news/etc:/usr/lib/news:/usr/bin:/usr/sbin
|
||||
10 07 * * * /usr/lib/news/bin/news.daily
|
||||
</PRE>
|
||||
We tell this now <TT>crond</TT>:
|
||||
<PRE>
|
||||
root:# chown news.news /var/cron/tabs/news
|
||||
root:# crontab -u news /var/cron/tabs/news
|
||||
root:# _
|
||||
</PRE>
|
||||
Now the script should be called every day at 07:10 a.m.
|
||||
<P>
|
||||
|
||||
<TT>news.daily</TT> does the cleaning and garbage collecting. Old news
|
||||
postings will be erased, and some old log files and so on will be deleted,
|
||||
too. There are two control files which may be interesting:
|
||||
|
||||
<PRE>
|
||||
<B>/var/lib/news/expire.ctl</B> # Slackware: /usr/lib/news/expire.ctl
|
||||
# If posting is erased we will remember its ID 14 days, because
|
||||
# we don't want to receive it again:
|
||||
/remember/:14
|
||||
# (A)ll postings will be kept min. 3, regularly 10 and max. 30 days
|
||||
# (min. and max., if an expire date is set in the posting)
|
||||
*:A:3:10:30
|
||||
# some special newsgroups may remain much shorter:
|
||||
junk:A:1:1:2
|
||||
control:A:1:1:2
|
||||
|
||||
<B>/var/lib/news/control.ctl</B> # Slackware: /usr/lib/news/control.ctl
|
||||
# preset: if INN wants to tell something it has to mail it to admin.
|
||||
all:*:*:mail
|
||||
</PRE>
|
||||
|
||||
|
||||
<H2>Give and Take</H2>
|
||||
|
||||
To operate posting and polling some software packages exist, which are able to
|
||||
cooperate with INN, like <TT>newsflash+postit</TT> by Chris Blum or
|
||||
<TT>suck+rpost</TT> by Tim Smith. INN also has some scripts on board which
|
||||
could do it. But the NNTP handshake is very complicated, and the telephone
|
||||
connection should be used very effectively, it is a good choice to take a more
|
||||
intelligent package.
|
||||
<P>
|
||||
|
||||
The program <TT>suck</TT> is more known, but I choosed the (very compact)
|
||||
programs by Chris Blum, because they are highly configurable. They use
|
||||
the telephone line very efficiently, because they open more than one
|
||||
connection to the news server. So, while the news server may create a news
|
||||
packet, there may take place some discussions about the next packet at the
|
||||
same time.
|
||||
<P>
|
||||
|
||||
Load these programs down using ftp at
|
||||
<PRE>
|
||||
<A HREF="ftp://pople.pc.uni-koeln.de/pub/newsflash-0.99.tgz">pople.pc.uni-koeln.de/pub/newsflash-0.99.tgz</A>
|
||||
<A HREF="ftp://pople.pc.uni-koeln.de/pub/postit-jun96.tar.gz">pople.pc.uni-koeln.de/pub/postit-jun96.tar.gz</A>
|
||||
</PRE>
|
||||
(please look if there are newer versions!) Store it in the directory
|
||||
<TT>/usr/src</TT> and extract them:
|
||||
<PRE>
|
||||
root:# tar zxfv newsflash-0.99.tgz
|
||||
root:# tar zxfv postit-jun96.tar.gz
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
|
||||
<H4>Installation of <TT>newsflash</TT></H4>
|
||||
|
||||
Newsflash fetches some choosed newsgroups (the ones not existing yet at home).
|
||||
<P>
|
||||
|
||||
Before compilation you should edit <TT>/usr/src/newsflash/config.h</TT>
|
||||
and set the path variables correctly for your system (<TT>/var/lib/news</TT>
|
||||
or <TT>/usr/lib/news/newsflash</TT> for Slackware). Then:
|
||||
<PRE>
|
||||
root:# cd /usr/src/newsflash
|
||||
root:# make dep
|
||||
...
|
||||
root:# make
|
||||
...
|
||||
root:# cp newsflash /usr/lib/news/bin
|
||||
root:# cp printdate /usr/lib/news/bin
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
<TT>newsflash</TT> needs to know which newsgroups it shall retrieve, so
|
||||
you must tell this in a file: it contains the files listing the desired
|
||||
groups:
|
||||
<PRE>
|
||||
<B>/var/lib/news/serverlist</B> # or path defined in <TT>config.h</TT>!
|
||||
get1 getnews 119 /var/lib/news/packet1 <I>timestamp</I>
|
||||
get2 getnews 119 /var/lib/news/packet2 <I>timestamp</I>
|
||||
get3 getnews 119 /var/lib/news/packet3 <I>timestamp</I>
|
||||
get4 getnews 119 /var/lib/news/packet4 <I>timestamp</I>
|
||||
</PRE>
|
||||
|
||||
Here four packets are executed, all aim at the news server of the provider.
|
||||
The first word is an ID string, the second is the server defined in
|
||||
/etc/hosts, 119 is the standard news port. The packet description follows,
|
||||
and the last number is a timestamp. You can calculate an active timestamp
|
||||
using the program <TT>printdate</TT> (included in the newsflash package);
|
||||
the produced 9 digit number tells us how many seconds are gone since
|
||||
January 1st at midnight. To retrieve the new news since the last two days
|
||||
you should subtract about 150000 or so (one day are 86400 seconds) and
|
||||
type in the result as timestamp.
|
||||
<P>
|
||||
|
||||
Now we must prepare the packet files we defined above. Newsflash can
|
||||
optimize very good the data transmission parallelizing more than one
|
||||
packet. Here we tell it how to execute the transmission:
|
||||
|
||||
<PRE>
|
||||
<B>/var/lib/news/packet1</TT> # Slackware: /usr/lib/news/newsflash/packet1
|
||||
de.comm.isdn
|
||||
fido.ger.isdn
|
||||
de.comp.os.linux.networking
|
||||
|
||||
<B>/var/lib/news/packet2</TT> # Slackware: /usr/lib/news/newsflash/packet2
|
||||
de.comp.os.linux.networking
|
||||
fido.ger.isdn
|
||||
de.comm.isdn
|
||||
|
||||
<B>/var/lib/news/packet3</TT> # Slackware: /usr/lib/news/newsflash/packet3
|
||||
de.comp.os.linux.misc
|
||||
de.comp.os.linux.hardware
|
||||
de.comp.os.linux.x
|
||||
lrz.*
|
||||
|
||||
<B>/var/lib/news/packet4</TT> # Slackware: /usr/lib/news/newsflash/packet4
|
||||
lrz.*
|
||||
de.comp.os.linux.x
|
||||
de.comp.os.linux.hardware
|
||||
de.comp.os.linux.misc
|
||||
</PRE>
|
||||
|
||||
As you see the packets 1/2 and 3/4 have the same contents, but in reverse
|
||||
order. So one packet is executed from both ends, and the transmission is
|
||||
optimized. The packets should have the same estimated number of postings.
|
||||
|
||||
|
||||
<H4>Installation of <TT>postit</TT></H4>
|
||||
|
||||
Again here: before compilation you should edit
|
||||
<TT>/usr/src/postit/config.h</TT> and correct the defined paths there
|
||||
(<TT>/var/spool/news</TT>). Most times this file should be ok.
|
||||
<PRE>
|
||||
root:# cd /usr/src/postit
|
||||
root:# make dep
|
||||
...
|
||||
root:# make
|
||||
...
|
||||
root:# cp postit /usr/lib/news/bin
|
||||
root:# cp samples/sendnews /usr/lib/news/bin
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
The last file we copied here (<TT>/usr/lib/news/bin/sendnews</TT> ) must be
|
||||
edited:
|
||||
<PRE>
|
||||
<B>/usr/lib/news/bin/sendnews</B>
|
||||
SPOOLPATH=/var/spool/news
|
||||
OUTGOING=${SPOOLPATH}/out.going
|
||||
BINPATH=/usr/lib/news/bin
|
||||
|
||||
${BINPATH}/ctlinnd flush get
|
||||
mv ${OUTGOING}/get ${OUTGOING}/get.postit
|
||||
${BINPATH}/ctlinnd begin get
|
||||
${BINPATH}/postit get.postit getnews
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>Another Big Question: Working Anyway?</H3>
|
||||
|
||||
If you call now <TT>newsflash</TT> the telephone wire should get hot now for
|
||||
some minutes. You should be able to see what's going on on your console.
|
||||
The messages may seem to be mis-ordered, because the process is parallelized.
|
||||
<P>
|
||||
|
||||
If it does not work, you must look for the bug. Read the README. In most
|
||||
cases you need to edit again one of the files <TT>hosts.nntp, nnrp.access,
|
||||
newsfeeds</TT> etc. and play with the entries.
|
||||
<P>
|
||||
|
||||
If it works you can read now the news groups with a news reader like
|
||||
<TT>nn, tin</TT> or Netscape).
|
||||
<P>
|
||||
|
||||
To fetch the news automatically you may use the following script, which is
|
||||
very similar to the email fetcher script.
|
||||
<PRE>
|
||||
<B><A HREF="scripts/transnews">/sbin/transnews</A></B>
|
||||
#!/bin/sh
|
||||
# transnews: gets and sends usenet news.
|
||||
# Author: Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>
|
||||
# Version: 4.0 (27-Jan-97)
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
. /etc/i4l.provider
|
||||
. /etc/i4l.secrets
|
||||
|
||||
cd / # against PATH=. effect
|
||||
|
||||
echo -----------------------------------------------------------------------
|
||||
echo -e "Starting news transfer: \c"; date
|
||||
|
||||
. /sbin/connect on
|
||||
|
||||
echo "Checking news server..."
|
||||
set `ping -qc5 -i1 getnews | grep transmitted`
|
||||
if [ $4 -gt 0 ];
|
||||
then
|
||||
echo "8-) News server online - starting news poll"
|
||||
echo "Sending news..."
|
||||
su news -c "/usr/lib/news/bin/sendnews"
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
echo "Fetching news..."
|
||||
su news -c "/usr/lib/news/bin/newsflash -v"
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
else
|
||||
echo ":-[ Sorry - news server is down. Try later..."
|
||||
fi
|
||||
|
||||
. /sbin/isdn off
|
||||
|
||||
echo -e "Finished news transfer: \c"; date
|
||||
</PRE>
|
||||
|
||||
|
||||
<H2>Does Your Computer Run All the Time?</H2>
|
||||
|
||||
Yes? Then you should edit the <TT>crontab</TT> of <TT>root</TT> and add the
|
||||
following:
|
||||
<PRE>
|
||||
# Transfer news every night at 04:29 a.m.
|
||||
29 04 * * * /sbin/transnews 1>> /var/log/news-log 2>> /var/log/news-log
|
||||
</PRE>
|
||||
As described in the email chapter cron must be called with the new crontab
|
||||
now. The script scould be started one minute before the email transfer starts
|
||||
(not at the same time!!), so perhaps one tariff unit can be saved.
|
||||
If you would start the transfer at the same time, one of the applications
|
||||
would see a open line where no one is (opening a line takes some time).
|
||||
The connection would be interrupted.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
Have Fun in the Usenet!!
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 20-Feb-97
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,81 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Linux, ISDN und synchrones PPP
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 1-Mar-1997 -->
|
||||
</HEAD>
|
||||
<BODY>
|
||||
|
||||
|
||||
<CENTER>
|
||||
<P>
|
||||
<IMG SRC="faq.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Die ISDN4linux-FAQ
|
||||
</FONT>
|
||||
</P>
|
||||
</CENTER>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<H2>Die neueste ISDN4Linux-FAQ Version</H2>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.html">ungepackt, HTML</A> (Achtung, sehr
|
||||
groß; unter Linux kann Netscape zum Ansehen auch die gzipte Version
|
||||
darstellen!)<BR>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.html.gz">gzip, HTML</A> (entpacken
|
||||
unter Linux mit "gunzip ..."; nicht für DOS geeignet)<BR>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.html.zip">zip, HTML</A> (kann mit
|
||||
dem DOS-pkunzip entpackt werden)<BR>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.asc">ungepackt, ASCII</A> (Achtung, sehr
|
||||
groß; unter Linux kann Netscape zum Ansehen auch die gzipte Version
|
||||
darstellen!)<BR>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.asc.gz">gzip, ASCII</A> (entpacken
|
||||
unter Linux mit "gunzip ..."; nicht für DOS geeignet)<BR>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.asc.zip">zip, ASCII</A> (kann mit
|
||||
dem DOS-pkunzip entpackt werden)<BR>
|
||||
<P>
|
||||
|
||||
<H3>The newest English ISDN4Linux-FAQ (auf Englisch)</H3>
|
||||
Attention! Because the FAQ is developed in German, and then translated into
|
||||
English, the English version might be slightly older than the German one!)
|
||||
<P>
|
||||
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.html">uncompressed, HTML</A> (under
|
||||
Linux Netscape can display the gzipped FAQ, too!)<BR>
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.html.gz">gzip, HTML</A> (uncompress under
|
||||
Linux with "gunzip ..."; not for DOS systems)<BR>
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.html.zip">zip, HTML</A> (uncompress under
|
||||
DOS using pkunzip)<BR>
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.asc">uncompressed, ASCII</A> (under Linux
|
||||
Netscape can display the gzipped FAQ, too!)<BR>
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.asc.gz">gzip, ASCII</A> (decompress under
|
||||
Linux with "gunzip ..."; not for DOS systems)<BR>
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.asc.zip">zip, ASCII</A> (decompress under
|
||||
DOS using pkunzip)<BR>
|
||||
<P>
|
||||
|
||||
Zum downloaden muß eventuell die SHIFT-Taste während des
|
||||
Anklickens gedrückt werden! Unbedingt sicherstellen, daß der Cache
|
||||
nicht die alte Version enthält!!! Bei Problemen bitte ich um Email an
|
||||
<TT><A HREF="mailto:hailer@ilo.baynet.de?subject=i4l-FAQ-Problem">
|
||||
hailer@ilo.baynet.de</A></TT>.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis.html" TARGET=_top>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 01-Mar-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 6.3 KiB |
|
@ -0,0 +1,87 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Linux, ISDN and syncPPP
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 1-Mar-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="faq.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>How to Get Access to the Internet With Linux
|
||||
Over ISDN and syncronous PPP</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<H3>The newest English ISDN4Linux-FAQ</H3>
|
||||
Attention! Because the FAQ is developed in German, and then translated into
|
||||
English, the English version might be slightly older than the German one!)
|
||||
<P>
|
||||
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.html">uncompressed, HTML</A> (under
|
||||
Linux Netscape can display the gzipped FAQ, too!)<BR>
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.html.gz">gzip, HTML</A> (uncompress under
|
||||
Linux with "gunzip ..."; not for DOS systems)<BR>
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.html.zip">zip, HTML</A> (uncompress under
|
||||
DOS using pkunzip)<BR>
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.asc">uncompressed, ASCII</A> (under Linux
|
||||
Netscape can display the gzipped FAQ, too!)<BR>
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.asc.gz">gzip, ASCII</A> (decompress under
|
||||
Linux with "gunzip ..."; not for DOS systems)<BR>
|
||||
<A HREF="../i4l-faq/eng-i4l-faq.asc.zip">zip, ASCII</A> (decompress under
|
||||
DOS using pkunzip)<BR>
|
||||
<P>
|
||||
|
||||
<H2>Die neueste ISDN4Linux-FAQ Version (in German)</H2>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.html">ungepackt, HTML</A> (Achtung, sehr
|
||||
groß; unter Linux kann Netscape zum Ansehen auch die gzipte Version
|
||||
darstellen!)<BR>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.html.gz">gzip, HTML</A> (entpacken
|
||||
unter Linux mit "gunzip ..."; nicht für DOS geeignet)<BR>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.html.zip">zip, HTML</A> (kann mit
|
||||
dem DOS-pkunzip entpackt werden)<BR>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.asc">ungepackt, ASCII</A> (Achtung, sehr
|
||||
groß; unter Linux kann Netscape zum Ansehen auch die gzipte Version
|
||||
darstellen!)<BR>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.asc.gz">gzip, ASCII</A> (entpacken
|
||||
unter Linux mit "gunzip ..."; nicht für DOS geeignet)<BR>
|
||||
<A HREF="../i4l-faq/de-i4l-faq.asc.zip">zip, ASCII</A> (kann mit
|
||||
dem DOS-pkunzip entpackt werden)<BR>
|
||||
<P>
|
||||
|
||||
To load down sometimes it is required to press the SHIFT button while
|
||||
clicking! And be sure you have cleared your cache!!!
|
||||
If any problem appears please email to
|
||||
<TT><A HREF="mailto:hailer@ilo.baynet.de?subject=i4l-FAQ problem">
|
||||
hailer@ilo.baynet.de</A></TT>.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 01-Mar-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Fax
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="fax.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Wir machen Fax(en)</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
|
||||
<H2>Der Einsatz als Faxgerät</H2>
|
||||
|
||||
klappt leider nicht, wenn man das mit ISDN4Linux machen will. Das liegt daran,
|
||||
daß Linux ein Multi-Tasking-System ist und Fax doch sehr timingkritisch
|
||||
ist. Unter Windows 3.11 mag es noch klappen, aber Linux ist einfach nicht
|
||||
echtzeitfähig. Dafür kann es sonst alles :-)
|
||||
<P>
|
||||
|
||||
Wer also Fax machen will, ist auf ein analoges Modem angewiesen. Als Software
|
||||
bietet sich sofort <TT>mgetty+sendfax</TT> von Gert Doering an. Hier
|
||||
gleich eine <B>Warnung</B>: mit Billigmodems (40 Mark im Laden um die Ecke)
|
||||
geht sowas gerne schief! Ich habe mit einem solchen Billigteil eine Woche
|
||||
Zeit und unzählige Telefoneinheiten verplempert, bis ich eingesehen
|
||||
hatte, daß hier einfach etwas besseres her mußte. Das neue Modem
|
||||
war acht mal so teuer - lief aber dafür auf Anhieb!
|
||||
<P>
|
||||
|
||||
Hier also die Beschreibung, wie man mit einem Analogmodem Fax empfangen kann.
|
||||
Mein Anschluß ist inzwischen total "sophisticated": ich habe parallel
|
||||
einen Anrufbeantworter (vgetty) laufen, der automatisch erkennt, wenn ein Fax
|
||||
oder Daten kommen, und dann entsprechend handeln kann.
|
||||
<P>
|
||||
|
||||
Mgetty muß man sich zunächst holen, zum Beispiel hier:
|
||||
|
||||
<A HREF="ftp://ftp.leo.org/pub/comp/networking/communication/modem/mgetty/mgetty-latest.tar.gz">ftp.leo.org/pub/comp/networking/communication/modem/mgetty/mgetty-latest.tar.gz</A>
|
||||
|
||||
|
||||
<H3>Konfiguration</H3>
|
||||
|
||||
Die wichtigste Datei im Paket ist <TT>policy.h-dist</TT>. Diese muß man
|
||||
vorbereiten
|
||||
|
||||
<PRE>
|
||||
root:# cp policy.h_dist policy.h
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
und editieren. Folgende Umstellungen sollten gemacht werden (alle anderen
|
||||
sind nach den Erfordernissen des Modems, der Telefonanlage und des eigenen
|
||||
Geschmacks zu konfigurieren):
|
||||
|
||||
<PRE>
|
||||
#define LOG_PATH "/var/log/mgetty.%s"
|
||||
#define MGETTY_PID_FILE "/var/run/mgetty-pid.%s"
|
||||
#define MODEM_CHECK_TIME -1 /* will not test modem periodically */
|
||||
#define FAX_IN_OWNER "<user>" /* my username */
|
||||
#define FAX_LOG "/var/log/fax-log"
|
||||
#define FAX_STATION_ID "++49 xxxx yyyyyy" /* my ID */
|
||||
#define FAX_MODEM_TTYS "ttyS1"
|
||||
</PRE>
|
||||
|
||||
Man lasse sich unbedingt von der guten Doku leiten!
|
||||
<P>
|
||||
|
||||
Jetzt editiert man noch das Makefile und baut ein:
|
||||
|
||||
<PRE>
|
||||
<B>/usr/src/mgetty-0.99.x/Makefile</B> (Ausschnitt)
|
||||
|
||||
...
|
||||
INSTALL=install -c -o root -g root
|
||||
...
|
||||
</PRE>
|
||||
|
||||
Und nun machen wir's:
|
||||
|
||||
<PRE>
|
||||
root:# make
|
||||
root:# make install
|
||||
root# _
|
||||
</PRE>
|
||||
|
||||
Damit mgetty sich auf die Lauer legen kann, muss man es in die Init-Tabelle
|
||||
eintragen. Der folgende Eintrag leistet das (hier für den Fall, daß
|
||||
das Modem an /dev/ttyS1 hängt - der Chat-String muß dem Modem
|
||||
entsprechend angepaßt sein!):
|
||||
|
||||
<PRE>
|
||||
S1:23:respawn:/usr/local/sbin/mgetty -m '"" ATZ0 OK ATA' -x 3 -n 5 /dev/ttyS1
|
||||
</PRE>
|
||||
|
||||
Damit nimmt mgetty nach dem fünften Klingeln ab und nimmt Daten entgegen.
|
||||
|
||||
|
||||
<H3>Faxe senden<H3>
|
||||
|
||||
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
After Width: | Height: | Size: 7.0 KiB |
|
@ -0,0 +1,49 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Fax
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="fax.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Facsimile</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
|
||||
<H3>Running a fax machine</H3>
|
||||
|
||||
... would be a great thing. But it will take some time until I'm able to
|
||||
handle it. Please do not ask for it before the end of the year - even then it
|
||||
maybe not finished... I think will use the combination of <TT>mgetty</TT> and
|
||||
<TT>sendfax</TT>, which seems to work well as some guys in the Usenet told.
|
||||
<P>
|
||||
|
||||
Gert Doering, the <TT>mgetty+sendfax</TT> developer wrote in the i4l mailing
|
||||
list, that his software soon will work with ISDN4Linux perhaps (you need a fax
|
||||
modem yet). We will have to wait for it...
|
||||
<P>
|
||||
|
||||
There is one possibility to prepare an operating fax system: take an old
|
||||
2400 baud modem (with fax ability) or better a 14400 one and use it with
|
||||
mgetty; connect it to your ISDN telephone station. If there are cables free.
|
||||
Here are no one free, and I can't :-(
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
After Width: | Height: | Size: 7.3 KiB |
|
@ -0,0 +1,221 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
FTP on demand
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="ftp.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>FTP on demand
|
||||
</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>D</B></FONT>as
|
||||
kennt man: wenn man von einem etwas weiter entfernten Server (womöglich
|
||||
aus Übersee) eine große
|
||||
Binärdatei holen will, wird die maximale Übertragungsrate nicht
|
||||
mehr richtig ausgenutzt - besonders bei ISDN passiert das schnell. Nun hat man
|
||||
sich keinen ISDN-Anschluß legen lassen, um dem Fernmeldeanbieter das
|
||||
Geld in den Rachen zu werfen, und außerdem benutzen wir das beste
|
||||
Betriebssystem der Welt :-) Und zumindestens Leute, die einen Uni-Zugang
|
||||
haben, und dort ein paar Unix-Befehle loswerden können, können hier
|
||||
tricksen.
|
||||
<P>
|
||||
|
||||
<H2>Die Theorie</H2>
|
||||
|
||||
Aber wie? Der Trick besteht darin, daß die Datei nicht sofort und direkt
|
||||
downgeloadet wird, sondern daß man das zunächst den Server an der
|
||||
Uni machen läßt. Nach einiger Zeit holt man sich die
|
||||
gewünschte Datei dann von dort - die Verbindung zum Uniserver ist ja in
|
||||
der Regel so gut, daß die maximale Übertragungsrate voll ausgenutzt
|
||||
wird. UNIX kennt den Befehl <TT>nohup</TT>, mit dem man Befehle ausführen
|
||||
kann, ohne eingeloggt zu sein - das ist die Voraussetzung. Man kann sich also
|
||||
beim Provider einloggen und folgende Befehlssequenz eingeben:
|
||||
|
||||
<PRE>
|
||||
provider:# nohup ftp -i ftp.leo.org &
|
||||
provider:# exit
|
||||
connection closed by foreign host.
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Das ganze dauert nicht mehr als ein paar Sekunden, eine Telefoneinheit wurde
|
||||
der guten Sache geopfert.
|
||||
<P>
|
||||
|
||||
Allerdings muß man etwas Vorarbeit leisten, denn <TT>ftp</TT> ist ein
|
||||
interaktives Programm, welches zur Arbeit eine ganze Menge Informationen
|
||||
benötigt (zum Bleistift, was es denn holen soll). Die Interaktivität
|
||||
kann man ihm abgewöhnen, dafür ist die Option "-i" da. Die
|
||||
Informationen muß man trotzdem übergeben, und das kann man, indem
|
||||
man eine Datei <TT>.netrc</TT> beim Provider hinterlegt, in dem alles das
|
||||
drinsteht, was ftp tun soll. (Gibt man als Option "-n" an, wird diese Datei
|
||||
<I>nicht</I> beachtet!)
|
||||
<P>
|
||||
|
||||
So könnte die Datei <TT>.netrc</TT> aussehen, wenn man sich
|
||||
beispielsweise den Kernel 2.0.7 (immerhin mehr als 5 Megabyte!) vom Server
|
||||
bei LEO.ORG holen will:
|
||||
|
||||
<PRE>
|
||||
<B>provider:~/.netrc</B>
|
||||
machine ftp.leo.org
|
||||
login anonymous
|
||||
password <I><eigene@email.adresse></I>
|
||||
macdef init
|
||||
lcd /usr/src
|
||||
cd /pub/comp/os/linux/Linus/v2.0
|
||||
bin
|
||||
get linux-2.0.7.tar.gz
|
||||
close
|
||||
quit
|
||||
</PRE>
|
||||
|
||||
So kann man sich für jeden Server einen Eintrag machen. Diese Datei
|
||||
muß vor dem <TT>nohup ftp</TT> im Heimatverzeichnis beim Provider
|
||||
abgelegt werden.
|
||||
Eine Stunde später kann man sich den Kernel mit Höchstgeschwindigkeit
|
||||
beim Provider abholen. Schön, gell?
|
||||
|
||||
|
||||
<H2>Automatisierung</H2>
|
||||
|
||||
So. Nun wollen wir das automatisieren. Hierzu muß natürlich wieder
|
||||
der cron herhalten, der die datenintensive Übertragung in die billigen
|
||||
Nachtstunden verlegt.
|
||||
<P>
|
||||
|
||||
<IMG ALIGN=left SRC="constr.gif">
|
||||
<IMG ALIGN=right SRC="constr.gif">
|
||||
|
||||
<P ALIGN=center>
|
||||
<B>... Aber daran arbeite ich noch - laßt Euch überraschen!</B>
|
||||
</P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
Ich hatte bisher keine Zeit für weitere Forschungen - aber einige
|
||||
Leute haben mir geschrieben.
|
||||
<P>
|
||||
|
||||
Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de> schrieb:
|
||||
<PRE>
|
||||
Hallo,
|
||||
|
||||
zu "FTP on Demand " solltest Du auf "ncftp" verweisen. Ich oeffne mit "nohup
|
||||
ncftp" das Programm, oeffne den Server, denn ich brauchte, waehle mit
|
||||
"Tab"-Expansion das File aus, das ich will, starte den Download. Ein CTRL-Z
|
||||
und "bg" bringen den Download in den Hintergrund und mich auf die
|
||||
Kommandozeile, so das ich den Connect beenden kann.
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
|
||||
Gunnar Larisch <Gunnar.Larisch@lpr.e-technik.tu-muenchen.de> schrieb:
|
||||
|
||||
<PRE>
|
||||
anscheinend hast Du auch ISDN, da Du so schöne Anleitungen geschrieben
|
||||
hast. Ich hab da paar schöne Skripten, die Dich vielleicht interessieren.
|
||||
|
||||
getme <Server> <Dir> <File>
|
||||
Per cron muss dann noch cronftp gestartet werden. Am nächsten Tag kannst
|
||||
Du Dir Dein File abholen.
|
||||
|
||||
getfrom ist vielleicht auch ganz nützlich.
|
||||
|
||||
-----------getme--------------
|
||||
#!/usr/local/bin/bash
|
||||
|
||||
# Parameters: Server Path File(s)
|
||||
|
||||
FTPFILE="/tmp/.$UID.ftpjobs"
|
||||
echo Server : $1
|
||||
echo Dir : $2
|
||||
echo "File : $3"
|
||||
echo Jobfile: $FTPFILE
|
||||
|
||||
touch $FTPFILE
|
||||
|
||||
echo lcd ~/tmp/ftpjobs >>$FTPFILE
|
||||
echo open $1 >>$FTPFILE
|
||||
echo user anonymous t8231ah@sunmail.lrz-muenchen.de >>$FTPFILE
|
||||
echo bin >>$FTPFILE
|
||||
echo "cd $2" >>$FTPFILE
|
||||
echo "mget $3" >>$FTPFILE
|
||||
echo close >>$FTPFILE
|
||||
-------------------------------
|
||||
|
||||
---------getfrom---------------
|
||||
echo Hole $2 von $1...
|
||||
echo ftp -i $1 >>~/tmp/ftpjob
|
||||
echo bin >>~/TMP/ftpjob
|
||||
echo cd $2 >>~/tmp/ftpjob
|
||||
-------------------------------
|
||||
|
||||
---------cronftp--------------
|
||||
#!/usr/local/bin/bash
|
||||
FTPFILE="/tmp/.$UID.ftpjobs"
|
||||
NEWFTPFILE="/tmp/.bgjob_$UID_$RANDOM"
|
||||
mkdir ~/tmp/ftpjobs
|
||||
echo Using $FTPFILE... as $NEWFTPFILE
|
||||
mv $FTPFILE $NEWFTPFILE
|
||||
nohup ftp -in >$NEWFTPFILE &
|
||||
-------------------------------------
|
||||
|
||||
Ciao Gunnar
|
||||
</PRE>
|
||||
<P>
|
||||
|
||||
Siggi Thoma <sthoma@twilight.rhein-neckar.de> schrieb:
|
||||
<PRE>
|
||||
Hast Du diesbezüglich mal von FTPMAIL gehört? Vielleicht erfüllt das auch den
|
||||
gewünschten Zweck und ein bißchen einfacher.
|
||||
|
||||
Schreib mal mail an ftpmail@ftp.uni-stuttgart.de
|
||||
subject HELP
|
||||
body:
|
||||
help
|
||||
quit
|
||||
|
||||
|
||||
---------------
|
||||
Dieser Server der da an der Uni läuft ermöglicht es beliebige Dateien
|
||||
von jedem ftp-archive auf der Welt nach Stuttgart zu holen. Von dort
|
||||
sendet Dir der FTPMAIL-Server die Datei uuencoded als email zu. Von
|
||||
Stuttgart aus als EMAIL. Da fällt also nur die
|
||||
Übertragungsgeschwindigkeit zu Deinem Provider ins Spiel.
|
||||
|
||||
Genauere Beschreibungen gibts überall im Netz. Such mal in Yahoo oder
|
||||
Altavista unter FTPMAIL.
|
||||
|
||||
Tschau
|
||||
Siggi
|
||||
</PRE>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 24-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 5.8 KiB |
|
@ -0,0 +1,198 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
FTP
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="ftp.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>FTP on Demand
|
||||
</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>Y</B></FONT>ou
|
||||
know it: If you want to load down a big file from a distant server (overseas
|
||||
perhaps), the maximum transfer rate can not be reached. If you are using ISDN
|
||||
it is extreme. But you have no ISDN Port to spend the telecom union your money,
|
||||
and you use the best operating system in the world :-) People who can access
|
||||
the Internet via a university and send some Unix commands to it, can do
|
||||
something.
|
||||
<P>
|
||||
|
||||
|
||||
<H2>Theory</H2>
|
||||
|
||||
But how? The trick is to load the file not directly, but let the provider do
|
||||
it for you. After some time you can load the desired file from the provider
|
||||
without wasting time - the connection to your provider most times is so fast
|
||||
that you reach the maximum transfer rate. Unix knows the command <TT>nohup</TT>
|
||||
which allows a command execution without being logged in - this is the trick.
|
||||
You can log in at your provider and type in:
|
||||
<PRE>
|
||||
provider:# nohup ftp -i ftp.leo.org &
|
||||
provider:# exit
|
||||
connection closed by foreign host.
|
||||
root:# _
|
||||
</PRE>
|
||||
This takes only a few seconds, only one tariff unit is lost for a good
|
||||
purpose.
|
||||
<P>
|
||||
|
||||
But you have to do some prework, because <TT>ftp</TT> is an interactive
|
||||
program, which needs a lot of information for its work (e.g. what to load).
|
||||
You can tell ftp how to be less interactive by giving the option "-i".
|
||||
But you need to tell ftp the information what to do, and this happens if you
|
||||
create a file <TT>.netrc</TT> at your provider. (The option "-n" tells
|
||||
ftp to ignore this file.)
|
||||
<P>
|
||||
|
||||
If you want, for example, load down the Linux kernel 2.0.7 from the LEO.ORG
|
||||
server (more than 5 Megabytes!) the file <TT>.netrc</TT> could look like:
|
||||
<PRE>
|
||||
<B>provider:~/.netrc</B>
|
||||
machine ftp.leo.org
|
||||
login anonymous
|
||||
password <I><my@email.address></I>
|
||||
macdef init
|
||||
lcd /usr/src
|
||||
cd /pub/comp/os/linux/Linus/v2.0
|
||||
bin
|
||||
get linux-2.0.7.tar.gz
|
||||
close
|
||||
quit
|
||||
</PRE>
|
||||
|
||||
So cou could create an entry for each server you want to connect. This file
|
||||
must be stored in your directory at your provider before you call the
|
||||
<TT>nohup ftp</TT> command. One hour later you can load down directly your
|
||||
kernel. Great, isn't it?
|
||||
|
||||
|
||||
<H2>Automotion</H2>
|
||||
|
||||
Ok now. Now we want to do it automatically. Of course we need the cron again,
|
||||
which will do the data transfer in the cheap night hours.
|
||||
<P>
|
||||
|
||||
<IMG ALIGN=left SRC="constr.gif">
|
||||
<IMG ALIGN=right SRC="constr.gif">
|
||||
|
||||
<P ALIGN=center>
|
||||
<B>... But this is not finished yet. Please wait...</B>
|
||||
</P>
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
I had no time to do more research - but some people wrote me hints.
|
||||
<P>
|
||||
|
||||
Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de> wrote:
|
||||
<PRE>
|
||||
Hello,
|
||||
|
||||
you should point at "ncftp" for ftp-on-demand. I open the program using
|
||||
"nohup ncftp", open the server I need, choose the file using the "tab"
|
||||
expansion and start the download. A ctrl-Z and "bg" move the download into
|
||||
background and myself in the commandline to stop the connect.
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
|
||||
Gunnar Larisch <Gunnar.Larisch@lpr.e-technik.tu-muenchen.de> wrote:
|
||||
|
||||
<PRE>
|
||||
Some nice scripts:
|
||||
|
||||
getme <Server> <Dir> <File>
|
||||
cronftp must be started using cron. You can fetch your file the next day.
|
||||
|
||||
fetfrom also may be useful.
|
||||
|
||||
-----------getme--------------
|
||||
#!/usr/local/bin/bash
|
||||
|
||||
# Parameters: Server Path File(s)
|
||||
|
||||
FTPFILE="/tmp/.$UID.ftpjobs"
|
||||
echo Server : $1
|
||||
echo Dir : $2
|
||||
echo "File : $3"
|
||||
echo Jobfile: $FTPFILE
|
||||
|
||||
touch $FTPFILE
|
||||
|
||||
echo lcd ~/tmp/ftpjobs >>$FTPFILE
|
||||
echo open $1 >>$FTPFILE
|
||||
echo user anonymous t8231ah@sunmail.lrz-muenchen.de >>$FTPFILE
|
||||
echo bin >>$FTPFILE
|
||||
echo "cd $2" >>$FTPFILE
|
||||
echo "mget $3" >>$FTPFILE
|
||||
echo close >>$FTPFILE
|
||||
-------------------------------
|
||||
|
||||
---------getfrom---------------
|
||||
echo Hole $2 von $1...
|
||||
echo ftp -i $1 >>~/tmp/ftpjob
|
||||
echo bin >>~/TMP/ftpjob
|
||||
echo cd $2 >>~/tmp/ftpjob
|
||||
-------------------------------
|
||||
|
||||
---------cronftp--------------
|
||||
#!/usr/local/bin/bash
|
||||
FTPFILE="/tmp/.$UID.ftpjobs"
|
||||
NEWFTPFILE="/tmp/.bgjob_$UID_$RANDOM"
|
||||
mkdir ~/tmp/ftpjobs
|
||||
echo Using $FTPFILE... as $NEWFTPFILE
|
||||
mv $FTPFILE $NEWFTPFILE
|
||||
nohup ftp -in <$NEWFTPFILE &
|
||||
-------------------------------------
|
||||
|
||||
Ciao Gunnar
|
||||
</PRE>
|
||||
<P>
|
||||
|
||||
Siggi Thoma <sthoma@twilight.rhein-neckar.de> schrieb:
|
||||
<PRE>
|
||||
Did you hear about FTPMAIL? Perhaps this matches the purpose and is a bit
|
||||
simpler.
|
||||
|
||||
Just write an e-mail to ftpmail@ftp.uni-stuttgart.de
|
||||
subject HELP
|
||||
body:
|
||||
help
|
||||
quit
|
||||
|
||||
|
||||
---------------
|
||||
This server at the Uni allows to fetch any file from all over the world
|
||||
to Stuttgart. It mails this file in uuencoded format to you. So only the
|
||||
providers transfer data rate is the limiting factor.
|
||||
|
||||
You find detailled descriptions in the net. Search for FTPMAIL at Yahoo or
|
||||
Altavista.
|
||||
|
||||
Tschau
|
||||
Siggi
|
||||
</PRE>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 24-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 86 B |
|
@ -0,0 +1,488 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
GPL
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 26-Aug-1996 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<P ALIGN=CENTER>
|
||||
<FONT SIZE=+3>
|
||||
Die GNU General Public License<BR>
|
||||
</FONT>
|
||||
<FONT SIZE=+2>
|
||||
Version 2, June 1991<BR>
|
||||
</FONT>
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.<BR>
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<P ALIGN=CENTER>
|
||||
<A HREF="gnulis_e.html">Englisches Original</A>
|
||||
</P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
Jeder ist dazu berechtigt, diese Lizenz zu kopieren und wörtliche
|
||||
Kopien von diesem Dokument zu verteilen, Änderungen sind jedoch nicht
|
||||
erlaubt. Rechtsgültig ist das englischsprachige Original.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<H2>VORWORT</H2>
|
||||
|
||||
Die Lizenzen für die meiste Software sind daraufhin ausgelegt, die
|
||||
Weitergabe und die Möglichkeit der Änderung zu verhindern.
|
||||
Im Gegensatz dazu will die GNU General Public License (im folgenden mit
|
||||
"`GPL"' bezeichnet) sicherstellen,
|
||||
daß freie Software von jedem benutzt und verändert werden kann - um
|
||||
sicherzustellen, daß die Software für alle Benutzer frei ist. Diese
|
||||
GPL gilt für den größten Teil der Software von der
|
||||
Free Software Foundation und für alle anderen Programme, deren Autoren
|
||||
ihre Arbeit unter die GPL gestellt haben (einige andere Programm der
|
||||
Free Software Foundation unterliegen stattdessen der GNU Library General
|
||||
Public License). Auch Sie können Ihre Programme unter diese License
|
||||
stellen.
|
||||
<P>
|
||||
|
||||
Wenn wir von freier Software sprechen, meinen wir Freiheit, nicht Preis.
|
||||
Unsere General Public Licenses haben den Zweck, sicherzustellen, daß
|
||||
Sie die Freiheit haben, Kopien freier Software zu verbreiten (und etwas
|
||||
für diesen Service zu berechnen, wenn Sie wollen), daß Sie den
|
||||
Quellcode erhalten oder bekommen können, wenn Sie wollen, und daß
|
||||
Sie die Software ändern oder Teile davon in neuen freien Programmen
|
||||
verwenden können; weiterhin haben die Licences den Sinn, Sie darüber
|
||||
zu unterrichten, daß Sie dies alles tun dürfen.
|
||||
<P>
|
||||
|
||||
Um Ihre Rechte zu schützen, müssen wir Einschränkungen machen,
|
||||
die es jedem verbieten, Ihnen diese Rechte zu verweigern oder Sie aufzufordern,
|
||||
auf diese Rechte zu verzichten. Aus diesen Einschränkungen folgen
|
||||
bestimmte Verantwortlichkeiten für Sie, wenn Sie Kopien der Software
|
||||
verbreiten oder sie verändern.
|
||||
<P>
|
||||
|
||||
Wenn Sie zum Beispiel Kopien eines solchen Programmes verbreiten, ob umsonst
|
||||
oder gegen Bezahlung, so müssen Sie den Empfängern alle Rechte
|
||||
gewähren, die Sie selbst haben. Sie müssen sicherstellen, daß
|
||||
auch sie den Quellcode erhalten oder erhalten können. Und Sie müssen
|
||||
ihnen diese Bedingungen zeigen, damit sie ihre Rechte kennen.
|
||||
<P>
|
||||
|
||||
Wir schützen Ihre Rechte in zwei Schritten: (1) wir stellen die Software
|
||||
unter ein Copyright und (2) wir bieten Ihnen diese Lizenz an, die Ihnen
|
||||
die rechtliche Erlaubnis gibt, die Software zu kopieren, zu verbreiten
|
||||
und/oder zu modifizieren.
|
||||
<P>
|
||||
|
||||
Um den Autor und uns selbst zu schützen, möchten wir sicherstellen,
|
||||
daß jeder versteht, daß es keine Garantie für diese freie
|
||||
Software gibt. Wenn die Software von jemand anderem modifiziert und
|
||||
weitergegeben wird, möchten wir, daß die Empfänger wissen,
|
||||
daß sie nicht das Original erhalten haben, damit Probleme, die von
|
||||
anderen hervorgerufen wurden, nicht die Reputation des ursprünglichen
|
||||
Autors schädigen.
|
||||
<P>
|
||||
|
||||
Schließlich ist jedes freie Programm durch Software-Patente bedroht. Wir
|
||||
möchten die Gefahr ausschließen, daß Distributoren eines
|
||||
freien Programmes individuelle Patente erhalten mit dem Effekt, daß das
|
||||
Programm proprietär wird. Um dies zu verhindern, haben wir klar gemacht,
|
||||
daß jedes Patent die freie Benutzung von jedem erlaubt oder gar nicht
|
||||
lizenziert werden darf.
|
||||
<P>
|
||||
|
||||
Die präzisen Begriffe und Bedingungen für das Kopieren,
|
||||
Verteilen und Modifizieren folgen:
|
||||
|
||||
<H2>GNU GENERAL PUBLIC LICENSE</H2>
|
||||
|
||||
<H3>Begriffe und Bedingungen für das Kopieren, Verteilen und
|
||||
Modifizieren</H3>
|
||||
|
||||
<B>0.</B>
|
||||
Diese Lizenz gilt für jedes Programm oder jede andere Arbeit, die einen
|
||||
Vermerk des Copyright-Inhabers enthält, der besagt, daß die Arbeit
|
||||
unter den Bestimmungen dieser General Public License verbreitet werden darf.
|
||||
Der Begriff "`Programm"' steht im folgenden für jedes derartige Programm
|
||||
und für jede derartige Arbeit und der Begriff "`auf dem Programm
|
||||
basierende Arbeit"' meint entweder das Programm oder jegliche abgeleitete
|
||||
Arbeit im Sinne der Copyright-Gesetze: Das bedeutet eine Arbeit, die das
|
||||
Programm oder einen Teil dessen enthält, entweder wörtlich oder mit
|
||||
Modifikationen und/oder übersetzt in eine andere Sprache. (Im folgenden
|
||||
wird die Übersetzung ohne Einschränkung als "`Modifikation"'
|
||||
verstanden). Jeder Lizenznehmer wird im folgenden als "`Sie"' angesprochen.
|
||||
<P>
|
||||
|
||||
Andere Aktivitäten als Kopieren, Verteilen und Modifizieren werden nicht
|
||||
von dieser Lizenz abgedeckt; sie sind außerhalb ihres
|
||||
Gültigkeitsbereichs. Der Vorgang des Ablaufenlassens des Programmes ist
|
||||
nicht beschränkt, und die Ausgabe des Programmes unterliegt dieser Lizenz
|
||||
nur, wenn der Inhalt eine auf dem Programm basierende Arbeit darstellt
|
||||
(unabhängig davon, daß die Ausgabe durch ein Laufenlassen des
|
||||
Programmes erfolgte). Ob dies zutrifft, hängt davon ab, was das Programm
|
||||
tut.
|
||||
<P>
|
||||
|
||||
<B>1.</B>
|
||||
Sie dürfen wörtliche Kopien vom Quellcode des Programms anfertigen
|
||||
und verbreiten, so wie Sie ihn erhalten haben, auf jedem Medium, vorausgesetzt,
|
||||
daß Sie mit jeder Kopie einen entsprechenden Copyright-Vermerk sowie
|
||||
einen Haftungsausschluss veröffentlichen; lassen Sie alle Vermerke, die
|
||||
sich auf diese Lizenz beziehen, intakt, sowie alle Vermerke, die auf die
|
||||
nicht vorhandene Garantie hinweisen; geben Sie weiterhin allen Empfängern
|
||||
des Programmes eine Kopie dieser Lizenz zusammen mit dem Programm.
|
||||
<P>
|
||||
|
||||
Sie dürfen für den eigentlichen Kopiervorgang eine Gebühr
|
||||
verlangen und Sie dürfen auf Ihren Wunsch eine Garantie für das
|
||||
Programm gegen Entgelt anbieten.
|
||||
<P>
|
||||
|
||||
<B>2.</B>
|
||||
Sie dürfen Ihre Kopie des Programmes oder eines Teils davon modifizieren,
|
||||
wodurch eine auf dem Programm basierende Arbeit entsteht; Sie dürfen
|
||||
derartige Modifikationen unter den Bestimmungen von Abschnitt 1 kopieren
|
||||
und verbreiten, vorausgesetzt, daß zusätzlich alle folgenden
|
||||
Bedingungen erfüllt werden:
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<B>a)</B>
|
||||
Sie müssen dafür Sorge tragen, daß die veränderten
|
||||
Dateien einen auffälligen Vermerk tragen, daß sie von Ihnen
|
||||
verändert wurden, sowie das Datum jeder Änderung.
|
||||
<P>
|
||||
<B>b)</B>
|
||||
Sie müssen dafür sorgen, daß jede Arbeit, die Sie
|
||||
verbreiten oder veröffentlichen, und die ganz oder in Teilen von
|
||||
einem Programm oder Teilen davon abgeleitet ist, Dritten gegenüber
|
||||
als ganzes unter den Bedingungen dieser Lizenz ohne Lizenzgebühren
|
||||
zur Verfügung gestellt wird.
|
||||
<P>
|
||||
<B>c)</B> Wenn das modifizierte Programm normalerweise beim Lauf interaktiv
|
||||
Kommandos einliest, müssen Sie dafür sorgen, daß es, wenn
|
||||
es auf gewöhnlichem Wege für solch eine interaktive Nutzung
|
||||
gestartet wird, eine Meldung ausgibt oder ausdruckt, die einen geeigneten
|
||||
Copyright-Vermerk enthält sowie einen Hinweis, daß es keine
|
||||
Gewährleistung gibt (oder daß Sie Garantie leisten), und
|
||||
daß Benutzer das Programm unter diesen Bedingungen weiter verbreiten
|
||||
dürfen; der Benutzer muß auch darauf hingewiesen werden, wie er
|
||||
eine Kopie dieser Lizenz lesen kann. (Ausnahme: Wenn das Programm
|
||||
selbst interaktiv arbeitet, aber normalerweise keine derartige
|
||||
Meldung ausgibt, muß Ihre auf dem Programm basierende Arbeit auch
|
||||
keine solche Meldung ausgeben).
|
||||
</BLOCKQUOTE>
|
||||
|
||||
Diese Anforderungen betreffen die modifizierte Arbeit als ganzes. Wenn
|
||||
identifizierbare Abschnitte der Arbeit nicht von dem Programm abgeleitet
|
||||
sind und vernünftigerweise selbst als unabhängige und
|
||||
eigenständige Arbeiten betrachtet werden können, dann erstrecken
|
||||
sich diese Lizenz und ihre Begriffe nicht auf diese Abschnitte, wenn sie als
|
||||
eigenständige Arbeiten verbreitet werden. Wenn Sie jedoch die selben
|
||||
Abschnitte als Teil eines Ganzen verteilen, das eine auf dem Programm
|
||||
basierende Arbeit ist, dann muß die Verteilung des Ganzen nach den
|
||||
Bedingungen dieser Lizenz erfolgen, wobei die Rechte weiterer Lizenznehmer auf
|
||||
das gesamte Programm ausgedehnt werden, und damit auf jeden Teil des Ganzen,
|
||||
unabhängig davon, wer diesen Teil geschrieben hat.
|
||||
<P>
|
||||
|
||||
Somit ist es nicht die Absicht dieses Abschnittes, Rechte für Arbeiten
|
||||
in Anspruch zu nehmen oder zu beschneiden, die komplett von Ihnen geschrieben
|
||||
wurden; stattdessen ist es die Absicht, die Rechte zur Kontrolle der
|
||||
Verteilung von Arbeiten, die auf anderen Programmen oder einer Zusammenstellung
|
||||
basieren, auszuüben.
|
||||
<P>
|
||||
|
||||
Weiterhin führt ein einfaches Zusammenstellen einer anderen Arbeit, die
|
||||
nicht auf dem Programm basiert, zusammen mit dem Programm oder einer auf dem
|
||||
Programm basierenden Arbeit auf einem Speicher- oder Verteilmedium nicht
|
||||
dazu, daß die andere Arbeit den Regeln dieser Lizenz unterliegt.
|
||||
<P>
|
||||
|
||||
<B>3.</B> Sie dürfen das Programm (oder eine darauf basierende Arbeit wie
|
||||
in Abschnitt 2) als object code oder in ausführbarer Form unter den Bedingungen von Abschnitt 1 und 2 kopieren und verteilen, vorausgesetzt, daß
|
||||
Sie eines der folgenden Dinge tun:
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<B>a)</B> Liefern Sie zusätzlich den kompletten zugehörigen
|
||||
maschinenlesbaren Quellcode auf einem Medium, das üblicherweise
|
||||
für den Datenaustausch verwendet wird, wobei die Verteilung unter
|
||||
den Bedingungen der Abschnitte 1 und 2 erfolgen muß; oder
|
||||
<P>
|
||||
<B>b)</B> Liefern Sie das Programm mit einem schriftlichen Angebot, das
|
||||
mindestens drei Jahre lang gültig sein muß, daß Sie
|
||||
jedem Dritten eine komplette maschinenlesbare Kopie des Quellcodes zur
|
||||
Verfügung stellen, wobei keine weiteren Kosten als für den
|
||||
physikalischen Kopiervorgang anfallen dürfen und der Quellcode unter
|
||||
den Bedingungen der Abschnitte 1 und 2 auf einem Medium verteilt wird,
|
||||
das üblicherweise für den Datenaustausch verwendet wird; oder
|
||||
<P>
|
||||
<B>c)</B> Liefern Sie das Programm mit der Information, die Sie erhalten haben,
|
||||
daß der korrespondierende Quellcode angeboten ist. (Diese
|
||||
Alternative gilt nur für nicht-kommerzielle Zwecke und nur, wenn Sie
|
||||
das Programm als object code oder in ausführbarer Form mit einem
|
||||
entsprechenden Angebot erhalten haben, in Einklang mit Unterabschnitt b
|
||||
oben).
|
||||
</BLOCKQUOTE>
|
||||
|
||||
Der "Quellcode einer Arbeit" ist die Form der Arbeit, die vorzugsweise
|
||||
verwendet wird, um Modifikationen durchzuführen. Für ein
|
||||
ausführbares Programm bedeutet der Quellcode: Der Quellcode aller Module,
|
||||
die das Programm beinhaltet, zusätzlich alle zugehörigen
|
||||
Schnittstellen-Definitions-Dateien, sowie die Scripten, die die Kompilierung
|
||||
sowie die Installation des ausführbaren Programmes kontrollieren. Als
|
||||
spezielle Ausnahme jedoch muß der verteilte Quellcode nichts enthalten,
|
||||
was normalerweise (entweder als Quellcode oder in binärer Form) mit den
|
||||
Hauptkomponenten des Betriebssystems (Kernel, Compiler usw.) verteilt wird,
|
||||
unter dem das Programm läuft, außer diese Komponente selbst
|
||||
begleitet das ausführbare Programm.
|
||||
<P>
|
||||
|
||||
Wenn die Verteilung eines ausführbaren Programmes oder des object codes
|
||||
dadurch erfolgt, daß eine Stelle zur Verfügung gestellt wird, von
|
||||
der kopiert werden kann, so gilt das zur Verfügung stellen einer
|
||||
äquivalenten Stelle zum Kopieren des Quellcodes als Verteilen des
|
||||
Quellcodes, selbst wenn Dritte nicht dazu gezwungen sind, die Quellen zusammen
|
||||
mit dem object code zu kopieren.
|
||||
<P>
|
||||
|
||||
<B>4.</B>
|
||||
Sie dürfen das Programm nicht kopieren, modifizieren, lizenzieren oder
|
||||
verbreiten außer ausdrücklich unter dieser Lizenz. Jeder
|
||||
anderweitige Versuch, das Programm zu kopieren, modifizieren, lizenzieren oder
|
||||
zu verbreiten ist nichtig und beendet automatisch Ihre Rechte unter dieser
|
||||
Lizenz. Jedoch werden die Lizenzen Dritter, die von Ihnen Kopien oder Rechte
|
||||
unter dieser Lizenz erhalten haben, nicht beendet, solange diese die Lizenz
|
||||
voll anerkennen und befolgen.
|
||||
<P>
|
||||
|
||||
<B>5.</B>
|
||||
Sie sind nicht verpflichtet, diese Lizenz anzunehmen, da Sie sie nicht
|
||||
unterzeichnet haben. Jedoch gibt Ihnen nichts anderes die Erlaubnis, das
|
||||
Programm oder von ihm abgeleitete Arbeiten zu modifizieren oder zu verbreiten.
|
||||
Diese Handlungen sind gesetzlich verboten, wenn Sie diese Lizenz nicht
|
||||
anerkennen. Wenn Sie also das Programm (oder eine darauf basierende Arbeit)
|
||||
modifizieren oder verbreiten, erklären Sie damit Ihr Einverständnis
|
||||
mit dieser Lizenz und allen ihren Begriffen und Bedingungen zum Kopieren,
|
||||
Verbreiten und Modifizieren des Programms oder einer darauf basierenden Arbeit.
|
||||
<P>
|
||||
|
||||
<B>6.</B>
|
||||
Jedes Mal, wenn Sie das Programm (oder eine auf dem Programm basierende
|
||||
Arbeit) weitergeben, erhält der Empfänger automatisch vom originalen
|
||||
Lizenzgeber die Lizenz, das Programm gemäß dieser Begriffe und
|
||||
Bestimmungen zu kopieren, zu verbreiten und zu modifizieren. Sie dürfen
|
||||
keine weiteren Einschränkungen der Durchsetzung der hierin zugestandenen
|
||||
Rechte des Empfängers vornehmen. Sie sind nicht dafür verantwortlich,
|
||||
Dritte zur Anerkennung dieser Lizenz zu bewegen.
|
||||
<P>
|
||||
|
||||
<B>7.</B>
|
||||
Wenn aufgrund eines Gerichtsurteils oder wegen patentrechtlicher
|
||||
Schwierigkeiten oder aus irgendwelchen anderen Gründen Umstände
|
||||
auftreten (ob durch Gerichtsbeschluß, Vergleich oder amderweitig), die
|
||||
den Bestimmungen in dieser Lizenz entgegensprechen, so befreien Sie diese
|
||||
Umstände nicht von den Bestimmungen in dieser Lizenz. Wenn Sie das
|
||||
Programm nicht unter gleichzeitiger Beachtung der Bedingungen in dieser Lizenz
|
||||
und Ihrer anderweitigen Verpflichtungen verbreiten können, dann
|
||||
können Sie als Folge das Programm überhaupt nicht verbreiten. Wenn
|
||||
zum Beispiel ein Patent nicht die gebührenfreie Weiterverbreitung des
|
||||
Programmes durch diejenigen erlaubt, die das Programm direkt oder indirekt von
|
||||
Ihnen erhalten haben, dann besteht der einzige Weg, das Patent und diese
|
||||
Lizenz zu befolgen, darin, ganz auf die Verbreitung des Programmes zu
|
||||
verzichten.
|
||||
<P>
|
||||
|
||||
Wenn irgendein Teil dieses Abschnittes für ungültig oder unter
|
||||
irgendwelchen bestimmten Umständen für undurchsetzbar gehalten wird,
|
||||
soll die Grundaussage dieses Abschnittes gelten; der ganze Abschnitt soll
|
||||
unter den übrigen Umständen Gültigkeit haben.
|
||||
<P>
|
||||
|
||||
Es ist nicht der Zweck dieses Abschnittes, Sie dazu zu bringen, irgendwelche
|
||||
Patente oder andere Rechtsgüter anzufechten oder die Gültigkeit
|
||||
irgendwelcher solcher Güter zu bestreiten; dieser Abschnitt hat den
|
||||
einzigen Zweck, die Integrität des Verbreitungssystems der freien
|
||||
Software zu schützen, das durch praktizierte öffentliche Lizenzen
|
||||
verwirklicht wird. Viele Leute haben großzügige Beiträge zum
|
||||
weiten Bereich der mit diesem System verbreiteten Software gemacht im
|
||||
Vertrauen auf die konsistente Anwendung dieses Systems; es liegt am
|
||||
Autor/Geber zu entscheiden, ob er die Software mittels irgendeines anderen
|
||||
Systems verbreiten will und ein Lizenznehmer hat auf diese Entscheidung
|
||||
keinen Einfluß.
|
||||
<P>
|
||||
|
||||
Dieser Abschnitt ist dazu gedacht, klar zu machen, was als Konsequenz aus
|
||||
dem Rest dieser Lizenz betrachtet wird.
|
||||
<P>
|
||||
|
||||
<B>8.</B>
|
||||
Wenn die Verbreitung und/oder die Benutzung des Programmes in bestimmten
|
||||
Staaten entweder durch Patente oder durch Copyright-geschützte
|
||||
Schnittstellen eingeschränkt ist, kann der originale Copyright-Inhaber,
|
||||
der das Programm unter diese Lizenz gestellt hat, eine explizite geographische
|
||||
Begrenzung der Verbreitung angeben, indem diese Staaten ausgeschlossen werden,
|
||||
so daß die Verbreitung nur in und unter den Staaten erlaubt ist, die
|
||||
nicht ausgeschlossen sind. In einem solchen Fall beinhaltet diese Lizenz die
|
||||
Beschränkung, als wäre sie in diesem Text niedergeschrieben.
|
||||
<P>
|
||||
|
||||
<B>9.</B>
|
||||
Die Free Software Foundation kann von Zeit zu Zeit überarbeitete und/oder
|
||||
neue Versionen der General Public License veröffentlichen. Solche neuen
|
||||
Versionen werden vom Geist her der gegenwärtigen entsprechen, können
|
||||
aber im Detail abweichen, um neuen Problemen und Anforderungen gerecht zu
|
||||
werden.
|
||||
<P>
|
||||
|
||||
Jede Version hat eine eindeutig unterscheidbare Versionsnummer. Wenn das
|
||||
Programm angibt, welche Version auf es zutrifft und "any later version", so
|
||||
haben Sie die Wahl, entweder den Begriffen und Bedingungen dieser Version
|
||||
zu folgen oder denen jeder beliebigen späteren Version, die von der
|
||||
Free Software Foundation veröffentlicht wurde. Wenn das Programm keine
|
||||
Versionsnummer angibt, können Sie eine beliebige Version wählen, die
|
||||
je von der Free Software Foundation veröffentlicht wurde.
|
||||
<P>
|
||||
|
||||
<B>10.</B>
|
||||
Wenn Sie den Wunsch haben, Teile des Programmes in anderen freien Programmen
|
||||
zu verwenden, deren Bedingungen für das Verbreiten anders sind, schreiben
|
||||
Sie an den Autor, um ihn um die Erlaubnis zu bitten. Für Software, die
|
||||
unter dem Copyright der Free Software Foundation steht, schreiben Sie an die
|
||||
Free Software Foundation; wir machen zu diesem Zweck manchmal Ausnahmen.
|
||||
Unsere Entscheidung wird von folgenden zwei Zielen geleitet: Dem Erhalten des
|
||||
freien Status von allen abgeleiteten Arbeiten unserer freien Software und der
|
||||
Förderung der Verbreitung und Nutzung von Software generell.
|
||||
|
||||
|
||||
<H2>KEINE GEWÄHRLEISTUNG</H2>
|
||||
|
||||
<B>
|
||||
11. Da das Programm ohne jegliche Kosten lizenziert wird, besteht keinerlei
|
||||
Gewährleistung für das Programm bis zu dem Maß, wie es durch
|
||||
geltende Gesetze zugestanden wird. Außer wenn anderweitig schriftlich
|
||||
bestätigt, stellen die Copyright-Inhaber und/oder Dritte das Programm so
|
||||
zur Verfügung, "wie es ist", ohne irgendeine Gewährleistung, weder
|
||||
ausdrücklich noch implizit, einschließlich, aber nicht begrenzt
|
||||
auf, die Tauglichkeit und Verwendbarkeit für einen bestimmten Zweck. Das
|
||||
volle Risiko bezüglich Qualität und Leistungsfähigkeit des
|
||||
Programmes liegt bei Ihnen. Sollte das Programm fehlerhaft sein,
|
||||
übernehmen Sie die Kosten für notwendigen Service, Reparatur oder
|
||||
Korrektur.
|
||||
<P>
|
||||
|
||||
12. In keinem Fall, außer durch geltendes Recht gefordert oder
|
||||
schriftlich zugesichert, ist irgendein Copyright-Inhaber oder irgendein
|
||||
Dritter, der das Programm wie oben erlaubt modifiziert oder verbreitet hat,
|
||||
Ihnen gegenüber für irgendwelche Schäden haftbar,
|
||||
einschließlich jeglicher genereller, spezieller, zufälliger oder
|
||||
Folgeschäden, die aus der Benutzung des Programmes oder der
|
||||
Unbenutzbarkeit des Programmes folgen (einschließlich, aber nicht
|
||||
beschränkt auf, Datenverluste, fehlerhafte Verarbeitung von Daten,
|
||||
Verluste, die von Ihnen oder anderen getragen werden müssen, oder einen
|
||||
Fehler des Programms, mit irgeneinem anderen Programm zusammenzuarbeiten),
|
||||
selbst wenn ein Copyright-Inhaber oder Dritter über die Möglichkeit
|
||||
solcher Schäden unterrichtet worden war.
|
||||
|
||||
<P ALIGN=CENTER>
|
||||
ENDE DER BEGRIFFE UND BESTIMMUNGEN
|
||||
</P>
|
||||
|
||||
</B>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<H2>Anhang: Wie wenden Sie diese Begriffe auf Ihre neuen Programme an</H2>
|
||||
|
||||
Wenn Sie ein neues Programm entwickeln und wollen, daß es für
|
||||
größtmöglichen Nutzen für die Allgemeinheit ist, dann ist
|
||||
der beste Weg, dies zu erreichen, es zu freier Software zu machen, die jeder
|
||||
unter diesen Bestimmungen weiterverbreiten und verändern kann.
|
||||
<P>
|
||||
|
||||
Um dies zu erreichen, fügen Sie die folgenden Anmerkungen zu Ihrem
|
||||
Programm hinzu. Es ist am sichersten, sie an den Anfang einer jeden Quelldatei
|
||||
zu stellen, um den Gewährleistungsausschluß möglichst deutlich
|
||||
darzustellen; außerdem sollte jede Datei mindestens eine
|
||||
"Copyright"-Zeile besitzen sowie einen kurzen Hinweis darauf, wo die
|
||||
vollständige Lizenz gefunden werden kann.
|
||||
|
||||
<PRE>
|
||||
<I>eine Zeile mit dem Programmnamen und einer kurzen Beschreibung </I>
|
||||
Copyright (C) 19<I>yy Name des Autors</I>
|
||||
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
</PRE>
|
||||
|
||||
Fügen Sie auch eine kurze Notiz hinzu, wie Sie postalisch (normal und per
|
||||
Email) erreichbar sind.
|
||||
<P>
|
||||
|
||||
Wenn Ihr Programm interaktiv ist, sorgen Sie dafür, daß es nach dem
|
||||
Start einen kurzen Vermerk ausgibt:
|
||||
|
||||
<PRE>
|
||||
Gnomovision version 69, Copyright (C) 19<I>yy Name des Autors</I>
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
</PRE>
|
||||
|
||||
Die hypothetischen Kommandos `show w' und `show c' sollten die entsprechenden
|
||||
Teile der GPL anzeigen. Natürlich können die von Ihnen verwendeten
|
||||
Kommandos anders heißen als `show w' und `show c'; es könnten auch
|
||||
einfach Mausklicks sein - was immer am besten in Ihr Programm paßt.
|
||||
<P>
|
||||
|
||||
Wenn nötig, sollten Sie auch Ihren Arbeitgeber (wenn Sie als Programmierer
|
||||
arbeiten) oder Ihre Schule dazu bringen, einen Copyright-Verzicht für das
|
||||
Programm zu unterschreiben. Hier ist ein Beispiel mit geänderten Namen:
|
||||
|
||||
<PRE>
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<I>Unterschrift von Ty Coon</I>, 1 April 1989
|
||||
Ty Coon, Vizepräsident
|
||||
</PRE>
|
||||
|
||||
Diese General Public License erlaubt es nicht, das Programm in proprietäre
|
||||
Programme einzubinden. Wenn Ihr Programm eine Bibliotheksfunktion ist, kann
|
||||
es sinnvoller sein, das Binden proprietärer Programme mit dieser
|
||||
Bibliothek zu gestatten. Wenn Sie dies tun wollen, sollten Sie die GNU Library
|
||||
General Public License anstelle dieser Lizenz verwenden.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.<BR>
|
||||
675 Mass Ave, Cambridge, MA 02139, USA<BR>
|
||||
In HTML gewandelt 04-Aug-96 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
|
@ -0,0 +1,428 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
GPL
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 4-Aug-1996 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<P ALIGN=CENTER>
|
||||
<FONT SIZE=+3>
|
||||
GNU General Public License<BR>
|
||||
</FONT>
|
||||
<FONT SIZE=+2>
|
||||
Version 2, June 1991<BR>
|
||||
</FONT>
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.<BR>
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<P ALIGN=CENTER>
|
||||
<A HREF="gnulis.html">Deutsche Übersetzung</A>
|
||||
</P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<H2>Preamble</H2>
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software - to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
<P>
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
<P>
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
<P>
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
<P>
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
<P>
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
<P>
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
<P>
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
|
||||
<H2>GNU GENERAL PUBLIC LICENSE</H2>
|
||||
|
||||
<H3>Terms and Conditions for Copying, Distributing and Modification</H3>
|
||||
|
||||
<B>0.</B>
|
||||
|
||||
This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
<P>
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
<P>
|
||||
|
||||
<B>1.</B> You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
<P>
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
<P>
|
||||
|
||||
<B>2.</B> You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<B>a)</B> You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
<P>
|
||||
<B>b)</B> You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
<P>
|
||||
<B>c)</B> If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
</BLOCKQUOTE>
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
<P>
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
<P>
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
<P>
|
||||
|
||||
<B>3.</B> You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
<BLOCKQUOTE>
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
<P>
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
<P>
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
</BLOCKQUOTE>
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
<P>
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
<P>
|
||||
|
||||
<B>4.</B> You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
<P>
|
||||
|
||||
<B>5.</B> You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
<P>
|
||||
|
||||
<B>6.</B> Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
<P>
|
||||
|
||||
<B>7.</B> If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
<P>
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
<P>
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
<P>
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
<P>
|
||||
|
||||
<B>8.</B> If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
<P>
|
||||
|
||||
<B>9.</B> The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
<P>
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
<P>
|
||||
|
||||
<B>10.</B> If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
|
||||
<H2>NO WARRANTY</H2>
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
<P ALIGN=CENTER>
|
||||
END OF TERMS AND CONDITIONS
|
||||
</P>
|
||||
|
||||
|
||||
<H2>Appendix: How to Apply These Terms to Your New Programs</H2>
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
<P>
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<PRE>
|
||||
<I>one line to give the program's name and a brief idea of what it does.</I>
|
||||
Copyright (C) 19<I>yy name of author</I>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
</PRE>
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
<P>
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
<PRE>
|
||||
Gnomovision version 69, Copyright (C) 19<I>yy name of author</I>
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
</PRE>
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items - whatever suits your program.
|
||||
<P>
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
<PRE>
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<I>signature of Ty Coon</I>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
</PRE>
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.<BR>
|
||||
675 Mass Ave, Cambridge, MA 02139, USA<BR>
|
||||
written in HTML 04-Aug-96 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Hall of Fame
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="me.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Hall Of Fame</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>D</B></FONT>iese
|
||||
Anleitung wäre nichts geworden ohne das Zusammenspiel vieler Leute.
|
||||
Ich bedanke mich herzlich bei:
|
||||
<UL>
|
||||
<LI><B>den Entwicklern</B>
|
||||
<UL>
|
||||
<LI>Fritz Elfert und seiner Crew für die Existenz von I4L
|
||||
<LI><A HREF="http://www.sfs.nphil.uni-tuebingen.de/~hipp/"
|
||||
TARGET=_top>Michael Hipp</A> für den "ipppd"
|
||||
<LI>Andreas Kool für "isdnlog" und "isdnmon"
|
||||
<LI>Michael Knigge für "imon"
|
||||
<LI>Volker Goetz für "imontty", das Listenmanagement und den
|
||||
FAQ-Grundstock
|
||||
<LI>Gert Doering für "mgetty+sendfax"
|
||||
<LI>Michael "Ghandi" Herold für sein "vbox"
|
||||
<LI>Und all die anderen Leute, die beim i4l-Development mitarbeiten
|
||||
</UL>
|
||||
<LI><B>den vielen Tipgebern</B>
|
||||
<UL>
|
||||
<LI>Allen hilfsbereiten Seelen der
|
||||
i4l-Mailingliste
|
||||
<LI>Christian Brunner (TU München)
|
||||
<LI>Andreas Sellmeier (TU München)
|
||||
<LI>Joachim Ritschel (TU Ilmenau)
|
||||
<LI><A HREF="http://cips02.physik.uni-bonn.de/~harbeck/"
|
||||
TARGET=_top>Daniel Harbeck</A> für seine email-Kurzanleitung
|
||||
<LI><A HREF="http://home.pages.de/~giggls"
|
||||
TARGET=_top>Sven Geggus</A> für viele Hinweise zum aliasing bei
|
||||
Email
|
||||
<LI><A HREF="mailto:m.dickebohm@uni-koeln.de?subject=Usenet news">Markus
|
||||
Dickebohm</A> für sein exzellentes INN-Tutorial
|
||||
<LI><A HREF="mailto:hessler@wi-inf.uni-essen.de?subject=Audio-Anleitung">
|
||||
Matthias Heßler</A> für seine vbox-Anleitung und viiiiiel
|
||||
Co-Working - insbesondere an der FAQ, die sehr viel Arbeit macht!
|
||||
<LI><A HREF="mailto:husfeld@usm.uni-muenchen.de?subject=leafsite">
|
||||
Dirk Husfeld</A> und
|
||||
<LI><A HREF="mailto:Herbert.Thielen@lpr.e-technik.tu-muenchen.de?subject=leafsite">
|
||||
Herbert Thielen</A> für sehr wertvolle Hilfe bei der
|
||||
Scriptenentwicklung zu "connect".
|
||||
<LI>und vielen anderen...
|
||||
</UL>
|
||||
<LI><B>den Supportern dieser Seite</B>
|
||||
<UL>
|
||||
<LI>Allen Leuten am
|
||||
<A HREF="http://www.lrz-muenchen.de/" TARGET=_top>LRZ
|
||||
München</A>, die so hilfsbereit waren
|
||||
<LI><A HREF="mailto:web@mpe-garching.mpg.de?subject=i4l collection">Dr.
|
||||
Werner Becker</A> (MPG Garching) für's Einbinden in
|
||||
<A HREF="http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html"
|
||||
TARGET=_top>seine Sammlung</A>
|
||||
<LI><A HREF="mailto:schulte@wrds1.urz.uni-wuppertal.de?subject=ipppd am
|
||||
HRZ">Karl-Wilhelm Schulte</A>
|
||||
(Uni Wuppertal) für's
|
||||
<A HREF="http://www.uni-wuppertal.de/hrz/netzinfo/linux_isdn.htm"
|
||||
TARGET=_top>Übernehmen</A> und Anpassen an die dortigen
|
||||
Gegebenheiten
|
||||
<LI><A HREF="mailto:Martin.Steinmetz@student.uni-ulm.de?subject=ipppd am
|
||||
URZ">Martin Steinmetz</A> (Uni Ulm) für's
|
||||
<A HREF="http://www-exp.physik.uni-ulm.de/www_exp/german/people/steinmet/setup.htm"
|
||||
TARGET=_top>Übernehmen</A> und Anpassen an die dortigen
|
||||
Gegebenheiten
|
||||
<LI><A HREF="mailto:94004531@postoffice.csu.edu.au?subject=leafsite and NET-2-HOWTO">
|
||||
Terry Dawson</A> für die Nennung dieser Seiten im NET-2-HOWTO
|
||||
</UL>
|
||||
<LI><B>und natürlich bei</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.cs.Helsinki.FI/~torvalds/"
|
||||
TARGET=_top>Linus Torvalds</A>
|
||||
für dieses affenstarke Betriebssystem
|
||||
<LI><A HREF="http://www.isc.tamu.edu/~lewing/linux/"
|
||||
TARGET=_top>Larry Ewing</A>
|
||||
für das nette Linux-2.0-Logo
|
||||
<LI><A HREF="http://greenie.muc.de/~neko/"
|
||||
TARGET=_top>Simone "Neko" Demmel</A> und
|
||||
<A HREF="http://greenie.muc.de/~gert/"
|
||||
TARGET=_top>Gert Doering</A>
|
||||
für das Organisieren der herrlichen Plüsch-Pinguine!
|
||||
</UL>
|
||||
</UL>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 24-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,106 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Hall of Fame
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="me.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Hall of Fame</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>T</B></FONT>his
|
||||
WWW page would never exist without the cooperation of a lot of people.
|
||||
Many thanks to:
|
||||
<UL>
|
||||
<LI><B>the developers</B>
|
||||
<UL>
|
||||
<LI>Fritz Elfert and his crew for the making of I4L
|
||||
<LI><A HREF="http://www.sfs.nphil.uni-tuebingen.de/~hipp/"
|
||||
TARGET=_top>Michael Hipp</A> for the "ipppd"
|
||||
<LI>Andreas Kool for "isdnlog" and "isdnmon"
|
||||
<LI>Michael Knigge for "imon"
|
||||
<LI>Volker Goetz for "imontty", the list management and the FAQ base
|
||||
<LI>Gert Doering for "mgetty+sendfax"
|
||||
<LI>Michael "Ghandi" Herold for his "vbox"
|
||||
<LI>and all the other people cooperating with the i4l developer team
|
||||
</UL>
|
||||
<LI><B>the people who gave a lot of hints</B>
|
||||
<UL>
|
||||
<LI>All the people in the i4l mailing list who could help me
|
||||
<LI>Christian Brunner (TU Munich)
|
||||
<LI>Andreas Sellmeier (TU Munich)
|
||||
<LI>Joachim Ritschel (TU Ilmenau)
|
||||
<LI><A HREF="http://cips02.physik.uni-bonn.de/~harbeck/"
|
||||
TARGET=_top>Daniel Harbeck</A> for his short email tutorial
|
||||
<LI><A HREF="http://home.pages.de/~giggls"
|
||||
TARGET=_top>Sven Geggus</A> for many hints concerning aliasing
|
||||
<LI><A HREF="mailto:m.dickebohm@uni-koeln.de?subject=Usenet news">Markus
|
||||
Dickebohm</A> (very good Usenet tutorial)
|
||||
<LI><A HREF="mailto:hessler@wi-inf.uni-essen.de?subject=Audio tutorial">
|
||||
Matthias Heßler</A> for the vbox tutorial and **lots** of
|
||||
coworking - especially for the FAQ which causes a lot of labour.
|
||||
<LI><A HREF="mailto:husfeld@usm.uni-muenchen.de?subject=leafsite">
|
||||
Dirk Husfeld</A> und
|
||||
<LI><A HREF="mailto:Herbert.Thielen@lpr.e-technik.tu-muenchen.de?subject=leafsite">
|
||||
Herbert Thielen</A> für sehr wertvolle Hilfe bei der
|
||||
Scriptenentwicklung zu "connect".
|
||||
<LI>and many more...
|
||||
</UL>
|
||||
<LI><B>the supporters of this WWW page</B>
|
||||
<UL>
|
||||
<LI>All the folks at the
|
||||
<A HREF="http://www.lrz-muenchen.de/">LRZ Munich</A>
|
||||
who could help me much
|
||||
<LI><A HREF="mailto:web@mpe-garching.mpg.de?subject=i4l collection">Dr.
|
||||
Werner Becker</A> (MPG Garching) for taking my page into
|
||||
<A HREF="http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html"
|
||||
TARGET=_top>his collection</A>
|
||||
<LI><A HREF="mailto:schulte@wrds1.urz.uni-wuppertal.de?subject=ipppd am
|
||||
HRZ">Karl-Wilhelm Schulte</A> (Uni Wuppertal) for
|
||||
<A HREF="http://www.uni-wuppertal.de/hrz/netzinfo/linux_isdn.htm"
|
||||
TARGET=_top>copying</A> and adapting to their needs
|
||||
<LI><A HREF="mailto:Martin.Steinmetz@student.uni-ulm.de?subject=ipppd am
|
||||
URZ">Martin Steinmetz</A> (Uni Ulm) for
|
||||
<A HREF="http://www-exp.physik.uni-ulm.de/www_exp/german/people/steinmet/setup.htm"
|
||||
TARGET=_top>copying</A> and adapting to their needs
|
||||
<LI><A HREF="mailto:94004531@postoffice.csu.edu.au?subject=leafsite and NET-2-HOWTO">
|
||||
Terry Dawson</A> for announcing these pages in the NET-2-HOWTO
|
||||
</UL>
|
||||
<LI><B>and of course to</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.cs.Helsinki.FI/~torvalds/"
|
||||
TARGET=_top>Linus Torvalds</A>
|
||||
for this really great operating system
|
||||
<LI><A HREF="http://www.isc.tamu.edu/~lewing/linux/"
|
||||
TARGET=_top>Larry Ewing</A>
|
||||
for the nice Linux-2.0 logo.
|
||||
<LI><A HREF="http://greenie.muc.de/~neko/"
|
||||
TARGET=_top>Simone "Neko" Demmel</A> and
|
||||
<A HREF="http://greenie.muc.de/~gert/"
|
||||
TARGET=_top>Gert Doering</A>
|
||||
for organizing these wonderful penguin dolls!
|
||||
</UL>
|
||||
</UL>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 24-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,238 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
History
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="c64.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN"><BR>
|
||||
<FONT SIZE=+3>How to Get Access to the Internet using PPP
|
||||
</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<H2>History</H2>
|
||||
|
||||
<FONT SIZE=+3><B>B</B></FONT>ecause
|
||||
always there are some points to improve this manual changes pretty often.
|
||||
It would be a bit difficult for the user to find out what has changed, and so
|
||||
I made a small history.
|
||||
|
||||
<UL>
|
||||
<LI>In the far past: Once upon a time there was a poor student who desperately
|
||||
tried to get this d... i4l running. He gathered smallest hints and spent
|
||||
a lot of money to the Deutsche Telekom (telephone company in Germany).
|
||||
<LI>The LRZ asked him how-to, when the thing happened to work something.
|
||||
<LI>The original version of this page appeared in the beginning of May 1996
|
||||
as a suggestion for a LRZ info paper. Some smaller accidents were built-in,
|
||||
however, e.g. the FTP transfer did not work properly.
|
||||
<LI>May 13rd: It worked. Sma<LI>6. Juli:
|
||||
<UL>
|
||||
<LI>Die IP-Adresse des ersten LRZ-Ascens war falsch. Korrigiert in der
|
||||
Einführung und im Script rc.isdn.
|
||||
<LI>Viele Leser schrieben von Problemen mit SysV-init/simpleinit.
|
||||
Daher wurde das bei der Konfiguration stärker berücksichtigt.
|
||||
<LI>Das Problem "CHAP" wurde - obwohl am LRZ nicht relevant - erklärt.
|
||||
</UL>
|
||||
ll speech at LRZ within a workshop concerning
|
||||
"accessing the LRZ via telephone lines". The page was converted from
|
||||
plain ASCII to HTML. A lot of people wrote emails and wanted to have this
|
||||
page. Dr. Werner Becker mounted it to the WWW under URL
|
||||
<<A HREF="http://o01.rosat.mpe-garching.mpg.de/~web/ISDN.html">http://o01.rosat.mpe-garching.mpg.de/~web/ISDN.html</A>>
|
||||
<LI>May 16th: New version - sorry, it had bugs!
|
||||
<UL>
|
||||
<LI>/etc/rc.d/rc.isdn: added second Ascend server
|
||||
<LI>/etc/rc.d/rc.isdn: the non-PPP device isdn1 -> isdn0
|
||||
<LI>/etc/rc.d/rc.isdn: removedthe first "0" in "isdnctrl addphone ipppx in"
|
||||
(small bug)
|
||||
<LI>/etc/ppp/pap-secrets widened
|
||||
<LI>/etc/hosts: added 2nd Ascend server, but killed the "lrz" entry
|
||||
</UL>
|
||||
<LI>May 17th: because I forgot something in the last version it did not work.
|
||||
<UL>
|
||||
<LI>/etc/ppp/options: Removed "remotename lrz" entry.
|
||||
<LI>/etc/rc.d/rc.isdn: added option "remotename lrz-px" to the ipppd calls
|
||||
(with x=0,1)
|
||||
</UL>
|
||||
These changes worked.<BR>
|
||||
Also a first good attempt to handle email off-line was suggested. But
|
||||
it was LRZ specific.
|
||||
<UL>
|
||||
<LI>added email chapter
|
||||
<LI>added "lrzmail" and "sunmail" to /etc/hosts.
|
||||
</UL>
|
||||
<LI>May 18: No bigger changes - wrote this history. I'm working on INN
|
||||
implementation...
|
||||
<LI>May 21: I could mount this page at an own site. The newest version of
|
||||
this page is found at
|
||||
<<A HREF="http://www.lrz-muenchen.de/~ui161ab/www/isdn/">http://www.lrz-muenchen.de/~ui161ab/www/isdn/</A>><BR>
|
||||
Changes:
|
||||
<UL>
|
||||
<LI>email chapter: added suggestion how to substitute chma (not ideal)
|
||||
<LI>email chapter: corrected MASQUERADE_AS entry in
|
||||
/usr/src/sendmail/cf/cf/linux.dl4mhk.mc (host name had been wrong)
|
||||
</UL>
|
||||
<LI>June 20th: INN is looking very reproachful, but:
|
||||
<UL>
|
||||
<LI>improved "look" of the pages
|
||||
<LI>divided now the several subjects (installation, email, news etc.)
|
||||
into separate pages
|
||||
<LI>made this English translation of the original German page
|
||||
<LI>widened the introduction,
|
||||
<LI>removed some few bugs.
|
||||
<LI>The page was completely rebuilt for kernel 2.0.0, so these scripts
|
||||
have changed:
|
||||
<UL>
|
||||
<LI><TT>/etc/rc.d/rc.isdn</TT>: The line<BR>
|
||||
<TT>echo "0" >/etc/lines.active # makes it comfortable.</TT><BR>
|
||||
was added.
|
||||
<LI>The neton and netoff scripts were substituted against the very
|
||||
large but comfortable script <TT>/sbin/isdn</TT>
|
||||
</UL>
|
||||
<LI>made this English translation of the original German page (uff...)
|
||||
</UL>
|
||||
<LI>June 30th: My Usenet system is running since four days now.
|
||||
<UL>
|
||||
<LI>The Usenet page (in German) is finished.
|
||||
<LI>The Email page was modified slightly.
|
||||
</UL>
|
||||
<LI>July 6th:
|
||||
<UL>
|
||||
<LI>The first LRZ Ascend IP address had been wrong. Fixed in the
|
||||
introduction and the /etc/hosts file.
|
||||
<LI>The testing whether the line is ok is improved. Now the script
|
||||
<TT>/sbin/isdn</TT> pings directly to the dial-in server, not to a
|
||||
more distant computer. The same way the scripts
|
||||
<TT>/sbin/transmail</TT> and <TT>/sbin/transnews</TT> work - but here
|
||||
also the mail/news host is tested. If this machine is off-line
|
||||
no more dial attempts are made.
|
||||
<LI>Many readers had trouble concerning SysV-init/simpleinit.
|
||||
So I described this problem more extensive.
|
||||
<LI>The "CHAP" problem is now described (not important at the LRZ,
|
||||
however).
|
||||
</UL>
|
||||
<LI>July 19th:
|
||||
<UL>
|
||||
<LI>Installation: CHAP authentification described now more elegant
|
||||
<LI>Instead of kernel 2.0.0 with patch1+2 now 2.0.6 "naked"
|
||||
</UL>
|
||||
<LI>July 28th:
|
||||
<UL>
|
||||
<LI>Installation: The ipppd stop file for shutdown was enhanced:
|
||||
A "<TT>ifconfig <I>device</I> down</TT>" prevents "busy" messages.
|
||||
<LI>email: Added "<TT>FEATURE(nocanonify)</TT>" to the sendmail
|
||||
configuration file.
|
||||
</UL>
|
||||
<LI>July 29th:
|
||||
<UL>
|
||||
<LI>Usenet: "Täglicher Kleinkram":
|
||||
"<TT>sendnews</TT>" command built in.
|
||||
</UL>
|
||||
<LI>September 1st:<BR>
|
||||
The pages have been revised completely: it is not longer bound at the
|
||||
Leibniz-Rechenzentrum as provider, ant it is written now so generally,
|
||||
that in most cases you should be able to setup your system with it.
|
||||
This collection is protected now under the conditions of the GPL, so
|
||||
you may use and copy it as you like.<BR>
|
||||
Changes:
|
||||
<UL>
|
||||
<LI>A database with data of providers is built up. It is used actively in
|
||||
the scripts.
|
||||
<LI>/etc/hosts:
|
||||
<UL>
|
||||
<LI>lrz-p0 -> prvdr0
|
||||
<LI>lrz-p1 -> prvdr1
|
||||
<LI>lrzmail -> getmail
|
||||
<LI>lrznews -> getnews
|
||||
</UL>
|
||||
These names also were changed in the scripts - so be careful with
|
||||
updates. I apologize for any unconveniences, but I had to do this.
|
||||
<LI> The scripts /sbin/isdn, /sbin/transmail and /sbin/transnews
|
||||
contained a bad bug, making the more applications open in one channel
|
||||
concept not work. Bug fixed.
|
||||
<LI> All scripts were revised intensely.
|
||||
<LI> The english translation of the Usenet chaper is finished.
|
||||
<LI> A new chapter is born: ftp on demand!
|
||||
<LI> The email chapter is now prepared in a way you can use it for
|
||||
other providers.
|
||||
<LI> You can now download these pages (tared zipped).
|
||||
</UL>
|
||||
<LI>October 20th:<BR>
|
||||
The scripts had some new bugs, which are fixed now hopefully. you can now
|
||||
see only simple easy-to-understand example scripts in the pages, but
|
||||
can load down very sophisticated easy-to-use scripts.
|
||||
Einige Schönheitskorrekturen.
|
||||
<LI>November 21st:<BR>
|
||||
<UL>
|
||||
<LI>Matthias Heßler suggested to create better names for the
|
||||
configuration scripts (<TT>i4l.provider</TT> and <TT>i4l.secrets</TT>).
|
||||
<LI>Kernel configuration: the "Code Maturity-Level" question is now
|
||||
answered with "No". Should work.
|
||||
<LI>The scripts rc.isdn, /sbin/isdn, /sbin/transmail, /sbin/transnews
|
||||
got some polish. Some small bug fixes. rc.isdn was cleaned a bit more
|
||||
intensively.
|
||||
</UL>
|
||||
<LI>December 1st:<BR>
|
||||
The scripts became faster because sleep time amounts were decreased.
|
||||
<LI>January 26th 1997:<BR>
|
||||
"isdn" is dead - long lives "connect"! A totally new script package
|
||||
handles now the connection to the Internet - via isdn4linux or via modem.
|
||||
Multiple connections and route definitions are possible now, also
|
||||
limited dial-in attempts and more.
|
||||
<LI>24. Februar 1997:<BR>
|
||||
Some more or less serious bux were fixed, some changes were made. Many
|
||||
thanks to Dirk Husfeld <husfeld@usm.uni-muenchen.de> and
|
||||
Herbert Thielen <Herbert.Thielen@lpr.e-technik.tu-muenchen.de>
|
||||
for lots of most valuable hints and remarks.
|
||||
<UL>
|
||||
<LI>Provider templates: <TT>IP</TT> now is named correctly
|
||||
<TT>IP_ADDRESS</TT>.
|
||||
<LI>The english installation page had a wrongly described chap-secrets
|
||||
file.
|
||||
<LI>S.u.S.E. uses a start script <TT>/sbin/init.d/i4l_hardware</TT> in
|
||||
newer Distributions - this is honored now.
|
||||
<LI>The PID of the connect script is now determined by "$$",
|
||||
and lock file handling is corrected somewhat.
|
||||
<LI>Now before testing whether PPP negotiation was successful, a test
|
||||
of the physical line is made.
|
||||
<LI>Lots of small and big bugs are fixed.
|
||||
<LI>If connect could open only the second defined remote, and connect is
|
||||
called again, an unwanted second connection established in the old
|
||||
script version. Fixed.
|
||||
<LI>IMPORTANT: all files formerly written to <TT>/tmp</TT> are moved to
|
||||
<TT>/var/lib/connect</TT> now! This touches the scripts
|
||||
<TT>/etc/ppp/ip-up</TT> and <TT>/sbin/connect.</TT> This was done
|
||||
because of the system security.
|
||||
<LI>All absolute paths are substituted by variables.
|
||||
</UL>
|
||||
So version 1.0 officially is released! :-) But sorry: more changes
|
||||
must wait, because I will start a stressful new job very soon. :-(
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 24-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,233 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Geschichte
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="c64.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Geschichte dieser Anleitung</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>D</B></FONT>a
|
||||
sich immer mal wieder herausstellt, daß man etwas verbessern kann,
|
||||
oder daß mal was falsch ist, kommen recht oft neue Versionen heraus.
|
||||
Für den Anwender wäre es zu mühsam, immer herausfinden zu
|
||||
müssen, wo etwas geändert wurde. Daher eine kleine Historie.
|
||||
|
||||
<UL>
|
||||
<LI>Urzeit: Es war einmal ein armer Student, der verzweifelt versuchte,
|
||||
i4l zum Laufen zu kriegen. Er sammelte kleinste Hinweise und spendete
|
||||
der Telekom viel Geld.
|
||||
<LI>Das LRZ trat an ihn heran, als die Geschichte so langsam zu
|
||||
funktionieren begann, und wollte wissen, wie man es macht.
|
||||
<LI>Die Urversion der Anleitung entstand Anfang Mai 1996 als Vorschlag
|
||||
für eine LRZ-Info-Schrift. Kleinere Unfälle gab es noch, so
|
||||
funktionierte der ftp-Datenverkehr nicht immer.
|
||||
<LI>13. Mai: Die Sache stand. Kleiner Vortrag am LRZ im Rahmen eines Workshops
|
||||
zum Thema "Zugang an's LRZ von außen".
|
||||
Die Anleitung wurde nach HTML konvertiert.
|
||||
Die Resonanz war umwerfend - bestimmt 30 emails von Leuten, die es
|
||||
noch genauer wissen wollten. Dr. Werner Becker montiert die Anleitung
|
||||
im WWW unter
|
||||
<<A HREF="http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html">http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html</A>>
|
||||
<LI>16. Mai: Neue Version - leider mit Fehlern!
|
||||
<UL>
|
||||
<LI>/etc/rc.d/rc.isdn: um den 2. Ascend-Server erweitert
|
||||
<LI>/etc/rc.d/rc.isdn: das Nicht-PPP-Gerät isdn1 -> isdn0
|
||||
<LI>/etc/rc.d/rc.isdn: die "isdnctrl addphone ipppx in" der
|
||||
führenden Null beraubt (kleiner Bug)
|
||||
<LI>/etc/ppp/pap-secrets erweitert
|
||||
<LI>/etc/hosts: um den 2. Ascend-Server erweitert, dafür den Eintrag
|
||||
"lrz" entfernt
|
||||
</UL>
|
||||
<LI>17. Mai: eine Unterlassungssünde in der letzten Version führte
|
||||
zum Nichtfunktionieren.
|
||||
<UL>
|
||||
<LI>/etc/ppp/options: Der Eintrag "remotename lrz" wurde entfernt.
|
||||
<LI>/etc/rc.d/rc.isdn: die Aufrufe der ipppds wurden um die Option
|
||||
"remotename lrz-px" mit x=0,1 erweitert.
|
||||
</UL>
|
||||
Mit diesen Änderungen funktionierte es wieder.<BR>
|
||||
Des weiteren wurde eine bereits gute Möglichkeit implementiert,
|
||||
die email von den LRZ-Servern nach Hause zur offline-Bearbeitung
|
||||
zu verlagern. Bisher allerdings noch LRZ-spezifisch.
|
||||
<UL>
|
||||
<LI>Email-Kapitel addiert
|
||||
<LI>/etc/hosts um die Einträge "lrzmail" und "sunmail" erweitert.
|
||||
</UL>
|
||||
<LI>18. Mai: Keine große Änderung - nur diese Historie wurde
|
||||
formuliert. Die INN-Forschung läuft auf Hochtouren...
|
||||
<LI>21. Mai: Ab sofort ist die aktuellste Version der Seite bei mir selbst
|
||||
zu finden: <<A HREF="http://www.lrz-muenchen.de/~ui161ab/">http://www.lrz-muenchen.de/~ui161ab/</A>><BR>
|
||||
Veränderungen:
|
||||
<UL>
|
||||
<LI>Abschnitt email: Vorschlag zum chma-Ersatz eingefügt (nicht ideal)
|
||||
<LI>ebenda: in der Datei /usr/src/sendmail/cf/cf/linux.dl4mhk.mc
|
||||
wurde der MASQUERADE_AS-Eintrag mit dem korrekten Hostnamen versehen.
|
||||
</UL>
|
||||
<LI>20. Juni: Der INN schaut mich schon ganz vorwurfsvoll an, aaaaber:
|
||||
<UL>
|
||||
<LI>Die Optik wurde entscheidend verbessert
|
||||
<LI>Eine Auftrennung in mehrere Sachgebiete (Installation, email, News...)
|
||||
fand statt
|
||||
<LI>Die Einleitung wurde erweitert.
|
||||
<LI>Etliche kleine sachliche und schreibliche Fehler wurden beseitigt.
|
||||
<LI>Es wurde komplett auf Kernel 2.0.0 umgestellt, daher haben sich
|
||||
folgende Scripten geändert:
|
||||
<UL>
|
||||
<LI><TT>/etc/rc.d/rc.isdn</TT>: Die Zeile<BR>
|
||||
<TT>echo "0" >/etc/lines.active # macht die Sache bequem.</TT><BR>
|
||||
wurde eingefügt.
|
||||
<LI>Die neton- und netoff-Scripten wurden gegen ein sowohl
|
||||
umfangreiches als auch komfortables Script ersetzt:
|
||||
<TT>/sbin/isdn</TT>
|
||||
</UL>
|
||||
<LI>Eine englische Übersetzung wurde angefertigt (uff...).
|
||||
</UL>
|
||||
<LI>30. Juni: Seit vier Tagen läuft mein Usenet-System.
|
||||
<UL>
|
||||
<LI>Die Usenet-Seite (bisher nur auf Deutsch) ist fertig.
|
||||
<LI>Die Email-Seite hat leichte Veränderungen erfahren.
|
||||
</UL>
|
||||
<LI>6. Juli:
|
||||
<UL>
|
||||
<LI>Die IP-Adresse des ersten LRZ-Ascends war falsch. Korrigiert in der
|
||||
Einführung und in der Datei /etc/hosts.
|
||||
<LI>Die Überprüfung, ob die Verbindung steht, geschieht nun
|
||||
auf verbesserte Weise. Im Script <TT>/sbin/isdn</TT> wird jetzt
|
||||
der Dial-In-Server selber angepingt, nicht ein entfernterer Rechner.
|
||||
Genauso geschieht es auch in <TT>/sbin/transmail</TT> und
|
||||
<TT>/sbin/transnews</TT> - hier wird jetzt aber zusätzlich der
|
||||
Mail/News-Host auf Funktion getestet. Steht dieser, unterbleiben
|
||||
weitere Anwahlversuche.
|
||||
<LI>Viele Leser schrieben von Problemen mit SysV-init/simpleinit.
|
||||
Daher wurde das bei der Konfiguration stärker berücksichtigt.
|
||||
<LI>Das Problem "CHAP" wurde - obwohl am LRZ nicht relevant - erklärt.
|
||||
</UL>
|
||||
<LI>19. Juli:
|
||||
<UL>
|
||||
<LI>Installation: CHAP-Authentifizierung eleganter gelöst
|
||||
<LI>Statt Kernel 2.0.0 mit Patch1+2 nun 2.0.6 "nackt"
|
||||
</UL>
|
||||
<LI>28. Juli:
|
||||
<UL>
|
||||
<LI>Installation: Bei der Datei zum Beendigen der ipppds beim Shutdown
|
||||
verhindert nun ein vorhergehendes
|
||||
"<TT>ifconfig <I>device</I> down</TT>" unschöne Meldungen
|
||||
<LI>email: Die Sendmail-Konfigurationsdatei wurde um
|
||||
"<TT>FEATURE(nocanonify)</TT>" erweitert.
|
||||
</UL>
|
||||
<LI>29. Juli:
|
||||
<UL>
|
||||
<LI>Usenet: "Täglicher Kleinkram":
|
||||
"<TT>sendnews</TT>" eingebaut
|
||||
</UL>
|
||||
<LI>1. September:<BR>
|
||||
Komplette Überarbeitung: die Anleitung ist nun vom
|
||||
Leibniz-Rechenzentrum als Provider losgelöst und so allgemein
|
||||
gehalten, daß in vielen Fällen damit einfach losgelegt
|
||||
werden kann. Ab sofort ist diese Seitensammlung unter dem Schutz der GNU
|
||||
GPL und darf nun frei weiterverbreitet werden.<BR>
|
||||
Änderungen:
|
||||
<UL>
|
||||
<LI>Eine Datenbank mit Providerdaten soll aufgebaut werden. Diese wird
|
||||
aktiv in den Scripten verwendet.
|
||||
<LI>/etc/hosts:
|
||||
<UL>
|
||||
<LI>lrz-p0 -> prvdr0
|
||||
<LI>lrz-p1 -> prvdr1
|
||||
<LI>lrzmail -> getmail
|
||||
<LI>lrznews -> getnews
|
||||
</UL>
|
||||
Entsprechend wurden alle Scripten verändert - also Vorsicht bei
|
||||
Updates. Leider war dieser Schritt notwendig, ich entschuldige mich
|
||||
für eventuelle Unannehmlichkeiten.
|
||||
<LI> Die Scripten /sbin/isdn, /sbin/transmail und /sbin/transnews
|
||||
enthielten einen bösen Denkfehler, der das Konzept des mehrfach
|
||||
offenen Kanals nicht funktionieren ließ. Bug fixed.
|
||||
<LI> Alle Scripten wurden intensiv überarbeitet.
|
||||
<LI> Die englische Übersetzung der Usenet-Anleitung ist fertig.
|
||||
<LI> Ein neues Kapitel ist in der Entstehung begriffen: ftp on demand!
|
||||
<LI> Das Email-Kapitel ist endlich soweit, daß man sie
|
||||
guten Gewissens auch bei anderen Providern einsetzen kann.
|
||||
<LI> Ab sofort kann die Sammlung getart und gezippt heruntergeladen werden.
|
||||
</UL>
|
||||
<LI>20. Oktober:<BR>
|
||||
Die Scripten hatten neue Fehler, die nun hoffentlich beseitigt sind.
|
||||
In den Seiten selbst sind jetzt nur anschauliche Beispiele zu sehen,
|
||||
man kann sich aber die funktionsfähigen ausgeklügelten
|
||||
Batchdateien downloaden.
|
||||
<LI>21. November:<BR>
|
||||
Einige Schönheitskorrekturen.
|
||||
<UL>
|
||||
<LI>Nach einem Vorschlag von Matthias Heßler erhielten die
|
||||
Konfigurationsdateien einprägsamere Namen (<TT>i4l.provider</TT>
|
||||
und <TT>i4l.secrets</TT>.
|
||||
<LI>Kernel-Konfiguration: Die "Code Maturity-Level"-Frage wird jetzt mit
|
||||
"No" angegeben. Das müßte funktionieren.
|
||||
<LI>Die Scripten rc.isdn, /sbin/isdn, /sbin/transmail, /sbin/transnews
|
||||
erhielten etwas Schliff. Kleine Bugfixes. rc.isdn wurde etwas
|
||||
intensiver bereinigt.
|
||||
</UL>
|
||||
<LI>1. Dezember:<BR>
|
||||
Die Scripten wurden durch Straffung der sleep-Zeiten schneller.
|
||||
<LI>26. Januar 1997:<BR>
|
||||
"isdn" ist tot - es lebe "connect"! Ein völlig neues Scriptenpaket
|
||||
erledigt die Anbindung an's Internet per isdn4linux oder Modem, mit
|
||||
möhlicher Mehrfachverbindung, Routensetzung, Begrenzung der
|
||||
Anwahlversuche u.v.m.
|
||||
Scriptenversion 0.99 BETA.
|
||||
<LI>24. Februar 1997:<BR>
|
||||
Einige mehr oder weniger ernste Bugs wurden beseitigt, einige kleinere
|
||||
Veränderungen wurden vorgenommen. Ganz herzlich danke ich
|
||||
Dirk Husfeld <husfeld@usm.uni-muenchen.de> und
|
||||
Herbert Thielen <Herbert.Thielen@lpr.e-technik.tu-muenchen.de>
|
||||
für viele sehr wertvolle Anmerkungen.
|
||||
<UL>
|
||||
<LI>Provider-Templates: <TT>IP</TT> heißt jetzt korrekt
|
||||
<TT>IP_ADDRESS</TT>.
|
||||
<LI>Die englische Installationsseite hatte ein falsches chap-secrets
|
||||
beschrieben.
|
||||
<LI>Das in der S.u.S.E. neuerdings enthaltene Startscript
|
||||
<TT>/sbin/init.d/i4l_hardware</TT> wird jetzt berücksichtigt.
|
||||
<LI>Die PID des connect-Scripts wird jetzt mit "$$" bestimmt,
|
||||
die Handhabung des Locks wurde leicht korrigiert.
|
||||
<LI>Der Test, ob die Leitung offen ist, wird durch eine vorangestellte
|
||||
Überprüfung des physikalischen Zustandes zuverlässiger.
|
||||
<LI>Jede Menge kleinerer und größerer Bugs sind beseitigt
|
||||
<LI>Wenn connect erst bei zweiter Anwahl auf einem zweiten Remote
|
||||
erfolgreich war und dann abermals aufgerufen wurde, führte dies
|
||||
zu einer unbeabsichtigten Anwahl auf dem 2. ISDN-Kanal. Fixed.
|
||||
<LI>WICHTIG: Alle bisher nach <TT>/tmp</TT> geschriebene Dateien sind
|
||||
umbenannt und nach <TT>/var/lib/connect</TT> verlagert worden!
|
||||
Das betrifft die Scripten <TT>/etc/ppp/ip-up</TT> sowie
|
||||
<TT>/sbin/connect.</TT> Begründung: Systemsicherheit.
|
||||
<LI>Absolute Pfade sind überall durch Variable ersetzt.
|
||||
</UL>
|
||||
Damit ist offiziell die Version 1.0 released. :-) Weitere Änderungen
|
||||
werden leider warten müssen, denn ich trete in Kürze eine neue
|
||||
Arbeitsstelle an, die sehr streßreich sein wird. :-(
|
||||
</UL>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 24-Feb-97
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,58 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>A Linux Leafsite</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 16-Feb-1997 -->
|
||||
<META name="description" value="Linux and PPP - a leafsite tutorial">
|
||||
<META name="keywords" value="Linux, ISDN, isdn4linux, i4l, Teles, syncppp, ipppd, email, usenet, fax, voice, ftp, modem">
|
||||
</HEAD>
|
||||
|
||||
<FRAMESET cols="25%,*">
|
||||
<FRAME NAME="Index" SRC="contents.html">
|
||||
<FRAME SCROLLING="YES" NAME="Main" SRC="intro.html">
|
||||
</FRAMESET>
|
||||
|
||||
<NOFRAME>
|
||||
|
||||
<BODY BACKGROUND="dl0tumbk.gif">
|
||||
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<FONT SIZE=+3>Zugang zum Internet unter Linux über ISDN</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P ALIGN=CENTER>
|
||||
Dieses Dokument enthält Anweisungen aus dem HTML/3-Set sowie Konstrukte,
|
||||
die nur einige Browser wie Netscape oder MS Explorer darstellen
|
||||
können.
|
||||
<P>
|
||||
|
||||
Leider setzen Sie keinen kompatiblen Browser ein. Trotzdem können Sie
|
||||
sich die Seiten ansehen - wenn sie dann auch nicht so schön aussehen, wie
|
||||
wir's hier geplant haben... :-)
|
||||
<P>
|
||||
|
||||
<A HREF="index_e.html">
|
||||
<IMG SRC="british.gif" ALIGN=CENTER ALT="(GB)">
|
||||
<I>Same Information in English</I>
|
||||
</A>
|
||||
</P>
|
||||
|
||||
<A HREF="contents.html">Inhaltsverzeichnis</A>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 16-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,56 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Linux, ISDN, LRZ</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 16-Feb-1997 -->
|
||||
<META name="description" value="Linux and PPP - a leafsite tutorial">
|
||||
<META name="keywords" value="Linux, ISDN, isdn4linux, i4l, Teles, syncppp, ipppd, email, usenet, fax, voice, ftp, modem">
|
||||
</HEAD>
|
||||
|
||||
<FRAMESET cols="25%,*">
|
||||
<FRAME NAME="Index" SRC="cont_e.html">
|
||||
<FRAME SCROLLING="YES" NAME="Main" SRC="intro_e.html">
|
||||
</FRAMESET>
|
||||
|
||||
<NOFRAME>
|
||||
|
||||
<BODY BACKGROUND="dl0tumbk.gif">
|
||||
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<FONT SIZE=+3>How to connect to the Internet with Linux over ISDN</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P ALIGN=CENTER>
|
||||
This document uses commands of the HTML/3 set and some constructs only some
|
||||
browsers like Netscape or MS Explorer can display.
|
||||
<P>
|
||||
|
||||
Sorry - you don't use a compatible browser. But nevertheless you can
|
||||
see our pages - but not as beautiful as we've planned it... :-)
|
||||
<P>
|
||||
|
||||
<A HREF="index.html">
|
||||
<IMG SRC="german.gif" ALIGN=CENTER ALT="(D)">
|
||||
<I>Deutsche Version dieser Seiten</I>
|
||||
</A>
|
||||
</P>
|
||||
|
||||
<A HREF="cont_e.html">Contents</A>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 16-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,108 @@
|
|||
<HEAD>
|
||||
<TITLE>Ein Linux-Leafsite
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 1-Mar-1997 -->
|
||||
</HEAD>
|
||||
<BODY>
|
||||
|
||||
|
||||
<CENTER>
|
||||
<P>
|
||||
<IMG SRC="friends1.jpg" ALT="Linux">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Ein Linux-Leafsite
|
||||
</FONT>
|
||||
</P>
|
||||
</CENTER>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<TABLE BORDER>
|
||||
<TR><TD><CENTER><H1>ACHTUNG!</H1></CENTER></TR>
|
||||
<TR><TD>Da ich ab 1. März 1997 in eine neue Arbeit eintrete,
|
||||
kann ich diese Seiten praktisch kaum mehr pflegen. Das führt
|
||||
mich zu folgender Bitte:
|
||||
<UL>
|
||||
<LI> Wer etwas beisteuern kann, sei herzlich eingeladen, es zu
|
||||
tun - leider kann ich aber auf E-Mails und Beiträge
|
||||
nicht sofort reagieren.
|
||||
<LI> Wer offene Fragen hat, möge sie bitte an die Mailingliste
|
||||
<TT>isdn4linux@listserv.isdn4linux.de</TT> bzw. an die hieran
|
||||
gekoppelte Usenet-Newsgroup <TT>de.alt.comm.isdn4linux</TT>
|
||||
richten. Bitte schickt mir keine E-Mails - es sei denn, Ihr
|
||||
entdeckt einen Fehler oder Ihr habt einen Beitrag. Ich kann
|
||||
praktisch kaum mehr antworten, da ich des
|
||||
öfteren für mehrere Monate unterwegs sein werde.
|
||||
<LI> Bitte ruft mich nicht zuhause an - das ist aus den obengenannten
|
||||
Gründen sinnlos. Und wenn ich zuhause bin, benötige ich
|
||||
ein Minimum an Privatleben ;-)
|
||||
</UL>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<B><FONT SIZE=+3>D</FONT></B>iese
|
||||
Anleitung erklärt, wie man unter Linux
|
||||
<UL>
|
||||
<LI>mit einem Modem und asynchronem PPP
|
||||
<LI>mit ISDN und synchronem PPP
|
||||
</UL>
|
||||
bei seinem Provider in's Internet einsteigen kann. Mit Hilfe einiger
|
||||
Konfigurationsdateien kann man sich die hier beschriebenen Scripten leicht an
|
||||
die eigenen Bedürfnisse anpassen.
|
||||
<P>
|
||||
|
||||
Für Fortgeschrittene sind dann noch etliche Anwendungen des Systems
|
||||
(offline Email, offline Usenet News und mehr) beschrieben.
|
||||
<P>
|
||||
|
||||
Wer sich diese Seiten in Ruhe daheim ansehen will, darf sie sich gerne
|
||||
<A HREF="leafsite.tar.gz">herunterladen</A>.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<H2>
|
||||
<B>WICHTIG:</B>
|
||||
<A HREF="faq.html">Die ISDN4Linux-FAQ</A>
|
||||
</H2>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
Ach ja - wer die netten Pinguin-Bilder mag, sollte hier mal reinschauen:
|
||||
<A HREF="http://www.lrz-muenchen.de/~ui161ab/www/Pinguin/index.html" TARGET=_top>Linux-Pinguine in der freien
|
||||
Wildbahn</A>.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<I>
|
||||
Diese Seiten genießen den Schutz der
|
||||
<A HREF="gnulis.html" TARGET=_top>GNU General Public License (GPL)</A>
|
||||
Version 2; (C) 1996 Bernhard Hailer. Weiterverbreitung im Rahmen der GPL
|
||||
durchaus erwünscht, ich bitte aber um Benachrichtigung.
|
||||
Ich leiste <B>keinerlei Garantien</B>. Bitte lesen Sie die GNU General
|
||||
Public License, wenn Sie mehr Details erfahren möchten. Gedruckte
|
||||
Versionen der GNU General Public License sind erhältlich bei: Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</P>
|
||||
</I>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis.html" TARGET=_top>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 01-Mar-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,112 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
A Linux Leafsite
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 1-Mar-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="friends1.jpg" ALT="Linux">
|
||||
<BR>
|
||||
<FONT SIZE=+3>A Linux Leafsite</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<TABLE BORDER>
|
||||
<TR><TD><CENTER><H1>ATTENTION!</H1></CENTER></TR>
|
||||
<TR><TD>Because I will start a new job in March, I can't maintain these
|
||||
pages as well as I could before. So I have some requests:
|
||||
<UL>
|
||||
<LI> If you have an article for me, you are welcome to send it
|
||||
to me. But sorry: my answer may take a very long time.
|
||||
<LI> If you have a question the tutorial and the FAQ could not answer
|
||||
please post it into the mailing list
|
||||
<TT>isdn4linux@listserv.isdn4linux.de</TT> or into the
|
||||
linked Usenet group <TT>de.alt.comm.isdn4linux</TT>.
|
||||
Please do not send me e-mails in this case - you may send
|
||||
e-mails if you found an error or you have an article, of course.
|
||||
<LI> Please do not call me at home - it is senseless because of the
|
||||
reasons I listed above. When I'm at home I want to have a
|
||||
minimum of private life ;-)
|
||||
</UL>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>T</B></FONT>his
|
||||
WWW page archive tells you how to connect to your provider via
|
||||
<UL>
|
||||
<LI>ISDN and synchronous PPP
|
||||
<LI>a modem and asynchronous PPP.
|
||||
</UL>
|
||||
You can easily adapt the described scripts with some configuration files.
|
||||
<P>
|
||||
|
||||
For people having some experience with this stuff there is more: some pages
|
||||
tell you how to setup a system with offline email, offline Usenet news and
|
||||
some other things.
|
||||
<P>
|
||||
|
||||
If you want to read these pages off line at home you may
|
||||
<A HREF="leafsite.tar.gz">download</A> them.
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<H2>
|
||||
<B>IMPORTANT:</B>
|
||||
<A HREF="faq_e.html">The ISDN4Linux-FAQ</A>
|
||||
</H2>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
Oh yes - if you like the nice penguin pictures just have a look at here:
|
||||
<A HREF="http://www.lrz-muenchen.de/~ui161ab/www/Pinguin/index.html" TARGET=_top>The wildlife of the Linux
|
||||
Penguin</A>.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<I>
|
||||
These pages are protected under the terms of the
|
||||
<A HREF="gnulis_e.html" TARGET=_top>GNU General Public License (GPL)</A>
|
||||
Version 2; (C) 1996 Bernhard Hailer.
|
||||
Redistribution is permitted under the terms and conditions of the GPL,
|
||||
but please pass us a note. <B>There is no warranty.</B> Please read the
|
||||
GNU General Public License for more details. You can get printed versions
|
||||
of the GPL from
|
||||
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
</I>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 01-Mar-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,170 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Bookmarks
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="gaense.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Bookmarks</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<H2>Andere WWW-Seiten mit verwandten Themen</H2>
|
||||
|
||||
<FONT SIZE=+3><B>Z</B></FONT>um
|
||||
Thema ISDN und Linux gibt es noch etliche weitere Adressen, die hilfreich sein
|
||||
könnten.
|
||||
<P>
|
||||
|
||||
<UL>
|
||||
<LI><B>Weitere Anleitungen</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html"
|
||||
TARGET=_top>Dr. Werner Becker's Scripten-Sammlung</A>
|
||||
<LI><A HREF="http://www.datenhighway.com/isdn4linux.html"
|
||||
TARGET=_top>Weitere Scripten</A>
|
||||
<LI><A HREF="http://www.suse.de/Support/sdb/isdn.html"
|
||||
TARGET=_top>Die S.u.S.E.-Support-Seite zu i4l</A> (sehr gut!)
|
||||
<LI><A HREF="http://www.fzi.de/sim/people/trautw/i4l/index.html"
|
||||
TARGET=_top>Christoph Trautweins i4l-Seiten</A>
|
||||
<LI><A HREF="http://www.uni-wuppertal.de/hrz/netzinfo/linux_isdn.html"
|
||||
TARGET=_top>
|
||||
HRZ der BUGH Wuppertal</A>
|
||||
</UL>
|
||||
<LI><B>Software rund um ISDN4Linux</B>
|
||||
<UL>
|
||||
<LI><I><B>ftp.franken.de</B></I> (Ursprung)
|
||||
<UL>
|
||||
<LI><A HREF="ftp://ftp.franken.de/pub/isdn4linux/">ISDN4Linux,
|
||||
Contributions, FAQ und mehr</A>
|
||||
</UL>
|
||||
<LI><I><B>ftp.pop.de</B></I> (Mirror)
|
||||
<UL>
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/LOCAL/linux/isdn/">Der
|
||||
"Chargeint"-Patch</A> (Lokal)
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/linux/isdn4linux/contributions">
|
||||
Contributions</A> (Spiegel von ftp.franken.de)
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/linux/isdn4linux/v2.0">
|
||||
Version 2.0</A> (Spiegel von ftp.franken.de)
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/linux/isdn4linux/FAQ">
|
||||
FAQ</A> (Spiegel von ftp.franken.de)
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/linux/isdn4linux/HiSax">
|
||||
HiSax-Treiber</A> (Spiegel von ftp.franken.de)
|
||||
</UL>
|
||||
<LI><I><B>stud.fbi.fh-darmstadt.de</B></I> (Treiber für itk ix1 micro)
|
||||
<UL>
|
||||
<LI><A HREF="http://stud.fbi.fh-darmstadt.de/~mohr/isdn/itk_only.tar.gz" TARGET=_top>Treiber für itk ix1 micro</A>
|
||||
</UL>
|
||||
</UL>
|
||||
<LI><B>Patches</B>
|
||||
<UL>
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/linux/isdn4linux/LOCAL">Der
|
||||
"Chargeint"-Patch</A> (und
|
||||
<A HREF="http://www.provi.de/~gvz/chargeint.html">Dokumentation</A>)
|
||||
</UL>
|
||||
<LI><B>ISDN</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.uni-mannheim.de/unima/rum/netze/isdn/" TARGET=_top>
|
||||
ISDN am Rechenzentrum der Uni Mannheim (viele Links!)</A>
|
||||
</UL>
|
||||
<LI><B>PPP und syncPPP</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.sfs.nphil.uni-tuebingen.de/home/hipp/isdn/"
|
||||
TARGET=_top>Michael Hipp's Seite (syncPPP)</A>
|
||||
<LI><A HREF="http://www.techfak.uni-kiel.de/~stn/i4l/"
|
||||
TARGET=_top>Stefan Nehlsen's syncPPP-Anleitung (Uni Kiel)</A>
|
||||
<LI><A HREF="http://www.uni-koeln.de/themen/linux/doc/ppp/index.html"
|
||||
TARGET=_top>PPP-Seite an der Uni Köln</A>
|
||||
<LI><A HREF="http://www.uni-hamburg.de/netgroup/dialup/ppplinux.html"
|
||||
TARGET=_top>PPP-Seite der Uni Hamburg</A>
|
||||
<LI><A HREF="http://www.serv.net/~cameron/ezppp/index.html"
|
||||
TARGET=_top>EzPPP</A>, (X-Window GUI PPP-Konfigurations-Utility)
|
||||
</UL>
|
||||
<LI><B>diald</B>
|
||||
<UL>
|
||||
<LI><A HREF="ftp://ftp.kiss.de/pub/linux/isdn4linux/">Der
|
||||
"diald"-Patch</A> (nach diald-0.14-device.* sehen)
|
||||
</UL>
|
||||
<LI><B>email</B>
|
||||
<LI><B>News</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.tu-harburg.de/~semb2204/dlhp/news.html"
|
||||
TARGET=_top>Deutsches News HOWTO</A>
|
||||
<LI><A HREF="http://www.uni-koeln.de/~acp66/"
|
||||
TARGET=_top>Anleitung von Markus Dickebohm</A>
|
||||
<LI><A HREF="http://www-public.rz.uni-duesseldorf.de/~kania/mailnews.htm"
|
||||
TARGET=_top>Anleitung von Christoph Kania</A>
|
||||
</UL>
|
||||
<LI><B>Fax</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.leo.org/~doering/mgetty/" TARGET=_top>
|
||||
Mgetty + Sendfax Documentation Centre (Gert Doering)</A>
|
||||
<LI><A HREF="http://www.lib.ox.ac.uk/internet/news/faq/archive/fax-faq.mgetty+sendfax+vgetty.html" TARGET=_top>
|
||||
Mgetty+Sendfax with Vgetty Extensions (FAQ)</A>
|
||||
</UL>
|
||||
<LI><B>Audio</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.lib.ox.ac.uk/internet/news/faq/archive/fax-faq.mgetty+sendfax+vgetty.html" TARGET=_top>
|
||||
Mgetty+Sendfax with Vgetty Extensions (FAQ)</A>
|
||||
<LI><A HREF="http://www.lightlink.com/mhp/lpp/"
|
||||
TARGET=_top>The Linux Phone Project</A>
|
||||
</UL>
|
||||
<LI><B>Standards und Dokumentationen</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.itu.ch/itudoc/itu-t/rec/t.html"
|
||||
TARGET=_top>ITU</A> (internationale Standards)
|
||||
</UL>
|
||||
<LI><B>Hardware</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.think.de/"
|
||||
TARGET=_top>Thinking Objects</A> (ICN-Karten)
|
||||
<LI><A HREF="http://www.itk.de/columbus/"
|
||||
TARGET=_top>ITK</A> (ITK-Karten, z.B. Columbus)
|
||||
</UL>
|
||||
<LI><B>Leute</B>
|
||||
<UL>
|
||||
<LI><A HREF="mailto:bonis@kiss.de?subject=diald">Wim Bonis</A> (diald/i4l)
|
||||
<LI><A HREF="http://www.uni-koeln.de/~acp66/"
|
||||
TARGET=_top>Markus Dickebohm</A> (hervorragende News-Anleitung)
|
||||
<LI><A HREF="http://www.leo.org/~doering/"
|
||||
TARGET=_top>Gert Doering</A> (mgetty+sendfax, vgetty)
|
||||
<LI><A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html"
|
||||
TARGET=_top>Bernhard Hailer</A> (diese Anleitung)
|
||||
<LI><A HREF="http://www.sfs.nphil.uni-tuebingen.de/home/hipp/isdn/"
|
||||
TARGET=_top>Michael Hipp</A> (syncPPP)
|
||||
<LI><A HREF="http://www-public.rz.uni-duesseldorf.de/~kania/"
|
||||
TARGET=_top>Christoph Kania</A> (News-Anleitung)
|
||||
<LI><A HREF="http://www.camelot.de/~keil/"
|
||||
TARGET=_top>Karsten Keil</A> (HiSax-Treiber)
|
||||
<LI><A HREF="http://stud.fbi.fh-darmstadt.de/~mohr/isdn/mydriver.html/"
|
||||
TARGET=_top>Frank Mohr</A> (Treiber für die itk ix1 micro)
|
||||
<LI><A HREF="http://www.xs4all.nl/~jdo"
|
||||
TARGET=_top>Jan den Ouden</A> (Teles-Treiber)
|
||||
<LI><A HREF="http://www.fzi.de/sim/people/trautw/i4l/index.html"
|
||||
TARGET=_top>Christoph Trautwein</A> (i4l-Seiten)
|
||||
</UL>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 24-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
|
@ -0,0 +1,167 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Links
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="gaense.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Bookmarks</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<H2>More Pages with Related Stuff</H2>
|
||||
|
||||
<FONT SIZE=+3><B>T</B></FONT>here
|
||||
are a lot of more pages with related stuff which could be helpful.
|
||||
<P>
|
||||
|
||||
<UL>
|
||||
<LI><B>More Tutorials</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html"
|
||||
TARGET=_top>Dr. Werner Becker's Script Collection</A>
|
||||
<LI><A HREF="http://www.datenhighway.com/isdn4linux.html"
|
||||
TARGET=_top>More Scripts</A>
|
||||
<LI><A HREF="http://www.suse.de/Support/sdb/isdn.html"
|
||||
TARGET=_top>The S.u.S.E. i4l Support Page</A> (very good!)
|
||||
<LI><A HREF="http://www.fzi.de/sim/people/trautw/i4l/index.html"
|
||||
TARGET=_top>Christoph Trautweins i4l-Seiten</A>
|
||||
<LI><A HREF="http://www.uni-wuppertal.de/hrz/netzinfo/linux_isdn.html"
|
||||
TARGET=_top>
|
||||
HRZ der BUGH Wuppertal</A>
|
||||
</UL>
|
||||
<LI><B>Software around ISDN4Linux</B>
|
||||
<UL>
|
||||
<LI><I><B>ftp.franken.de</B></I> (origin)
|
||||
<UL>
|
||||
<LI><A HREF="ftp://ftp.franken.de/pub/isdn4linux/">ISDN4Linux,
|
||||
Contributions, FAQ and more</A>
|
||||
</UL>
|
||||
<LI><I><B>ftp.pop.de</B></I> (mirror)
|
||||
<UL>
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/LOCAL/linux/isdn/">The
|
||||
"Chargeint" patch</A> (local)
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/linux/isdn4linux/contributions">
|
||||
Contributions</A> (mirror of ftp.franken.de)
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/linux/isdn4linux/v2.0">
|
||||
Version 2.0</A> (mirror of ftp.franken.de)
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/linux/isdn4linux/FAQ">
|
||||
FAQ</A> (mirror of ftp.franken.de)
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/linux/isdn4linux/HiSax">
|
||||
HiSax-Treiber</A> (mirror of ftp.franken.de)
|
||||
</UL>
|
||||
<LI><I><B>stud.fbi.fh-darmstadt.de</B></I> (itk ix1 micro driver)
|
||||
<UL>
|
||||
<LI><A HREF="http://stud.fbi.fh-darmstadt.de/~mohr/isdn/itk_only.tar.gz" TARGET=_top>itk ix1 micro driver</A>
|
||||
</UL>
|
||||
</UL>
|
||||
<LI><B>Patches</B>
|
||||
<UL>
|
||||
<LI><A HREF="ftp://ftp.pop.de/pub/linux/isdn4linux/LOCAL">The
|
||||
"Chargeint" patch</A> (and
|
||||
<A HREF="http://www.provi.de/~gvz/chargeint.html">documentation</A>)
|
||||
</UL>
|
||||
<LI><B>ISDN</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.uni-mannheim.de/unima/rum/netze/isdn/" TARGET=_top>
|
||||
ISDN am Rechenzentrum der Uni Mannheim (many links!)</A>
|
||||
</UL>
|
||||
<LI><B>PPP und syncPPP</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.uni-koeln.de/themen/linux/doc/ppp/index.html"
|
||||
TARGET=_top>PPP page at the Uni Cologne</A>
|
||||
<LI><A HREF="http://www.techfak.uni-kiel.de/~stn/i4l/"
|
||||
TARGET=_top>Stefan Nehlsen's syncPPP Tutorial (Uni Kiel)</A>
|
||||
<LI><A HREF="http://www.uni-hamburg.de/netgroup/dialup/ppplinux.html"
|
||||
TARGET=_top>PPP-Seite at the Uni Hamburg</A>
|
||||
<LI><A HREF="http://www.sfs.nphil.uni-tuebingen.de/home/hipp/isdn/"
|
||||
TARGET=_top>Michael Hipp's Page (syncPPP)</A>
|
||||
<LI><A HREF="http://www.serv.net/~cameron/ezppp/index.html"
|
||||
TARGET=_top>EzPPP</A>, (X-Window GUI PPP configuration utility)
|
||||
</UL>
|
||||
<LI><B>diald</B>
|
||||
<UL>
|
||||
<LI><A HREF="ftp://ftp.kiss.de/pub/linux/isdn4linux/">Der
|
||||
"diald"-Patch</A> (nach diald-0.14-device.* sehen)
|
||||
</UL>
|
||||
<LI><B>email</B>
|
||||
<LI><B>News</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.tu-harburg.de/~semb2204/dlhp/news.html"
|
||||
TARGET=_top>Deutsches News HOWTO</A>
|
||||
<LI><A HREF="http://www.uni-koeln.de/~acp66/"
|
||||
TARGET=_top>Markus Dickebohm's Usenet Tutorial</A>
|
||||
<LI><A HREF="http://www-public.rz.uni-duesseldorf.de/~kania/mailnews.htm"
|
||||
TARGET=_top>Christoph Kania's Usenet Tutorial</A>
|
||||
</UL>
|
||||
<LI><B>Fax</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.leo.org/~doering/mgetty/" TARGET=_top>
|
||||
Mgetty + Sendfax Documentation Centre (Gert Doering)</A>
|
||||
<LI><A HREF="http://www.lib.ox.ac.uk/internet/news/faq/archive/fax-faq.mgetty+sendfax+vgetty.html" TARGET=_top>
|
||||
Mgetty+Sendfax with Vgetty Extensions (FAQ)</A>
|
||||
</UL>
|
||||
<LI><B>Audio</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.lib.ox.ac.uk/internet/news/faq/archive/fax-faq.mgetty+sendfax+vgetty.html" TARGET=_top>
|
||||
Mgetty+Sendfax with Vgetty Extensions (FAQ)</A>
|
||||
<LI><A HREF="http://www.lightlink.com/mhp/lpp/"
|
||||
TARGET=_top>The Linux Phone Project</A>
|
||||
</UL>
|
||||
<LI><B>Standards and documentations</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.itu.ch/itudoc/itu-t/rec/t.html"
|
||||
TARGET=_top>ITU</A> (international standards)
|
||||
</UL>
|
||||
<LI><B>Hardware</B>
|
||||
<UL>
|
||||
<LI><A HREF="http://www.think.de/"
|
||||
TARGET=_top>Thinking Objects</A> (ICN cards)
|
||||
<LI><A HREF="http://www.itk.de/columbus/"
|
||||
TARGET=_top>ITK</A> (ITK cards, e.g. Columbus)
|
||||
</UL>
|
||||
<LI><B>Leute</B>
|
||||
<UL>
|
||||
<LI><A HREF="mailto:bonis@kiss.de?subject=diald">Wim Bonis</A> (diald/i4l)
|
||||
<LI><A HREF="http://www.uni-koeln.de/~acp66/"
|
||||
TARGET=_top>Markus Dickebohm</A> (very good Usenet tutorial)
|
||||
<LI><A HREF="http://www.leo.org/~doering/"
|
||||
TARGET=_top>Gert Doering</A> (mgetty+sendfax, vgetty)
|
||||
<LI><A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html"
|
||||
TARGET=_top>Bernhard Hailer</A> (This Tutorial)
|
||||
<LI><A HREF="http://www.sfs.nphil.uni-tuebingen.de/home/hipp/isdn/"
|
||||
TARGET=_top>Michael Hipp</A> (syncPPP)
|
||||
<LI><A HREF="http://www-public.rz.uni-duesseldorf.de/~kania/"
|
||||
TARGET=_top>Christoph Kania</A> (News Tutorial)
|
||||
<LI><A HREF="http://www.camelot.de/~keil/"
|
||||
TARGET=_top>Karsten Keil</A> (HiSax driver)
|
||||
<LI><A HREF="http://stud.fbi.fh-darmstadt.de/~mohr/isdn/mydriver.html/"
|
||||
TARGET=_top>Frank Mohr</A> (itk ix1 micro driver)
|
||||
<LI><A HREF="http://www.xs4all.nl/~jdo"
|
||||
TARGET=_top>Jan den Ouden</A> (Teles module)
|
||||
<LI><A HREF="http://www.fzi.de/sim/people/trautw/i4l/index.html"
|
||||
TARGET=_top>Christoph Trautwein</A> (i4l pages)
|
||||
</UL>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 24-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,45 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Literatur
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="lit.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Literatur</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<UL>
|
||||
<LI> /usr/src/linux/Documentation/isdn/*
|
||||
<LI> /usr/src/isdn4k-utils-1.3.97/README und weitere Dateien
|
||||
<LI> man pppd, isdnctrl, ...
|
||||
<LI> Kernel-HOWTO, PPP-HOWTO
|
||||
<LI> die diversen READMEs des ISDN4Linux-Paketes
|
||||
<LI> Olaf Kirch: Linux - Wegweiser für Netzwerker;
|
||||
O'Reilly/International Thomson Verlag 1996; ISBN 3-930673-18-5
|
||||
<LI> S. Hetze, D. Hohndel, M. Müller, O. Kirch: Linux Anwenderhandbuch;
|
||||
LunetIX Softfair 1995; ISBN 3-929764-04-0
|
||||
</UL>
|
||||
|
||||
Die letztgenannten beiden Bücher sind absolut empfehlenswert!
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
After Width: | Height: | Size: 4.9 KiB |
|
@ -0,0 +1,47 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Literature
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="lit.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Literature</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<UL>
|
||||
<LI> /usr/src/linux/Documentation/isdn/*
|
||||
<LI> /usr/src/isdn4k-utils-1.3.97/README and more files
|
||||
<LI> man pppd, isdnctrl, ...
|
||||
<LI> Kernel-HOWTO, PPP-HOWTO
|
||||
<LI> the lots of READMEs of the ISDN4Linux package
|
||||
<LI> Olaf Kirch: Linux - Wegweiser für Netzwerker;
|
||||
O'Reilly/International Thomson Verlag 1996; ISBN 3-930673-18-5<BR>
|
||||
(Originally in English: "The Linux Network Administrator's Guide")
|
||||
<LI> S. Hetze, D. Hohndel, M. Müller, O. Kirch: Linux Anwenderhandbuch;
|
||||
LunetIX Softfair 1995; ISBN 3-929764-04-0 (in German only)
|
||||
</UL>
|
||||
|
||||
The last named two books you should have!
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,36 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Planned
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="virtbeer.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Planned</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<UL>
|
||||
<LI>Currently I will not have the time to expand these pages :-(
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,39 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Geplant
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="virtbeer.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Geplant</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<UL>
|
||||
<LI>Derzeit kann ich wegen akutem Zeitmangel nichts zur Erweiterung dieses
|
||||
Angebotes unternehmen :-(
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Bitte...
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="cocktail.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Bitte...</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>D</B></FONT>iese
|
||||
Anleitung ist noch weit davon entfernt, wirklich perfekt zu sein
|
||||
(trotzdem, hoffe ich, war sie hilfreich?). Daher wäre ich sehr dankbar,
|
||||
wenn ich Resonanz bekäme: was könnte man verbessern, wo ist was
|
||||
Falsches, wo könnte man etwas eleganter lösen? Gibt es
|
||||
Unnötiges? Bitte schreibt mir eine kurze email an
|
||||
<A HREF="mailto:hailer@ilo.baynet.de">hailer@ilo.baynet.de</A>.
|
||||
Vielen Dank!
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Setup
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="cocktail.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Please...</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>T</B></FONT>his
|
||||
manual is not perfect (but I hope it was useful?). And so I would
|
||||
be very pleased to hear from you what I could improve, what is not necessary,
|
||||
or where are mistakes. Please write a short email to
|
||||
<A HREF="mailto:hailer@ilo.baynet.de">hailer@ilo.baynet.de</A>.
|
||||
Many thanks!
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
After Width: | Height: | Size: 4.7 KiB |
|
@ -0,0 +1,107 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Ein Linux-Leafsite
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="vortrag.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Wie man sich unter Linux einen "Leafsite" aufbaut
|
||||
</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<B><FONT SIZE=+3>D</FONT></B>iese
|
||||
Seiten wollen in kompakter Form beschreiben, wie man sich einen "Leafsite"
|
||||
(also einen Rechner ohne permanente Internetanbindung) möglichst
|
||||
kostensparend, aber trotzdem sehr leistungsfähig einrichten kann.
|
||||
<P>
|
||||
|
||||
Mit einem einfachen Terminalprogramm kann man noch nicht viel anfangen -
|
||||
gerade mal ein "telnet" ist möglich, und schon die Übertragung
|
||||
von Binärdaten ist nicht mehr so ganz einfach.
|
||||
<P>
|
||||
|
||||
Also setzt man ein Protokoll ein, welches die temporäre Vollanbindung
|
||||
des eigenen Rechners an das Internet erlaubt: PPP (Point-to-Point Protocol).
|
||||
Für die Dauer der Verbindung bekommt man sogar eine gültige
|
||||
IP-Adresse zugeordnet. Das erlaubt nun beispielsweise auch FTP und den Einsatz
|
||||
von WWW-Browsern.
|
||||
<P>
|
||||
|
||||
Da Verbindungen ins Internet Telefonkosten verursachen, muß man
|
||||
möglichst viel "offline" machen können - das heißt: email
|
||||
und News sollten einmal gesamt geladen werden und dann ohne stehende
|
||||
Verbindung bearbeitet werden können. Auch dies beschreiben diese Seiten.
|
||||
<P>
|
||||
|
||||
|
||||
<H2>Voraussetzungen</H2>
|
||||
|
||||
<H3>Allgemeines</H3>
|
||||
|
||||
Zwingend notwendig ist eine Zugangsberechtigung zu Ihrem Provider.
|
||||
Bitte erkundigen Sie sich bei ihm, was dazu erforderlich ist.
|
||||
<P>
|
||||
|
||||
Diese Seiten enthalten auch eine (im Moment noch sehr kleine) Datei, in denen
|
||||
die speziellen Daten bestimmter Provider aufgelistet sind. Wenn Sie einen
|
||||
Eintrag anfügen können, wäre ich dafür sehr dankbar!
|
||||
<P>
|
||||
|
||||
|
||||
<H3>Hardware</H3>
|
||||
|
||||
Sie benötigen eine ISDN-Karte oder ein Modem. Die hier beschriebene
|
||||
Software für ISDN-Karten (isdn4linux) unterstützt zur Zeit eine
|
||||
ganze Menge Karten, die einen bestimmten Siemens-Chipsatz (ISAC und HSCX) an
|
||||
Bord haben, aber auch eine Reihe weiterer Karten. Genaueres hierzu verrät
|
||||
die FAQ, die ebenfalls auf diesen Seiten zu haben ist (Leute, die sich das
|
||||
Archiv geladen haben, müssen sie sich allerdings gesondert laden!).
|
||||
|
||||
|
||||
<H3>Software</H3>
|
||||
|
||||
Man benötigt einen neuen PPP-Dämon - dieser liegt aber jeder
|
||||
Linux-Distribution bei. Wer eine ISDN-Karte einsetzen will, muß sich
|
||||
außerdem eine Modememulation besorgen.
|
||||
Aus praktischen Gründen wird hier das Paket "ISDN4Linux"
|
||||
("i4l") von Fritz Elfert als Treibersammlung verwendet. Es gibt
|
||||
daneben aber auch andere Pakete wie beispielsweise UISDN von Matthias Urlichs.
|
||||
ISDN4Linux bietet aber derzeit als einziges Paket kernelinterne Treiberteile.
|
||||
|
||||
<P>Wer über die weitere Entwicklung dieses Software-Paketes auf dem
|
||||
Laufenden gehalten werden will, sollte sich in der entsprechenden Mailingliste
|
||||
eintragen lassen (Aufkommen ca. 30 Mails pro Tag). Dazu schickt man eine
|
||||
email mit dem Inhalt</P>
|
||||
|
||||
<PRE> subscribe isdn4linux <I><eigene@email.adresse></I>
|
||||
</PRE>
|
||||
|
||||
<P>an</P>
|
||||
|
||||
<PRE> <A HREF="mailto:majordomo@listserv.isdn4linux.de">majordomo@listserv.isdn4linux.de</A>
|
||||
</PRE>
|
||||
|
||||
<P>(ohne Subject).</P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,97 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
A Linux Leafsite
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 21-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="vortrag.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>How to Build a Linux Leafsite
|
||||
</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<FONT SIZE=+3><B>T</B></FONT>his
|
||||
WWW pages tells you how to create easily a "leafsite" (a computer without
|
||||
permanent connection to the Internet), saving money, but very powerful.
|
||||
<P>
|
||||
|
||||
Using a terminal program you can't do too much - you can "telnet" to
|
||||
somewhere; but transferring binary data is somewhat difficult with it.
|
||||
<P>
|
||||
|
||||
So we use a protocol allowing temporarily a full connection of our computer
|
||||
to the Internet: PPP (Point to Point Protocol). You get an own IP address
|
||||
while the connection is established. With this, you can use FTP or WWW
|
||||
browsers, for example.
|
||||
<P>
|
||||
|
||||
Connections into the Internet cause bigger telephone bills, so we must
|
||||
do as much as possible "off line" - i.e. we should be able load down email
|
||||
and news, and read them after download without an active connection.
|
||||
This procedures are described here, too.
|
||||
<P>
|
||||
|
||||
<H2>Requirements</H2>
|
||||
|
||||
|
||||
<H3>General</H3>
|
||||
|
||||
You must have access to your provider. Please ask him what you need to
|
||||
connect to him.
|
||||
<P>
|
||||
|
||||
These pages contain a database file (which currently is very small) with
|
||||
the data of some providers. If you can add an entry I would be very pleased.
|
||||
|
||||
|
||||
<H3>Hardware</H3>
|
||||
|
||||
You need an ISDN card or a modem. The software described here (isdn4linux)
|
||||
supports cards with a special Siemens chip set on it (ISAC and HSCX), and also
|
||||
some other cards. Read the FAQ (also loadable from these pages - people who
|
||||
loaded down the archive must load down the FAQ in an extra step!).
|
||||
|
||||
|
||||
<H3>Software</H3>
|
||||
|
||||
You need the PPP daemon, which comes with each Linux distribution. If you
|
||||
use a ISDN card and need a modem emulation, you need the "ISDN4Linux" ("i4l")
|
||||
package by Fritz Elfert. I describe it here
|
||||
because of some practical reasons. Also available are some other packages like
|
||||
"UISDN" by Matthias Urlichs. Only i4l offers kernel internal drivers yet,
|
||||
however.
|
||||
<P>
|
||||
|
||||
If you want to be told about the development of the i4l software you should
|
||||
subscribe to the isdn4linux mailing list (about 30 mails per day). Therefore
|
||||
you should send an email containing
|
||||
<PRE>
|
||||
subscribe isdn4linux <I><your_own@email.address></I>
|
||||
</PRE>
|
||||
in the body to
|
||||
<PRE>
|
||||
<A HREF="mailto:majordomo@listserv.isdn4linux.de">majordomo@listserv.isdn4linux.de</A>
|
||||
</PRE>
|
||||
(no subject required). The folks talking there also speak English.
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis_e.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 21-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,340 @@
|
|||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
|
@ -0,0 +1,218 @@
|
|||
connect V 0.99.1 - the new script package for the "leafsite" tutorial
|
||||
#####################################################################
|
||||
|
||||
Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de> 27-Jan-96
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
Like the "leafsite" package this package is protected by the
|
||||
GNU General Public License V2 ("GPL"). To learn about this license
|
||||
please have a look at "leafsite" - go to
|
||||
|
||||
http://www.lrz-muenchen.de/~ui161ab/www/isdn/
|
||||
|
||||
and click at the license link. Or look at the file COPYING, which came with
|
||||
this package. There is NO GUARANTEE!
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
"connect" replaces the "isdn" package, which was described in earlier
|
||||
versions of the "leafsite" tutorial at
|
||||
|
||||
http://www.lrz-muenchen.de/~ui161ab/www/isdn/
|
||||
|
||||
Here you will find now the *new* tutorial.
|
||||
|
||||
Features of the "connect" package:
|
||||
|
||||
* "connect" can handle now modem/asyncPPP *and* isdn4linux syncPPP.
|
||||
* It is possible now to open more than one physical line, with
|
||||
special routes for each channel.
|
||||
* You can define now how often connect shall try to dial-in.
|
||||
* You may define as many remotes as you like.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
0.) If you have used the old "isdn" package before, stop the isdn system
|
||||
using
|
||||
<startup_path>/i4l stop
|
||||
(<startup_path> is the path, where all the system bootup files are
|
||||
located).
|
||||
Then remove (or save, if you like) some old files:
|
||||
rm <startup_path>/i4l (if you use a newer SuSE distribution)
|
||||
rm <startup_path>/rc.isdn
|
||||
rm /sbin/isdn
|
||||
rm /etc/i4l.provider (or /etc/i4l.config, if older "isdn" version)
|
||||
rm /etc/i4l.secrets (or /etc/i4l.param, if older "isdn" version)
|
||||
|
||||
1.) Create some directories:
|
||||
mkdir /usr/lib/connect
|
||||
mkdir /usr/lib/connect/providers
|
||||
mkdir /var/lib/connect
|
||||
|
||||
2.) Prepare base file:
|
||||
Take file "base" from this archive, edit it and save it as
|
||||
/usr/lib/connect/base
|
||||
(this file is self-explaining).
|
||||
|
||||
3.) Prepare startup file:
|
||||
Take file "rc.connect" from this archive, edit it and save it as
|
||||
<startup_path>/rc.connect
|
||||
(also self-explaining). Include it into your sysvinit or simpleinit
|
||||
environment - read the comments in rc.config. For newer SuSE distributions
|
||||
you have to move the file to /sbin/init.d and to set a link:
|
||||
ln -s i4l rc.connect
|
||||
|
||||
4.) Now create a file for each provider and each dial-in number. For
|
||||
asyncPPP connections (modems!) take the template "prov-a1", for
|
||||
syncPPP connections (isdn4linux) take "prov-d1"; edit each file
|
||||
and store it in /usr/lib/connect/providers.
|
||||
Example: If you have two providers, one offering two ISDN syncPPP
|
||||
dial-in numbers, the other offering analogous connections
|
||||
and one dial-in port, you have to write three files, say
|
||||
prov1-d1, prov1-d2 and prov2-a1.
|
||||
Use the template files, they are self-explaining. Name it as you
|
||||
like, but don't use on, off, all, maxtries, status, route, device,
|
||||
or help as name.
|
||||
|
||||
5.) pppd and ipppd need some configuration files. Save the files
|
||||
options and ip-up to /etc/ppp. Edit them, if necessary.
|
||||
There also are special options for each provider needed, and also a
|
||||
chap-secrets or pap-secrets file for each provider - this depends on how
|
||||
the provider wants an authentication from you.
|
||||
Example: If you have the providers described one item before, you should
|
||||
define in the according provider files (see above) the
|
||||
options files "options.ipppd.prov1" for the first provider
|
||||
and his two dial-in ports, and "options.pppd.prov2 for the
|
||||
second provider.
|
||||
For authentication you must write a file /etc/ppp/pap-secrets (or
|
||||
/etc/ppp/chap-secrets):
|
||||
# Secrets for authentification using PAP
|
||||
# client server secret IP addresses
|
||||
<provider_login> <1. Provider> '<password>' -
|
||||
<provider_login> <2. Provider> '<password>' -
|
||||
|
||||
6.) Now start up the new system using
|
||||
<startup_path>/rc.connect start
|
||||
(or, if you have a simpleinit system, by calling rc.connect without an
|
||||
argument). A new file is created: /var/lib/connect/status. It is the
|
||||
main data file containing all information about running connections. It
|
||||
will be removed while shutdown of connect (and shutdown of your Linux
|
||||
machine, of course).
|
||||
|
||||
7.) Copy the shell script "connect" from this archive to /sbin and make it
|
||||
executable (as root):
|
||||
cp ./connect /sbin
|
||||
chmod 744 /sbin/connect
|
||||
|
||||
8.) If you have the scripts "/sbin/transmail" and "/sbin/transnews" version
|
||||
3.3 or older, you must exchange them against the new ones in this archive.
|
||||
|
||||
9.) You should have now a running "connect" environment :-)
|
||||
|
||||
|
||||
Using connect
|
||||
-------------
|
||||
|
||||
Now it is simple to open a connection to any remote defined in the
|
||||
/usr/lib/connect/providers directory. For default remotes defined
|
||||
in /usr/lib/connect/base just type in
|
||||
|
||||
connect (or "connect on" - it's the same)
|
||||
|
||||
and the system will dial - via isdn4linux, or via modem, as defined.
|
||||
Remark: While one connect is running, a lock file is active:
|
||||
/var/lock/connect..LCK. If connect detects a valid lockfile (i.e. there
|
||||
really is a job running with the PID defined in /var/lock/connect..LCK),
|
||||
it waits 30 seconds and tries again.
|
||||
|
||||
To close the channel type in
|
||||
|
||||
connect off
|
||||
|
||||
and the default remotes will hang up.
|
||||
|
||||
To prepare a connection to a remote not defined as default, type in
|
||||
|
||||
connect <remote> [on] (you don't need the "on" really)
|
||||
|
||||
where <remote> is the name of the file in /usr/lib/connect/providers/,
|
||||
which describes the remote. To close it type:
|
||||
|
||||
connect <remote> off
|
||||
|
||||
If you want to hangup all channels type in
|
||||
|
||||
connect off all
|
||||
|
||||
This forces hangup of all channels defined in /usr/lib/connect/providers/.
|
||||
|
||||
To open more than one channel at the same time you must use other routes
|
||||
than default, because the default route may exist only one time (the system
|
||||
removes all default routes, only the last one will survive). So you need
|
||||
to tell connect then, which IP's route through it:
|
||||
|
||||
connect <prov-a1> route a.b.c.0
|
||||
|
||||
(of course the route must fit to the remote IP: e.g. if the remote has
|
||||
the IP 123.234.231.124, you may use the route 123.234.0.0, but not
|
||||
198.76.154.0 or so. You need to use subnet IP's!). If you don't set a
|
||||
route while calling connect, the default route will be set. connect can
|
||||
detect whether a route is used already.
|
||||
|
||||
If you cannot connect to your remote, because its dial-in port is
|
||||
heavily loaded, you can define a maximum number of attempts:
|
||||
|
||||
connect prov-d1 maxtries 20
|
||||
|
||||
will try 20 times to dial to the remote.
|
||||
|
||||
If you want to use more than one dial-in port of your provider, you may
|
||||
tell this connect:
|
||||
|
||||
connect prov-d1 prov-d2 prov-d3 ...
|
||||
|
||||
connect will use the second remote, if the first fails, and so on.
|
||||
|
||||
If you want to tell connect, at which device (i.e. serial port) your
|
||||
modem is connected, you can do it this way:
|
||||
|
||||
connect prov-a1 device ttyS1
|
||||
|
||||
And so you can see which channels are open:
|
||||
|
||||
connect status
|
||||
|
||||
|
||||
The files "/sbin/transmail" and "/sbin/transnews" (as described in the
|
||||
"leafsite" tutorial) will work again, if they are not too old (version 3.2
|
||||
or newer). May be you need to change the "isdn on" and "isdn off" commands
|
||||
within these files to "connect on" and "connect off". If you are not sure
|
||||
please have a look again to
|
||||
|
||||
http://www.lrz-muenchen.de/~ui161ab/www/isdn/
|
||||
|
||||
|
||||
Some remarks
|
||||
------------
|
||||
|
||||
If something happens to the status file /var/lib/connect/status, connect
|
||||
may behave in a very strange way (because some "set" commands begin
|
||||
to produce garbage). You will get then a bunch of weird output lines.
|
||||
THIS SHOULD NOT HAPPEN! Please report, if you had this, and describe exactly
|
||||
and in an reproducable way how it happened.
|
||||
|
||||
You probably may ask why I did not write this script in Perl or so.
|
||||
I used a bash shell script because this script should work on each system,
|
||||
whether it has Perl installed or not. Each Linux box has a bash installed!
|
||||
|
||||
Please send comments and criticims to dl4mhk@lrz.uni-muenchen.de, and
|
||||
flames to /dev/null ;-)
|
||||
|
||||
Have fun!
|
||||
Bernhard
|
|
@ -0,0 +1,58 @@
|
|||
#!/bin/bash
|
||||
# (c) 1997 Bernhard Hailer (GNU GPL V.2)
|
||||
|
||||
# Edit this file for your needs
|
||||
|
||||
# local settings
|
||||
# ==============
|
||||
|
||||
# Fully qualified host name
|
||||
MY_HOSTNAME=`hostname --fqdn` # read host's name
|
||||
# MY_HOSTNAME=foo.bar.com
|
||||
|
||||
# Host phone number and MSN (EAZ) - replace by your numbers!
|
||||
MY_PHONE=817812345 # no leading zero!
|
||||
MY_EAZ=12345
|
||||
|
||||
# Email address for fetching mail - replace by your address!
|
||||
MY_EMAIL_ADDRESS=dl4mhk@lrz.uni-muenchen.de
|
||||
|
||||
|
||||
# extra start commands for rc.connect (e.g. module loading)
|
||||
# ---------------------------------------------------------
|
||||
function Con_Start()
|
||||
{
|
||||
insmod /lib/modules/`/bin/uname -r`/misc/isdn.o
|
||||
insmod /lib/modules/`/bin/uname -r`/misc/hisax.o io=3,2,12,0xd80 HiSax_id=Teles0
|
||||
#insmod /lib/modules/`/bin/uname -r`/misc/teles.o io=0,12,0xd80,2 teles_id=Teles0
|
||||
#rmmod teles.o
|
||||
#insmod /lib/modules/`/bin/uname -r`/misc/teles.o io=0,12,0xd80,2 teles_id=Teles0
|
||||
return
|
||||
}
|
||||
|
||||
# extra stop commands for rc.connect (e.g. module unloading)
|
||||
# ----------------------------------------------------------
|
||||
function Con_Stop()
|
||||
{
|
||||
rmmod hisax.o
|
||||
#rmmod teles.o
|
||||
sleep 1
|
||||
rmmod isdn.o
|
||||
return
|
||||
}
|
||||
|
||||
# Default remote providers for regular connects
|
||||
DEFAULT_REMOTES="lrz-d1 lrz-d2"
|
||||
|
||||
# default device where your modem is connected - no leading "/dev/"!
|
||||
DEFAULT_DEVICE="ttyS1"
|
||||
|
||||
# Maximum number of dialin attempts
|
||||
declare -i DEFAULT_MAX_TRIES
|
||||
DEFAULT_MAX_TRIES=4
|
||||
|
||||
# Maximum idle time before hangup (you should use a time of about 300 secs
|
||||
# here, because it is more expensive to dial often than to hold a line!)
|
||||
# This only works for isdn4linux connections.
|
||||
declare -i HUPTIMEOUT
|
||||
HUPTIMEOUT=300 # 5 min
|
|
@ -0,0 +1,749 @@
|
|||
#!/bin/bash
|
||||
# connect: connects to / disconnects from provider
|
||||
# Author: Bernhard Hailer <Bernhard.Hailer@lrz.uni-muenchen.de>
|
||||
# Version: 1.0 (24-Feb-97)
|
||||
# License: GNU General Public License V2 ("GPL")
|
||||
|
||||
|
||||
# command line arguments
|
||||
|
||||
ARG=$1
|
||||
if [ -n "$2" ]
|
||||
then
|
||||
shift
|
||||
ARGV=$*
|
||||
else
|
||||
ARGV=""
|
||||
fi
|
||||
|
||||
|
||||
# Search paths
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
|
||||
# Files (it is save to leave these untouched!)
|
||||
|
||||
BASE=/usr/lib/connect/base # basic definitions
|
||||
PROV_DIR=/usr/lib/connect/providers # config files, once per provider
|
||||
STATUS=/var/lib/connect/status # status file
|
||||
STATUS_BAK=/var/lib/connect/status.bak # status file backup
|
||||
IF_FILE=/var/lib/connect/interface # pppd interface - see /etc/ppp/ip-up!
|
||||
PPP_PID_DIR=/var/run # PPP pid file/Linux: /var/run/pppx.pid
|
||||
|
||||
# Global variables
|
||||
. $BASE
|
||||
declare -i i # i: standard counter
|
||||
NEW_CONN=false
|
||||
declare -i RETURN # i: standard return value
|
||||
RETURN=0
|
||||
# wait before testing line (isdn4linux)
|
||||
declare -i I4L_WAIT
|
||||
I4L_WAIT=10
|
||||
# wait before testing line (modems)
|
||||
declare -i MODEM_WAIT
|
||||
MODEM_WAIT=40
|
||||
|
||||
|
||||
# process ID for lock file
|
||||
declare -i PID
|
||||
declare -i LCK_PID
|
||||
PID=$$
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Functions
|
||||
|
||||
Fatal_Error()
|
||||
# beeps, prints the "Usage:" message, removes lock file and exits (1)
|
||||
{
|
||||
echo -e "\a\nUsage:"
|
||||
echo "connect <keyword> [<remote1> [<remote2> [<remote3> ...]]]"
|
||||
echo "keywords:"
|
||||
echo " [on], off [<remote(s)>] opens/closes connection"
|
||||
echo " off all forced closing"
|
||||
echo " status displays status of all defined remotes"
|
||||
echo " route <IP>|default sets route for line"
|
||||
echo " device <device> modem device (e.g. \"ttyS1\")"
|
||||
echo " maxtries <tries|0> maximum number of dial attempts"
|
||||
echo " help displays this message"
|
||||
echo "<remote1> [<remote2> [<remote3> [... ]]]: remote(s) to open/close"
|
||||
echo "---------------------------------------------------------------------"
|
||||
echo "You have to edit these files for *each* remote:"
|
||||
echo " $PROV_DIR/<remote>"
|
||||
echo "$BASE: Default remote definitions"
|
||||
echo "Remotes must not be named like keywords! Avoid the following names:"
|
||||
echo " on, off, all, status, route, device, maxtries, help"
|
||||
rm /var/lock/LCK..connect 2>/dev/null
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# command line parsing
|
||||
|
||||
OP_MODE=""
|
||||
ROUTE=""
|
||||
declare -i MAX_TRIES
|
||||
MAX_TRIES=0
|
||||
|
||||
until [ -z "$ARG" ]
|
||||
do
|
||||
|
||||
case $ARG in
|
||||
on)
|
||||
if [ -z "$OP_MODE" ]
|
||||
then
|
||||
OP_MODE=on
|
||||
else
|
||||
echo -e "\nOperation mode (on, off, status, help) set twice in command line."
|
||||
Fatal_Error
|
||||
fi
|
||||
;;
|
||||
off)
|
||||
if [ -z "$OP_MODE" ]
|
||||
then
|
||||
OP_MODE=off
|
||||
else
|
||||
echo -e "\nOperation mode (on, off, status, help) set twice in command line."
|
||||
Fatal_Error
|
||||
fi
|
||||
;;
|
||||
status)
|
||||
if [ -z "$OP_MODE" ]
|
||||
then
|
||||
OP_MODE=status
|
||||
else
|
||||
echo -e "\nOperation mode (on, off, status, help) set twice in command line."
|
||||
Fatal_Error
|
||||
fi
|
||||
;;
|
||||
help)
|
||||
if [ -z "$OP_MODE" ]
|
||||
then
|
||||
OP_MODE=help
|
||||
else
|
||||
echo -e "\nOperation mode (on, off, status, help) set twice in command line."
|
||||
Fatal_Error
|
||||
fi
|
||||
;;
|
||||
route)
|
||||
if [ -z "$ROUTE" ]
|
||||
then
|
||||
if [ -n "$ARGV" ]
|
||||
then
|
||||
set `echo $ARGV`
|
||||
ARG=$1
|
||||
shift
|
||||
ARGV=$*
|
||||
ROUTE="$ARG"
|
||||
if [ `cat $STATUS | grep "$ROUTE" >/dev/null` ]
|
||||
then
|
||||
echo -e "\nRoute named in command line is already used!"
|
||||
Fatal_Error
|
||||
fi
|
||||
else
|
||||
echo -e "\nRoute command set without route in command line!"
|
||||
Fatal_Error
|
||||
fi
|
||||
else
|
||||
echo -e "\nRoute set twice in command line!"
|
||||
Fatal_Error
|
||||
fi
|
||||
;;
|
||||
device)
|
||||
if [ -z "$DEVICE" ]
|
||||
then
|
||||
if [ -n "$ARGV" ]
|
||||
then
|
||||
set `echo $ARGV`
|
||||
ARG=$1
|
||||
shift
|
||||
ARGV=$*
|
||||
DEVICE="$ARG"
|
||||
if [ `cat $STATUS | grep "$DEVICE" >/dev/null` ]
|
||||
then
|
||||
echo -e "\nDevice named in command line already used!"
|
||||
Fatal_Error
|
||||
fi
|
||||
else
|
||||
echo -e "\nDevice command set without device name in command line!"
|
||||
Fatal_Error
|
||||
fi
|
||||
else
|
||||
echo -e "\nDevice set twice in command line"
|
||||
Fatal_Error
|
||||
fi
|
||||
;;
|
||||
maxtries)
|
||||
if [ $MAX_TRIES -eq 0 ]
|
||||
then
|
||||
if [ -n "$ARGV" ]
|
||||
then
|
||||
set `echo $ARGV`
|
||||
ARG=$1
|
||||
shift
|
||||
ARGV=$*
|
||||
MAX_TRIES=$ARG
|
||||
else
|
||||
echo -e "\nmaxtries command set without account of tries in command line!"
|
||||
Fatal_Error
|
||||
fi
|
||||
else
|
||||
echo -e "\nmaxtries set twice in command line!"
|
||||
Fatal_Error
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
REMOTE_LIST="$REMOTE_LIST $ARG"
|
||||
;;
|
||||
esac
|
||||
|
||||
# This construct is built against a bash bug.
|
||||
if [ -z "$ARGV" ]
|
||||
then
|
||||
ARG=""
|
||||
else
|
||||
set `echo $ARGV`
|
||||
ARG=$1
|
||||
shift
|
||||
ARGV=$*
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# now fill up some variables, if empty.
|
||||
|
||||
# is there any remote defined in command line / $DEFAULT_REMOTES?
|
||||
|
||||
if [ -z "$REMOTE_LIST" ]
|
||||
then
|
||||
REMOTE_LIST=$DEFAULT_REMOTES # defined in $BASE
|
||||
if [ -z "$REMOTE_LIST" ]
|
||||
then
|
||||
echo -e "\a\nNo DEFAULT_REMOTES defined in $BASE! Exiting."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Operation mode. If none, then assume "on".
|
||||
if [ -z "$OP_MODE" ]
|
||||
then OP_MODE=on
|
||||
fi
|
||||
|
||||
## tty device.
|
||||
#if [ -z "$DEVICE" ]
|
||||
#then
|
||||
# DEVICE=$DEFAULT_DEVICE
|
||||
#fi
|
||||
|
||||
# Maximum number of dial tries.
|
||||
if [ $MAX_TRIES -eq 0 ]
|
||||
then
|
||||
MAX_TRIES=$DEFAULT_MAX_TRIES
|
||||
if [ $MAX_TRIES -eq 0 ]
|
||||
then
|
||||
echo "DEFAULT_MAX_TRIES not set in $BASE!"
|
||||
Fatal_Error
|
||||
fi
|
||||
fi
|
||||
|
||||
# Any route set?
|
||||
if [ -z "$ROUTE" ]
|
||||
then
|
||||
ROUTE=default
|
||||
fi
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# More functions
|
||||
|
||||
Connect_Dial()
|
||||
# Dials out, automatically chooses i4l or modem.
|
||||
# Needs $INTERFACE, $IP_ADDRESS and $ROUTE, and $DEVICE if modem.
|
||||
{
|
||||
BUFFER=$DEVICE
|
||||
. $PROV_DIR/$REMOTE
|
||||
if [ -n "$BUFFER" ]
|
||||
then
|
||||
DEVICE=$BUFFER
|
||||
else
|
||||
if [ -z "$DEVICE" ]
|
||||
then
|
||||
DEVICE="$DEFAULT_DEVICE"
|
||||
fi
|
||||
fi
|
||||
|
||||
case $INTERFACE in
|
||||
ippp*)
|
||||
# ISDN4Linux syncPPP connection
|
||||
ifconfig $INTERFACE up
|
||||
isdnctrl dial $INTERFACE
|
||||
echo "Sleeping $I4L_WAIT seconds for PPP handshaking..."
|
||||
sleep $I4L_WAIT
|
||||
;;
|
||||
*)
|
||||
# Modem asyncPPP connection
|
||||
pppd connect "chat $CHAT_SCRIPT" file $OPTIONS_FILE /dev/$DEVICE &
|
||||
# the interface name was saved now by /etc/ppp/ip-up in IF_FILE.
|
||||
sleep 1
|
||||
echo "Sleeping $MODEM_WAIT seconds for establishing connection..."
|
||||
sleep $MODEM_WAIT
|
||||
if [ -e $IF_FILE ]
|
||||
then
|
||||
read INTERFACE <$IF_FILE
|
||||
else
|
||||
INTERFACE="-----"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [ "$INTERFACE" != "-----" ]
|
||||
then
|
||||
if [ "$ROUTE" = "default" ]
|
||||
then
|
||||
route add $ROUTE $INTERFACE
|
||||
else
|
||||
route add $IP_ADDRESS
|
||||
route add $ROUTE gw $IP_ADDRESS
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
Connect_Hangup()
|
||||
# Hangs up device $INTERFACE. Automatically chooses i4l or modem.
|
||||
# Needs $INTERFACE, $DEVICE, $REMOTE, $IP_ADDRESS and $ROUTE.
|
||||
{
|
||||
case $INTERFACE in
|
||||
ippp*)
|
||||
# ISDN4Linux hangup
|
||||
echo -e "$REMOTE: \c"
|
||||
isdnctrl hangup $INTERFACE
|
||||
ifconfig $INTERFACE down
|
||||
;;
|
||||
*)
|
||||
# Modem hangup
|
||||
if [ -e $PPP_PID_DIR/$INTERFACE.pid ]
|
||||
then
|
||||
kill -HUP `cat $PPP_PID_DIR/$INTERFACE.pid`
|
||||
echo "$REMOTE: $INTERFACE hung up"
|
||||
else
|
||||
echo "$REMOTE: $INTERFACE not connected"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [ "$ROUTE" != "default" ]
|
||||
then
|
||||
route del $IP_ADDRESS 2>/dev/null
|
||||
fi
|
||||
route del $ROUTE 2>/dev/null
|
||||
rm $IF_FILE 2>/dev/null
|
||||
}
|
||||
|
||||
Line_OK()
|
||||
# Checks whether channel really is connected.
|
||||
{
|
||||
case $INTERFACE in
|
||||
ippp*) # test i4l connection
|
||||
# check whether physical connection is established:
|
||||
echo -e "Physical connection... \c"
|
||||
# Therefore get phone number used:
|
||||
PHONE=`cat $PROV_DIR/$REMOTE | grep "PHONE="`
|
||||
# Now we have a string like PHONE=08912345 - use it as command to set PHONE
|
||||
export $PHONE;
|
||||
if [ -n "`imontty | grep $PHONE | grep outgoing`" ]
|
||||
then
|
||||
echo -e "established; PPP negotiation... \c"
|
||||
# check whether PPP negotiation was successful:
|
||||
set `ping -qc3 -i1 $IP_ADDRESS 2>/dev/null | grep transmitted`
|
||||
let RETURN=$4
|
||||
if [ $RETURN -gt 0 ]
|
||||
then
|
||||
echo "succeeded."
|
||||
else
|
||||
echo "failed!"
|
||||
fi
|
||||
else
|
||||
let RETURN=0
|
||||
echo "not established!"
|
||||
fi
|
||||
;;
|
||||
*) # test modem connection
|
||||
echo -e "Physical connection... \c"
|
||||
if [ "$INTERFACE" = "-----" ] # Modem connect failed
|
||||
then
|
||||
let RETURN=0
|
||||
echo "not established!"
|
||||
else
|
||||
echo -e "established; PPP negotiation... \c"
|
||||
set `ping -qc3 -i1 $IP_ADDRESS 2>/dev/null | grep transmitted`
|
||||
let RETURN=$4
|
||||
if [ $RETURN -gt 0 ]
|
||||
then
|
||||
echo "succeeded."
|
||||
else
|
||||
echo "failed!"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
Rd_Status()
|
||||
# Reads status file. Sets INTERFACE, DEVICE, IP_ADDRESS, TIMES_OPEN and ROUTE;
|
||||
# needs $REMOTE.
|
||||
# If you want to change the format, don't forget the init file (rc.connect)!
|
||||
{
|
||||
set `cat $STATUS | grep $REMOTE`
|
||||
if [ -z "$2" ]
|
||||
then
|
||||
echo -e "$PROV_DIR/$REMOTE does not exist! Check also $BASE!"
|
||||
Fatal_Error
|
||||
fi
|
||||
INTERFACE=$2
|
||||
ACT_DEVICE=$3
|
||||
IP_ADDRESS=$4
|
||||
TIMES_OPEN=$5
|
||||
ACT_ROUTE=$6
|
||||
}
|
||||
|
||||
Wr_Status()
|
||||
# Actualizes status file. Needs $REMOTE, $IP_ADDRESS and actualized
|
||||
# $TIMES_OPEN. Also needs actual $ACT_ROUTE.
|
||||
# If you want to change the format, don't forget the init file (rc.connect)!
|
||||
{
|
||||
# actualize $REMOTE line and save it as first line
|
||||
echo "$REMOTE $INTERFACE $DEVICE $IP_ADDRESS $TIMES_OPEN $ACT_ROUTE" \
|
||||
>$STATUS_BAK
|
||||
|
||||
# save all lines in status file but not the $REMOTE one.
|
||||
cat $STATUS | grep -v $REMOTE >>$STATUS_BAK
|
||||
|
||||
# restore status file.
|
||||
mv $STATUS_BAK $STATUS
|
||||
}
|
||||
|
||||
|
||||
# =============================================================================
|
||||
|
||||
|
||||
# Main script
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Did rc.connect run?
|
||||
if [ ! -e $STATUS ]
|
||||
then
|
||||
echo -e "$STATUS missing - did you run rc.connect? Exiting."
|
||||
rm /var/lock/LCK..connect
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Lock script (against errors in status file)
|
||||
let i=3
|
||||
while [ $i -gt 0 ]
|
||||
do
|
||||
let i-=1
|
||||
if [ -e /var/lock/LCK..connect ]
|
||||
then
|
||||
read LCK_PID </var/lock/LCK..connect
|
||||
set `ps -a | grep $LCK_PID`
|
||||
if [ $LCK_PID -eq $1 ]
|
||||
then
|
||||
echo "Script is locked - trying again in 30 seconds."
|
||||
sleep 30
|
||||
else
|
||||
echo "Unclean shutdown - removing lock file /var/lock/LCK..connect"
|
||||
rm /var/lock/LCK..connect
|
||||
break
|
||||
fi
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# also locked after three attempts?
|
||||
if [ -e /var/lock/LCK..connect ]
|
||||
then
|
||||
echo -e "\aSorry - could not unlock for three times. Try later!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# create lock file
|
||||
echo $PID >/var/lock/LCK..connect
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Main loop.
|
||||
|
||||
case $OP_MODE in
|
||||
on)
|
||||
|
||||
# check whether one of the remotes seem already open
|
||||
BUFFER=$REMOTE_LIST
|
||||
until [ -z "$BUFFER" ]
|
||||
do
|
||||
set `echo $BUFFER`
|
||||
REMOTE=$1
|
||||
shift
|
||||
BUFFER=$*
|
||||
Rd_Status
|
||||
if [ $TIMES_OPEN -gt 0 ]
|
||||
then
|
||||
ALREADY_OPEN=TRUE
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Now main loop: open channel, if necessary, and check it.
|
||||
until [ $MAX_TRIES -eq 0 ]
|
||||
do
|
||||
|
||||
if [ "$ALREADY_OPEN" = "TRUE" ]
|
||||
then
|
||||
ALREADY_OPEN=FALSE
|
||||
else
|
||||
# rotation of devices
|
||||
set `echo $REMOTE_LIST`
|
||||
REMOTE=$1
|
||||
shift
|
||||
REMOTE_LIST="$* $REMOTE"
|
||||
|
||||
# Pick REMOTE's data from status file.
|
||||
Rd_Status
|
||||
fi
|
||||
|
||||
# Found channel now. Already open?
|
||||
case $TIMES_OPEN in
|
||||
0)
|
||||
echo -e "\nCalling $REMOTE"
|
||||
Connect_Dial
|
||||
NEW_CONN=true # this is to detect whether line was closed by HUPTIMEOUT.
|
||||
;;
|
||||
1)
|
||||
echo "Line may be used already by an application - checking..."
|
||||
;;
|
||||
*)
|
||||
echo "Line may be used already by $TIMES_OPEN applications - checking..."
|
||||
;;
|
||||
esac
|
||||
|
||||
# check channel.
|
||||
echo "Line open - checking..."
|
||||
Line_OK
|
||||
if [ $RETURN -gt 0 ]
|
||||
then
|
||||
# channel is ok
|
||||
if [ $TIMES_OPEN -eq 0 ]
|
||||
then
|
||||
ACT_ROUTE=$ROUTE
|
||||
else
|
||||
echo "Parameters set in command line will be ignored"
|
||||
Rd_Status
|
||||
DEVICE=$ACT_DEVICE
|
||||
fi
|
||||
if [ -n "`echo $INTERFACE | grep "ippp"`" ]
|
||||
then
|
||||
DEVICE="-----"
|
||||
fi
|
||||
let TIMES_OPEN+=1
|
||||
Wr_Status
|
||||
echo -e "8-) Line is ok - have fun!\n"
|
||||
break
|
||||
else
|
||||
Connect_Hangup
|
||||
if [ "$NEW_CONN" = "false" ]
|
||||
then
|
||||
# channel is closed - try to reopen
|
||||
echo ":-| Hmm, no. Trying to rebuild..."
|
||||
Connect_Dial
|
||||
echo "Line open - checking..."
|
||||
Line_OK
|
||||
if [ $RETURN -gt 0 ]
|
||||
then
|
||||
#channel now open
|
||||
if [ $TIMES_OPEN -eq 0 ]
|
||||
then
|
||||
ACT_ROUTE=$ROUTE
|
||||
else
|
||||
echo "Parameters set in command line will be ignored"
|
||||
Rd_Status
|
||||
DEVICE=$ACT_DEVICE
|
||||
fi
|
||||
if [ `echo $INTERFACE | grep "ippp"` ]
|
||||
then
|
||||
DEVICE="-----"
|
||||
fi
|
||||
let TIMES_OPEN+=1
|
||||
Wr_Status
|
||||
echo -e "8-) Line is ok - have fun!\n"
|
||||
break
|
||||
fi
|
||||
fi
|
||||
|
||||
#channel could not be opened
|
||||
if [ $MAX_TRIES -eq 1 ]
|
||||
then
|
||||
let TIMES_OPEN=0
|
||||
ACT_ROUTE=""
|
||||
if ! [ `echo $INTERFACE | grep "ippp"` ]
|
||||
then
|
||||
INTERFACE="-----"
|
||||
fi
|
||||
DEVICE="-----"
|
||||
Wr_Status
|
||||
echo -e ":-[ Sorry, all lines are down. Bad luck... Try later!\n"
|
||||
rm /var/lock/LCK..connect
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ":-( This line is down. Trying next one."
|
||||
let MAX_TRIES-=1
|
||||
|
||||
done
|
||||
|
||||
;;
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
off)
|
||||
|
||||
# parse device string
|
||||
until [ -z "$REMOTE_LIST" ]
|
||||
do
|
||||
set `echo $REMOTE_LIST`
|
||||
REMOTE=$1
|
||||
shift
|
||||
REMOTE_LIST=$*
|
||||
|
||||
case $REMOTE in
|
||||
|
||||
all)
|
||||
# force closing of all channels and clear status file
|
||||
for FILE in $PROV_DIR/*
|
||||
do
|
||||
REMOTE=`basename $FILE`
|
||||
Rd_Status
|
||||
TIMES_OPEN=0
|
||||
ACT_ROUTE=""
|
||||
Connect_Hangup
|
||||
if ! [ `echo $INTERFACE | grep "ippp"` ]
|
||||
then
|
||||
INTERFACE="-----"
|
||||
fi
|
||||
DEVICE="-----"
|
||||
Wr_Status
|
||||
done
|
||||
;;
|
||||
|
||||
*)
|
||||
# Pick REMOTE's data from status file.
|
||||
Rd_Status
|
||||
if [ -z "$INTERFACE" ]
|
||||
then
|
||||
echo "$PROV_DIR/$REMOTE does not exist! Check also $BASE!"
|
||||
echo "To force closing all channels use \"connect off all\"."
|
||||
Fatal_Error
|
||||
fi
|
||||
|
||||
# close $INTERFACE, if no other application running
|
||||
case $TIMES_OPEN in
|
||||
0)
|
||||
echo "$REMOTE already closed! To force closing use \"connect off all\""
|
||||
;;
|
||||
1)
|
||||
echo "Last application - hanging up $REMOTE ($INTERFACE)."
|
||||
Connect_Hangup
|
||||
let TIMES_OPEN=0
|
||||
ACT_ROUTE=""
|
||||
if [ -z "`echo $INTERFACE | grep "ippp"`" ]
|
||||
then
|
||||
INTERFACE="-----"
|
||||
fi
|
||||
DEVICE="-----"
|
||||
Wr_Status
|
||||
;;
|
||||
2)
|
||||
echo "One more application running - $REMOTE ($INTERFACE) left open."
|
||||
let TIMES_OPEN-=1
|
||||
ACT_ROUTE=$ROUTE
|
||||
DEVICE=$ACT_DEVICE
|
||||
Wr_Status
|
||||
;;
|
||||
*)
|
||||
let TIMES_OPEN-=1
|
||||
echo "$TIMES_OPEN more applications running - $REMOTE ($INTERFACE) left open."
|
||||
ACT_ROUTE=$ROUTE
|
||||
DEVICE=$ACT_DEVICE
|
||||
Wr_Status
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
done
|
||||
;;
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
status)
|
||||
|
||||
for INTERFACE in $PROV_DIR/*
|
||||
do
|
||||
REMOTE=`basename $INTERFACE`
|
||||
Rd_Status
|
||||
echo -e "$REMOTE ($INTERFACE): \c"
|
||||
case $TIMES_OPEN in
|
||||
0)
|
||||
echo "closed";;
|
||||
1)
|
||||
echo "used by one application";;
|
||||
*)
|
||||
echo "used by $TIMES_OPEN applications";;
|
||||
esac
|
||||
done
|
||||
|
||||
;;
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
help)
|
||||
|
||||
Fatal_Error # I know this is dirty...
|
||||
|
||||
;;
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
*)
|
||||
|
||||
Fatal_Error
|
||||
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
# unlock script
|
||||
rm /var/lock/LCK..connect
|
||||
|
||||
|
||||
|
||||
# End of script.
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This script is called by (i)pppd while starting up.
|
||||
|
||||
# It is called this way:
|
||||
# ip-up interface device speed local_address remote_address.
|
||||
# So you can get the used interface by fetching $1
|
||||
|
||||
# If you want to change this, also change IF_FILE in /sbin/connect!
|
||||
echo $1 >/var/lib/connect/interface
|
|
@ -0,0 +1,14 @@
|
|||
# /etc/ppp/options
|
||||
|
||||
# comment out the following three lines if you don't need
|
||||
# dynamic IP negotiation.
|
||||
ipcp-accept-local
|
||||
ipcp-accept-remote
|
||||
noipdefault
|
||||
|
||||
# more pppd/ipppd options
|
||||
lock
|
||||
mru 1500
|
||||
mtu 1500
|
||||
debug
|
||||
-detach
|
|
@ -0,0 +1,10 @@
|
|||
# /etc/ppp/options for ipppd
|
||||
useifip
|
||||
-vjccomp
|
||||
-ac
|
||||
-pc
|
||||
-detach
|
||||
-bsdcomp
|
||||
-vj
|
||||
|
||||
user hailer
|
|
@ -0,0 +1,4 @@
|
|||
# /etc/ppp/options
|
||||
crtscts
|
||||
|
||||
user hailer
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/sh
|
||||
# Modem connection template.
|
||||
|
||||
# Provider: [Add here the name of your provider]
|
||||
|
||||
# modem or i4l?
|
||||
MODE=modem
|
||||
|
||||
# IP address of remote host
|
||||
IP_ADDRESS=
|
||||
|
||||
# modem device (i.e. serial port) (without leading "/dev/"!)
|
||||
DEVICE=
|
||||
|
||||
# pppd options file - edit!
|
||||
OPTIONS_FILE=/etc/ppp/options.pppd
|
||||
|
||||
# chat script - edit dial-in number!
|
||||
CHAT_SCRIPT="ABORT BUSY ABORT 'NO CARRIER' '' ATZ0 OK ATD******* CONNECT"
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
# isdn4linux connection template.
|
||||
|
||||
# modem or i4l?
|
||||
MODE=i4l
|
||||
|
||||
# phone number of provider
|
||||
PHONE=
|
||||
|
||||
# IP address of remote host
|
||||
IP_ADDRESS=
|
||||
|
||||
# (i)pppd options file
|
||||
OPTIONS_FILE=/etc/ppp/options.ipppd
|
|
@ -0,0 +1,73 @@
|
|||
### CUT HERE ### Bielefeld
|
||||
|
||||
# Provider: HRZ Uni Bielefeld
|
||||
# Hotline: A. Meyer, Tel: 0521/106-4945, Andreas.Meyer@hrz.uni-bielefeld.de
|
||||
# Data collected: Nils Jeisecke <njeiseck@techfak.uni-bielefeld.de>
|
||||
|
||||
Phone: 0911781
|
||||
Name: langate.hrz.uni-bielefeld.de
|
||||
IP: 129.70.37.254
|
||||
# remark: cannot ping this IP.
|
||||
# Use alias 129.70.4.29
|
||||
|
||||
# Name servers (add manually to /etc/resolv.conf):
|
||||
# search hrz.uni-bielefeld.de
|
||||
# nameserver 129.70.5.16 129.70.4.55
|
||||
|
||||
# Mail server (add manually to /etc/hosts):
|
||||
# 129.70.4.55 postfach.uni-bielefeld.de getmail
|
||||
|
||||
# News server (add manually to /etc/hosts):
|
||||
# 129.70.4.55 news.uni-bielefeld.de getnews
|
||||
|
||||
|
||||
### CUT HERE ### Essen
|
||||
|
||||
# Provider: Uni Essen
|
||||
# Hotline: 0201-183-3015 Benutzerbuero
|
||||
# 0201-183-2922 Stoerungsannahme
|
||||
# Data collected: Matthias Hessler <hessler@wi-inf.uni-essen.de>
|
||||
|
||||
Phone: 24010
|
||||
Name: ascend1.netz.uni-essen.de
|
||||
IP: 132.252.2.29
|
||||
|
||||
# Name servers (add manually to /etc/resolv.conf):
|
||||
# search uni-essen.de
|
||||
# nameserver 132.252.3.10
|
||||
|
||||
# Mail server (add manually to /etc/hosts):
|
||||
# 132.252.3.11 mail.hrz.uni-essen.de getmail
|
||||
|
||||
# News server (add manually to /etc/hosts):
|
||||
# 132.252.3.47 news.hrz.uni-essen.de getnews
|
||||
|
||||
|
||||
### CUT HERE ### Muenchen
|
||||
|
||||
# Provider: Leibniz-Rechenzentrum Muenchen
|
||||
# Hotline: (089) 289-28800
|
||||
# Data collected: Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>
|
||||
|
||||
# Telephone numbers for raw terminal programs: 08928057421, 0892805601
|
||||
# NOT VALID ANY LONGER!
|
||||
|
||||
# first dial-in line:
|
||||
Phone: 0892881010
|
||||
Name: ppp.lrz-muenchen.de
|
||||
IP: 129.187.24.253
|
||||
|
||||
# second line:
|
||||
Phone: 0892881190
|
||||
Name: ppp.lrz-muenchen.de
|
||||
IP: 129.187.24.126
|
||||
|
||||
# Name servers (add to /etc/resolv.conf):
|
||||
# search lrz-muenchen.de
|
||||
# nameserver 129.187.10.25, 129.187.16.1
|
||||
|
||||
# Mail server (add to /etc/hosts):
|
||||
# 129.187.13.48 sunmailhost.lrz-muenchen.de getmail
|
||||
|
||||
# News server (add to /etc/hosts):
|
||||
# 129.187.13.48 news.lrz-muenchen.de getnews
|
|
@ -0,0 +1,198 @@
|
|||
#!/bin/bash
|
||||
# rc.connect This shell script boots up the ISDN subsystem.
|
||||
# Version: @(#)/sbin/init.d/rc.connect 1.0 23-Feb-97
|
||||
# Author: Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>
|
||||
# License: GNU General Public License V2 ("GPL")
|
||||
|
||||
# This script is designed for usage within System V style Init. If you boot
|
||||
# up your system with Simple Init (e.g. Slackware, older SuSE distributions),
|
||||
# then cut this file at the marked lines and save the parts as
|
||||
# /etc/rc.d/rc.connect and /etc/rc.d/rc.6.
|
||||
|
||||
# Search paths
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
|
||||
# === The following is /etc/rc.d/rc.connect for "simpleinit"! =================
|
||||
|
||||
# Files used (do not change!):
|
||||
BASE=/usr/lib/connect/base # base config file
|
||||
PROV_DIR=/usr/lib/connect/providers # config files, once per provider
|
||||
STATUS=/var/lib/connect/status # status file: how many connects open?
|
||||
|
||||
# variables
|
||||
declare -i I4L
|
||||
let I4L=0
|
||||
|
||||
# load base file
|
||||
. $BASE || { echo -e "\a base file missing"; exit 1 }
|
||||
|
||||
# extra start commands (define in $BASE)
|
||||
Con_Start
|
||||
|
||||
# probe status file (how many connects are open?)
|
||||
if [ -e $STATUS ]
|
||||
then
|
||||
echo -e "\aUnclean shutdown! Removing $STATUS"
|
||||
rm $STATUS
|
||||
fi
|
||||
touch $STATUS
|
||||
|
||||
# load list of providers
|
||||
for FILE in $PROV_DIR/*; do
|
||||
|
||||
REMOTE=`basename $FILE`
|
||||
|
||||
echo -e "$REMOTE\c" >>$STATUS
|
||||
OPTIONS_FILE=""
|
||||
IP_ADDRESS=""
|
||||
MODE=""
|
||||
PHONE=""
|
||||
|
||||
. $PROV_DIR/$REMOTE
|
||||
|
||||
# i4l startup, if necessary
|
||||
case $MODE in
|
||||
i4l)
|
||||
if [ $I4L -eq 0 ]
|
||||
then
|
||||
# turn on isdn
|
||||
echo -e "\nStarting isdn4linux"
|
||||
# global
|
||||
isdnctrl verbose 0 # For debugging set to 2 (max. 4)
|
||||
fi
|
||||
|
||||
# does option file exist?
|
||||
if ! [ -e $OPTIONS_FILE ]
|
||||
then
|
||||
echo -e "\aOPTIONS_FILE misdefined in $PROV_DIR/$REMOTE! Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "\nConfiguring i4l device $REMOTE as ippp$I4L."
|
||||
|
||||
# ISDN device drivers ippp$I4L (PPP)
|
||||
isdnctrl addif ippp$I4L
|
||||
isdnctrl pppbind ippp$I4L $I4L
|
||||
isdnctrl addphone ippp$I4L out $PHONE # dial-out number
|
||||
isdnctrl addphone ippp$I4L in $MY_PHONE # my telephone no
|
||||
isdnctrl eaz ippp$I4L $MY_EAZ # my MSN / EAZ
|
||||
isdnctrl huptimeout ippp$I4L $HUPTIMEOUT # defined in $BASE
|
||||
isdnctrl secure ippp$I4L on # nobody may enter
|
||||
isdnctrl l2_prot ippp$I4L hdlc
|
||||
isdnctrl l3_prot ippp$I4L trans
|
||||
isdnctrl encap ippp$I4L syncppp
|
||||
|
||||
ifconfig ippp$I4L $MY_HOSTNAME pointopoint $IP_ADDRESS metric 1
|
||||
route add default ippp$I4L # interface definitions
|
||||
ipppd /dev/ippp$I4L file $OPTIONS_FILE &
|
||||
route del default
|
||||
ifconfig ippp$I4L down
|
||||
|
||||
# interf. dev. IP address TIMES_OPEN
|
||||
echo -e " ippp$I4L ----- $IP_ADDRESS 0" >>$STATUS
|
||||
|
||||
let I4L+=1
|
||||
|
||||
;;
|
||||
|
||||
|
||||
modem)
|
||||
|
||||
echo -e "\nModem device $REMOTE configured"
|
||||
# intf. dev. IP address TIMES_OPEN
|
||||
echo -e " ----- ----- $IP_ADDRESS 0" >>/var/lib/connect/status
|
||||
|
||||
;;
|
||||
|
||||
*)
|
||||
echo -e "\a$PROV_DIR/$REMOTE: \$MODE misdefined!"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
done
|
||||
|
||||
|
||||
# === Until here /etc/rc.d/rc.connect for "simpleinit"! =======================
|
||||
|
||||
;;
|
||||
|
||||
stop)
|
||||
|
||||
|
||||
# === Put this to the beginning of the "rc.6" file for "simpleinit": ==========
|
||||
|
||||
# Files used (do not change!):
|
||||
BASE=/usr/lib/connect/base # base config file
|
||||
PROV_DIR=/usr/lib/connect/providers # config files, once per provider
|
||||
STATUS=/var/lib/connect/status # status file: how many connects open?
|
||||
|
||||
# variables
|
||||
declare -i I4L
|
||||
let I4L=0
|
||||
|
||||
# load base file
|
||||
. $BASE || { echo -e "\a base file missing"; exit 1 }
|
||||
|
||||
for i in $PROV_DIR/*; do
|
||||
|
||||
REMOTE=`basename $i`
|
||||
|
||||
. $PROV_DIR/$REMOTE
|
||||
|
||||
case $MODE in
|
||||
i4l)
|
||||
if [ $I4L -eq 0 ]
|
||||
then
|
||||
# turn off isdn
|
||||
echo "Shutting down isdn4linux..."
|
||||
fi
|
||||
|
||||
echo "Shutting down ippp$I4L:"
|
||||
set `cat $STATUS | grep $REMOTE`
|
||||
isdnctrl pppunbind $2
|
||||
ifconfig $2 down
|
||||
sleep 1
|
||||
isdnctrl delif $2
|
||||
sleep 1
|
||||
|
||||
let I4L+=1
|
||||
;;
|
||||
|
||||
modem)
|
||||
echo "Deleting $REMOTE"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo -e "\aPROV_DIR/$REMOTE: \$MODE misdefined!"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
done
|
||||
|
||||
if [ $I4L -gt 0 ]
|
||||
then
|
||||
echo "Killing ipppd(s)..."
|
||||
killall -9 ipppd
|
||||
fi
|
||||
|
||||
# remove lock file
|
||||
rm $STATUS
|
||||
|
||||
# extra stop commands (define in $BASE)
|
||||
Con_Stop
|
||||
|
||||
# === Until here! =========================================================
|
||||
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,40 @@
|
|||
#!/bin/sh
|
||||
# transmail.sh: exchanges email with the provider.
|
||||
# Author: Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>
|
||||
# Version: 4.0 (29-Dec-96)
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
. /etc/connect.provider
|
||||
. /etc/connect.secrets
|
||||
|
||||
cd / # against PATH=. effect
|
||||
|
||||
echo -----------------------------------------------------------------------
|
||||
echo -e "Starting mail transfer: \c"; date
|
||||
|
||||
. /sbin/connect on
|
||||
|
||||
echo "Checking mail server..."
|
||||
set `ping -qc3 -i1 getmail | grep transmitted`
|
||||
if [ $4 -gt 0 ]
|
||||
then
|
||||
echo ":-) Mail server online - starting mail exchange"
|
||||
echo "Sending mail..."
|
||||
sendmail -q
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
echo "Fetching mail..."
|
||||
popclient -3 -u $MAIL_LOGIN -p $MAIL_PASSWD -o $MAIL_PATH getmail
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
else
|
||||
echo ":-[ Sorry - mail server is down. Try later..."
|
||||
fi
|
||||
|
||||
. /sbin/connect off
|
||||
|
||||
# allow dl4mhk access to mail:
|
||||
chown dl4mhk.users /var/spool/mail/dl4mhk
|
||||
|
||||
echo -e "Finished mail transfer: \c"; date
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh
|
||||
# transnews: connects to a free Ascend server of the LRZ.
|
||||
# Author: Bernhard Hailer <dl4mhk@lrz.uni-muenchen.de>
|
||||
# Version: 4.0 (29-Dec-96)
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
. /etc/connect.provider
|
||||
. /etc/connect.secrets
|
||||
|
||||
cd / # against PATH=. effect
|
||||
|
||||
echo -----------------------------------------------------------------------
|
||||
echo -e "Starting news transfer: \c"; date
|
||||
|
||||
. /sbin/connect on
|
||||
|
||||
echo "Checking news server..."
|
||||
set `ping -qc3 -i1 getnews | grep transmitted`
|
||||
if [ $4 -gt 0 ];
|
||||
then
|
||||
echo "8-) News server online - starting news poll"
|
||||
echo "Sending news..."
|
||||
su news -c "/usr/lib/news/bin/sendnews"
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
echo "Fetching news..."
|
||||
su news -c "/usr/lib/news/bin/newsflash -v"
|
||||
echo "Again sleeping 1 sec for PPP handshaking"
|
||||
sleep 1
|
||||
else
|
||||
echo ":-[ Sorry - news server is down. Try later..."
|
||||
fi
|
||||
|
||||
. /sbin/connect off
|
||||
|
||||
echo -e "Finished news transfer: \c"; date
|
|
@ -0,0 +1,14 @@
|
|||
--- vbox.c Sat Sep 28 11:57:58 1996
|
||||
+++ vbox.c.orig Sat Sep 28 11:57:46 1996
|
||||
@@ -1953,9 +1953,9 @@
|
||||
|
||||
static chtype Color(int Pair)
|
||||
{
|
||||
- if (!Mono) return(COLOR_PAIR(Pair) | A_ALTCHARSET);
|
||||
+ if (!Mono) return(COLOR_PAIR(Pair));
|
||||
|
||||
- return(COLOR_PAIR(0) | A_ALTCHARSET);
|
||||
+ return(COLOR_PAIR(0));
|
||||
}
|
||||
|
||||
/*************************************************************************
|
|
@ -0,0 +1,921 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Installation
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="setup.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Installation und Konfiguration
|
||||
</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
<H4>Der Kernel</H4>
|
||||
|
||||
<FONT SIZE=+3><B>E</B></FONT>s
|
||||
war einmal der Kernel 1.2.13, der den meisten Distributionen als
|
||||
Standardkernel begegeben war. Dieser lief in Zusammenhang mit i4l, als noch
|
||||
keine ISDN-Kerneltreiber existierten, bereits ganz gut, aber die Entwicklung
|
||||
blieb bei der Version 0.7.3beta stehen. I4l-Benutzer wichen daher
|
||||
in der Regel schnell auf die sogenannten "Hackerkernel" ab 1.3.69 aus, die den
|
||||
ISDN-Teil enthielten.
|
||||
<P>
|
||||
|
||||
Derzeit empfiehlt sich ein Kernel frühestens ab 1.3.97 (erst seit Kernel
|
||||
1.3.69 ist der Einsatz von Kernel-internen ISDN-Treibern überhaupt
|
||||
möglich, und erst ab 1.3.97 laufen die Treiber hinreichend stabil).
|
||||
Nachdem nun der Kernel 2.0 herausgekommen ist, werden wir ihn hier auch
|
||||
besprechen. Es empfiehlt sich derzeit die Kernelversion 2.0.27, die mit
|
||||
isdn4linux ziemlich problemlos zusammenarbeitet.
|
||||
Man besorgt sich den Kernel z.B. unter
|
||||
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.leo.org/pub/comp/os/linux/Linus/v2.0/">ftp.leo.org/pub/comp/os/linux/Linus/v2.0/</a>
|
||||
</PRE>
|
||||
|
||||
(zum Beispiel linux-2.0.27.tar.gz; dieser Kernel läuft seit Monaten ohne
|
||||
Probleme beim Autor)
|
||||
und sollte auch gleich das neue <TT>modules</TT>-Paket mit holen:
|
||||
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.leo.org/pub/comp/os/linux/Linus/v2.0/modules-2.0.0.tar.gz">ftp.leo.org/pub/comp/os/linux/Linus/v2.0/modules-2.0.0.tar.gz</a>
|
||||
</PRE>
|
||||
|
||||
Mit dem Kernel geht man wie gewohnt um - siehe dazu auch das Kernel-HOWTO, zu
|
||||
finden beim nächsten SunSite, beispielsweise unter
|
||||
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.leo.org/pub/comp/os/linux/sunsite/docs/HOWTO/Kernel-HOWTO.gz">ftp.leo.org/pub/comp/os/linux/sunsite/docs/HOWTO/Kernel-HOWTO.gz</A>
|
||||
</PRE>
|
||||
|
||||
Die Modules sollte man vorher noch entpacken und entsprechend der Anweisungen
|
||||
im Kernel-HOWTO einbauen.
|
||||
<P>
|
||||
|
||||
Wer isdn4linux einsetzen will, um eine ISDN-Karte zu bedienen,
|
||||
muß keinerlei Patches mehr einspielen (das war nur beim Kernel 2.0.0
|
||||
erforderlich - dort mußte man noch die zwei Patches
|
||||
isdn4kernel-2.0-patch1+2 einbauen). <B>Aber:</B> Die meisten passiven
|
||||
Karten mit Siemens-Chipsatz (Teles, Creatix, AVM, Elsa, ...) laufen nur mit
|
||||
einem Treiberpaket, das noch nicht im Kernel integriert ist: "HiSax". Wer so
|
||||
eine Karte einsetzt, muß sich den aktuellen Treiber in's Verzeichnis
|
||||
<TT>/usr/src</TT> holen:
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.franken.de/pub/isdn4linux/HiSax/">ftp.franken.de/pub/isdn4linux/HiSax/</A>
|
||||
</PRE>
|
||||
(z.B. Version 1.5; die unterstützten Karten finden sich im README!)
|
||||
und ihn in den Kernel patchen:
|
||||
<PRE>
|
||||
root:# cd /usr/src
|
||||
root:# tar zxfv HiSax_1.5.patch_for_2.0.tar.gz
|
||||
root:# patch -p <HiSax_1.5.patch_for_2.0
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
Beim Compilieren des Kernels muß man nun folgendes bei "make config"
|
||||
(bzw. seinen graphischen Verwandten "make menuconfig" oder "make xconfig")
|
||||
eingestellt werden:
|
||||
|
||||
<PRE>
|
||||
<B>Sektion "Code maturity level options":</B>
|
||||
Prompt for development and/or incomplete code/drivers: No
|
||||
<B>Sektion "General Setup":</B>
|
||||
Networking support: Yes
|
||||
<B>Sektion "Networking options":</B>
|
||||
TCP/IP networking: Yes
|
||||
<I>alle anderen je nach Bedarf.</I>
|
||||
<B>Sektion "Network device support":</B>
|
||||
Network device support: Yes
|
||||
PPP (point-to-point) support: Yes
|
||||
<I>alle anderen je nach Bedarf</I>
|
||||
<B>Sektion "ISDN subsystem":</B>
|
||||
<I>Nur wenn isdn4linux benötigt wird:</I>
|
||||
ISDN support: Yes
|
||||
Support synchronous PPP: Yes
|
||||
Use VJ compression with synchronous PPP: Yes
|
||||
Support audio via ISDN: Yes
|
||||
Support generic MP (RFC 1717): Yes
|
||||
<I>Verwendete Karte eintragen.</I>
|
||||
</PRE>
|
||||
|
||||
Wenn später der Kernel ohne Probleme läuft, kann man daran denken,
|
||||
einige dieser Bausteine auch als Module statt als feste Kernelbestandteile zu
|
||||
definieren.
|
||||
|
||||
|
||||
<H4>Die Treibersoftware für ISDN-Karten</H4>
|
||||
|
||||
Wer lediglich ein Modem benutzen will (egal, ob analog oder ISDN), kann diesen
|
||||
Abschnitt getrost überspringen.
|
||||
<P>
|
||||
|
||||
Wer eine ISDN-Karte einsetzt, muß aber zusätzlich Arbeit
|
||||
investieren und sich die <U>aktuelle</U> Version von Fritz Elferts
|
||||
"isdn4kernel-Utilities" holen. Wer eine ältere Version von isdnctrl
|
||||
besitzt, muß updaten: der Befehl "isdnctrl pppbind" muß laufen!
|
||||
Das bekommt man heraus, indem man <TT>isdnctrl</TT> eingibt und sich die
|
||||
möglichen Optionen ansieht.
|
||||
|
||||
Hier gibt es die neue Version:
|
||||
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.franken.de/pub/isdn4linux/v2.0/isdn4k-utils-2.0.tar.gz">ftp.franken.de/pub/isdn4linux/v2.0/isdn4k-utils-2.0.tar.gz</A>
|
||||
</PRE>
|
||||
|
||||
Man setzt sich diese ins Verzeichnis /usr/src und entpackt sie
|
||||
per "<TT>tar zxfv isdn4k-utils-2.0.tar.gz</TT>". Im Verzeichnis
|
||||
|
||||
<PRE>
|
||||
/usr/src/isdn4k-utils-2.0
|
||||
</PRE>
|
||||
|
||||
findet man jetzt alle zum Betrieb notwendigen Dateien.
|
||||
|
||||
Bei einigen Linux-Distributionen fehlen einige wichtige Links, weshalb man an
|
||||
einigen Makefiles drehen muß. Diese Makefiles befinden sich alle im
|
||||
Unterverzeichnis <TT>tools</TT>
|
||||
<PRE>
|
||||
<B>/usr/src/isdn4k-utils-2.0/tools/Makefile</B>
|
||||
<I>In der folgenden Zeile "isdnbutton-1.1" entfernen,
|
||||
falls Sie kein Motif besitzen - sonst Compilierfehler.</I>
|
||||
SUBDIRS=imon imontty-0.3 isdnlog-2.41 isdnbutton-1.1 tcltk
|
||||
[...]
|
||||
|
||||
<B>/usr/src/isdn4k-utils-2.0/tools/imontty-0.3/Makefile</B>
|
||||
[...]
|
||||
LDFLAGS=-lncurses -lm
|
||||
[...]
|
||||
|
||||
<B>/usr/src/isdn4k-utils-2.0/tools/isdnlog-2.41/Makefile</B>
|
||||
[...]
|
||||
LIB = -lgdbm
|
||||
[...]
|
||||
</PRE>
|
||||
|
||||
Zunächst müssen die Programme erzeugt werden. Dazu begibt man sich
|
||||
in's Verzeichnis <TT>/usr/src/isdn4k-utils-2.0</TT>, übersetzt alles mit
|
||||
"<TT>make</TT>", erzeugt anschließend die neuen
|
||||
ISDN-Gerätedateien mit "<TT>make devices</TT>" und installiert zum
|
||||
Schluß die ausführbaren Programme mit "<TT>make install</TT>" im
|
||||
Verzeichnis /sbin sowie die man-Seiten dort, wo sie hingehören.
|
||||
<P>
|
||||
|
||||
Die Kartenparameter müssen auch noch eingestellt werden - hierzu ist die
|
||||
ISDN4Linux-Anleitung
|
||||
|
||||
<PRE>
|
||||
/usr/src/linux/Documentation/isdn/README
|
||||
</PRE>
|
||||
|
||||
zu Rate zu ziehen. Die Parameter werden beim Booten als Kernelparameter
|
||||
oder beim Laden des entprechenden Modules übergeben.
|
||||
<P>
|
||||
|
||||
|
||||
<H2>Die Konfiguration</H2>
|
||||
|
||||
<I><B>Tip:</B><BR>
|
||||
Jetzt kommen etliche große Scriptdateien. Sie liegen diesem
|
||||
Anleitungspaket bei - am Script ist nur die Überschrift anzuklicken!</I>
|
||||
<BR>
|
||||
|
||||
<I><B>Hinweis für treue Leser:</B><BR>
|
||||
Die Scripten haben sich sehr stark verändert. Es gibt keinen Befehl
|
||||
<TT>isdn</TT> mehr, alles wird jetzt über ein neues Scriptpaket namens
|
||||
<TT>connect</TT> abgearbeitet. Dieses kann jetzt auch Modems ansteuern!</I>
|
||||
<BR>
|
||||
|
||||
|
||||
<H3>Konfigurationsdateien</H3>
|
||||
|
||||
Zwei zentrale Dateien steuern den Setup und den Verbindungsaufbau.
|
||||
Die eine nennt sich <TT>rc.connect</TT>, liegt im Bootverzeichnis und
|
||||
wird beim Rechnerstart abgearbeitet. Das andere heißt <TT>connect</TT>
|
||||
und regelt den Verbindungsauf- und -abbau sowie einiges mehr.
|
||||
<P>
|
||||
|
||||
Eine Reihe weiterer Dateien müssen angelegt werden. So ist für
|
||||
jeden Provider je eine Datei pro Einwahl-Telefonnummer herzustellen, in der
|
||||
alle wichtigen Daten enthalten sind. Die PPP-Dämonen benötigen
|
||||
überdies ein paar weitere Dateien. Das werden wir nun der Reihe nach
|
||||
besprechen.
|
||||
<P>
|
||||
|
||||
Leute, die sich diese WWW-Seiten als Paket "leafsite.tar.gz" geladen haben,
|
||||
finden die Scripte im Unterverzeichnis "scripts".
|
||||
|
||||
|
||||
<H3>Vorarbeiten</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<SMALL>
|
||||
Wenn Sie vorher bereits das alte "isdn"-Paket dieses Tutorials benutzt
|
||||
haben, so müssen sie zuallererst ein paar Sachen ändern:
|
||||
<PRE>
|
||||
root:# <startup_path>/i4l stop (oder "rc.isdn stop" oder wasimmer)
|
||||
root:# _
|
||||
</PRE>
|
||||
(<TT><startup_path></TT> ist das Verzeichnis, in dem alle
|
||||
System-Bootdateien enthalten sind).
|
||||
<P>
|
||||
|
||||
Dann löscht man (oder sichert sie woanders) einige alte Dateien:
|
||||
<PRE>
|
||||
root:# rm <startup_path>/i4l (falls eine neuere SuSE benutzt wird)
|
||||
root:# rm <startup_path>/rc.isdn
|
||||
root:# rm /sbin/isdn
|
||||
root:# rm /etc/i4l.provider (/etc/i4l.config bei alten "isdn"-Versionen)
|
||||
root:# rm /etc/i4l.secrets (/etc/i4l.param bei alten "isdn"-Versionen)
|
||||
root:# _
|
||||
</PRE>
|
||||
</SMALL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
Zu Beginn müssen einige Verzeichnisse eingerichtet werden:
|
||||
<PRE>
|
||||
root:# mkdir /usr/lib/connect
|
||||
root:# mkdir /usr/lib/connect/providers
|
||||
root:# mkdir /var/lib/connect
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>Die Daten des Providers</H3>
|
||||
|
||||
In <TT>/usr/lib/connect/providers</TT> ist für jeden Provider und
|
||||
jede Einwahlnummer jeweils eine Datei zu erstellen. Je nachdem, ob
|
||||
die Einwahlnummer per Modem oder über isdn4linux angewählt werden
|
||||
soll, sehen die Dateien leicht unterschiedlich aus. Hier gekürzte
|
||||
Beispiele, man kann sich aber entsprechende Vorlagen herunterladen, in denen
|
||||
auch weitere Erklärungen enthalten sind. Sie können diese Dateien
|
||||
benennen, wie Sie möchten - aber benutzen Sie keines der
|
||||
connect-Schlüsselwörter (on, off, status, help, maxtries, route,
|
||||
device, all).
|
||||
<P>
|
||||
|
||||
<A HREF="scripts/prov-d1">Beispiel für eine isdn4linux-Datei</A>
|
||||
<PRE>
|
||||
#!/bin/bash
|
||||
MODE=i4l
|
||||
PHONE=0891234567
|
||||
IP_ADDRESS=123.234.210.109
|
||||
OPTIONS_FILE=/etc/ppp/options.ipppd
|
||||
</PRE>
|
||||
|
||||
<A HREF="scripts/prov-a1">Beispiel für eine Modem-Datei</A>
|
||||
<PRE>
|
||||
#!/bin/bash
|
||||
MODE=modem
|
||||
IP_ADDRESS=234.123.134.56
|
||||
DEVICE=ttyS1
|
||||
OPTIONS_FILE=/etc/ppp/options.pppd
|
||||
CHAT_SCRIPT="ABORT BUSY ABORT 'NO CARRIER' '' ATZ0 OK ATD0,08912345 CONNECT"
|
||||
</PRE>
|
||||
|
||||
Diese Dateien definieren etliche Umgebungsvariable, die in den hier verwendeten
|
||||
Scripten teilweise eingebunden werden.
|
||||
<TT>MODE</TT> sagt connect, ob es isdn4linux aufrufen oder ein Modem ansteuern
|
||||
soll. <TT>IP_ADDRESS</TT> ist die IP-Adresse des Remotes, bei dem Sie sich
|
||||
einwählen möchten. <TT>OPTIONS_FILE</TT> ist die Optionendatei des
|
||||
(i)pppd für diesen Remote. isdn4linux benötigt die Telefonnummer
|
||||
des Remotes (<TT>PHONE</TT>), und der pppd braucht den Namen der seriellen
|
||||
Schnittstelle (<TT>DEVICE</TT>) sowie ein CHAT-Script (<TT>CHAT_SCRIPT</TT>),
|
||||
an welcher das Modem angeschlossen ist.
|
||||
<P>
|
||||
|
||||
Eine <A HREF="scripts/i4l.provider.db">Datenbank mit Daten
|
||||
einiger Unis und anderer Provider</A> kann man sich herunterladen.
|
||||
<P>
|
||||
|
||||
Ich wäre übrigens nicht undankbar, wenn man mir funktionierende
|
||||
Dateien
|
||||
<A HREF="mailto:hailer@ilo.baynet.de?subject=i4l-config">mailen</A>
|
||||
würde (eventuelle Privatdaten wie Paßwörter entfernen!).
|
||||
<P>
|
||||
|
||||
|
||||
<H3>Defaultwerte</H3>
|
||||
|
||||
Einige Daten werden beim Start des Systemes gesetzt. Dazu baut man sich
|
||||
eine eigene Datei. Hier die meine:
|
||||
|
||||
<PRE>
|
||||
<A HREF="scripts/base">/usr/lib/connect/base</A>
|
||||
#!/bin/bash
|
||||
# (c) 1997 Bernhard Hailer (GNU GPL V.2)
|
||||
|
||||
# Edit this file for your needs
|
||||
|
||||
# local settings
|
||||
# ==============
|
||||
|
||||
# Fully qualified host name
|
||||
read MY_HOSTNAME </etc/HOSTNAME # read host's name
|
||||
# MY_HOSTNAME=foo.bar.com
|
||||
|
||||
# Host phone number and MSN (EAZ) - replace by your numbers!
|
||||
MY_PHONE=817890032 # no leading zero!
|
||||
MY_EAZ=90032
|
||||
|
||||
# Email address for fetching mail - replace by your address!
|
||||
MY_EMAIL_ADDRESS=dl4mhk@lrz.uni-muenchen.de
|
||||
|
||||
|
||||
# extra start commands for rc.connect (e.g. module loading)
|
||||
# ---------------------------------------------------------
|
||||
function Con_Start()
|
||||
{
|
||||
insmod /lib/modules/`/bin/uname -r`/misc/isdn.o
|
||||
insmod /lib/modules/`/bin/uname -r`/misc/hisax.o io=3,2,12,0xd80 HiSax_id=Teles0
|
||||
#insmod /lib/modules/`/bin/uname -r`/misc/teles.o io=0,12,0xd80,2 teles_id=Teles0
|
||||
#rmmod teles.o
|
||||
#insmod /lib/modules/`/bin/uname -r`/misc/teles.o io=0,12,0xd80,2 teles_id=Teles0
|
||||
return
|
||||
}
|
||||
|
||||
# extra stop commands for rc.connect (e.g. module unloading)
|
||||
# ----------------------------------------------------------
|
||||
function Con_Stop()
|
||||
{
|
||||
rmmod hisax.o
|
||||
#rmmod teles.o
|
||||
sleep 1
|
||||
rmmod isdn.o
|
||||
return
|
||||
}
|
||||
|
||||
# Default remote providers for regular connects
|
||||
DEFAULT_REMOTES="lrz-d1 lrz-d2"
|
||||
|
||||
# default device where your modem is connected - no leading "/dev/"!
|
||||
DEFAULT_DEVICE="ttyS1"
|
||||
|
||||
# Maximum number of dialin attempts
|
||||
declare -i DEFAULT_MAX_TRIES
|
||||
DEFAULT_MAX_TRIES=4
|
||||
|
||||
# Maximum idle time before hangup (you should use a time of about 300 secs
|
||||
# here, because it is more expensive to dial often than to hold a line!)
|
||||
# This only works for isdn4linux connections.
|
||||
declare -i HUPTIMEOUT
|
||||
HUPTIMEOUT=300 # 5 min
|
||||
</PRE>
|
||||
|
||||
Die Shell-Funktionen <TT>Con_Start()</TT> und <TT>Con_Stop()</TT> werden
|
||||
vom Script <TT>rc.connect</TT> aufgerufen und verdienen besondere Beachtung:
|
||||
Wenn man das ISDN-Subsystem als Module laden und entladen will, so kann man
|
||||
die dazugehörigen Befehle hier eintragen. Beispiele für den
|
||||
Teles- und den HiSax-Treiber sind aufgeführt (ich benutze inzwischen
|
||||
HiSax 1.4 an meiner Teles 16.3).
|
||||
<P>
|
||||
|
||||
Desweiteren werden noch ein paar Defaultwerte vereinbart.
|
||||
<TT>DEFAULT_REMOTES</TT> enthält die Dateinamen der Remotes, die
|
||||
normalerweise angerufen werden sollen (wenn man mehrere angibt, dann
|
||||
wird einer nach dem anderen ausprobiert, bis eine Verbindung zustandekommt).
|
||||
<TT>DEFAULT_MAX_TRIES</TT> sagt aus, wie oft das passieren soll.
|
||||
<TT>HUPTIMEOUT</TT> wirkt nur bei der Benutzung von isdn4linux. Man trägt
|
||||
hier ein, nach wieviel Zeit ohne Datenübertragung aufgelegt werden soll
|
||||
(bei Modems das Handbuch zu Rate ziehen). Und <TT>DEFAULT_DEVICE</TT> ist
|
||||
der Name der normalerweise vom Modem benutzten seriellen Schnittstelle.
|
||||
<P>
|
||||
|
||||
Das Bootscript <TT>rc.connect</TT> wollen wir als nächstes behandeln.
|
||||
|
||||
|
||||
<H3>Vorgänge beim Booten</H3>
|
||||
|
||||
Linux kann nach zwei Möglichkeiten gestartet werden. Die eine ist
|
||||
<TT>simpleinit</TT> (z.B. Slackware), die andere, etwas kompliziertere, aber
|
||||
auch viel flexiblere ist <TT>sysvinit</TT> (S.u.S.E. ab 4.0, Debian, Caldera,
|
||||
Red Hat...). Diese beiden Varianten erfordern eine voneinander verschiedene
|
||||
Einbindung des ISDN-Startups.
|
||||
|
||||
|
||||
<H4>simpleinit</H4>
|
||||
|
||||
Bei <TT>simpleinit</TT> sind die Startdateien in <TT>/etc/rc.d/</TT>
|
||||
untergebracht; man findet etliche Einzelscripte, von denen die Dateien
|
||||
<TT>rc.M</TT> (Aufruf etlicher Startscripte) und <TT>rc.6</TT> (Reboot-Script)
|
||||
für uns von Bedeutung sind. In's selbe Verzeichnis setzen wir eine neue
|
||||
Datei <TT>rc.isdn</TT>, die das ISDN-System starten soll.
|
||||
<P>
|
||||
|
||||
Diese Datei muß neu angelegt werden. Damit sie beim Booten als
|
||||
Startdatei erkannt wird, muß man vorher folgenden Eintrag in die Datei
|
||||
<TT>/etc/rc.d/rc.M</TT> vornehmen:
|
||||
<PRE>
|
||||
<B>/etc/rc.d/rc.M; Sektion "# Initialize the NET subsystem."</B>
|
||||
. /etc/rc.d/rc.inet1
|
||||
. /etc/rc.d/rc.connect # <-- diese Zeile einfügen!
|
||||
. /etc/rc.d/rc.inet2
|
||||
</PRE>
|
||||
|
||||
|
||||
<H4>sysvinit</H4>
|
||||
|
||||
Bei <TT>sysvinit</TT> funktioniert der Start ganz anders. Hier werden die
|
||||
Initialisierungsscripten beispielsweise unter <TT>/sbin/init.d/,
|
||||
/etc/init.d</TT> oder <TT>/etc/rc.d/</TT> abgelegt. Hier haben die Scripten
|
||||
Doppelfunktion: werden sie mit dem Argument "<TT>start</TT>" aufgerufen,
|
||||
wird etwas gestartet, mit dem Argument "<TT>stop</TT>" wird das System auf
|
||||
den Shutdown vorbereitet. Das Ganze funktioniert mit sogenannten "run levels":
|
||||
Level 0 bedeutet "Systemhalt", Level 1 "single user mode", Level 2 in der
|
||||
Regel "multiuser mode mit Netzwerk" und Level 3 "mit xdm",
|
||||
und schließlich Level 6 "rebooting".
|
||||
Level 1-3 werden nacheinander beim Rechnerstart aufgerufen, und
|
||||
in deren Verlauf werden etliche der Scripten mit dem Argument "<TT>start</TT>"
|
||||
aufgerufen. Im Runlevel 6 werden diese Scripten in umgekehrter Reihenfolge mit
|
||||
dem Argument "<TT>stop</TT>" gerufen.
|
||||
<P>
|
||||
|
||||
Das mit der Reihenfolge ist "tricky": ein "Masterscript" sieht in den
|
||||
Runleveln zugeordneten Verzeichnissen (<TT>./rc0.d, ./rc1.d, ./rc2.d</TT>)
|
||||
nach, was zu tun ist. Darin befinden sich eine Reihe von Soft-Links auf die
|
||||
gerade beschriebenen Scripten. Alle Links heißen entweder
|
||||
<PRE>
|
||||
S<I>nnScriptname</I>
|
||||
</PRE>
|
||||
oder
|
||||
<PRE>
|
||||
K<I>nnScriptname</I>
|
||||
</PRE>
|
||||
mit einer Zahl <TT><I>nn</I></TT>, die bestimmt, wann diese Datei aufgerufen
|
||||
wird. Wenn also eine neue Datei - nennen wir sie auch hier wieder
|
||||
<TT>rc.connect</TT>, unterzubringen im Scriptenverzeichnis - eingebunden
|
||||
werden soll, die das ISDN-System integriert, dann ist das zugehörige
|
||||
Runlevelverzeichnis <TT>./rc2.d</TT>, und man muß dort zwei Softlinks
|
||||
unterbringen:
|
||||
<PRE>
|
||||
root:# cd /sbin/init.d/rc2.d # (Pfad anpassen!!)
|
||||
root:# ln -s ../rc.connect K20rc.connect
|
||||
root:# ln -s ../rc.connect S20rc.connect
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
<BLOCKQUOTE><SMALL>
|
||||
<B>Hinweis für Benutzer der S.u.S.E.-Distribution ab Version 4:</B>
|
||||
Hier heißt diese Datei <TT>i4l</TT>, ferner gibt es eventuell
|
||||
eine Datei <TT>i4l_hardware</TT>. Diese Dateien müssen beseitigt werden,
|
||||
entsprechend auch ihre Aufrufdateien in <TT>/sbin/init.d/rc2.d</TT>.
|
||||
Damit werden selbstverständlich auch die Einträge
|
||||
<TT>I4L_*</TT> in der
|
||||
S.u.S.E.-Konfigurationsdatei <TT>/etc/rc.config</TT> belanglos.
|
||||
<P>
|
||||
|
||||
Diese Änderungen sind leider notwendig, weil nur so ein
|
||||
distributionsunabhängiges Paket geschaffen werden kann.
|
||||
</SMALL></BLOCKQUOTE>
|
||||
|
||||
|
||||
<H4>System-Start und -Stop</H4>
|
||||
|
||||
Die Datei(en), die man sowohl bei <TT>simpleinit</TT> als auch bei
|
||||
<TT>sysvinit</TT> braucht, kann man sich wie gehabt laden. Hier
|
||||
beschränke ich mich darauf, die Startpassage für isdn4linux
|
||||
zu beschreiben - Modems benötigen praktisch keinerlei Startup.
|
||||
Man lade diese Datei und installiere sie wie beschrieben.
|
||||
<PRE>
|
||||
<B><A HREF="scripts/rc.connect">/sbin/init.d/rc.connect</A></B> (Ausschnitt)
|
||||
/sbin/isdnctrl verbose 0 # For debugging set to 2 (max. 4)
|
||||
# ISDN device drivers ippp0 (PPP)
|
||||
/sbin/isdnctrl addif ippp0
|
||||
/sbin/isdnctrl pppbind ippp0 0
|
||||
/sbin/isdnctrl addphone ippp0 out $PHONE # dial-out number
|
||||
/sbin/isdnctrl addphone ippp0 in $MY_PHONE # my telephone no
|
||||
/sbin/isdnctrl eaz ippp0 $MY_EAZ # my MSN / EAZ
|
||||
/sbin/isdnctrl huptimeout ippp0 $HUPTIMEOUT # defined in $BASE
|
||||
/sbin/isdnctrl secure ippp0 on # nobody may enter
|
||||
/sbin/isdnctrl l2_prot ippp0 hdlc
|
||||
/sbin/isdnctrl l3_prot ippp0 trans
|
||||
/sbin/isdnctrl encap ippp0 syncppp
|
||||
/sbin/ifconfig ippp0 $MY_HOSTNAME pointopoint $IP_ADDRESS metric 1
|
||||
/sbin/route add default ippp0 # interface definitions
|
||||
/sbin/ipppd /dev/ippp0 file $OPTIONS_FILE &
|
||||
/sbin/route del default
|
||||
ifconfig ippp0 down
|
||||
</PRE>
|
||||
|
||||
Unter Umständen muß der Pfad PATH in diesem Script angepaßt
|
||||
werden!
|
||||
<P>
|
||||
|
||||
Vor Aufruf muß rc.connect mit <TT>chmod 744 rc.connect</TT>
|
||||
ausführbar gemacht werden.
|
||||
<P>
|
||||
|
||||
Man sieht: hier werden etliche der oben definierten Umgebungsvariable benutzt!
|
||||
Einige der Kommandos sind bemerkenswert: das "pppbind"-Kommando wird gegen
|
||||
Seiteneffekte eingesetzt, die entstehen, wenn mehr als ein ipppd gestartet
|
||||
werden. Ohne dieses Kommando benutzen alle ipppd's beispielsweise die
|
||||
Paßwörter, die für den ersten definiert wurden. Auch die
|
||||
letzten beiden Kommandos sind essentiell: nur wenn kein ipppd "up" ist,
|
||||
kann man daneben problemlos einen herkömmlichen pppd für Modems
|
||||
starten.
|
||||
<P>
|
||||
|
||||
Hier wird übrigens nicht der Standard-PPP-Dämon pppd 2.2.0f
|
||||
aufgerufen,
|
||||
sondern eine speziell gepatchte Version namens "ipppd". Diese liegt dem
|
||||
ISDN4Linux-Paket bei und wurde beim Installieren nach <TT>/sbin</TT>
|
||||
befördert. Trotzdem gelten die man-Seite zum pppd sowie das "PPP-HOWTO".
|
||||
<P>
|
||||
|
||||
|
||||
<H3>Weitere wichtige Dateien</H3>
|
||||
|
||||
Damit PPP funktioniert, muß man als root noch etliche Dateien editieren.
|
||||
Sowohl der pppd als auch der ipppd benutzen die Datei
|
||||
<TT>/etc/ppp/options</TT>, um zentrale Konfigurationsparameter zu laden.
|
||||
Außerdem kann man beiden Dämonen noch mit dem Kommandozeilenargument
|
||||
<TT>file</TT> weitere zu ladende Dateien angeben - diese Dateien haben wir oben
|
||||
bei der Erstellung der Remote-Dateien bereits definiert
|
||||
(<TT>OPTIONS_FILE</TT>). Hier aber erst einmal <TT>/etc/ppp/options</TT>, die
|
||||
<I>immer</I> geladen wird:
|
||||
<PRE>
|
||||
<A HREF="scripts/options"><B>/etc/ppp/options</B></A>
|
||||
# comment out the following three lines if you don't need
|
||||
# dynamic IP negotiation.
|
||||
ipcp-accept-local
|
||||
ipcp-accept-remote
|
||||
noipdefault
|
||||
# more pppd/ipppd options
|
||||
lock
|
||||
mru 1500
|
||||
mtu 1500
|
||||
debug
|
||||
-detach
|
||||
</PRE>
|
||||
|
||||
Falls man nicht dynamisch von seinem Provider eine IP zugewiesen bekommt,
|
||||
muß man die ersten drei Befehle auskommentieren. Der Rest wird praktisch
|
||||
immer benötigt.
|
||||
<P>
|
||||
|
||||
Nun zu den Extra-Optionsdateien. Sie sind erforderlich, weil
|
||||
<UL>
|
||||
<LI>der ipppd andere Optionen benötigt als der pppd,
|
||||
<LI>die Optionen von Provider zu Provider variieren.
|
||||
</UL>
|
||||
<PRE>
|
||||
<A HREF="scripts/options.pppd.prov-1"><B>Beispieldatei für den pppd</B></A>
|
||||
# /etc/ppp/options
|
||||
crtscts
|
||||
user hailer
|
||||
</PRE>
|
||||
|
||||
<PRE>
|
||||
<A HREF="scripts/options.ipppd.prov-1"><B>Beispieldatei für den ipppd</B></A>
|
||||
# /etc/ppp/options for ipppd
|
||||
useifip
|
||||
-vjccomp
|
||||
-ac
|
||||
-pc
|
||||
-detach
|
||||
-bsdcomp
|
||||
-vj
|
||||
user hailer
|
||||
</PRE>
|
||||
|
||||
<B>Anmerkung zur Option "</B><TT>-vj</TT><B>":</B> Wird dieser Parameter
|
||||
nicht gesetzt, so kann das System sehr ungehalten reagieren. Während es
|
||||
bei einer laufenden X-Sitzung schlicht und einfach hängenbleiben kann,
|
||||
so kommt es bei einer einfachen Sitzung zur Anzeige von "Kernel-Oopses".
|
||||
Speziell die Zeile "<TT>Aiee, killing interrupt handler</TT>" deutet auf
|
||||
eine eingeschaltete VJ-Kompression hin. Die Option <TT>useifip</TT> verhindert
|
||||
Seiteneffekte bei mehreren gleichzeitig laufenden ipppd's.
|
||||
|
||||
<PRE>
|
||||
<B>/etc/resolv.conf:</B> (siehe /etc/i4l.provider-Datenbank!)
|
||||
search <I><what_you_need></I>
|
||||
nameserver <I><IP 1st nameserver></I>
|
||||
nameserver <I><IP 2nd nameserver></I>
|
||||
nameserver <I><IP 3rd nameserver></I>
|
||||
</PRE>
|
||||
|
||||
Es können maximal drei Nameserver angegeben werden. Bei "search"
|
||||
trägt man ein, wo verkuerzte Hostnamen gesucht werden sollen. Beispiel:
|
||||
bei einem Eintrag von <TT>search lrz-muenchen.de</TT> kann beim Befehl
|
||||
<TT>ping sun3</TT> der Rechner <TT>sun3.lrz-muenchen.de</TT> gefunden werden.
|
||||
|
||||
<PRE>
|
||||
<B>/etc/host.conf:</B>
|
||||
order hosts bind
|
||||
multi on
|
||||
|
||||
<B>/etc/hosts:</B> (ein Beispiel!)
|
||||
# For loopbacking.
|
||||
127.0.0.1 localhost
|
||||
# My own IP address
|
||||
192.168.1.1 maschinen.name alias # oder eigene IP-Adresse
|
||||
# (192.168.x.x ist frei verfügbar und kann immer verwendet werden.)
|
||||
# example entries
|
||||
129.187.10.22 sun3.lrz-muenchen.de sun3 # (Beispiel-Remote)
|
||||
129.187.13.48 sunmailhost.lrz-muenchen.de getmail # (Beispiel, für Mail)
|
||||
129.187.13.48 news.lrz-muenchen.de getnews # (Beispiel, für News)
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>Authentifizierung</H3>
|
||||
|
||||
Unter PPP muß man sich beim Provider ausweisen. Dazu gibt es zwei
|
||||
Methoden, die je nach Provider verwendet werden: PAP (Password
|
||||
Authentification Protocol) und CHAP (Challenge Authentification Protocol).
|
||||
PAP ist weit verbreitet, aber CHAP bietet dem Provider mehr Sicherheit.
|
||||
Je nachdem, welches Verfahren verwendet wird, ist die Datei
|
||||
<TT>/etc/ppp/pap-secrets</TT> oder <TT>/etc/ppp/chap-secrets</TT> zu editieren
|
||||
(nur eine der beiden sollte vorhanden sein). <B>Achtung!</B> Diese Dateien
|
||||
enthalten Paßwörter und müssen unter allen Umständen vor
|
||||
unbefugtem Zugriff geschützt werden!
|
||||
<PRE>
|
||||
root:# chmod 600 /etc/ppp/pap-secrets (bzw. /etc/ppp/chap-secrets)
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
|
||||
<H4>PAP</H4>
|
||||
|
||||
<PRE>
|
||||
<B>/etc/ppp/pap-secrets</B>
|
||||
# Secrets for authentification using PAP
|
||||
# client server secret IP addresses
|
||||
<I><provider_login></I> <I><1. Provider></I> '<I><password></I>' -
|
||||
<I><provider_login></I> <I><2. Provider></I> '<I><password></I>' -
|
||||
</PRE>
|
||||
|
||||
Anmerkungen:
|
||||
<UL>
|
||||
<LI>Es empfiehlt sich, das Paßwort in Hochkommas
|
||||
einschließen. Dann kommt es nicht zu Fehlern, wenn ein "#" darin
|
||||
vorkommt. (Vielen Dank an Michael Matschilles
|
||||
<TT><mat@pascal.bmw.de></TT> für den Tip!)
|
||||
<LI>In vielen Fällen ist es einfacher, in der "server"-Spalte statt
|
||||
dem Namen des Providers einfach ein Sternchen "*" anzugeben.
|
||||
</UL>
|
||||
<P>
|
||||
|
||||
Das Schützen mit <TT>chmod 600 /etc/ppp/pap-secrets</TT> nicht vergessen!
|
||||
|
||||
|
||||
<H4>CHAP</H4>
|
||||
|
||||
Die Provider kennen im allgemeinen nicht den "fully qualified hostname" des
|
||||
Kundenrechners - die IP im Zweifel auch nicht. Daher wird stattdessen
|
||||
als Kundenrechnername einfach dessen Login-Name benutzt. Das hat zur
|
||||
Folge, daß man seinen Rechner auf den Login-Namen (ohne Domain!)
|
||||
beim Provider umbenennen müßte - was man aber durch die
|
||||
Angabe von "<TT>name <I><provider_login></I></TT>" als Option beim Aufruf
|
||||
vom ipppd (bzw. in der Datei <TT>/etc/ppp/options</TT>) umgehen kann.
|
||||
Statt der Datei <TT>/etc/ppp/pap-secrets</TT> schreibt man nun eine Datei
|
||||
<TT>/etc/ppp/chap-secrets</TT>, die folgendermaßen aussehen muß
|
||||
(man beachte: es sind <I>zwei</I> Zeilen pro Eintrag erforderlich!):
|
||||
<PRE>
|
||||
<B>/etc/ppp/chap-secrets</B>
|
||||
# Secrets for authentification using CHAP
|
||||
# client server secret IP addresses
|
||||
<I><provider_login></I> <I><1. Provider></I> <I><password></I>
|
||||
<I><1. Provider></I> <I><provider_login></I> ""
|
||||
<I><provider_login></I> <I><2. Provider></I> <I><password></I>
|
||||
<I><2. Provider></I> <I><provider_login></I> ""
|
||||
</PRE>
|
||||
|
||||
Das Schützen mit <TT>chmod 600 /etc/ppp/chap-secrets</TT> nicht vergessen!
|
||||
|
||||
|
||||
<H3>Ein wenig Schliff</H3>
|
||||
|
||||
Nun sollte man noch das PPP-Log auf eine Extra-Datei umlenken, damit man
|
||||
leichter eventuelle Fehler suchen kann. Dazu editiert man die Datei
|
||||
<TT>/etc/syslog.conf</TT> und fügt folgende Zeile an (Anmerkung:
|
||||
KEINE Leerzeichen, nur Tabulatoren benutzen!):
|
||||
|
||||
<PRE>
|
||||
daemon.* /var/log/ppp-log
|
||||
</PRE>
|
||||
|
||||
Damit wird alles, was der PPP-Dämon an Informationen abgibt, in der
|
||||
Datei /var/log/ppp-log abgelegt.
|
||||
<P>
|
||||
|
||||
Damit hat man alle erforderlichen Dateien angepaßt, und das System
|
||||
sollte laufen.
|
||||
|
||||
|
||||
<H2>Der Betrieb</H2>
|
||||
|
||||
Leider neigt das Linux-System nun dazu, mehr oder weniger unmotiviert
|
||||
Verbindungen zum Provider aufzubauen. Dies liegt in der Natur des Systems:
|
||||
wann immer ein IP-Paket anliegt, will das System es auch loswerden (z.B.
|
||||
Zugriff auf Nameserver etc.). Da das Kosten verursacht, muß man es
|
||||
abstellen. Das macht man, indem man die Default-Route zum Interface ippp0
|
||||
löscht - das Linux-System kennt dann den Weg nach draußen
|
||||
nicht mehr.
|
||||
<P>
|
||||
|
||||
Die neuen Kernels ab 1.3.100 haben eine etwas unangenehme Eigenschaft: sie
|
||||
greifen intensiv in die Routenlegung ein. Damit es keine Kollisionen gibt,
|
||||
muß man erst wählen, dann warten, bis die Verbindung steht und
|
||||
darf <I>erst dann</I> die Defaultroute legen.
|
||||
Das folgende Script erledigt das "An-" und das "Abschalten" der Route.
|
||||
Es ist so abgefaßt, daß es auch mehrmal aufgerufen werden kann,
|
||||
so daß die erste Anwendung (beispielsweise Post holen) die Verbindung
|
||||
herstellt, und weitere Verbindungen nicht neue Leitungen aufmachen müssen.
|
||||
Die letzte Anwendung räumt auf: es wird aufgelegt und die Defaultroute
|
||||
wieder gelöscht. Aufruf: <TT>/sbin/connect on </TT> und <TT>/sbin/connect
|
||||
off</TT>. Eine ausgeklügelte Datei kann geladen werden (auf die
|
||||
Überschrift klicken!), hier nur eine ganz kurze Beispieldatei.
|
||||
<P>
|
||||
|
||||
Das Script setzt man in das Verzeichnis /sbin und macht es ausführbar
|
||||
(der route-Befehl ist nur für "root" ausführbar!):
|
||||
<PRE>
|
||||
root:# chmod 744 /sbin/connect
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
<PRE>
|
||||
<B><A HREF="scripts/connect">/sbin/connect</A></B>
|
||||
#! /bin/bash
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
# ISDN4Linux:
|
||||
|
||||
case $1 in
|
||||
on)
|
||||
isdnctrl dial ippp0 # Verbindung herstellen
|
||||
sleep 5 # warten, bis Leitung offen
|
||||
route add default ippp0 # Route setzen
|
||||
;;
|
||||
off)
|
||||
isdnctrl hangup ippp0 # Verbindung abbrechen
|
||||
route del default # und Route wieder löschen
|
||||
;;
|
||||
esac
|
||||
|
||||
# Modem:
|
||||
|
||||
IF_FILE=/var/lib/connect/interface
|
||||
case $1 in
|
||||
on)
|
||||
pppd connect "chat $CHAT_SCRIPT" file $OPTIONS_FILE /dev/$DEVICE &
|
||||
# the interface name was saved now by <TT>/etc/ppp/ip-up</TT> in IF_FILE.
|
||||
sleep 1
|
||||
echo "Sleeping 40 seconds for establishing connection..."
|
||||
sleep 40
|
||||
read INTERFACE <$IF_FILE
|
||||
route add default $INTERFACE
|
||||
;;
|
||||
off)
|
||||
kill -HUP `cat /var/lock/LCK..$DEVICE`
|
||||
route del default
|
||||
;;
|
||||
esac
|
||||
</PRE>
|
||||
|
||||
Unter Umständen muß der Pfad PATH in diesem Script angepaßt
|
||||
werden!
|
||||
<P>
|
||||
|
||||
Beim Modem wird das INTERFACE auf raffinierte Art und Weise bestimmt: beim
|
||||
Hochfahren des pppd wird das Script /etc/ppp/ip-up mit folgenden Argumenten
|
||||
aufgerufen:
|
||||
<PRE>
|
||||
ip-up interface device speed local_address remote_address
|
||||
</PRE>
|
||||
Und das macht man sich zunutze. Man schreibt eine Datei ip-up:
|
||||
<PRE>
|
||||
<A HREF="scripts/ip-up"><B>/etc/ppp/ip-up</B></A>
|
||||
#!/bin/bash
|
||||
# This script is called by (i)pppd while starting up.
|
||||
# It is called this way:
|
||||
# ip-up interface device speed local_address remote_address.
|
||||
# So you can get the used interface by fetching $1
|
||||
echo $1 >/tmp/connect_interface.tmp
|
||||
</PRE>
|
||||
und schon hat man den Namen des Interfaces gespeichert!
|
||||
<P>
|
||||
|
||||
<B>Hinweise für eigene Experimente:</B>
|
||||
<UL>
|
||||
<LI>Mit dem "isdnctrl dial ippp0" wird die Verbindung aufgebaut (von da ab
|
||||
kostet es Geld!). So werden Fehlverbindungseffekte vermieden, die entstehen,
|
||||
wenn man eine Verbindung per "telnet" zu einem anderen Rechner aufbauen will,
|
||||
<I>ohne</I> zu wählen. In diesem Falle gibt es nämlich
|
||||
"Hänger", weil es zu Timingproblemen nach dem Verbindungsaufbau kommt.
|
||||
<LI>Wichtig ist auch, daß die Defaultroute erst <I>nach</I> dem
|
||||
vollständigen Aufbau der Verbindung gesetzt wird. Sonst entfernt der
|
||||
Kernel die Route vorzeitig und meldet dann beim Zugriff auf andere Rechner
|
||||
"<TT>network not reachable</TT>".
|
||||
</UL>
|
||||
<P>
|
||||
|
||||
<B>Test:</B>
|
||||
<PRE>
|
||||
root:# connect
|
||||
Calling ippp0
|
||||
Dialing of ippp0 triggered
|
||||
Sleeping 8 sec for PPP handshaking...
|
||||
Line open - checking...
|
||||
:-) Line is ok - have fun!
|
||||
root:# telnet foo.bar.com
|
||||
[...]
|
||||
</PRE>
|
||||
(nun wie gewohnt einloggen; später zum Abschluß "exit" eingeben)
|
||||
<PRE>
|
||||
root:# connect off
|
||||
Last application stopped - closing line.
|
||||
prov0 hung up
|
||||
prov1 already closed! To force closing use "connect off all"
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
|
||||
<H2>Was kann "connect"?</H2>
|
||||
|
||||
Die ersten beiden Varianten haben Sie gerade kennengelernt:
|
||||
<PRE>
|
||||
"connect" (oder "connect on") Verbindung mit Defaultremote herstellen
|
||||
"connect off" Verbindung abbrechen
|
||||
</PRE>
|
||||
Wichtiger Befehl:
|
||||
<PRE>
|
||||
"connect off all" bricht <I>alle</I> Verbindungen ab
|
||||
</PRE>
|
||||
Weitere Remotes lassen sich ganz einfach anwählen:
|
||||
<PRE>
|
||||
"connect <I>remote1</I> (on)" Verbindung mit <I>remote1</I> herstellen
|
||||
"connect <I>remote1</I> off" und wieder abbrechen
|
||||
</PRE>
|
||||
Wenn man mehrere Remotes angibt, wird einer nach dem anderen probiert, bis
|
||||
eine Verbindung zustandekommt. Das "on" ist immer optional.
|
||||
<PRE>
|
||||
"connect <I>remote1</I> <I>remote2</I> <I>remote3</I> ..."
|
||||
</PRE>
|
||||
Man kann auch mehrere Verbindungen gleichzeitig aufbauen. Natürlich
|
||||
macht es dann keinen Sinn mehr, lauter Defaultroutes zu legen: sie darf nur
|
||||
einmal existieren. Bei mehreren offenen Leitungen muß man einzeln
|
||||
Routen legen:
|
||||
<PRE>
|
||||
"connect <I>remote1</I> route <I>Netz-IP</I>" Verbindung mit Route
|
||||
"connect <I>remote2</I> route default" Verbindung mit Default-Route
|
||||
</PRE>
|
||||
Die Route muß zum Remote passen! Das "route default" ist nicht wirklich
|
||||
nötig.
|
||||
<P>
|
||||
Wenn die Einwahlports des Providers stark belastet sind, kann man eine
|
||||
Maximalanzahl von Einwahlversuchen angeben:
|
||||
<PRE>
|
||||
"connect <I>remote1</I> maxtries <I>versuche</I>"
|
||||
</PRE>
|
||||
Wenn man kein "<TT>maxtries</TT>" angibt, wird der Defaultwert aus
|
||||
<TT>/usr/lib/connect/base</TT> verwendet.
|
||||
<P>
|
||||
Ähnlich ist das hiermit:
|
||||
<PRE>
|
||||
"connect <I>remote1</I> device ttyS<I>n</I>"
|
||||
</PRE>
|
||||
So gibt man bei Verwendung eines Modems die serielle Schnittstelle an, an der
|
||||
das Modem hängt. Ohne diese Angabe gilt das Defaultgerät, das in
|
||||
<TT>/usr/lib/connect/base</TT> definiert ist.
|
||||
|
||||
|
||||
<H2>Weitere Utilities</H2>
|
||||
|
||||
Dem ISDN4Linux-Paket liegen noch etliche sehr brauchbare Werkzeuge bei.
|
||||
Eines ist zum Beispiel der unter X laufende "isdnmon" von Andreas Kool,
|
||||
mit dem der momentane Zustand des S0-Busses angezeigt wird (frei oder
|
||||
bestehende Verbindung). Das gleiche in einem Terminal macht "imon" von
|
||||
Michael Knigge. Sehr interessant ist auch "isdnlog" von Andreas Kool.
|
||||
"isdnlog" kann den Verkehrsablauf auf dem S<SUB>0</SUB>-Bus mitprotokollieren.
|
||||
Mit "imontty" von Volker Goetz kann man auf die Schnelle feststellen, welche
|
||||
Kanäle der IDN-Karte gerade aktiv sind - dies ist beispielsweise in
|
||||
Scripten sehr brauchbar.
|
||||
<P>
|
||||
|
||||
Man sehe sich dazu das README von Fritz Elfert an.
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="gnulis.html" TARGET=Main>Copyright © (GPL V 2)</A> 1996
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Letzte Änderung: 24-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 8.0 KiB |
|
@ -0,0 +1,874 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>
|
||||
Setup
|
||||
</TITLE>
|
||||
<!-- Changed by: Bernhard Hailer, 24-Feb-1997 -->
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<H1>
|
||||
<P ALIGN=CENTER>
|
||||
<IMG SRC="setup.jpg" ALT="Linux">
|
||||
<!IMG SRC="linux.gif" ALT="Linux">
|
||||
<!IMG SRC="isdn.gif" ALT="ISDN">
|
||||
<BR>
|
||||
<FONT SIZE=+3>Installation and Configuration</FONT>
|
||||
</P>
|
||||
</H1>
|
||||
|
||||
<HR>
|
||||
<P>
|
||||
|
||||
|
||||
<H4>The Kernel</H4>
|
||||
|
||||
<FONT SIZE=+3><B>O</B></FONT>nce
|
||||
upon a time there was the 1.2.13 kernel, which was included in the most
|
||||
distributions. This kernel did a goodjob for i4l, when no ISDN drivers
|
||||
existed in the kernel code, but the development stopped at version 0.7.3beta.
|
||||
So i4l users mostly used kernels younger than 1.3.68, the so-called
|
||||
"hacker kernels".
|
||||
<P>
|
||||
|
||||
These days you should take a kernel version 1.3.97 or younger (there are
|
||||
kernel internal drivers available since kernel 1.3.69, but this thing only
|
||||
is stable enough since 1.3.97).
|
||||
<P>
|
||||
|
||||
Now, while kernel 2.0 is released, we will talk about this kernel. Nowadays
|
||||
it is recommended to use kernel version 2.0.27, which cooperates flawlessly
|
||||
with isdn4k-utils-2.0.
|
||||
You should look for the kernel at your SunSite, e.g. at
|
||||
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.leo.org/pub/comp/os/linux/Linus/v2.0/">ftp.leo.org/pub/comp/os/linux/Linus/v2.0/</a>
|
||||
</PRE>
|
||||
|
||||
(e.g. linux-2.0.27.tar.gz; this kernel runs at the author's machine since
|
||||
months without any problems). And you also should fetch the new
|
||||
<TT>modules</TT> package:
|
||||
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.leo.org/pub/comp/os/linux/Linus/v2.0/modules-2.0.0.tar.gz">ftp.leo.org/pub/comp/os/linux/Linus/v2.0/modules-2.0.0.tar.gz</a>
|
||||
</PRE>
|
||||
|
||||
Handle the kernel as you are used to - have a look at the kernel-HOWTO:
|
||||
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.leo.org/pub/comp/os/linux/sunsite/docs/HOWTO/Kernel-HOWTO.gz">ftp.leo.org/pub/comp/os/linux/sunsite/docs/HOWTO/Kernel-HOWTO.gz</A>
|
||||
</PRE>
|
||||
|
||||
You should decompree your modules and install them as described in the
|
||||
Kernel-HOWTO.
|
||||
<P>
|
||||
|
||||
If you want to use isdn4linux to drive an ISDN card you don't need to apply
|
||||
any more a patch to this kernel (only kernel 2.0.0 needed the
|
||||
two patches isdn4kernel-2.0-patch1+2). <B>But:</B> Most passive ISDN cards
|
||||
with Siemens chip set (Teles, Creatix, AVM, Elsa, ...) only work, if you use
|
||||
the driver package "HiSax". If you run such a card you must fetch this driver, too, and put it into<TT>/usr/src</TT>:
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.franken.de/pub/isdn4linux/HiSax/">ftp.franken.de/pub/isdn4linux/HiSax/</A>
|
||||
</PRE>
|
||||
(e.g. version 1.5; read the README to learn which cards are supported!)
|
||||
Now patch it into the kernel:
|
||||
<PRE>
|
||||
root:# cd /usr/src
|
||||
root:# tar zxfv HiSax_1.5.patch_for_2.0.tar.gz
|
||||
root:# patch -p <HiSax_1.5.patch_for_2.0
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
You must set now the following items while "make config" or its graphical
|
||||
relatives "make menuconfig" or "make xconfig" to compile the kernel:
|
||||
|
||||
<PRE>
|
||||
<B>Code maturity level options":</B>
|
||||
Prompt for development and/or incomplete code/drivers: No
|
||||
<B>Section "General Setup":</B>
|
||||
Networking support: Yes
|
||||
<B>Section "Networking options":</B>
|
||||
TCP/IP networking: Yes
|
||||
<I>all other items are up to you</I>
|
||||
<B>Section "Network device support":</B>
|
||||
Network device support: Yes
|
||||
PPP (point-to-point) support: Yes
|
||||
<I>all other items are up to you</I>
|
||||
<B>Section "ISDN subsystem":</B>
|
||||
<I>Only if you need isdn4linux:</I>
|
||||
ISDN support: Yes
|
||||
Support synchronous PPP: Yes (!)
|
||||
Use VJ compression with synchronous PPP: Yes
|
||||
Support audio via ISDN: Yes
|
||||
Support generic MP (RFC 1717): Yes
|
||||
<I>Mark your own PC card here, too.</I>
|
||||
</PRE>
|
||||
|
||||
If this kernel later works properly you could think about defining some of
|
||||
the parts of it to modules instead of using a monolithic kernel.
|
||||
|
||||
|
||||
<H4>ISDN Card Driver Software</H4>
|
||||
|
||||
If you only want to use a modem (analogous modem or ISDN modem) you may
|
||||
skip this section.
|
||||
<P>
|
||||
|
||||
If you want to drive an ISDN card you also need the <U>current</U> version of
|
||||
Fritz Elfert's "isdn4kernel utilities". If you have an older version of
|
||||
isdn4linux you must update: the command "<TT>isdnctrl pppbind</TT>" must
|
||||
exist! Find out - type in <TT>isdnctrl</TT> and have a look at the available
|
||||
options.
|
||||
|
||||
<PRE>
|
||||
<A HREF="ftp://ftp.franken.de/pub/isdn4linux/v2.0/isdn4k-utils-2.0.tar.gz">ftp.franken.de/pub/isdn4linux/isdn4k-utils-2.0.tar.gz</A>
|
||||
</PRE>
|
||||
|
||||
Put it into the /usr/src directory and unpack it by
|
||||
"<TT>tar zxfv isdn4k-utils-2.0.tar.gz</TT>". Now in the directory
|
||||
|
||||
<PRE>
|
||||
/usr/src/isdn4k-utils-2.0
|
||||
</PRE>
|
||||
|
||||
you find all the files you need to operate i4l.
|
||||
|
||||
Some Linux distributions lack of some important links, so you need to change
|
||||
some of the make files. These make files are all in the subdirectory
|
||||
<TT>tools</TT>.
|
||||
<B>/usr/src/isdn4k-utils-2.0/tools/Makefile</B>
|
||||
<I>remove "isdnbutton-1.1" in the following line,
|
||||
if you don't have Motif - or you will get compiler errors.</I>
|
||||
SUBDIRS=imon imontty-0.3 isdnlog-2.41 isdnbutton-1.1 tcltk
|
||||
[...]
|
||||
|
||||
<B>/usr/src/isdn4k-utils-2.0/tools/imontty-0.3/Makefile</B>
|
||||
[...]
|
||||
LDFLAGS=-lncurses -lm
|
||||
[...]
|
||||
|
||||
<B>/usr/src/isdn4k-utils-2.0/tools/isdnlog-2.41/Makefile</B>
|
||||
[...]
|
||||
LIB = -lgdbm
|
||||
[...]
|
||||
</PRE>
|
||||
|
||||
At first the programs need to be built. Therefore go into the
|
||||
<TT>/usr/src/isdn4k-utils-2.0</TT> directory, compile it by typing in
|
||||
"<TT>make</TT>", create the ISDN device files by "<TT>make devices</TT>" and
|
||||
finally install all executables by "<TT>make install</TT>" in the
|
||||
/sbin directory (also the man pages where they need to be).
|
||||
<P>
|
||||
|
||||
You also need to define the card parameters - please read the ISDN4Linux manual
|
||||
|
||||
<PRE>
|
||||
/usr/src/linux/Documentation/isdn/README
|
||||
</PRE>
|
||||
|
||||
These parameters will be set while booting or while loading the i4l modules.
|
||||
<P>
|
||||
|
||||
|
||||
<H2>Configuration</H2>
|
||||
|
||||
<I><B>Hint:</B><BR>
|
||||
There are some large script files following. They are downloadable within
|
||||
this tutorial package - just click onto the script headlines!
|
||||
</I>
|
||||
|
||||
<I><B>Remark for readers who are familiar with my tutorial:</B><BR>
|
||||
The scripts have changed heavily. There is no longer a command <TT>isdn</TT>,
|
||||
all things are now handled by a script package named <TT>connect</TT>.
|
||||
This package can handle now modems, too!</I>
|
||||
<BR>
|
||||
|
||||
<H3>Configuration files</H3>
|
||||
|
||||
Two central files are used for setup and maintaining connections: The first one
|
||||
is called while machine boot-up, it lays in the startup directory and is named
|
||||
<TT>rc.connect</TT>. The other one is <TT>connect</TT> and is responsible
|
||||
for establishing and deleting connections and more.
|
||||
<P>
|
||||
|
||||
Eine Reihe weiterer Dateien müssen angelegt werden. So ist für
|
||||
jeden Provider je eine Datei pro Einwahl-Telefonnummer herzustellen, in der
|
||||
alle wichtigen Daten enthalten sind. Die PPP-Dämonen benötigen
|
||||
überdies ein paar weitere Dateien. Das werden wir nun der Reihe nach
|
||||
besprechen.
|
||||
<P>
|
||||
|
||||
There are also some more files necessary. So you need one file per provider
|
||||
and per dial-in number. And the PPP daemons need some more files, too.
|
||||
We will discuss this now.
|
||||
<P>
|
||||
|
||||
If you did load down this WWW pages as package "leafsite.tar.gz", you
|
||||
find the scripts in the subdirectory "scripts".
|
||||
<P>
|
||||
|
||||
|
||||
<H3>Some Pre Work</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<SMALL>
|
||||
If you have used the old "isdn" package before, stop the isdn system
|
||||
using
|
||||
<PRE>
|
||||
root:# <startup_path>/i4l stop (or "rc.isdn stop" or whatever)
|
||||
root:# _
|
||||
</PRE>
|
||||
(<TT><startup_path></TT> is the path, where all the system bootup
|
||||
files are located).
|
||||
<P>
|
||||
|
||||
Then remove (or save, if you like) some old files:
|
||||
<PRE>
|
||||
root:# rm <startup_path>/i4l (if you use a newer SuSE distribution)
|
||||
root:# rm <startup_path>/rc.isdn
|
||||
root:# rm /sbin/isdn
|
||||
root:# rm /etc/i4l.provider (or /etc/i4l.config, if older "isdn" version)
|
||||
root:# rm /etc/i4l.secrets (or /etc/i4l.param, if older "isdn" version)
|
||||
root:# _
|
||||
</PRE>
|
||||
</SMALL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
You have to create some directories for the beginning:
|
||||
<PRE>
|
||||
root:# mkdir /usr/lib/connect
|
||||
root:# mkdir /usr/lib/connect/providers
|
||||
root:# mkdir /var/lib/connect
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>Provider Data</H3>
|
||||
|
||||
In <TT>/usr/lib/connect/providers</TT> for each provider and each dial-in
|
||||
number is needed. Files for isdn4linux and for modems look slightly
|
||||
different. Here some cutted examples - you can load down some examples,
|
||||
containing more explanations. Name these files as you like, but don't use
|
||||
a connect keyword (on, off, status, help, maxtries, route, device, all).
|
||||
<P>
|
||||
|
||||
<A HREF="scripts/prov-d1">Beispiel für eine isdn4linux-Datei</A>
|
||||
<PRE>
|
||||
#!/bin/bash
|
||||
MODE=i4l
|
||||
PHONE=0891234567
|
||||
IP_ADDRESS=123.234.210.109
|
||||
OPTIONS_FILE=/etc/ppp/options.ipppd
|
||||
</PRE>
|
||||
|
||||
<A HREF="scripts/prov-a1">Beispiel für eine Modem-Datei</A>
|
||||
<PRE>
|
||||
#!/bin/bash
|
||||
MODE=modem
|
||||
IP_ADDRESS=234.123.134.56
|
||||
DEVICE=ttyS1
|
||||
OPTIONS_FILE=/etc/ppp/options.pppd
|
||||
CHAT_SCRIPT="ABORT BUSY ABORT 'NO CARRIER' '' ATZ0 OK ATD0,08912345 CONNECT"
|
||||
</PRE>
|
||||
|
||||
This files define some environment variables, which are used in the scripts
|
||||
described here. <TT>MODE</TT> tells connect whether it shall call i4l or
|
||||
drive a modem, <TT>IP_ADDRESS</TT> is the IP address of the remote you want
|
||||
to dial in, <TT>OPTIONS_FILE</TT> is the (i)pppd options file for this
|
||||
remote. isdn4linux needs the telephone number of the remote (<TT>PHONE</TT>),
|
||||
and pppd needs a chat script (<TT>CHAT_SCRIPT</TT>) and the serial port name
|
||||
(<TT>DEVICE</TT>), where the modem is connected.
|
||||
<P>
|
||||
|
||||
You can load down a <A HREF="scripts/i4l.provider.db">database with
|
||||
date for several universities and other providers</A>.
|
||||
<P>
|
||||
|
||||
By the way: I would be pleased to get the configuration file for your
|
||||
provider - just
|
||||
<A HREF="mailto:hailer@ilo.baynet.de?subject=i4l-config">mail it</A>!
|
||||
<P>
|
||||
|
||||
<H3>Default Values</H3>
|
||||
|
||||
Some data are loaded while system startup. Therefore you must write a
|
||||
configuration file. Here is mine:
|
||||
|
||||
<PRE>
|
||||
<A HREF="scripts/base">/usr/lib/connect/base</A>
|
||||
#!/bin/bash
|
||||
# (c) 1997 Bernhard Hailer (GNU GPL V.2)
|
||||
|
||||
# Edit this file for your needs
|
||||
|
||||
# local settings
|
||||
# ==============
|
||||
|
||||
# Fully qualified host name
|
||||
read MY_HOSTNAME </etc/HOSTNAME # read host's name
|
||||
# MY_HOSTNAME=foo.bar.com
|
||||
|
||||
# Host phone number and MSN (EAZ) - replace by your numbers!
|
||||
MY_PHONE=817890032 # no leading zero!
|
||||
MY_EAZ=90032
|
||||
|
||||
# Email address for fetching mail - replace by your address!
|
||||
MY_EMAIL_ADDRESS=dl4mhk@lrz.uni-muenchen.de
|
||||
|
||||
|
||||
# extra start commands for rc.connect (e.g. module loading)
|
||||
# ---------------------------------------------------------
|
||||
function Con_Start()
|
||||
{
|
||||
insmod /lib/modules/`/bin/uname -r`/misc/isdn.o
|
||||
insmod /lib/modules/`/bin/uname -r`/misc/hisax.o io=3,2,12,0xd80 HiSax_id=Teles0
|
||||
#insmod /lib/modules/`/bin/uname -r`/misc/teles.o io=0,12,0xd80,2 teles_id=Teles0
|
||||
#rmmod teles.o
|
||||
#insmod /lib/modules/`/bin/uname -r`/misc/teles.o io=0,12,0xd80,2 teles_id=Teles0
|
||||
return
|
||||
}
|
||||
|
||||
# extra stop commands for rc.connect (e.g. module unloading)
|
||||
# ----------------------------------------------------------
|
||||
function Con_Stop()
|
||||
{
|
||||
rmmod hisax.o
|
||||
#rmmod teles.o
|
||||
sleep 1
|
||||
rmmod isdn.o
|
||||
return
|
||||
}
|
||||
|
||||
# Default remote providers for regular connects
|
||||
DEFAULT_REMOTES="lrz-d1 lrz-d2"
|
||||
|
||||
# default device where your modem is connected - no leading "/dev/"!
|
||||
DEFAULT_DEVICE="ttyS1"
|
||||
|
||||
# Maximum number of dialin attempts
|
||||
declare -i DEFAULT_MAX_TRIES
|
||||
DEFAULT_MAX_TRIES=4
|
||||
|
||||
# Maximum idle time before hangup (you should use a time of about 300 secs
|
||||
# here, because it is more expensive to dial often than to hold a line!)
|
||||
# This only works for isdn4linux connections.
|
||||
declare -i HUPTIMEOUT
|
||||
HUPTIMEOUT=300 # 5 min
|
||||
</PRE>
|
||||
|
||||
The shell functions <TT>Con_Start()</TT> and <TT>Con_Stop()</TT> are called
|
||||
from the script <TT>rc.connect</TT> - these functions are very interesting if
|
||||
you load your ISDN subsystem as modules: enter here the commands for loading
|
||||
and unloading the modules. Examples for the Teles and the HiSax driver are
|
||||
printed here (I'm using currently HiSax 1.4 to drive a Teles 16.3 card).
|
||||
<P>
|
||||
|
||||
Here also some default values are defined.
|
||||
<TT>DEFAULT_REMOTES</TT> contains the file names of the remotes which
|
||||
shall be called by default (if you define more than one, "connect" tries to
|
||||
call one after the other until the connection establishes).
|
||||
<TT>DEFAULT_MAX_TRIES</TT> says how often this should happen.
|
||||
<TT>HUPTIMEOUT</TT> is valid only for isdn4linux. Enter here after how many
|
||||
idle time isdn4linux shall hang up (modems: read the manual, please).
|
||||
And <TT>DEFAULT_DEVICE</TT> is the name of the serial interface the modem
|
||||
normally is connected.
|
||||
<P>
|
||||
|
||||
We will discuss now this script <TT>rc.connect</TT>.
|
||||
|
||||
|
||||
<H3>What Happens While Booting</H3>
|
||||
|
||||
There are two possibilities Linux may boot. One is <TT>simpleinit</TT>
|
||||
(e.g. Slackware), the other one (more complicated, but also more flexible)
|
||||
is <TT>sysvinit</TT> (S.u.S.E. since 4.0, Debian, Caldera,
|
||||
Red Hat...). These two need different linking of the ISDN startup scripts.
|
||||
|
||||
|
||||
<H4>simpleinit</H4>
|
||||
|
||||
<TT>simpleinit</TT> has its startup scripts in <TT>/etc/rc.d/</TT>. There are
|
||||
some single scripts. Important for us are the files <TT>rc.M</TT> (calls
|
||||
some startup scripts) and <TT>rc.6</TT> (reboot script). In this directory
|
||||
we set a new file named <TT>rc.isdn</TT>, which starts up the ISDN system.
|
||||
<P>
|
||||
|
||||
You must create this file. Before this you must add the following to
|
||||
<TT>/etc/rc.d/rc.M</TT>, because this new file must be known by the booting
|
||||
system:
|
||||
|
||||
<PRE>
|
||||
<B>/etc/rc.d/rc.M, section "# Initialize the NET subsystem."</B>
|
||||
. /etc/rc.d/rc.inet1
|
||||
. /etc/rc.d/rc.connect # <-- add this line!
|
||||
. /etc/rc.d/rc.inet2
|
||||
</PRE>
|
||||
|
||||
|
||||
<H4>sysvinit</H4>
|
||||
|
||||
Under <TT>sysvinit</TT> the start-up is completely different. Here the scripts
|
||||
are in the directory <TT>/sbin/init.d/, /etc/init.d</TT> or
|
||||
<TT>/etc/rc.d/</TT>. The scripts do have two functionalities: called with the
|
||||
argument "<TT>start</TT>" it starts up a part of the system, called with
|
||||
the argument "<TT>stop</TT>" it shuts down. This whole thing works with
|
||||
so-called "run levels"; level 0 is "system halt", level 1 is "single
|
||||
user mode", level 2 commonly is "multi user mode with network" and level 3 is
|
||||
"with xdm", and finally level 6 is running shutdown. The
|
||||
system calls the first three levels one after the other while startup (using
|
||||
"<TT>start</TT>"). In run level 6 they are called vice versa (using
|
||||
"<TT>stop</TT>").
|
||||
<P>
|
||||
|
||||
This sequence is a bit "tricky": a "master script" looks into the
|
||||
directory of the run level (<TT>./rc1.d, ./rc2.d, ./rc3.d</TT> and so on) what
|
||||
to do. Therein are a lot of soft links to the scripts I wrote above. All links
|
||||
are named
|
||||
<PRE>
|
||||
S<I>nnScriptName</I>
|
||||
</PRE>
|
||||
or
|
||||
<PRE>
|
||||
K<I>nnScriptName</I>
|
||||
</PRE>
|
||||
with a number <TT><I>nn</I></TT>, which tells the master script in which order
|
||||
it has to call these scripts. So if we create a script - let's call it
|
||||
<TT>rc.connect</TT> again -, we must also set two links in the runlevel 2
|
||||
directory <TT>./rc2.d</TT>:
|
||||
<PRE>
|
||||
root:# cd /sbin/init.d/rc2.d # (please verify path!!)
|
||||
root:# ln -s ../rc.connect K20rc.connect
|
||||
root:# ln -s ../rc.connect S20rc.connect
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
<BLOCKQUOTE><SMALL>
|
||||
<B>Remark for S.u.S.E. users (version 4 and newer):</B>
|
||||
A similar file exists here, named <TT>i4l</TT>, also there may exist a file
|
||||
<TT>i4l_hardware</TT>. These files must be removed, and also their calling
|
||||
scripts in <TT>/sbin/init.d/rc2.d</TT>. Of course so the <TT>I4L_*</TT>
|
||||
entries in the S.u.S.E. configuration file <TT>/etc/rc.config</TT> are
|
||||
obsolete now.
|
||||
<P>
|
||||
|
||||
Sorry for this inconvenience, but this is necessary to get a
|
||||
distribution independent package.
|
||||
</SMALL></BLOCKQUOTE>
|
||||
|
||||
|
||||
<H4>System Start and Stop</H4>
|
||||
|
||||
The file(s) you need for <TT>simpleinit</TT> or for <TT>sysvinit</TT> you
|
||||
can load down as usual in this tutorial. Because the script is awfully big
|
||||
I only descripe here how the ISDN subsystem is booted within this script
|
||||
(modems don't need startup sections). Just load and install this script as
|
||||
described above.
|
||||
<PRE>
|
||||
<B><A HREF="scripts/rc.connect">/sbin/init.d/rc.connect</A></B> (cutting)
|
||||
/sbin/isdnctrl verbose 0 # For debugging set to 2 (max. 4)
|
||||
# ISDN device drivers ippp0 (PPP)
|
||||
/sbin/isdnctrl addif ippp0
|
||||
/sbin/isdnctrl pppbind ippp0 0
|
||||
/sbin/isdnctrl addphone ippp0 out $PHONE # dial-out number
|
||||
/sbin/isdnctrl addphone ippp0 in $MY_PHONE # my telephone no
|
||||
/sbin/isdnctrl eaz ippp0 $MY_EAZ # my MSN / EAZ
|
||||
/sbin/isdnctrl huptimeout ippp0 $HUPTIMEOUT # defined in $BASE
|
||||
/sbin/isdnctrl secure ippp0 on # nobody may enter
|
||||
/sbin/isdnctrl l2_prot ippp0 hdlc
|
||||
/sbin/isdnctrl l3_prot ippp0 trans
|
||||
/sbin/isdnctrl encap ippp0 syncppp
|
||||
/sbin/ifconfig ippp0 $MY_HOSTNAME pointopoint $IP_ADDRESS metric 1
|
||||
/sbin/route add default ippp0 # interface definitions
|
||||
/sbin/ipppd /dev/ippp0 file $OPTIONS_FILE &
|
||||
/sbin/route del default
|
||||
ifconfig ippp0 down
|
||||
</PRE>
|
||||
|
||||
Some people must edit the PATH in this script!
|
||||
<P>
|
||||
|
||||
You must make this file executable by typing in <TT>chmod 744</TT> now.
|
||||
<P>
|
||||
|
||||
You see: some of the environment variables defined above are used here!
|
||||
Some commands are remarkable: the "pppbind" command is against side
|
||||
effects, if more than one ipppd is started. If you don't call this command,
|
||||
all ipppd's use the passwords defined for the first one! The last two
|
||||
commands are also essential: only if no ipppd is up you can start a
|
||||
regular pppd for modems without problems!
|
||||
<P>
|
||||
|
||||
By the way: We don't call the standard PPP daemon pppd 2.2.0[ef] here, but an
|
||||
especially patched version named "ipppd". This pppd is part of the ISDN4Linux
|
||||
package and is set while installation to /sbin. Anyway the PPP HOWTO and the
|
||||
pppd manpage is valid.
|
||||
<P>
|
||||
|
||||
|
||||
<H3>More Files</H3>
|
||||
|
||||
To get this stuff working you must edit some more files as root:
|
||||
Either pppd or ipppd use the file <TT>/etc/ppp/options</TT> to load central
|
||||
configuration parameters. You can tell the (i)pppd with the command line
|
||||
argument <TT>file</TT> to load more files - we already have defined these
|
||||
files while building our remote files (<TT>OPTIONS_FILE</TT>).
|
||||
Here now <TT>/etc/ppp/options</TT>, which <I>always is loaded</I>:
|
||||
<PRE>
|
||||
<A HREF="scripts/options"><B>/etc/ppp/options</B></A>
|
||||
# comment out the following three lines if you don't need
|
||||
# dynamic IP negotiation.
|
||||
ipcp-accept-local
|
||||
ipcp-accept-remote
|
||||
noipdefault
|
||||
# more pppd/ipppd options
|
||||
lock
|
||||
mru 1500
|
||||
mtu 1500
|
||||
debug
|
||||
-detach
|
||||
</PRE>
|
||||
|
||||
If you don't dynamically receive your IP from your provider you must comment
|
||||
out the first three options. The rest is needed always.
|
||||
|
||||
Now let's have a look at the extra option files. They are necessary, because
|
||||
<UL>
|
||||
<LI>the ipppd needs other options than the pppd,
|
||||
<LI>the options vary from provider to provider.
|
||||
</UL>
|
||||
|
||||
<PRE>
|
||||
<A HREF="scripts/options.pppd.prov-1"><B>sample file for the pppd</B></A>
|
||||
pppd</B></A>
|
||||
# /etc/ppp/options
|
||||
crtscts
|
||||
user hailer
|
||||
</PRE>
|
||||
|
||||
<PRE>
|
||||
<A HREF="scripts/options.ipppd.prov-1"><B>sample file for the ipppd</B></A>
|
||||
# /etc/ppp/options for ipppd
|
||||
useifip
|
||||
-vjccomp
|
||||
-ac
|
||||
-pc
|
||||
-detach
|
||||
-bsdcomp
|
||||
-vj
|
||||
user hailer
|
||||
</PRE>
|
||||
|
||||
<B>Remark to option "</B><TT>-vj</TT><B>":</B> If you don't define this option
|
||||
the system may get very angry. X Window sessions simply may hang, while
|
||||
common vt100 sessions may show some "kernel oopses". You may especially see
|
||||
the line "<TT>Aiee, killing interrupt handler</TT>". The option
|
||||
<TT>useifip</TT> is against side effects, if more than one ipppd is running.
|
||||
|
||||
<PRE>
|
||||
<B>/etc/resolv.conf:</B> (see provider database)
|
||||
search <I><what_you_need></I>
|
||||
nameserver <I><IP 1st nameserver></I>
|
||||
nameserver <I><IP 2nd nameserver></I>
|
||||
nameserver <I><IP 3rd nameserver></I>
|
||||
</PRE>
|
||||
|
||||
You may enter here max. three nameservers. At "search" you can enter where
|
||||
short hostnames shall be searched. Example: If you have a "search" entry
|
||||
like this: <TT>search lrz-muenchen.de</TT> the command <TT>ping sun3</TT>
|
||||
will find <TT>sun3.lrz-muenchen.de</TT>.
|
||||
|
||||
<PRE>
|
||||
<B>/etc/host.conf:</B>
|
||||
order hosts bind
|
||||
multi on
|
||||
|
||||
<B>/etc/hosts:</B>
|
||||
# For loopbacking.
|
||||
127.0.0.1 localhost
|
||||
# My own IP address
|
||||
192.168.1.1 machine.name alias # or your own IP address
|
||||
# (192.168.x.x is free, you always may use it!)
|
||||
# example entries
|
||||
129.187.10.22 sun3.lrz-muenchen.de sun3 # (example remote)
|
||||
129.187.13.48 sunmailhost.lrz-muenchen.de getmail # (example, for email)
|
||||
129.187.13.48 news.lrz-muenchen.de getnews # (example, for news)
|
||||
</PRE>
|
||||
|
||||
|
||||
<H3>Authentification</H3>
|
||||
|
||||
You must authentificate yourself at the provider if you use PPP. Therefore
|
||||
two methods exist: PAP (Password Authentification Protocol) and CHAP
|
||||
(Challenge Authentification Protocol). PAP is widely used, but CHAP offers
|
||||
the provider more security. The secrets are in the file
|
||||
<TT>/etc/ppp/pap-secrets</TT> or <TT>/etc/ppp/chap-secrets</TT>.
|
||||
<B>Attention!</B> The<TT>/etc/ppp/pap-secrets</TT> file contains passwords
|
||||
and must be secured in any cases against unauthorized access!
|
||||
<PRE>
|
||||
root:# chmod 600 /etc/ppp/pap-secrets (or /etc/ppp/chap-secrets)
|
||||
root:# _
|
||||
</PRE>
|
||||
<P>
|
||||
|
||||
|
||||
<H4>PAP</H4>
|
||||
|
||||
<PRE>
|
||||
<B>/etc/ppp/pap-secrets</B>
|
||||
# Secrets for authentification using PAP
|
||||
# client server secret IP addresses
|
||||
<I><provider_login></I> <I><1st provider></I> '<I><password></I>' -
|
||||
<I><provider_login></I> <I><2nd provider></I> '<I><password></I>' -
|
||||
</PRE>
|
||||
|
||||
Remarks:
|
||||
<UL>
|
||||
<LI>It is recommended to nest the password in apostrophes. So no error
|
||||
appears if a "#" is in the password. (Thanks to Michael Matschilles
|
||||
<TT><mat@pascal.bmw.de></TT> for the hint!)
|
||||
<LI>In many cases it is easier to enter an asterisk "*" instead of the
|
||||
provider's name in the server column.
|
||||
</UL>
|
||||
<P>
|
||||
|
||||
Don't forget to secure it with <TT>chmod 600 /etc/ppp/pap-secrets</TT>!
|
||||
|
||||
|
||||
<H4>CHAP</H4>
|
||||
|
||||
Providers don't know your fully qualified hostname in most cases. So you have
|
||||
to rename your machine to the same name as your login at your provider - don't
|
||||
use a domain. But you can do it a more elegant way: give
|
||||
"<TT>name <I><provider_login></I></TT>" as option while calling the
|
||||
ipppd (or make an entry in <TT>/etc/ppp/options</TT>). Instead of
|
||||
<TT>/etc/ppp/pap-secrets</TT> you must create a file
|
||||
<TT>/etc/ppp/chap-secrets</TT> like this (please note: there are <I>two</I>
|
||||
lines required per provider entry!):
|
||||
<PRE>
|
||||
<B>/etc/ppp/chap-secrets</B>
|
||||
# Secrets for authentification using CHAP
|
||||
# client server secret IP addresses
|
||||
<I><provider_login></I> <I><1st provider></I> <I><password></I>
|
||||
<I><1st provider></I> <I><provider_login></I> ""
|
||||
<I><provider_login></I> <I><2nd provider></I> <I><password></I>
|
||||
<I><2nd provider></I> <I><provider_login></I> ""
|
||||
</PRE>
|
||||
|
||||
Don't forget to secure it with <TT>chmod 600 /etc/ppp/chap-secrets</TT>!
|
||||
|
||||
|
||||
<H3>Some Polish</H3>
|
||||
|
||||
Now you should bend the PPP log to an extra file for debugging.
|
||||
Therefore you should edit <TT>/etc/syslog.conf</TT> and add the following line
|
||||
(remark: use only tabulator characters, <I>no spaces!</I>):
|
||||
|
||||
<PRE>
|
||||
daemon.* /var/log/ppp-log
|
||||
</PRE>
|
||||
|
||||
With this all the stuff the PPP daemon tells is saved to /var/log/ppp-log.
|
||||
<P>
|
||||
|
||||
<H2>Running</H2>
|
||||
|
||||
The system sometimes likes to connect more or less without any motivation
|
||||
to the provider. This is because of the nature of the system: If there is any
|
||||
IP packet (e.g. a name server request) Linux wants to get rid of it. Because
|
||||
this costs money we must switch it off. You could do it by deleting the
|
||||
default route, so that Linux now doesn't know any longer the way out.
|
||||
<P>
|
||||
|
||||
The newer kernels since 1.3.100 have a something painful behavior: they
|
||||
set the default route automatically when a interface is defined. To
|
||||
prevent collisions you need to wait until a connect is <I>completely</I>
|
||||
built up (dialing, PPP handshake) before setting the default route.
|
||||
The following script does this. It is written so that you may call it
|
||||
more than once, so the first application (e.g. exchanging email) makes
|
||||
the connect, and the next applications don't need to open more lines. The
|
||||
last application cleans up: it hangs up and deletes the default route.
|
||||
Call this script as <TT>/sbin/connect on</TT> und <TT>/sbin/connect off</TT>.
|
||||
Here's only a very short example; you can load down a very sophisticated
|
||||
script by clicking onto the headline.
|
||||
<P>
|
||||
|
||||
Put the script to /sbin and make it executable (route may be called only by
|
||||
"root"!):
|
||||
<PRE>
|
||||
root:# chmod 744 /sbin/connect
|
||||
root:# _
|
||||
</PRE>
|
||||
|
||||
<PRE>
|
||||
<B><A HREF="scripts/connect">/sbin/connect</A></B>
|
||||
#! /bin/bash
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
# ISDN4Linux:
|
||||
|
||||
case $1 in
|
||||
on)
|
||||
isdnctrl dial ippp0 # connect
|
||||
sleep 5 # wait until open
|
||||
route add default ippp0 # set route
|
||||
;;
|
||||
off)
|
||||
isdnctrl hangup ippp0 # disconnect
|
||||
route del default # and delete route
|
||||
;;
|
||||
*)
|
||||
echo -e "\a Usage: 'isdn on' or 'isdn off'"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Modem:
|
||||
|
||||
IF_FILE=/var/lib/connect/interface
|
||||
case $1 in
|
||||
on)
|
||||
pppd connect "chat $CHAT_SCRIPT" file $OPTIONS_FILE /dev/$DEVICE &
|
||||
# the interface name was saved now by /etc/ppp/ip-up in IF_FILE.
|
||||
sleep 1
|
||||
echo "Sleeping 40 seconds for establishing connection..."
|
||||
sleep 40
|
||||
read INTERFACE <$IF_FILE
|
||||
route add default $INTERFACE
|
||||
;;
|
||||
off)
|
||||
kill -HUP `cat /var/lock/LCK..$DEVICE`
|
||||
route del default
|
||||
;;
|
||||
esac
|
||||
</PRE>
|
||||
|
||||
Some people must edit the PATH in this script!
|
||||
<P>
|
||||
|
||||
For modem usage INTERFACE must be retrieved with a trick: while startup of
|
||||
pppd the script <TT>/etc/ppp/ip-up</TT> is called with these arguments:
|
||||
<PRE>
|
||||
ip-up interface device speed local_address remote_address
|
||||
</PRE>
|
||||
And we use that. We create a file ip-up:
|
||||
<PRE>
|
||||
<A HREF="scripts/ip-up"><B>/etc/ppp/ip-up</B></A>
|
||||
#!/bin/bash
|
||||
# This script is called by (i)pppd while starting up.
|
||||
# It is called this way:
|
||||
# ip-up interface device speed local_address remote_address.
|
||||
# So you can get the used interface by fetching $1
|
||||
echo $1 >/tmp/connect_interface.tmp
|
||||
</PRE>
|
||||
And so we have saved the interface name!
|
||||
<P>
|
||||
|
||||
<B>Hints for more experiments:</B>
|
||||
<UL>
|
||||
<LI>The "isdnctrl dial ippp0" makes the connection - from there on it costs
|
||||
your money. We prevent connection failures this way because the system can
|
||||
hang after the connect took place (may be an error in ipppd). These hangs may
|
||||
appear if the system must dial <I>after</I> the connect command (telnet etc.).
|
||||
<LI>It is also important that you set the default route <I>after</I>
|
||||
completion of the connect. Otherways the kernel kills the route too early
|
||||
and sends messages like "<TT>network not reachable</TT>", if you want to
|
||||
connect to another computer.
|
||||
</UL>
|
||||
<P>
|
||||
|
||||
<B>Test:</B>
|
||||
<PRE>
|
||||
root:# connect
|
||||
Calling ippp0
|
||||
Dialing of ippp0 triggered
|
||||
Sleeping 8 sec for PPP handshaking...
|
||||
Line open - checking...
|
||||
:-) Line is ok - have fun!
|
||||
root:# telnet sun3
|
||||
[...]
|
||||
</PRE>
|
||||
(now log in as usual; later type in "exit" to finish)
|
||||
<PRE>
|
||||
root:# connect off
|
||||
Last application stopped - closing line.
|
||||
prov0 hung up
|
||||
prov1 already closed! To force closing use "connect off all"
|
||||
root:# _
|
||||
</PRE>
|
||||
</PRE>
|
||||
|
||||
|
||||
<H2>What can "connect" do?</H2>
|
||||
|
||||
You just learned about the first two possibilities:
|
||||
<PRE>
|
||||
"connect" (or "connect on") connect default remote
|
||||
"connect off" disconnect
|
||||
</PRE>
|
||||
Important command:
|
||||
<PRE>
|
||||
"connect off all" disconnects <I>all</I> channels
|
||||
</PRE>
|
||||
It is easy to connect to other remotes:
|
||||
<PRE>
|
||||
"connect <I>remote1</I> (on)" connect to <I>remote1</I>
|
||||
"connect <I>remote1</I> off" and disconnect from it
|
||||
</PRE>
|
||||
If you enter more than one remotes in the command line, one after another
|
||||
will be tried, until a connection establishes.
|
||||
<PRE>
|
||||
"connect <I>remote1</I> <I>remote2</I> <I>remote3</I> ..."
|
||||
</PRE>
|
||||
You also may build more than one connection at the same time. Of course
|
||||
it is nonsense to set the defaultroute more than one time; you need to
|
||||
set special routes for each remote:
|
||||
<PRE>
|
||||
"connect <I>remote1</I> route <I>Netz-IP</I>" connect via route
|
||||
"connect <I>remote2</I> route default" connect via defaultroute
|
||||
</PRE>
|
||||
The route must match the remote! You don't really need "route default.
|
||||
<P>
|
||||
If the dial-in ports of your provider are heavily loaded, you may want to
|
||||
have a maximum number of dial attempts:
|
||||
<PRE>
|
||||
"connect <I>remote1</I> maxtries <I>number</I>"
|
||||
</PRE>
|
||||
If you don't enter a "<TT>maxtries</TT>" the default value is taken from
|
||||
<TT>/usr/lib/connect/base</TT>.
|
||||
<P>
|
||||
And this is similar:
|
||||
<PRE>
|
||||
"connect <I>remote1</I> device ttyS<I>n</I>"
|
||||
</PRE>
|
||||
So you tell "connect" where your modem is connected, if you want to use a
|
||||
modem. If you don't enter a "<TT>device</TT>" the default device is taken from
|
||||
<TT>/usr/lib/connect/base</TT>.
|
||||
|
||||
|
||||
<H2>More Utilities</H2>
|
||||
|
||||
There are some more very useful tools within the ISDN4Linux package.
|
||||
One is the X program "isdnmon" by Andreas Kool, wich shows the actual state
|
||||
of the S<SUB>0</SUB> bus (free or connected). Michael Knigge's "imon" does the
|
||||
same in terminals. Also very useful is "isdnlog" by Andreas Kool, which gives
|
||||
information about the S0 bus activity. With "imontty" by Volker Goetz you can
|
||||
get a print-out of the ISDN card activity - very useful for scripts!
|
||||
<P>
|
||||
|
||||
Have a look at the README by Fritz Elfert.
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<ADDRESS>
|
||||
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
|
||||
Last modification: 24-Feb-97 BeH
|
||||
</ADDRESS>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 5.3 KiB |