- Re-added leafsite subdir (old FAQ)

This commit is contained in:
Fritz Elfert 2002-10-02 12:44:41 +00:00
parent ac9376e9b4
commit b97b7e70c7
72 changed files with 9658 additions and 0 deletions

34
leafsite/README Normal file
View File

@ -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/)

440
leafsite/audio.html Normal file
View File

@ -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&auml;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&szlig;ler</A> geschickt hat - vielen Dank f&uuml;r die Erlaubnis, das
&uuml;bernehmen zu d&uuml;rfen!
<P>
Ein paar Voraussetzungen gibt es allerdings:
<UL>
<LI> Eine Soundkarte mu&szlig; installiert sein und unter Linux laufen.
Bei Eingabe von <TT>ls &gt; /dev/audio</TT> sollte ein kurzes Rauschen
zu h&ouml;ren sein - falls nicht, muß wohl der Kernel neu kompiliert
werden unter Einbeziehung der Soundoptionen (siehe auch Sound-HOWTO!).
<LI> Der Kernel mu&szlig; im Abschnitt ISDN mit Audiosupport compiliert
worden sein.
<LI> Das mgetty-Paket mu&szlig; installiert sein, wenn man auf andere
Aufzeichnungsformate als uLAW zur&uuml;ckgreifen will (im Paket ist eine
Tools-Sammlung enthalten, die in diesem Falle ben&ouml;tigt wird). Das
Paket wird im Kapitel Fax genau erkl&auml;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&szlig; 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&ouml;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 &Uuml;bersetzung von vbox mu&szlig; man sich das Makefile vornehmen
und die Installationspfade anpassen (in der Regel sind keine &Auml;nderungen
notwendig).
<P>
Ebenfalls angepa&szlig;t werden mu&szlig; 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 /* &lt;--- 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&ouml;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 &uuml;ber einen
kleinen Trick die Nachrichten trotzdem abspielen: vboxgetty kennt n&auml;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&szlig;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&uuml;r den Hinweis, wo der Patch
zu setzen ist, danke ich Roland Rosenfeld
&lt;<A HREF="mailto:roland@spinnaker.rhein.de?subject=vbox-patch">roland@spinnaker.rhein.de</A>&gt;.
<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&uuml;gt man ein mit
<PRE>
root:# patch -p0 src/vbox.c &lt;vbox.c.patch
root:# _
</PRE>
Nun kann es ans Compilieren gehen. Man lasse sich zeigen, was getan werden
mu&szlig;:
<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&uuml;r jeden User, der
sp&auml;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&szlig; man
<TT>/etc/profile</TT> editieren und diese Pfade in die PATH-Variable
nachtragen.
<P>
Schlie&szlig;lich mu&szlig; 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>&lt;user&gt;</I>/.vboxrc
root:# chown <I>&lt;user&gt;</I>.users /home/<I>&lt;user&gt;</I>/.vboxrc
root:# _
</PRE>
Diese Datei mu&szlig; man noch editieren und den Inhalt an seine
Bed&uuml;rfnisse anpassen. Rufnummern mit Vorwahl ohne f&uuml;hrende Null.
Beispiel:
<PRE>
<B>/home/<I>&lt;user&gt;</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&uuml;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&ouml;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&uuml;&szlig;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> &gt; /dev/audio
root:# _
</PRE>
sollte man die sich dann schon relativ gut anh&ouml;ren k&ouml;nnen (falls
VOICE_COMPRESSION_MODE nicht auf 6 gestellt wurde, ist nat&uuml;rlich
nichts zu verstehen, zum Abspielen werden dann die pvftools im
mgetty-0.99-Paket vom Juni ben&ouml;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&auml;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&ouml;tig/m&ouml;glich - User
<I>user</I> kann direkt
<PRE>
<I>user</I>:# vbox
[Der vbox-Screen erscheint]
</PRE>
eingeben. Dann m&uuml;&szlig;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&uuml;ssen (auplay wird von vboxplay
aufgerufen).
<PRE>
<B>/usr/local/bin/auplay</B>
#!/bin/sh
cat $1 &gt; /dev/audio
</PRE>
Nachdem man mit <TT>chmod 755 /usr/local/bin/auplay</TT> das Script
ausf&uuml;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&uuml;cken - und schon sollte die
Nachricht zu h&ouml;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&uuml;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
&Auml;nderungen sind aber n&ouml;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&uuml;ssen (in der Regel "23").
Nach einem Systemrestart l&auml;uft unsere Voicebox!
<H3>Achtung - Aufnahme!</H3>
Nun kosten Ansagen, wenn man sie &uuml;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&szlig;lich auch was aufnehmen, oder?
<P>
Ein paar Zeichen am Beginn einer Sounddatei sagen etwas &uuml;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 &gt;/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 &gt; $1.msg
</PRE>
Damit ist das Aufnehmen des Ansagetextes ganz einfach:
<PRE>
root:# cd /var/spool/vbox/<I>user</I>/messages
root:# cat &lt;/dev/audio &gt;standard.au
<I>(Nun Ansagetext aufnehmen, danach Strg-C dr&uuml;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&uuml;ndet wird, und die Datei <TT>panic.msg"</TT>,
in der bekanntgegeben wird, da&szlig; 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&ouml;tigt zum &Uuml;bersetzen allerdings Motif, so da&szlig;
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&uuml;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&uuml;r die
Anleitung etwas ver&auml;ndert, um die logische Linux-Verzeichnisstruktur
besser zu unterst&uuml;tzen. Eventuell sind ein paar Softlinks von den
erwarteten in die tats&auml;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 &auml;hnlich wie xbiff die Ankunft neuer Anrufe
anzeigt und vbox starten kann, mu&szlig; man sich erst noch &uuml;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&auml;ndern). Das Programm wird nun
&uuml;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&ouml;n!
<P>
<HR>
<ADDRESS>
<A HREF="gnulis.html" TARGET=Main>Copyright &#169; (GPL V 2)</A> 1996
<A HREF="mailto:hessler@wi-inf.uni-essen.de?subject=vbox-Anleitung">Matthias
He&szlig;ler</A>,
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 21-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

BIN
leafsite/audio.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

39
leafsite/audio_e.html Normal file
View File

@ -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&szlig;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 &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 21-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

BIN
leafsite/british.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

BIN
leafsite/c64.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
leafsite/cocktail.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
leafsite/constr.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

50
leafsite/cont_e.html Normal file
View File

@ -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 &#169; (GPL V 2) 1996<BR>
Bernhard Hailer</A><BR>
Last modification:<BR> 26-Aug-96 BeH
</FONT>
</ADDRESS>
<HR>
</BODY>
</HTML>

49
leafsite/contents.html Normal file
View File

@ -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&uuml;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 &#169; (GPL V 2) 1996<BR>
Bernhard Hailer</A><BR>
Letzte &Auml;nderung:<BR> 12-Nov-96 BeH
</FONT>
</ADDRESS>
</BODY>
</HTML>

332
leafsite/email.html Normal file
View File

@ -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&uuml;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&szlig; eingeben:
<PRE>
<B>/etc/hosts</B> (Ausschnitt)
<I>&lt;IP-Adresse&gt;</I> <I>&lt;Name_des_Mailservers&gt;</I> getmail
</PRE>
<P>
<H2>sendmail</H2>
Auf die Low-Level-Konfiguration von sendmail will ich gar nicht erst eingehen
- das &uuml;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&auml;lt. Diese l&auml;&szlig;t sich komfortabel
mithilfe von m4-Scripts konfigurieren - siehe das zugeh&ouml;rige README.
Ich habe die Originalkonfiguration ("<TT>linux.smtp.mc</TT>") &uuml;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&szlig; 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>&lt;fully.named.mailhost&gt;</I>)dnl # Post an: siehe /etc/hosts
define(confCON_EXPENSIVE, True)dnl # Post verteilen ist teuer
MASQUERADE_AS(<I>&lt;provider.name&gt;</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&szlig; man jetzt nur noch kundtun, was Sache ist:
<PRE>
root:# m4 linux.<I>beliebig</I>.mc &gt; /etc/sendmail.cf
root:# _
</PRE>
Man mu&szlig; seine email-Adresse so angeben, da&szlig; ein "Reply"
zuverl&auml;ssig wieder zur&uuml;ckkommt - das bedeutet, die From:-Zeile im
Email-Header mu&szlig; 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&szlig; hergestellt werden. Dazu editiert man eine Datei, in die
pro Nutzer zwei Zeilen eingetragen werden m&uuml;ssen:
<PRE>
<B>/etc/userdb.db</B>
<I>&lt;eigener_login_name&gt;</I>:mailname <I>&lt;provider_login_name&gt;</I>
<I>&lt;provider_login_name&gt;</I>:maildrop <I>&lt;eigener_login_name&gt;</I>
</PRE>
Dieses mu&szlig; in ein f&uuml;r <TT>sendmail</TT> lesbares Format umgesetzt
werden:
<PRE>
root:# makemap btree /etc/userdb.db &lt; /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&auml;uft als D&auml;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>") &uuml;ber die Telefonleitung zu
schicken.
<P>
Damit das richtig funktioniert, mu&szlig; sendmail beim Booten als
D&auml;mon <I>ohne</I> die "<TT>-q ...</TT>"-Option aufgerufen werden.
Der Aufruf geschieht bei simpleinit in der zweiten H&auml;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&szlig; die genannte Option entfernt werden ("<TT>-bd</TT>" mu&szlig;
bleiben, das ist f&uuml;r sendmail der Befehl, sich als D&auml;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&auml;chtig. Der Header wird richtig geschrieben, und die From-Zeile
lautet so, wie sie mu&szlig;: auf die eigene Adresse beim Provider.
<P>
Andere Mailer sind aber recht eigenwillig. Programme wie pine oder Netscape
&uuml;berschreiben den Header ziemlich hemmungslos mit dem, was sie f&uuml;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 &lt;jan.berkel@on-line.de&gt;:
In der <TT>.muttrc</TT> im Heimatverzeichnis mu&szlig; 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>&lt;Email@Adresse&gt;</I>
[...]
</PRE>
Die Adresse mu&szlig; mit der gew&uuml;nschten Adresse ausgef&uuml;llt werden.
<P>
<B>Pine</B>
<P>
Tilo Winkler &lt;twinkler@uni-paderborn.de&gt; hat herausbekommen, wie man dem
Pine abgew&ouml;hnen kann, die From:-Zeile vollzum&uuml;llen:
Man mu&szlig; 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&uuml;gen und dann neu compilieren. Dann
kann man in <TT>.pinerc</TT> im Heimatverzeichnis folgende Zeile(n)
einf&uuml;gen:
<PRE>
customized-hdrs=From: Mein Name &lt;Meine@email.adresse&gt;,
Reply-To: Mein Name &lt;Meine@email.adresse&gt;
</PRE>
<B>XEmacs</B>
<P>
(Hinweise hierzu hat mir dankenswerterweise Markus Dickebohm
&lt;<A HREF="mailto:m.dickebohm@uni-koeln.de?subject=Mailer und Mailheader">m.dickebohm@uni-koeln.de</A>&gt; 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&ouml;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>&lt;host-login&gt;</I> -p<I>&lt;host-password&gt;</I> -o/var/spool/mail/<I>&lt;user&gt;</I> getmail
~:# _
</PRE>
<TT>getmail</TT> ist der in <TT>/etc/hosts</TT> definierte Mailhost.
Gibt man zus&auml;tzlich noch die Option "-k" mit an, werden die Emails beim
Provider <I>nicht</I> gel&ouml;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&uuml;ck dauert das so kurz, da&szlig; 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 &ouml;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 &lt;dl4mhk@lrz.uni-muenchen.de&gt;
# 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&ouml;glich h&auml;ngen!
<P>
<H2>Let's cron!</H2>
Wer den Rechner rund um die Uhr laufen l&auml;&szlig;t, kann einen
automatischen Transfer erreichen, indem er den <TT>cron</TT>-D&auml;mon
bem&uuml;ht. Man macht dazu folgendes:
<P>
<B>1.) cron-Datei ver&auml;ndern.</B><BR>
<PRE>
root:# cd ~
root:# cp /var/spool/cron/crontabs/root .crontab
root:# _
</PRE>
An die Datei <TT>.crontab</TT> h&auml;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 &Auml;nderung bekannt machen.</B><BR>
<PRE>
crontab .crontab
</PRE>
Den Rest erledigt die Uhr des Rechners. Allt&auml;glich nachts um halb
f&uuml;nf Uhr wird die Post erledigt! (Anmerkung: die Rechnerzeit mu&szlig;
nat&uuml;rlich richtig gesetzt sein; <TT>man date; man clock</TT>.)
<P>
Hier mu&szlig; 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 &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard
Hailer</A><BR>
Letzte &Auml;nderung: 21-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

329
leafsite/email_e.html Normal file
View File

@ -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>&lt;IP address&gt;</I> <I>&lt;name_of_mail_server&gt;</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>&lt;provider.name&gt;</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 &gt; /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>&lt;login_at_your_pc&gt;</I>:mailname <I>&lt;provider_login_name&gt;</I>
<I>&lt;provider_login_name&gt;</I>:maildrop <I>&lt;login_at_your_pc&gt;</I>
</PRE>
It must be changed to a format <TT>sendmail</TT> can read:
<PRE>
root:# makemap btree /etc/userdb.db &lt; /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 &lt;jan.berkel@on-line.de&gt; 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>&lt;Email@Address&gt;</I>
[...]
</PRE>
Type in your correct email address.
<P>
<B>Pine</B>
<P>
Tilo Winkler &lt;twinkler@uni-paderborn.de&gt; 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 &lt;My@email.address&gt;,
Reply-To: My Name &lt;My@email.address&gt;
</PRE>
<B>XEmacs</B>
<P>
(Thanks, Markus Dickebohm
&lt;<A HREF="mailto:m.dickebohm@uni-koeln.de?subject=Mailer und Mailheader">m.dickebohm@uni-koeln.de</A>&gt; 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>&lt;host-login&gt;</I> -p<I>&lt;host-password&gt;</I> -o/var/spool/mail/<I>&lt;user&gt;</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 &lt;dl4mhk@lrz.uni-muenchen.de&gt;
# 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 &#169; (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>

BIN
leafsite/enews.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

669
leafsite/enews.html Normal file
View File

@ -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&ouml;chte auf
so einige Newsgroups nicht verzichten m&uuml;ssen.
<P>
Ein recht leistungsf&auml;higes Paket ist "InterNetNews", kurz INN, von
Rich $alz. Den INN zu b&auml;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&ouml;nnte zwar auch der INN &uuml;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&ouml;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 &uuml;brigens einen
(leider nicht besonders hilfreichen) &Uuml;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&uuml;hrliche FAQ, in der die Funktion des INN und das
Beheben vieler Fehler erkl&auml;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&auml;mon <TT>innd</TT> bei&szlig;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&szlig; unbedingt mit einem "#" auskommentiert werden, sonst weigert sich
der <TT>innd</TT>, anzuspringen (diese Erkenntnis hat mich Tage gekostet).
INN l&auml;uft auch nicht mit C-News und anderen News-D&auml;monen zusammen.
Ist auch nicht notwendig!
<P>
Und nochwas mu&szlig; man tun. Wenn dem INN etwas nicht pa&szlig;t, schreibt
er an "<TT>usenet@localhost</TT>". Den User "usenet" mu&szlig; man dem System
bekanntgeben - wie einige andere neue Mailadressen auch. Dies geschieht, indem
man der Datei <TT>/etc/aliases</TT> folgende Zeile anf&uuml;gt (eventuell
mu&szlig; man diese Datei neu erzeugen):
<PRE>
<B>/etc/aliases</B>
news: root
newsadm: news
newsadmin: news
usenet: news
</PRE>
Damit Sendmail Bescheid kriegt, mu&szlig; 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&uuml;ssen wir in unsere <TT>/etc/hosts</TT>-Datei noch die Adresse
unseres Newsservers eingeben. Die Adresse mu&szlig; 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>&lt;IP-Adresse&gt;</I> <I>&lt;Name_des_Newsservers&gt;</I> getnews
</PRE>
<P>
<H3>INN-Konfigurationsdateien</H3>
Nun sind wieder ein paar Konfigurationsdateien f&auml;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
&lt;schoepf@informatik.tu-muenchen.de&gt;: Falls beim INN-Start die
Fehlermeldung <TT>ME: cant GetConfigValue pathhost...</TT> auftritt, ist noch
die Zeile <TT>pathhost: <I>&lt;Host.Fuer.News.Path&gt;</I></TT>
einzuf&uuml;gen.
<PRE>
<B>/var/lib/news/hosts.nntp</B> (Slackware: /usr/lib/news/hosts.nntp)
# Welcher Rechner f&uuml;ttert unsere Newsreader?
localhost:
<I>Rechner.name</I>:
<B>/var/lib/news/nnrp.access</B> (Slackware: /usr/lib/news/nnrp.access)
# Welche Rechner d&uuml;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&uuml;r NOV &Uuml;bersichtsdatenbank
@overview:*:Tc,WO:/usr/lib/news/bin/overchan
# Den Provider f&uuml;ttern wir mit allem, was wir haben:
get/<I>providername</I>\
:*:Ap,Tf,Wnm:get
</PRE>
Zur genauen Erkl&auml;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&szlig; exakt so
geschrieben werden. Unterl&auml;&szlig;t man das, werden die Verhandlungen
&uuml;ber neue/vorhandene Artikel unn&ouml;tig verl&auml;ngert.
<P>
Es fehlen einige aktuelle Dateien, die man sich von seinem Newsserver holen
mu&szlig;. 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&uuml;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 &gt;/var/lib/news/active.raw
root:# /usr/lib/news/bin/getlist -h getnews newsgroups &gt;/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&szlig;", 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&szlig; noch bearbeitet werden.
Sie enth&auml;lt alle abonnierbaren Usenet-Groups und die aktuellen
Artikelnummern. <B>Warnung:</B> Diese Datei ist empfindlich. Sie vertr&auml;gt
keine &Auml;nderungen in Bezug auf die Anzahl der Worte pro Zeile, der
"white spaces" oder der Ziffernzahl! Nichts au&szlig;er der im folgenden
genannten &Auml;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&szlig; nachgesehen werden, ob folgende drei Eintr&auml;ge
enthalten sind - falls sie fehlen, mu&szlig; man sie nachtr&auml;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&szlig; der INN auch
vollst&auml;ndigen Zugang zum Verzeichnis <TT>/var/run</TT> ben&ouml;tigt.
<PRE>
root:# chown root.root /var/run # (und nicht root.uucp!)
root:# _
</PRE>
(eventuell mu&szlig; 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&szlig; mu&szlig; 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&szlig;enden Grundeinrichtung l&auml;&szlig;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&szlig;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&auml;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&ouml;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&uuml;ckgreifen.
<P>
Bei mir war die Montage reichlich nervenaufreibend und hat &uuml;ber einen
Monat gedauert. Ich habe versucht, hier alle Fehlerquellen zu
ber&uuml;cksichtigen, habe aber das dumpfe Gef&uuml;hl, da&szlig; mir das nicht
vollst&auml;ndig gelungen sein wird. Leider verh&auml;lt sich der INN bei der
Fehlersuche nicht sehr kooperativ... Dennoch denke ich, da&szlig; 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&szlig; das in sie Startup-Sequenz einf&uuml;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 # &lt;-- diese Zeile einf&uuml;gen!
</PRE>
Ferner mu&szlig; 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 &lt;dl4mhk@lrz.uni-muenchen.de&gt;, 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&szlig;
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&auml;mon. Das Herunterfahren sollte ebenfalls
"zivilisiert" ablaufen.
<H3>T&auml;glicher Kleinkram</H3>
Das bereits manuell aufgerufene Script <TT>news.daily</TT> mu&szlig; von nun
an t&auml;glich aufgerufen werden, sonst beschwert sich der INN per email
beim User <TT>usenet</TT>. Wir entwerfen also eine kleine Crontab f&uuml;r den
User <TT>news</TT>, der alleine dieses Script ausf&uuml;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&auml;glich um 7 Uhr 10 automatisch aufgerufen werden.
<P>
<TT>news.daily</TT> erledigt das Aufr&auml;umen. Alte Newsartikel werden
gel&ouml;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&ouml;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&uuml;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&ouml;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&ouml;nnte. Da aber das NNTP-Handshaking
recht aufwendig ist und die Telefonleitung m&ouml;glichst effektiv ausgelastet
werden soll, ist es durchaus sinnvoll, auf ein intelligentes Programm
zur&uuml;ckzugreifen.
<P>
Zwar ist das <TT>suck</TT>-Paket bekannter, doch habe ich mich wegen der guten
Konfigurierbarkeit f&uuml;r die (sehr kompakten) Programme von Chris Blum
entschieden. Dazu kommt, da&szlig; diese die Telefonleitung sehr
effizient nutzen und die &Uuml;bertragung in mehrere Unterprozesse aufteilen.
W&auml;hrend der Newsserver zum Bleistift gerade ein Newspaket schn&uuml;rt,
laufen parallel gerade Verhandlungen f&uuml;r die n&auml;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&auml;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&szlig;, welche Newsgroups es holen soll,
mu&szlig; man ihm in einer Datei mitteilen, wo er die Auflistung der
gew&uuml;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 &uuml;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&szlig; 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&auml;gt das Ergebnis als <I>timestamp</I> ein.
<P>
Nun erzeugt man noch die Paketdateien, die man gerade eingetragen hat.
Newsflash kann die Daten&uuml;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 &Uuml;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&szlig;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&szlig; 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&szlig;e Frage: Klappt's <I>immer noch</I>?</H3>
Der Aufruf von <TT>newsflash</TT> sollte nun f&uuml;r einige Minuten die
ISDN-Leitung zum Gl&uuml;hen bringen. Auf der Konsole sollten jede Menge
Meldungen kommen, was gerade so abl&auml;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
&uuml;brig... In der Regel mu&szlig; man etwas mit den Eintr&auml;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 &auml;hnlich ist:
<PRE>
<B><A HREF="scripts/transnews">/sbin/transnews</A></B>
#!/bin/sh
# transnews: gets and sends usenet news.
# Author: Bernhard Hailer &lt;dl4mhk@lrz.uni-muenchen.de&gt;
# 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&uuml;r dauerlaufende Rechner...</H2>
... mu&szlig; man sich die <TT>crontab</TT> des Users <TT>root</TT>
vornehmen und folgenden Eintrag hinzuf&uuml;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&szlig; der cron mit der neuen
crontab aufgerufen werden. Es empfiehlt sich, die &Uuml;bertragung der
Newsgroups eine Minute vor dem Emailtransfer (nicht gleichzeitig!!) zu starten,
dann kann man eventuell eine Tarifeinheit sparen. W&uuml;rde der Transfer
gleichzeitig gestartet, w&uuml;rde eine der beiden Anwendungen eine
vermeintlich bereits offene Leitung erkennen und sofort loslegen, obwohl
die Verbindung gerade erst aufgebaut wird. Die &Uuml;bertragung w&uuml;rde
abgebrochen.
<P>
<HR>
<P>
Viel Spa&szlig; mit den News!
<P>
<HR>
<ADDRESS>
<A HREF="gnulis_e.html" TARGET=Main>Copyright &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 20-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

637
leafsite/enews_e.html Normal file
View File

@ -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>&lt;IP address&gt;</I> <I>&lt;name_of_mail_server&gt;</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 &lt;schoepf@informatik.tu-muenchen.de&gt; 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>&lt;Host.Fuer.News.Path&gt;</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 &gt;/var/lib/news/active.raw
root:# /usr/lib/news/bin/getlist -h getnews newsgroups &gt;/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 # &lt;-- 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 &lt;dl4mhk@lrz.uni-muenchen.de&gt;, 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 &lt;dl4mhk@lrz.uni-muenchen.de&gt;
# 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 &#169; (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>

81
leafsite/faq.html Normal file
View File

@ -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&szlig;; 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&uuml;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&szlig;; 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&uuml;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&szlig; eventuell die SHIFT-Taste w&auml;hrend des
Anklickens gedr&uuml;ckt werden! Unbedingt sicherstellen, da&szlig; der Cache
nicht die alte Version enth&auml;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 &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 01-Mar-97 BeH
</ADDRESS>
</BODY>
</HTML>

BIN
leafsite/faq.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

87
leafsite/faq_e.html Normal file
View File

@ -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&szlig;; 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&uuml;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&szlig;; 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&uuml;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 &#169; (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>

120
leafsite/fax.html Normal file
View File

@ -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&auml;t</H2>
klappt leider nicht, wenn man das mit ISDN4Linux machen will. Das liegt daran,
da&szlig; 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&auml;hig. Daf&uuml;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&auml;hlige Telefoneinheiten verplempert, bis ich eingesehen
hatte, da&szlig; hier einfach etwas besseres her mu&szlig;te. Das neue Modem
war acht mal so teuer - lief aber daf&uuml;r auf Anhieb!
<P>
Hier also die Beschreibung, wie man mit einem Analogmodem Fax empfangen kann.
Mein Anschlu&szlig; 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&szlig; man sich zun&auml;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&szlig; 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 "&lt;user&gt;" /* 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&uuml;r den Fall, da&szlig;
das Modem an /dev/ttyS1 h&auml;ngt - der Chat-String mu&szlig; dem Modem
entsprechend angepa&szlig;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&uuml;nften Klingeln ab und nimmt Daten entgegen.
<H3>Faxe senden<H3>
<P>
<HR>
<ADDRESS>
<A HREF="gnulis.html" TARGET=Main>Copyright &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 21-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

BIN
leafsite/fax.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

49
leafsite/fax_e.html Normal file
View File

@ -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 &#169; (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>

BIN
leafsite/friends1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

221
leafsite/ftp.html Normal file
View File

@ -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&ouml;glich
aus &Uuml;bersee) eine gro&szlig;e
Bin&auml;rdatei holen will, wird die maximale &Uuml;bertragungsrate nicht
mehr richtig ausgenutzt - besonders bei ISDN passiert das schnell. Nun hat man
sich keinen ISDN-Anschlu&szlig; legen lassen, um dem Fernmeldeanbieter das
Geld in den Rachen zu werfen, und au&szlig;erdem benutzen wir das beste
Betriebssystem der Welt :-) Und zumindestens Leute, die einen Uni-Zugang
haben, und dort ein paar Unix-Befehle loswerden k&ouml;nnen, k&ouml;nnen hier
tricksen.
<P>
<H2>Die Theorie</H2>
Aber wie? Der Trick besteht darin, da&szlig; die Datei nicht sofort und direkt
downgeloadet wird, sondern da&szlig; man das zun&auml;chst den Server an der
Uni machen l&auml;&szlig;t. Nach einiger Zeit holt man sich die
gew&uuml;nschte Datei dann von dort - die Verbindung zum Uniserver ist ja in
der Regel so gut, da&szlig; die maximale &Uuml;bertragungsrate voll ausgenutzt
wird. UNIX kennt den Befehl <TT>nohup</TT>, mit dem man Befehle ausf&uuml;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 &amp;
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&szlig; man etwas Vorarbeit leisten, denn <TT>ftp</TT> ist ein
interaktives Programm, welches zur Arbeit eine ganze Menge Informationen
ben&ouml;tigt (zum Bleistift, was es denn holen soll). Die Interaktivit&auml;t
kann man ihm abgew&ouml;hnen, daf&uuml;r ist die Option "-i" da. Die
Informationen mu&szlig; man trotzdem &uuml;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&ouml;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>&lt;eigene@email.adresse&gt;</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&uuml;r jeden Server einen Eintrag machen. Diese Datei
mu&szlig; vor dem <TT>nohup ftp</TT> im Heimatverzeichnis beim Provider
abgelegt werden.
Eine Stunde sp&auml;ter kann man sich den Kernel mit H&ouml;chstgeschwindigkeit
beim Provider abholen. Sch&ouml;n, gell?
<H2>Automatisierung</H2>
So. Nun wollen wir das automatisieren. Hierzu mu&szlig; nat&uuml;rlich wieder
der cron herhalten, der die datenintensive &Uuml;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&szlig;t Euch &uuml;berraschen!</B>
</P>
<HR>
<P>
Ich hatte bisher keine Zeit f&uuml;r weitere Forschungen - aber einige
Leute haben mir geschrieben.
<P>
Uwe Bonnes &lt;bon@elektron.ikp.physik.th-darmstadt.de&gt; 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 &lt;Gunnar.Larisch@lpr.e-technik.tu-muenchen.de&gt; schrieb:
<PRE>
anscheinend hast Du auch ISDN, da Du so sch&ouml;ne Anleitungen geschrieben
hast. Ich hab da paar sch&ouml;ne Skripten, die Dich vielleicht interessieren.
getme &lt;Server&gt; &lt;Dir&gt; &lt;File&gt;
Per cron muss dann noch cronftp gestartet werden. Am n&auml;chsten Tag kannst
Du Dir Dein File abholen.
getfrom ist vielleicht auch ganz n&uuml;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 &gt;&gt;$FTPFILE
echo open $1 &gt;&gt;$FTPFILE
echo user anonymous t8231ah@sunmail.lrz-muenchen.de &gt;&gt;$FTPFILE
echo bin &gt;&gt;$FTPFILE
echo "cd $2" &gt;&gt;$FTPFILE
echo "mget $3" &gt;&gt;$FTPFILE
echo close &gt;&gt;$FTPFILE
-------------------------------
---------getfrom---------------
echo Hole $2 von $1...
echo ftp -i $1 &gt;&gt;~/tmp/ftpjob
echo bin &gt;&gt;~/TMP/ftpjob
echo cd $2 &gt;&gt;~/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 &gt;$NEWFTPFILE &
-------------------------------------
Ciao Gunnar
</PRE>
<P>
Siggi Thoma &lt;sthoma@twilight.rhein-neckar.de&gt; schrieb:
<PRE>
Hast Du diesbezüglich mal von FTPMAIL gehört? Vielleicht erfüllt das auch den
gewünschten Zweck und ein bi&szlig;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 &#169; (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>

BIN
leafsite/ftp.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

198
leafsite/ftp_e.html Normal file
View File

@ -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 &amp;
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>&lt;my@email.address&gt;</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 &lt;bon@elektron.ikp.physik.th-darmstadt.de&gt; 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 &lt;Gunnar.Larisch@lpr.e-technik.tu-muenchen.de&gt; wrote:
<PRE>
Some nice scripts:
getme &lt;Server&gt; &lt;Dir&gt; &lt;File&gt;
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 &gt;&gt$FTPFILE
echo open $1 &gt;&gt;$FTPFILE
echo user anonymous t8231ah@sunmail.lrz-muenchen.de &gt;&gt;$FTPFILE
echo bin &gt;&gt;$FTPFILE
echo "cd $2" &gt;&gt;$FTPFILE
echo "mget $3" &gt;&gt;$FTPFILE
echo close &gt;&gt;$FTPFILE
-------------------------------
---------getfrom---------------
echo Hole $2 von $1...
echo ftp -i $1 &gt;&gt;~/tmp/ftpjob
echo bin &gt;&gt;~/TMP/ftpjob
echo cd $2 &gt;&gt;~/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 &lt;$NEWFTPFILE &
-------------------------------------
Ciao Gunnar
</PRE>
<P>
Siggi Thoma &lt;sthoma@twilight.rhein-neckar.de&gt; 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 &#169; (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>

BIN
leafsite/gaense.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
leafsite/german.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 B

488
leafsite/gnulis.html Normal file
View File

@ -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&ouml;rtliche
Kopien von diesem Dokument zu verteilen, &Auml;nderungen sind jedoch nicht
erlaubt. Rechtsg&uuml;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 &Auml;nderung zu verhindern.
Im Gegensatz dazu will die GNU General Public License (im folgenden mit
"`GPL"' bezeichnet) sicherstellen,
da&szlig; freie Software von jedem benutzt und ver&auml;ndert werden kann - um
sicherzustellen, da&szlig; die Software f&uuml;r alle Benutzer frei ist. Diese
GPL gilt f&uuml;r den gr&ouml;&szlig;ten Teil der Software von der
Free Software Foundation und f&uuml;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&ouml;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&szlig;
Sie die Freiheit haben, Kopien freier Software zu verbreiten (und etwas
f&uuml;r diesen Service zu berechnen, wenn Sie wollen), da&szlig; Sie den
Quellcode erhalten oder bekommen k&ouml;nnen, wenn Sie wollen, und da&szlig;
Sie die Software &auml;ndern oder Teile davon in neuen freien Programmen
verwenden k&ouml;nnen; weiterhin haben die Licences den Sinn, Sie dar&uuml;ber
zu unterrichten, da&szlig; Sie dies alles tun d&uuml;rfen.
<P>
Um Ihre Rechte zu sch&uuml;tzen, m&uuml;ssen wir Einschr&auml;nkungen machen,
die es jedem verbieten, Ihnen diese Rechte zu verweigern oder Sie aufzufordern,
auf diese Rechte zu verzichten. Aus diesen Einschr&auml;nkungen folgen
bestimmte Verantwortlichkeiten f&uuml;r Sie, wenn Sie Kopien der Software
verbreiten oder sie ver&auml;ndern.
<P>
Wenn Sie zum Beispiel Kopien eines solchen Programmes verbreiten, ob umsonst
oder gegen Bezahlung, so m&uuml;ssen Sie den Empf&auml;ngern alle Rechte
gew&auml;hren, die Sie selbst haben. Sie m&uuml;ssen sicherstellen, da&szlig;
auch sie den Quellcode erhalten oder erhalten k&ouml;nnen. Und Sie m&uuml;ssen
ihnen diese Bedingungen zeigen, damit sie ihre Rechte kennen.
<P>
Wir sch&uuml;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&uuml;tzen, m&ouml;chten wir sicherstellen,
da&szlig; jeder versteht, da&szlig; es keine Garantie f&uuml;r diese freie
Software gibt. Wenn die Software von jemand anderem modifiziert und
weitergegeben wird, m&ouml;chten wir, da&szlig; die Empf&auml;nger wissen,
da&szlig; sie nicht das Original erhalten haben, damit Probleme, die von
anderen hervorgerufen wurden, nicht die Reputation des urspr&uuml;nglichen
Autors sch&auml;digen.
<P>
Schlie&szlig;lich ist jedes freie Programm durch Software-Patente bedroht. Wir
m&ouml;chten die Gefahr ausschlie&szlig;en, da&szlig; Distributoren eines
freien Programmes individuelle Patente erhalten mit dem Effekt, da&szlig; das
Programm propriet&auml;r wird. Um dies zu verhindern, haben wir klar gemacht,
da&szlig; jedes Patent die freie Benutzung von jedem erlaubt oder gar nicht
lizenziert werden darf.
<P>
Die pr&auml;zisen Begriffe und Bedingungen f&uuml;r das Kopieren,
Verteilen und Modifizieren folgen:
<H2>GNU GENERAL PUBLIC LICENSE</H2>
<H3>Begriffe und Bedingungen f&uuml;r das Kopieren, Verteilen und
Modifizieren</H3>
<B>0.</B>
Diese Lizenz gilt f&uuml;r jedes Programm oder jede andere Arbeit, die einen
Vermerk des Copyright-Inhabers enth&auml;lt, der besagt, da&szlig; die Arbeit
unter den Bestimmungen dieser General Public License verbreitet werden darf.
Der Begriff "`Programm"' steht im folgenden f&uuml;r jedes derartige Programm
und f&uuml;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&auml;lt, entweder w&ouml;rtlich oder mit
Modifikationen und/oder &uuml;bersetzt in eine andere Sprache. (Im folgenden
wird die &Uuml;bersetzung ohne Einschr&auml;nkung als "`Modifikation"'
verstanden). Jeder Lizenznehmer wird im folgenden als "`Sie"' angesprochen.
<P>
Andere Aktivit&auml;ten als Kopieren, Verteilen und Modifizieren werden nicht
von dieser Lizenz abgedeckt; sie sind au&szlig;erhalb ihres
G&uuml;ltigkeitsbereichs. Der Vorgang des Ablaufenlassens des Programmes ist
nicht beschr&auml;nkt, und die Ausgabe des Programmes unterliegt dieser Lizenz
nur, wenn der Inhalt eine auf dem Programm basierende Arbeit darstellt
(unabh&auml;ngig davon, da&szlig; die Ausgabe durch ein Laufenlassen des
Programmes erfolgte). Ob dies zutrifft, h&auml;ngt davon ab, was das Programm
tut.
<P>
<B>1.</B>
Sie d&uuml;rfen w&ouml;rtliche Kopien vom Quellcode des Programms anfertigen
und verbreiten, so wie Sie ihn erhalten haben, auf jedem Medium, vorausgesetzt,
da&szlig; Sie mit jeder Kopie einen entsprechenden Copyright-Vermerk sowie
einen Haftungsausschluss ver&ouml;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&auml;ngern
des Programmes eine Kopie dieser Lizenz zusammen mit dem Programm.
<P>
Sie d&uuml;rfen f&uuml;r den eigentlichen Kopiervorgang eine Geb&uuml;hr
verlangen und Sie d&uuml;rfen auf Ihren Wunsch eine Garantie f&uuml;r das
Programm gegen Entgelt anbieten.
<P>
<B>2.</B>
Sie d&uuml;rfen Ihre Kopie des Programmes oder eines Teils davon modifizieren,
wodurch eine auf dem Programm basierende Arbeit entsteht; Sie d&uuml;rfen
derartige Modifikationen unter den Bestimmungen von Abschnitt 1 kopieren
und verbreiten, vorausgesetzt, da&szlig; zus&auml;tzlich alle folgenden
Bedingungen erf&uuml;llt werden:
<BLOCKQUOTE>
<B>a)</B>
Sie m&uuml;ssen daf&uuml;r Sorge tragen, da&szlig; die ver&auml;nderten
Dateien einen auff&auml;lligen Vermerk tragen, da&szlig; sie von Ihnen
ver&auml;ndert wurden, sowie das Datum jeder &Auml;nderung.
<P>
<B>b)</B>
Sie m&uuml;ssen daf&uuml;r sorgen, da&szlig; jede Arbeit, die Sie
verbreiten oder ver&ouml;ffentlichen, und die ganz oder in Teilen von
einem Programm oder Teilen davon abgeleitet ist, Dritten gegen&uuml;ber
als ganzes unter den Bedingungen dieser Lizenz ohne Lizenzgeb&uuml;hren
zur Verf&uuml;gung gestellt wird.
<P>
<B>c)</B> Wenn das modifizierte Programm normalerweise beim Lauf interaktiv
Kommandos einliest, m&uuml;ssen Sie daf&uuml;r sorgen, da&szlig; es, wenn
es auf gew&ouml;hnlichem Wege f&uuml;r solch eine interaktive Nutzung
gestartet wird, eine Meldung ausgibt oder ausdruckt, die einen geeigneten
Copyright-Vermerk enth&auml;lt sowie einen Hinweis, da&szlig; es keine
Gew&auml;hrleistung gibt (oder da&szlig; Sie Garantie leisten), und
da&szlig; Benutzer das Programm unter diesen Bedingungen weiter verbreiten
d&uuml;rfen; der Benutzer mu&szlig; 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&szlig; 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&uuml;nftigerweise selbst als unabh&auml;ngige und
eigenst&auml;ndige Arbeiten betrachtet werden k&ouml;nnen, dann erstrecken
sich diese Lizenz und ihre Begriffe nicht auf diese Abschnitte, wenn sie als
eigenst&auml;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&szlig; 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&auml;ngig davon, wer diesen Teil geschrieben hat.
<P>
Somit ist es nicht die Absicht dieses Abschnittes, Rechte f&uuml;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&uuml;ben.
<P>
Weiterhin f&uuml;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&szlig; die andere Arbeit den Regeln dieser Lizenz unterliegt.
<P>
<B>3.</B> Sie d&uuml;rfen das Programm (oder eine darauf basierende Arbeit wie
in Abschnitt 2) als object code oder in ausf&uuml;hrbarer Form unter den Bedingungen von Abschnitt 1 und 2 kopieren und verteilen, vorausgesetzt, da&szlig;
Sie eines der folgenden Dinge tun:
<BLOCKQUOTE>
<B>a)</B> Liefern Sie zus&auml;tzlich den kompletten zugeh&ouml;rigen
maschinenlesbaren Quellcode auf einem Medium, das &uuml;blicherweise
f&uuml;r den Datenaustausch verwendet wird, wobei die Verteilung unter
den Bedingungen der Abschnitte 1 und 2 erfolgen mu&szlig;; oder
<P>
<B>b)</B> Liefern Sie das Programm mit einem schriftlichen Angebot, das
mindestens drei Jahre lang g&uuml;ltig sein mu&szlig;, da&szlig; Sie
jedem Dritten eine komplette maschinenlesbare Kopie des Quellcodes zur
Verf&uuml;gung stellen, wobei keine weiteren Kosten als f&uuml;r den
physikalischen Kopiervorgang anfallen d&uuml;rfen und der Quellcode unter
den Bedingungen der Abschnitte 1 und 2 auf einem Medium verteilt wird,
das &uuml;blicherweise f&uuml;r den Datenaustausch verwendet wird; oder
<P>
<B>c)</B> Liefern Sie das Programm mit der Information, die Sie erhalten haben,
da&szlig; der korrespondierende Quellcode angeboten ist. (Diese
Alternative gilt nur f&uuml;r nicht-kommerzielle Zwecke und nur, wenn Sie
das Programm als object code oder in ausf&uuml;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&uuml;hren. F&uuml;r ein
ausf&uuml;hrbares Programm bedeutet der Quellcode: Der Quellcode aller Module,
die das Programm beinhaltet, zus&auml;tzlich alle zugeh&ouml;rigen
Schnittstellen-Definitions-Dateien, sowie die Scripten, die die Kompilierung
sowie die Installation des ausf&uuml;hrbaren Programmes kontrollieren. Als
spezielle Ausnahme jedoch mu&szlig; der verteilte Quellcode nichts enthalten,
was normalerweise (entweder als Quellcode oder in bin&auml;rer Form) mit den
Hauptkomponenten des Betriebssystems (Kernel, Compiler usw.) verteilt wird,
unter dem das Programm l&auml;uft, au&szlig;er diese Komponente selbst
begleitet das ausf&uuml;hrbare Programm.
<P>
Wenn die Verteilung eines ausf&uuml;hrbaren Programmes oder des object codes
dadurch erfolgt, da&szlig; eine Stelle zur Verf&uuml;gung gestellt wird, von
der kopiert werden kann, so gilt das zur Verf&uuml;gung stellen einer
&auml;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&uuml;rfen das Programm nicht kopieren, modifizieren, lizenzieren oder
verbreiten au&szlig;er ausdr&uuml;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&auml;ren Sie damit Ihr Einverst&auml;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&auml;lt der Empf&auml;nger automatisch vom originalen
Lizenzgeber die Lizenz, das Programm gem&auml;&szlig; dieser Begriffe und
Bestimmungen zu kopieren, zu verbreiten und zu modifizieren. Sie d&uuml;rfen
keine weiteren Einschr&auml;nkungen der Durchsetzung der hierin zugestandenen
Rechte des Empf&auml;ngers vornehmen. Sie sind nicht daf&uuml;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&uuml;nden Umst&auml;nde
auftreten (ob durch Gerichtsbeschlu&szlig;, Vergleich oder amderweitig), die
den Bestimmungen in dieser Lizenz entgegensprechen, so befreien Sie diese
Umst&auml;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&ouml;nnen, dann
k&ouml;nnen Sie als Folge das Programm &uuml;berhaupt nicht verbreiten. Wenn
zum Beispiel ein Patent nicht die geb&uuml;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&uuml;r ung&uuml;ltig oder unter
irgendwelchen bestimmten Umst&auml;nden f&uuml;r undurchsetzbar gehalten wird,
soll die Grundaussage dieses Abschnittes gelten; der ganze Abschnitt soll
unter den &uuml;brigen Umst&auml;nden G&uuml;ltigkeit haben.
<P>
Es ist nicht der Zweck dieses Abschnittes, Sie dazu zu bringen, irgendwelche
Patente oder andere Rechtsg&uuml;ter anzufechten oder die G&uuml;ltigkeit
irgendwelcher solcher G&uuml;ter zu bestreiten; dieser Abschnitt hat den
einzigen Zweck, die Integrit&auml;t des Verbreitungssystems der freien
Software zu sch&uuml;tzen, das durch praktizierte &ouml;ffentliche Lizenzen
verwirklicht wird. Viele Leute haben gro&szlig;z&uuml;gige Beitr&auml;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&szlig;.
<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&uuml;tzte
Schnittstellen eingeschr&auml;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&szlig; die Verbreitung nur in und unter den Staaten erlaubt ist, die
nicht ausgeschlossen sind. In einem solchen Fall beinhaltet diese Lizenz die
Beschr&auml;nkung, als w&auml;re sie in diesem Text niedergeschrieben.
<P>
<B>9.</B>
Die Free Software Foundation kann von Zeit zu Zeit &uuml;berarbeitete und/oder
neue Versionen der General Public License ver&ouml;ffentlichen. Solche neuen
Versionen werden vom Geist her der gegenw&auml;rtigen entsprechen, k&ouml;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&auml;teren Version, die von der
Free Software Foundation ver&ouml;ffentlicht wurde. Wenn das Programm keine
Versionsnummer angibt, k&ouml;nnen Sie eine beliebige Version w&auml;hlen, die
je von der Free Software Foundation ver&ouml;ffentlicht wurde.
<P>
<B>10.</B>
Wenn Sie den Wunsch haben, Teile des Programmes in anderen freien Programmen
zu verwenden, deren Bedingungen f&uuml;r das Verbreiten anders sind, schreiben
Sie an den Autor, um ihn um die Erlaubnis zu bitten. F&uuml;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&ouml;rderung der Verbreitung und Nutzung von Software generell.
<H2>KEINE GEW&Auml;HRLEISTUNG</H2>
<B>
11. Da das Programm ohne jegliche Kosten lizenziert wird, besteht keinerlei
Gew&auml;hrleistung f&uuml;r das Programm bis zu dem Ma&szlig;, wie es durch
geltende Gesetze zugestanden wird. Au&szlig;er wenn anderweitig schriftlich
best&auml;tigt, stellen die Copyright-Inhaber und/oder Dritte das Programm so
zur Verf&uuml;gung, "wie es ist", ohne irgendeine Gew&auml;hrleistung, weder
ausdr&uuml;cklich noch implizit, einschlie&szlig;lich, aber nicht begrenzt
auf, die Tauglichkeit und Verwendbarkeit f&uuml;r einen bestimmten Zweck. Das
volle Risiko bez&uuml;glich Qualit&auml;t und Leistungsf&auml;higkeit des
Programmes liegt bei Ihnen. Sollte das Programm fehlerhaft sein,
&uuml;bernehmen Sie die Kosten f&uuml;r notwendigen Service, Reparatur oder
Korrektur.
<P>
12. In keinem Fall, au&szlig;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&uuml;ber f&uuml;r irgendwelche Sch&auml;den haftbar,
einschlie&szlig;lich jeglicher genereller, spezieller, zuf&auml;lliger oder
Folgesch&auml;den, die aus der Benutzung des Programmes oder der
Unbenutzbarkeit des Programmes folgen (einschlie&szlig;lich, aber nicht
beschr&auml;nkt auf, Datenverluste, fehlerhafte Verarbeitung von Daten,
Verluste, die von Ihnen oder anderen getragen werden m&uuml;ssen, oder einen
Fehler des Programms, mit irgeneinem anderen Programm zusammenzuarbeiten),
selbst wenn ein Copyright-Inhaber oder Dritter &uuml;ber die M&ouml;glichkeit
solcher Sch&auml;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&szlig; es f&uuml;r
gr&ouml;&szlig;tm&ouml;glichen Nutzen f&uuml;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&auml;ndern kann.
<P>
Um dies zu erreichen, f&uuml;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&auml;hrleistungsausschlu&szlig; m&ouml;glichst deutlich
darzustellen; au&szlig;erdem sollte jede Datei mindestens eine
"Copyright"-Zeile besitzen sowie einen kurzen Hinweis darauf, wo die
vollst&auml;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&uuml;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&uuml;r, da&szlig; 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&uuml;rlich k&ouml;nnen die von Ihnen verwendeten
Kommandos anders hei&szlig;en als `show w' und `show c'; es k&ouml;nnten auch
einfach Mausklicks sein - was immer am besten in Ihr Programm pa&szlig;t.
<P>
Wenn n&ouml;tig, sollten Sie auch Ihren Arbeitgeber (wenn Sie als Programmierer
arbeiten) oder Ihre Schule dazu bringen, einen Copyright-Verzicht f&uuml;r das
Programm zu unterschreiben. Hier ist ein Beispiel mit ge&auml;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&auml;sident
</PRE>
Diese General Public License erlaubt es nicht, das Programm in propriet&auml;re
Programme einzubinden. Wenn Ihr Programm eine Bibliotheksfunktion ist, kann
es sinnvoller sein, das Binden propriet&auml;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>

428
leafsite/gnulis_e.html Normal file
View File

@ -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 &Uuml;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>

112
leafsite/hall.html Normal file
View File

@ -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&auml;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&uuml;r die Existenz von I4L
<LI><A HREF="http://www.sfs.nphil.uni-tuebingen.de/~hipp/"
TARGET=_top>Michael Hipp</A> f&uuml;r den "ipppd"
<LI>Andreas Kool f&uuml;r "isdnlog" und "isdnmon"
<LI>Michael Knigge f&uuml;r "imon"
<LI>Volker Goetz f&uuml;r "imontty", das Listenmanagement und den
FAQ-Grundstock
<LI>Gert Doering f&uuml;r "mgetty+sendfax"
<LI>Michael "Ghandi" Herold f&uuml;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&uuml;nchen)
<LI>Andreas Sellmeier (TU M&uuml;nchen)
<LI>Joachim Ritschel (TU Ilmenau)
<LI><A HREF="http://cips02.physik.uni-bonn.de/~harbeck/"
TARGET=_top>Daniel Harbeck</A> f&uuml;r seine email-Kurzanleitung
<LI><A HREF="http://home.pages.de/~giggls"
TARGET=_top>Sven Geggus</A> f&uuml;r viele Hinweise zum aliasing bei
Email
<LI><A HREF="mailto:m.dickebohm@uni-koeln.de?subject=Usenet news">Markus
Dickebohm</A> f&uuml;r sein exzellentes INN-Tutorial
<LI><A HREF="mailto:hessler@wi-inf.uni-essen.de?subject=Audio-Anleitung">
Matthias He&szlig;ler</A> f&uuml;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&uuml;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&uuml;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&uuml;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&uuml;r's
<A HREF="http://www.uni-wuppertal.de/hrz/netzinfo/linux_isdn.htm"
TARGET=_top>&Uuml;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&uuml;r's
<A HREF="http://www-exp.physik.uni-ulm.de/www_exp/german/people/steinmet/setup.htm"
TARGET=_top>&Uuml;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&uuml;r die Nennung dieser Seiten im NET-2-HOWTO
</UL>
<LI><B>und nat&uuml;rlich bei</B>
<UL>
<LI><A HREF="http://www.cs.Helsinki.FI/~torvalds/"
TARGET=_top>Linus Torvalds</A>
f&uuml;r dieses affenstarke Betriebssystem
<LI><A HREF="http://www.isc.tamu.edu/~lewing/linux/"
TARGET=_top>Larry Ewing</A>
f&uuml;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&uuml;r das Organisieren der herrlichen Pl&uuml;sch-Pinguine!
</UL>
</UL>
<P>
<HR>
<ADDRESS>
<A HREF="gnulis_e.html" TARGET=Main>Copyright &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 24-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

106
leafsite/hall_e.html Normal file
View File

@ -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&szlig;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&uuml;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 &#169; (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>

238
leafsite/hist_e.html Normal file
View File

@ -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&uuml;hrung und im Script rc.isdn.
<LI>Viele Leser schrieben von Problemen mit SysV-init/simpleinit.
Daher wurde das bei der Konfiguration st&auml;rker ber&uuml;cksichtigt.
<LI>Das Problem "CHAP" wurde - obwohl am LRZ nicht relevant - erkl&auml;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
&lt;<A HREF="http://o01.rosat.mpe-garching.mpg.de/~web/ISDN.html">http://o01.rosat.mpe-garching.mpg.de/~web/ISDN.html</A>&gt;
<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
&lt;<A HREF="http://www.lrz-muenchen.de/~ui161ab/www/isdn/">http://www.lrz-muenchen.de/~ui161ab/www/isdn/</A>&gt;<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&auml;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 -&gt; prvdr0
<LI>lrz-p1 -&gt; prvdr1
<LI>lrzmail -&gt; getmail
<LI>lrznews -&gt; 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&ouml;nheitskorrekturen.
<LI>November 21st:<BR>
<UL>
<LI>Matthias He&szlig;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 &lt;husfeld@usm.uni-muenchen.de&gt; and
Herbert Thielen &lt;Herbert.Thielen@lpr.e-technik.tu-muenchen.de&gt;
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 &#169; (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>

233
leafsite/history.html Normal file
View File

@ -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&szlig; man etwas verbessern kann,
oder da&szlig; mal was falsch ist, kommen recht oft neue Versionen heraus.
F&uuml;r den Anwender w&auml;re es zu m&uuml;hsam, immer herausfinden zu
m&uuml;ssen, wo etwas ge&auml;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&uuml;r eine LRZ-Info-Schrift. Kleinere Unf&auml;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&szlig;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
&lt;<A HREF="http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html">http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html</A>&gt;
<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&auml;t isdn1 -> isdn0
<LI>/etc/rc.d/rc.isdn: die "isdnctrl addphone ipppx in" der
f&uuml;hrenden Null beraubt (kleiner Bug)
<LI>/etc/ppp/pap-secrets erweitert
<LI>/etc/hosts: um den 2. Ascend-Server erweitert, daf&uuml;r den Eintrag
"lrz" entfernt
</UL>
<LI>17. Mai: eine Unterlassungss&uuml;nde in der letzten Version f&uuml;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 &Auml;nderungen funktionierte es wieder.<BR>
Des weiteren wurde eine bereits gute M&ouml;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&auml;ge "lrzmail" und "sunmail" erweitert.
</UL>
<LI>18. Mai: Keine gro&szlig;e &Auml;nderung - nur diese Historie wurde
formuliert. Die INN-Forschung l&auml;uft auf Hochtouren...
<LI>21. Mai: Ab sofort ist die aktuellste Version der Seite bei mir selbst
zu finden: &lt;<A HREF="http://www.lrz-muenchen.de/~ui161ab/">http://www.lrz-muenchen.de/~ui161ab/</A>&gt;<BR>
Ver&auml;nderungen:
<UL>
<LI>Abschnitt email: Vorschlag zum chma-Ersatz eingef&uuml;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&auml;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&uuml;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 &Uuml;bersetzung wurde angefertigt (uff...).
</UL>
<LI>30. Juni: Seit vier Tagen l&auml;uft mein Usenet-System.
<UL>
<LI>Die Usenet-Seite (bisher nur auf Deutsch) ist fertig.
<LI>Die Email-Seite hat leichte Ver&auml;nderungen erfahren.
</UL>
<LI>6. Juli:
<UL>
<LI>Die IP-Adresse des ersten LRZ-Ascends war falsch. Korrigiert in der
Einf&uuml;hrung und in der Datei /etc/hosts.
<LI>Die &Uuml;berpr&uuml;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&auml;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&auml;rker ber&uuml;cksichtigt.
<LI>Das Problem "CHAP" wurde - obwohl am LRZ nicht relevant - erkl&auml;rt.
</UL>
<LI>19. Juli:
<UL>
<LI>Installation: CHAP-Authentifizierung eleganter gel&ouml;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&ouml;ne Meldungen
<LI>email: Die Sendmail-Konfigurationsdatei wurde um
"<TT>FEATURE(nocanonify)</TT>" erweitert.
</UL>
<LI>29. Juli:
<UL>
<LI>Usenet: "T&auml;glicher Kleinkram":
"<TT>sendnews</TT>" eingebaut
</UL>
<LI>1. September:<BR>
Komplette &Uuml;berarbeitung: die Anleitung ist nun vom
Leibniz-Rechenzentrum als Provider losgel&ouml;st und so allgemein
gehalten, da&szlig; in vielen F&auml;llen damit einfach losgelegt
werden kann. Ab sofort ist diese Seitensammlung unter dem Schutz der GNU
GPL und darf nun frei weiterverbreitet werden.<BR>
&Auml;nderungen:
<UL>
<LI>Eine Datenbank mit Providerdaten soll aufgebaut werden. Diese wird
aktiv in den Scripten verwendet.
<LI>/etc/hosts:
<UL>
<LI>lrz-p0 -&gt; prvdr0
<LI>lrz-p1 -&gt; prvdr1
<LI>lrzmail -&gt; getmail
<LI>lrznews -&gt; getnews
</UL>
Entsprechend wurden alle Scripten ver&auml;ndert - also Vorsicht bei
Updates. Leider war dieser Schritt notwendig, ich entschuldige mich
f&uuml;r eventuelle Unannehmlichkeiten.
<LI> Die Scripten /sbin/isdn, /sbin/transmail und /sbin/transnews
enthielten einen b&ouml;sen Denkfehler, der das Konzept des mehrfach
offenen Kanals nicht funktionieren lie&szlig;. Bug fixed.
<LI> Alle Scripten wurden intensiv &uuml;berarbeitet.
<LI> Die englische &Uuml;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&szlig; 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&auml;higen ausgekl&uuml;gelten
Batchdateien downloaden.
<LI>21. November:<BR>
Einige Sch&ouml;nheitskorrekturen.
<UL>
<LI>Nach einem Vorschlag von Matthias He&szlig;ler erhielten die
Konfigurationsdateien einpr&auml;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&uuml;&szlig;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&ouml;llig neues Scriptenpaket
erledigt die Anbindung an's Internet per isdn4linux oder Modem, mit
m&ouml;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&auml;nderungen wurden vorgenommen. Ganz herzlich danke ich
Dirk Husfeld &lt;husfeld@usm.uni-muenchen.de&gt; und
Herbert Thielen &lt;Herbert.Thielen@lpr.e-technik.tu-muenchen.de&gt;
f&uuml;r viele sehr wertvolle Anmerkungen.
<UL>
<LI>Provider-Templates: <TT>IP</TT> hei&szlig;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&uuml;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
&Uuml;berpr&uuml;fung des physikalischen Zustandes zuverl&auml;ssiger.
<LI>Jede Menge kleinerer und gr&ouml;&szlig;erer Bugs sind beseitigt
<LI>Wenn connect erst bei zweiter Anwahl auf einem zweiten Remote
erfolgreich war und dann abermals aufgerufen wurde, f&uuml;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&uuml;ndung: Systemsicherheit.
<LI>Absolute Pfade sind &uuml;berall durch Variable ersetzt.
</UL>
Damit ist offiziell die Version 1.0 released. :-) Weitere &Auml;nderungen
werden leider warten m&uuml;ssen, denn ich trete in K&uuml;rze eine neue
Arbeitsstelle an, die sehr stre&szlig;reich sein wird. :-(
</UL>
<P>
<HR>
<ADDRESS>
<A HREF="gnulis_e.html" TARGET=Main>Copyright &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 24-Feb-97
</ADDRESS>
</BODY>
</HTML>

58
leafsite/index.html Normal file
View File

@ -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 &uuml;ber ISDN</FONT>
</P>
</H1>
<HR>
<P ALIGN=CENTER>
Dieses Dokument enth&auml;lt Anweisungen aus dem HTML/3-Set sowie Konstrukte,
die nur einige Browser wie Netscape oder MS Explorer darstellen
k&ouml;nnen.
<P>
Leider setzen Sie keinen kompatiblen Browser ein. Trotzdem k&ouml;nnen Sie
sich die Seiten ansehen - wenn sie dann auch nicht so sch&ouml;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 &Auml;nderung: 16-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

56
leafsite/index_e.html Normal file
View File

@ -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>

108
leafsite/intro.html Normal file
View File

@ -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&auml;rz 1997 in eine neue Arbeit eintrete,
kann ich diese Seiten praktisch kaum mehr pflegen. Das f&uuml;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&auml;ge
nicht sofort reagieren.
<LI> Wer offene Fragen hat, m&ouml;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
&ouml;fteren f&uuml;r mehrere Monate unterwegs sein werde.
<LI> Bitte ruft mich nicht zuhause an - das ist aus den obengenannten
Gr&uuml;nden sinnlos. Und wenn ich zuhause bin, ben&ouml;tige ich
ein Minimum an Privatleben ;-)
</UL>
</TR>
</TABLE>
<P>
<HR>
<P>
<B><FONT SIZE=+3>D</FONT></B>iese
Anleitung erkl&auml;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&uuml;rfnisse anpassen.
<P>
F&uuml;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&szlig;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&uuml;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&ouml;chten. Gedruckte
Versionen der GNU General Public License sind erh&auml;ltlich bei: Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</P>
</I>
<HR>
<ADDRESS>
<A HREF="gnulis.html" TARGET=_top>Copyright &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 01-Mar-97 BeH
</ADDRESS>
</BODY>
</HTML>

112
leafsite/intro_e.html Normal file
View File

@ -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 &#169; (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>

BIN
leafsite/isdn.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
leafsite/leafsite.tar.gz Normal file

Binary file not shown.

170
leafsite/links.html Normal file
View File

@ -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&ouml;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&uuml;r itk ix1 micro)
<UL>
<LI><A HREF="http://stud.fbi.fh-darmstadt.de/~mohr/isdn/itk_only.tar.gz" TARGET=_top>Treiber f&uuml;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&ouml;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&uuml;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 &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 24-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

167
leafsite/links_e.html Normal file
View File

@ -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 &#169; (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>

45
leafsite/lit.html Normal file
View File

@ -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&uuml;r Netzwerker;
O'Reilly/International Thomson Verlag 1996; ISBN 3-930673-18-5
<LI> S. Hetze, D. Hohndel, M. M&uuml;ller, O. Kirch: Linux Anwenderhandbuch;
LunetIX Softfair 1995; ISBN 3-929764-04-0
</UL>
Die letztgenannten beiden B&uuml;cher sind absolut empfehlenswert!
<P>
<HR>
<ADDRESS>
<A HREF="gnulis_e.html" TARGET=Main>Copyright &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 21-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

BIN
leafsite/lit.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

47
leafsite/lit_e.html Normal file
View File

@ -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&uuml;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&uuml;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 &#169; (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>

BIN
leafsite/me.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

36
leafsite/plannd_e.html Normal file
View File

@ -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 &#169; (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>

39
leafsite/planned.html Normal file
View File

@ -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 &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 21-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

43
leafsite/please.html Normal file
View File

@ -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&auml;re ich sehr dankbar,
wenn ich Resonanz bek&auml;me: was k&ouml;nnte man verbessern, wo ist was
Falsches, wo k&ouml;nnte man etwas eleganter l&ouml;sen? Gibt es
Unn&ouml;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 &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 21-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

39
leafsite/please_e.html Normal file
View File

@ -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 &#169; (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>

BIN
leafsite/psst.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

107
leafsite/requir.html Normal file
View File

@ -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&ouml;glichst
kostensparend, aber trotzdem sehr leistungsf&auml;hig einrichten kann.
<P>
Mit einem einfachen Terminalprogramm kann man noch nicht viel anfangen -
gerade mal ein "telnet" ist m&ouml;glich, und schon die &Uuml;bertragung
von Bin&auml;rdaten ist nicht mehr so ganz einfach.
<P>
Also setzt man ein Protokoll ein, welches die tempor&auml;re Vollanbindung
des eigenen Rechners an das Internet erlaubt: PPP (Point-to-Point Protocol).
F&uuml;r die Dauer der Verbindung bekommt man sogar eine g&uuml;ltige
IP-Adresse zugeordnet. Das erlaubt nun beispielsweise auch FTP und den Einsatz
von WWW-Browsern.
<P>
Da Verbindungen ins Internet Telefonkosten verursachen, mu&szlig; man
m&ouml;glichst viel "offline" machen k&ouml;nnen - das hei&szlig;t: email
und News sollten einmal gesamt geladen werden und dann ohne stehende
Verbindung bearbeitet werden k&ouml;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&uuml;gen k&ouml;nnen, w&auml;re ich daf&uuml;r sehr dankbar!
<P>
<H3>Hardware</H3>
Sie ben&ouml;tigen eine ISDN-Karte oder ein Modem. Die hier beschriebene
Software f&uuml;r ISDN-Karten (isdn4linux) unterst&uuml;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&auml;t
die FAQ, die ebenfalls auf diesen Seiten zu haben ist (Leute, die sich das
Archiv geladen haben, m&uuml;ssen sie sich allerdings gesondert laden!).
<H3>Software</H3>
Man ben&ouml;tigt einen neuen PPP-D&auml;mon - dieser liegt aber jeder
Linux-Distribution bei. Wer eine ISDN-Karte einsetzen will, mu&szlig; sich
au&szlig;erdem eine Modememulation besorgen.
Aus praktischen Gr&uuml;nden wird hier das Paket &quot;ISDN4Linux&quot;
(&quot;i4l&quot;) 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 &uuml;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>&lt;eigene@email.adresse&gt;</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 &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 21-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

97
leafsite/requir_e.html Normal file
View File

@ -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>&lt;your_own@email.address&gt;</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 &#169; (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>

340
leafsite/scripts/COPYING Normal file
View File

@ -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.

218
leafsite/scripts/INSTALL Normal file
View File

@ -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

58
leafsite/scripts/base Normal file
View File

@ -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

749
leafsite/scripts/connect Normal file
View File

@ -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.

10
leafsite/scripts/ip-up Normal file
View File

@ -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

14
leafsite/scripts/options Normal file
View File

@ -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

View File

@ -0,0 +1,10 @@
# /etc/ppp/options for ipppd
useifip
-vjccomp
-ac
-pc
-detach
-bsdcomp
-vj
user hailer

View File

@ -0,0 +1,4 @@
# /etc/ppp/options
crtscts
user hailer

20
leafsite/scripts/prov-a1 Normal file
View File

@ -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"

14
leafsite/scripts/prov-d1 Normal file
View File

@ -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

View File

@ -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

198
leafsite/scripts/rc.connect Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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));
}
/*************************************************************************

921
leafsite/setup.html Normal file
View File

@ -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&uuml;hestens ab 1.3.97 (erst seit Kernel
1.3.69 ist der Einsatz von Kernel-internen ISDN-Treibern &uuml;berhaupt
m&ouml;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&auml;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&auml;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&szlig; keinerlei Patches mehr einspielen (das war nur beim Kernel 2.0.0
erforderlich - dort mu&szlig;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&szlig; 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&uuml;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 &lt;HiSax_1.5.patch_for_2.0
root:# _
</PRE>
Beim Compilieren des Kernels mu&szlig; 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&ouml;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&auml;ter der Kernel ohne Probleme l&auml;uft, kann man daran denken,
einige dieser Bausteine auch als Module statt als feste Kernelbestandteile zu
definieren.
<H4>Die Treibersoftware f&uuml;r ISDN-Karten</H4>
Wer lediglich ein Modem benutzen will (egal, ob analog oder ISDN), kann diesen
Abschnitt getrost &uuml;berspringen.
<P>
Wer eine ISDN-Karte einsetzt, mu&szlig; aber zus&auml;tzlich Arbeit
investieren und sich die <U>aktuelle</U> Version von Fritz Elferts
"isdn4kernel-Utilities" holen. Wer eine &auml;ltere Version von isdnctrl
besitzt, mu&szlig; updaten: der Befehl "isdnctrl pppbind" mu&szlig; laufen!
Das bekommt man heraus, indem man <TT>isdnctrl</TT> eingibt und sich die
m&ouml;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&szlig;. 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&auml;chst m&uuml;ssen die Programme erzeugt werden. Dazu begibt man sich
in's Verzeichnis <TT>/usr/src/isdn4k-utils-2.0</TT>, &uuml;bersetzt alles mit
"<TT>make</TT>", erzeugt anschlie&szlig;end die neuen
ISDN-Ger&auml;tedateien mit "<TT>make devices</TT>" und installiert zum
Schlu&szlig; die ausf&uuml;hrbaren Programme mit "<TT>make install</TT>" im
Verzeichnis /sbin sowie die man-Seiten dort, wo sie hingeh&ouml;ren.
<P>
Die Kartenparameter m&uuml;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 &uuml;bergeben.
<P>
<H2>Die Konfiguration</H2>
<I><B>Tip:</B><BR>
Jetzt kommen etliche gro&szlig;e Scriptdateien. Sie liegen diesem
Anleitungspaket bei - am Script ist nur die &Uuml;berschrift anzuklicken!</I>
<BR>
<I><B>Hinweis f&uuml;r treue Leser:</B><BR>
Die Scripten haben sich sehr stark ver&auml;ndert. Es gibt keinen Befehl
<TT>isdn</TT> mehr, alles wird jetzt &uuml;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&szlig;t <TT>connect</TT>
und regelt den Verbindungsauf- und -abbau sowie einiges mehr.
<P>
Eine Reihe weiterer Dateien m&uuml;ssen angelegt werden. So ist f&uuml;r
jeden Provider je eine Datei pro Einwahl-Telefonnummer herzustellen, in der
alle wichtigen Daten enthalten sind. Die PPP-D&auml;monen ben&ouml;tigen
&uuml;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&uuml;ssen sie zuallererst ein paar Sachen &auml;ndern:
<PRE>
root:# &lt;startup_path&gt;/i4l stop (oder "rc.isdn stop" oder wasimmer)
root:# _
</PRE>
(<TT>&lt;startup_path&gt;</TT> ist das Verzeichnis, in dem alle
System-Bootdateien enthalten sind).
<P>
Dann l&ouml;scht man (oder sichert sie woanders) einige alte Dateien:
<PRE>
root:# rm &lt;startup_path&gt;/i4l (falls eine neuere SuSE benutzt wird)
root:# rm &lt;startup_path&gt;/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&uuml;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&uuml;r jeden Provider und
jede Einwahlnummer jeweils eine Datei zu erstellen. Je nachdem, ob
die Einwahlnummer per Modem oder &uuml;ber isdn4linux angew&auml;hlt werden
soll, sehen die Dateien leicht unterschiedlich aus. Hier gek&uuml;rzte
Beispiele, man kann sich aber entsprechende Vorlagen herunterladen, in denen
auch weitere Erkl&auml;rungen enthalten sind. Sie k&ouml;nnen diese Dateien
benennen, wie Sie m&ouml;chten - aber benutzen Sie keines der
connect-Schl&uuml;sselw&ouml;rter (on, off, status, help, maxtries, route,
device, all).
<P>
<A HREF="scripts/prov-d1">Beispiel f&uuml;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&uuml;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&auml;hlen m&ouml;chten. <TT>OPTIONS_FILE</TT> ist die Optionendatei des
(i)pppd f&uuml;r diesen Remote. isdn4linux ben&ouml;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&auml;re &uuml;brigens nicht undankbar, wenn man mir funktionierende
Dateien
<A HREF="mailto:hailer@ilo.baynet.de?subject=i4l-config">mailen</A>
w&uuml;rde (eventuelle Privatdaten wie Pa&szlig;w&ouml;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 &lt;/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&ouml;rigen Befehle hier eintragen. Beispiele f&uuml;r den
Teles- und den HiSax-Treiber sind aufgef&uuml;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&auml;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&auml;gt
hier ein, nach wieviel Zeit ohne Daten&uuml;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&auml;chstes behandeln.
<H3>Vorg&auml;nge beim Booten</H3>
Linux kann nach zwei M&ouml;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&uuml;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&szlig; neu angelegt werden. Damit sie beim Booten als
Startdatei erkannt wird, mu&szlig; 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 # &lt;-- diese Zeile einf&uuml;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&szlig;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&szlig;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&ouml;rige
Runlevelverzeichnis <TT>./rc2.d</TT>, und man mu&szlig; 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&uuml;r Benutzer der S.u.S.E.-Distribution ab Version 4:</B>
Hier hei&szlig;t diese Datei <TT>i4l</TT>, ferner gibt es eventuell
eine Datei <TT>i4l_hardware</TT>. Diese Dateien m&uuml;ssen beseitigt werden,
entsprechend auch ihre Aufrufdateien in <TT>/sbin/init.d/rc2.d</TT>.
Damit werden selbstverst&auml;ndlich auch die Eintr&auml;ge
<TT>I4L_*</TT> in der
S.u.S.E.-Konfigurationsdatei <TT>/etc/rc.config</TT> belanglos.
<P>
Diese &Auml;nderungen sind leider notwendig, weil nur so ein
distributionsunabh&auml;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&auml;nke ich mich darauf, die Startpassage f&uuml;r isdn4linux
zu beschreiben - Modems ben&ouml;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&auml;nden mu&szlig; der Pfad PATH in diesem Script angepa&szlig;t
werden!
<P>
Vor Aufruf mu&szlig; rc.connect mit <TT>chmod 744 rc.connect</TT>
ausf&uuml;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&szlig;w&ouml;rter, die f&uuml;r den ersten definiert wurden. Auch die
letzten beiden Kommandos sind essentiell: nur wenn kein ipppd "up" ist,
kann man daneben problemlos einen herk&ouml;mmlichen pppd f&uuml;r Modems
starten.
<P>
Hier wird &uuml;brigens nicht der Standard-PPP-D&auml;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&ouml;rdert. Trotzdem gelten die man-Seite zum pppd sowie das "PPP-HOWTO".
<P>
<H3>Weitere wichtige Dateien</H3>
Damit PPP funktioniert, mu&szlig; 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&szlig;erdem kann man beiden D&auml;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&szlig; man die ersten drei Befehle auskommentieren. Der Rest wird praktisch
immer ben&ouml;tigt.
<P>
Nun zu den Extra-Optionsdateien. Sie sind erforderlich, weil
<UL>
<LI>der ipppd andere Optionen ben&ouml;tigt als der pppd,
<LI>die Optionen von Provider zu Provider variieren.
</UL>
<PRE>
<A HREF="scripts/options.pppd.prov-1"><B>Beispieldatei f&uuml;r den pppd</B></A>
# /etc/ppp/options
crtscts
user hailer
</PRE>
<PRE>
<A HREF="scripts/options.ipppd.prov-1"><B>Beispieldatei f&uuml;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&auml;hrend es
bei einer laufenden X-Sitzung schlicht und einfach h&auml;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>&lt;what_you_need&gt;</I>
nameserver <I>&lt;IP 1st nameserver&gt;</I>
nameserver <I>&lt;IP 2nd nameserver&gt;</I>
nameserver <I>&lt;IP 3rd nameserver&gt;</I>
</PRE>
Es k&ouml;nnen maximal drei Nameserver angegeben werden. Bei "search"
tr&auml;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&uuml;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&uuml;r Mail)
129.187.13.48 news.lrz-muenchen.de getnews # (Beispiel, f&uuml;r News)
</PRE>
<H3>Authentifizierung</H3>
Unter PPP mu&szlig; 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&szlig;w&ouml;rter und m&uuml;ssen unter allen Umst&auml;nden vor
unbefugtem Zugriff gesch&uuml;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>&lt;provider_login&gt;</I> <I>&lt;1. Provider&gt;</I> '<I>&lt;password&gt;</I>' -
<I>&lt;provider_login&gt;</I> <I>&lt;2. Provider&gt;</I> '<I>&lt;password&gt;</I>' -
</PRE>
Anmerkungen:
<UL>
<LI>Es empfiehlt sich, das Pa&szlig;wort in Hochkommas
einschlie&szlig;en. Dann kommt es nicht zu Fehlern, wenn ein "#" darin
vorkommt. (Vielen Dank an Michael Matschilles
<TT>&lt;mat@pascal.bmw.de&gt;</TT> f&uuml;r den Tip!)
<LI>In vielen F&auml;llen ist es einfacher, in der "server"-Spalte statt
dem Namen des Providers einfach ein Sternchen "*" anzugeben.
</UL>
<P>
Das Sch&uuml;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&szlig; man seinen Rechner auf den Login-Namen (ohne Domain!)
beim Provider umbenennen m&uuml;&szlig;te - was man aber durch die
Angabe von "<TT>name <I>&lt;provider_login&gt;</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&szlig;en aussehen mu&szlig;
(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>&lt;provider_login&gt;</I> <I>&lt;1. Provider&gt;</I> <I>&lt;password&gt;</I>
<I>&lt;1. Provider&gt;</I> <I>&lt;provider_login&gt;</I> ""
<I>&lt;provider_login&gt;</I> <I>&lt;2. Provider&gt;</I> <I>&lt;password&gt;</I>
<I>&lt;2. Provider&gt;</I> <I>&lt;provider_login&gt;</I> ""
</PRE>
Das Sch&uuml;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&uuml;gt folgende Zeile an (Anmerkung:
KEINE Leerzeichen, nur Tabulatoren benutzen!):
<PRE>
daemon.* /var/log/ppp-log
</PRE>
Damit wird alles, was der PPP-D&auml;mon an Informationen abgibt, in der
Datei /var/log/ppp-log abgelegt.
<P>
Damit hat man alle erforderlichen Dateien angepa&szlig;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&szlig; man es
abstellen. Das macht man, indem man die Default-Route zum Interface ippp0
l&ouml;scht - das Linux-System kennt dann den Weg nach drau&szlig;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&szlig; man erst w&auml;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&szlig;t, da&szlig; es auch mehrmal aufgerufen werden kann,
so da&szlig; die erste Anwendung (beispielsweise Post holen) die Verbindung
herstellt, und weitere Verbindungen nicht neue Leitungen aufmachen m&uuml;ssen.
Die letzte Anwendung r&auml;umt auf: es wird aufgelegt und die Defaultroute
wieder gel&ouml;scht. Aufruf: <TT>/sbin/connect on </TT> und <TT>/sbin/connect
off</TT>. Eine ausgekl&uuml;gelte Datei kann geladen werden (auf die
&Uuml;berschrift klicken!), hier nur eine ganz kurze Beispieldatei.
<P>
Das Script setzt man in das Verzeichnis /sbin und macht es ausf&uuml;hrbar
(der route-Befehl ist nur f&uuml;r "root" ausf&uuml;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&ouml;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 &lt;$IF_FILE
route add default $INTERFACE
;;
off)
kill -HUP `cat /var/lock/LCK..$DEVICE`
route del default
;;
esac
</PRE>
Unter Umst&auml;nden mu&szlig; der Pfad PATH in diesem Script angepa&szlig;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&uuml;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&auml;hlen. In diesem Falle gibt es n&auml;mlich
"H&auml;nger", weil es zu Timingproblemen nach dem Verbindungsaufbau kommt.
<LI>Wichtig ist auch, da&szlig; die Defaultroute erst <I>nach</I> dem
vollst&auml;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&auml;ter zum Abschlu&szlig; "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&auml;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&uuml;rlich
macht es dann keinen Sinn mehr, lauter Defaultroutes zu legen: sie darf nur
einmal existieren. Bei mehreren offenen Leitungen mu&szlig; 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&szlig; zum Remote passen! Das "route default" ist nicht wirklich
n&ouml;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>
&Auml;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&auml;ngt. Ohne diese Angabe gilt das Defaultger&auml;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&auml;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 &#169; (GPL V 2)</A> 1996
<A HREF="http://www.chemie.uni-muenchen.de/ac/boehm/beh.html">Bernhard Hailer</A><BR>
Letzte &Auml;nderung: 24-Feb-97 BeH
</ADDRESS>
</BODY>
</HTML>

BIN
leafsite/setup.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

874
leafsite/setup_e.html Normal file
View File

@ -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 &lt;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&uuml;ssen angelegt werden. So ist f&uuml;r
jeden Provider je eine Datei pro Einwahl-Telefonnummer herzustellen, in der
alle wichtigen Daten enthalten sind. Die PPP-D&auml;monen ben&ouml;tigen
&uuml;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:# &lt;startup_path&gt;/i4l stop (or "rc.isdn stop" or whatever)
root:# _
</PRE>
(<TT>&lt;startup_path&gt;</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 &lt;startup_path&gt;/i4l (if you use a newer SuSE distribution)
root:# rm &lt;startup_path&gt;/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&uuml;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&uuml;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 &lt;/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 # &lt;-- 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>&lt;what_you_need&gt;</I>
nameserver <I>&lt;IP 1st nameserver&gt;</I>
nameserver <I>&lt;IP 2nd nameserver&gt;</I>
nameserver <I>&lt;IP 3rd nameserver&gt;</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>&lt;provider_login&gt;</I> <I>&lt;1st provider&gt;</I> '<I>&lt;password&gt;</I>' -
<I>&lt;provider_login&gt;</I> <I>&lt;2nd provider&gt;</I> '<I>&lt;password&gt;</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>&lt;mat@pascal.bmw.de&gt;</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>&lt;provider_login&gt;</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>&lt;provider_login&gt;</I> <I>&lt;1st provider&gt;</I> <I>&lt;password&gt;</I>
<I>&lt;1st provider&gt;</I> <I>&lt;provider_login&gt;</I> ""
<I>&lt;provider_login&gt;</I> <I>&lt;2nd provider&gt;</I> <I>&lt;password&gt;</I>
<I>&lt;2nd provider&gt;</I> <I>&lt;provider_login&gt;</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 &lt;$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>

BIN
leafsite/virtbeer.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
leafsite/vortrag.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB