diff --git a/de_DE.ISO8859-1/books/faq/book.sgml b/de_DE.ISO8859-1/books/faq/book.sgml
index a0c268e328..2b39ce650a 100644
--- a/de_DE.ISO8859-1/books/faq/book.sgml
+++ b/de_DE.ISO8859-1/books/faq/book.sgml
@@ -1,14911 +1,14907 @@
%man;
%freebsd;
%authors;
%teams;
%translators;
%bookinfo;
%mailing-lists;
]>
Häufig gestellte Fragen zu FreeBSD 2.X, 3.X und
4.XFrequently Asked Questions für FreeBSD 2.X, 3.X und
4.XThe FreeBSD German Documentation
ProjectDeutsche Übersetzung von Robert S. F.
Drehmel, Dirk Gouders und Udo Erdelhoff
- $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.420 2003/04/10 18:53:15 mheinen Exp $
+ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.421 2003/04/12 23:19:57 mheinen Exp $199519961997199819992000200120022003The FreeBSD Documentation Project2000200120022003The FreeBSD German Documentation Project
&bookinfo.legalnotice;
Dies ist die FAQ für die FreeBSD-Versionen 2.X, 3.X
und 4.X. Alle Einträge sollten für FreeBSD ab
Version 2.0.5 relevant sein, andernfalls wird darauf explizit
hingewiesen. Falls Sie daran
interessiert sein sollten, an diesem Projekt mitzuhelfen,
senden Sie eine Mail an die Mailingliste &a.de.translators;. Die
aktuelle Version dieses Dokuments ist ständig auf dem
FreeBSD
World-Wide-Web-Server verfügbar. Es kann auch
per HTTP als eine große HTML-Datei heruntergeladen werden oder
als Textdatei, im PostScript-, PDF- und anderen Formaten vom
FreeBSD
FTP-Server. Sie können die FAQ auch
durchsuchen.EinleitungWillkommen zur FreeBSD 2.X-4.X FAQ!Wie auch bei den Usenet FAQs üblich, wird mit diesem
Dokument beabsichtigt, die am häufigsten gestellten Fragen
bezüglich des Betriebssystems FreeBSD zu erfassen und sie
natürlich auch zu beantworten. Obwohl FAQs
ursprünglich lediglich dazu dienen sollten, die
Netzbelastung zu reduzieren und das ständige Wiederholen
derselben Fragen zu vermeiden, haben sie sich als wertvolle
Informationsquellen etabliert.Wir haben uns die größte Mühe gegeben, diese
FAQ so lehrreich wie möglich zu gestalten; falls Sie
irgendwelche Vorschläge haben, wie sie verbessert werden
kann, senden Sie diese bitte an den &a.de.translators;.Was ist FreeBSD?FreeBSD ist, kurz gesagt, ein UN*X-ähnliches
Betriebssystem für die Plattformen i386, IA-64, PC-98,
Alpha/AXP und UltraSPARC, das auf der
4.4BSD-Lite-Release
der University of California at Berkeley (UCB) basiert;
außerdem flossen einige Erweiterungen aus der
4.4BSD-Lite2-Release mit ein. Es basiert
außerdem indirekt auf der von William Jolitz unter
dem Namen 386BSD herausgebrachten
Portierung der Net/2-Release der UCB auf
die i386-Plattform - allerdings ist nur wenig vom
386BSD-Code übriggeblieben. Eine umfassendere
Beschreibung darüber, was FreeBSD ist und wie Sie es
für Ihre Zwecke verwenden können, finden Sie auf
der FreeBSD home
page.Unternehmen, Internet Service Provider, Forscher,
Computerfachleute, Studenten und Privatnutzer auf der
ganzen Welt benutzen FreeBSD für die Arbeit, die
Ausbildung oder zur Freizeitgestaltung. Sie finden einige
von ihnen in der FreeBSD
Gallerie.Ausführlichere Informationen zu FreeBSD, finden
Sie im FreeBSD
Handbuch.Welches ist das Ziel des Projektes FreeBSD?Die Ziel von FreeBSD ist es, Software zur Nutzung
für beliebige Zwecke, bedingungslos zur
Verfügung zu stellen. Viele von uns haben
erheblich zur Erstellung des Codes (und zum Projekt)
beigetragen und hätten jetzt oder in Zukunft
sicherlich nichts gegen einen geringen finanziellen
Ausgleich einzuwenden, aber wir beabsichtigen definitiv
nicht, darauf zu bestehen. Wir sind der Meinung,
daß unsere Mission zuerst und
vorderst darin besteht, allen und jedem Kommenden Code
für welchen Zweck auch immer zur Verfügung zu
stellen, damit der Code möglichst weit eingesetzt
wird und den größtmöglichen Nutzen
liefert. Das ist, so glauben wir, eines der
fundamentalsten Ziele von freier Software und eines, das
wir enthusiastisch unterstützen.Der Code in unserem Quellbaum, der der GNU General
Public License (GPL) oder der GNU
Library General Public License (LGPL) unterliegt,
ist mit zusätzlichen, geringfügigen Bedingungen
verknüpft, jedoch handelt es sich dabei lediglich um
erzwungene Bereitstellung statt des sonst üblichen
Gegenteils. Auf Grund der zusätzlichen
Komplexität, die durch den kommerziellen Einsatz von
GPL Software entstehen kann, bemühen wir uns jedoch,
solche Software, wo möglich, durch solche, die der
etwas lockereren FreeBSD
Lizenz unterliegt, zu ersetzen.Beinhaltet das FreeBSD-Copyright irgendwelche
Einschränkungen?Ja. Diese Einschränkungen regeln aber nicht, wie
Sie mit dem Sourcecode umgehen, sondern betreffen nur den
Umgang mit dem FreeBSD Project an sich. Wenn Sie sich
ernsthaft damit auseinandersetzen wollen, lesen Sie
einfach die
FreeBSD-Lizenz. Wenn Sie einfach nur neugierig
sind, sollte diese Zusammenfassung ausreichen:Behaupten Sie nicht, Sie hätten es
geschrieben.Verklagen Sie uns nicht, wenn irgend etwas nicht
funktioniert.Kann FreeBSD mein bisher verwendetes Betriebssystem
ersetzen?In den meisten Fällen lautet die Antwort ja.
Allerdings ist diese Frage nicht ganz so einfach, wie sie
scheint.Die meisten Anwender benutzen kein Betriebssystem,
sondern Anwendungen. Die Anwendungen sind es, die das
Betriebssystem benutzen. FreeBSD ist dazu gedacht, eine
stabile und vielfältige Umgebung für Anwendungen
bereitzustellen. Es unterstützt viele
unterschiedliche Web-Browser, Büroanwendungen,
E-Mail-Programme, Grafik-Programme, Entwicklungsumgebungen,
Netzwerk-Server, und so ziemlich alles andere, was Sie sich
wünschen können. Die meisten dieser Anwendungen
sind in der Ports
Kollektion verfügbar.Wenn Sie Anwendung benutzen müssen, die es nur
für ein bestimmtes Betriebssystem gibt, dann kommen
Sie an diesem Betriebssystem nicht vorbei. Allerdings
stehen die Chancen nicht schlecht, daß es eine
vergleichbare Anwendung für FreeBSD gibt. Wenn Sie
einen verläßlichen Server für ihr
Büro oder das Internet brauchen, oder eine stabilen
Arbeitsplatz, oder einfach nur die Fähigkeit, ihre
Arbeit ohne dauernde Abstürze machen zu können,
dann kann FreeBSD genau das sein. Viele Anwender auf der
ganzen Welt, vom Anfänger bis zum erfahrenen
Administrator, benutzen an Ihren Arbeitsplätzen
ausschließlich FreeBSD.Wenn Sie von einem anderen &unix; System zu FreeBSD
wechseln, dürfte Ihnen vieles bekannt vorkommen.
Wenn Ihr Hintergrund ein Grafik-orientiertes
Betriebssystem wie Windows oder ein älteres Mac OS
ist, werden Sie zusätzliche Zeit investieren
müssen, um den &unix; Stil zu verstehen. Dieser FAQ
und das FreeBSD
Handbuch sind die besten Startpunkte.Warum heißt es FreeBSD?Es darf kostenlos genutzt werden - sogar von
kommerziellen Benutzern.Der komplette Quellcode für das
Betriebssystem ist frei verfügbar und die
Benutzung, Verbreitung und Einbindung in andere
(kommerzielle und nicht-kommerzielle) Arbeiten sind
mit den geringstmöglichen Einschränkungen
versehen worden.Jedem ist es freigestellt, Code für
Verbesserungen oder die Behebung von Fehlern
einzusenden und ihn zum Quellbaum hinzufügen zu
lassen (dies ist natürlich Gegenstand von ein
oder zwei offensichtlichen Klauseln).Es wird darauf hingewiesen, daß das englische
Wort free hier in den Bedeutungen
umsonst und Sie können tun, was
immer Sie möchten genutzt wird. Abgesehen
von ein oder zwei Dingen, die Sie mit dem FreeBSD-Code
nicht tun können (z.B. vorgeben,
ihn geschrieben zu haben), können Sie damit
tatsächlich tun, was auch immer Sie
möchten.Wie unterschieden sich FreeBSD, NetBSD, OpenBSD
und andere Open-Source BSD-Systeme?James Howards Artikel
The
BSD Family Tree, der in
DaemonNews
erschienen ist, beschreibt sehr gut die Geschichte und die
Unterschiede der BSD-Varianten.Welches ist die aktuelle FreeBSD-Version?Momentan gibt es zwei Entwicklungszweige auf denen
FreeBSD-Releases erstellt werden. Die 4.X-Releases werden
auf dem -STABLE-Zweig erstellt und die
5.X-RELEASES werden auf dem -CURRENT-Zweig
erstellt.Version &rel.current;
ist das aktuelle Release aus dem
-CURRENT-Zweig und ist im
&rel.current.date; erschienen.
Version &rel2.current;
ist das aktuelle Release aus dem
-STABLE-Zweig und ist im
&rel2.current.date; erschienen.Kurz erläutert, -STABLE ist
für ISPs und andere Benutzer gedacht, die mehr Wert
auf Stabilität und eine niedrige
Änderungsfrequenz als auf die neuesten und
möglicherweise unstabilen Features im
aktuellen -CURRENT Snapshot legen.
Releases können aus jedem Zweig entstehen, Sie
sollten -CURRENT allerdings nur dann
benutzen, wenn Sie auf ein erhöhtes Fehlverhalten
im Vergleich zu -STABLE auch
vorbereitet sind.Releases entstehen nur alle paar Monate. Viele
Leute halten ihre Systeme aktueller (lesen Sie die Fragen
zu FreeBSD-CURRENT und
FreeBSD-STABLE), aber das
erfordert ein erhöhtes Engagement, da die Sourcen
sich ständig verändern.Weitere Informationen über Releases entnehmen
Sie der Seite Release
Engineering des FreeBSD Webauftritts.Was ist FreeBSD-CURRENT?
FreeBSD-CURRENT ist die Entwicklungsversion des
Betriebssystems, die zu gegebener Zeit zu 5.0-RELEASE
werden wird. Als solche ist sie lediglich für
Entwickler, die am System mitarbeiten und für
unentwegte Bastler von Interesse. Details zum Betrieb von
-CURRENT finden Sie im
entsprechenden Abschnitt des Handbuchs.Falls Sie nicht mit dem Betriebssystem vertraut sind
oder nicht in der Lage sein sollten, den Unterschied
zwischen einen echten und einem temporären Problem zu
erkennen, sollten Sie FreeBSD-CURRENT nicht verwenden.
Dieser Zweig entwickelt sich manchmal sehr schnell weiter
und kann gelegentlich für mehrere Tage hintereinander
nicht installierbar sein. Von Personen, die
FreeBSD-CURRENT verwenden, wird erwartet, daß Sie
dazu in der Lage sind, Probleme zu analysieren und nur
dann von ihnen berichten, wenn es sich um Fehler und nicht
um kurzzeitige Störungen handelt.
Fragen wie make world produziert Fehlermeldungen
bezüglich Gruppen werden in der -CURRENT
Mailingliste manchmal nicht beachtet.Jeden Tag wird der aktuelle Entwicklungsstand in den
Zweigen -CURRENT und -STABLE in einer Snapshot
Release festgehalten. Mittlerweile werden sogar CDROM
Distributionen dieser gelegentlichen Snapshots zur
Verfügung gestellt. Die Ziele dieser Snapshot
Releases sind:Die aktuelle Version der Installationssoftware zu
testen.Personen, die -CURRENT oder -STABLE benutzen
möchten, aber nicht über die nötige
Zeit oder Bandbreite verfügen, um
tagesaktuell zu bleiben, soll eine bequeme
Möglichkeit geboten werden, es auf ihr System zu
bringen.Die Erhaltung von Referenzpunkten des fraglichen
Codes, für den Fall, daß wir später
einmal ernsthaften Schaden anrichten sollten (obwohl
CVS verhindern sollte, daß solche Situationen
entstehen :)Sicherzustellen, daß alle zu testende, neue
Merkmale und Fehlerbehebungen zu möglichst vielen
potentiellen Testern gelangen.Von keinem -CURRENT Snapshot kann
Produktionsqualität für beliebige
Zwecke erwartet werden. Wenn Sie eine stabile und
ausgetestete Version benötigen, sollten Sie eine
vollständige Release oder einen -STABLE Snapshot
verwenden.
- Snapshot Releases von 5.0-CURRENT sind unter
- ftp://current.FreeBSD.org/pub/FreeBSD/
+ Snapshot Releases von 5.0-CURRENT sind unter
+
verfügbar; wenn Sie einen Snapshot von 4-STABLE
- erhalten möchten, lautet die Adresse releng4.FreeBSD.org.
+ erhalten möchten, lautet die Adresse
+ .
Zur Zeit (Mai 2000) werden keine Snapshots von 3-STABLE
erstellt.In der Regel wird jeden Tag ein Snapshot jedes zur
Zeit aktiven Zweiges erstellt.Was ist das Konzept von FreeBSD-STABLE?Zur Zeit, als FreeBSD 2.0.5 herausgegeben wurde, haben
wir entschieden, die Entwicklung von FreeBSD zweizuteilen.
Ein Zweig wurde -STABLE
der andere -CURRENT
genannt. FreeBSD-STABLE ist für Anbieter von
Internetdiensten und andere kommerzielle Unternehmen
gedacht, für die plötzliche Veränderungen
und experimentelle Features unerwünscht sind.
In diesem Zweige werden nur ausgetestete
Fehlerbehebungen und kleine, inkrementelle Änderungen
aufgenommen. FreeBSD-CURRENT dagegen stellt eine
ununterbrochene Linie zum
5.0-RELEASE (und darüber hinaus) dar, seit 2.0
herausgegeben worden ist. Die folgende ASCII-Zeichnung
soll verdeutlichen, wie das aussieht:
2.0
|
|
| [2.1-STABLE]
*ZWEIG* 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [2.1-STABLE endet]
| (März 1997)
|
|
| [2.2-STABLE]
*ZWEIG* 2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [Ende]
| (März 1997) (Okt 97) (Apr 98) (Jul 98) (Dez 98)
|
|
3.0-SNAPs (begonnen im 1. Quartal 1997)
|
|
3.0-RELEASE (Okt 1998)
|
| [3.0-STABLE]
*ZWEIG* 3.1-RELEASE (Feb 1999) -> 3.2 -> 3.3 -> 3.4 -> 3.5 -> 3.5.1
| (Mai 1999) (Sep 1999) (Dec 1999) (Jun 2000) (Juli 2000)
|
| [4.0-STABLE]
*ZWEIG* 4.0 (März 2000) -> 4.1 -> 4.1.1 -> 4.2 -> 4.3 -> 4.4 -> ... zukünftige 4.X Releases ...
| (Jul 2000) (Sep 2000) (Nov 2000) (Apr 2001)
|
|
\|/
+
[5.0-CURRENT wird fortgesetzt]
Der Zweig 2.2-STABLE wurde mit der
Veröffentlichung der Version 2.2.8 eingestellt. Der
Zweig 3-STABLE endete mit Version 3.5.1, der letzten
3.X-Version. Änderungen in diesen Zweigen
beschränken sich im allgemeinen auf die Korrektur von
Sicherheits-relevanten Fehlern.4-STABLE ist der Zweig, auf den sich die Entwicklung
von -STABLE zur Zeit konzentriert. Die aktuelle Version
ist das im &rel.current.date; erschienene
&rel.current;-RELEASE.Der -CURRENT-Zweig entwickelt sich langsam in Richtung
5.0 und darüber hinaus weiter. Weitere Informationen
über diesen Zweig finden Sie bei Was ist FreeBSD-CURRENT?.Wann werden FreeBSD-Versionen erstellt?Im Schnitt gibt das &a.re; alle vier Monate eine neue
FreeBSD-Version frei. Das Erscheinungsdatum
einer neuer Version wird frühzeitig bekanntgegeben,
damit die am System arbeitenden Personen wissen, bis wann
ihre Projekte abgeschlossen und ausgetestet sein
müssen. Vor jedem Release gibt es eine Testperiode um
sicherzustellen, daß die neu hinzugefügten Features
nicht die Stabilität des Releases beeinträchtigen.
Viele Benutzer halten dies für einen
großen Vorteil von FreeBSD, obwohl es manchmal
frustrierend sein kann, so lange auf die
Verfügbarkeit der aktuellsten Leckerbissen zu
warten.Weitere Informationen über die Entwicklung von
Releases, sowie eine Übersicht über kommende Releases,
erhlaten Sie auf den release
engineering Seiten der FreeBSD Webseite.Für diejenigen, die ein wenig mehr Spannung
brauchen (oder möchten), werden täglich
Snapshots herausgegeben, wie oben beschrieben.Wer ist für FreeBSD verantwortlich?Schlüsseldiskussionen, die das FreeBSD-Projekt
betreffen, wie z.B. über die generelle Ausrichtung
des Projekts und darüber, wem es erlaubt sein soll,
Code zum Quellbaum hinzuzufügen, werden innerhalb
eines Core
Team von etwa 9 Personen geführt. Es gibt
ein weitaus größeres Team von über 200
Committers,
die dazu autorisiert sind, Änderungen am FreeBSD
Quellbaum durchzuführen.Jedoch werden die meisten nicht-trivialen
Änderungen zuvor in den Mailinglisten diskutiert und es
bestehen keinerlei Einschränkungen darüber, wer
sich an diesen Diskussionen beteiligen darf.Wie kann ich FreeBSD beziehen?Jede bedeutende Ausgabe von FreeBSD ist per
Anonymous-FTP vom FreeBSD FTP
Server erhältlich:Die aktuelle Ausgabe von 3.X-STABLE,
3.5.1-RELEASE, finden Sie im Verzeichnis
3.5.1-RELEASE.Das aktuelle Release von 5.X, &rel.current;-RELEASE
finden Sie im Verzeichnis &rel.current;-RELEASE directory.Das aktuelle Release von 4-STABLE,
&rel2.current;-RELEASE finden Sie im Verzeichnis &rel2.current;-RELEASE directory.4.X
Snapshots werden in der Regel
täglich erstellt.Täglich werden 5.0
Snapshot Ausgaben vom -CURRENT-Zweig erstellt, die
allerdings nur den Testern und Entwicklern an
vorderster Front dienen.Wo und wie Sie FreeBSD auf CD, DVD, und anderen Medien
beziehen können, erfahren Sie im Handbuch.Wie wird ein FreeBSD-Spiegel eingerichtet?Der Artikel Mirroring
FreeBSD erklärt, wie ein FreeBSD-Spiegel
eingerichtet wird.Wie greife ich auf die Datenbank mit Problemberichten
zu?Die Datenbank mit Problemberichten (PR,
problem report)
Änderungsanfragen von Benutzern kann
über die Web-basierte PR- Abfrage-Schnittstelle
abgefragt werden. Mit dem Programm &man.send-pr.1;
können Sie Problemberichte oder Änderungsanträge
per E-Mail einsenden.Über die Web-Schnittstelle können momentan
keine Problemberichte eingereicht werden. Wir haben die
Schnittstelle wegen wiederholtem Mißbrauch
deaktiviert.Bevor Sie einen Fehler melden, sollten Sie sich zuerst
den Artikel Writing
FreeBSD Problem Reports durchlesen, damit Sie
wissen, wie Sie eine gute Fehlermeldung verfassen.Was muß ich tun, um einen FreeBSD-Web-Mirror
betreiben zu können?Es gibt mehrere Möglichkeiten, die Web-Seiten zu
spiegeln.Sie können die formatierten Dateien von einem
FreeBSD CVSUP-Server mit
net/cvsup beziehen.
Die Datei
/usr/share/examples/cvsup/www-supfile
enthält ein Beispiel für die Konfiguration,
die für einen Web-Mirror notwendig ist.Sie können sich die Quelldateien für die
Web-Seiten von jeden FreeBSD FTP-Server mit einem
FTP-Spiegelwerkzeug Ihrer Wahl herunterladen.
Allerdings müssen Sie diese Quelldateien erst
übersetzen, bevor Sie sie verwenden können.
- Starten Sie einfach bei ftp://ftp.de.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www.
+ Starten Sie einfach bei .
Gibt es weitere Informationsquellen?Sie finden eine umfassende Liste unter Documentation
auf der FreeBSD-Webseite.Documentation and SupportGibt es gute Bücher über FreeBSD?Im Zuge des FreeBSD Projekts sind diverse gute
Dokumente entstanden, die unter der
- folgenden URL abgerufen werden können: http://www.FreeBSD.org/docs.html.
+ folgenden URL abgerufen werden können:
+ .
Die Dokumente stehen auch als Pakete, die Sie leicht
installieren können, zur Verfügung. In den
nächsten Abschnitten erfahren Sie mehr über diese
Pakete.Zusätzlich enthalten die Bibliographien am Ende
dieser FAQ und im Handbuch Verweise auf weitere empfohlene
Bücher.Ist die Dokumentation auch in anderen Formaten
verfügbar? Zum Beispiel als einfacher Text (ASCII)
oder als PostScript?Ja. Werfen Sie einen Blick auf das Verzeichnis /pub/FreeBSD/doc/
auf dem FreeBSD FTP-Server. Dort finden sie Dokumentation
in vielen verschiedenen Format.Die Dokumentation wurde nach vielen verschiedenen
Kriterien sortiert. Die Kriterien sind:Der Name des Dokumentes, z.B.
FAQ oder
Handbuch.Die Sprache und der Zeichensatz, die in dem
Dokument verwendet werden. Diese entsprechen den
Anpassungen, die Sie auf Ihrem FreeBSD-System im
Verzeichnis /usr/share/locale
finden. Zur Zeit werden die folgenden Sprachen und
Zeichensätze benutzt:NameBedeutungen_US.ISO8859-1US Englisches_ES.ISO8859-1Spanischfr_FR.ISO8859-1Französischde_DE.ISO8859-1Deutschja_JP.eucJPJapanisch (EUC kodiert)ru_RU.KOI8-RRussisch (KOI8-R kodiert)zh_TW.Big5Chinesisch (Big5 kodiert)Einige Dokumente sind nicht in allen Sprachen
verfügbar.Das Format des Dokumentes. Die Dokumentation wird
in verschiedenen Formaten erzeugt, von denen jedes seine
eigenen Vor- und Nachteile hat. Einige Formate lassen sich
gut an einem Bildschirm lesen, während andere Formate
dafür gedacht sind, ein ansprechendes Druckbild zu
erzeugen. Das die Dokumentation in verschiedenen Formaten
verfügbar ist, stellt sicher, daß unsere Leser
die für sie relevanten Teile unabhängig vom
Ausgabemedium (Bildschirm oder Papier) lesen können.
Zur Zeit werden die folgenden Formate
unterstützt:FormatErklärunghtml-splitViele kleine HTML-Dateien, die sich
gegenseitig referenzieren.htmlEine große HTML-Datei, die das
komplette Dokument enthält.pdbPalm Pilot Datenbank für das
Programm iSilo.pdfAdobe's Portable Document FormatpsPostScriptrtfMicrosoft's Rich Text Format
Die Seitennummern werden nicht
automatisch aktualisiert, wenn Sie diese
Datei in Word laden. Wenn Sie das
Dokument geladen haben, müssen Sie Sie
CtrlA,
CtrlEnd,
F9 eingeben, um die
Seitennummern aktualisieren zu
lassen.txtGanz normaler TextDas zur Komprimierung verwendete Programm. Zur
Zeit werden drei verschiedene Methoden
benutzt.Wenn die Dokumentation im Format
html-split vorliegt, werden die
Dateien mit &man.tar.1; zusammengefaßt. Die
so entstandene .tar Datei
wird dann mit einer der unten genannten Methoden
komprimiert.Bei allen anderen Formaten existiert nur eine
Datei mit dem Namen
book.format
(z.B., book.pdb,
book.html, und so
weiter).Diese Dateien werden mit drei verschiedenen
Programmen komprimiert.ProgrammBeschreibungzipDas Zip Format. Wenn Sie diese
Dateien unter FreeBSD auspacken wollen,
müssen sie vorher den Port
archivers/unzip
installieren.gzDas GNU Zip format. Sie können
diese Dateien mit &man.gunzip.1;
entpacken, dieses Programm ist Bestandteil
von FreeBSD.bz2Das BZip2 Format. Es wird selten
benutzt, erzeugt aber normalerweise
kleinere Archive. Sie müssen den
Port archivers/bzip2
installieren, um diese Dateien entpacken
zu können.Ein Beispiel: Die mit BZip2 gepackte Version
des Handbuchs im PostScript-Format hat den Namen
book.ps.bz2 und ist im
Verzeichnis handbook/ zu
finden.Nachdem Sie das Format und das Kompressionsverfahren
ausgewählt haben, müssen Sie sich entscheiden,
ob Sie das Dokument in Form eines FreeBSD
Package herunterladen
möchten.Der Vorteil dieser Variante, daß Sie die
Dokumentation mit normalen Tools wie &man.pkg.add.1; und
&man.pkg.delete.1; verwalten können.Wenn Sie das Package herunterladen und installieren
wollen, müssen Sie den richtigen Dateinamen kennen.
Die Dateien liegen in einem separaten Verzeichnis mit dem
Namen packages und werden nach dem Schema
Dokument-Name.Sprache.Zeichensatz.Format.tgz
benannt.Ein Beispiel: Die englische Version der FAQ im
PDF-Format ist in dem Package mit dem Namen
faq.en_US.ISO8859-1.pdf.tgz
enthalten.Sie können daher das englische PDF FAQ Package
mit den folgenden Befehlen installieren.&prompt.root; pkg_add ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgzDanach können Sie mit &man.pkg.info.1; nachsehen,
wo die Datei installiert wurde.&prompt.root; pkg_info -f faq.en_US.ISO8859-1.pdf
Information for faq.en_US.ISO8859-1.pdf:
Packing list:
Package name: faq.en_US.ISO8859-1.pdf
CWD to /usr/share/doc/en_US.ISO8859-1/books/faq
File: book.pdf
CWD to .
File: +COMMENT (ignored)
File: +DESC (ignored)Wie Sie sehen können, wurde die Datei
book.pdf im Verzeichnis
/usr/share/doc/en_US.ISO8859-1/books/faq
installiert.Wenn sie die Packages nicht benutzen, müssen Sie
die komprimierten selber herunterladen, auspacken und die
richtigen Stellen kopieren.Wenn Sie zum Beispiel die mit &man.gzip.1; gepackte
split HTMLVersion der englischen FAQ
herunterladen und installieren wollten, bräuchten
Sie die Datei
doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz.
Um diese Datei herunterzuladen und auszupacken, wären
die folgenden Schritte notwendig.&prompt.root; fetch ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz
&prompt.root; gzip -d book.html-split.tar.gz
&prompt.root; tar xvf book.html-split.tarDanach haben Sie eine Sammlung vieler kleiner
.html Datei. Die wichtigste Datei
hat Namen index.html und enthält
das Inhaltsverzeichnis, eine Einleitung und Verweise auf
die anderen Teile des Dokumentes. Falls notwendig,
können Sie die diversen Dateien jetzt an ihren
endgültigen Bestimmungsort verschieben oder
kopieren.Woher bekomme ich Informationen zu den FreeBSD
Mailinglisten?Vollständige Informationen finden Sie im Handbucheintrag
über Mailinglisten.Wo finde ich die FreeBSD-spezifischen Informationen
zum Jahr-2000-Problem?Vollständige Informationen finden Sie auf der
FreeBSD
Jahr-2000-Seite.Welche Newsgruppen existieren zu FreeBSD?Sie finden alle Informationen hierzu im Handbucheintrag zu
Newsgruppen.Gibt es FreeBSD IRC (Internet Relay Chat)
Kanäle?Ja, die meisten großen IRC Netze bieten einen
FreeBSD Chat-Channel:Channel FreeBSD im EFNet ist
ein FreeBSD-Forum, aber gehen Sie nicht dorthin, um
technische Unterstützung zu suchen, oder, um zu
versuchen, die Leute dort dazu zu bringen, Ihnen dabei
zu helfen, das mühselige Lesen von Manuals zu
ersparen oder eigene Nachforschungen zu betreiben. Es
ist in erster Linie ein Chat-Channel und die Themen
dort umfassen Sex, Sport oder Kernwaffen ebensogut,
wie FreeBSD. Sie wurden gewarnt! Der Channel ist auf
dem Server irc.chat.org
verfügbar.Der Channel #FreeBSDhelp im
EFNet hat
sich dagegen auf die Unterstützung der Benutzer
von FreeBSD spezialisiert. In diesem Channel sind
Fragen deutlich willkommener als im Channel
#FreeBSD.Der Channel #FreeBSD im DALNET ist in den
USA unter irc.dal.net und in Europa
unter irc.eu.dal.net
verfügbar.Der Channel #FreeBSD im UNDERNET ist in
den USA unter us.undernet.org und in
Europa unter eu.undernet.org
verfügbar. Es handelt sich hierbei um einen
Hilfe-Channel, man wird Sie daher auf Dokumente
verweisen, die Sie selbst lesen müssen.Der Channel #FreeBSD im HybNet. Dieser
Channel ist ein Hilfe-Channel.
Eine Liste der möglichen Server finden Sie auf
der Webseite von
HybNet.Alle diese Kanäle unterscheiden sich voneinander
und sind nicht miteinander verbunden. Ebenso
unterscheiden sich Ihre Chat-Stile, weshalb es sein kann,
daß Sie zunächst alle Kanäle ausprobieren
müssen, um den zu Ihrem Chat-Stil passenden zu
finden. Hier gilt, was für
jeden IRC-Verkehr gilt: falls sie
sich leicht angegriffen fühlen oder nicht mit vielen
jungen (und einigen älteren) Leuten, verbunden mit
dem nutzlosen Gezanke umgehen können, dann ziehen Sie
es gar nicht erst in Erwägung.Gibt es Firmen, die Training und Support für
FreeBSD anbieten?DaemonNews bietet Training und Support für
FreeBSD an. Weitergehende Informationen finden Sie in der
BSD
Mall.FreeBSD Services Ltd. bieten kommerzielle Unterstützung
für FreeBSD in Großbritannien an. Sie verkaufen
übrigens auch eine FreeBSD-DVD. Weitere Informationen
erhalten Sie auf der
Webseite von
FreeBSD Services Ltd..Die FreeBSD Mall bietet ebenfalls professionellen
FreeBSD support an. Weitergehende Informationen finden
Sie auf ihrer Webseite.Wenn Ihre Firma oder Organisation ebenfalls Training
und Support anbietet und hier genannt werden möchte,
wenden Sie sich bitte an das FreeBSD Project.NikClaytonnik@FreeBSD.orgInstallationWelche Dateien muß ich herunterladen, um FreeBSD
zu bekommen?Vor dem 3.1-RELEASE benötigte man nur ein
Floppy-Image, floppies/boot.flp, um
FreeBSD zu installieren. Seit dem 3.1-RELEASE haben wir
jedoch im initialen System Unterstützung für
eine Vielfalt von Hardware hinzugefügt, und
dafür wird mehr Platz benötigt. Aus diesem
Grund braucht man ab 3.X zwei Floppy-Images:
floppies/kernel.flp und
floppies/mfsroot.flp. Diese Images
müssen mit Hilfe von Werkzeugen wie
fdimage oder &man.dd.1; auf Disketten
kopiert werden.Falls Sie selbst die einzelnen Distributionen
herunterladen müssen (um z.B. von einem
DOS-Dateisystem aus zu installieren), empfehlen wir, sich
die folgenden Distributionen zu besorgen:binmanpagescompat*docsrc/ssys.*Vollständige Instruktionen für dieses
Vorgehen und ein wenig mehr zur Installation generell
finden Sie im Handbucheintrag zur
Installation von FreeBSD.Was soll ich tun, wenn das Floppy-Image nicht auf eine
Diskette paßt?Eine 3,5-Zoll (1,44MB) Diskette kann 1474560 Byte an
Daten fassen und das Boot-Image ist exakt 1474560 Byte
groß.Häufige Fehler bei der Erstellung der
Boot-Diskette sind:Bei der Benutzung von FTP das
Floppy-Image nicht im
Binär-Modus
herunterzuladen.Einige FTP-Clients benutzen als Voreinstellung den
ASCII-Modus und versuchen, alle
Zeilenendezeichen an das Zielsystem anzupassen.
Dadurch wird das Boot-Image in jedem Fall unbrauchbar.
Überprüfen Sie die Größe des
heruntergeladenen Boot-Images: falls sie nicht
exakt mit der auf dem Server
übereinstimmt, hat das Herunterladen nicht
richtig funktioniert.Abhilfe: geben Sie binary an
der FTP-Eingabeaufforderung ein, nach dem Sie mit dem
Server verbunden sind und bevor Sie das Image
herunterladen.Die Benutzung des DOS-Befehls
copy (oder eines entsprechendes
Werkzeugs der grafischen Benutzeroberfläche), um
das Boot-Image auf die Diskette zu
übertragen.Programme wie copy sind hier
unbrauchbar, weil das Image zur direkten
Übertragung erstellt wurde. Das Image stellt den
gesamten Disketteninhalt dar, Spur für Spur, und
nicht eine gewöhnliche Datei. Sie müssen es
roh mit speziellen Werkzeugen (z.B.
fdimage oder
rawrite) übertragen, wie es in
der Installationsanleitung
zu FreeBSD beschrieben ist.Wo befinden sich die Instruktionen zur Installation
von FreeBSD?Installationsanleitungen finden Sie im Handbucheintrag zur
Installation von FreeBSD.Was benötige ich zum Betrieb von FreeBSD?Sie werden einen 386er oder besseren PC mit 5MB oder
mehr Hauptspeicher und mindestens 60MB Festplattenspeicher
benötigen. Es läuft mit einer einfachen MDA
Grafikkarte, aber um X11R6 zu benutzen, benötigen Sie
eine VGA- oder bessere Videokarte.Lesen Sie auch den Abschnitt
Hardwarekompatibilität.Ich besitze nur 4 MB Hauptspeicher. Kann ich FreeBSD
installieren?FreeBSD 2.1.7 war die letzte FreeBSD-Version, die auf
einem 4MB-System installiert werden konnte. Seit FreeBSD
2.2 benötigen Sie mindestens 5MB zur Installation auf
einem neuen System.Alle FreeBSD-Versionen laufen
zwar mit 4MB Hauptspeicher, lediglich ihr
Installationsprogramm läuft nicht mit 4MB. Wenn Sie
möchten, können Sie für den
Installationsvorgang zusätzlichen Hauptspeicher
hinzufügen, und nachdem das System installiert ist,
wieder auf 4MB zurückgehen. Sie können Ihre
Festplatte auch in ein System, das mehr als 4MB besitzt, einbauen,
dort installieren und sie dann wieder umbauen.Wenn Sie nach der Installation einen
benutzerdefinierten Kernel generieren, wird er mit 4 MB
laufen. Irgend jemand hat es geschafft, mit 2 MB zu
booten, allerdings war das System nahezu
unbrauchbar.Wie kann ich eine angepaßte
Installationsdiskette erstellen?Zur Zeit gibt es keine Möglichkeit,
nur die angepaßten
Installationsdisketten zu erstellen. Sie müssen sich
eine ganz neues Release erstellen, das Ihre
Installationsdiskette enthält.Wenn Sie eine modifizierte Ausgabe erstellen wollen,
finden Sie eine Anleitung im Artikel
FreeBSD Release Engineering.Kann ich mehr als ein Betriebssystem auf meinem PC
unterbringen?Sehen Sie sich Die
Multi-OS-Seite an.Kann Windows 95/98 neben FreeBSD existieren?Installieren Sie zuerst Windows 95/98, dann FreeBSD.
Der Bootmanager von FreeBSD kann dann entweder Win95/98
oder FreeBSD booten. Falls Sie Windows 95/98 nach FreeBSD
installieren, wird es, ohne zu fragen, Ihren Bootmanager
überschreiben. Lesen Sie den nächsten
Abschnitt, falls das passieren sollte.Windows 95/98 hat meinen Bootmanager zerstört!
Wie stelle ich ihn wieder her?Es gibt drei Möglichkeiten, den
FreeBSD-Bootmanager neu zu installieren:Unter DOS wechseln Sie in das Verzeichnis tools/
Ihrer FreeBSD-Distribution und suchen nach
bootinst.exe. Rufen sie es so
auf:...\TOOLS>bootinst.exe boot.binund der Bootmanager wird neu installiert.Booten Sie FreeBSD wieder mit der Bootdiskette und
wählen Sie den Menüeintrag Custom Installation.
Wählen Sie Partition. Wählen Sie das
Laufwerk, auf dem sich der Bootmanager befand
(wahrscheinlich der erste Eintrag) und wenn Sie in den
Partitioneditor gelangen, wählen Sie als aller
erstes (nehmen Sie z.B. keine Änderungen vor)
(W)rite. Sie werden nach einer Bestätigung
gefragt, antworten ja und vergessen Sie nicht, in der
Bootmanager-Auswahl Boot Manager
auszuwählen. Hierdurch wird der Bootmanager
wieder auf die Festplatte geschrieben. Verlassen Sie
nun das Installationsmenü und rebooten wie
gewöhnlich von der Festplatte.Booten Sie FreeBSD wieder mit der Bootdiskette
(oder der CDROM) und wählen Sie den
Menüpunkt Fixit. Wählen Sie
die für Sie passende Option, entweder die
Fixit-Diskette oder die CD Nummer 2 (die Option
live Filesystem). Wechseln Sie zur
Fixit-Shell und geben Sie den folgenden Befehl
ein:Fixit#fdisk -B -b /boot/boot0 bootdeviceAls bootdevice
müssen Sie das von Ihrem System verwendete
Gerät angeben, z.B. ad0
(erste IDE-Platte), ad4
(erste IDE-Platte an einem zusätzlichen
Controller), da0 (erste
SCSI-Platte), usw.Mein IBM Thinkpad Modell A, T oder X, hängt sich
auf, wenn ich FreeBSD zum ersten Mal starte. Was soll ich
machen?Ein Fehler in den ersten BIOS-Versionen dieser
Geräte führt dazu, daß sie die von FreeBSD
genutzte Partition für eine Suspend-To-Disk-Partition
halten. Wenn das BIOS dann versucht, diese Partition
auszuwerten, hängt sich das System auf.Laut IBM
In einer Mail von Keith Frechette
kfrechet@us.ibm.com.
wurde der Fehler wurde in den folgenden BIOS-Versionen
behoben:GerätBIOS VersionT20IYET49WW oder neuerT21KZET22WW oder neuerA20pIVET62WW oder neuerA20mIWET54WW oder neuerA21pKYET27WW oder neuerA21mKXET24WW oder neuerA21eKUET30WWEs ist möglich, daß neuere Version des IBM
BIOS den Fehler wieder enthalten. Dieser
Beitrag von Jacques Vidrine auf der Mailingliste &a.mobile;
beschreibt eine Technik,
die Ihnen weiterhelfen könnte, wenn Ihr IBM Laptop
mit FreeBSD nicht bootet und Sie eine neuere oder
ältere BIOS-Version einspielen können.Wenn Ihr Thinkpad über eine ältere
BIOS-Version verfügt und Sie das BIOS nicht
aktualisieren können, ist eine der möglichen
Lösungen, FreeBSD zu installieren, die Partitions-ID
zu ändern und danach neue Bootblocks zu installieren,
die mit der geänderten ID umgehen
können.Zunächst müssen Sie die Maschine so weit
wiederherstellen, daß sie über den Selbst-Test
hinauskommt. Dazu ist es erforderlich, daß das
System beim Start keine Partitions-ID auf seiner
primären Festplatte findet. Eine Variante ist, die
Platte auszubauen und vorübergehend in einem
älteren Thinkpad (z.B. dem Thinkpad 600) oder (mit
einem passenden Adapter) in einen normalen PC einzubauen.
Sobald dies erfolgt ist, können Sie die
FreeBSD-Partition löschen und die Festplatte wieder
in das Thinkpad einbauen. Das Thinkpad sollte jetzt
wieder starten können.Danach können Sie mit der nachfolgend
beschriebenen Anleitung eine funktionsfähige
FreeBSD-Installation erhalten.Beschaffen Sie sich boot1 und
boot2 von http://people.FreeBSD.org/~bmah/ThinkPad/.
+ url="http://people.FreeBSD.org/~bmah/ThinkPad/">.
Legen Sie diese Dateien so ab, daß Sie
während der Installation darauf zugreifen
können.Installieren Sie ganz wie gewohnt FreeBSD auf dem
Thinkpad. Allerdings dürfen Sie den
Dangerously Dedicated-Modus
nicht benutzen. Nach dem
Abschluß der Installation dürfen Sie die
Maschine nicht neu
starten.Wechseln Sie zur Emergency Holographic
Shell (
AltF4)
oder starten Sie eine fixit
Shell.Benutzen Sie &man.fdisk.8;, um die Partitions-ID
von FreeBSD von 165 in
166 zu ändern (dieser Wert
wird von OpenBSD benutzt).Kopieren Sie die Dateien
boot1 und
boot2 auf die lokale
Festplatte.Installieren Sie boot1 und
boot2 mit &man.disklabel.8; auf
die FreeBSD-Slice.&prompt.root; disklabel -B -b boot1 -s boot2 ad0snSetzen Sie für n
die Nummer der Slice ein, auf der sie FreeBSD
installiert haben.Starten Sie das System neu. Am Boot-Prompt
sollten Sie die Auswahl OpenBSD
erhalten. Damit wird in Wirklichkeit FreeBSD
gestartet.Was Sie machen müssen, wenn Sie FreeBSD und
OpenBSD parallel installieren wollen, sollten Sie zu
Übungszwecken einfach einmal selbst
herausfinden.Kann ich auf einer Festplatte mit beschädigten
Blöcken installieren?Ältere Versionen von FreeBSD enthielten ein
Programm namens bad144, das die
defekten Sektoren automatisch verlagerte. Da diese
Funktion aber von modernen IDE-Platten selbstständig
durchgeführt wird, wurde bad144 in
der Version 3.0 aus dem System entfernt. Wenn Sie FreeBSD
3.0 oder neuer installieren wollen, sollten Sie sich eine
neue Festplatte zulegen. Falls Sie dazu nicht bereit
sind, müssen Sie FreeBSD 2.X verwenden.Wenn Ihnen bei einer modernen IDE-Platte defekte
Sektoren gemeldet werden, wird die Platte mit großer
Wahrscheinlichkeit innerhalb kurzer Zeit vollständig
ausfallen, da die Meldung ein Zeichen dafür ist,
daß die für die Korrektur reservierten Sektoren
bereits verbraucht wurden. Wir raten Ihnen, die Platte
auszutauschen.Falls Sie ein SCSI-Laufwerk mit beschädigten
Blöcken besitzen, lesen Sie diese Antwort.Ich habe mein System gerade von 3.X auf 4.X
aktualisiert und beim ersten Start erscheint die Meldung
bad sector table not
supportedBis einschließlich FreeBSD 3.X wurde
bad144 unterstützt, mit dem man
automatisch defekte Blöcke verlagern lassen konnte.
Dieses Programm ist in FreeBSD 4.X nicht mehr enthalten,
weil diese Tätigkeit von allen modernen IDE-Platten
automatisch vorgenommen wird. Weitere Informationen zum
Thema bad144 finden Sie bei in diesem
Abschnitt.Um dieses Problem zu lösen, müssen Sie ihre
Festplatte in ein funktionierendes System einbauen und
&man.disklabel.8; benutzen. Nähere Informationen
finden Sie weiter unten.Wie kann ich herausfinden, ob auf einer Festplatte
bad144 benutzt wurde, bevor mein Update
auf FreeBSD 4.0 fehlschlägt?Mit &man.disklabel.8;. disklabel -r
Laufwerk zeigt Ihnen
das disk label an. Achten Sie auf das Feld
flags. Wenn hier flags:
badsect steht, wurde auf dieser Festplatte
bad144 benutzt. Hier ein Beispiel
für eine solche Festplatte:&prompt.root; disklabel -r wd0
# /dev/rwd0c:
type: ESDI
disk: wd0s1
label:
flags: badsect
bytes/sector: 512
sectors/track: 63Wie kann ich die Daten von bad144
von meinen System entfernen, damit ich problemlos auf 4.X
updaten kann?Benutzen Sie disklabel -e -rwd0, um
das Disk label direkt auf der Platte zu bearbeiten. Sie
müssen lediglich das Wort badsect
aus dem Feld flags entfernen,
abspeichern, und den Editor verlassen. Die Daten von
bad144 werden zwar weiterhin Platz auf Ihrer Festplatte
belegen, Sie können die Festplatte aber trotzdem
benutzen.Wir raten Ihnen allerdings dringend, sich eine neue
Festplatte zuzulegen, wenn Sie eine große Anzahl
defekter Blöcke auf Ihrer Festplatte finden.Wenn ich von der Installationsdiskette boote,
geschehen merkwürdige Dinge! Was sollte ich
tun?Falls Sie beobachten, daß ihr Rechner sich bis
zum Stillstand abmüht oder spontan rebootet,
während Sie versuchen, von der Installationsdiskette
zu booten, sollten Sie sich drei Fragen stellen:Haben Sie eine brandneue, frisch formatierte,
fehlerfreie Diskette benutzt (günstigerweise eine
brandneue, direkt aus dem Karton und nicht eine
Diskette aus einem Magazin, das schon seit drei Jahren
unter Ihrem Bett lag)?Haben Sie das Floppy-Image im Binär- (oder
Image) Modus heruntergeladen? (Schämen Sie sich
nicht. Sogar die besten unter uns haben wenigstens
einmal Binärdateien versehentlich im ASCII-Modus
heruntergeladen!)Falls Sie Windows 95 oder Windows 98 benutzen,
haben Sie es heruntergefahren und
fdimage bzw.
rawrite in einfachem, reinem DOS
neu gestartet? Es scheint, daß diese
Betriebssysteme Programme stören, die direkt auf
Hardware schreiben, wie es das Erstellungsprogramm
für die Diskette tut; selbst bei der
Ausführung des Programms in einem DOS-Fenster in
der grafischen Benutzeroberfläche kann dieses
Problem auftreten.Es wurde auch darüber berichtet, daß
Netscape Probleme beim Herunterladen der Bootdisketten
verursacht. Es ist also wahrscheinlich besser, einen
anderen FTP-Client zu benutzen, wenn möglich.Ich habe zur Installation von meinem ATAPI CDROM
gebootet, aber das Installationsprogramm sagt mir,
daß es kein CDROM gefunden hat. Was geht hier
ab?Dieses Problem wird üblicherweise durch ein
falsch konfiguriertes CDROM verursacht. Bei vielen PCs
ist das CDROM der Slave am zweiten IDE-Controller, ein
Master ist nicht vorhanden. Laut Spezifikation ist diese
Konfiguration illegal, aber Windows verletzt die
Spezifikation und das BIOS ignoriert sie, wenn es von
einem CDROM booten soll. Daher konnten Sie zwar vom
CDROM booten, während FreeBSD es nicht für die
Installation benutzen kann.Um dieses Problem zu lösen, müssen Sie
entweder das CDROM als Master an den IDE-Controller
anschließen oder dafür sorgen, daß an dem
vom CDROM genutzten IDE-Controller das CD-ROM als Slave
und ein anderes Gerät als Master angeschlossen
ist.Kann ich auf meinem Laptop per PLIP (Parallel Line IP)
installieren?Ja, Sie brauchen dazu nur ein ganz normales
Laplink-Kabel. Weitere Informationen zum Thema Netzwerke
am Druckerport finden sie im Kapitel PLIP des
Handbuchs.Lesen Sie FreeBSD 3.X oder eine ältere Version
benutzen, sollten Sie einen Blick auf die Webseite Mobile-Computing
werfen.Welche Geometrie sollte ich für ein
Festplattenlaufwerk verwenden?Unter der Geometrie einer Festplatte
verstehen wir die Anzahl Zylinder,
Schreib-/Leseköpfen und Sektoren/Spur auf einer
Festplatte. Im folgenden wird dafür der
Übersichtlichkeit halber der Begriff C/H/S
verwendet. Das BIOS des PCs berechnet mit diesen
Angaben, auf welche Bereiche der Festplatte es für
Schreib-/Lesezugriffe zugreifen muß).Aus einigen Gründen scheint dies gerade bei
frischgebackenen Systemadministratoren für sehr viel
Verwirrung zu sorgen. Zunächst einmal ist die
physikalische Geometrie eines
SCSI-Laufwerks vollkommen irrelevant, da FreeBSD mit
Blöcken arbeitet. Tatsächlich gibt es
die physikalische Geometrie nicht, da die
Sektordichte auf einer Festplatte variiert. Was die
Hersteller als die wahre physikalische
Geometrie bezeichnen, ist im allgemeinen die Geometrie,
die aufgrund ihrer Ergebnisse im geringsten ungenutzten
Speicher resultiert. Bei IDE-Platten arbeitet FreeBSD mit
C/H/S-Angaben, aber alle modernen Laufwerke wandeln diese
intern ebenfalls in Blocknummern um.Wichtig ist nur die logische
Geometrie. Das BIOS kann die logische Geometrie der
Festplatte abfragen; die erhaltenen Daten werden dann vom
BIOS bei Zugriffen auf die Festplatte genutzt. Da FreeBSD
das BIOS benutzt, während es bootet, ist es sehr
wichtig, daß diese Angaben richtig sind.
Insbesondere müssen alle Betriebssysteme mit
derselben Geometrie arbeiten, falls Sie mehr als ein
Betriebssystem auf einer Festplatte haben. Andernfalls
werden Sie ernsthafte Bootprobleme bekommen!Bei SCSI-Festplatten hängt die zu verwendende
Geometrie davon ab, ob der Extended Translation Support
auf Ihrem Controller eingeschaltet ist (oft auch als
Unterstützung für DOS-Platten
>1GB oder ähnlich bezeichnet). Falls sie
ausgeschaltet ist, benutzen Sie
N Zylinder, 64 Köpfe und
32 Sektoren/Spur, wobei N die
Kapazität der Festplatte in MB ist. Zum Beispiel
sollten für eine 2GB Festplatte 2048 Zylinder, 64
Köpfe und 32 Sektoren/Spur angegeben werden.Falls sie eingeschaltet ist (was
oft der Fall ist, um bestimmte Einschränkungen von
MSDOS zu umgehen) und die Plattenkapazität mehr als
1GB beträgt, benutzen Sie M Zylinder, 63
Sektoren/Spur (nicht 64) und 255
Köpfe, wobei 'M' der Plattenkapazität in MB,
dividiert durch 7,844238 entspricht (!). Also würde
unsere 2GB Beispielplatte 261 Zylinder, 63 Sektoren/Spur
und 255 Köpfe haben.Falls Sie sich hier nicht sicher sind oder FreeBSD
während der Installation die Geometrie nicht richtig
erkennt, hilft es normalerweise, eine kleine DOS-Partition
auf der Festplatte anzulegen. Das BIOS sollte dann in der
Lage sein, die richtige Geometrie zu erkennen. Sie
können die Partition jederzeit im Partitioneditor
entfernen, falls Sie sie nicht behalten möchten.
Allerdings kann Sie ganz nützlich sein, um
Netzwerkkarten zu programmieren und
ähnliches.Alternativ können Sie das frei verfügbare
Programm pfdisk.exe verwenden. Sie
finden es im Unterverzeichnis tools
auf der FreeBSD-CDROM und allen FreeBSD FTP-Servern). Mit
diesem Programm können Sie herausfinden, welche
Geometrie die anderen Betriebssysteme auf der Festplatte
verwenden. Diese Geometrie können Sie im
Partitioneditor eingeben.Gibt es irgendwelche Einschränkungen, wie ich die
Festplatte aufteilen darf?Ja. Sie müssen sicherstellen, daß Ihre
Rootpartition innerhalb der ersten 1024 Zylinder liegt, damit das
BIOS den Kernel von Ihr booten kann. (Beachten Sie,
daß es sich um eine Einschränkung durch das
BIOS des PCs handelt und nicht durch FreeBSD).Für ein SCSI-Laufwerk bedeutet dies
normalerweise, daß sich die Rootpartition in den
ersten 1024MB befindet (oder in den ersten 4096MB, falls
die Extended Translation eingeschaltet ist - siehe die
vorherige Frage). Der entsprechende Wert für IDE ist
504MB.Verträgt sich FreeBSD mit Plattenmanagern?FreeBSD erkennt den Ontrack Plattenmanager und
berücksichtigt ihn. Andere Plattenmanager werden
nicht unterstützt.Falls Sie die Festplatte nur mit FreeBSD benutzen
wollen, brauchen Sie keinen Plattenmanager. Wenn Sie Sie
die Platte einfach in der vom BIOS maximal
unterstützten Größe (normalerweise 504
Megabyte) konfigurieren, sollte FreeBSD erkennen, wieviel
Platz Sie tatsächlich haben. Falls Sie eine alte
Festplatte mit einem MFM-Controller verwenden, könnte
es sein, daß Sie FreeBSD explizit angeben
müssen, wieviele Zylinder es benutzen soll.Falls Sie die Festplatte mit FreeBSD und einem anderen
Betriebssystem benutzen wollen, sollten Sie auch in der Lage
sein, ohne einen Plattenmanager auszukommen: stellen sie
einfach sicher, daß sich die Bootpartition von
FreeBSD und der Bereich für das andere Betriebssystem
in den ersten 1024 Zylindern befinden. Eine 20 Megabyte
Bootpartition sollte völlig genügen, wenn Sie
einigermaßen sorgfältig arbeiten.Beim Booten von FreeBSD erscheint Missing
Operating System. Was ist passiert?Dies ist ein klassischer Fall von Konflikten bei den
verwendeten Plattengeometrien von FreeBSD
und DOS oder anderen Betriebssystemen. Sie werden FreeBSD
neu installieren müssen. Bei Beachtung obiger
Instruktionen wird in den meisten Fällen alles
funktionieren.Wieso komme ich nicht weiter als bis zum
F?-Prompt des Bootmanagers?Dies ist ein weiteres Symptom für das bereits in
der vorherigen Frage beschriebene Problem. Ihre
Einstellungen zur Geometrie im BIOS und in FreeBSD stimmen
nicht überein! Falls Ihr Controller oder BIOS
Zylinderumsetzung (oft als >1GB drive
support bezeichnet), probieren Sie eine Umsetzung
dieser Einstellung und Neuinstallation von
FreeBSD.Muß ich den vollständigen Quellcode
installieren?Im allgemeinen nicht. Wir empfehlen jedoch dringend
die Installation des base Source-Kit,
das viele der hier erwähnten Dateien enthält und
des sys (Kernel) Source-Kit, das den
Quellcode für den Kernel enthält. Außer
dem Programm zur Konfiguration des Kernels
(&man.config.8;) gibt es im System nichts, zu dessen
Funktion der Quellcode erforderlich ist. Mit Ausnahme der
Kernelquellen ist unsere Build-Struktur so aufgebaut,
daß Sie den Quellcode von überall her per NFS
read-only mounten und dennoch neue Binaries erstellen
können. (Wegen der Einschränkung bezüglich
der Kernelquellen empfehlen wir, diese nicht direkt nach
/usr/src zu mounten, sondern
irgendwoanders hin mit passenden symbolischen Links, um
die Toplevel-Struktur des Quellbaumes zu
duplizieren.)Die Quellen verfügbar zu haben und zu wissen, wie
man ein System mit ihnen erstellt, wird es Ihnen
wesentlich einfacher machen, zu zukünftigen Ausgaben
von FreeBSD zu wechseln.Um einen Teil der Quellen auszuwählen, verwenden
Sie den Menüpunkt Custom, wenn Sie sich im Menü
Distributions des Systeminstallationstools
befinden.Muß ich einen Kernel erstellen?Ursprünglich war die Erstellung eines neuen
Kernels bei fast jeder Installation von FreeBSD
erforderlich, aber neuere Ausgaben haben von der
Einführung eines weitaus benutzerfreundlicheren
Kernelkonfigurationswerkzeugs profitiert. Geben Sie am
FreeBSD Boot-Prompt (boot:) ein, um in
ein visuelles Konfigurationsmenü zu gelangen. Dieses
Programm ermöglicht Ihnen die Konfiguration der
Kerneleinstellungen für die gebräuchlichsten
ISA-Karten.Es wird weiterhin empfohlen, früher oder
später einen neuen Kernel zu erstellen, der nur die
benötigten Treiber enthält, um ein wenig
Hauptspeicher zu sparen, aber für die meisten Systeme
ist dies ist nicht länger erforderlich.Soll ich DES, Blowfisch oder MD5 zur Verschlüsselung der
Paßwörter benutzen?FreeBSD benutzt standardmäßig
MD5 zur Verschlüsselung der
Paßwörter. Es wird angenommen, daß diese
Methode sicherer ist als das traditionell benutzte
Verfahren, das auf dem DES
Algorithmus basierte. Es ist immer noch möglich,
DES-Paßwörter zu benutzen, wenn Sie die Datei
mit den Paßwörtern mit älteren System
austauschen müssen. Ältere System verstehen
meist nur das unsichere Verfahren, dieses steht Ihnen zur
Verfügung, wenn Sie mit sysinstall die
crypto Distribution installieren. Sie
können auch die crypto Sourcecodes installieren, wenn
Sie Ihr System über die Sourcen aktualisieren. Die crypto
Bibliotheken erlauben es Ihnen das sichere Blowfisch Verfahren
für die Verschlüsselung der Paßwörter
einzusetzen. Das für neue Paßwörter benutzte
Verschlüsselungsverfahren wird über die
Einstellung passwd_format in
/etc/login festgelegt. Die
möglichen Werte sind entweder des,
blf (falls sie zur Verfügung stehen)
oder md5. Weitere
Informationen über die Einstellungen für den
Login erhalten Sie in &man.login.conf.5;.Woran kann es liegen, daß ich zwar von der
Diskette booten kann, aber nicht weiter als bis zur
Meldung Probing Devices...
komme?Falls Sie ein IDE-Zip- oder Jaz-Laufwerk eingebaut
haben, entfernen Sie es und versuchen Sie es erneut.
Solche Laufwerke könnten dem Bootvorgang stören.
Nach der Installation des Systems können Sie das
Laufwerk wieder einbauen. Dieser Fehler wird hoffentlich
in einer späteren Version behoben werden.Wieso wird mit der Fehler panic: cant mount
root gemeldet, wenn ich das System nach der
Installation reboote?Dieser Fehler beruht auf Unstimmigkeiten zwischen den
Festplatteninformationen im Bootblock und denen im Kernel.
Der Fehler tritt normalerweise auf IDE-Systemen mit zwei
Festplatten auf, bei denen die Festplatten als Master-
oder Single-Device auf separaten IDE-Controllern
angeschlossen sind und FreeBSD auf der Platte am zweiten
Controller installiert wurde. Der Bootblock vermutet,
daß das System auf wd1 (der zweiten BIOS-Platte)
installiert ist, während der Kernel der ersten Platte
auf dem zweiten Controller die Gerätekennung wd2
zuteilt. Der Kernel versucht nach der
Geräteüberprüfung die vom Bootblock
angenommene Bootdisk wd1 zu mounten, obwohl sie in
Wirklichkeit wd2 heißt - und scheitert.Tun Sie folgendes, um dieses Problem zu
beheben:Wenn Sie FreeBSD 3.3 oder neuer benutzen,
müssen Sie das System rebooten und
Enter drücken, wenn die
Meldung Booting kernel in 10 seconds; hit
[Enter] to interrupt erscheint. Dadurch
gelangen Sie in den Boot Loader.Geben Sie nun
root_disk_unit="disk_number"
ein. disk_number hat den Wert
0, wenn FreeBSD auf dem Master des
ersten IDE-Controllers installiert wurde;
1, wenn FreeBSD auf dem Slave des
ersten IDE-Controllers installiert wurde;
2, wenn FreeBSD auf dem Master des
zweiten IDE-Controllers installiert wurde; und
3, wenn FreeBSD auf dem Slave des
zweiten IDE-Controllers installiert wurde.Nach der Eingabe von boot
sollte Ihr System jetzt korrekt starten.Damit Sie dieses Ritual nicht bei jedem Start des
Systems durchführen müssen, sollten Sie die
Zeile
root_disk_unit="disk_number"
in die Datei
/boot/loader.conf.local
eintragen.Wenn Sie FreeBSD 3.2 oder eine ältere Version
benutzen, geben Sie am Prompt Boot:
1:wd(2,a)kernel ein und
betätigen Sie die Enter-Taste. Wenn
das System nun startet, führen Sie den Befehl
echo "1:wd(2,a)kernel" > /boot.config
aus, um diese Bootreihenfolge zur Voreinstellung zu
machen.Stellen Sie eine ununterbrochene Folge der
Festplatten her, indem Sie die FreeBSD-Platte am
ersten IDE-Controller anschließen.Erstellen Sie
einen neuen Kernel: modifizieren Sie die
wd-Konfigurationszeilen wie folgt:
controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk wd0 at wdc0 drive 0
# disk wd1 at wdc0 drive 1 # Kommentieren Sie diese Zeile aus
controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
disk wd1 at wdc1 drive 0 # Ändern Sie wd2 in wd1
disk wd2 at wdc1 drive 1 # Ändern Sie wd3 in wd2
Installieren Sie den neuen Kernel. Falls sie Ihre
Festplattenanschlüsse umgesteckt haben und die
alte Konfiguration wiederherstellen möchten,
stecken Sie die Anschlüsse wie gewünscht um
und rebooten Sie. Ihr System sollte nun fehlerfrei
booten.Gibt es eine Hauptspeicherbegrenzung?Es werden maximal 4 Gigabyte Hauptspeicher
unterstützt. Seien Sie vorsichtig, wenn Sie
soviel Hauptspeicher in Ihrem Rechner benutzen
möchten. Benutzen Sie ggfs. ECC-Speicher und Module
mit neun (statt der üblichen 18) Chips, um die
kapazitive Belastung zu reduzieren.Wo liegen die Grenzen für
ffs-Dateisysteme?Theoretisch liegt das Limit für ffs-Dateisysteme
bei 8 Terabyte (2G-Blöcke) oder 16TB für die
Standard-Blockgröße von 8k. In der Praxis
setzt die Software das Limit auf 1 Terabyte herab, aber
durch Modifikationen sind auch Dateisysteme mit 4 Terabyte
möglich (und existieren auch).Die maximale Größe einer einzelnen
ffs-Datei liegt bei ungefähr 1G Blöcken (4TB,
falls die Blockgröße 4k beträgt).
Wenn die im Dateisystem verwendete
Blockgröße 4k beträgt, wird mit dreifacher
Indirektion gearbeitet und die Limitierung sollte durch
die höchste Blocknummer erfolgen, die mit dreifacher
Indirektion dargestellt werden kann (ungefähr 1k^3 +
1k^2 + 1k). In Wirklichkeit liegt das Limit aber bei der
(falschen) Anzahl von 1G-1 Blocknummern im Dateisystem.
Die maximale Anzahl Blocknummern müßte 2G-1
sein. Es gibt einige Fehler für Blocknummern nahe
2G-1, aber solche Blocknummern sind bei einer
Blockgröße von 4k unerreichbar.Bei Blocknummern von 8k und größer sollte
das Limit bei 2G-1 Blocknummern liegen, aber
tatsächlich liegt es bei bei 1G-1 Blocknummern.
Außer unter -STABLE sind Blöcke in der dritten
Indirektion unerreichbar, wodurch das Limit auf die durch
zweifache Indirektion maximal darstellbare Blocknummer
reduziert wird (ca. (Blockgröße/4)^2 +
(Blockgröße/4)). Unter -CURRENT könnte
die Überschreitung dieser Grenze Probleme
verursachen. Die Verwendung der korrekten Grenze von 2G-1
verursacht Probleme.Wieso erhalte ich die Fehlermeldung
archsw.readin.failed beim Start des
Systems, nachdem ich habe einen neuen Kernel erstellt
habe?Sie können den zu bootenden Kernel direkt im
zweiten Schritt angeben, indem Sie eine beliebige Taste
drücken, wenn das | erscheint und bevor der Loader
startet. Genauer: Sie haben die Kernelquellen erneuert,
und von dort ein neues Kernel-Builtin installiert,
ohne make world auszuführen.
Das geht nicht - führen Sie make world aus.Wie führe ich ein Update von 3.X nach 4.X
durch?Wir raten Ihnen dringend, dazu
einen der Snapshots zu verwenden. Die Snapshots von
- 4-STABLE sind auf ftp://releng4.FreeBSD.org
+ 4-STABLE sind auf
verfügbar.Wegen der vielen Unterschiede zwischen 3.X und
4-STABLE wird ein in einem Schritt durchgeführtes
Update höchstwahrscheinlich fehlschlagen, wenn Sie
die Sourcen verwenden. Dieses Update muß in
mehreren Schritten durchgeführt werden. Der erste
Schritt ist ein Update auf das aktuelle 3-STABLE
(RELENG_3). Der zweite Schritt ist ein
Update auf 4.1.1-RELEASE
(RELENG_4_1_1_RELEASE), bevor Sie dann
im dritten Schritt zu 4-STABLE
(RELENG_4) kommen.Wenn Sie den Quellcode für das Update benutzen
wollen, finden Sie im FreeBSD
Handbuch weitere Informationen.Wenn Sie FreeBSD erst seit kurzer Zeit benutzen,
sollten Sie auf gar keinen Fall über den Quellcode
updaten, das gilt ganz besonders für das Update von
3.X nach 4.X. Falls Sie es dennoch versuchen wollen,
sollten Sie vorher die entsprechenden Anleitungen sehr
sorgfältig durchlesen!Was sind die Sicherheits-Profile?In einem Sicherheits-Profil werden
verschiedene Einstellungen zusammengefaßt, mit denen
das gewünschte Verhältnis zwischen Sicherheit und
Benutzerfreundlichkeit hergestellt werden soll. Um dies
zu erreichen, werden bestimmte Dienste und Features
entweder aktiviert oder deaktiviert. Die Details sind im
Abschnitt Security Profile
des Handbuch-Kapitels
Post-Installation enthalten.Hardware-KompatibilitätUnterstützt FreeBSD andere Architekturen
außer x86?Ja. FreeBSD ist zur Zeit für die Intel x86 und
DEC (jetzt Compaq) Alpha Architekturen verfügbar.
Seit FreeBSD 5.0 wird auch die SPARC-64 Architektur
unterstützt. Die Neuzugänge auf der
Liste der in Zukunft unterstützten Plattformen sind
IA-64, MIPS und PowerPC. Abonnieren Sie die Mailinglisten
&a.ia64;, &a.ppc; oder &a.mips; wenn Sie mehr über
den Stand der Entwicklung erfahren wollen. Schließen
Sie sich der Mailingliste &a.platforms; an, wenn Sie an
grundsätzlichen Diskussionen über neue Architekturen
interessiert sind.Falls Ihre Maschine eine andere Architektur aufweist
und Sie unbedingt sofort etwas benötigen, schlagen
wir vor, daß Sie sich einmal NetBSD oder OpenBSD
ansehen.Ich will mir neue Hardware für mein
FreeBSD-System zulegen, was soll ich kaufen? Diese Frage wird ständig auf den
FreeBSD-Mailinglisten diskutiert. Da sich die Hardware
ständig ändert, ist das allerdings keine
Überraschung. Trotzdem sollten
Sie unbedingt die Hardware Notes und
die
Archive der Mailinglisten durchsehen, bevor Sie
nach der neuesten/besten Hardware fragen. Normalerweise
gab es kurz zuvor eine Diskussion über genau die
Hardware, die Sie sich zulegen wollen.Wenn Sie sich einen Laptop zulegen wollen, sollten Sie
einen Blick in das Archiv der Mailingliste FreeBSD-mobile
werfen. Ansonsten empfiehlt sich ein Blick in das Archiv
von FreeBSD-questions oder auch einer spezialisierte
Mailingliste für diese Art von Hardware.Welche Arten von Festplatten werden von FreeBSD
unterstützt?FreeBSD unterstützt EIDE- und SCSI-Laufwerke (mit
kompatiblen Controllern - siehe folgenden Abschnitt),
sowie alle Laufwerke, die die original Western
Digital-Schnittstelle (MFM, RLL, ESDI und
natürlich IDE) benutzen. Ein paar Controller mit
proprietären Schnittstellen könnten nicht
laufen: halten Sie sich an WD1002/3/6/7-Schnittstellen und
Clones.Welche SCSI-Controller werden
unterstützt?Sie finden eine vollständige und aktuelle Liste
in den Release
Notes.Welche CDROM-Laufwerke werden von FreeBSD
unterstützt?Jedes an einem unterstützten Controller
angeschlossene SCSI-Laufwerk wird
unterstützt.Die folgenden proprietären CDROM-Schnittstellen
werden ebenfalls unterstützt:Mitsumi LU002 (8bit), LU005 (16bit) und FX001D
(16bit 2x Speed).Sony CDU 31/33ASound Blaster Non-SCSI CDROMMatsushita/Panasonic CDROMATAPI compatible IDE CDROMsVon allen Nicht-SCSI-Laufwerken ist bekannt, daß
sie im Vergleich zu SCSI-Laufwerken extrem langsam sind.
Einige ATAPI-CDROMs könnten nicht
funktionieren.Seit Version 2.2 unterstützt die bei FreeBSD Mall
erhältliche FreeBSD-CDROM das direkte Booten von
CD.Welche CD-Brenner werden von FreeBSD
unterstützt?FreeBSD unterstützt alle ATAPI-kompatiblen IDE
CD-R und CD-RW Brenner. Wenn Sie FreeBSD ab Version 4.0
benutzen, werfen Sie einen Blick in die Onlinehilfe zu
&man.burncd.8;. Wenn Sie eine ältere Version von
FreeBSD benutzen, sollten Sie sich die Beispiele in
/usr/share/examples/atapi
ansehen.FreeBSD unterstützt ebenfalls SCSI CD-R und CD-RW
Brenner. Installieren und benutzen Sie das Paket
cdrecord aus der Ports-Sammlung. Dazu
müssen Sie allerdings das Gerät
pass mit in Ihren Kernel
aufnehmen.Unterstützt FreeBSD ZIP-Laufwerke?FreeBSD unterstützt natürlich alle
gängigen SCSI- und ATAPI-ZIP-Laufwerke.
Ihr SCSI-ZIP-Laufwerk darf
nur mit den SCSI-Ziel-IDs 5 oder 6 laufen, aber Sie
können sogar davon booten, falls das BIOS Ihres
Hostadapters dies unterstützt. Es ist nicht bekannt,
welche Hostadapter das Booten von anderen Zielen als 0
oder 1 erlauben; daher werden Sie in ihren
Handbüchern nachsehen müssen, wenn Sie dieses
Merkmal benutzen möchten.FreeBSD unterstützt ZIP-Laufwerke, die an der
parallelen Schnittstelle angeschlossen sind. Der Kernel
sollte die folgenden Treiber enthalten:
scbus0,
da0,
ppbus0 und
vp0 (der GENERIC-Kernel
enthält alle, außer
vp0). Wenn diese Treiber
vorhanden sind, sollte das Laufwerk an der parallelen
Schnittstelle als /dev/da0s4
verfügbar sein. Zip-Datenträger können mit
mount /dev/da0s4 /mnt ODER
(DOS-formatierte) mount_msdos /dev/da0s4
/mnt gemountet werden.Lesen Sie auch den FAQ-Eintrag zu
Wechseldatenträgern und die Anmerkungen zum Thema
Formatierung im Kapitel
Administration.Unterstützt FreeBSD JAZ, EZ und andere
Wechsellaufwerke?Abgesehen von der IDE-Version der EZ-Laufwerke,
handelt es sich ausschließlich um SCSI-Geräte.
Unter FreeBSD müßten sie sich also alle wie
SCSI-Platten und das IDE-EZ-Laufwerk müßte sich
wie ein IDE-Laufwerk verhalten.Ich bin mir nicht sicher, wie gut
FreeBSD den Wechsel der Datenträger während des
Betriebs unterstützt. Sie werden die Laufwerke vor
einem Datenträgerwechsel natürlich unmounten und
sicherstellen müssen, daß externe Einheiten
während des Bootens eingeschaltet sind, damit FreeBSD
sie erkennen kann.Lesen Sie auch diesen
Hinweis zur Formatierung.Welche seriellen Multi-Port-Karten werden von FreeBSD
unterstützt?Es existiert eine Liste der unterstützten Karten
im Abschnitt Verschiedene
Geräte des Handbuchs.Von einigen nicht NoName-Nachbauten ist ebenfalls
bekannt, daß sie funktionieren, speziell von den
AST-kompatiblen.In &man.sio.4; finden Sie weitere Informationen zur
Konfiguration solcher Karten.Unterstützt FreeBSD meine Tastatur mit
USB-Anschluß?Ab FreeBSD 4.X werden USB-Tastaturen
unterstützt. Die Unterstützung für
USB-Geräte ist seit FreeBSD 3.1 Bestandteil des
Systems. Allerdings war die Unterstützung selbst
in FreeBSD 3.2 noch nicht ganz ausgereift. Wenn
Sie USB-Tastaturen mit FreeBSD 3.X ausprobieren
möchten, folgen Sie der nachstehenden Anleitung.Benutzen Sie eine spätere 3.X Version
als FreeBSD 3.2.Tragen Sie die folgenden Zeilen in die
Konfigurationsdatei Ihres Kernels ein und erzeugen Sie
einen neuen Kernel.
controller uhci0
controller ohci0
controller usb0
controller ukbd0
options KBD_INSTALL_CDEV
Erzeugen Sie im Verzeichnis
/dev die notwendigen
Dateien:&prompt.root; cd /dev
&prompt.root; ./MAKEDEV kbd0 kbd1Tragen Sie in der
/etc/rc.conf die folgenden Zeilen
ein:
usbd_enable="YES"
usbd_flags=""
Ab FreeBSD 4.X wird die USB-Unterstützung
in /etc/rc.conf aktiviert.Wenn Sie die Unterstützung für USB-Tastaturen
konfiguriert haben, ist die AT-Tastatur
als /dev/kbd0 und die USB-Tastatur
als /dev/kbd1 verfügbar. Dies
gilt natürlich nur, wenn beide Tastaturen
angeschlossen sind; falls nur die USB-Tastatur
angeschlossen ist, ist diese als
/dev/ukbd0 verfügbar.Wenn Sie die USB-Tastatur an der Systemkonsole
benutzen wollen, müssen Sie dies dem System explizit
mitteilen. Dazu muß das folgende Kommando
während des Systemstarts ausgeführt
werden:&prompt.root; kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/nullWenn Sie nur die USB-Tastatur angeschlossen haben, ist
diese als /dev/kbd0 verfügbar;
daher muß in diesem Fall das folgende Kommando
benutzt werden:&prompt.root; kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/nullTragen Sie dieses Kommando in Datei
/etc/rc.i386 ein.Sobald Sie diese Schritte durchgeführt haben,
sollte die USB-Tastatur ohne weitere Änderungen auch
unter X benutzbar sei.Zur Zeit kann es noch Probleme geben, wenn Sie eine
USB-Tastatur im laufenden Betrieb einstecken oder
abziehen. Um Probleme zu vermeiden, sollten Sie die
Tastatur anschließen, bevor Sie das System
anschalten und die Tastatur nicht abziehen, solange das
System noch läuft.Weitere Informationen erhalten Sie in
&man.ukbd.4;.Ich habe eine unübliche Busmaus. Wie muß
ich sie konfigurieren?FreeBSD unterstützt die Busmaus und
InPort-Busmaus von Herstellern wie Microsoft, Logitech und
ATI. Der Bus-Gerätetreiber ist bei FreeBSD 2.X
standardmäßig im GENERIC-Kernel eingebunden; ab
Version 3.0 müssen Sie ihn selbst in die
Konfigurationsdatei für Ihren angepaßten Kernel
einbinden. Fügen Sie die folgende Zeile in Ihre
Konfigurationsdatei ein, falls Sie sich einen
angepaßten Kernel mit dem Busmaustreiber
erstellenFreeBSD 3.0 und ältere Versionen
device mse0 at isa? port 0x23c tty irq5 vector mseintr
FreeBSD 3.X außer 3.0
device mse0 at isa? port 0x23c tty irq5
FreeBSD 4.X
device mse0 at isa? port 0x23c irq5
Die Busmaus wird üblicherweise zusammen mit einer
speziellen Karte ausgeliefert. Sie könnte es Ihnen
ermöglichen, andere Werte für die Port-Adresse
und den Interrupt zu setzen. Weitere Informationen finden
Sie in Handbuch zu Ihrer Maus und in der &man.mse.4;
Manualpage.Wie benutze ich meine PS/2 (Mouse-Port
oder Tastatur)-Maus?PS/2 Mäuse laufen mit allen neueren
FreeBSD Versionen. Der notwendige Gerätetreiber,
psm, ist im
GENERIC-Kernel enthalten.Wenn Sie einen angepassten Kernel ohne diesen Treiber
benutzen, müssen Sie folgende Zeile in Ihre
Kernelkonfigurationsdatei einfügen und den Kernel neu
kompilieren.FreeBSD 3.0 und ältere Versionen:
device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
FreeBSD 3.1 und neuere Versionen:
device psm0 at isa? tty irq 12
Ab FreeBSD 4.0:
device psm0 at atkbdc? irq 12
Lesen Sie den Handbucheintrag zur
Kernelkonfiguration, falls Sie sich mit der
Erstellung eines Kernels nicht auskennen.Wenn der Kernel das Gerät
psm0 beim Booten korrekt erkennt,
stellen Sie sicher, daß sich im Verzeichnis
/dev ein Eintrag für
psm0 befindet. Durch Eingabe von&prompt.root; cd /dev; sh MAKEDEV psm0können Sie einen erstellen, wenn Sie als
root angemeldet sind.Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Kann man die Maus irgendwie außerhalb des X
Window Systems benutzen?Falls Sie den normalen Konsoltreiber &man.syscons.4; benutzen,
können Sie den Mauszeiger auf Textkonsolen zum
Kopieren und Einfügen von Text verwenden. Starten
Sie den Mausdämon &man.moused.8; und schalten Sie den
Mauszeiger auf der virtuellen Konsole ein:&prompt.root; moused -p /dev/xxxx -t yyyy
&prompt.root; vidcontrol -m onxxxx ist der
Gerätename der Maus und
yyyy ist das Protokoll.
Der Mausdämon erkennt die Protokolle der meisten
Mäuse (mit Ausnahme alter serieller Mäuse)
automatisch, wenn Sie auto für
das Protokoll angeben. Falls das Protokoll nicht
automatisch erkannt wird, finden Sie die
unterstützten Protokolle in der
&man.moused.8; Manualpage.Wenn Sie eine PS/2-Maus besitzen und diese beim
Systemstart aktivieren wollen, tragen Sie die Zeile
moused_enable="YES" in die Datei
/etc/rc.conf ein. Falls Sie den
Mausdämon auf allen virtuellen Bildschirmen anstatt
nur auf der Konsole benutzen wollen, tragen Sie außerdem
allscreens_flags="-m on" in
/etc/rc.conf ein.Während der Mausdämon läuft, muß
der Zugriff auf die Maus zwischen dem Mausdämon und
anderen Programmen, wie X Windows, koordiniert werden.
Die FAQ Warum funktioniert meine
meine Maus unter X nicht? enthält weitere
Details.Wie funktioniert das Kopieren und Einfügen von
Text mit der Maus auf einer Textkonsole?Wenn Sie es geschafft haben, den Mausdämon zu
starten (wie im vorherigen
Abschnitt gezeigt), halten Sie die linke Maustaste
gedrückt und bewegen Sie die Maus, um einen
Textabschnitt zu markieren. Dann drücken Sie die
mittlere Maustaste, um den Text an der
Cursorposition einzufügen.Wenn Sie keine 3-Tasten-Maus besitzen, können
Sie die mittlere Maustaste mit einer Tastenkombination
emulieren oder die Funktion der mittleren Taste auf
eine andere Taste legen. Einzelheiten dazu enthält
die Hilfeseite &man.moused.8;.Wird meine USB-Maus von FreeBSD
unterstützt?Experimentelle Treiber für USB-Geräte sind
seit FreeBSD 3.1 Bestandteil des Systems. Die
Unterstützung in FreeBSD 3.X war allerdings nicht
ganz ausgereift. Seit FreeBSD 4.0 sollten
USB-Geräten auf Anhieb funktionieren. Wenn Sie die
Treiber für USB-Mäuse in FreeBSD 3.X selbst
testen möchten, sollten Sie den unten
aufgeführten Anweisungen folgen:Benutzen Sie FreeBSD 3.2 oder eine neuere
Version.Tragen Sie die folgenden Zeilen in die
Konfigurationsdatei Ihres Kernels ein und erzeugen Sie
einen neuen Kernel.
device uhci
device ohci
device usb
device ukbd
options KBD_INSTALL_CDEV
Falls Sie eine ältere FreeBSD-Version als
FreeBSD 4.0 benutzen, müssen Sie diese
Einträge verwenden:
controller uhci0
controller ohci0
controller usb0
controller usm0
Erzeugen Sie im Verzeichnis
/dev die notwendigen
Dateien:&prompt.root; cd /dev
&prompt.root; ./MAKEDEV ums0Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Tragen Sie in der
/etc/rc.conf die folgenden Zeilen
ein:
moused_enable="YES"
moused_type="auto"
moused_port="/dev/ums0"
moused_flags=""
usbd_enable="YES"
usbd_flags=""
Weitergehende Informationen zum Thema moused
finden sie im vorherigen
Abschnitt.Wenn Sie Ihre USB-Maus auch unter X benutzen
wollen, müssen sie die Datei
XF86Config ändern. Wenn Sie
XFree86 3.3.2 oder eine neuere Version benutzen,
müssen die folgenden Zeilen im Abschnitt
Pointer stehen:
Device "/dev/sysmouse"
Protocol "Auto"
Wenn sie eine ältere Version von XFree86
benutzen, müssen im Abschnitt
Pointer die folgenden Angaben
stehen:
Device "/dev/sysmouse"
Protocol "SysMouse"
Weitergehende Informationen zum Thema "Maus und X"
erhalten Sie hier.Zur Zeit kann es noch Probleme geben, wenn Sie eine
USB-Maus im laufenden Betrieb einstecken oder abziehen.
Um Probleme zu vermeiden, sollten Sie die Maus
anschließen, bevor Sie das System anschalten und die
Maus nicht abziehen, solange das System noch
läuft.Meine Maus hat ein neumodisches Rad und mehr
Knöpfe. Kann ich sie in FreeBSD benutzen?Unglücklicherweise lautet die Antwort:
Vielleicht. Solche Mäuse mit
zusätzlichen Extras erfordern in den meisten
Fällen spezielle Treiber. Wenn der
Gerätetreiber für die Maus oder das
Anwendungsprogramm keine spezielle Unterstützung
für die Maus bietet, wird sie sich wie eine
gewöhnliche Maus mit zwei oder drei Knöpfen
verhalten.Ob und wie Sie das Rad unter X benutzen können,
können Sie im passenden
Abschnitt der FAQ erfahren.Wie benutze ich Maus/Trackball/Touchpad auf meinem
Laptop?Bitte lesen Sie die Antwort
zur vorherigen Frage und sehen Sie sich die
Webseite über Mobile
Computing an.Welche Arten von Bandlaufwerken werden
unterstützt?FreeBSD unterstützt SCSI-, QIC-36- (mit
QIC-02-Schnittstelle) und QIC-40/80-Bandlaufwerke
(diskettenbasiert). Hierzu gehören auch 8-mm (aka
Exabyte) und DAT-Laufwerke. Die QIC-40/80-Laufwerke sind
bekanntlich sehr langsam.Einige der frühen 8-mm-Laufwerke sind nicht
besonders kompatibel zu SCSI-2 und könnten unter
FreeBSD nicht einwandfrei funktionieren.Unterstützt FreeBSD Bandwechsler?FreeBSD 2.2 unterstützt SCSI-Wechsler mit dem
Gerät ch und dem Befehl
chio. Details zum Betrieb des
Wechslers können Sie in der Manualpage &man.chio.1;
finden.Falls Sie nicht AMANDA oder
ein anderes Produkt benutzen, das den Wechsler bereits
kennt, bedenken Sie, daß die Programme nur wissen,
wie sie ein Band von einem Punkt zu einem anderen bewegen
müssen. Sie selbst müssen sich also merken, in
welchem Einschub sich ein Band befindet und zu welchem
Einschub das Band, das sich gerade im Laufwerk befindet,
zurück muß.Welche Soundkarten werden von FreeBSD
unterstützt?FreeBSD unterstützt die Soundkarten SoundBlaster,
SoundBlaster Pro, SoundBlaster 16, Pro Audio Spectrum 16,
AdLib und Gravis UltraSound. MPU-401 und kompatible
MIDI-Karten werden begrenzt unterstützt. Ebenso
werden Karten, die der Microsoft Sound
System-Spezifikation entsprechen, durch den pcm-Treiber
unterstützt.Das gilt nur für Sound! Dieser Treiber
unterstützt keine CDROMs, SCSI oder Joysticks auf
diesen Karten, außer der SoundBlaster. Die
SoundBlaster-SCSI-Schnittstelle und einige
Nicht-SCSI-CDROMs werden unterstützt, Sie
können von diesen Geräten aber nicht
booten.Abhilfen für fehlenden Sound von es1370 mit dem
pcm-Treiber?Sie können den folgenden Befehl jedesmal nach dem
Booten ausführen:&prompt.root; mixer pcm 100 vol 100 cd 100Welche Netzwerkkarten unterstützt
FreeBSD?In den Hardware Informationen zu jedem FreeBSD Release
werden die unterstützten Karten aufgezählt.Ich habe keinen mathematischen Co-Prozessor - ist das
schlimm?Dies betrifft nur Besitzer von 386/486SX/486SLC -
andere Maschinen haben in ihrer CPU einen
integriert.Im allgemeinen wird das keine Probleme verursachen,
aber es gibt Gelegenheiten bei denen es Sie betreffen wird
- entweder bei der Performance oder bei der Genauigkeit
der Emulation (lesen Sie den Abschnitt über Gleitpunkt-Emulation).
Insbesondere wird das Zeichnen von Bögen in X SEHR
langsam sein. Es wird dringend empfohlen, daß Sie
sich einen mathematischen Co-Prozessor kaufen - er ist
sein Geld wert.Einige Co-Prozessoren sind besser als andere. Es
tut uns weh, es zu sagen, aber es ist noch niemand
dafür entlassen worden, daß er bei Intel
eingekauft hat. Hüten Sie sich vor Clones, es sei
denn, Sie sind sicher, daß sie unter FreeBSD
funktionieren.Welche Geräte werden noch von FreeBSD
unterstützt?Im Handbuch
finden Sie eine Liste von anderen unterstützten
Geräten.Unterstützt FreeBSD Power-Management auf meinem
Laptop?Auf einigen Rechnern unterstützt FreeBSD
APM. Suchen Sie bitte in der
Kernelkonfigurationsdatei LINT nach
dem Wort APM.Wieso hängt sich mein Micron-System beim Booten
auf?Einige Micron Motherboards besitzen eine
nicht-konforme PCI-BIOS-Implementierung. Sie bereitet
Kummer, wenn FreeBSD bootet, weil PCI-Geräte nicht an
der angegebenen Adresse konfiguriert werden.Deaktivieren Sie Plug and Play Operating
System im BIOS, um dieses Problem zu beheben.
Weitere Informationen können unter http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron
+ url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">#micron
gefunden werden.Wieso erkennt FreeBSD meinen neueren Adaptec-Controller
nicht?Die Chips der neueren Adaptec AIC789-Serie werden
unter dem CAM SCSI System unterstützt, das sein Debut
in 3.0 gemacht hat. Patches für 2.2-STABLE befinden
sich in ftp://ftp.de.FreeBSD.org/pub/FreeBSD/development/cam/.
+ url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/development/cam/">.
Eine Bootdiskette mit CAM-Erweiterung ist unter http://people.FreeBSD.org/~abial/cam-boot/
+ url="http://people.FreeBSD.org/~abial/cam-boot/">
erhältlich. Lesen Sie in beiden Fällen die
Datei README, bevor Sie beginnen.Wieso erkennt FreeBSD mein internes Plug &
Play-Modem nicht?Sie werden die PnP-ID Ihres Modems in die PnP-ID-Liste
des seriellen Treibers aufnehmen müssen. Erstellen
Sie einen neuen Kernel mit dem Eintrag controller
pnp0 in der Konfigurationsdatei und rebooten Sie
Ihr System, um die Plug & Play-Unterstützung zu
aktivieren. Der Kernel wird nun alle PnP-IDs der
gefundenen Geräte ausgeben. In der Datei
/sys/i386/isa/sio.c finden Sie ab
Zeile 2777 (ca.) eine Tabelle, in der Sie die PnP-ID des
Modems eintragen müssen. Suchen Sie die Zeichenfolge
SUP1310 in der Struktur
siopnp_ids[], um die Tabelle zu finden.
Erstellen Sie den Kernel nochmals, installieren Sie ihn,
rebooten Sie, und Ihr Modem sollte erkannt werden.Möglicherweise müssen Sie in der
boot-time-Konfiguration die PnP-Geräte manuell mit
einem pnp-Befehl ähnlich
pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8
konfigurieren, damit das Modem erkannt wird.Unterstützt FreeBSD Software Modems, wie die
Winmodems?FreeBSD unterstützt viele Software-Modems, wenn
Sie zusätzliche Software installieren. Der Port
comms/ltmdm bietet
Unterstützung für Modems, die auf dem oft
verwendeten Lucent LT Chipsatz basieren. Der Port
comms/mwavem
bietet Unterstützung für die Modems im IBM
Thinkpad 600 und 700.Sie können FreeBSD nicht über ein
Software-Modem installieren, diese Software kann nur
installiert werden, nachdem das Betriebssystem installiert
wurde.Wie kann ich den boot:-Prompt auf einer seriellen
Konsole erscheinen lassen?Erstellen Sie einen Kernel mit options
COMCONSOLE.Erstellen Sie /boot.config mit
als einzigem Text in der Datei.Ziehen Sie das Tastaturkabel aus dem
Rechner.Lesen Sie
/usr/src/sys/i386/boot/biosboot/README.serial
zur Information.Warum arbeitet meine 3Com PCI-Netzwerkkarte in meinem
Micron-Computer nicht?Einige Micron Motherboards besitzen eine
nicht-konforme PCI-BIOS-Implementierung, die die
PCI-Geräte nicht an den angegebenen Adressen
konfiguriert. Hierdurch entstehen Probleme, wenn FreeBSD
bootet.Deaktivieren Sie die Option Plug and Play
Operating System im BIOS, um das Problem zu
umgehen.Weitere Informationen zu diesem Problem gibt es unter
dem URL: http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron.
+ url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">.
Unterstützt FreeBSD Symmetric Multiproccessing
(SMP)?SMP wird erst ab Version 3.0 unterstützt. SMP
ist im Standardkernel (GENERIC) nicht
aktiviert; wenn Sie SMP verwenden wollen, müssen Sie
einen angepaßten Kernel erstellen. Die dazu
notwendigen Optionen können Sie der Datei
/sys/i386/conf/LINT
entnehmen.Wenn ich ein System mit einem ASUS K7V Mainboard von
der Bootdiskette starte, hängt sich das System auf.
Wie kann ich dieses Problem lösen?Schalten Sie im BIOS die Option boot virus
protection aus.FehlerbehebungWas sollte ich tun, wenn auf meiner Festplatte
fehlerhafte Blöcke sind?SCSI-Laufwerke sollten in der Lage sein, diese
automatisch zu verlagern. Bei einigen Laufwerken ist
diese Eigenschaft jedoch aus unerfindlichen Gründen
bei der Auslieferung ausgeschaltet...Um sie einzuschalten, müssen Sie den Page-Mode
des ersten Gerätes editieren. Unter FreeBSD
können Sie das (als root) mit
folgendem Befehl tun&prompt.root; scsi -f /dev/rsd0c -m 1 -e -P 3und die Werte für AWRE und ARRE von 0 auf 1
ändern:-
AWRE (Auto Write Reallocation Enbld): 1
ARRE (Auto Read Reallocation Enbld): 1
Die folgenden Abschnitte wurden von Ted Mittelstaedt
tedm@toybox.placo.com eingesendet:Bei IDE-Laufwerken sind fehlerhafte Blöcke
normalerweise ein Zeichen für potentielle Probleme.
Bei allen modernen IDE-Laufwerken ist eine interne
Verlagerung von fehlerhaften Blöcken eingeschaltet.
Heutzutage bieten alle IDE-Festplattenhersteller eine
umfassende Garantie und tauschen Laufwerke mit
fehlerhaften Blöcken um.Falls Sie ein IDE-Laufwerk mit fehlerhaften
Blöcken trotzdem weiterbenutzen möchten,
können Sie versuchen, sich vom Hersteller ein
IDE-Diagnoseprogramm herunterzuladen und dies über
das Laufwerk laufen zu lassen. Manchmal können diese
Programme so eingestellt werden, daß sie die
Elektronik des Laufwerks dazu veranlassen, das Laufwerk
nochmals nach fehlerhaften Blöcken zu durchsuchen und
diese auszuschließen.Auf ESDI-, RLL- und MFM-Laufwerken sind fehlerhafte
Blöcke nichts ungewöhnliches und im allgemeinen
kein Zeichen für Probleme. Auf einem PC
übernehmen der Festplatten-Controller und das BIOS
die Aufgabe, fehlerhafte Sektoren auszuschließen,
was bei Betriebssystemen wie DOS, die das BIOS benutzen,
um auf die Platte zuzugreifen, auch gut funktioniert. Die
Festplattentreiber von FreeBSD benutzen allerdings nicht
das BIOS, weshalb ein Mechanismus bad144 existiert, der
diese Funktionalität ersetzt. bad144 arbeitet nur
mit dem wd-Treiber (und wird damit von FreeBSD 4.X nicht
unterstützt) und kann NICHT für SCSI benutzt
werden. bad144 arbeitet, indem es alle gefundenen,
fehlerhaften Sektoren in eine spezielle Datei
schreibt.Eine Einschränkung von bad144 ist, daß die
Datei mit den fehlerhaften Sektoren auf die letzte Spur
der Platte plaziert wird. Da diese Datei nun
möglicherweise eine Liste von fehlerhaften Sektoren
enthalten könnte, die am Anfang der Platte auftreten,
wo sich möglicherweise die /kernel-Datei befindet,
muß sie vom Bootstrap-Programm, das BIOS-Routinen
benutzt, um den Kernel zu lesen, erreichbar sein. Das
bedeutet, daß Platten, auf denen bad144 benutzt
wird, 1024 Zylinder, 16 Köpfe und 63 Sektoren nicht
überschreiten dürfen. Platten, die von bad144
verwaltet werden, sind also effektiv auf 500MB
begrenzt.Setzen Sie Bad Block Scanning
während der Installation im fdisk-Menü einfach auf
ON, um bad144 zu verwenden. Dies funktioniert bis zu
FreeBSD 2.2.7. Die Platte darf nicht mehr als 1024
Zylinder besitzen. Generell wird empfohlen, daß die
Festplatte vorher mindestens vier Stunden in Betrieb war,
um ihr die Möglichkeit zur thermischen Ausdehnung und
Spurversetzung zu geben.Falls eine Platte mehr als 1024 Zylinder besitzt (wie
z.B. große ESDI-Laufwerke), benutzt der Controller
einen speziellen Übersetzungsmodus, um den Betrieb
unter DOS zu ermöglichen. Der wd-Treiber kennt diese
Übersetzungsmodi, WENN Sie die
translated-Geometrie mit dem set
geometry-Befehl in fdisk eingeben. Sie
dürfen NICHT den dangerously dedicated
Modus zur Erstellung der FreeBSD-Partition verwenden,
weil dieser die Geometrie ignoriert und obwohl fdisk Ihre
überschriebene Geometrie benutzen wird, ist die wahre
Größe der Platte noch bekannt und es wird
versucht, eine zu große FreeBSD-Partition zu
erstellen. Wenn die Plattengeometrie in die
übersetzte Geometrie geändert worden ist, dann
muß die Partition manuell durch Angabe der
Blockanzahl erstellt werden.Sie können mit dem ESDI-Controller auch
kurzerhand eine große ESDI-Platte erstellen, diese
dann mit DOS booten und als DOS-Partition formatieren.
Anschließend booten Sie mit dem
FreeBSD-Installationsprogramm und im fdisk-Menü notieren
Sie sich die Blockgröße und die Anzahl
Blöcke der DOS-Partition. Dann ändern Sie die
Geometrie in die gleiche, wie die von DOS verwendete,
löschen die DOS-Partition und erstellen eine
kooperative FreeBSD-Partition mit der
gleichen Blockgröße, die Sie zuvor notiert
haben. Machen Sie die Partition nun bootfähig und
schalten Sie Bad Block Scanning ein. Während der
tatsächlichen Installation wird bad144 gestartet, bevor
irgendwelche Dateisysteme erstellt werden (Sie können
das mit AltF2 beobachten). Falls irgendwelche Probleme
bei der Erstellung der Datei mit den fehlerhaften Sektoren
auftreten sollten, haben Sie eine zu große
Plattengeometrie eingestellt - rebooten Sie Ihr System und
beginnen Sie von vorne (die Neupartitionierung und
Formatierung unter DOS eingeschlossen).Falls die Verlagerung fehlerhafter Blöcke
aktiviert ist und Sie trotzdem fehlerhafte Blöcke
bemerken, sollten Sie einen Austausch des Laufwerkes in
Erwägung ziehen, da die fehlerhaften Blöcke mit
der Zeit zunehmen werden.Wieso erkennt FreeBSD meinen SCSI-Controller vom Typ Bustek
742a EISA nicht?Diese Information ist speziell für die 742a,
könnte aber auch andere Buslogic-Karten
einschließen (Bustek = Buslogic)Es gibt zwei grundverschiedene
Versionen der 742a-Karte. Das sind die
Hardware-Revisionen A-G und Revisionen von H
aufwärts. Der Revisionsbuchstabe befindet sich
hinter der Fabriknummer am Rand der Karte. Auf der 742a
befinden sich zwei Chips. Einer ist der BIOS-Chip, der
andere der Firmware-Chip. FreeBSD achtet nicht darauf,
welche BIOS-Version Sie haben, aber es achtet auf die
Version des Firmware-Chips. Buslogic schickt Ihnen
Upgrade-ROMs, wenn Sie sich an den technischen Support
wenden. Die BIOS- und Firmware-Chips müssen als
passende Paare ausgeliefert werden. Für Ihre
Hardware-Revision benötigen Sie das aktuellste
Firmware-ROM auf Ihrer Adapter-Karte.Karten der Revision A-G akzeptieren
BIOS/Firmware-Paare bis zu 2.41/2.21. Die Karten der
Revisionen H und aufwärts akzeptieren die aktuellsten
BIOS/Firmware-Paare 4.70/3.37. Der Unterschied der
Firmware-Versionen ist, daß die 3.37-Firmware
round robin unterstützt.Auf den Buslogic-Karten befindet sich auch eine
Seriennummer. Falls Sie eine Karte mit einer alten
Hardwarerevisionsnummer besitzen, können Sie sich an
die RMA-Abteilung von Buslogic wenden, Ihre Seriennummer
angeben und versuchen, die Karte gegen eine neuere
Hardwarerevision auszutauschen. Falls Ihre Karte nicht zu
alt ist, wird dem Tausch zugestimmt werden.Von FreeBSD 2.1 werden nur Firmwarerevisionen ab 2.21
aufwärts unterstützt. Wenn Sie eine ältere
Firmwarerevision besitzen, wird Ihre Karte nicht als
Buslogic-Karte erkannt. Sie könnte jedoch als
Adaptec 1540 erkannt werden. Die frühe Firmware von
Buslogic enthält eine AHA1540
Emulation, wovon bei EISA-Karten jedoch
abzuraten ist.Wenn sie eine Karte mit einer alten
Hardwarerevisionsnummer besitzen und die 2.21-Firmware
für sie bekommen, müssen Sie den Jumper W1 in
die Position B-C setzen; die Voreinstellung ist
A-B.Wieso wird der SCSI-Controller meines HP Netserver nicht
erkannt?Hierbei handelt es sich um ein bekanntes Problem. Der
auf dem Board befindliche EISA-SCSI-Controller auf dem HP
Netserver belegt die EISA-Slotnummer 11, wodurch sich alle
wirklichen EISA-Slots vor ihm befinden.
Leider kollidiert der Adreßraum von EISA-Slots
>=10 mit dem Adreßraum, der PCI zugeordnet ist und
die Autokonfiguration von FreeBSD kann mit dieser
Situation derzeit nicht besonders gut umgehen.Die einfachste Alternative ist, diese Kollision
einfach zu leugnen. Setzen Sie dazu die Kerneloption
EISA_SLOTS auf den Wert 12.
Konfigurieren und kompilieren Sie den Kernel, wie im
Handbucheintrag
zur Kernelkonfiguration beschrieben.Dies bringt Ihnen natürlich das klassische
Huhn-Ei-Problem, wenn Sie auf einer solchen Maschine
installieren wollen. Um dieses Problem zu umgehen,
existiert ein spezieller Hack in
UserConfig. Benutzen Sie nicht die
visuelle Schnittstelle, sondern die rohe
Kommandozeilenschnittstelle. Geben Sie einfach
eisa 12
quit
am Prompt ein und Sie können Ihr System ganz
normal installieren. Sie sollten auf jeden Fall einen
angepaßten Kernel zu kompilieren und
installieren.Zukünftige Versionen werden hoffentlich eine
passende Lösung für dieses Problem
beinhalten.Sie können keine dangerously
dedicated Platte auf einem HP Netserver
verwenden. Lesen Sie weitere Informationen finden Sie
in diesem
Hinweis.Was ist mit diesem CMD640-Controller los?Er ist fehlerhaft. Er kann Befehle auf beiden
Kanälen nicht simultan behandeln.Es gibt jetzt eine Abhilfe, die automatisch aktiviert
wird, wenn Ihr System diesen Chip benutzt. Details finden
Sie in der Manualpage zum Plattentreiber (&man.wd.4;).Wenn bei Ihnen bereits FreeBSD 2.2.1 oder 2.2.2 mit
einem CMD640-Controller läuft und Sie den zweiten
Kanal benutzen möchten, erstellen Sie einen neuen
Kernel mit options "CMD640". Dies ist
seit 2.2.5 Voreinstellung.Was bedeuten die ständigen Meldungen ed1:
timeout?Dies wird meistens durch einen Interruptkonflikt
verursacht (z.B., wenn zwei Karten den selben Interrupt
benutzen). Vor 2.0.5R war FreeBSD diesbezüglich
tolerant und die Treiber für Netzwerkkarten
funktionierten auch bei IRQ-Konflikten. Seit 2.0.5R
werden IRQ-Konflikte jedoch nicht länger toleriert.
Booten Sie mit der Option -c und ändern Sie die
Einträge zu ed0/de0/... Ihrem Board
entsprechend.Wenn Sie den BNC-Anschluß Ihrer Netzwerkkarte
benutzen, könnte es auch sein, daß es sich
Geräte-Timeouts aufgrund fehlerhafter Terminierung
handelt. Um dies zu überprüfen, verbinden Sie
einen Terminator direkt mit der Netzwerkkarte (ohne Kabel)
und beobachten Sie, ob die Fehlermeldungen
verschwinden.Einige NE2000 kompatible Karten melden diesen Fehler,
wenn keine Verbindung am UTP-Eingang existiert oder wenn
das Kabel nicht eingesteckt ist.Warum funktioniert meine 3COM 3C509 plötzlich
nicht mehr?Diese Karte ist dafür berüchtigt, ihre
Konfiguration zu vergessen. Sie müssen die Karte mit
dem DOS-Programm 3c5x9.exe neu
konfigurieren.Mein an der parallel Schnittstelle angeschlossener
Drucker ist unglaublich langsam. Was kann ich
tun?Falls das einzige Problem ist, daß er
schrecklich langsam ist, dann sollte Sie versuchen, den
Setting
the Communication Mode for the Parallel Port zu ändern, wie es im
Kapitel Printing
des Handbuchs beschrieben ist.Wieso brechen meine Programme gelegentlich mit
Signal 11-Fehlern ab?Das Signal 11 wird generiert, wenn ein Prozeß
versucht, auf Speicher zuzugreifen, obwohl er vom
Betriebssystem dazu nicht befugt wurde. Wenn Ihnen das
scheinbar zufällig immer wieder passiert, sollten Sie
der Sache einmal auf der Grund gehen.Das Problem hat in der Regel eine der folgenden
Ursachen:Wenn das Problem nur in einer bestimmten
Anwendung auftritt, die Sie selbst entwickeln, dann
ist es wahrscheinlich ein Fehler in Ihren
Sourcen.Wenn das Problem in einem Teil von FreeBSD
auftritt, könnte es natürlich auch ein
Fehler sein; aber in den meisten
Fällen werden diese Probleme gefunden und behoben,
bevor die typischen Leser der FAQ (wir) diese Teile
der Sourcen benutzen können (dafür gibt es
schließlich -CURRENT).Wenn der Fehler auftritt, wenn Sie ein Programm
compilieren aber dabei immer wieder an anderer Stelle
auftritt, dann ist das ein ganz eindeutiger Hinweis,
daß das Problem nicht bei
FreeBSD liegt.Nehmen wir zum Beispiel an, daß Sie make
buildworld ausführen und die Compilierung von
ls.c in ls.o
abbricht. Wenn Sie nochmal "make buildworld"
durchführen und die Compilierung an der gleichen
Stelle abbricht, handelt es sich um einen Fehler in den
Sourcen. Aktualisieren Sie Ihre Sourcen und versuchen Sie
es noch einmal. Wenn der Fehler jedoch an einer anderen
Stelle auftritt, liegt das Problem mit an Sicherheit
grenzender Wahrscheinlichkeit bei Ihrer Hardware.Was Sie tun sollten:Im ersten Fall können Sie einen Debugger wie z.B.
gdb benutzen, um die Stelle im Programm zu finden, an der
auf eine falsche Adresse zugegriffen wird und danach den
Fehler beheben.Im zweiten Fall müssen Sie sicherstellen,
daß das Problem nicht von Ihrer Hardware verursacht
wird.Typische Ursachen dafür sind unter
anderem:Es könnte sein, daß Ihren Festplatten
zu warm wird: Überprüfen Sie, ob die
Lüfter in Ihrem Gehäuse noch funktionieren,
damit Ihre Festplatten (und andere Hardware) nicht
heißlaufen.Der Prozessor überhitzt, weil Sie Ihn
übertaktet haben oder der CPU-Kühler
ausgefallen ist. Sie müssen sicherstellen,
daß Sie Ihre Hardware unter den Bedingungen
betreiben, für die sie spezifiziert ist,
zumindestens während Sie versuchen, das Problem
zu lösen. Mit anderen Worten: Betreiben Sie
Ihre CPU mit der normalen Taktfrequenz.Wenn Sie übertakten, sollten Sie daran
denken, daß ein langsames System deutlich
billiger ist als ein defektes System. Die große
Masse hat nicht sehr häufig Mitgefühl mit
Problemen bei übertakteten System, auch wenn Sie
es für ungefährlich halten.Unzuverlässiger Speicher: Wenn Sie mehr als
ein SIMM/DIMM installiert haben, sollten Sie sie alle
ausbauen und die Maschine testweise mit jedem SIMM
oder DIMM einzeln betreiben. So können Sie
feststellen, ob die Ursache ein einzelnes SIMM/DIMM
oder auch eine Kombination von Modulen ist.Zu optimistische Einstellung des Mainboards: In
Ihrem BIOS und mit den Jumpern auf dem Mainboard
können Sie diverse Timings ändern. In den
meisten Fällen reichen die Defaults aus, aber
manchmal kann es durch zu wenig wait states, die
Einstellung RAM Speed: Turbo oder
ähnliches zu merkwürdigen Problemen kommen.
Ein möglicher Ansatz ist, die BIOS defaults zu
laden, allerdings könnte es sinnvoll sein, die
aktuellen Einstellungen vorher zu notieren.Schlechte oder fehlerhafte Stromversorgung des
Mainboards: Wenn Sie unbenutzte Steckkarten, Platten
oder CDROMs in Ihrem System haben, sollten Sie sie
testweise ausbauen oder die Stromversorgung abziehen.
Dadurch können Sie prüfen, ob Ihr Netzteil
eventuell mit einer geringeren Last besser
zurechtkommt. Sie können auch testweise ein
anderes, am besten ein leistungsfähigeres,
Netzteil ausprobieren. Wenn Sie zur Zeit ein
250W-Netzteil benutzen, sollten Sie testweise ein
300W-Netzteil einbauen.Die sollten ebenfalls die SIG11 FAQ (unten
aufgeführt) lesen, da sie gute Erklärungen
für alle diese Probleme enthält (allerdings aus
Linux-Sicht). Sie erklärt ebenfalls, warum sowohl
Programme als auch Geräte zur Speicherprüfung
fehlerhaften Speicher teilweise nicht erkennen.Wenn alle diese Schritte nicht helfen, ist es
möglich, daß Sie einen Fehler in FreeBSD
gefunden haben. Folgen Sie einfach den Anweisungen
für die Erstellung eines Problem Reports.Es existiert eine ausführliche FAQ hierzu unter
der
SIG11-Problem-FAQMein System stürzt mit der Meldung
Fatal trap 12: page fault in kernel
mode oder panic: ab und
gibt eine Menge zusätzlicher Informationen aus. Was
kann ich tun?Die Entwickler von FreeBSD interessieren sich für
solchen Meldungen, allerdings brauchen Sie deutlich mehr
Informationen als die, die Ihnen angezeigt werden.
Kopieren Sie die komplette Meldungen und lesen Sie nun den
FAQ-Eintrag über kernel panics.
Erzeugen sie einen Kernel mit den zusätzlichen Daten
zur Fehlersuche, und dann einen backtrace. Das hört
sich komplizierter an, als es ist. Sie brauchen keine
Programmier-Erfahrung, Sie müssen einfach nur den
Anweisungen folgen.Wieso wird beim Booten der Bildschirm schwarz und reagiert
nicht mehr?Dies ist ein bekanntes Problem mit der ATI Mach 64
Videokarte. Das Problem besteht darin, daß diese
Karte die Adresse 2e8 benutzt und die
vierte serielle Schnittstelle ebenfalls. Aufgrund eines
Fehlers (einer Besonderheit?) im &man.sio.4;-Treiber wird
diese Schnittstelle angesprochen, auch wenn Sie gar keine
vierte serielle Schnittstelle besitzen und
sogar, wenn sie sio3 (die vierte
Schnittstelle), die normalerweise diese Adresse verwendet,
deaktivieren.Bis der Fehler behoben ist, können Sie folgende
Abhilfe verwenden:Geben Sie am Bootprompt ein.
(Dies bringt den Kernel in den
Konfigurationsmodus).Deaktivieren Sie sio0,
sio1,
sio2 und
sio3 (alle). Auf diese Weise
wird der sio-Treiber nicht aktiviert und das Problem
tritt nicht mehr auf.Geben Sie exit ein, um den Bootvorgang
fortzusetzen.Falls sie in der Lage sein wollen Ihre seriellen
Schnittstellen zu benutzen, müssen Sie einen neuen
Kernel mit folgenden Modifikationen erstellen: suchen Sie
in /usr/src/sys/i386/isa/sio.c nach
der Zeichenkette 0x2e8 und löschen
Sie sie und das vorhergehende Komma (nicht das folgende
Komma). Nun folgen Sie der normalen Prozedur zur
Erstellung eines neuen Kernels.Auch nach Anwendung dieser Maßnahmen könnte
es sein, daß Ihr X Windows-System nicht einwandfrei
funktioniert. Wenn dies der Fall ist, stellen Sie sicher,
daß es sich bei der von Ihnen benutzten X
Windows-Version mindestens um XFree86 3.3.3 oder
höher handelt. Diese Version und höhere
besitzen eine integrierte Unterstützung für
Mach64-Karten und sogar einen dedizierten X-Server
für sie.Wieso verwendet FreeBSD nur 64 MB Hauptspeicher,
obwohl in meinem Rechner 128 MB sind?Aufgrund der Art und Weise, wie FreeBSD die
Hauptspeichergröße vom BIOS mitgeteilt bekommt,
kann es lediglich 16-Bit Werte in kByte-Größe
(65535 kByte = 64MB) erkennen (oder weniger... einige
BIOSe setzen die Hauptspeichergröße auf 16MB).
Falls Sie mehr als 64MB besitzen, wird FreeBSD versuchen,
das zu erkennen, was aber nicht immer
funktioniert.Um dieses Problem zu umgehen, müssen Sie die
untenstehende Kerneloption verwenden. Es gibt einen Weg,
vollständige Hauptspeicherinformationen vom BIOS zu
erhalten, aber in den Bootblöcken ist nicht
genügend Platz dafür vorhanden. Wenn der
Platzmangel in den Bootblöcken eins Tages behoben
ist, werden wir die erweiterten BIOS-Funktionen dazu
nutzen, die vollständigen Hauptspeicherinformationen
zu erhalten... aber zur Zeit sind wir auf die Kerneloption
angewiesen.options
"MAXMEM=n"Hierbei ist n Ihre
Hauptspeichergröße in Kilobyte. Bei einer 128
MB-Maschine müßten Sie
131072 benutzen.Wieso stürzt FreeBSD 2.0 mit der Meldung
kmem_map too small! ab?Die Nachricht kann auch mb_map too
small! lauten.Diese Meldung zeigt an, daß der virtuelle
Speicher für Netzwerkpuffer (spezieller mbuf-Cluster)
aufgebraucht ist. Sie können die für mbuf
verfügbare Größe an VM erhöhen, indem
Sieoptions
"NMBCLUSTERS=n"in Ihre Kernelkonfigurationsdatei einfügen, wobei
n, abhängig davon,
wieviele gleichzeitige TCP-Verbindungen Sie
unterstützen müssen, eine Zahl aus dem Bereich
512-4096 ist. Ich würde Ihnen empfehlen, 2048 zu
probieren - das sollte Sie von solchen Paniksituationen
vollkommen befreien. Sie können die Anzahl der
zugeordneten/benutzten mbuf-Cluster im System mit
netstat -m beobachten. Der
voreingestellte Wert für NMBCLUSTERS ist 512
+ MAXUSERS * 16.Wieso erhalte ich die Meldung /kernel:
proc: table is full?Der FreeBSD-Kernel beschränkt die Anzahl der
gleichzeitig laufenden Prozesse. Die Anzahl errechnet
sich aus dem Wert der Variablen
MAXUSERS in der Konfigurationsdatei des
Kernels. Auch andere Einstellungen wie die Anzahl der
Puffer für Netzwerkoperationen (Details dazu
finden Sie in diesem
Abschnitt). werden durch
MAXUSERS beeinflußt. Wenn Ihr
System stark belastet ist, sollten Sie den Wert von
MAXUSERS erhöhen. Dadurch werden
diverse Einstellung des Systems angepaßt und die
maximale Anzahl gleichzeitig laufender Prozesse
erhöht.Seit FreeBSD 4.4 kann der Wert von
MAXUSERS über die Variable
kern.maxusers in der Datei
/boot/loader.conf angepaßt
werden. In älteren Versionen mußten Sie
MAXUSERS in der Konfigurationsdatei
für Ihren angepaßten Kernel
ändern.Wenn Ihr System nicht besonders stark ausgelastet ist
und Sie einfach nur mehr gleichzeitig laufende Prozesse
erlauben wollen, können Sie den Wert des sysctl
kern.maxproc erhöhen.
Wenn diese Prozesse von einem einzigen Benutzer
ausgeführt werden, müssen Sie den Wert von
kern.maxprocperuid ebenfalls
erhöhen. Dieser Wert muß immer mindestens um
eins geringer sein als der Wert von
kern.maxproc value. (Der Grund
für diese Einschränkung ist, daß ein
Systemprogramm, &man.init.8;, immer ausgeführt werden
muß.)Damit Änderungen eines sysctl auch bei einem
Neustart des Systems erhalten bleiben, müssen Sie
diese bei aktuellen FreeBSD-Versionen in
/etc/sysctl.conf eintragen. In
älteren Versionen wurden sie in
/etc/rc.local eingetragen.Wieso erhalte ich die Meldung CMAP busy
panic, wenn ich mein System mit einem neuen
Kernel starte?Die Logik, die versucht, veraltete
/var/db/kvm_*.db-Dateien zu erkennen,
versagt manchmal und die Benutzung einer unpassenden Datei
kann zu Paniksituationen führen.Falls das passiert, rebooten Sie im Single-User-Modus
und löschen Sie die Dateien:&prompt.root; rm /var/db/kvm_*.dbWas soll mir die Meldung ahc0: brkadrint,
Illegal Host Access at seqaddr 0x0
sagen?Dies ist ein Konflikt mit einem Ultrastor SCSI
Hostadapter.Rufen Sie während des Bootprozesses das
Kernelkonfigurationsmenü auf und deaktivieren Sie
uha0, welches das Problem
verursacht.Wenn ich mein System starte, erhalte ich die Meldung
ahc0: illegal cable configuration,
obwohl die Verkabelung korrekt ist. Woran liegt
das?Auf Ihrem Mainboard fehlen ein paar Logikbausteinen,
die für die Unterstützung der automatischen
Terminierung notwendig sind. Stellen Sie in Ihrem
SCSI-BIOS manuell die korrekte Terminierung für Ihr
System ein, anstatt sich auf die automatische Terminierung
zu verlassen. Der Treiber für den AIC7XXX kann nicht
erkennen, ob die externen Logikbausteine für die
Erkennung der Kabel (und damit automatische Terminierung)
vorhanden sind. Der Treiber muß sich darauf
verlassen, daß diese vorhanden sind, wenn in der
Konfiguration automatische Terminierung
eingestellt ist. Ohne die externen Bausteine ist es sehr
wahrscheinlich, daß der Treiber die Terminierung
falsch einstellt, was die Zuverlässigkeit des
SCSI-Busses herabsetzen kann.Wieso meldet Sendmail mail loops back to
myself?Dies wird in der Sendmail-FAQ wie folgt
beantwortet:- * Ich erhalte "Local configuration error" Meldungen, wie:
553 relay.domain.net config error: mail loops back to myself
554 <user@domain.net>... Local configuration error
Wie kann ich dieses Problem lösen?
Sie haben durch die Benutzung einer MX-Zeile eingestellt, daß
Mail für die Domäne (z.B. domain.net) an einen speziellen
Host (in diesem Fall relay.domain.net) weitergeleitet wird,
aber der Relay-Host erkennt sich selbst nicht als
domain.net. Fügen Sie domain.net in /etc/mail/local-host-names
(falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net"
in /etc/mail/sendmail.cf ein.
Die aktuelle Version der Sendmail-FAQ
wird nicht mehr mit dem Sendmail-Release verwaltet. Sie
wird jedoch regelmäßig nach comp.mail.sendmail,
comp.mail.misc,
comp.mail.smail,
comp.answers und
news.answers
gepostet. Sie können auch eine Kopie per E-Mail
bekommen, indem Sie eine Mail mit dem Inhalt send
usenet/news.answers/mail/sendmail-faq an
mail-server@rtfm.mit.edu schicken.Wieso funktionieren bildschirmorientierte Anwendungen beim
Zugriff über ein Netzwerk nicht richtig?Die entfernte Maschine scheint den Terminaltyp auf
etwas anderes als den Typ cons25, der
von FreeBSD verlangt wird, zu setzen.Es gibt mehrere mögliche Abhilfen für dieses
Problem:Setzen Sie die Shell-Variable TERM nach dem
Einloggen auf der entfernten Maschine auf
ansi oder sco,
sofern die entfernte Maschine diese Terminaltypen
kennt.Benutzen Sie einen VT100-Emulator wie
screen auf der
FreeBSD-Console. screen
bietet Ihnen die Möglichkeit, mehrere
gleichzeitige Sitzungen von einem Bildschirm aus
laufen zu lassen. Es ist ein sehr nettes Programm.
Jedes screen-Fenster
verhält sich, wie ein VT100-Terminal, weshalb die
Variable TERM am entfernten Ende auf
vt100 gesetzt werden
sollte.Installieren Sie den Eintrag
cons25 in der Bildschirmdatenbank
der entfernten Maschine. Wie das zu geschehen hat,
hängt vom Betriebssystem der entfernten Maschine
ab. Das Systemadministrationshandbuch für das
entfernte System sollte Ihnen hierbei helfen
können.Starten Sie einen X-Server auf der FreeBSD-Seite
und benutzen Sie einen X-basierten Terminalemulator
wie xterm oder
rxvt, um sich auf der entfernten
Maschine einzuloggen. Die Variable TERM auf dem
entfernten Host sollte auf xterm
oder vt100 gesetzt werden.Wieso meldet mein Rechner calcru: negative
time...?Dies kann durch verschiedene Hardware- oder
Softwareprobleme in Verbindung mit Interrupts verursacht
werden. Das kann aufgrund von Fehlern sein, aber es kann
auch durch die Eigenarten bestimmter Geräte
passieren. TCP/IP über die parallele Schnittstelle
mit einer großen MTU laufen zu lassen, ist ein
sicherer Weg, um dieses Problem hervorzurufen.
Grafikbeschleuniger können es auch verursachen. In
diesem Fall sollten Sie zunächst die
Interrupteinstellungen der Karte
überprüfen.Ein Seiteneffekt dieses Problems sind Prozesse, die
mit der Meldung SIGXCPU exceeded cpu time
limit abbrechen.Für FreeBSD 3.0 und spätere ab dem 29. Nov.
1998: Falls das Problem nicht anders gelöst werden
kann, besteht die Lösung darin, diese sysctl-Variable
zu setzen:&prompt.root; sysctl -w kern.timecounter.method=1Die Option von &man.sysctl.8;
sollte nicht mehr benutzt werden. Ab FreeBSD 4.4
wird die Option ignoriert. Sie können die Option
auch weglassen, wenn Sie mit sysctl
Variablen setzen.Das bedeutet zwar Performanceeinbußen, aber in
Anbetracht der Ursache für dieses Problem werden Sie
das wahrscheinlich nicht bemerken. Fall das Problem
weiter bestehen bleibt, lassen sie die sysctl-Variable auf
1 stehen und setzen Sie die Option
NTIMECOUNTER im Kernel auf immer
höhere Werte. Wenn Sie irgendwann
NTIMECOUNTER=20 erreicht haben sollten,
ist das Problem nicht gelöst. Die Interrupts auf
Ihrer Maschine sind für eine verläßliche
Zeiterhaltung nicht zu gebrauchen.Ich erhalte die Meldung pcm0 not
found oder meine Soundkarte wird als
pcm1 eingebunden, obwohl in meiner
Kernelkonfiguration device pcm0
steht. Was ist passiert?Dieser Effekt tritt auf, wenn Sie FreeBSD 3.X und eine
PCI Soundkarte haben. Das Gerät
pcm0 ist für ISA Soundkarten
reserviert; wenn Sie eine PCI Soundkarte haben, werden Sie
diese Meldung erhalten und Ihre Karte wird als
pcm1 eingebunden.Sie können das Problem nicht lösen, indem
Sie einfach in der Konfigurationsdatei für Ihnen
Kernel die Zeile device pcm1
eintragen. Wenn Sie dies tun, wird
pcm1 für ISA-Karten
reserviert und Ihre PCI-Karte wird zu
pcm2. Zusätzlich erhalten
Sie den Hinweis pcm1 not
found.Wenn Sie eine PCI Sounkarte haben, müssen Sie das
Gerät snd1 statt des
üblichen snd0
verwenden:&prompt.root; cd /dev
&prompt.root; ./MAKEDEV snd1Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Dieses Problem tritt in FreeBSD 4.X nicht mehr auf, da
große Anstrengungen unternommen wurden, diese
Version PnP-orientiert zu machen. In
FreeBSD 4.X ist das Gerät
pcm0 nicht mehr für
ISA-Karten reserviert.Warum wird meine PnP-Karte nicht mehr (oder nur noch als
unknown) erkannt, seit ich FreeBSD 4.X
benutze?FreeBSD 4.X ist deutlich
PnP-orientierter und das führt
leider dazu, daß einige PnP-Geräte (wie z.B.
Soundkarten und interne Modems) nicht mehr funktionieren,
obwohl Sie von FreeBSD 3.X noch erkannt wurden.Die Gründe für dieses Verhalten werden in
der unten zitierten Mail von Mail von Peter Wemm
erklärt. Diese Mail stammt von der Mailingliste
freebsd-questions und war eine Antwort auf eine Frage
bezüglich eines internen Modem, das nach dem Update
auf FreeBSD 4.X nicht mehr erkannt wurde.Die mit [] gekennzeichneten Kommentare
wurden eingefügt, um an einigen Stellen die Bezüge
klarstellen.
Das PnP-BIOS hat es [das Modem] vorkonfiguriert und
es dann im Adreßraum liegenlassen, daher haben es
die alten ISA-Erkennungsroutinen [in 3.X]
gefunden.In 4.0 sind die ISA-Routinen deutlich
PnP-orientierter. Es war möglich [in 3.X],
daß eine ISA-Erkennungsroutinen ein
zugelaufenes Gerät fand;
während die PnP-Treiber zwar die ID erkannten, das
Gerät aber wegen des Ressourcekonfliktes nicht
benutzen konnten. Daher werden die programmierbaren
Karten zunächst einmal abgeschaltet, um diese
doppelte Erkennung vermeiden zu können. Das
bedeutet allerdings auch, daß die Treiber die
PnP-ID kennen muß, um PnP-Hardware
unterstützen zu können. Wir haben uns
vorgenommen, den Benutzern eine einfachere
Möglichkeit zur Manipulation dieser Informationen
zur Verfügung zu stellen.
Damit Ihr Gerät wieder funktioniert, müssen
Sie seine PnP-ID herausfinden und die ID in die Listen
eintragen, die zur Erkennung von PnP-Geräten
genutzten werden. Zu diesem Zweck wird das Gerät mit
&man.pnpinfo.8; analysiert. Das Beispiel zeigt die
Ausgaben von &man.pnpinfo.8; für ein internes
Modem:&prompt.root; pnpinfo
Checking for Plug-n-Play devices...
Card assigned CSN #1
Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff
PnP Version 1.0, Vendor Version 0
Device Description: Pace 56 Voice Internal Plug & Play Modem
Logical Device ID: PMC2430 0x3024a341 #0
Device supports I/O Range Check
TAG Start DF
I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8
[16-bit addr]
IRQ: 4 - only one type (true/edge)[weitere TAG Zeilen gestrichen]TAG End DF
End Tag
Successfully got 31 resources, 1 logical fdevs
-- card select # 0x0001
CSN PMC2430 (0x3024a341), Serial Number 0xffffffff
Logical device #0
IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
IRQ 5 0
DMA 4 0
IO range check 0x00 activate 0x01Sie benötigen die Information aus der Zeile
Vendor ID ganz im Anfang. Die in Klammern
ausgegebene hexadezimale Zahl (0x3024a341 in diesem
Beispiel) ist die PnP ID und die unmittelbar davor
stehende Zeichenkette (PMC2430) ist eine eindeutige
Herstellerkennung.Benutzen Sie &man.pciconf.8; wenn &man.pnpinfo.8; die Karte
nicht anzeigt. Der Teil der Ausgabe von
pciconf -vl für eine auf dem
Motherboard integrierte Soundkarte sieht zum Beispiel so
aus:&prompt.root; pciconf -vl
chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '82801AA 8xx Chipset AC'97 Audio Controller'
class = multimedia
subclass = audioSie benötigen die Chip-ID 0x24158086,
die hinter chip aufgeführt ist.Die Herstellerkennung oder die Chip-ID müssen in die
Datei /usr/src/sys/isa/sio.c
eingetragen werden.Sie sollten zunächst ein Backup von
sio.c anlegen, falls irgendwas
schiefgehen sollte. Sie werden auch einen Patch erzeugen
müssen, um ihn zusammen mit Ihrem PR einzusenden.
(Sie wollten doch einen PR schreiben, oder etwa nicht?)
Öffnen Sie nun sio.c mit einem
Editor und suchen Sie nach der Zeile
static struct isa_pnp_id sio_ids[] = {
und blättern Sie dann nach unten, um die passende
Stelle für Ihr Gerät zu finden. Unten finden
Sie Beispiel für die Einträge, diese sind nach
der Herstellerkennung sortiert. Diese sollte in dem
Kommentar auf der rechten Seite aufgenommen werden, dazu
kommt die Gerätebeschreibung (Device
Description) aus der Ausgabe von
&man.pnpinfo.8;:
{0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */
{0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */
{0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */
{0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */
{0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */
Fügen Sie die hexadezimale Gerätekennung an
der richtigen Stelle ein, speichern Sie die Datei ab,
erzeugen Sie einen neuen Kernel und starten Sie Ihr System
neu. Ihr Gerät sollte nun wie bei FreeBSD 3.X als
sio Gerät erkannt werden.Warum erhalte ich die Meldung nlist
failed, wenn ich Programme wie
top oder systat
benutze?Das Programm sucht nach einem speziellen Symbol im
Kernel, kann es aber aus irgendeinem Grunde nicht finden.
Dieser Fehler wird von einem dieser Probleme
verursacht:Ihr Kernel und die sonstigen Programme (das
Userland) sind nicht mehr auf dem
gleichen Stand. Mit anderen Worten, Sie haben zwar
einen neuen Kernel erzeugt, aber kein
installworld (oder
umgekehrt); darum weicht die Symboltabelle von dem
ab, was die Anwendung erwartet. Wenn dies der Fall ist,
müssen Sie lediglich die noch fehlenden Schritte
des Upgrades durchführen. Die richtige
Vorgehensweise kann
/usr/src/UPDATING entnommen
werden.Um Ihren Kernel zu laden, benutzen Sie nicht
/boot/loader, sondern laden ihn
direkt mit boot2 (siehe &man.boot.8;). Es ist zwar
nicht immer ein Fehler,
/boot/loader zu umgehen; allerdings
ist er in der Regel besser dazu geeignet, die Symbole des
Kernels für normale Anwendungen verfügbar zu
machen.Wieso dauert es so lange, bis eine Verbindung
(&man.ssh.1; oder &man.telnet.1;) aufgebaut wird?Das Symptom: Nach dem Aufbau des TCP-Verbindung
vergeht einige Zeit, bis endlich die Abfrage des
Paßwortes (bzw. der Login-Prompt bei Telnet)
erscheint.Das Problem: In den meisten Fällen versucht der
Server in der Zwischenzeit, die IP-Adresse des Clients in
einen Rechnernamen zu übersetzen. Viele Server
(darunter die Telnet und SSH Server von FreeBSD) machen
das, um den Hostnamen z.B. für spätere
Verwendung durch den Systemadministrator in eine
Protokolldatei schreiben zu können.Die Lösung: wenn das Problem bei jedem Server
auftritt, den Sie von Ihrem Computer (dem Client)
ansprechen, dann wird das Problem vom Client verursacht.
Wenn das Problem aber nur auftritt, wenn jemand Ihren
Rechner (den Server) anspricht, dann liegt die Ursache
beim Server.Wenn das Problem vom Client verursacht wird,
müsssen Sie die Einträge im DNS korrigieren,
damit der Server Ihre IP-Adresse übersetzen kann.
Wenn das Problem in Ihrem lokalen Netzwerk auftritt,
sollten Sie es als Problem des Servers behandeln und
weiterlesen; wenn es allerdings im Internet auftritt,
werden Sie sich wahrscheinlich an Ihrem ISP wenden
müssen, damit dieser das Problem für Sie
korrigiert.Wenn das Problem vom Server verursacht wird und Sie
sich in einem lokalen Netzwerk befinden, dann müssen
Sie Ihren Server so konfigurieren, daß er die lokal
genutzten IP-Adressen in Rechnernamen übersetzen kann.
Weitere Informationen erhalten Sie in den Onlinehilfen zu
&man.hosts.5; und &man.named.8;. Wenn dieses Problem im
Internet auftritt, könnte die Ursache auch darin
liegen, daß die Namensauflösung auf dem Server
nicht funktioniert. Versuchen Sie, einen anderen
Hostnamen wie z.B. www.yahoo.com
aufzulösen. Wenn das nicht funktioniert, liegt das
Problem bei Ihrem System.Was bedeutet stray IRQ?Stray IRQs sind ein Zeichen für Probleme bei der
Behandlung von Hardware-IRQs. Sie werden meistens von
Geräten verursacht, die ihren Interrupt Request
zurückziehen, obwohl gerade der interrupt request
acknowledge-Zyklus läuft.Sie können drei Dinge tun:Ertragen Sie die Warnungen. Sie erhalten nur die
ersten 5 für jeden IRQ, alle anderen werden
unterdrückt.Eliminieren Sie die Meldungen, indem Sie in
isa_strayintr() den Wert 5 auf 0
ändern, um alle Meldungen zu
unterdrücken.Eliminieren Sie die Meldungen, indem Sie Hardware
für den Parallelport installieren, die IRQ 7
nutzt und vom PPP Treiber verwendet wird (das passiert
auf den meisten Systemen), und installieren Sie eine
IDE-Platte oder andere Hardware sowie einen dazu
passenden Treiber, um IRQ 15 zu nutzen.Warum sehe ich in der Ausgabe von dmesg häufig
die Meldung file: table is
full?Diese Fehlermeldung besagt, daß Sie die zur
Verfügung stehenden File-Handles des Systems
verbraucht haben. Was das genau bedeutet und wie Sie
dieses Problem lösen können, steht im Abschnitt
kern.maxfiles
im Kapitel Anpassung
der Kernelkonfiguration des Handbuchs.Warum ist die Uhrzeit auf meinem Laptop immer
falsch?Ihr Laptop verfügt über mehr als eine Uhr
und FreeBSD benutzt leider die falsche.Starten Sie &man.dmesg.8; und achten Sie auf die
Zeilen, in denen das Wort Timecounter
vorkommt. Die von FreeBSD benutzte Uhr steht in der
letzten Zeile, mit an Sicherheit grenzender
Wahrscheinlichkeit wird es TSC
sein.&prompt.root; dmesg | grep Timecounter
Timecounter "i8254" frequency 1193182 Hz
Timecounter "TSC" frequency 595573479 HzSie können das überprüfen, indem Sie
den Wert der Systemvariablen
kern.timecounter.hardware
abfragen.&prompt.root; sysctl kern.timecounter.hardware
kern.timecounter.hardware: TSCEs ist durchaus möglich, daß das BIOS die
TSC Uhr ändert, um beispielsweise den CPU-Takt zu
während des Batteriebetrieb zu ändern, oder im
Stromsparmodus; leider bemerkt FreeBSD diese
Änderungen nicht und daher scheint die Uhr falsch zu
gehen.In diesem Beispiel ist die Uhr
i8254 ebenfalls verfügbar; um sie
auszuwählen, muß ihr Name in die Systemvariable
kern.timecounter.hardware geschrieben
werden.&prompt.root; sysctl -w kern.timecounter.hardware=i8254
kern.timecounter.hardware: TSC -> i8254Die Uhrzeit Ihres Laptops sollte nun genauer
funktionieren.Damit diese Änderung automatisch beim Start des
Systems durchgeführt wird, müssen Sie die
folgende Zeile in die
/etc/sysctl.conf eintragen.kern.timecounter.hardware=i8254Warum erkennt mein Laptop PC-Cards nicht?Dieses Problem tritt häufig auf Laptops mit mehreren
Betriebssystemen auf. Einige nicht-BSD Betriebssysteme lassen
die Hardware in einem inkonsistenten Zustand. Die Karte wird
dann von pccardd als
"(null)""(null)" anstelle des
tatsächlichen Modells gefunden.Um dies zu beheben, müssen Sie die Hardware
zurücksetzen, das heißt der PC-Card Einschub
muß stromlos sein. Gehen Sie dazu nicht in den Standby-
oder Suspend-Modus und stellen Sie sicher, daß der Laptop
wirklich ausgeschaltet ist. Warten Sie einen Moment und booten
dann, Ihre PC-Card sollte jetzt funktionieren.Einige Laptops schalten sich nicht wirklich aus. Wenn der
obige Vorschlag nichts genutzt hat, entfernen Sie bitte die
Batterie, warten einen Moment und booten erneut.Wieso hängt sich FreeBSD nach dem BIOS-Bildschirm
mit der Meldung Read error
auf?Der Bootloader von FreeBSD erkennt die Geometrie Ihrer
Festplatte nicht richtig. Sie müssen die Geometrie
manuell festlegen, wenn sie mit fdisk FreeBSD-Bereiche
erzeugen oder ändern.Die richtigen Werte für die Geometrie können
Sie im BIOS des Rechners ablesen. Achten Sie auf die
Anzahl der Zylinder, Köpfe und Sektoren für Ihre
Festplatte.Im fdisk von &man.sysinstall.8; müssen Sie
G eingeben, um die Geometrie zu
definieren.Sie erhalten eine Dialogbox, in der Sie die Anzahl der
Zylinder, Köpfe und Sektoren eingeben können.
Verwenden Sie die Angaben des BIOS und setzen Sie
Schrägstriche zwischen die Zahlen.5000 Zylinder, 250 Köpfe and 60 Sektoren
würden also als 5000/250/60
eingegeben.Schließen Sie die Eingabe mit Enter
ab und drücken Sie W, um die neue
Partitionstabelle auf die Festplatte schreiben zu
lassen.Ein anderes Betriebssystem hat meinen Bootmanager
zerstört. Wie kann ich ihn wiederherstellen?Starten Sie &man.sysinstall.8; und wählen Sie
Configure, dann Fdisk. Wählen Sie die Platte, auf
der sich der Boot Manager befand, mit der
Leertaste aus. Drücken Sie
W, um die Änderungen auf die Platten
schreiben zu lassen. Nun erscheint eine Abfrage, welcher
Bootmanager installiert werden soll. Wählen Sie
diesen an und er wird wieder installiert.Was soll mir die Meldung swap_pager: indefinite
wait buffer: sagen?Ein Programm wollte Speicher auf Platte auslagern, und
dieser Vorgang konnte nicht innerhalb von 20 Sekunden
durchgeführt werden. Mögliche Gründe sind
defekte Blöcke auf der Platte, falsche oder
fehlerhafte Verkabelung sowie Probleme mit anderen
Komponenten, die am Zugriff auf die Festplatte beteiligt
sind. Wenn die Festplatte selbst fehlerhaft sind, sollten
Sie entsprechende Meldungen in
/var/log/messages und den Ausgaben
von dmesg finden. Andernfalls sollten
Sie die Kabel und Verbindungen
überprüfen.Was sind UDMA ICRC Fehler und wie behebe ich
sie?Der &man.ata.4;-Treiber meldet UDMA ICRC
Fehler wenn eine DMA-Übertragung zu oder von einem
Laufwerk fehlgeschlagen ist. Der Treiber versucht die
Übertragung mehrmals durchzuführen und schaltet,
wenn die Versuche fehlschlagen, vom DMA-Modus auf den
langsameren PIO-Modus um.Der Fehler kann viele Ursachen haben, häufig ist ein
Kabel kaputt oder die Geräte sind falsch verkabelt.
Prüfen Sie, ob die ATA-Kabel unbeschädigt sind und
für den verwendeten Ultra-DMA-Modus tauglich sind. Ebenso
müssen Wechselrahmen für den verwendeten Modus geeignet
sein. Stellen Sie sicher, daß alle Kabel fest
angeschlossen sind. Es gab auch schon Probleme, wenn ein altes
Laufwerk zusammen mit einem Ultra-DMA-66 oder einem schnelleren
Laufwerk auf einem Kanal betrieben wurde. Es kann aber auch
sein, dass das Laufwerk kaputt ist. Die meisten Hersteller
stellen Test-Programme für ihre Laufwerke zur
Verfügung. Überprüfen Sie damit Ihr Laufwerk und
wenn nötig, sichern Sie Ihre Daten und ersetzen das
Laufwerk.&man.atacontrol.8; zeigt für jedes ATA-Gerät den
verwendeten DMA- oder PIO-Modus an. Das Kommando
atacontrol mode
Kanal
zeigt die auf einem Kanal verwendeten Modi (die Kanäle
werden von 0 an nummeriert).Kommerzielle AnwendungenDieser Abschnitt ist immer noch sehr dürftig, aber
wir hoffen natürlich, daß Unternehmen einen Beitrag
leisten werden! :) Die FreeBSD-Gruppe hat keinerlei
finanzielle Interessen an einem der hier aufgelisteten
Unternehmen, sondern listet sie lediglich als
öffentlichen Service auf (und ist der Meinung, daß
ein kommerzielles Interesse an FreeBSD sehr positive
Einfluß auf ein langfristiges Bestehen von FreeBSD haben
kann). Wir möchten Anbieter kommerzieller Software dazu
aufrufen, ihren Eintrag hier aufnehmen zu lassen. Auf der
Anbieter-Seite finden Sie eine längere
Liste.Wo bekommen ich FreeBSD-Versionen der klassischen
Büro-Anwendungen?Die FreeBSD Mall
bietet eine FreeBSD-Version von VistaSource
ApplixWare 5 an.ApplixWare ist eine umfassende Sammlung von
Büroanwendungen, die eine Textverarbeitung, eine
Tabellenkalkulation, ein Programm für
Vorträge, ein Vektorzeichenprogramm und diverse
andere Programme beinhaltet.Die FreeBSD-Version von ApplixWare ist Bestandteil
der BSD Desktop Edition, die von FreeBSD Mall
vertrieben wird.Die Linux-Version von StarOffice
läuft unter FreeBSD problemlos. Die einfachste
Möglichkeit zur Installation der Linux-Version
von Staroffice ist die Benutzung der FreeBSD Ports.
Zukünftige Versionen der im Sourcecode vorliegenden
Variante OpenOffice
sollten auch problemlos funktionieren.Woher kann ich Motif für FreeBSD
bekommen?Der Quelltext für Motif 2.1.30 wurde von der
Open Group herausgegeben. Sie können
entweder das Package open-motif
installieren oder es mit dem entsprechenden Port selbst
compilieren. Weitere Informationen über die
Benutzung der Ports erhalten Sie im Kapitel Ports des
Handbuchs.Die Open Motif Distribution darf nur weitergegeben
werden, wenn sie auf einem Open Source
+ url="http://www.opensource.org">Open Source
Betriebssystem benutzt wird.Weiterhin gibt es auch kommerzielle Motif-Paket, die
zwar nicht kostenlos sind, aber dafür auch mit
closed source Software benutzt werden
dürfen. Um die günstigste ELF-Motiv 2.1.20
Distribution für FreeBSD (entweder i386 oder Alpha)
zu bekommen, wenden Sie sich bitte an Apps2go.Es gibt zwei Distributionen, die development
edition und die runtime edition
(wesentlich günstiger). Diese Distributionen
enthalten:OSF/Motif manager, xmbind, panner, wsm.Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.Statische und dynamische ELF-Bibliotheken (zur
Benutzung mit FreeBSD 3.0 und höher).Demonstrations-Applets.Achten Sie darauf, daß Sie bei der Bestellung
angeben, daß Sie die FreeBSD-Version von Motif
möchten (vergessen Sie auch nicht, die Architektur
anzugeben)! Von Apps2go werden auch
Versionen für NetBSD und OpenBSD verkauft. Dieses
Produkt ist zur Zeit nur zum Download per FTP
verfügbar.Weitere InformationenApps2go
Web-Seiteodersales@apps2go.com oder
support@apps2go.comoderTelefon (817) 431 8775 oder +1 817
431-8775Eine Motif 2.1-Distribution für FreeBSD im ELF-
oder a.out-Format ist bei Metro
Link erhältlich.Diese Distribution enthält:OSF/Motif manager, xmbind, panner, wsm.Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.Statische und dynamische Bibliotheken (verlangen
Sie ELF zur Verwendung unter FreeBSD ab 3.0 und oder
a.out zur Verwendung unter FreeBSD bis
einschließlich 2.2.8).Demonstrations-Applets.Vorformatierte Manualpages.Achten Sie darauf, bei der Bestellung anzugeben,
daß Sie die FreeBSD-Version von Motiv möchten!
Metro Link vertreibt auch Versionen
für Linux. Dieses Produkt ist entweder als CDROM
oder zum Download per FTP erhältlich.Eine Motif 2.0 Distribution für FreeBSD im
a.out-Format gibt es bei Xi
Graphics.Diese Distribution enthält:/OSF/Motif manager, xmbind, panner, wsm.Development-Kit mit uil, mrm, xm, xmcxx, Include-
und Imake-Dateien.Statische und dynamische Bibliotheken (zur
Verwendung unter FreeBSD 2.2.8 und
frühere).Demonstrations-Applets.Vorformatierte Manualpages.Achten Sie darauf, bei der Bestellung anzugeben,
daß Sie die FreeBSD-Version von Motiv möchten!
Xi Graphics verkauft auch Versionen
für BSDI und Linux. Dieses Produkt ist derzeit ein
Satz von vier Disketten... zukünftig wird es eine
einheitliche CD-Distribution geben, wie beim CDE.Woher kann ich CDE für FreeBSD bekommen?Xi Graphics hat einmal CDE
für FreeBSD verkauft, tut es aber nicht mehr.KDE ist ein
Open-Source X11-Desktop, das CDE in vielen Punkten
ähnelt. Eventuell gefällt Ihnen auch das "Look
and Feel" von xfce. KDE und xfce
sind über das Ports-System
von FreeBSD verfügbar.Gibt es irgendwelche kommerzielle leistungsfähige
X-Server?Ja, Xi
Graphics und Metro Link
vertreiben beschleunigte X-Produkte für FreeBSD und
andere Intel-basierte Systeme.Das Angebot von Metro Link besteht aus einem
leistungsfähigen X-Server, der einfache Konfiguration
unter Verwendung von Werkzeugen aus der
FreeBSD-Paketsammlung und Unterstützung für den
parallelen Einsatz mehrerer Videokarten bietet. Es wird
nur in binärer Form über ein bequemes
FTP-Download vertrieben. Ganz zu schweigen davon,
daß das Angebot von Metro Link zum sehr
günstigen Preis von 39 Dollar erhältlich
ist.Metro Link bietet auch Motif für FreeBSD sowohl
im ELF-, als auch im a.out-Format an (siehe oben).Weitere InformationenMetro
Link Web-Seiteodersales@metrolink.com oder
tech@metrolink.comoderTelefon (954) 938-0283 oder +1 954
938-0283Das Angebot von Xi Graphics besteht aus einem
leistungsfähigen X-Server, der einfache Konfiguration
und Unterstützung für den parallelen Einsatz
mehrerer Videokarten bietet. Es wird in binärer Form
in einer einheitlichen Diskettendistribution für
FreeBSD und Linux vertrieben. XI Graphics bietet auch
leistungsfähige X-Server, die auf die
Unterstützung von Laptops zugeschnitten sind.
Es gibt ein kostenloses
Kompatibilitäts-Demo der Version
5.0.Xi Graphics vertreibt auch Motif und CDE für
FreeBSD (siehe oben).Weitere InformationenXi Graphics
Web-Seiteodersales@xig.com oder
support@xig.comoderTelefon (800) 946 7433 oder +1 303
298-7478.Gibt es irgendwelche Datenbanksysteme für
FreeBSD?Ja! Lesen Sie den Abschnitt kommerzielle
Anbieter auf der FreeBSD-Web-Seite.Schauen Sie auch im Abschnitt Datenbanken
der Ports-Sammlung nach.Kann ich Oracle unter FreeBSD laufen lassen?Ja. Die folgenden Seiten beschreiben genau, wie
Linux-Oracle unter FreeBSD einzustellen ist:http://www.scc.nl/~marcel/howto-oracle.html
+ url="http://www.scc.nl/~marcel/howto-oracle.html">
http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd
+ url="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd">
BenutzerprogrammeNun, wo sind die ganzen Benutzerprogramme?Werfen Sie bitte einen Blick auf die
Ports-Seite, um Informationen über die nach
FreeBSD portierten Softwarepakete zu erhalten. Die Liste
enthält zur Zeit &os.numports; Einträge und
wächst täglich. Schauen Sie hier also
öfter nach oder melden Sie sich bei der Mailinglistefreebsd-announce
an, um sich regelmäßig über
Änderungen zu informieren.Die meisten Ports sind für die Zweige 2.2, 3.0
und 4.X erhältlich; viele von ihnen sollten auch auf
2.1.X-Systemen laufen. Jedesmal, wenn ein FreeBSD-Release
erstellt wird, wird auch ein Snapshot des Port-Baumes vom
Zeitpunkt des Releases in das Verzeichnis
ports/ eingefügt.Wir unterstützen auch das Konzept von
Packages - im Grunde genommen nicht mehr
als gezippte Binärdistributionen mit ein wenig
zusätzlicher Intelligenz zur Ermöglichung
angepaßter Installationen. Ein Package kann leicht
installiert und wieder deinstalliert werden, ohne,
daß man etwas über wissen muß, welche
Dateien es enthält.Benutzen Sie das Paketinstallationsmenü in
/stand/sysinstall (unter dem
Menüpunkt post-configuration) oder führen Sie den
Befehl &man.pkg.add.1; mit den speziellen
Paketdateien aus, die Sie installieren möchten.
Paketdateien können für gewöhnlich an der
Endung .tgz erkannt werden und
diejenigen, die über eine CDROM-Distribution
verfügen, haben auf ihrer CD ein Verzeichnis
packages/All, das solche Dateien
enthält. Für verschiedene FreeBSD-Versionen
können sie von folgenden Adressen auch über das
Netz heruntergeladen werden:für 2.2.8-RELEASE/2.2.8-STABLEftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/
+ url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/">
für 3.X-RELEASE/3.X-STABLEftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/
+ url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/">
für 4.X-RELEASE/4-STABLEftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/
+ url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/">
für 5.0-CURRENTftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/
+ url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/">
oder von Ihrem nächstgelegenen Mirror.Beachten Sie, daß nicht alle Ports als Package
verfügbar sind, da ständig neue hinzugefügt
werden. Es ist immer eine gute Idee, sich
regelmäßig auf der ftp.de.FreeBSD.org
Masterseite darüber zu informieren, welche Packages
verfügbar sind.Wo finde ich libc.so.3.0?Sie versuchen, ein Package für 2.2 oder neuer auf
einem 2.1.X-System laufen zu lassen. Bitte lesen Sie den
vorherigen Abschnitt und besorgen Sie sich den passenden
Port/das passende Package für Ihr System.Wieso erhalte ich die Meldung Error: can't
find libc.so.4.0?Sie haben versehentlich ein Package für ein 4.X-
oder 5.X-System heruntergeladen und versucht, es auf einem
2.X- oder 3.X-System zu benutzen. Bitte besorgen Sie sich
die für ihr System korrekte Version des
Packages.Warum produziert ghostscript auf meinem 386/486SX so
viele Fehlermeldungen?Sie haben keinen mathematischen Co-Prozessor, richtig?
Sie werden den alternativen mathematischen Emulator zu
Ihren Kernel hinzufügen müssen; tun Sie das,
indem Sie die folgende Zeile in Ihre
Kernelkonfigurationsdatei einfügen, wodurch der
Emulator in den Kernel kompiliert wird:
options GPL_MATH_EMULATE
Sie müssen die Option
MATH_EMULATE hierzu entfernen.Wieso werden mir Fehler bei socksys
gemeldet, wenn ich eine SCO/iBCS2-Anwendung laufen lasse?
(nur für FreeBSD 3.0 und ältere
Systeme)Sie müssen zunächst den letzten Abschnitt
der Datei /etc/sysconfig (oder
/etc/rc.conf) editieren und die
folgende Variable auf YES
setzen:
# Set to YES if you want ibcs2 (SCO) emulation loaded at startup
ibcs2=NO
Hierdurch wird das Kernelmodul ibcs2 beim Hochfahren
geladen.Dann müssen Sie /compat/ibcs2/dev so
einrichten:lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -> /dev/null
lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -> socksys
-rw-rw-r-- 1 root wheel 0 Oct 28 12:02 null
lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 socksys@ -> /dev/null
crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spxsocksys kann einfach auf
/dev/null zeigen, um open & close
eine reguläre Datei vorzutäuschen. Der code in
-CURRENT wird sich um den Rest kümmern. Dieses
Vorgehen ist wesentlich sauberer, als bisher. Falls Sie
den Treiber spx für lokale
Socket-X-Verbindungen möchten, definieren Sie
SPX_HACK, wenn Sie das System
kompilieren.Wie konfiguriere ich INN (Internet News) für
meine Maschine?Ein idealer Startpunkt nach der Installation des
Packages oder Ports news/inn
ist Dave
Barr's INN-Seite, wo Sie die INN-FAQ
finden.Welche Version von Microsoft FrontPage sollte ich mir
besorgen?Benutzen Sie den Port! Im Ports-Verzeichnis gibt es
eine vorbereitete Version von Apache,
apache13-fp.Unterstützt FreeBSD Java?Ja. Schauen Sie bitte hier http://www.de.FreeBSD.org/java/
nach.Warum kann ich manche Ports auf meiner
3.X-STABLE-Maschine nicht erstellen?Wenn Sie eine FreeBSD-Version benutzen, die deutlich
älter als das aktuelle -CURRENT oder -STABLE ist,
könnte es sein, daß Sie ein Ports-Upgrade-Kit
- von http://www.de.FreeBSD.org/ports/
+ von
benötigen. Wenn Sie auf dem neuesten Stand sind,
könnte es sein, daß jemand eine Änderung
des Ports durchgeführt hat, die für -CURRENT
funktioniert, den Port für -STABLE aber unbrauchbar
gemacht hat. Bitte senden Sie einen Fehlerbericht mit dem
Befehl &man.send-pr.1;. Von der Ports-Sammlung
wird nämlich erwartet, daß sie sowohl auf
-CURRENT als auch auf -STABLE funktioniert.Wo finde ich ld.so?Auf a.out basierende Anwendungen wie der Netscape
Navigator benötigen a.out Bibliotheken. Wenn Sie
eine auf ELF basierende FreeBSD-Version verwenden, werden
diese nicht standardmäßig installiert. In
diesem Fall wird Ihnen das System melden, daß
/usr/libexec/ld.so nicht vorhanden
ist. Sie können diese Bibliotheken mit der
Distribution compat22 nachinstallieren. Benutzen Sie dazu
&man.sysinstall.8;. Alternativ können Sie auch die
Quelldateien verwenden:&prompt.root; cd /usr/src/lib/compat/compat22
&prompt.root; make install cleanWenn Sie bei jedem make world die
aktuellen compat22-Bibliotheken installieren wollen,
müssen Sie in /etc/make.conf die
Zeile COMPAT22=YES eintragen. Da sich
diese Bibliotheken aber nur sehr selten ändern, ist
dies nicht unbedingt erforderlich.Lesen Sie auch die ERRATAs für 3.1-R und
3.2-R.Ich habe die Sourcen aktualisiert, wie aktualisiere
ich jetzt die installierten Ports?FreeBSD enthält zwar kein Programm, das die
installierten Ports aktualisiert, allerdings existieren
diverse Programme, die diesen Prozeß etwas
vereinfachen. Weiterhin können Sie zusätzliche
Programme installieren, die Sie dabei
unterstützen.Sie können mit &man.pkg.version.1; ein Script
erzeugen, das die installieren Ports mit einer neueren
Version aus der Ports-Sammlung ersetzt:&prompt.root; pkg_version -c > /tmp/myscriptDas so erzeugte Script muß
manuell geändert werden, bevor es benutzt wird.
Neuere Versionen von &man.pkg.version.1; erzwingen dies,
indem sie ein &man.exit.1; an den Anfang des Scripts
setzen.Sie sollten die Ausgaben des Scripts abspeichern, da
sie Ihnen melden werden, welche Ports von den dem gerade
aktualisierten Port abhängen. Es ist möglich,
daß diese auch aktualisiert werden müssen. Der
typische Fall, in dem ein Update erforderlich ist, ist
eine Änderung der Versionsnummer einer shared
library; in diesem Fall müssen die abhängigen
Ports neu übersetzt werden, damit sie die neue
Library benutzen.Ab FreeBSD 5.0 steht die Option
in &man.pkg.version.1; nicht
mehr zur Verfügung.Falls Sie über genügend freien Plattenplatz
verfügen, können Sie diesen Prozeß mit
portupgrade automatisieren.
portupgrade umfaßt diverse
Programme, die die Arbeit mit Packages erleichtern und ist
als sysutils/portupgrade
verfügbar. Da portupgrade in Ruby
geschrieben wurde, wird es wahrscheinlich nie ein Bestandteil
von FreeBSD werden. Allerdings sollte das niemanden davon
abhalten, es trotzdem zu benutzen.Wenn Ihr System rund um die Uhr läuft, kann es
jede Woche automatisch eine Liste der Ports erzeugen, die
wahrscheinlich aktualisiert werden müssen. Fügen
Sie dazu weekly_status_pkg_enable="YES"
in /etc/periodic.conf ein.Warum ist /bin/sh so spartanisch?
Warum benutzt FreeBSD nicht die bash
oder eine ähnliche Shell?Weil der POSIX-Standard definiert, daß es so
eine Shell geben muß.Die ausführlichere Antwort: Viele Leute
müssen Shell-Programme schreiben, die auf vielen
verschiedenen Systemen nutzbar sein müssen. Aus
diesem Grund enthält der POSIX-Standard eine sehr
detaillierte Definition der Shell und der Hilfsprogramme.
Die meisten Programme werden für die Bourne Shell
geschrieben; außerdem nutzen mehrere wichtige
Schnittstellen (&man.make.1;, &man.system.3;,
&man.popen.3; und ihre Entsprechungen in höheren
Programmiersprachen wie Perl und Tcl) die Bourne Shell, um
Befehle auszuführen. Da die Bourne Shell an so
vielen Stellen und so häufig genutzt wird, muß
sie die folgenden Anforderungen erfüllen: Schneller
Start, ein klar definiertes Verhalten und ein
möglichst geringer Speicherverbrauch.Wir haben bei der vorliegenden Implementierung
versucht, möglichst viele dieser Anforderungen zu
erfüllen. Um /bin/sh nicht zu
groß werden zu lasen, haben wir viele der
Annehmlichkeiten der anderen Shells weggelassen. Aus
diesem Grund gibt es in den Ports die luxuriöseren
Shells wie bash, scsh, tcsh und zsh. Vergleichen Sie
einfach mal den Speicherverbrauch der verschiedenen
Shells, indem Sie ps -u aufrufen und
sich die Angaben in den Spalten VSZ und
RSS ansehen.Wieso dauert es so lange, bis Netscape und Opera
starten?In den meisten Fällen liegt es daran, daß
Ihre DNS-Einstellungen fehlerhaft sind. Sowohl Netscape
als auch Opera stellen Anfragen an DNS, wenn Sie gestartet
werden. Das Fenster des Browsers erscheint erst, wenn das
Programm eine Antwort erhalten hat oder es festgestellt
hat, daß Ihr System nicht an ein Netzwerk
angeschlossen ist.Ich habe die Ports-Sammlung mit
CVSup aktualisiert. Viele
Ports lassen sich danach nicht mehr bauen und geben
seltsame Fehlermeldungen aus. Was ist passiert? Ist
die Ports-Sammlung kaputt?Sie sollten immer die Teilsammlung
ports-base aktualisieren, wenn Sie
nur Teile der Ports-Sammlung mit Hilfe der
CVSup-Teilsammlungen
aktualisieren. Die Erklärung dazu finden Sie im
Handbuch.KernelkonfigurationIch möchte meinen Kernel anpassen. Ist das
schwierig?Überhaupt nicht! Lesen Sie den Abschnitt zur
Kernelkonfiguration im Handbuch.Sie sollten einen datierten Snapshot Ihres Kernels
als kernel.YYMMDD zu erstellen,
nachdem Sie alles zum Laufen gebracht haben.
Außerdem sollten Sie eine Kopie des Verzeichnisses
/modules erstellen, die den Namen
/modules.YYMMDD hat. Auf diese
Weise können Sie diesen Kernel hochfahren, anstatt
den ganzen Weg zurück zu
kernel.GENERIC gehen zu
müssen, wenn Sie das nächste Mal mit Ihrer
Konfiguration herumexperimentieren und dabei etwas
falsch machen sollten. Das ist besonders wichtig, wenn
Sie nun von einem Controller booten, der vom
GENERIC-Kernel nicht unterstützt wird.Was kann ich machen, wenn meine Kernel-Kompilierungen
fehlschlagen, weil _hw_float
fehlt?Lassen Sie mich raten. Sie haben
npx0 aus Ihrer
Konfigurationsdatei entfernt, weil Sie keinen
mathematischen Co-Prozessor besitzen, richtig? Falsch! :-)
npx0 ist zwingend
erforderlich. Auch, wenn Sie keinen
mathematischen Co-Prozessor besitzen,
müssen Sie das Gerät
npx0 einbinden.Warum ist mein Kernel so groß (über 10
MByte)?Sie haben Ihren Kernel wahrscheinlich im
Debug Modus erstellt. Ein
Debug-Kernel enthält viele zusätzliche
Informationen für die Fehlersuche, daher ist er so
groß. Bitte beachten Sie, daß die Verwendung
eines Debug-Kernels bei FreeBSD 3.0 und neueren Version
die Performance des Systems nicht oder nur minimal
reduziert; außerdem ist es für den Fall einer
system panic sehr praktisch, einen Debug-Kernel zur Hand
zu haben.Wenn Ihnen allerdings der Plattenplatz ausgeht oder
Sie einfach rein prinzipiell keinen Debug-Kernel benutzen
wollen, müssen die beiden folgenden Bedingungen
erfüllt sein:Die Konfigurationsdatei für Ihren Kernel darf
die folgende Zeile nicht enthalten:makeoptions DEBUG=-gSie dürfen &man.config.8; nicht mit dem
Parameter starten.Sollten Sie sich nicht an diese Einschränkungen
halten, wird Ihr Kernel im Debug-Modus erstellt. Solange
Sie sich an diese Einschränkungen halten, können
Sie Ihren Kernel ganz normal erstellen und die
Größe des Kernels sollte deutlich sinken. Ein
normaler Kernel ist nur 1.5 MByte bis 2 MByte
groß.Wieso erhalte ich Meldungen über Interrupt-Konflikte,
wenn ich eine Karte mit mehreren seriellen Schnittstellen
einsetzen will?Wenn ich einen Kernel mit Unterstützung für
serielle Multi-Port-Schnittstellen kompiliere, bekomme ich
den Hinweis, daß nur der erste Port geprüft
wird und die restlichen auf Grund von Interrupt-Konflikten
übersprungen werden. Wie kann ich das
Beheben?Das Problem besteht darin, daß in FreeBSD Code
integriert ist, um den Kernel vor Abstürzen aufgrund
von Hardware- oder Software-Konflikten zu bewahren.
Behoben wird es, indem die IRQ-Angaben für alle
Ports, bis auf einen ausgelassen werden. Hier ist ein
Beispiel:
#
# Multiport high-speed serial line - 16550 UARTS
#
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr
Wieso kann ich nicht einmal den Standard-Kernel
(GENERIC) bauen?Es gibt eine Reihe von möglichen Ursachen
für dieses Problem:Sie benutzen die neuen Kommandos make
buildkernel und make
installkernel nicht, obwohl die Sourcen auf
Ihrem System nicht zum laufenden System passen (z.B.
benutzen Sie die Sourcen von 4.3-RELEASE auf einem
System mit 4.0-RELEASE). Wenn Sie ein Upgrade
durchführen wollen, sollten Sie
/usr/src/UPDATING lesen, beachten
Sie insbesondere den Abschnitt COMMON
ITEMS gegen Ende des Dokuments.Sie benutzen zwar make
buildkernel und make
installkernel, aber Sie haben nicht darauf
geachtet, daß vorher ein komplettes
make buildworld durchgelaufen sein
muß. Um seine Arbeit erledigen zu können,
benötigt make buildkernel
Dateien, die von make buildworld
erzeugt werden.Auch wenn Sie FreeBSD-STABLE verwenden, ist
es durchaus möglich, daß Sie die Sourcen
genau zum falschen Zeitpunkt aktualisiert haben:
Während Sie gerade modifiziert wurden oder
kurzzeitig fehlerhaft waren. Eine absolute und
vollständige Garantie, daß Sie die Sourcen
compilieren können, gibt es nur für die
Releases, bei FreeBSD-STABLE ist das nicht
immer so. Wenn Sie es noch nicht versucht haben,
sollten Sie ihre Source nochmals aktualisieren. Es
ist denkbar, daß der von Ihnen genutzte Server
zur Zeit Probleme hat, benutzten Sie daher testweise
auch einmal einen anderen Server.Platten, Dateisysteme und Boot LoaderWie kann ich meine neue Festplatte in mein
FreeBSD-System einbinden?Lesen Sie das Tutorial zur Festplattenformatierung
unter www.de.FreeBSD.org.Wie verschiebe ich mein System auf meine neue,
große Platte?Die beste Methode ist, das Betriebssystem auf der
neuen Platte neu zu installieren und danach die Daten zu
verschieben. Wenn Sie -STABLE über eine Release
hinaus genutzt haben oder eine Release aktualisiert haben,
ist das sehr empfehlenswert. Sie können auf beiden
Platten &man.boot0cfg.8; installieren und die beiden
Versionen so lange parallel betreiben, bis Ihnen die neue
Konfiguration gefällt. Wenn Sie dies tun wollen,
können Sie im übernächsten Absatz erfahren,
wie sie Ihre Daten verschieben können.Falls Sie sich entscheiden, das nicht zu tun,
müssen Sie Ihre neue Platte partitionieren und
labeln. Benutzen Sie dafür entweder
/stand/sysinstall oder &man.fdisk.8;
und &man.disklabel.8;. Weiterhin sollten Sie mit
&man.boot0cfg.8; auf beiden Platten booteasy installieren,
damit Sie in der Lage sind, das alte und das neue System
abwechselnd zu starten, nachdem der Kopiervorgang
abgeschlossen ist. Im Formatting-Media
Tutorial finden Sie weitere Informationen zu
diesen Schritten.Nachdem Sie die neue Platte eingerichtet haben,
können Sie Ihre Daten verschieben. Dummerweise
können Sie die Daten nicht einfach kopieren. Dinge wie
Gerätedateien (in /dev),
erweiterte Dateiattribute und symbolische Links führen
dazu, daß das in die Hose geht. Sie müssen
ein Programm benutzen, das damit umgehen kann, und das
ist &man.dump.8;. Es wird oft empfohlen, die Daten im
Single-User Modus zu verschieben, aber das ist nicht
unbedingt notwendig.Sie sollten auf gar keinen Fall etwas anderes als
&man.dump.8; und &man.restore.8; benutzen, um Ihr Root-Filesystem
zu verschieben. Es könnte auch mit
&man.tar.1; funktionieren - oder auch nicht. Sie sollten
ebenfalls &man.dump.8; und &man.restore.8; benutzen, wenn
Sie eine komplette Partition auf eine andere, leere
Partition verschieben wollen. Um die Daten einer Partition mit
dump auf eine andere Partition zu verschieben, müssen
Sie die folgenden Schritte ausführen:Richten Sie in der neuen Partition mit newfs ein
Dateisystem ein.Mounten Sie die Partition temporär an einer
geeigneten Stelle.Wechseln Sie mit cd in dieses Verzeichnis.Lesen Sie die alte Partition mit dump aus und
lenken Sie die Ausgabe auf die neue Partition
um.Wenn Sie zum Beispiel root auf
/dev/ad1s1a verschieben wollen und
diese zur Zeit auf /mnt gemountet
ist, bedeutet das:&prompt.root; newfs /dev/ad1s1a
&prompt.root; mount /dev/ad1s1a /mnt
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore xf -Wenn Sie Ihre Partitionen mit &man.dump.8;
umorganisieren wollen, steht Ihnen etwas mehr Arbeit
bevor. Wenn Sie eine Partition wie
/var in die übergeordnete Partition
verschieben wollen, müssen Sie zunächst eine neue
Partition erzeugen, die die beiden alten Partitionen
aufnehmen kann. Der zweite Schritt ist, wie oben
beschrieben die übergeordnete Partition in die neue
Partition zu verschieben. Im dritten und letzten Schritt
verschieben Sie dann die untergeordnete Partition in das
leere Verzeichnis, das im zweiten Schritt entstanden
ist:&prompt.root; newfs /dev/ad1s1a
&prompt.root; mount /dev/ad1s1a /mnt
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore xf -
&prompt.root; cd var
&prompt.root; dump 0af - /var | restore xf -Wenn Sie ein Verzeichnis aus einer Partition
herauslösen wollen, also z.B.
/var auf eine eigene Partition
verlegen wollen, dann müssen Sie zunächst beide
Partitionen anlegen. Danach müssen Sie die
untergeordnete Partition im passenden Verzeichnis
unterhalb des temporären mount points mounten und zum
Abschluß die alte Partition verschieben:&prompt.root; newfs /dev/ad1s1a
&prompt.root; newfs /dev/ad1s1d
&prompt.root; mount /dev/ad1s1a /mnt
&prompt.root; mkdir /mnt/var
&prompt.root; mount /dev/ad1s1d /mnt/var
&prompt.root; cd /mnt
&prompt.root; dump 0af - / | restore xf -Eventuell sagen Ihnen für Benutzerdaten
&man.cpio.1;, &man.pax.1; oder &man.tar.1; eher zu als
&man.dump.8;. Allerdings haben alle diese Programme den
Nachteil, daß sie die erweiterten Dateiattribute
nicht verstehen, daher sollten Sie bei ihrem Einsatz
aufpassen.Gefährdet eine dangerously
dedicated Festplatte meine Gesundheit?Die Installationsprozedur bietet
Ihnen zwei verschiedene Methoden, Ihre Festplatte(n) zu
partitionieren. Die Standardmethode macht sie kompatibel
zu anderen Betriebssystemen auf derselben Maschine, indem
fdisk-Tabelleneinträge (unter FreeBSD
slices genannt) mit einem FreeBSD-Eintrag,
in dem eigene Partitionen untergebracht werden, benutzt
werden. Optional kann ausgewählt werden, ob ein
Boot-Selektor installiert werden soll, um zwischen den
möglichen Betriebssystemen auf der/den Platte(n)
wechseln zu können. Bei der zweiten Methode wird die
gesamte Platte für FreeBSD genutzt und nicht
versucht, kompatibel zu anderen Betriebssystemen zu
sein.Nun, warum wird es gefährlich
genannt? Eine Platte in diesem Modus enthält nichts,
was von normalen PC-Hilfsprogrammen als gültige
fdisk-Tabelle betrachtet werden würde. Abhängig
von der Qualität ihres Designs werden sie sich bei
Ihnen beschweren, sobald sie mit einer solchen Platte in
Kontakt kommen, oder noch schlimmer, sie könnten den
Bootstrap von FreeBSD beschädigen, ohne Sie zu fragen
oder darauf hinzuweisen. Hinzu kommt, daß vom
Layout von dangerously dedicated Platten
bekannt ist, daß es viele BIOSe verwirrt,
einschließlich solcher von AWARD (wie es z.B. im HP
Netserver oder Micronics-Systemen, sowie vielen anderen zu
finden ist) und Symbios/NCR (für die bekannte
53C8xx-Reihe von SCSI-Controllern). Dies ist keine
vollständige Liste - es gibt weitere. Symptome
für diese Verwirrung sind read
error-Meldungen, die vom FreeBSD-Bootstrap
ausgegeben werden, wenn es sich selbst nicht finden kann,
sowie Systemabstürze beim Booten.Warum gibt es diesen Modus dann überhaupt? Es
spart ein paar kByte an Plattenplatz und kann echte
Probleme verursachen, die zu einer Neuinstallation
führen. Die Ursprünge des Dangerously
dedicated Modus liegen in der Absicht, eines der
häufigsten Probleme, das Erstinstallierer von FreeBSD
plagt, zu verhindern - die BIOS-Werte für die
Geometrie einer Festplatte auf der
Festplatte selbst anzupassen.Geometrie ist ein veraltetes Konzept,
das aber immer noch die Grundlage für die Interaktion
zwischen dem PC-BIOS und den Festplatten ist. Wenn das
Installationsprogramm von FreeBSD Slices erstellt,
muß es sich die Lage dieser Slices auf der
Festplatte in einer Art merken, die damit
übereinstimmt, wie das BIOS erwartet, sie zu finden.
Wenn das falsch geschieht, werden Sie nicht in der Lage
sein, zu booten.Durch den Dangerously dedicated Modus
wird versucht, dies zu umgehen, indem das Problem
vereinfacht wird. In einigen Fällen klappt das zwar,
aber er ist eher als allerletzter Ausweg gedacht - in 99
von 100 Fällen gibt es bessere Möglichkeiten,
das Problem zu lösen.Wie vermeiden Sie also die Notwendigkeit zum
DD Modus, wenn Sie installieren? Beginnen
Sie, indem Sie sich notieren, welche Geometrie das BIOS
für Ihre Platten benutzt. Sie können erreichen,
daß der Kernel sie beim Booten ausgibt, indem Sie
an der Eingabeaufforderung
boot: angeben, oder boot
-v im Loader verwenden. Kurz bevor das
Installationsprogramm startet, wird der Kernel eine Liste
mit den BIOS-Geometrien ausgeben. Keine Panik - warten
Sie, bis das Installationsprogramm gestartet wurde und
benutzen Sie Scrollback, um die Zahlen zu lesen.
Typischerweise befinden sich die BIOS-Platten in derselben
Reihenfolge, wie FreeBSD Ihre Platten auflistet - zuerst
IDE, dann SCSI.Wenn Sie Ihre Festplatte in Slices unterteilen,
überprüfen Sie, ob die Plattengeometrie, die im
FDISK-Menü angegeben ist, korrekt ist (das heißt mit den
Einstellungen im BIOS übereinstimmen). Falls die
Werte nicht stimmen, benutzen Sie g, um
sie zu korrigieren. Diese Schritte sind nötig, wenn
sich absolut nichts auf der Festplatte befindet, oder,
wenn die Festplatte vorher in einem anderen System benutzt
worden ist. Beachten Sie, daß dies nur für die
Festplatte nötig ist, von der Sie booten wollen. Mit
weiteren vorhandenen Platten wird FreeBSD sich problemlos
zurechtfinden.Wenn Sie es geschafft haben, daß das BIOS und
FreeBSD in der Festplattengeometrie übereinstimmen,
dann sind Ihre Probleme ziemlich sicher vorüber -
ohne, daß es nötig gewesen wäre, den
DD-Modus zu benutzen. Falls sie jedoch
immer noch mit der gefürchteten read
error-Meldung begrüßt werden sollten,
wenn Sie versuchen, zu booten, wird es Zeit, daß Sie
Ihre Finger kreuzen und es einfach versuchen - es gibt
nichts mehr zu verlieren.Um eine dangerously dedicated
Festplatte wieder für einen normalen PC brauchbar zu
machen, gibt es zwei Möglichkeiten. Die erste ist,
ausreichend viele NULL-Bytes in den MBR zu schreiben, um
irgendwelche nachfolgenden Installation glauben zu machen,
daß es sich um eine leere Festplatte handelt. Sie
können das zum Beispiel so tun:&prompt.root; dd if=/dev/zero of=/dev/rda0 count=15Alternativ installiert der undokumentierte
DOS-BefehlC:\>fdisk /mbreinen neuen Master-Boot-Record, das heißt der
BSD-Bootstrap wird zerstört.Auf welchen Partitionen kann ich problemlos
Soft Updates einsetzen? Ich habe gehört, das der
Einsatz von Soft Updates auf /
Probleme verursachen kann.Die schnelle Antwort: Sie können Soft Updates
bedenkenlos auf alle Partitionen benutzen.Die ausführliche Antwort: Es gab lange Zeit
Bedenken, was den Einsatz von Soft Updates auf der
root-Partition betrifft. Der Grund sind zwei
Charakteristika der Soft Updates: Zum einen kann es bei
einem Absturz des System auf einer Partition mit
Soft Updates zum Datenverlust kommen. Die Partition ist
zwar noch brauchbar, aber einige Daten können
verloren gehen. Weiterhin kann es durch Soft Updates zu
einem zeitweisen Mangel an Plattenplatz kommen.Bei der Benutzung von Soft Updates kann es bis zu
dreißig Sekunden dauern, bis der Kernel
Änderungen auf das physikalische Speichermedium
schreibt. Wenn Sie eine große Datei löschen,
ist diese Datei noch auf der Platte vorhanden, bis der
Kernel die Löschoperation tatsächlich
durchführt. Das kann zu einem sehr einfachen Problem
führen: Stellen Sie sich vor, Sie löschen eine
große Datei und legen gleich darauf eine andere
große Datei an. Da die erste Datei noch nicht
wirklich gelöscht wurde, ist eventuell nicht genug
Platz für die zweite große Datei. Sie erhalten
die Fehlermeldung, daß nicht genug freier Platz
vorhanden ist, obwohl Sie ganz genau wissen, daß Sie
gerade eben Platz geschaffen haben. Wenn Sie die
Operation ein paar Sekunden später wiederholen,
funktioniert alles wie von Geisterhand. Dieser Effekt hat
mehr als einen Benutzer verwirrt und Zweifel an seiner
geistigen Stabilität oder dem FreeBSD-Dateisystem
aufkommen lassen.Wenn der Kernel ein Datenpaket annimmt und das System
abstürzt, bevor er dies Daten auf die Platte
geschrieben hat, kann es zum Verlust oder zur
Zerstörung von Daten kommen. Dieses Risiko ist nur
sehr gering und normalerweise tragbar. Wenn Sie
allerdings einen IDE-Write-Cache verwenden, steigt das
Risiko; daher wird normalerweise empfohlen, auf den
Einsatz dieser Technik zu verzichten, wenn Sie Soft Updates
benutzen.Diese beiden Probleme betreffen alle Partitionen, die
Soft Updates verwenden. Was bedeutet das für die
Root-Partition?Die wichtigen Daten auf der Root-Partition ändern
sich nur sehr selten. Dateien wie
/kernel und der Inhalt
/etc werden nur bei der Wartung des
Systems geändert, oder wenn Benutzer ihre
Paßwörter ändern. Wenn das System in den
30 Sekunden nach einer solchen Änderung
abstürzt, ist es möglich, das Daten verloren
gehen. Dieses Risiko ist in den meisten Fällen
unerheblich, aber es ist vorhanden. Wenn das zu viel
Risiko ist, dann sollten Sie Soft Updates nicht auf der
Root-Partition einsetzen./ war schon immer eine der
kleinsten Partitionen. Standardmäßig legt
FreeBSD das Verzeichnis /tmp direkt
auf /. Wenn in Ihrem
/tmp viel Betrieb ist, kann es
gelegentlich zu den oben beschriebenen Platzproblemen
kommen. Um das Problem zu lösen, sollten sie einen
symbolischen Link von /tmp nach
/var/tmp legen.Was stimmt mit meinem ccd nicht?Das Symptom hierfür ist:&prompt.root; ccdconfig -C
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or formatDas geschieht für gewöhnlich, wenn Sie
versuchen, die c Partitionen, die
standardmäßig vom Typ
unbenutzt sind, zu verbinden. Der
ccd-Treiber verlangt Partitionen vom Typ FS_BSDFFS.
Editieren Sie den Plattenlabel der Platten, die Sie zu
verknüpfen versuchen und ändern Sie die Typen
der Partitionen in 4.2BSD.Warum kann ich den Plattenlabel meines ccd nicht
editieren?Das Symptom hierfür ist:&prompt.root; disklabel ccd0
(hier wird etwas vernünftiges ausgegeben; versuchen wir nun, es zu editieren)
&prompt.root; disklabel -e ccd0
(editiern, speichern, beenden)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial labelDer Grund ist, daß der von ccd
zurückgelieferte Plattenlabel ein
vorgetäuschter ist, der sich nicht
wirklich auf der Platte befindet. Sie können das
Problem beheben, indem Sie ihn explizit
zurückschreiben, wie z.B. hier:&prompt.root; disklabel ccd0 > /tmp/disklabel.tmp
&prompt.root; disklabel -Rr ccd0 /tmp/disklabel.tmp
&prompt.root; disklabel -e ccd0
(nun wird es funktionieren)Kann ich andere fremde Dateisysteme unter FreeBSD
mounten?Digital UNIXUFS-CDROMs können unter FreeBSD direkt
gemountet werden. Das Mounten von Partitionen von
Digital UNIX und anderen Systemen, die UFS
unterstützen, könnte schwieriger sein,
abhängig von den Details der
Plattenpartitionierung des betreffenden
Betriebssystems.LinuxFreeBSD unterstützt seit Version 2.2
ext2fs-Partitionen. Unter
&man.mount.ext2fs.8; finden Sie weitere
Informationen.NTEs gibt einen NTFS-Treiber, der nur Lesezugriffe
gestattet. Weitere Informationen finden Sie im
Tutorium von Mark Ovens unter http://ukug.uk.FreeBSD.org/~mark/ntfs_install.html.
+ url="http://ukug.uk.FreeBSD.org/~mark/ntfs_install.html">.
Für weitere Informationen zu diesem Thema
wären wir sehr dankbar.Wie mounte ich eine erweiterte DOS-Partition?Die erweiterten DOS-Partitionen befinden sich hinter
ALLEN primären Partitionen. Wenn sich zum Beispiel
eine Partition E als sekundäre
DOS-Partition auf Ihrem zweiten SCSI-Laufwerk befindet,
müssen Sie die speziellen Dateien für
Slice 5 im Verzeichnis
/dev erstellen und dann
/dev/da1s5 mounten:&prompt.root; cd /dev
&prompt.root; ./MAKEDEV da1s5
&prompt.root; mount -t msdos /dev/da1s5 /dos/eLassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Gibt es ein verschlüsselndes Dateisystem
für &os;?Ja, security/cfs.Wie kann ich den NT-Loader zum Booten von FreeBSD
verwenden?Diese Prozedur unterscheidet sich für die Systeme
2.2.X and 3.X (mit dem dreistufigen Bootprozeß)
geringfügig.Das grundsätzliche Vorgehen besteht darin,
daß Sie den ersten Sektor Ihrer eigentlichen
FreeBSD-Rootpartition in eine Datei auf der
DOS/NT-Partition kopieren. Angenommen, sie nennen die
Datei etwa c:\bootsect.bsd (durch
c:\bootsect.dos inspiriert), dann
können Sie die Datei c:\boot.ini
etwa wie folgt editieren:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="FreeBSD"
C:\="DOS"
Bei 2.2.X-Systemen wird für diese Prozedur
angenommen, daß DOS, NT, FreeBSD oder was auch
immer, in den entsprechenden Partitionen auf
derselben Platte installiert wurden.
Das untenstehende Beispiel wurde auf einem System
getestet, auf dem DOS & NT in der ersten und FreeBSD
in der zweiten fdisk-Partition installiert waren.
Zusätzlich wurde FreeBSD so installiert, daß
es von seiner Partition bootet, und nicht vom MBR.Mounten Sie eine DOS-formatierte Diskette (falls Sie
nach NTFS gewechselt haben) oder die FAT-Partition z.B.
unter /mnt.&prompt.root; dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1Rebooten Sie mit DOS oder NT. Benutzer von NTFS
kopieren nun die Dateien bootsect.bsd
oder bootsect.lnx von der
Diskette nach C:\. Ändern Sie
die Attribute (Rechte) von boot.ini
mit:C:\>attrib -s -r c:\boot.iniEditieren Sie nun die Datei und fügen Sie die
entsprechenden Einträge aus dem obigen
boot.ini-Beispiel hinzu und setzen
dann wieder die alten Attribute:C:\>attrib +s +r c:\boot.iniFalls FreeBSD vom MBR bootet, restaurieren Sie den MBR
mit dem DOS-Befehl fdisk, nachdem Sie
FreeBSD so umkonfiguriert haben, daß es von seiner
Partition bootet.Für die FreeBSD-Systeme 3.X ist die Prozedur
etwas einfacher.Falls FreeBSD auf derselben Platte, wie die
NT-Bootpartition installiert ist, kopieren Sie einfach
/boot/boot1 nach
C:\BOOTSECT.BSD. Falls FreeBSD auf
einer anderen Platte installiert ist, wird
/boot/boot1 nicht funktionieren; Sie
brauchen in diesem Fall
/boot/boot0.SIE DÜRFEN AUF GAR KEINEN FALL EINFACH
/boot/boot0 STATT
/boot/boot1 KOPIEREN. WENN SIE DAS
DOCH TUN SOLLTEN, WIRD IHRE PARTITIONSTABELLE
ÜBERSCHRIEBEN UND IHR RECHNER WIRD NICHT MEHR
STARTEN!/boot/boot0 muß mit
sysinstall installiert werden. Wählen Sie dazu den
FreeBSD-Bootmanager aus, wenn Sie gefragt werden, ob sie
einen Bootmanager installieren wollen. Dieser Schritt ist
notwendig, weil /boot/boot0 eine
leere Partitionstabelle enthält, die von sysinstall
ausgefüllt wird, bevor
/boot/boot0 in den MBR kopiert
wird.Wenn der Bootmanager von FreeBSD gestartet wird, merkt
er sich das zuletzt gestartet Betriebssystem, indem er
dessen Partition als aktiv markiert. Danach kopiert er
sich selbst (alle 512 Bytes) in den MBR. Wenn Sie also
einfach /boot/boot0 nach
C:\BOOTSECT.BSD kopieren, würde
der Bootmanager eine leere Partitionstabelle (mit einem
als aktiv markiertem Eintrag) in den MBR kopieren.Wie boote ich FreeBSD und Linux mit LILO?Falls sich FreeBSD und Linux auf derselben Platte
befinden, folgen Sie einfach den Installationsanweisungen
von LILO zum booten eines Nicht-Linux-Betriebssystems.
Ganz knapp sind dies:Booten Sie Linux und fügen Sie die folgenden
Zeilen in die Datei /etc/lilo.conf
ein:
other=/dev/hda2
table=/dev/hda
label=FreeBSD
(hierbei wird angenommen, daß Ihre
FreeBSD-Partition Linux unter
/dev/hda2 bekannt ist; ändern
Sie dies entsprechend Ihren Einstellungen). Führen
Sie nun als root den Befehl
lilo aus und Sie sind fertig.Falls FreeBSD sich auf einer anderen Platte befindet,
müssen Sie loader=/boot/chain.b zu
den LILO-Angaben hinzufügen. Zum Beispiel:
other=/dev/dab4
table=/dev/dab
loader=/boot/chain.b
label=FreeBSD
In einigen Fällen könnte es sein, daß
Sie beim FreeBSD-Bootloader die BIOS-Laufwerksnummer
angeben müssen, um von der zweiten Platte booten zu
können. Wenn Ihre FreeBSD-SCSI-Platte vom BIOS zum
Beispiel als BIOS-Platte 1 erkannt wird, müssen Sie
am Prompt des FreeBSD-Bootloaders eingeben:Boot: 1:da(0,a)/kernelSeit Version 2.2.5 können Sie &man.boot.8; so
konfigurieren, daß das beim Booten automatisch
geschieht.Das Linux+FreeBSD
mini-HOWTO ist ein guter Ratgeber bei Fragen zur
Interaktion von FreeBSD und Linux.Wie boote ich FreeBSD und Linux mit BootEasy?Installieren Sie LILO am Anfang Ihrer
Linux-Bootpartition, anstatt im Master Boot Record. Sie
können LILO dann von BootEasy aus booten.Wenn Sie Windows-95 und Linux benutzen, wird das
ohnehin empfohlen, um es einfacher zu machen, Linux wieder
zu booten, wenn es nötig werden sollte, daß Sie
Windows95 neu installieren (Windows95 ist ein
eifersüchtiges Betriebssystem, das kein anderes
Betriebssystem im Master Boot Sektor duldet).Wie kann ich das ??? des
Boot-Managers durch etwas Sinnvolles ersetzen?Solange Sie den Boot-Manager nicht komplett neu
schreiben, gar nicht. Allerdings gibt es in der Kategorie
sysutils der Ports diverse
Boot-Manager, die diese Funktionalität
bieten.Ich habe ein Wechsellaufwerk. Wie benutze ich
es?Ob es sich um ein Wechsellaufwerk handelt, um ein ZIP-
oder ein EZ-Laufwerk (oder sogar ein Diskettenlaufwerk,
wenn Sie es auf diese Weise benutzen möchten), oder
um eine neue Festplatte - wenn es einmal installiert und
vom System erkannt ist und Sie Ihre
Kassette/Diskette/was_auch_immer eingelegt haben, ist das
Vorgehen bei allen Geräten ziemlich
ähnlich.(dieser Abschnitt basiert auf
Mark
Mayo's ZIP-FAQ)Wenn es sich um ein ZIP- oder Diskettenlaufwerk
handelt, und sich bereits ein DOS-Dateisystem darauf
befindet, können Sie einen Befehl wie diesen für
eine Diskette benutzen:&prompt.root; mount -t msdos /dev/fd0c /floppyoder diesen:&prompt.root; mount -t msdos /dev/da2s4 /zipfür eine ZIP-Disk mit der
Herstellerkonfiguration.Benutzen Sie bei anderen Platten &man.fdisk.8; oder
&man.sysinstall.8;, um herauszufinden, wie sie
konfiguriert sind.Die restlichen Beispiele sind für ein
ZIP-Laufwerk unter da2, der dritten SCSI-Platte.Wenn es sich nicht um eine Diskette oder eine
Wechselplatte handelt, die Sie mit anderen Leuten
austauschen wollen, ist es wahrscheinlich besser, ein
BSD-Dateisystem darauf zu installieren. Hierdurch
bekommen Sie Unterstützung für lange Dateinamen,
eine mindestens doppelt so hohe Leistungsausnutzung und
wesentlich höhere Stabilität. Zunächst
müssen Sie die Partitionen/Dateisysteme auf DOS-Ebene
nochmals erstellen. Sie können entweder
&man.fdisk.8; oder /stand/sysinstall
benutzen, oder, bei einem kleinen Laufwerk, dem Sie eine
Unterstützung für mehrere Betriebssysteme nicht
zumuten wollen, entfernen Sie einfach die komplette FAT
Partitionstabelle (Slices) und benutzen Sie einfach die
BSD-Partitionierung:&prompt.root; dd if=/dev/zero of=/dev/rda2 count=2
&prompt.root; disklabel -Brw da2 autoSie können disklabel oder
/stand/sysinstall benutzen, um mehrere
BSD-Partitionen zu erstellen. Dies werden Sie sicherlich
bei einer fest eingebauten Platte wollen, aber bei einem
Wechsellaufwerk wie einem ZIP ist das wahrscheinlich
irrelevant.Zum Schluß erstellen Sie ein neues Dateisystem -
dieses befindet sich auf unserem ZIP-Laufwerk und belegt
die gesamte Platte:&prompt.root; newfs /dev/rda2canschließend mounten Sie es:&prompt.root; mount /dev/da2c /zipUnd sicherlich ist es keine schlechte Idee, eine Zeile
ähnlich der folgenden in die Datei
/etc/fstab einzufügen, damit Sie
in Zukunft nur mount /zip einzugeben
brauchen:
/dev/da2c /zip ffs rw,noauto 0 0
Wieso erhalte ich die Meldung Incorrect
super block beim Mounten einer CDROM?Sie müssen &man.mount.8; mitteilen, was für
ein Gerät Sie mounten wollen. Genauere Informationen
dazu finden Sie im Kapitel Optische
Speichermedien des Handbuch, genauer gesagt im
Abschnitt Benutzung
von Daten-CDs.Wieso erhalte ich die Meldung Device not
configured, wenn ich eine CDROM
mounte?Das bedeutet im allgemeinen, daß sich keine
CDROM im Laufwerk befindet, oder, daß das Laufwerk
auf dem Bus nicht sichtbar ist. Dieses Problem wird im
Kapitel Benutzung
von Daten-CDs des Handbuchs ausführlich
diskutiert.Wieso werden alle Sonderzeichen in den Dateinamen auf
meinen CDs durch ? ersetzt, wenn ich die CD
unter FreeBSD benutze?Wahrscheinlich werden auf der CDROM die
Joliet Erweiterungen für die
Speicherung von Datei- und Verzeichnisnamen benutzt.
Werfen Sie einen Blick in das Kapitel Erzeugung von
CD-ROMs im Handbuch, speziell in den Abschnitt
über Benutzung
von Daten-CDs.[Anmerkung des Übersetzers: Es geht hier nicht um
die deutschen Sonderzeichen, da diese schon im normalen
ISO8859-1 enthalten sind. Die Probleme treten auf, wenn
man z.B. russische CDs (ISO8859-5) verwendet.]Ich habe eine CD mit FreeBSD gebrannt und kann sie
nicht mit anderen Betriebssystemen lesen. Warum?Sie haben wahrscheinlichste eine Datei direkt auf CD
geschrieben, statt ein ISO 9660-Dateisystems erzeugt zu
haben. Werfen Sie einen Blick in das Kapitel Erzeugung von
CD-ROMs im Handbuch, speziell in den Abschnitt
über reine
Daten-CDs.Wie kann ich ein Image einer Daten-CD erzeugen?Diese Information finden Sie im Abschnitt Kopieren
von CD-ROMs des Handbuchs. Weitere Informationen
über die Arbeit mit CD-ROMs finden Sie im Abschnitt
Erzeugen von
CD-ROMs im Kapitel Speichermedien des
Handbuchs.Wieso kommt mount nicht meiner
Audio-CD zurecht?Wenn Sie versuchen sollten, eine Audio-CD zu mounten,
erhalten Sie die Meldung cd9660: /dev/acd0c:
Invalid argument. Der Grund dafür ist,
daß mount nur für
Dateisysteme vorgehen ist. Audio CDs habe kein
Dateisystem, sondern nur Daten. Wenn Sie eine Audio CD
auslesen wollen, brauchen Sie ein entsprechendes Programm
wie z.B. audio/xmcd
aus den Ports.Wie nutze ich mount für eine
Multi-Session CD?Standardmäßig benutzt &man.mount.8; den
letzten (aktuellsten) Daten-Track der CD. Wenn Sie eine
ältere Session benutzen wollen, müssen Sie diese
mit der Option definieren. Weitere
Informationen finden Sie in der Onlinehilfe zu
&man.mount.cd9660.8;Wie lasse ich normale Benutzer Disketten, CDROMs und
andere Wechseldatenträger mounten?Normale Benutzer können dazu berechtigt werden,
Geräte zu mounten. Das geht so:Setzen Sie als root die
sysctl-Variable vfs.usermount auf
1:&prompt.root; sysctl -w vfs.usermount=1Ordnen Sie als root den
Block-Geräten, die den Wechsellaufwerken
zugeordnet sind, die entsprechenden Zugriffsrechte
zu.Wenn Sie zum Beispiel den Benutzer den Zugriff auf
das erste Diskettenlaufwerk zu erlauben
wollen:&prompt.root; chmod 666 /dev/fd0Um den Mitgliedern der Gruppe
operator den Zugriff auf das
CDROM zu gestatten:&prompt.root; chgrp operator /dev/cd0c
&prompt.root; chmod 640 /dev/cd0cFügen Sie zum Abschluß die Zeile
vfs.usermount=1
in die Datei /etc/sysctl.conf
ein, damit die Einstellung bei einem Neustart des
Systems automatisch erhalten bleibt.Alle Benutzer können nun
/dev/fd0 auf ein Verzeichnis, das
ihnen gehört, mounten:&prompt.user; mkdir ~/my-mount-point
&prompt.user; mount -t msdos /dev/fd0 ~/my-mount-pointDie zur Gruppe operator
gehörenden Benutzer können nun
/dev/cd0c auf ein Verzeichnis, das
ihnen gehört, mounten:&prompt.user; mkdir ~/my-mount-point
&prompt.user; mount -t cd9660 /dev/cd0c ~/my-mount-pointDas Unmounten des Gerätes ist simpel:&prompt.user; umount ~/my-mount-pointDie Aktivierung von vfs.usermount
hat jedoch negative Auswirkungen auf Sicherheitsaspekte.
Ein besserer Weg, um auf MSDOS-formatierte
Datenträger zuzugreifen, ist die Benutzung des
Packages mtoolsaus
der Ports-Sammlung.Wieso geben die Befehle du und
df unterschiedliche Werte für den
freien Plattenplatz aus?Der Grund ist die Funktionsweise von
du und df.
du geht durch einen Dateibaum,
ermittelt die Größe jeder einzelnen Datei, und
gibt die Summe aus. df fragt lediglich
das Dateisystem wieviel Platz noch frei ist. Das
scheint zwar auf den ersten Blick sehr ähnlich zu
sein; allerdings wird sich ein leeres Verzeichnis auf die
Ausgabe von df auswirken, während
es auf das Ergebnis von du keinen
Einfluß hat.Wenn Sie eine Datei löschen, während sie von
einem Programm genutzt wird, wird diese Datei erst
gelöscht, wenn sie vom Programm freigegeben wird.
Allerdings wird die Datei sofort aus dem Verzeichnis
entfernt. Sie können dieses Verhalten mit einem
Programm wie more sehr einfach
nachvollziehen. Dazu brauchen Sie nur eine Datei, die
groß genug ist, um die Ausgabe von
du und df zu
beeinflussen. Bei der Größe aktueller Platten
muß diese Datei schon sehr
groß sein! Wenn Sie diese Datei löschen,
während Sie sie sich in more
anzeigen lassen, hat more kein Problem.
Der Eintrag für die Datei wird lediglich aus dem
Verzeichnis entfernt, damit kein anderes Programm mehr
darauf zugreifen kann. Laut du ist die
Datei verschwunden – es hat das Verzeichnis
untersucht und die Datei nicht gefunden. Laut
df ist die Datei aber vorhanden, da sie
im Dateisystem immer noch Platz belegt. Sobald Sie
more beenden, werden die Ergebnisse von
du und df wieder
übereinstimmen.Bitte beachten Sie, daß die Freigabe des
Plattenplatzes durch die Soft Updates um bis zu 30 Sekunden
verzögert werden kann.Die oben beschriebene Situation tritt sehr häufig
auf Web-Servern auf. Viele Anwender installieren einen
FreeBSD Web-Server und vergessen die Rotation der
Logfiles, bis irgendwann die Partition
/var überläuft. Der
Administrator löscht die Datei, aber das System
beschwert sich immer noch über fehlenden
Plattenplatz. Die Datei wird erst freigegeben, wenn der
Web-Server beendet und neu gestartet wird; dadurch kann
das System den Plattenplatz freigeben. Um solche und
ähnliche Unfälle zu verhindern, sollten Sie
&man.newsyslog.8; einsetzen.Wie kann ich den Swap-Bereich
vergrößern?Im Kapitel Konfiguration und
Tuning des Handbuches gibt es einen Abschnitt
mit einer Schritt-für-Schritt Anleitung.Warum kann eine Partition zu mehr als 100% gefüllt
sein?Ein Teil jeder UFS Partition, in der Vorgabe sind das 8%,
ist für das Betriebssystem und den Benutzer
root reserviert. &man.df.1; rechnet
diesen Teil bei der Ausgabe der Capacity
Spalte nicht ein, so daß dort Werte über 100%
angezeigt werden können. Die Anzahl der Blöcke in
der blocks Spalte ist ebenfalls um 8%
größer als die Summe der benutzten und
verfügbaren Blöcke (die Spalten
Used und Avail).
Wieviel Platz reserviert wird, können Sie mit der
Option von &man.tunefs.8; einstellen.SystemadministrationWo befinden sich die Konfigurationsdateien für
den Systemstart?Für die Versionen 2.0.5R bis 2.2.1R heißt
die primäre Konfigurationsdatei
/etc/sysconfig. Alle Optionen
müssen in dieser Datei angegeben werden und andere
Dateien wie /etc/rc und
/etc/netstart übernehmen sie
einfach hieraus.Sehen Sie in die Datei
/etc/sysconfig und ändern Sie
die Werte entsprechend Ihrem System. Diese Datei
enthält Kommentare, die die möglichen
Einstellungen erklären.In den Versionen nach 2.2.1 und 3.0 erhielt
/etc/sysconfig den
aussagekräftigeren Namen &man.rc.conf.5;
und die Syntax wurde bei dieser Gelegenheit auch etwas
bereinigt. /etc/netstart wurde
ebenfalls in /etc/rc.network
umbenannt, so daß alle Dateien nun mit dem Befehl
cp /usr/src/etc/rc* /etc kopiert werden
können.Seit FreeBSD 3.1 ist rc.conf als
/etc/defaults/rc.conf verfügbar.
Ändern Sie diese Datei nicht!
Wenn Sie den Wert einer der in
/etc/defaults/rc.conf gesetzten
Variablen ändern wollen, sollten Sie die
entsprechende Zeile an die Datei
/etc/rc.conf anfügen und sie
dort ändern.Wenn Sie zum Beispiel den ab FreeBSD 3.1
mitgelieferten DNS Server named aktivieren wollen,
müssen Sie lediglich das folgende Kommando
eingeben:&prompt.root; echo named_enable="YES" >> /etc/rc.confWenn Sie in FreeBSD 3.1 und späteren Versionen
lokale Server starten wollen, müssen Sie passende
Shellscripts im Verzeichnis
/usr/local/etc/rc.d/ ablegen. Die
Dateien müssen als ausführbar markiert sein und
die Endung .sh haben. Wenn Sie FreeBSD 3.0 oder eine noch
ältere Version benutzen, müssen Sie die Datei
/etc/rc.local ändern.Die Datei /etc/rc.serial dient
zur Initialisierung serieller Schnittstellen (z.B.
Einstellung der Schnittstelleneigenschaften usw.).Die Datei /etc/rc.i386 dient
für Intel-spezifische Einstellungen wie
iBCS2-Emulation oder Konfiguration der
PC-Systemkonsole.Wie kann ich am Einfachsten einen Benutzer
hinzufügen?Benutzen Sie den Befehl &man.adduser.8; und für
kompliziertere Fälle den Befehl &man.pw.8;.Benutzen Sie den Befehl &man.rmuser.8;, um einen
Benutzer wieder zu löschen. Sie können hierzu
auch &man.pw.8; benutzen.Warum erhalte ich Meldungen wie root: not
found, nachdem ich meine crontab geändert
habe?Die übliche Ursache dieses Problems ist,
daß Sie die crontab des Systems
(/etc/crontab) geändert und dann
mit &man.crontab.1; installiert haben:&prompt.root; crontab /etc/crontabDiese Vorgehensweise ist falsch. Die crontab des
Systems hat ein anderes Format als die crontabs für
die einzelnen Benutzer, die mit &man.crontab.1;
aktualisiert werden (genauere Informationen über die
Unterschiede erhalten Sie in &man.crontab.5;).Wenn Sie so vorgegangen sind, ist die zweite crontab
einfach nur eine Kopie von
/etc/crontab, allerdings im falschen
Format. Löschen Sie sie mit dem folgenden
Befehl:&prompt.root; crontab -rWenn Sie /etc/crontab wieder
ändern müssen, sollten Sie einfach gar nichts
tun, um &man.cron.8; über die Änderung zu
informieren, er erkennt die Änderung
automatisch.Wenn Sie ein Kommando jeden Tag, jede Woche oder jeden
Monat ausführen lassen wollen, ist es wahrscheinlich
einfacher, wenn Sie entsprechende Shell-Scripte in
/usr/local/etc/periodic ablegen.
Diese werden dann von &man.periodic.8; zusammen mit den
anderen regelmäßigen Tätigkeiten
ausgeführt.Der eigentliche Grund für den Fehler ist die
Tatsache, daß die crontab des Systems ein
zusätzliches Feld enthält; dieses Feld gibt an,
mit welcher Benutzerkennung der Befehl ausgeführt
werden soll. In der mitgelieferten crontab ist das bei
allen Einträgen die Benutzerkennung
root. Wenn diese Datei als die
crontab des Benutzers username (die
nicht mit der crontab des Systems
identisch ist) verwendet wird, hält &man.cron.8; die
Zeichenkette root für den Namen
des zu startenden Programmes, aber dieses Programm gibt es
nicht.Wieso meldet mir &man.su.1; you are not in
the correct group to su root, wenn ich mit
&man.su.1; root werden will?Das ist ein Sicherheits-Feature. Wenn Sie mit
&man.su.1; zum Account root (oder
jedem anderen Account mit Super-User-Privilegien) wechseln
wollen, müssen Sie ein Mitglied der Gruppe
wheel sein. Wenn es dieses Feature
nicht gäbe, könnte jeder, der einen Account auf
dem System hat und zufällig das Paßwort
für root erfährt, mit
Super-User-Rechten auf das System zugreifen. Durch dieses
Feature ist die Lage anders, wenn Sie nicht Mitglied von
wheel sind, können Sie nicht
einmal versuchen, daß Paßwort
einzugeben.Um einem Benutzer zu erlauben, mit &man.su.1;
root zu werden, müssen Sie ihn
nur in die Gruppe wheel
eintragen.Ich habe einen Fehler in der
rc.conf oder einer der anderen
Dateien für den Systemstart und jetzt kann ich sie
nicht ändern, weil das Dateisystem
read-only ist. Was kann ich tun?Wenn Sie aufgefordert werden, den Pfadnamen der Shell
einzugeben, drücken Sie einfach
ENTER. Geben Sie danach mount
/ ein, um das Root-Dateisystem im
Schreib/Lese-Modus zu mounten. Sie werden wahrscheinlich
auch mount -a -t ufs ausführen
müssen, um das Dateisystem mit Ihrem Lieblingseditor
zu mounten. Wenn Ihr Lieblingseditor auf einem
Netzwerklaufwerk liegt, müssen Sie entweder das
Netzwerk von Hand konfigurieren oder einen Editor
benutzen, der auf einem lokalen Laufwerk vorhanden ist,
z.B. &man.ed.1;.Wenn Sie einen bildschirmorientierten Editor wie zum
Beispiel &man.vi.1; oder &man.emacs.1; benutzen wollen,
werden Sie auch den Befehl export
TERM=cons25 ausführen müssen, damit
diese Editoren die richtigen Einstellungen aus der
Datenbank &man.termcap.5; übernehmen.Sobald Sie diese Schritte ausgeführt, können
Sie den Fehler in der /etc/rc.conf
ganz normal beheben. Die Fehlermeldungen, die Ihnen
unmittelbar nach den Startmeldungen des Kernels angezeigt
wurden, sollten Ihnen die Nummer der Zeile mit dem Fehler
melden.Wieso habe ich habe Probleme, meinen Drucker
einzurichten?Bitte sehen Sie im Handbucheintrag über Drucker
nach. Es sollte die meisten Ihrer Probleme behandeln.
Lesen sie den Handbucheintrag über
Drucker.Einige Drucker benötigen einen auf dem Rechner
laufenden Treiber, um drucken zu können. Diese
sogenannten WinPrinter oder
GDI-Drucker werden von FreeBSD nicht
unterstützt und an diesem Zustand wird sich wohl auch
nichts ändern. Wenn Ihr Drucker nicht unter DOS oder
Windows NT 4.0 verwendet werden kann, handelt es sich um
einen WinPrinter und wird in der Regel auch
nicht unter FreeBSD funktionieren. Ihre einzige Chance,
einen dieser Drucker benutzen können, ist der Port
ports/print/pnm2ppa.Wie kann ich die Tastaturbelegung meines Systems
korrigieren?Informationen dazu finden Sie im Kapitel länderspezifische
Einstellungen des Handbuchs, insbesondere im
Abschnitt Konfiguration
der Konsole.Wieso erhalte ich beim Start des Systems Meldungen wie
unknown: <PNP0303> can't assign
resources?Die nachfolgende Erklärung stammt aus einer Mail
auf der Mailingliste freebsd-current.
&a.wollman;, 24 April 2001Die Geräte, für die can't assign
resources-Meldungen ausgegeben werden, sind
Legacy ISAGeräte, für die ein nicht
PNP-fähiger Treiber in den Kernel eingebunden
wurde. Dabei handelt es sich um Geräte wie den
Tastaturkontroller, den programmierbaren
Interrupt-Kontroller und diverse andere
Standardkomponenten. Die Ressourcen können nicht
zugewiesen werden, weil es schon einen Treiber gibt, der
diese Ressourcen benutzt.
Wieso funktionieren die Benutzer-Quotas nicht
richtig?Benutzen Sie keine Quotas für
/,Erstellen Sie die Quotas-Datei in dem Dateisystem,
für das die Quotas gelten sollen, z.B.:FilesystemQuota file/usr/usr/admin/quotas/home/home/admin/quotas……Unterstützt FreeBSD IPC-Grundfunktionen von
System V?Ja, FreeBSD unterstützt IPC im Stil von System V
einschließlich gemeinsamen Speicher, Nachrichten und
Semaphoren. Zur Aktivierung müssen Sie die folgenden
Zeilen in Ihre Kernelkonfigurationsdatei
einfügen:
options SYSVSHM
options SYSVSHM # enable shared memory
options SYSVSEM # enable for semaphores
options SYSVMSG # enable for messaging
Diese Variablen sind seit FreeBSD 3.2 schon im
Standardkernel (GENERIC) gesetzt
und sollte daher Bestandteil Ihres Systems
sein.Kompilieren und installieren Sie einen neuen
Kernel.Wie benutze ich sendmail zum Zustellen von Mails mit
UUCP?Die sendmail-Konfiguration, die mit FreeBSD
ausgeliefert wird, ist für Sites geeignet, die direkt
ans Internet angeschlossen sind. Sites, die ihre Mail per
UUCP austauschen wollen, müssen eine andere
sendmail-Konfigurationsdatei installieren.Die manuelle Bearbeitung von
/etc/mail/sendmail.cf ist nur etwas
für Puristen. Sendmail Version 8 bietet die neue
Möglichkeit der Generierung von Konfigurationsdateien
über eine Vorverarbeitung mit &man.m4.1;, wobei die
tatsächliche, händische Konfiguration auf einer
höheren Abstraktionsstufe stattfindet. Sie sollten
die Konfigurationsdateien unter
/usr/src/usr.sbin/sendmail/cf
benutzen.Für den Fall, daß Sie Ihr System nicht mit
dem kompletten Quellcode installiert haben, wurden die
nötigen Dateien zur Konfiguration von sendmail in
einer separaten Quelldistribution für Sie extrahiert.
Wenn Sie Ihre CDROM gemountet haben, müssen Sie die
folgenden Schritte ausführen:&prompt.root; cd /cdrom/src
&prompt.root; cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmailKeine Panik, das sind nur ein paar hundert Kilobyte.
Die Datei README im Verzeichnis
cf kann zur grundlegenden
Einführung in die m4-Konfiguration dienen.Zur Zustellung über UUCP sind Sie am besten damit
beraten, das mailertable-Feature zu
benutzen. Es stellt eine Datenbank dar, auf deren Basis
sendmail Entscheidungen zum Routing treffen kann.Zunächst müssen Sie Ihre
.mc-Datei erstellen. Das Verzeichnis
/usr/src/usr.sbin/sendmail/cf/cf ist
die Basis für diese Dateien. Sehen Sie sich um, es
gibt bereits einige Beispiele. Wenn Sie Ihre Datei
foo.mc genannt haben, müssen Sie
die folgenden Befehle ausführen, um sie in eine
gültige sendmail.cf umzuwandeln,
ist:&prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf
&prompt.root; make foo.cf
&prompt.root; cp foo.cf /etc/mail/sendmail.cfEine typische .mc-Datei
könnte so aussehen:VERSIONID(`Your version number')
OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', your.uucp.relay)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw your.alias.host.name
Cw youruucpnodename.UUCPDie Einstellungen
accept_unresolvable_domains,
nocanonify und
confDONT_PROBE_INTERFACES werden die
Benutzung von DNS bei der Zustellung von Mails verhindern.
Die Klausel UUCP_RELAY wird aus
seltsamen Gründen benötigt - fragen Sie nicht,
warum. Setzen Sie dort einfach den Namen eines Hosts ein,
der in der Lage ist, Adressen mit der Pseudodomäne
.UUCP zu behandeln; wahrscheinlich werden Sie dort den
Relayhost Ihres ISP eintragen.Wenn Sie soweit sind, müssen Sie die Datei
/etc/mail/mailertable erzeugen. Hierzu
wieder ein typisches Beispiel:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
. uucp-dom:your.uucp.relayEin komplexeres Beispiel könnte wie folgt
aussehen:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:Wie Sie sehen können, handelt es sich um einen
Teil einer realen Datei. Die ersten drei Zeilen behandeln
spezielle Fälle, in denen an Domänen adressierte
Mails nicht über die Standard-Route versendet werden
sollen, sondern zu einem UUCP-Nachbarn, um den Zustellweg
abzukürzen. Die nächsten Zeilen
behandeln Mails Rechner in der Domain, die im lokalen
Ethernet verwendet wird. Diese Mails können direkt
per SMTP zugestellt werden. Schließlich werden die
UUCP-Nachbarn in der Notation mit der Pseudodomäne
.UUCP aufgeführt, um die Standardregeln mit
uucp-neighbour!recipient
zu überschreiben. Die letzte Zeile besteht stets aus
einem einzelnen Punkt, der als Ihr Universalgateway in die
Welt dient. Alle Knoten hinter dem Schlüsselwort
uucp-dom: müssen gültige
UUCP-Nachbarn sein, was Sie mit dem Befehl
uuname überprüfen
können.Als Erinnerung daran, daß diese Datei in eine
DBM-Datenbankdatei konvertiert werden muß, bevor sie
benutzt werden kann, sollte der Befehl hierzu als
Kommentar am Anfang der mailertable plaziert werden. Sie
müssen den Befehl jedesmal ausführen, wenn Sie
Ihre Mailertable geändert haben.Abschließender Hinweis: wenn Sie unsicher sind,
ob bestimmte Mailrouten funktionieren, erinnern Sie sich
an die Option von sendmail. Sie
startet sendmail im
Adreß-Testmodus; geben Sie
einfach 3,0, gefolgt von der Adresse,
für die Sie das Routing testen möchten, ein.
Die letzte Zeile nennt Ihnen den benutzten Mailagenten,
den Zielhost, mit dem dieser Agent aufgerufen wird und die
(ggfs. übersetzte) Adresse. Verlassen Sie diesen
Modus, indem Sie Control-D eingeben.&prompt.user; sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>3,0 foo@example.com
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
>^DWie richte ich das Mailsystem konfigurieren, wenn ich
eine Wählverbindung zum Internet habe?Wenn Sie eine feste IP-Adresse haben, müssen Sie
die Standardeinstellungen wahrscheinlich gar nicht
ändern. Stellen Sie Ihren Hostnamen entsprechend
Ihrem zugeordneten Internetnamen ein und sendmail
übernimmt das übrige.Wenn Sie eine dynamische IP-Adresse haben und eine
PPP-Wählverbindung zum
Internet benutzen, bekommen Sie wahrscheinlich eine
Mailbox auf dem Mailserver Ihres ISPs zugeordnet. Lassen
Sie uns annehmen, die Domäne ihres ISPs sei example.net und Ihr Benutzername
user; außerdem nehmen wir an,
daß Sie Ihre Maschine bsd.home genannt haben und, daß
Ihr ISP ihnen gesagt hat, daß Sie relay.example.net als Mail-Relayhost
benutzen können.Um Mails aus Ihrer Mailbox abzuholen, müssen Sie
einen entsprechenden Programm installieren.
Fetchmail ist eine gute Wahl,
weil es viele verschiedene Protokolle unterstützt.
Für gewöhnlich wird von Ihrem ISP POP3 zur
Verfügung gestellt werden. Falls sie sich dafür
entschieden haben, user-PPP zu benutzen, können Sie
durch folgenden Eintrag in der Datei
/etc/ppp/ppp.linkup Ihre Mails
automatisch abholen lassen, wenn eine Verbindung zum Netz
aufgebaut wird:
MYADDR:
!bg su user -c fetchmail
Falls Sie (wie unten gezeigt)
sendmail benutzen, um Mails an
nicht-lokale Benutzer zu versenden, fügen Sie den
Befehl
!bg su user -c "sendmail -q"
nach dem oben gezeigten Eintrag ein. Das
veranlaßt sendmail, Ihre
ausgehenden Mails zu verarbeiten, sobald eine Verbindung
zum Internet aufgebaut wird.Ich nehme an, daß auf bsd.home ein Benutzer
user existiert; erstellen Sie auf
bsd.home im Heimatverzeichnis
von user eine Datei
.fetchmailrc:
poll example.net protocol pop3 fetchall pass MySecret;
Diese Datei sollte für niemandem außer
user lesbar sein, weil sie das
Paßwort MySecret enthält.Um Mails mit dem richtigen
from:-Header zu versenden, müssen
Sie sendmail mitteilen,
daß es user@example.net und nicht
user@bsd.home benutzen soll. Evtl.
möchten Sie auch, daß
sendmail alle Mails über
relay.example.net versendet, um
eine schnellere Übertragung von Mails zu
gewährleisten.Die folgende .mc-Datei sollte
ausreichen:
VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`example.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.example.net')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnl
Im vorherigen Abschnitt finden Sie Details dazu, wie
Sie aus dieser .mc-Datei eine Datei
sendmail.cf erstellen können.
Vergessen Sie auch nicht,
sendmail neu zu starten,
nachdem Sie sendmail.cf
verändert haben.Welchen Mail-Server kann ich an Stelle von Sendmail
benutzen?Sendmail
ist zwar der Mail-Server, der bei FreeBSD
standardmäßig installiert wird, aber Sie
können Ihn problemlos durch einen anderen MTA (z.B.
aus den Ports) ersetzen.In der Port-Sammlung gibt es bereits viele
verschiedene MTAs, mail/exim,
mail/postfix,
mail/qmail,
mail/zmailer
sind einige der beliebteren Alternativen.Konkurrenz belebt das Geschäft und die Tatsache,
daß Sie die Qual der Wahl haben, ist ein Vorteil.
Daher sollten Sie Fragen wie Ist Sendmail besser
als Qmail? besser nicht auf den Mailinglisten
stellen. Wenn Sie dieses Thema interessiert, sollten sie
zunächst die Archive durchsehen. Die Vorteile und
Nachteile jedes einzelnen der verfügbaren MTAs sind
schon mehrere Male bis zur Erschöpfung diskutiert
worden.Was kann ich machen, wenn ich das Rootpasswort
vergessen habe?Keine Panik! Starten Sie Ihr System einfach neu und
geben Sie boot -s an der
Eingabeaufforderung Boot: ein (bei FreeBSD-Versionen vor
3.2 nur -s), um in den
Einzelbenutzermodus zu gelangen. Bei der Frage danach,
welche Shell benutzt werden soll, drücken Sie einfach
ENTER. Nun erscheint die Eingabeaufforderung
&prompt.root;. Geben Sie mount -u /
ein, um Ihr Root-Dateisystem für Lese- und
Schreibzugriffe zu remounten und dann mount
-a, um alle Dateisysteme zu remounten. Mit
passwd root können Sie das
Rootpasswort ändern und mit &man.exit.1;
können Sie mit dem Booten fortfahren.Wie verhindere ich, daß das System mit
CtrlAltDelete
rebootet werden kann?Falls Sie syscons (den Standard-Treiber für die
Konsole) unter FreeBSD ab 2.2.7-RELEASE benutzen,
erstellen und installieren Sie einen neuen Kernel mit der
Zeileoptions SC_DISABLE_REBOOTin der Konfigurationsdatei. Falls Sie den
Konsolen-Treiber PCVT unter FreeBSD seit 2.2.5-RELEASE
benutzen, benutzen Sie stattdessen die folgende
Kernelkonfigurationszeile:options PCVT_CTRL_ALT_DELEditieren Sie bei älteren Versionen von FreeBSD
die Tastenzuordnungsdatei, die Sie für die Konsole
verwenden und ersetzen Sie die Schlüsselworte
boot durch nop. Die
standard Tastenzuordnungsdatei heißt
/usr/share/syscons/keymaps/us.iso.kbd.
Es könnte sein, daß Sie
/etc/rc.conf explizit instruieren
müssen, diese Tastenzuordnungsdatei zu laden, um die
Änderungen wirksam werden zu lassen. Falls Sie eine
andere Tastenzuordnung für Ihr Land verwenden,
müssen Sie natürlich diese editieren.Wie kann ich Textdateien von DOS Systemen auf &unix;
Systemen verwenden?Benutzen Sie einfach diesen Perl-Befehl:&prompt.user; perl -i.bak -npe 's/\r\n/\n/g' file ...file ist/sind die zu verarbeitende(n) Datei(en). Die
Änderungen erfolgen in der Originaldatei, die zuvor
mit der Erweiterung .bak gesichert wird.Alternativ können Sie den Befehl &man.tr.1;
benutzen:&prompt.user; tr -d '\r' < dos-text-file > unix-filedos-text-file ist die
Datei, die den Text im DOS-Format enthält und
unix-file wird die konvertierte
Ausgabe enthalten. Diese Möglichkeit könnte
etwas schneller sein, als die Benutzung von Perl.Wie beende ich Prozesse namentlich?Benutzen Sie &man.killall.1;.Warum nervt su mich damit, daß ich nicht in der
ACL von root bin?Der Fehler stammt vom verteilten
Authentifizierungssystem Kerberos. Das Problem ist nicht
ernsthaft, aber störend. Sie können entweder su
mit der Option -K benutzen, oder Kerberos deinstallieren,
wie in der nächsten Frage beschrieben.Wie deinstalliere ich Kerberos?Um Kerberos aus dem System zu entfernen, müssen
Sie die bin-Distribution der von Ihnen benutzen RELEASE
neu installieren. Wenn Sie die CDROM besitzen,
können Sie sie mounten (wir nehmen an, unter /cdrom)
und folgende Schritte ausführen:&prompt.root; cd /cdrom/bin
&prompt.root; ./install.shAlternativ können Sie alle Zeilen mit
MAKE_KERBEROS aus der
/etc/make.conf entfernen und dann ein
make world durchführen.Wo ist /dev/MAKEDEV hin?Ab FreeBSD 5.X werden Geräte automatisch
von &man.devfs.8; zur Verfügung gestellt. Die
Gerätetreiber erstellen die Gerätedateien,
wenn diese benötigt werden. Das Skript
/dev/MAKEDEV wird nicht mehr
gebraucht.Wenn Sie FreeBSD 4.X oder eine frühere
Version benutzen und /dev/MAKEDEV
fehlt, dann haben Sie ein Problem. Kopieren Sie das
Skript aus den Systemquellen. Es liegt wahrscheinlich
unter /usr/src/etc/MAKEDEV.Wie füge ich Pseudo-Terminals zum System
hinzu?Wenn Sie viele Benutzer von telnet, ssh, X oder
screens haben, könnte es sein, daß Ihnen die
Pseudo-Terminals ausgehen. So fügen Sie weitere
hinzu:Erstellen und installieren Sie einen neuen Kernel
mit der Zeile
pseudo-device pty 256
in der Konfigurationsdatei.Führen Sie die Befehle&prompt.root; cd /dev
&prompt.root; ./MAKEDEV pty{1,2,3,4,5,6,7}aus, um 256 Geräteeinträge für die
neuen Terminals zu erstellen.Editieren Sie die Datei
/etc/ttys und fügen Sie
Zeilen für jeden der 256 Terminals ein. Sie
sollten so aussehen, wie die existierenden
Einträge, also etwa so:
ttyqc none network
Die Reihenfolge der Buchstabenzuordnung lautet mit
einem regulären Ausdruck
tty[pqrsPQRS][0-9a-v].Starten Sie das System mit dem neuen Kernel
erneut, wenn Sie bereit sind.Warum kann ich das Gerät snd0 nicht
erstellen?Es gibt kein Gerät snd.
Diese Bezeichnung ist nur ein Sammelbegriff für die
diversen Geräte, die zusammen das Soundsystem von
FreeBSD bilden, wie zum Beispiel
mixer,
sequencer, und
dsp.So erzeugen Sie diese Geräte:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Lassen Sie diesen Schritt aus, wenn Sie FreeBSD
5.0-RELEASE oder eine neuere Version mit &man.devfs.5;
verwenden. Die Gerätedateien werden in diesem Fall
automatisch in /dev erstellt.Wie lade ich /etc/rc.conf und
starte /etc/rc neu, ohne zu
rebooten?Gehen Sie in den Einzelbenutzermodus und dann
zurück in den Mehrbenutzermodus.Geben Sie auf der Konsole folgendes ein:&prompt.root; shutdown now
(Hinweis: ohne -r oder -h)
&prompt.root; return
&prompt.root; exitIch wollte auf das aktuelle -STABLE updaten, und
plötzlich läuft hier ein -RC oder -PRERELEASE. Was
ist passiert?Kurze Antwort: Das ist nur ein anderer Name. RC ist
die Abkürzung für Release
Candidate. Es bedeutet, daß eine neue
Release bevorsteht. Und -PRERELEASE bedeutet bei FreeBSD
normalerweise, daß die Sourcen zur Vorbereitung auf eine
Release eingefroren wurden (in einigen Releases
wurde -BETA anstelle von -PRERELEASE verwendet).Ausführliche Antwort: Bei FreeBSD gibt es zwei
Quellen für Releases. Die Major Releases wie
3.0-RELEASE und 4.0-RELEASE werden aus dem aktuellen Stand
des Hauptzweiges der Entwicklung (besser und kürzer
als -CURRENT bekannt)
erzeugt. Minor Releases wie 3.1-RELEASE or 4.2-RELEASE
stammen aus dem aktiven -STABLE Zweig. Seit 4.3-RELEASE
gibt es es nun auch einen eigenen Zweig für jede
Release, der für die Leute gedacht ist, die ein sehr
konservativ weiterentwickeltes System benötigen (im
Normalfall also nur Updates aus dem Bereich
Sicherheit).Bevor in einem Zweig eine Release erfolgt, muß
in diesem Zweig ein bestimmter Prozeß ablaufen. Ein
Teil dieses Prozesses ist der code freeze,
der Stop der Weiterentwicklung. Sobald dieser Schritt
erfolgt ist, wird der Name des Zweiges geändert, um
anzuzeigen, daß demnächst eine Release erfolgen
wird. Wenn der Zweig zum Beispiel 4.5-STABLE genannt
wurde, wird der Name in 4.6-PRERELEASE geändert, um dies zu
verdeutlichen. Weiterhin ist das ein Zeichen, daß
jetzt besonders intensiv getestet werden sollte. In
dieser Phase können Fehler im Sourcecode noch
korrigiert werden. Wenn der Sourcecode so weit
gereift ist, daß eine Release
erstellt werden kann, wird der Name in 4.6-RC
geändert, um genau dies anzuzeigen. In dieser Phase
können nur noch extrem wichtige Korrekturen
aufgenommen werden. Sobald die Release (in diesem Beispiel
4.6-RELEASE) erfolgt ist, wird der Zweig in 4.6-STABLE
umbenannt.Weitere Informationen über Versionsnummern und die
verschiedenen Entwicklungszweige enthält der Artikel
Release
Engineering.Als ich versucht habe, einen neuen Kernel zu
installieren, ist das chflags fehlgeschlagen. Was mache
ich jetzt?Kurze Antwort: Ihre Sicherheitseinstellung (der
securelevel) ist wahrscheinlich größer als 0.
Sie müssen das System neu starten und den Kernel im
Single-User Modus installierten.Ausführliche Antwort: Wenn die
Sicherheitseinstellung größer als 0 ist,
erlaubt Ihnen FreeBSD nicht, die Systemflags zu
ändern. Um den aktuellen Securelevel zu ermitteln,
können Sie das folgende Kommando benutzen:&prompt.root; sysctl kern.securelevelSie können die Sicherheitseinstellung nicht
verringern, Sie müssen das System neu starten und den
Kernel im Single-User Mode installieren oder die
Sicherheitseinstellung in
/etc/rc.conf ändern und dann das
System neu starten. Weitere Detail zur
Sicherheitseinstellung erhalten Sie in &man.init.8;,
weitere Informationen zur rc.conf erhalten Sie in
/etc/defaults/rc.conf und
&man.rc.conf.5;.Ich kann die Systemzeit nicht um mehr als eine Sekunde
verstellen. Was mache ich jetzt?Kurze Antwort: Ihre Sicherheitseinstellung (der
securelevel) ist wahrscheinlich größer als 1.
Sie müssen das System neu starten und die Systemzeit
im Single-User Modus verstellen.Ausführliche Antwort: Wenn die
Sicherheitseinstellung größer als 1 ist,
erlaubt Ihnen FreeBSD nicht, die Systemzeit zu
ändern. Um den aktuellen Securelevel zu ermitteln,
können Sie das folgende Kommando benutzen:&prompt.root; sysctl kern.securelevelSie können die Sicherheitseinstellung nicht
verringern, Sie müssen das System neu starten und die
Systemzeit im Single-User Mode ändern oder die
Sicherheitseinstellung in
/etc/rc.conf ändern und dann das
System neu starten. Weitere Detail zur
Sicherheitseinstellung erhalten Sie in &man.init.8;,
weitere Informationen zur rc.conf erhalten Sie in
/etc/defaults/rc.conf und
&man.rc.conf.5;.Warum braucht &man.rpc.statd.8; 256 MByte
Speicher?Nein, das Programm hat keinen Fehler und es verbraucht
auch nicht 256 MByte Speicher. Das Programm hat nur eine
Vorliebe dafür, einen übertrieben großen
Speicherbereich in seinen eigenen Adreßraum zu
projizieren. Von einem rein technischen Standpunkt aus
ist das nichts verwerfliches, allerdings verwirrt es
Programme wie &man.top.1; und &man.ps.1;.&man.rpc.statd.8; projiziert seine Statusdatei (die in
/var liegt) in seinen
Adreßraum. Um die Probleme zu vermeiden, die bei
einer Vergrößerung dieser Projektion entstehen
könnte, wird gleich ein möglichst großer
Speicherbereich benutzt. Dies kann man sehr schön im
Sourcecode sehen: Die Längenangabe beim Aufruf von
&man.mmap.2; ist 0x10000000, ein
sechzehntel des Adreßraums bei IA32, oder genau 256
MByte.Warum kann ich das Dateiattribut
schg nicht löschen?Sie betreiben Ihr System mit einer erhöhten
Sicherheitsstufe. Senken Sie die Sicherheitsstufe und
versuchen Sie es dann noch einmal. Weitere Informationen
erhalten Sie im FAQ Eintrag
über Sicherheitsstufen und in der Online-Hilfe
&man.init.8;.Warum funktioniert die .shosts
Authentifizierung von SSH in neueren Version von FreeBSD
nicht mehr?Die .shosts
Authentifizierung funktioniert nicht mehr, weil
&man.ssh.1; in neueren Versionen von FreeBSD nicht mehr
SUID-root installiert wird. Um dieses
Problem zu lösen, gibt es die folgenden
Möglichkeiten:Um das Problem für immer zu lösen,
müssen Sie in /etc/make.conf
die Variable ENABLE_SUID_SSH auf
true setzen und ssh neu
übersetzen (oder make world
ausführen.Übergangsweise können Sie auch die
Dateirechte von /usr/bin/ssh auf
4555 setzen, indem Sie den Befehl
chmod 4555 /usr/bin/ssh als
root ausführen. Fügen
Sie anschließend ENABLE_SUID_SSH=
true in die Datei
/etc/make.conf ein, damit diese
Änderung erhalten bleibt, wenn Sie das
nächste Mal make world
ausführen.Was ist vnlru?vnlru schreibt vnodes auf Platte
und gibt sie wieder frei, falls das System die Grenzwert
kern.maxvnodes erreicht. Dieser Thread
des Kernel tut meistens gar nichts und wird nur aktiv,
wenn Sie extrem viel RAM haben und gleichzeitig auf viele
zehntausende kleine Dateien zugreifen.Das X Window System und virtuelle KonsolenIch möchte X benutzen, was muß ich
tun?Der einfachste Weg ist der, daß Sie während
der Installation angeben, daß Sie X benutzen
möchten.Lesen Sie dann die Dokumentation zum Tool
xf86config, das Sie bei der
Konfiguration von XFree86 speziell für Ihre
Grafikkarte/Maus/etc. unterstützt.Evtl. möchten Sie sich auch den Xaccel-Server
ansehen. Nähere Details finden Sie in den
Abschnitten über Xi
Graphics oder Metro
Link.Ich habe versucht, X zu starten,
aber wenn ich startx eingebe, erhalte
ich die Fehlermeldung KDENABIO failed
(Operation not permitted). Was soll ich jetzt
machen?Sie haben die Sicherheitsstufe (den securelevel) ihres
Systems erhört, richtig? Es ist tatsächlich
nicht möglich, X zu starten, wenn die
Sicherheitsstufe erhöht wurde. Warum das so ist,
können Sie in &man.init.8; nachlesen.Die Frage ist also eigentlich, was Sie anders machen
sollten. Sie haben zwei Möglichkeiten: Setzen Sie
die Sicherheitsstufe wieder zurück auf 0 (die
Einstellung erfolgt in der Regel in
/etc/rc.conf) oder starten Sie
&man.xdm.1; während des Starts des Systems, bevor die
Sicherheitsstufe erhöht wird.Der Abschnitt enthält
Informationen darüber, wie Sie &man.xdm.1; beim Start
des Systems starten können.Warum funktioniert meine Maus unter X nicht?Wenn Sie syscons (den Standard-Konsoltreiber)
benutzen, können Sie FreeBSD so konfigurieren,
daß auf jedem virtuellen Bildschirm ein Mauszeiger
unterstützt wird. Um Konflikte mit X zu vermeiden,
unterstützt syscons ein virtuelles Gerät mit dem
Namen /dev/sysmouse. Über
dieses virtuelle Gerät können andere Programme
alle Mausbewegungen und Mausclicks im MouseSystems-Format
mitlesen. Falls Sie Ihre Maus auf einer oder mehreren
virtuellen Konsolen und X
benutzen wollen, sollten Sie zunächst lesen und dann
moused installieren.Die Datei /etc/XF86Config sollte
die folgenden Einträge enthalten:
Section Pointer
Protocol "SysMouse"
Device "/dev/sysmouse"
.....
Diese Variante kann für XFree86 3.3.2 und neuere
Versionen benutzt werden. Wenn Sie eine ältere
Versionen verwenden, muß als
Protocol dagegen
MouseSystems benutzt werden.Einige Leute ziehen es vor, unter X
/dev/mouse zu benutzen. Hierzu
sollte /dev/mouse nach
/dev/sysmouse gelinkt werden:&prompt.root; cd /dev
&prompt.root; rm -f mouse
&prompt.root; ln -s sysmouse mouseKann ich meine Rad-Maus auch unter X benutzen?Ja. Allerdings müssen Sie die X-Anwendungen
anpassen. Weitere Informationen erhalten Sie auf der
Homepage von Colas
Nahaboo
(http://www.inria.fr/koala/colas/mouse-wheel-scroll/).Wenn Sie das Programm
imwheel benutzen wollen,
müssen Sie folgenden Arbeiten
durchführen.Umsetzung der Rad-BewegungDas Programm imwheel
übersetzt die Maustasten 4 und 5 in normale
Tastaturkommandos. Sie müssen also nur
dafür sorgen, daß die Bewegung des Rades
vom Maustreiber als Betätigung der Maustasten 4
und 5 übersetzt werden. Es gibt zwei
Möglichkeiten, dieses Ziel zu erreichen. Zum
einen kann die Übersetzung von &man.moused.8;
durchgeführt werden, zum zweiten kann der
X-Server diese Aufgabe übernehmen.Umsetzung durch &man.moused.8;Damit &man.moused.8; die Umsetzung vornimmt,
müssen Sie ihn lediglich mit dem
zusätzlichen Parametern
starten. Wenn Sie zum Beispiel &man.moused.8; mit
dem Befehl moused -p /dev/psm0
gestartet haben, würde der neue Befehl
moused -p /dev/psm0 -z 4
lauten. Wenn Sie &man.moused.8; über einen
Eintrag in der Datei
/etc/rc.conf automatisch beim
Start des Systems starten lassen, müssen Sie
in der /etc/rc.conflediglich
die Einstellung moused_flags um
ergänzen.Nun müssen Sie X darüber
informieren, daß Sie eine Maus mit 5 Tasten
haben. Fügen sie dazu die Zeile
Buttons 5 in den Abschnitt
Pointer der Datei
/etc/XF86Config ein. Das
Beispiel zeigt, wie ein solcher Abschnitt aussehen
könnte.Abschnitt Pointer für
XFree86 3.3.X für Mäuse mit Rad und
Umsetzung durch
moused
Section "Pointer"
Protocol "SysMouse"
Device "/dev/sysmouse"
Buttons 5
EndSection
Abschnitt InputDevice für
Rad-Mäuse in der XF86Config von XFree86 4.X
mit Umsetzung durch den X Server
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "Buttons" "5"
EndSection
.emacs Konfiguration
für seitenweises Blättern mit einer
Rad-Maus
;; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)
Umsetzung durch den X-ServerWenn Sie &man.moused.8; nicht benutzen oder
die Umsetzung nicht von &man.moused.8; vornehmen
lassen wollen, kann diese Aufgabe auch vom
X-Server übernommen werden. Dazu sind einige
Änderungen an der Datei
/etc/XF86Config notwendig.
Zunächst müssen Sie das von Ihrer Maus
verwendete Protokoll herausfinden. Die meisten
Radmäuse verwenden das
IntelliMouse Protokoll. XFree86
unterstützt allerdings auch andere
Protokolle, zum Beispiel das von der Logitech
Mouseman+ verwendete
MouseManPlusPS/2. Wenn Sie das
Protokoll ermittelt haben, müssen Sie eine
entsprechende Protocol-Zeile in
den Abschnitt Pointer
aufnehmen.Zum zweiten müssen Sie dem X-Server
mitteilen, daß er die Bewegung des Rades in
Betätigungen der Tasten 4 und 5 umsetzen
soll. Dazu dient die Option
ZAxisMapping.Wenn Sie zum Beispiel &man.moused.8; nicht
verwenden und eine IntelliMouse an den PS/2
Mausport angeschlossen haben, müßte in
Ihrer /etc/XF86Config die
folgenden Angaben stehen.Abschnitt Pointer der Datei
XF86Config für eine
Rad-Maus und Umsetzung durch den
X-Server
Section "Pointer"
Protocol "IntelliMouse"
Device "/dev/psm0"
ZAxisMapping 4 5
EndSection
Abschnitt InputDevice der
Datei XF86Config von XFree86 4.X mit Umsetzung
durch den X ServerSection "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psm0"
Option "ZAxisMapping" "4 5"
EndSection.emacs Beispiel für
seitenweises Blättern mit einer
Rad-Maus;; wheel mouse
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)Installation von
imwheelDer nächste Schritt ist die Installation von
imwheel über die
Ports. Das Programm ist ein Teil der Kategorie
x11.
imwheel übersetzt die
Bewegungen des Rades in Tastendrücken. Es
könnte zum Beispiel Bild auf an
ein Programm senden, wenn Sie das Rad nach vorne
bewegen. Imwheel benutzt
eine Konfigurationsdatei, die den Bewegungen des Rades
die zu simulierenden Tastendrücke zuordnet.
Damit ist es möglich, verschiedenen Anwendungen
die jeweils "richtigen" Tastendrücke zu
senden. Ein Prototyp der Konfigurationsdatei für
imwheel wird unter dem
Namen /usr/X11R6/etc/imwheelrc
installiert. Wenn Sie die Konfiguration von
imwheel an die von Ihnen
verwendeten Programme anpassen wollen, erzeugen Sie
eine Kopie der Datei mit dem Namen
~/.imwheelrc und tragen Sie ihre
Anpassungen dort ein. Das Format der Datei wird in
&man.imwheel.1; erklärt.Anpassung von Emacs an
Imwheel
(Optional)Wenn Sie emacs oder
XEmacs benutzen,
müssen Sie einen kleinen Abschnitt in die Datei
~/.emacs einfügen. Für
emacs müssen Sie die
folgenden Zeilen anfügen:Nutzung von Emacs
mit Imwheel
;;; For imwheel
(setq imwheel-scroll-interval 3)
(defun imwheel-scroll-down-some-lines ()
(interactive)
(scroll-down imwheel-scroll-interval))
(defun imwheel-scroll-up-some-lines ()
(interactive)
(scroll-up imwheel-scroll-interval))
(global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines)
(global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines)
;;; end imwheel section
Wenn Sie XEmacs
verwenden, müssen stattdessen die folgenden
Zeilen an Ihre ~/.emacs
anfügen:Nutzung von XEmacs
mit Imwheel
;;; For imwheel
(mwheel-install)
(setq mwheel-follow-mouse t)
;;; end imwheel section
Imwheel
ausführenSie brauchen nach der Installation einfach nur
imwheel in einem xterm einzugeben,
um das Programm zu starten. Das Programm läuft
dann im Hintergrund und ist sofort aktiv. Wenn Sie
imwheel ständig
benutzen wollen, sollten Sie es einfach in Ihre
.xinitrc oder
.xsession eintragen. Falls
imwheel Warnungen über
PID files ausgeben sollte, können Sie
diese ignorieren, da Sie nur die Linux-Version von
imwheel betreffen.Wieso funktionieren Menüs und Dialoge in X nicht
richtig?Versuchen Sie, die Num Lock-Taste
auszustellen.Falls Ihre Num Lock-Taste beim Booten
standardmäßig eingeschaltet ist, sollten Sie
die folgende Zeile in den Abschnitt
Keyboard der Datei
XF86Config einfügen:
# Let the server do the NumLock processing. This should only be
# required when using pre-R6 clients
ServerNumLock
Was ist eine virtuelle Konsole und wie erstelle ich
mehr?Mit virtuellen Konsolen können Sie mehrere
simultane Sitzungen auf einer Maschine laufen lassen, ohne
so komplizierte Dinge wie die Einrichtung eines Netzwerkes
oder die Benutzung von X zu benötigen.Wenn das System startet, wird es nach der Anzeige
aller Bootmeldungen eine Eingabeaufforderung auf dem
Bildschirm anzeigen. Sie können dann auf der ersten
virtuellen Konsole Ihren Benutzernamen und das Paßwort
eingeben und anfangen, zu arbeiten (oder zu
spielen!).Gelegentlich möchten Sie möglicherweise eine
weitere Sitzung starten wollen, vielleicht, um die
Dokumentation zu einem Programm, das Sie gerade benutzen,
einzusehen, oder, um Ihre Mails zu lesen, während Sie
auf das Ende einer FTP-Übertragung warten.
Drücken Sie einfach AltF2 (halten Sie die Alt-Taste
gedrückt und drücken Sie die Taste F2)
und Sie gelangen zur Anmelde-Aufforderung auf der zweiten
virtuellen Konsole! Wenn Sie zurück
zur ersten Sitzung möchten, drücken Sie
AltF1.Die standard Installation von FreeBSD bietet drei
aktivierte virtuelle Konsolen (acht ab der Version 3.3) und
AltF1,
AltF2,
AltF3
wechseln zwischen diesen
virtuellen Konsolen.Um mehr von ihnen zu aktivieren, editieren Sie
/etc/ttys und fügen
Einträge für ttyv4 bis
zu ttyvc nach dem Kommentar zu
virtuellen Terminals ein:
# Edit the existing entry for ttyv3 in /etc/ttys and change
# "off" to "on".
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/libexec/getty Pc" cons25 on secure
ttyv9 "/usr/libexec/getty Pc" cons25 on secure
ttyva "/usr/libexec/getty Pc" cons25 on secure
ttyvb "/usr/libexec/getty Pc" cons25 on secure
Benutzen Sie so wenig oder soviele, wie Sie
möchten. Je mehr virtuelle Terminals Sie benutzen,
desto mehr Ressourcen werden gebraucht; das kann wichtig
sein, wenn Sie 8MB RAM oder weniger besitzen. Sie
können auch secure in
insecure ändern.Wenn Sie einen X-Server benutzen möchten,
müssen Sie mindestens ein
virtuelles Terminal unbenutzt (oder ausgeschaltet)
lassen damit der Server es benutzen kann. Das
heißt, daß Sie Pech haben, wenn Sie für
jede Ihrer 12 Alt-Funktionstasten eine
Anmeldeaufforderung haben möchten - Sie können
das nur für elf von ihnen tun, wenn Sie einen
X-Server auf derselben Maschine laufen lassen
möchten.Der einfachste Weg, eine Konsole zu deaktivieren, ist,
sie auszuschalten. Wenn Sie zum Beispiel die oben
erwähnte volle Zuordnung aller 12 Terminals
hätten, müßten Sie die Einstellung
für das virtuelle Terminal 12 von:
ttyvb "/usr/libexec/getty Pc" cons25 on secure
in:
ttyvb "/usr/libexec/getty Pc" cons25 off secure
ändern.Wenn Ihre Tastatur nur über zehn Funktionstasten
verfügt, bedeutet das:
ttyv9 "/usr/libexec/getty Pc" cons25 off secure
ttyva "/usr/libexec/getty Pc" cons25 off secure
ttyvb "/usr/libexec/getty Pc" cons25 off secure
(Sie können diese Zeilen auch einfach
löschen.)Nachdem Sie die Datei /etc/ttys
geändert haben, besteht der nächste Schritt
darin, sicherzustellen, daß Sie genügend
Geräte für virtuelle Terminal haben. Der
einfachste Weg, dies zu tun, ist:&prompt.root; cd /dev
&prompt.root; ./MAKEDEV vty12Wenn Sie mit FreeBSD 5.X DEVFS
benutzen, brauchen Sie die Gerätedateien nicht manuell
anzulegen, da sie automatisch in
/dev erstellt
werden.Die einfachste (und sauberste) Möglichkeit, die
virtuellen Konsolen zu aktivieren, ist, zu rebooten. Wenn
Sie jedoch auf keinen Fall rebooten möchten,
können Sie auch einfach das X Window System
herunterfahren und als root&prompt.root; kill -HUP 1ausführen.Es ist unbedingt erforderlich, daß Sie das X
Window System vollständig herunterfahren, falls es
läuft. Falls Sie es nicht tun, könnte es sein,
daß sich ihr System nach der Eingabe des
kill-Befehls aufhängt.Wie greife ich von X aus auf virtuelle Konsolen
zu?Benutzen Sie
CtrlAltFn
um auf eine virtuelle Konsole umzuschalten. Mit
CtrlAltF1
würden Sie zur ersten virtuellen Konsole
umschalten.Sobald Sie auf eine virtuelle Konsole umgeschaltet
haben, können Sie ganz normal
AltFn
benutzen, um zwischen den einzelnen virtuellen Konsolen
umzuschalten.Um zu Ihrer X-Sitzung zurückzukehren, müssen
Sie auf die virtuelle Konsole umschalten, auf der X
läuft. Wenn Sie X über der Eingabeaufforderung
gestartet haben (z.B. mit startx),
benutzt X die nächste freie virtuelle Konsole und
nicht die Konsole, von der es gestartet wurde. Wenn Sie
acht aktive virtuelle Konsole haben, dann wird X die
neunte benutzen und Sie können mit AltF9
umschalten.Wie starte ich XDM beim Booten?Es gibt zwei Denkansätze, wie
xdm zu starten ist. Bei dem einen wird
xdm von /etc/ttys
aus gestartet, wobei das mitgelieferte Beispiel benutzt
wird, während xdm bei dem anderen
Ansatz einfach in rc.local oder von
einem Skript X.sh im Verzeichnis
/usr/local/etc/rc.d aus gestartet
wird. Beide Ansätze sind gleichwertig und der eine
wird in Situationen funktionieren, in denen der andere es
nicht tut. In beiden Fällen ist das Ergebnis das
gleiche: X liefert eine graphische
Anmeldeaufforderung.Die ttys-Methode hat den Vorteil, daß
dokumentiert ist, auf welchem vty X gestartet wird und der
Neustart des X-Servers beim Abmelden an init
übergeben wird. Die rc.local-Methode erleichtert ein
Killen von xdm, falls Probleme beim Start des X-Servers
auftreten sollten.Beim Laden von rc.local sollte xdm
ohne irgendwelche Argumente (das heißt als Daemon) gestartet
werden. xdm muß gestartet werden NACHDEM getty
läuft, andernfalls entsteht ein Konflikt zwischen
getty und xdm und die Konsole bleibt gesperrt. Der beste
Weg, um dies zu vermeiden, ist, das Skript für etwa
zehn Sekunden anzuhalten und dann xdm zu starten.Wenn Sie xdm durch einen Eintrag in
/etc/ttys starten lassen, kann es zu
einem Konflikt zwischen xdm und
&man.getty.8; kommen. Um dieses Problem zu
vermeiden, sollten Sie die Nummer des
vt in die Datei
/usr/X11R6/lib/X11/xdm/Xservers
eintragen.:0 local /usr/X11R6/bin/X vt4Diese Zeile führt dazu, daß der X Server
/dev/ttyv3 nutzt. Die beiden Zahlen
weichen voneinander ab: Der X-Server beginnt die
Zählung der vty bei 1, während der
FreeBSD-Kernel bei 0 beginnt.Wieso erhalte ich die Meldung Couldn't open
console, wenn ich xconsole benutze?Wenn Sie X mit
startx starten, werden die
Zugriffsrechte für
/dev/console leider
nicht geändert, was dazu
führt, daß Dinge wie xterm
-C und xconsole nicht
funktionieren.Das hängt damit zusammen, wie die Zugriffsrechte
für die Konsole standardmäßig gesetzt
sind. Auf einem Mehrbenutzersystem möchte man nicht
unbedingt, daß jeder Benutzer einfach auf die
Systemkonsole schreiben kann. Für Benutzer, die sich
auf einer Maschine direkt mit einem VTY anmelden,
existiert die Datei &man.fbtab.5;, um
derartige Probleme zu lösen.In Kürze: sorgen Sie dafür, daß sich
eine nicht auskommentierte Zeile der Form
/dev/ttyv0 0600 /dev/console
in der Datei /etc/fbtab befindet.
Das sorgt dafür, daß wer auch immer sich auf
/dev/ttyv0 anmeldet, auch die Konsole
besitzt.Früher konnte ich XFree86 als normaler User
starten. Warum sagt mir das System jetzt, daß ich
root sein muß?Alle X-Server müssen mit der ID
root laufen, um direkt auf die
Videohardware zuzugreifen. Die älteren Versionen von
XFree86 (bis einschließlich 3.3.6) installierten
alle mitgelieferten Server so, daß sie automatisch
unter ID root ausgeführt werden
(setuid to root). Dies stellt
natürlich eine Gefahrenquelle dar, da die X-Server
große, komplexe Programme sind. Alle neueren
Version von XFree86 installieren die Server aus genau
diesem Grund nicht mehr "setuid
root".Es ist natürlich nicht tragbar, den X-Server
immer mit der ID root laufen zu
lassen; auch aus Gründen der Sicherheit ist es keine
gute Idee. Es gibt zwei Möglichkeiten, um X auch als
normaler Benutzer starten zu können. Die erste ist
die Verwendung von xdm oder eines
ähnlichen Programms; die zweite ist die Benutzer von
Xwrapper.xdm ist ein ständig laufendes
Programm, mit dem Logins über eine graphische
Benutzeroberfläche sind. Es wird normalerweise beim
Systemstart initialisiert und für die
Authentifizierung der Benutzer und den Start ihrer
Sitzungen verantwortlich. Es ist also die graphische
Entsprechung von &man.getty.8; und &man.login.1;.
Weitere Informationen zum Thema xdm
finden Sie in der XFree86
Dokumentation und dem entsprechenden FAQ-Eintrag.Xwrapper ist eine
Hülle für den X-Server. Mit
diesem kleinen Utility ist es möglich, manuell den
X-Server zu starten und weiterhin eine annehmbare
Sicherheit zu haben. Das Tools prüft, ob die per
Kommandozeile übergebenen Argumente halbwegs sinnvoll
sind. Wenn dies der Fall ist, startet es den
entsprechenden X-Server. Wenn Sie (aus welchem Grund auch
immer) keine graphische Anmeldung wollen, ist
Xwrapper die optimale Lösung.
Wenn Sie die vollständige Ports-Sammlung installiert
haben, finden Sie das Tool im Verzeichnis
/usr/ports/x11/wrapper.Warum funktioniert meine PS/2-Maus nicht
richtig?Ihre Maus und der Maustreiber sind etwas aus der
Synchronisation geraten.Bis einschließlich Version 2.2.5 sorgt ein
Wechsel von X zu einer virtuellen Konsole und wieder
zurück für eine erneute Synchronisation. Falls
das Problem öfter auftritt, können Sie die
folgende Zeile in Ihre Kernelkonfigurationsdatei
einfügen und den Kernel neu erstellen.
options PSM_CHECKSYNC
Lesen Sie den Abschnitt über die Erstellung eines Kernels,
falls Sie keine Erfahrung mit der Erstellung eines Kernels
haben.Mit dieser Option sollten geringere Chancen für
Synchronisationsprobleme zwischen der Maus und dem Treiber
bestehen. Falls sie jedoch weiterhin auf das Problem
stoßen, drücken Sie eine der Maustasten,
während Sie die Maus nicht bewegen, um die Maus und
den Treiber neu zu synchronisieren.Beachten Sie, daß diese Option leider nicht auf
allen Systemen funktioniert und das tap
Merkmal eines am PS/2-Mausanschluß angeschlossenen
ALPS GlidePoint Gerätes beeinträchtigt.Ab Version 2.2.6 erfolgt die Überprüfung der
Synchronisation etwas besser und ist ein Standard im
PS/2-Maustreiber. Es sollte sogar mit GlidePoint
funktionieren. (Da der Code zur Überprüfung ein
standard Merkmal geworden ist, gibt es die Option
PSM_CHECKSYNC in diesen Versionen nicht mehr.) In seltenen
Fällen kann es jedoch sein, daß der Treiber
fälschlicherweise Synchronisationsprobleme meldet und
Sie in den Kernelmeldungen folgendes sehen:
psmintr: out of sync (xxxx != yyyy)
und Ihre Maus nicht richtig zu funktionieren
scheint.Falls das passiert, deaktivieren Sie den Code zur
Überprüfung der Synchronisation, indem Sie die
Treiberangaben für den PS/2-Maustreiber auf 0x100
setzen. Rufen Sie UserConfig durch
Angabe der Option am Boot-Prompt
auf:boot: -cGeben sie dann in der Kommandozeile von
UserConfig folgendes ein:UserConfig> flags psm0 0x100
UserConfig> quitMeine PS/2-Maus von MouseSystems scheint nicht zu
funktionieren.Es wurde berichtet, daß einige Modelle der
PS/2-Mäuse von MouseSystems nur funktionieren, wenn
sie im hochauflösenden Modus betrieben
werden. Andernfalls springt der Mauszeiger sehr oft in
die linke obere Ecke des Bildschirms.Leider gibt es hierzu keine Abhilfe für die
Versionen 2.0.X und 2.1.X. Verwenden Sie bei den
Versionen 2.2 bis 2.2.5 den folgenden Patch für die
Datei /sys/i386/isa/psm.c und
erstellen Sie den Kernel neu. Lesen Sie den Abschnitt
über die Erstellung eines
Kernels, falls Sie keine Erfahrung mit der
Erstellung eines Kernels haben.
diff -u psm.c.orig psm.c
@@ -766,6 +766,8 @@
if (verbose >= 2)
log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
unit, i);
+ set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH);
+
#if 0
set_mouse_scaling(sc->kbdc); /* 1:1 scaling */
set_mouse_mode(sc->kbdc); /* stream mode */
Spezifizieren Sie ab Version 2.2.6 das Flag 0x04
für den Maustreiber, um die Maus in den
hochauflösenden Modus zu bringen. Rufen Sie
UserConfig durch Angabe der Option
am Boot-Prompt auf:boot: -cGeben sie dann in der Kommandozeile von
UserConfig folgendes ein:UserConfig> flags psm0 0x04
UserConfig> quitLesen Sie den vorigen Abschnitt über eine andere
mögliche Ursache für Probleme mit der
Maus.Wenn ich eine X-Anwendung erstellen will, kann
imake die Datei
Imake.tmpl nicht finden. Wo befindet
sie sich?Imake.tmpl ist Teil des
Imake-Paketes, ein Standardwerkzeug zur Erstellung von
X-Anwendungen. Imake.tmpl ist
ebenso, wie viele Header-Dateien, die zur Erstellung von
X-Anwendungen benötigt werden, in der Distribution
xprog enthalten. Sie können Sie
per sysinstall oder aber manuell mit den X
Distributionsdateien installieren.Was kann ich tun, wenn ich XFree86 4.X installiert
habe und eine X-Anwendung compilieren will, die XFree86
3.3.X braucht?Sie können dem Port mitteilen, daß er die
Bibliotheken von XFree86 4.X benutzen soll, indem Sie die
folgende Zeile in die Datei
/etc/make.conf eintragen:XFREE86_VERSION= 4Wenn die Datei noch nicht existieren sollte, legen Sie
sie einfach an.Wie vertausche ich die Maustasten?Benutzen Sie den Befehl xmodmap -e "pointer =
3 2 1" in Ihrer .xinitrc
oder .xsession.Wie installiere ich einen Splash-Screen und wo finde
ich sie?Kurz vor der Herausgabe von FreeBSD 3.1 wurde ein
neues Feature eingefügt, das die Anzeige von
Splash-Screens während der
Bootmeldungen erlaubt. Die Splash-Screens dürfen
derzeit nur Bitmaps mit 256-Farben
(*.BMP) oder ZSoft-PCX-Dateien
*.PCX) sein. Damit sie mit normalen
VGA-Karten dargestellt werden können, darf die
Größe 320x200 Bildpunkte nicht
überschreiten. Wenn Sie in ihrem Kernel die
VESA-Unterstützung eingebunden haben, beträgt
die maximale Größe 1024x768 Pixel.
Die derzeitige VESA-Unterstützung kann entweder direkt
durch die Kernelkonfigurationsoption
VESA in den Kernel eingebunden werden,
oder durch das Laden des VESA-Moduls kld während des
Bootens.Um eine Splash-Screen zu benutzen, müssen Sie die
Startdateien, die den Bootprozeß von FreeBSD
kontrollieren, modifizieren. Diese Dateien haben sich vor
der Herausgabe von FreeBSD 3.2 geändert, so daß
nun zwei Möglichkeiten zum Laden einer Splash-Screen
existieren:FreeBSD 3.1Der erste Schritt besteht darin, eine
Bitmap-Version Ihrer Splash-Screen zu finden. Von
Version 3.1 werden nur Windows-Bitmap Splash-Screens
unterstützt. Wenn Sie die Splash-Screen Ihrer
Wahl gefunden haben, kopieren Sie sie nach
/boot/splash.bmp. Als
nächstes benötigen Sie eine Datei
/boot/loader.rc, die die
folgenden Zeilen enthält:
load kernel
load -t splash_image_data /boot/splash.bmp
load splash_bmp
autoboot
seit FreeBSD 3.2Außer der zusätzlichen
Unterstützung von PCX Splash-Screens bietet
FreeBSD 3.2 eine einfachere Möglichkeit, den
Bootprozeß zu konfigurieren. Wenn Sie
möchten, können Sie auch die obige Methode
für FreeBSD 3.1 benutzen. Falls Sie das tun und
PCX verwenden möchten, dann ersetzen Sie
splash_bmp durch
splash_pcx. Falls Sie aber die
neuere Bootkonfiguration benutzen möchten,
müssen Sie eine Datei
/boot/loader.rc erstellen, die
die folgenden Zeilen enthält:
include /boot/loader.4th
start
und eine Datei
/boot/loader.conf, die die
folgenden Zeilen enthält:
splash_bmp_load="YES"
bitmap_load="YES"
Dies setzt voraus, daß Sie
/boot/splash.bmp als Ihren
Splash-Screen benutzen. Wenn Sie lieber eine
PCX-Datei benutzen wollen, dann kopieren Sie sie nach
/boot/splash.pcx, erstellen Sie
eine Datei /boot/loader.rc, wie
oben beschrieben und eine Datei
/boot/loader.conf, die folgendes
enthält:
splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"
Alles, was Sie nun brauchen, ist ein Splash-Screen.
- Hierzu können Sie durch die Gallerie bei http://www.baldwin.cx/splash/
+ Hierzu können Sie durch die Gallerie bei
+
surfen.Kann ich die Windows-Tasten unter X
benutzen?Ja, Sie müssen lediglich mit &man.xmodmap.1;
festlegen, welche Aktion diese Tasten auslösen
sollen.Unter der Annahme, daß alle Windows Tastaturen
dem Standard entsprechen, lauten die Keycodes für die
drei Tasten115 - Windows Taste zwischen den
Alt- und
Strg-Tasten auf der linken Seite116 - Windows Taste rechts von der
AltGr-Taste117 - Menü-Taste, links von der
rechten Strg-TasteNach der folgenden Anweisung erzeugt die linke
Windows-Taste
ein Komma.&prompt.root; xmodmap -e "keycode 115 = comma"Sie werden Ihren Window Manager wahrscheinlich neu
starten müssen, damit diese Einstellung wirksam
wird.Um die neue Belegung der Windows-Tasten automatisch
beim Start von X zu erhalten, könnten Sie
entsprechende xmodmap Anweisungen in
ihre ~/.xinitrc einfügen. Die
bevorzugte Variante ist aber, eine Datei mit dem Namen
~/.xmodmaprc zu erzeugen, die nur die
Parameter für den Aufruf von
xmodmap enthält. Wenn Sie mehrere
Tasten umdefinieren wollen, muß jede Definition in
eine eigene Zeile gesetzt werden. Weiterhin müssen
Sie in Ihrer ~/.xinitrc noch die
folgende Zeile einfügen:
xmodmap $HOME/.xmodmaprc
Sie könnten die drei Tasten zum Beispiel mit den
Funktionen F13, F14 und
F15 belegen. Dadurch ist es sehr
einfach, diese Tasten mit nützlichen Funktionen eines
Programmes oder Desktops zu verknüpfen.Falls Sie das auch tun wollen, sollten in Ihrer
~/.xmodmaprc die folgenden
Anweisungen stehen.
keycode 115 = F13
keycode 116 = F14
keycode 117 = F15
Falls Sie zum Beispiel fvwm2
benutzen, können Sie ihn so einstellen, daß
F13 das Fenster unter dem Mauszeiger
minimiert bzw. maximiert. F14 holt das
Fenster unter dem Mauszeiger in den Vordergrund bzw.
ganz nach hinten, wenn es bereits im Vordergrund ist.
F15 öffnet das Arbeitsplatz
(Programme) Menü, auch wenn der Cursor nicht auf den
Hintergrund zeigt. Dies ist extrem praktisch, wenn der
gesamte Bildschirm von Fenster belegt wird; als kleiner
Bonus gibt es sogar einen Zusammenhang zwischen dem Symbol
auf der Taste und der durchgeführten Aktion.Dieses Verhalten kann man mit den folgenden
Einträgen in der Datei ~/.fvwmrc
erhalten:
Key F13 FTIWS A Iconify
Key F14 FTIWS A RaiseLower
Key F15 A A Menu Workplace Nop
Wird 3D Hardware Beschleunigung für OpenGL
unterstützt?Dies hängt davon ab, welche Version von XFree86
und welche Karte Sie verwenden. Wenn Sie eine Karte mit
NVIDIA-Chipsatz besitzen, benutzen Sie die binären
Treiber für FreeBSD 4.7, die Sie auf der
Drivers-Seite von NVIDEA finden.
Wenn Sie XFree86-4 und Karten wie
die Matrox G200/G400, ATI Rage 128/Radeon, oder 3dfx
Voodoo 3, 4, 5, und Banshee einsetzen, erhalten Sie
weitere Informationen auf der Webseite XFree86-4
Direct Rendering on FreeBSD. Wenn Sie XFree86 in
der Version 3.3 einsetzen, erhalten Sie
eingeschränkte Unterstützung von die
Hardware-Beschleunigung bei OpenGL für die Matrox
Gx00, ATI Rage Pro, SiS 6326, i810, Savage, und Karten,
die auf älteren NVIDIA Chipsätzen beruhen, wenn
Sie den Port graphics/utah-glx
installieren.NetzwerkeWoher kann ich Informationen über Diskless
Booting bekommen?Diskless Booting bedeutet, daß
die FreeBSD-Maschine über ein Netzwerk gebootet wird
und die notwendigen Dateien von einem Server anstatt von
der Festplatte liest. Vollständige Details finden
Sie im Handbucheintrag über
Diskless Operation.Kann eine FreeBSD-Maschine als Netzwerkrouter genutzt
werden?Ja. Genaue Informationen zu diesem Thema finden Sie
im Kapitel
Advanced Networking, im Abschnitt
Gateways und Routen.Kann ich meine Win95-Maschine über FreeBSD ans
Internet anbinden?Personen, die diese Frage stellen, haben
typischerweise zwei PCs zu Hause: einen mit FreeBSD und
einen mit Win95; die Idee ist, die FreeBSD-Maschine an das
Internet anzubinden und dann in der Lage zu sein, von der
Windows95-Maschine aus über die FreeBSD-Maschine auf
das Internet zuzugreifen. Das ist tatsächlich nur
ein Spezialfall der vorherigen Frage.... und die Antwort ist JA! Das user-mode &man.ppp.8; von
FreeBSD 3.1 kennt die Option . Wenn Sie
&man.ppp.8; mit der Option
starten, in
/etc/rc.conf die Variable
gateway_enable auf
YES setzen und ihre Windows-Maschine
korrekt konfigurieren, sollte das hervorragend
funktionieren.Ausführlichere Informationen zur Konfiguration
finden Sie in der &man.ppp.8; Manualpage.Wenn Sie Kernel-Mode PPP verwenden oder ihre
Verbindung zum Internet über Ethernet erstellt
wurde, müssen Sie &man.natd.8; verwenden. Weitere
Informationen dazu finden Sie im Abschnitt über natd.Unterstützt FreeBSD SLIP und PPP?Ja. Lesen Sie die Manualpages &man.slattach.8;,
&man.sliplogin.8;, &man.pppd.8; und &man.ppp.8;.
&man.ppp.8; und &man.pppd.8; liefern Unterstützung
sowohl für eingehende, als auch ausgehende
Verbindungen. &man.sliplogin.8; behandelt
ausschließlich eingehende Verbindungen und
&man.slattach.8; behandelt ausschließlich ausgehende
Verbindungen.Diese Programme werden im Abschnitt PPP und SLIP
des Handbuchs beschrieben.Falls Sie nur durch einen Shell-Account
Zugang zum Internet haben, sehen Sie sich einmal das
Package net/slirp an.
Es kann Ihnen (eingeschränkten) Zugang zu Diensten
wie ftp und http direkt von Ihrer lokalen Maschine aus
ermöglichen.Unterstützt FreeBSD NAT oder
Masquerading?Falls Sie ein lokales Subnetz (oder mehrere lokale
Maschinen) besitzen, aber von Ihrem Internetprovider nur
eine einzige (evtl. auch dynamisch zugeteilte) IP-Adresse
zugewiesen bekommen haben, sehen Sie sich einmal das
Programm &man.natd.8; an. &man.natd.8; ermöglicht
es Ihnen, ein vollständiges Subnetz mit nur einer
einzigen IP-Adresse an das Internet anzubinden.Das Programm &man.ppp.8; verfügt mit der
eingebauten Option über eine
ähnliche Funktionalität. In beiden Fällen
wird die Alias-Bibliothek &man.libalias.3;
verwendet.Wie verbinde ich zwei FreeBSD-Maschinen mit PLIP
über die parallele Schnittstelle?Dieses Thema wird im Handbuch-Kapitel PLIP
behandelt.Wieso kann ich das Gerät
/dev/ed0 nicht erstellen?Weil das nicht notwendig ist. Bei Berkeley-basierten
Netzwerkimplementationen kann nur vom Kernel-Code aus
direkt auf Netzwerkkarten zugegriffen werden. Zur
weiteren Information lesen Sie bitte die Datei
/etc/rc.network und die Manualpages
zu den unterschiedlichen Netzwerkprogrammen, die dort
erwähnt werden. Falls Sie danach total verwirrt
sind, sollten Sie sich ein Buch besorgen, das die
Netzwerkadministration auf einem anderen
BSD-ähnlichen Betriebssystem beschreibt; mit wenigen
signifikanten Ausnahmen gleicht die Netzwerkadministration
auf FreeBSD im Grunde der auf SunOS 4.0 oder
Ultrix.Wie kann ich Ethernet-Aliase einrichten?Wenn sich die zweite Adresse im gleichen Subnetz
befindet wie eine der Adressen, die bereits auf dem
Interface konfiguriert sind, benutzen Sie netmask
0xffffffff in Ihrer &man.ifconfig.8;
Befehlszeile, wie z.B.:&prompt.root; ifconfig ed0 alias 204.141.95.2 netmask 0xffffffffAndernfalls geben sie die Adresse und die Netzmaske so
an, wie sie es bei einem normalen Interface auch tun
würden:&prompt.root; ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00Wie bringe ich meine 3C503 dazu, den anderen
Anschluß zu benutzen?Wenn Sie die anderen Anschlüsse benutzen
möchten, müssen Sie einen zusätzlichen
Parameter in der &man.ifconfig.8;-Befehlszeile
spezifizieren. Der Standard-Anschluß ist
link0. Um den AUI-Anschluß
anstelle des BNC-Anschlusses zu verwenden, benutzen Sie
link2. Diese Angaben sollten durch
Benutzung der Variablen ifconfig_* in der Datei
/etc/rc.conf spezifiziert
werden.Warum habe ich Probleme mit NFS und FreeBSD?Gewisse PC-Netzwerkkarten sind (um es gelinde
auszudrücken) besser als andere und können
manchmal Probleme mit netzwerkintensiven Anwendungen wie
NFS verursachen.Weitere Informationen zu diesem Thema finden Sie
im Handbucheintrag zu
NFS.Warum kann ich per NFS nicht von einer Linux-Maschine
mounten?Einige Versionen des NFS-Codes von Linux akzeptieren
Mount-Requests nur von einem privilegierten Port.
Versuchen Sie&prompt.root; mount -o -P linuxbox:/blah /mntWarum kann ich per NFS nicht von einer Sun-Maschine
mounten?Sun Workstations mit SunOS 4.X akzeptieren
Mount-Requests nur von einem privilegierten Port.
Versuchen Sie&prompt.root; mount -o -P sunbox:/blah /mntWarum meldet mir mountd auf meinem
FreeBSD NFS-Server ständig can't change
attributes und bad exports
list?Die häufigste Ursache für dieses Problem
ist, daß Sie den Aufbau der &man.exports.5; nicht
oder nicht richtig verstanden haben. Überprüfen
Sie Ihre &man.exports.5; und lesen das Kapitel NFS im Handbuch,
speziell den Abschnitt Konfiguration.Warum habe ich Probleme, per PPP mit NeXTStep-Maschinen zu
kommunizieren?Versuchen Sie, die TCP-Erweiterung in
/etc/rc.conf zu deaktivieren, indem
Sie die folgende Variable auf NO setzen:
tcp_extensions=NO
Xylogic's Annex-Maschinen arbeiten hier auch
fehlerhaft und Sie müssen die obige Änderung
benutzen, um über Sie Verbindungen
herzustellen.Wie aktiviere ich die Unterstützung für
IP-Multicast?Multicast-Host-Funktionen werden seit FreeBSD 2.0
standardmäßig voll unterstützt. Wenn Sie
Ihre Maschine als Multicast-Router betreiben wollen,
müssen Sie Ihren Kernel mit der Option
MROUTING rekompilieren und
&man.mrouted.8; starten. Seit Version 2.2 startet FreeBSD
&man.mrouted.8; beim Booten, wenn die Variable
mrouted_enable in der Datei
/etc/rc.conf auf
"YES" gesetzt ist.MBONE-Tools sind in ihrer eigenen Ports-Kategorie
mbone
verfügbar. Schauen Sie dort nach, wenn Sie die
Konferenztools vic und
vat suchen!Welche Netzwerkkarten basieren auf dem
DEC-PCI-Chipsatz?Hier ist eine von Glen Foster
gfoster@driver.nsta.org zusammengetragene
Liste mit einigen aktuellen Ergänzungen:
Warum muß ich für Hosts auf meiner Site den
FQDN benutzen?Sie werden wahrscheinlich feststellen, daß der
Host sich tatsächlich in einer anderen Domäne
befindet; wenn Sie sich zum Beispiel in foo.example.org
befinden und einen Host namens mumble in
der Domäne example.org erreichen wollen,
werden Sie den fully-qualified Domainnamen mumble.example.org, anstatt nur
mumble benutzen müssen.Traditionell war dies bei BSD-BIND-Resolvern erlaubt.
Die aktuelle Version von bind,
die mit FreeBSD ausgeliefert wird, ermöglicht jedoch
nicht mehr die standardmäßige Abkürzung
von nicht-fully-qualified Domainnamen für andere als
ihre eigene Domäne. Ein nicht-qualifizierter Host
mumble muß also entweder als
mumble.foo.example.org gefunden
werden, oder er wird in der Hauptdomäne
gesucht.Dies unterscheidet sich vom vorherigen Verhalten, wo
die Suche über mumble.example.org und mumble.edu fortgesetzt wurde.
Werfen Sie einen Blick in RFC 1535, um zu erfahren, warum
dies als schlechter Stil oder sogar als eine
Sicherheitslücke betrachtet wurde.Als Abhilfe können Sie die Zeilesearch foo.example.org example.organstelle der vorherigendomain foo.example.orgin Ihre Datei /etc/resolv.conf
einfügen. Stellen Sie jedoch sicher, daß die
Suchreihenfolge nicht über die Grenze zwischen
lokaler und öffentlicher Administration, wie
RFC 1535 sie nennt, hinausreicht.Wieso erhalte ich bei allen Netzwerkoperationen die
Meldung Permission denied?Dieses Problem kann auftreten, wenn Sie einen Kernel
mit der Option IPFIREWALL erstellt
haben. Während der Entwicklung von FreeBSD 2.1.7
wurde die Semantik dieser Option geändert: Seit
dieser Version ist alles verboten, was nicht explizit
erlaubt ist.Falls sie Ihr System unbeabsichtigt als Firewall
konfiguriert haben, können Sie die
Netzwerkfunktionalität wiederherstellen, indem Sie
als root folgendes eingeben:&prompt.root; ipfw add 65534 allow all from any to anySie können in /etc/rc.conf
auch firewall_type="open"
setzen.Weitere Informationen über die Konfiguration
einer FreeBSD-Firewall finden Sie im Handbuch-Abschnitt.Wieviele Einbußen zieht IPFW nach sich?Diese Frage wird im Handbuch-Kapitel Firewalls im
Abschnitt IPFW
Overhead und Optimierung ausführlich
behandelt.Warum kann ich bei &man.ipfw.8; einen Dienst nicht mit
fwd auf eine andere Maschine
umlenken?Der wahrscheinlichste Grund ist, daß Sie Network
Address Translation (NAT) brauchen und nicht die einfache
Weiterleitung von Pakete. Die fwd
Anweisung macht genau das, was da steht: Sie leitet
Pakete weiter; die Daten in den Paketen werden aber nicht
verändert. Ein Beispiel:01000 fwd 10.0.0.1 from any to foo 21Wenn ein Paket mit dem Ziel
foo die Maschine mit dieser
Regel erreicht, wird das Paket an
10.0.0.1 weitergeleitet; die
Zieladresse im Paket lautet aber immer noch
foo! Die Zieladresse wird
nicht in
10.0.0.1 geändert. Die
meisten Rechner werden allerdings Pakete verwerfen, wenn
die Zieladresse des Paketes nicht mit der Adresse des
Rechners übereinstimmt. Das ist der Grund, warum
eine fwd Regel oft nicht den Effekt hat,
den der Benutzer wollte. Dieses Verhalten ist aber kein
Fehler, sondern erwünscht.Wenn Sie einen Dienst auf eine andere Maschine
umleiten wollen, sollten Sie sich den FAQ-Eintrag über die
Umleitung von Diensten oder die Online-Hilfe zu
&man.natd.8; durchlesen. Auch in der Ports Sammlung sind diverse
Hilfsprogramme für diesen Zweck enthalten.Wie kann ich Service-Requests von einer Maschine auf
eine andere umleiten?Sie können FTP-Requests (und andere Dienste) mit
dem Package socket umleiten, das im
Ports-Tree in der Kategorie sysutils
verfügbar ist. Ersetzen sie die Befehlszeile
für den Dienst einfach so, daß stattdessen
socket aufgerufen wird, zum Beispiel so:
ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.comftpwobei ftp.example.com und
ftp entsprechend der Host und
der Port sind, wohin umgeleitet werden soll.Woher kann ich ein Bandbreiten-Managementtool
bekommen?Für FreeBSD gibt es drei
Bandbreiten-Managementtools. &man.dummynet.4; ist in
FreeBSD (um genau zu sein, in &man.ipfw.4;) integriert.
ALTQ
gibt es umsonst; Bandwidth Manager von Emerging Technologies
ist ein kommerzielles Produkt.Warum erhalte ich die Meldung /dev/bpf0:
device not configured?Der Berkeley-Paket-Filter (&man.bpf.4;) muß in
den Kernel eingebunden werden, bevor er von einem
Programme aus genutzt werden kann. Fügen Sie
folgendes zu Ihrer Kernelkonfigurationsdatei hinzu und
erstellen Sie einen neuen Kernel:pseudo-device bpf # Berkeley Packet FilterNach dem Neustart müssen Sie den Device Node
erstellen. Wechseln Sie dazu in das Verzeichnis
/dev und führen Sie den folgenden
Befehl aus:&prompt.root; sh MAKEDEV bpf0Weitere Informationen zur Erstellung von Geräten
finden Sie im Handbucheintrag
über Device Nodes.Habe ich, analog zum smbmount von Linux, eine
Möglichkeit, auf ein freigegebenes Laufwerk einer
Windows-Maschine in meinem Netzwerk zuzugreifen.Benutzen Sie die Kernel-Erweiterungen und Benutzerprogramme
aus dem Programmpaket SMBFS. Das
Paket und weitergehende Informationen sind unter
net/smbfs in den Ports
verfügbar; ab der Version 4.5 ist
SMBFS Bestandteil
des Basissystems.Was bedeutet die Meldung icmp-response
bandwidth limit 300/200 pps in meinen
Logfiles?Mit dieser Meldung teilt Ihnen der Kernel mit,
daß irgend jemand versucht, ihn zur Generierung von
zu vielen ICMP oder TCP reset (RST) Antworten zu
provozieren. ICMP Antworten sind oft das Ergebnis von
Verbindungsversuchen zu unbenutzten UDP Ports. TCP Resets
werden generiert, wenn jemand versucht, eine Verbindung zu
einem ungenutzten TCP Port aufzubauen. Die Meldungen
können unter anderem durch die folgenden Ereignisse
ausgelöst werden:Denial of Service (DoS) Angriffe mit der
Brechstange (und nicht durch Angriffe mit einzelnen
Paketen, die gezielt eine Schwachstelle des Systems
ausnutzen sollen).Port Scans, bei denen versucht wird, Verbindungen
zu einer großen Anzahl von Ports (und nicht nur
einigen bekannten Ports) herzustellen.Die erste Zahl gibt an, wieviele Pakete vom Kernel
ohne das Limit versendet worden wären; die zweite
Zahl gibt das Limit an. Sie können das Limit mit
Hilfe der sysctl-Variable
net.inet.icmp.icmplim einstellen. Im
Beispiel wird das Limit auf 300 Pakete
pro Sekunde gesetzt:&prompt.root; sysctl -w net.inet.icmp.icmplim=300Wenn Sie zwar die Begrenzung benutzen möchten, aber
die Meldungen nicht in Ihren Logfiles sehen möchten,
können Sie die Meldungen mit der sysctl-Variable
net.inet.icmp.icmplim_output
abschalten:&prompt.root; sysctl -w net.inet.icmp.icmplim_output=0Falls Sie die Begrenzung ganz abschalten wollen,
können Sie die Sysctl-Variable
net.inet.icmp.icmplim auf
0. Wir raten Ihnen aus den oben
genannten Gründen dringend von diesem Schritt
ab.Was bedeutet die Meldung arp: unknown
hardware address format?Ein Gerät im lokalen Ethernet verwendet eine
MAC-Adresse in einem Format, das FreeBSD nicht kennt. Der
wahrscheinlichste Grund ist, daß jemand Experimente
mit einer Ethernet-Karte anstellt. Die Meldung tritt sehr
häufig in Netzwerken mit Cable Modems auf. Die
Meldung ist harmlos und sollte die Performance Ihres
Systems nicht negativ beeinflussen.Ich habe gerade CVSup installiert, aber das Programm bricht
mit Fehlermeldungen ab. Was ist da schief gelaufen?Schauen Sie bitte zuerst nach, ob Sie eine Fehlermeldung
wie die unten gezeigte erhalten./usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not foundSolche Fehlermeldungen erhalten Sie, wenn Sie den
net/cvsup Port auf einer
Maschine installieren, die kein
XFree86-System besitzt. Wenn Sie
das GUI von CVSup
benutzen wollen, müssen Sie
XFree86 installieren. Wenn Sie
CVSup nur auf der Kommandozeile
benutzen wollen, entfernen Sie bitte den Port, den Sie gerade
installiert haben. Installieren Sie stattdessen den Port
net/cvsup-without-gui.
Genauere Informationen finden Sie im
CVSup Abschnitt
des Handbuchs.SicherheitWas ist ein Sandkasten (sandbox)?Sandkasten (sandbox) ist ein Ausdruck
aus dem Bereich Sicherheit. Er hat zwei
Bedeutungen:Ein Programm, das innerhalb virtueller Wände
ausgeführt wird. Wenn ein Angreifer über
eine Sicherheitslücke in diesen Programm
einbricht, verhindern diese Wände ein tieferes
Vordringen in das System.Man sagt: Der Prozeß kann innerhalb der
Wände spielen, das heißt nichts, was
der Prozeß in Bezug auf die Ausführung von
Code tut, kann die Wände durchbrechen. Es ist
also keine detailierte Revision des Codes
erforderlich, um gewisse Aussagen über seine
Sicherheit machen zu können.Die Wände könnten z.B. eine
Benutzerkennung sein. Dies ist die Definition, die in
den Manualpages security und named benutzt
wird.Nehmen Sie zum Beispiel den Dienst
ntalk (siehe auch /etc/inetd.conf).
Dieser Dienst ist früher mit der Benutzerkennung
root gelaufen; nun läuft er mit der
Benutzerkennung tty. Der Benutzer tty ist ein
Sandkasten, der dazu gedacht ist, es jemandem, der
über ntalk erfolgreich in das System eingebrochen
ist, schwer zu machen, über diese Benutzerkennung
hinaus vorzudringen.Ein Prozeß, der sich innerhalb einer
simulierten Maschine befindet. Dies ist etwas
fortgeschrittener; grundsätzlich bedeutet es,
daß jemand, der in der Lage ist, in einen
Prozeß einzudringen, annehmen könnte, er
könnte weiter in die Maschine eindringen,
tatsächlich aber nur in eine Simulation der
Maschine einbricht und keine echten Daten
verändert.Der gängigste Weg, dies zu erreichen, ist, in
einem Unterverzeichnis eine simulierte Umgebung zu
erstellen und den Prozeß in diesem Verzeichnis
mit chroot auszuführen (für diesen
Prozeß ist / dieses
Verzeichnis und nicht das echte /
des Systems).Eine weitere gebräuchliche Anwendung ist, ein
untergeordnetes Dateisystem nur mit Leserechten zu
mounten, und dann darüber eine Dateisystemebene
zu erstellen, die einem Prozeß einen scheinbar
schreibberechtigten Blick in das Dateisystem gibt.
Der Prozeß mag glauben, daß er in der Lage
ist, diese Dateien zu verändern, aber nur der
Prozeß sieht diesen Effekt - andere Prozeß
im System natürlich nicht.Es wird versucht, diese Art von Sandkasten so
transparent zu gestalten, daß der Benutzer (oder
Hacker) nicht merkt, daß er sich in ihm
befindet.Ein &unix; System implementiert zwei Arten von Sandkästen -
eine auf Prozeßebene und die andere auf der Ebene
der Benutzerkennung.Jeder Prozeß auf einem &unix; System ist vollständig von
allen anderen Prozessen abgeschirmt. Ein Prozeß
kann den Adreßraum eines anderen Prozesses nicht
modifizieren. Das ist anders als bei Windows, wo ein
Prozeß leicht den Adreßraum eines anderen
überschreiben kann, was zu einem Absturz
führt.Ein Prozeß gehört einer bestimmten
Benutzerkennung. Falls die Benutzerkennung nicht die von
root ist, dient sie dazu, den
Prozeß von Prozessen anderer Benutzer abzuschirmen.
Die Benutzerkennung wird außerdem dazu genutzt,
Daten auf der Festplatte abzuschirmen.Was sind die Sicherheitsstufen?Die Sicherheitsstufen sind ein Sicherheitsmechanismus,
der im Kernel angesiedelt ist. Wenn die Sicherheitsstufe
einen positiven Wert hat, verhindert der Kernel die
Ausführung bestimmter Tätigkeiten; nicht einmal
der Super-User (also root) darf sie
durchführen. Zur Zeit können über die
Sicherheitsstufen unter anderem die folgenden
Tätigkeiten geblockt werden:Änderungen bestimmter Dateiattribute, wie zum
Beispiel schg (das "system immutable"
Attribut)Schreibender Zugriff auf die Speicherbereiche des
Kernels mittels /dev/mem und
/dev/kmem.Laden von Kernel-Modulen.Änderungen an den Firewall-Regeln.Um die eingestellte Sicherheitsstufe eines aktiven
Systems abzufragen, reicht das folgende einfache
Kommando:&prompt.root; sysctl kern.securelevelDie Ausgaben wird den Namen der
&man.sysctl.8;-Variablen (in diesem Fall
kern.securelevel) und eine Zahl
enthalten. Die Zahl ist der aktuelle Wert der
Sicherheitsstufe. Wenn die Zahl positiv
(größer als Null) ist, sind zumindestens einige
der Schutzmaßnahmen aktiviert.Sie können die Sicherheitsstufe eines laufenden
Systems nicht verringern, da dies den Mechanismus wertlos
machen würden. Wenn Sie eine Tätigkeit
ausführen müssen, bei der die Sicherheitsstufe
nicht-positiv sein muß (z.B. ein
installworld oder eine
Änderung der Systemzeit), dann müssen Sie die
entsprechende Einstellung in
/etc/rc.conf ändern (suchen Sie
nach den Variablen kern_securelevel und
kern_securelevel_enable) und das System
rebooten.Weitere Informationen über die Sicherheitsstufen
und genaue Informationen, was die Einstellungen bewirken,
können Sie der Online-Hilfe &man.init.8;
entnehmen.Die Sicherheitsstufen sind kein magischer
Zauberstab, der alle Ihre Problem löst; es gibt
viele bekannte Probleme. Und in der Mehrzahl der
Fälle vermitteln sie ein falsches Gefühl der
Sicherheit.Eines der größten Probleme ist, daß
alle für den Start des Systems benötigten
Dateien geschützt sein müssen, damit die
Sicherheitsstufe effektiv sein können. Wenn es ein
Angreifer schafft, seine eigenen Programme
ausführen zu lassen, bevor die Sicherheitsstufe
gesetzt wird (was leider erst gegen Ende des
Startvorgangs erfolgen kann, da viele der notwendigen
Tätigkeiten für den Systemstart nicht mit
einer gesetzten Sicherheitsstufe möglich
wären), werden die Schutzmechanismen ausgehebelt.
Es ist zwar nicht technisch unmöglich, alle beim
Systemstart genutzten Dateien zu schützen;
allerdings würde in einem so geschützten
System die Administration zu einem Alptraum, da man das
System neu starten oder in den Single-User Modus bringen
müßte, um eine Konfigurationsdatei
ändern zu können.Dieses und andere Probleme werden häufig auf
den Mailinglisten diskutiert, speziell auf auf der
Mailingliste &a.security;. Das
verfügbare Archiv enthält ausgiebige
Diskussionen. Einige Benutzer sind guter Hoffnung,
daß das System der Sicherheitsstufen bald durch
ein besser konfigurierbares System ersetzt wird, aber es
gibt noch keine definitiven Aussagen.Fühlen Sie sich gewarnt.Wieso wartet BIND (named) sowohl auf Port
53 als auch auf einem hohen Port auf Anfragen?FreeBSD benutzt seit Version 3.0 eine Version von
BIND, die einen Port mit einer hohen, zufälligen
Nummer für den Versand von Anfragen nutzt. Wenn Sie
Port 53 für abgehende Anfragen benutzen wollen, um
durch eine Firewall zu kommen oder sich einfach nur besser
zu fühlen, können die folgenden Zeilen in
/etc/namedb/named.conf
eintragen.options {
query-source address * port * 53;
};Wenn Sie möchten, können Sie statt
* auch eine einzelne IP-Adresse
eintragen, um die Dinge noch weiter
einzuschränken.Ach übrigens, herzlichen Glückwunsch. Es
ist eine sehr gute Angewohnheit, die Ausgaben von
&man.sockstat.1; durchzusehen und auf merkwürdige
Dinge zu achten.Wieso wartet Sendmail neuerdings sowohl auf Port 587
als auch auf dem Standard-Port 25 auf Anfragen?Aktuelle Sendmail-Versionen unterstützen eine
neue Technik zur Einlieferung von Mails, die Port 587
nutzt. Diese Technik wird zwar noch nicht oft angewendet,
erfreut sich aber ständig steigenden
Popularität,Woher kommt dieser Benutzer toor
mit UID 0? Ist mein System gehackt worden?Keine Panik. toor ist ein
alternativer Account für den
Super-User (wenn man root rückwärts schreibt,
erhält man toor). Früher wurde er nur erzeugt,
wenn die Shell &man.bash.1; installiert wurde, heute wird
er auf jeden Fall erzeugt. Dieser Account ist für
die Verwendung mit einer alternativen Shell vorgesehen;
damit ist es nicht mehr erforderlich, die Shell von
root zu ändern. Dies ist
wichtig, wenn eine Shell verwendet wird, die nicht zum
Lieferumfang von FreeBSD gehört, zum Beispiel aus
einem Port oder einem Package. Diese Shells werden in der
Regel in /usr/local/bin installiert
und dieses Verzeichnis liegt standardmäßig auf
einem anderem Filesystem. Wenn die Shell von
root in
/usr/local/bin liegt und
/usr (oder das Filesystem, auf dem
/usr/local/bin liegt) nicht gemountet
werden kann, kann sich root nicht
mehr einloggen, um das Problem zu beheben. Es ist
allerdings möglich, das System zu rebooten und das
Problem im Single-User Modus zu lösen, da man hier
gefragt wird, welche Shell benutzt werden soll.Einige Anwender benutzen toor mit
einer alternativen Shell für die tägliche Arbeit
und benutzen root (mit der
Standard-Shell) für den Single-User Modus und
für Notfälle. Standardmäßig kann man
sich nicht als toor anmelden, da der
Account kein gültiges Paßwort hat; Sie
müssen sich also als root
anmelden und ein Paßwort für
toor setzen, wenn Sie diesen Account
benutzen wollen.Warum funktioniert suidperl nicht
richtig?Aus Sicherheitsgründen wird suidperl
standardmäßig ohne das SUID-Bit installiert.
Der Systemadministrator kann das normale Verhalten mit dem
folgenden Befehl herstellen:&prompt.root; chmod u+s /usr/bin/suidperlWenn Sie wollen, daß suidperl
auch beim Update via Sourcecode das SUID-Bit erhält,
müssen Sie in /etc/make.conf die
Zeile ENABLE_SUIDPERL=true
einfügen, bevor Sie make
buildworld starten.PPPIch bekomme &man.ppp.8; nicht zum Laufen. Was mache
ich falsch?Sie sollten zuerst &man.ppp.8; (die Manualpage zu ppp)
und den Abschnitt zu
PPP im Handbuch lesen. Aktivieren Sie das Logging
mit folgendem Befehl:
set log Phase Chat Connect Carrier lcp ipcp ccp command
Dieser Befehl kann an der Eingabeaufforderung von
&man.ppp.8; eingegeben oder in die Konfigurationsdatei
/etc/ppp/ppp.conf eingetragen werden
(der beste Ort hierfür ist der Anfang des Abschnitts
default. Stellen Sie sicher, daß
die Datei /etc/syslog.conf die
folgenden Zeilen enthält:
!ppp
*.* /var/log/ppp.log
und, daß die Datei
/var/log/ppp.log existiert. Sie
können nun über die Logfiles eine Menge
darüber herausfinden, was geschieht. Es macht
nichts, wenn die Einträge in den Logfiles Ihnen gar
nichts sagen. Wenn Sie jemandem um Hilfe bitten
müssen, könnten sie für ihn von Nutzen
sein.Falls Ihre Version von &man.ppp.8; den set
log Befehl nicht versteht, sollten Sie sich die
neueste
Version herunterladen. Sie kann auf
Freebsd-Version 2.1.5 und höher erstellt
werden.Warum hängt sich ppp auf, wenn ich es
benutze?Das liegt meistens daran, daß Ihr Rechnername
nicht aufgelöst werden kann. Um dieses Problem zu
lösen, müssen Sie sicherstellen, daß die
Datei /etc/hosts von Ihrem Resolver
zuerst genutzt wird. Dazu muß in der Datei
/etc/host.conf der Eintrag
hosts an die erste Stelle gesetzt
werden. Erstellen Sie dann einfach für Ihren lokalen
Rechner einen Eintrag in der Datei
/etc/hosts. Falls Sie kein lokales
Netzwerk besitzen, ändern Sie die
localhost-Zeile:
127.0.0.1 foo.example.com foo localhost
Andernfalls fügen Sie einfach einen weiteren
Eintrag für Ihren lokalen Rechner hinzu. Weitere
Details finden Sie in den betreffenden
Manualpages.Wenn Sie fertig sind sollten Sie ping -c1
`hostname` erfolgreich ausführen
können.Warum wählt &man.ppp.8; im
-auto-Modus nicht?Überprüfen Sie zunächst, ob Sie einen
Standard-Gateway eingestellt haben. Wenn Sie
netstat -rn ausführen, sollten Sie
zwei Einträge ähnlich den folgenden
sehen:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.2 UGSc 0 0 tun0
10.0.0.2 10.0.0.1 UH 0 0 tun0
Hier wird angenommen, daß Sie die Adressen aus
dem Handbuch, der Manualpage oder aus der Datei
ppp.conf.sample benutzt haben. Falls Sie keine
Standardroute haben, kann es daran liegen, daß Sie
eine alte Version von &man.ppp.8; benutzen, die das Wort
HISADDR in der Datei ppp.conf nicht
versteht. Falls Ihre &man.ppp.8;-Version älter als
2.2.5 ist, ändern Sie die Zeile
add 0 0 HISADDR
in
add 0 0 10.0.0.2
Ein weiterer Grund dafür, daß die Zeile
für die Standardroute fehlt, könnte der sein,
daß Sie fälschlicherweise eine Standardroute in
der Datei /etc/rc.conf (diese Datei
hieß vor Version 2.2.2
/etc/sysconfig) eingetragen und die
folgende Zeile in ppp.conf
ausgelassen haben:
delete ALL
Lesen Sie in diesem Fall den Abschnitt Abschließende
Systemkonfiguration des Handbuchs.Was bedeutet No route to
host?Dieser Fehler beruht für gewöhnlich auf
einem fehlenden Abschnitt
MYADDR:
delete ALL
add 0 0 HISADDR
in Ihrer Datei
/etc/ppp/ppp.linkup. Er ist nur
notwendig, wenn Sie eine dynamische IP-Adresse besitzen
oder die Adresse Ihres Gateways nicht kennen. Wenn Sie
den interaktiven Modus benutzen, können Sie folgendes
eingeben, nachdem Sie in den packet
mode gelangt sind (den Paket Modus erkennen Sie
an PPP im Prompt):
delete ALL
add 0 0 HISADDR
Weitere Details finden Sie im Abschnitt PPP
und Dynamische IP-Adressen des Handbuchs.Wieso werden meine Verbindungen nach ca. drei Minuten
beendet?Der Standardtimeout für &man.ppp.8; beträgt
drei Minuten. Er kann durch die Zeile
set timeout NNNeingestellt werden, wobei
NNN die Inaktivität in
Sekunden, bevor die Verbindung geschlossen wird, angibt.
Falls NNN Null ist, wird die
Verbindung niemals aufgrund eines Timeouts geschlossen.
Es ist möglich, diesen Befehl in die Datei
ppp.conf einzubinden, oder ihn an der
Eingabeaufforderung im interaktiven Modus einzugeben.
Durch eine Verbindung zum Server-Socket von
ppp über &man.telnet.1;
oder &man.pppctl.8; ist es auch möglich, den Timeout
bei aktiver Verbindung anzupassen. Weitere Details finden
Sie in der Manualpage &man.ppp.8;.Wieso bricht meine Verbindung bei hoher Auslastung
ab?Falls Sie Link-Quality-Reporting (LQR) konfiguriert
haben, ist es möglich, daß zu viele LQR-Pakete
zwischen Ihrer Maschine und dem verbundenen Rechner
verloren gehen. ppp folgert daraus, daß die
Verbindung nicht in Ordnung ist und schließt sie.
Vor FreeBSD Version 2.2.5 war LQR standardmäßig
aktiviert; nun ist es standardmäßig
deaktiviert. Es kann durch folgende Zeile deaktiviert
werden:
disable lqr
Warum brechen meine Verbindungen nach unbestimmter
Zeit zusammen?Wenn die Qualität Ihrer Telefonleitung zu
schlecht oder bei Ihrem Anschluß die Option
(Telekomdeutsch: das Leistungsmerkmal) Anklopfen aktiviert
ist, kann es manchmal vorkommen, daß Ihr Modem
auflegt, weil es (fälschlicherweise) annimmt,
daß es das Trägersignal verloren hat.Bei den meisten Modems gibt es eine
Einstellmöglichkeit, um anzugeben, wie tolerant es
gegenüber vorübergehenden Verlusten des
Trägersignals sein soll. Bei einem USR Sportster
wird dies zum Beispiel im Register S10 in Zehntelsekunden
angegeben. Um Ihr Modem toleranter zu machen, können
Sie zu Ihrem Wählbefehl die folgende
Sende-Empfangs-Sequenz hinzufügen:
set dial "...... ATS10=10 OK ......"
Weitere Information sollten Sie dem Handbuch Ihres
Modems entnehmen können.Warum hängen meine Verbindung nach einer
unbestimmten Zeit?Viele Leute machen Erfahrungen mit hängenden
Verbindungen ohne erkennbaren Grund. Als erstes muß
festgestellt werden, welche Seite der Verbindung
hängt.Wenn Sie ein externes Modem benutzen, können Sie
einfach versuchen, &man.ping.8; zu benutzen, um zu sehen,
ob die TD-Anzeige aufleuchtet, wenn Sie
Daten übertragen. Falls sie aufleuchtet (und die
RD-Anzeige nicht), liegt das Problem am
anderen Ende. Falls TD nicht
aufleuchtet, handelt es sich um ein lokales Problem. Bei
einem internen Modem müssen Sie den Befehl
set server in Ihrer Datei
ppp.conf benutzen. Stellen Sie
über &man.pppctl.8; eine Verbindung zu &man.ppp.8;
her, wenn die Verbindung hängt. Falls Ihre
Netzwerkverbindung plötzlich wieder funktioniert (ppp
wurde durch die Aktivität auf dem Diagnose-Socket
wiederbelebt) oder Sie keine Verbindung bekommen
(vorausgesetzt, der Befehl set socket
wurde beim Start erfolgreich ausgeführt), handelt es
sich um ein lokales Problem. Falls Sie eine Verbindung
bekommen und die externe Verbindung weiterhin hängt,
aktivieren Sie lokales asynchrones Logging mit
set log local async und benutzen Sie
&man.ping.8; von einem anderen Fenster oder Bildschirm
aus, um die externe Verbindung zu benutzen. Das
asynchrone Logging zeigt Ihnen, welche Daten über die
Verbindung gesendet und empfangen werden. Falls Daten
hinausgehen, aber nicht zurückkommen, handelt es sich
um ein externes Problem.Wenn Sie festgestellt haben, ob es sich um ein lokales
oder um ein externes Problem handelt, haben Sie zwei
Möglichkeiten:Wenn es ein externes Problem ist, lesen Sie bitte bei
weiter.Handelt es sich um ein lokales Problem, lesen Sie bitte
.Was kann ich machen, wenn die Gegenstelle nicht
antwortet?Hier können Sie wenig tun. Die meisten ISPs
werden ablehnen, Ihnen zu helfen, wenn Sie kein
Betriebssystem von Microsoft benutzen. Sie können
enable lqr in Ihrer Datei
ppp.conf angeben, wodurch &man.ppp.8;
ermöglicht wird, ein externes Versagen zu erkennen
und aufzulegen, aber diese Erkennung ist relativ langsam
und deshalb nicht besonders nützlich. Evtl. sagen
Sie Ihrem ISP nicht, daß Sie user-PPP
benutzen...Versuchen Sie zunächst, jegliche Datenkompression
auszuschalten, indem Sie folgendes zu Ihrer Konfiguration
hinzufügen:
disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
deny pred1 deflate deflate24 protocomp acfcomp shortseq vj
Stellen Sie nun wieder eine Verbindung her, um
festzustellen, ob sich etwas geändert hat. Falls es
nun besser läuft oder falls das Problem
vollständig behoben ist, versuchen Sie durch
schrittweises Ändern der Einstellungen festzustellen,
welche Einstellung den Unterschied bewirkt. Hierdurch
erhalten Sie schlüssige Fakten für ein Gespräch
mit Ihrem ISP (andererseits wird hierdurch offensichtlich,
daß Sie kein Microsoft-Produkt benutzen).Aktivieren Sie asynchrones Logging und warten Sie, bis
die Verbindung wieder hängt, bevor Sie sich an Ihren
ISP wenden. Hierzu kann einiges an Plattenplatz
nötig sein. Die Daten, die als letztes von dem Port
gelesen wurden, könnten von Interesse sein. Für
gewöhnlich handelt es sich um ASCII-Text, der sogar
den Fehler beschreiben kann (Memory fault, core
dumped).Falls Ihr ISP hilfsbereit ist, sollte er in der Lage
sein, an seinem Ende das Logging zu aktivieren und wenn
das nächste Mal die Verbindung abbricht, könnte
er Ihnen mitteilen, worin das Problem auf seiner Seite
besteht. Gerne können Sie Details auch an &a.brian;
schicken, oder Ihren ISP bitten, sich direkt an ihn zu
wenden.Was kann ich tun, wenn sich &man.ppp.8;
aufhängt?In diesem Fall erstellen Sie am besten &man.ppp.8;
neu, indem Sie CFLAGS+=-g und
STRIP= am Ende des Makefiles
einfügen und dann make clean && make
&& make install ausführen. Suchen
Sie die Prozeßnummer von &man.ppp.8; mit ps
ajxww | fgrep ppp, wenn &man.ppp.8; sich
aufhängt und führen Sie gdb ppp
PID aus. Am
gdb-Prompt können Sie bt benutzen,
um einen Auszug von Stack zu erhalten.Senden Sie die Ergebnisse an &a.brian;.Warum passiert nach der Nachricht Login
OK! nichts?Bei Freebsd-Versionen vor 2.2.5 wartete &man.ppp.8;
darauf, daß der Partner das Line Control Protocol
(LCP) initiiert. Viele ISPs starten nicht mit der
Initiierung, sondern erwarten dies vom Client. Benutzen
Sie die folgende Zeile, um &man.ppp.8; zu veranlassen, LCP
zu initiieren:
set openmode active
Für gewöhnlich schadet es nicht, wenn
beide Seiten versuchen, Verhandlungen einzuleiten.
Deshalb ist openmode nun standardmäßig aktiv.
Im nächsten Abschnitt wird allerdings erklärt,
in welchen Fällen es doch
schadet.Ich sehe ständig Fehlermeldungen über
gleiche Magic Numbers Was heißt das?Nach dem Aufbau einer Verbindung kann es sein,
daß Sie in der Logdatei gelegentlich Meldungen mit
dem Hinweis magic is the same sehen.
Manchmal sind diese Meldungen harmlos und manchmal bricht
die eine oder andere Seite die Verbindung ab. Die meisten
Implementationen von PPP können dieses Problem nicht
handhaben und Sie werden wiederholte
Konfigurationsanforderungen und -bestätigungen in der
Logdatei finden, bis &man.ppp.8; schließlich aufgibt
und die Verbindung beendet.Dies geschieht normalerweise auf Servern mit langsamen
Festplatten, bei denen ein getty auf dem Port
ausgeführt und &man.ppp.8; nach dem Einloggen von
einem Login-Skript oder einem Programm aus gestartet wird.
Ich habe auch davon gehört, daß dies bei der
Benutzung von slirp regelmäßig auftritt. Der
Grund hierfür ist, daß das ppp auf der
Client-Seite in der Zeit, die benötigt wird, getty zu
beenden und ppp zu starten, bereits beginnt, Line Control
Protocol (LCP) Pakete zu senden. Da ECHO auf dem
Serverport weiterhin eingeschaltet ist, werden diese
Pakete zum &man.ppp.8; auf der Client-Seite
reflektiert.Ein Teil der LCP-Verhandlungen ist die Einrichtung
einer Magic Number für jede Seite der
Verbindung, damit Echos erkannt werden können.
Das Protokoll besagt, daß, wenn der Partner
versucht, die gleiche Magic Number auszuhandeln,
ein NAK zurückgesendet und eine neue "Magic Number"
gewählt werden soll. Während der Server das
ECHO eingeschaltet hat, sendet der Client LCP Pakete,
sieht die gleiche Magic Number im reflektierten
Paket und erzeugt ein NAK. Er sieht auch das reflektierte NAK
(was bedeutet, daß &man.ppp.8; seine "Magic Number"
ändern muß). Hierdurch wird eine Vielzahl von
Änderungen der Magic Number hervorgerufen,
die sich allesamt im tty-Puffer des Servers ansammeln. Sobald
&man.ppp.8; auf dem Server startet, wird es mit
Änderungen der Magic Number überflutet
und entscheidet, daß es sich zur Genüge mit den
LCP-Verhandlungen beschäftigt hat und gibt auf. Und
während sich der Client noch darüber freut,
daß er keine weiteren Reflexionen sieht, wird ihm
gemeldet, daß der Server auflegt.Dies kann verhindert werden, indem dem Partner durch
die folgende Zeile in der Datei
ppp.conf erlaubt wird, mit der
Verhandlung zu beginnen:
set openmode passive
Hierdurch wird &man.ppp.8; mitgeteilt, darauf zu
warten, daß der Server mit den LCP-Verhandlungen
beginnt. Einige Server starten jedoch nie mit der
Verhandlungen; falls dies der Fall ist, können Sie
folgendes tun:
set openmode active 3
Hierdurch bleibt &man.ppp.8; für drei Sekunden
passiv und fängt dann erst an, LCP-Anforderungen zu
senden. Falls der Partner während dieser Zeit
beginnt, Anforderungen zu senden, wird &man.ppp.8; direkt
antworten und nicht erst, nachdem die drei Sekunden
abgelaufen sind.Die LCP-Verhandlungen dauern an, bis die Verbindung
geschlossen wird. Was mache ich falsch?Es gibt eine Fehlfunktion in der Implementierung von
&man.ppp.8;, die darin besteht, daß LCP-, CCP- &
IPCP-Antworten nicht mit den ursprünglichen
Anforderungen assoziiert werden. Für den Fall,
daß eine Implementation von PPP mehr als sechs
Sekunden langsamer ist, als die andere Seite, resultiert
das darin, daß die andere Seite zwei weitere
LCP-Konfigurationsanforderungen sendet, was fatale
Auswirkungen hat.Stellen Sie sich vor, wir hätten es mit zwei
Implementierungen A und
B zu tun. A beginnt
unmittelbar nach der Verbindung, LCP-Anforderungen zu
senden und B benötigt sieben
Sekunden, zu starten. Wenn B startet,
hat A bereits drei LCP-Anforderungen
gesendet. Wir nehmen an, daß ECHO ausgeschaltet
ist; andernfalls würden wir Probleme mit der "Magic
Number" beobachten, wie bereits im vorherigen Abschnitt
beschrieben. B sendet eine Anforderung
und anschließend eine Bestätigung der ersten
Anforderung von A. Dies führt dazu,
daß A in den Zustand
OPENED übergeht und eine
Bestätigung (die erste) zurück an
B sendet. In der Zwischenzeit sendet
B zwei weitere Bestätigungen als
Antwort auf die zusätzlichen Anforderungen, die von
A gesendet worden sind, bevor
B gestartet ist. B
empfängt dann die erste Bestätigung von
A und geht in den Zustand
OPENED über. A
empfängt die zweite Bestätigung von
B, geht zurück in den Zustand
REQ-SENT und sendet eine
weitere (vierte) Anforderung entsprechend dem RFC.
A empfängt dann die dritte
Bestätigung und geht in den Zustand
OPENED über. In der Zwischenzeit
empfängt B die vierte Anforderung
von A, wechselt in den Zustand
ACK-SENT und sendet eine weitere
(zweite) Anforderung und (vierte) Bestätigung
entsprechend dem RFC. A erhält die
Anforderung, geht in den Zustand
REQ-SENT über, sendet eine weitere
Anforderung, erhält unverzüglich die
nächste Bestätigung und geht in
OPENED über.Das geht so weiter, bis eine Seite erkennt, daß
man zu keinem Ergebnis gelangt und aufgibt.Am besten verhindert man solche Situationen, indem man
eine Seite als passiv konfiguriert,
das heißt dafür sorgt, daß eine Seite darauf
wartet, daß die andere mit den Verhandlungen beginnt. Das
kann durch den Befehl
set openmode passive
geschehen. Diese Option sollten Sie mit Vorsicht
genießen. Folgenden Befehl sollten Sie benutzen, um
die Wartezeit auf den Beginn der Verhandlungen des
Partners von &man.ppp.8; zu begrenzen:
set stopped N
Alternativ kann der Befehl
set openmode active N(wobei N die Wartezeit in
Sekunden vor Beginn der Verhandlungen angibt) benutzt
werden. Weitere Details finden Sie in den
Manualpages.Warum hängt sich &man.ppp.8; kurz nach Aufbau der
Verbindung weg?Bei FreeBSD-Versionen vor 2.2.5 konnte es passieren,
daß Ihre Verbindung kurz nach dem Aufbau deaktiviert
wurde, weil &man.ppp.8; die Verhandlungen der Kompression
Predictor1 falsch handhabte. Das passiert nur dann, wenn
beide Seiten versuchen, ein unterschiedliches
Kompressionsprotokoll (Compression Control Protocol (CCP))
auszuhandeln. Dieses Problem ist bereits behoben, falls
Sie aber noch eine alte Version von &man.ppp.8; verwenden,
können Sie es mit Hilfe der folgenden Zeile
umgehen:
disable pred1
Warum reagiert &man.ppp.8; nicht mehr, wenn ich es mit
shell verlassen habe?Wenn Sie den Befehl shell oder
! benutzen, führt &man.ppp.8; eine
Shell aus (falls Sie Argumente übergeben haben,
führt &man.ppp.8; diese Argumente aus). &man.ppp.8;
wartet auf die Beendigung des Befehls, bevor es seine
Arbeit fortsetzt. Falls Sie versuchen, die PPP-Verbindung
während der Programmausführung zu benutzen, wird
es so aussehen, als wäre die Verbindung eingefroren.
Das liegt daran, daß &man.ppp.8; auf die
Beendigung des Befehls wartet.Falls Sie solche Befehle verwenden möchten,
benutzen Sie stattdessen den Befehl
!bg. Hierdurch wird der angegebene
Befehl im Hintergrund ausgeführt und &man.ppp.8; kann
fortfahren, die Verbindung zu bedienen.Warum wird &man.ppp.8; niemals beendet, wenn ich es
über ein Null-Modem-Kabel benutze?Es gibt keine Möglichkeit für &man.ppp.8;,
automatisch festzustellen, ob eine direkte Verbindung
beendet worden ist. Das liegt an den Leitungen, die bei
einem seriellen Null-Modem-Kabel benutzt werden. Wenn Sie
diese Art der Verbindung verwenden, sollte LQR immer
aktiviert werden:
enable lqr
LQR wird standardmäßig akzeptiert, wenn es
vom Partner ausgehandelt wird.Warum wählt &man.ppp.8; im Modus -auto ohne
Grund?Falls &man.ppp.8; unerwarteterweise wählt,
müssen Sie den Grund herausfinden und Wählfilter
(dfilters) einsetzen, um dies zu verhindern.Benutzen Sie die folgende Zeile, um den Grund
herauszufinden:
set log +tcp/ip
Dadurch wird jeglicher Verkehr über die
Verbindung geloggt. Wenn das nächste mal unerwartet
eine Verbindung hergestellt wird, werden Sie den Grund
zusammen mit einer hilfreichen Zeitangabe in der Logdatei
finden.Sie können nun das Wählen aufgrund dieser
Bedingungen verhindern. Normalerweise wird diese Art von
Problemen durch Anfragen an den DNS verursacht. Um zu
verhindern, daß DNS-Anfragen den Aufbau der
Verbindung hervorrufen (das verhindert
nicht, daß Pakete über
eine bestehende Verbindung gesendet werden), benutzen Sie
die folgenden Zeilen:
set dfilter 1 deny udp src eq 53
set dfilter 2 deny udp dst eq 53
set dfilter 3 permit 0/0 0/0
Dies ist nicht immer brauchbar, weil es effektiv Ihre
Fähigkeit, auf Anforderung wählen zu können
einschränkt - die meisten Programme müssen eine
DNS-Anfrage durchführen, bevor Sie andere, das
Netzwerk betreffenden Dinge tun können.Im Fall von DNS sollten Sie versuchen, herauszufinden,
welches Programm tatsächlich versucht, einen
Hostnamen aufzulösen. Sehr oft handelt es sich hier
um &man.sendmail.8;. Sie sollten
sicherstellen, daß Sie sendmail in der
Konfigurationsdatei sagen, daß keine DNS-Anfragen
durchführen soll. Lesen Sie den Abschnitt zur Mail-Konfiguration, um Details
zur Erstellung Ihrer eigenen Konfigurationsdatei und
darüber, was dort angegeben werden sollte, zu
erfahren. Sie könnten z.B. die folgende Zeile in
Ihre .mc-Datei einfügen:
define(`confDELIVERY_MODE', `d')dnl
Das veranlaßt sendmail dazu, alles in eine
Warteschlange einzureihen, bis die Warteschlange
verarbeitet wird (normalerweise wird sendmail mit
aufgerufen, was besagt,
daß die Warteschlange alle 30 Minuten abgearbeitet
wird) oder, bis ein sendmail -q
ausgeführt wird (z.B. aus Ihrer Datei ppp.linkup
heraus).Was bedeuten diese CCP-Fehler?Ich sehe ständig folgende Fehler in meiner
Logdatei:
CCP: CcpSendConfigReq
CCP: Received Terminate Ack (1) state = Req-Sent (6)
Das liegt daran, daß &man.ppp.8; versucht, die
Komprimierung Predictor1 auszuhandeln und der Partner
über keinerlei Komprimierung verhandeln will. Die
Meldungen sind harmlos, aber wenn Sie sie beseitigen
möchten, können Sie die Komprimierung Predictor1
auch lokal ausschalten:
disable pred1
Warum hängt sich &man.ppp.8; während einer
Dateiübertragung mit IO-Fehlern auf?Unter FreeBSD 2.2.2 und frühere gab es einen Bug
im Tun-Treiber, der ankommende Pakete die
größer als die MTU der Tun-Schnittstelle sind,
ablehnt. Der Empfang eines Paketes größer der
MTU resultiert in einem IO-Fehler, der über syslogd
geloggt wird.Die PPP-Spezifikation besagt, daß eine MTU von
1500 immer als Minimum akzeptiert
werden sollte, ungeachtet aller LCP-Verhandlungen. Es ist
deshalb möglich, daß Sie die MTU auf unter 1500
herabsetzen, Ihr ISP wird trotzdem Pakete der
Größe 1500 übertragen und Sie werden auf
diese Fehlfunktion stoßen, die Ihre Verbindung
lahmlegt.Das Problem kann umgangen werden, indem unter FreeBSD
2.2.2 und früher niemals eine MTU von weniger als
1500 gesetzt wird.Warum loggt ppp die Geschwindigkeit meiner Verbindung
nicht?Um alle Zeilen Ihrer Modemkonversation
mitzuloggen, müssen Sie folgendes einstellen:
set log +connect
Dies veranlaßt &man.ppp.8; dazu, alles bis zur
letzten angeforderten expext-Zeile
mitzuloggen.Falls Sie die Geschwindigkeit Ihrer Verbindung
erfahren möchten und PAP oder CHAP (und deshalb nach
dem CONNECT im Wählskript nichts mehr zu
chatten haben - kein set
login-Skript), müssen Sie sicherstellen,
daß Sie &man.ppp.8; anweisen, die gesamte
CONNECT-Zeile zu erwarten, etwa so:
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"
Hier bekommen wir unser CONNECT, senden nichts,
erwarten dann einen Line-Feed, der &man.ppp.8; zwingt, die
gesamte CONNECT-Antwort zu lesen.Warum ignoriert &man.ppp.8; das Zeichen
\ in meinem Chat-Skript?ppp analysiert jede Zeile in Ihrer
Konfigurationsdatei, damit es Zeichenketten wie z.B.
set phone "123 456 789" korrekt
interpretieren kann (und erkennen, daß es sich bei
der Nummer tatsächlich nur um
ein Argument handelt). Um das
Zeichen " anzugeben, müssen
Sie ihm einen Backslash (\)
voranstellen.Wenn der Chat-Interpreter jedes Argument analysiert,
reinterpretiert er die Argumente, um irgendwelche
speziellen Escape-Sequenzen wie z.B. \P
oder \T (sehen Sie in die Manualpage)
zu finden. Das Ergebnis dieser Doppelanalyse ist,
daß Sie daran denken müssen, die richtige
Anzahl an Escape-Zeichen zu verwenden.Falls Sie tatsächlich das Zeichen
\ z.B. zu Ihrem Modem senden
möchten, brauchen Sie etwas ähnliches,
wie:
set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"
woraus sich folgende Zeichen ergeben:
ATZ
OK
AT\X
OK
oder
set phone 1234567
set dial "\"\" ATZ OK ATDT\\T"
was folgende Zeichen ergibt:
ATZ
OK
ATDT1234567
Warum gibt es die Datei ppp.core
nicht, wenn &man.ppp.8; einen Segmentation Fault erzeugt
hat?Weder &man.ppp.8; noch andere Programme sollten
Core-Dumps erzeugen. Da &man.ppp.8; mit der effektiven
Benutzerkennung 0 ausgeführt wird, wird das
Betriebssystem &man.ppp.8;'s Coreimage nicht auf die
Festplatte schreiben, bevor es &man.ppp.8; beendet hat.
Falls &man.ppp.8; jedoch tatsächlich aufgrund einer
Speicherverletzung abbricht und Sie
die aktuellste Version (siehe Anfang dieses Kapitels)
benutzen, dann sollten Sie folgendes tun:&prompt.user; tar xfz ppp-*.src.tar.gz
&prompt.user; cd ppp*/ppp
&prompt.user; echo STRIP= >>Makefile
&prompt.user; echo CFLAGS+=-g >>Makefile
&prompt.user; make clean all
&prompt.user; su
&prompt.root; make install
&prompt.root; chmod 555 /usr/sbin/pppNun ist die installierte Version von &man.ppp.8; mit
einem Debugger ausführbar. Sie können
&man.ppp.8; nun nur noch als root
ausführen, da alle vorherigen Zugriffsrechte
aufgehoben worden sind. Achten Sie darauf, in welchem
Verzeichnis Sie sich gerade befinden, wenn Sie &man.ppp.8;
starten.Wenn nun wieder eine Speicherverletzung auftreten
sollte, wird &man.ppp.8; einen Speicherauszug erzeugen,
den Sie in der Datei ppp.core finden.
Sie sollten dann folgendes tun:&prompt.user; su
&prompt.root; gdb /usr/sbin/ppp ppp.core(gdb)bt
.....
(gdb)f 0
....
(gdb)i args
....
(gdb)l
.....Mit Hilfe all dieser Informationen sollte es
möglich sein, das Problem zu diagnostizieren.Falls Sie mit dem Umgang mit gdb vertraut sind,
könnten Sie weitere Einzelheiten herausfinden, z.B.
wodurch der Fehler tatsächlich hervorgerufen wurde
und die Adressen & Werte der betreffenden
Variablen.Warum bekommt das Programm, das eine automatische
Anwahl ausgelöst hat, keine Verbindung?Dies war ein bekanntes Problem bei
&man.ppp.8;-Konfigurationen, bei denen automatisch
dynamische, lokale IP-Adressen mit dem Partner
ausgehandelt werden. In der aktuellsten Version ist das
Problem behoben - suchen Sie in den Manualpages nach
iface.Das Problem bestand darin, daß, wenn das erste
Programm &man.connect.2; aufruft, die IP-Adresse der
tun-Schnittstelle dem Socketendpunkt zugeordnet wird. Der
Kernel erstellt das erste ausgehende Paket und schreibt es
in das tun-Gerät. &man.ppp.8; liest dann das Paket
und baut eine Verbindung auf. Falls die
Schnittstellenadresse sich nun aufgrund &man.ppp.8;s
dynamischer Adreßzuordnung ändert, wird der
originale Socketendpunkt ungültig. Alle weiteren
Pakete, die zum Partner gesendet werden, werden für
gewöhnlich verworfen. Selbst wenn sie nicht
verworfen werden würden, würden alle Antworten
nicht an den betreffenden Rechner gelangen, weil die
IP-Adresse nicht mehr zu diesem Rechner
gehört.Theoretisch gibt es mehrere Möglichkeiten, dieses
Problem anzugehen. Am schönsten wäre es, wenn
der Partner die gleiche IP-Adresse wieder zuordnen
würde, wenn möglich :-) Die
derzeitige Version von &man.ppp.8; tut das, aber die
meisten anderen Implementierungen nicht.Die einfachste Maßnahme von unserer Seite
wäre die, niemals die IP-Adresse der
tun-Schnittstelle zu ändern, sondern stattdessen alle
ausgehenden Pakete so zu ändern, daß als
Absender-IP-Adresse anstelle der IP-Adresse der
Schnittstelle die ausgehandelte IP-Adresse gesetzt wird.
Das ist im wesentlichen das, was durch die Option
iface-alias in der aktuellsten Version
von &man.ppp.8; bewirkt wird (mit Unterstützung von
&man.libalias.3; und &man.ppp.8;'s
Schalter) - alle Schnittstellenadressen werden beibehalten
und auf die letzte ausgehandelte Adresse
umgesetzt.Eine andere Alternative (und wahrscheinlich die
zuverlässigste) wäre die, einen Systemaufruf zu
implementieren der die IP-Adressen aller verbundenen
Sockets von einer Adresse in eine andere ändert.
&man.ppp.8; würde diesen Aufruf benutzen, um die
Sockets aller laufenden Programme zu ändern, nachdem
eine neue IP-Adresse ausgehandelt worden ist. Der gleiche
Systemaufruf könnte von DHCP-Clients benutzt werden,
wenn sie gezwungen werden, einen re-bind() auf ihren
Sockets auszuführen.Noch eine andere Möglichkeit wäre die, das
Aktivieren von Schnittstellen ohne IP-Adresse zu erlauben.
Ausgehende Paketen würde die IP-Adresse
255.255.255.255 gegeben, bis der erste ioctl() mit
SIOCAIFADDR erfolgt. Dies würde in der
vollständigen Verbindung des Sockets resultieren. Es
wäre die Aufgabe von &man.ppp.8;, die
Absender-IP-Adresse zu ändern, allerdings nur dann,
wenn sie 255.255.255.255 lautet und nur die IP-Adresse und
IP-Prüfsumme müßten geändert werden.
Dies wäre allerdings keine besonders elegante
Lösung, da der Kernel fehlerhafte Pakete an eine
unzureichend konfigurierte Schnittstelle senden
würde, in der Annahme, daß andere Mechanismen
in der Lage sind, diese Dinge rückwirkend zu
beheben.Warum laufen die meisten Spiele mit dem
Schalter nicht?Der Grund dafür, daß Spiele und andere
Programme nicht funktionieren, wenn libalias benutzt wird,
ist der, daß der Rechner außerhalb des lokalen
Netzes versucht, eine Verbindung aufzubauen und
(unaufgefordert) UDP-Pakete an den Rechner innerhalb des
lokalen Netzes zu senden. Die Software, die für die
NAT zuständig ist, weiß nicht, daß sie
diese Pakete an den internen Rechner weiterleiten
soll.Um dies zu beheben, stellen Sie zunächst sicher,
daß die Software, mit der Sie Probleme haben, die
einzige ist, die gerade läuft. Benutzen Sie dann
entweder tcpdump auf der tun-Schnittstelle des Gateways
oder aktivieren Sie auf dem Gateway das Logging von TCP/IP
(set log +tcp/ip) unter
&man.ppp.8;.Wenn Sie nun das betreffende Programm starten, sollten
Sie sehen, wie Pakete den Gateway-Rechner passieren. Wenn
von außen etwas zurückkommt, wird es ignoriert
(das ist das Problem). Merken Sie sich die Portnummer
dieser Pakete und beenden Sie das betreffende Programm.
Wiederholen Sie diesen Schritt einige Male, um
festzustellen, ob die Portnummern konsistent sind. Falls
dem so ist, wird die folgende Zeile im entsprechenden
Abschnitt von /etc/ppp/ppp.conf
dafür sorgen, daß das Programm
funktioniert:
nat port protointernalmachine:portportwobei für proto
entweder tcp oder
udp zu setzen ist,
internalmachine den Rechner
bezeichnet, an den die Pakete geschickt werden sollen und
port die betreffende
Portnummer.Sie können das Programm nicht auf einem anderen
Rechner benutzen, ohne die obige Zeile abzuändern und
die Benutzung des Programms auf zwei internen Rechnern
steht außer Frage - schließlich sieht die
Außenwelt Ihr gesamtes internes Netz so, als
wäre es ein einzelner Rechner.Falls die Portnummern nicht konsistent sind, gibt es
drei weitere Optionen:Ermöglichen Sie die Unterstützung durch
libalias. Beispiele für spezielle
Fälle finden Sie in
/usr/src/lib/libalias/alias_*.c
(alias_ftp.c ist ein schöner
Prototyp). Hierzu gehört für
gewöhnlich das Lesen bestimmter, erkannter,
ausgehender Pakete, die Identifizierung der
Instruktion, die den entfernten Rechner dazu
veranlaßt, auf einem bestimmten (wahlfreien)
Port eine Verbindung zurück zum lokalen Rechner
herzustellen, sowie das Erstellen einer
Route in der Aliastabelle, so daß
nachfolgende Pakete wissen, wohin sie
gehören.Dieses ist zwar die komplizierteste Lösung,
aber die beste, die auch dafür sorgt, daß
die Software auf mehreren Rechnern
funktioniert.Benutzen Sie einen Proxy. Die Anwendung
könnte z.B. socks5 unterstützen, oder (wie
im Fall von cvsup) eine Option
passiv besitzen, die stets verhindert,
daß verlangt wird, daß der Partner eine
Verbindung zurück zur lokalen Maschine
aufbaut.Leiten Sie mit nat addr alles
zur lokalen Maschine um. Dieses Vorgehen ähnelt
dem mit einem Vorschlaghammer.Hat jemand eine Liste mit nützlichen Portnummern
erstellt?Noch nicht, aber hieraus könnte eine solche
entstehen (falls Interesse besteht). In jedem Beispiel
sollte internal durch die
IP-Adresse der Maschine ersetzt werden, auf der das Spiel
laufen soll.Asheron's Callnat port udp
internal:65000
65000Konfigurieren Sie das Spiel manuell auf Port 65000
um. Wenn Sie von mehreren Rechner aus spielen wollen,
weisen Sie jedem eine eindeutige Portnummer zu (also
65001, 65002, u.s.w.) und fügen Sie für jede
Maschine eine eigene nat port Zeile
ein.Half Lifenat port udp
internal:27005
27015PCAnywhere 8.0nat port udp
internal:5632
5632nat port tcp
internal:5631
5631Quakenat port udp
internal:6112
6112Alternativ können sie wegen
Proxyunterstützung für Quake unter www.battle.net
nachsehen.Quake 2nat port udp
internal:27901
27910nat port udp
internal:60021
60021nat port udp
internal:60040
60040Red Alertnat port udp
internal:8675
8675nat port udp
internal:5009
5009Was sind FCS-Fehler?FCS steht für Frame
Check Sequence.
Jedes PPP-Paket besitzt eine Checksumme, um
sicherzustellen, daß die empfangenen Daten dieselben
sind, wie die versendeten. Falls die FCS eines
ankommenden Paketes fehlerhaft ist, wird das Paket
verworfen und der Zähler HDLC FCS wird erhöht.
Der HDLC-Fehlerwert kann durch den Befehl show
hdlc angezeigt werden.Falls Ihre Leitung schlecht ist (oder falls Ihr
serieller Treiber Pakete verwirft), werden sie
gelegentliche FCS-Fehler sehen. Normalerweise lohnt es
sich nicht, sich hierüber Gedanken zu machen, obwohl
das Kompressionsprotokoll hierdurch wesentlich langsamer
wird. Wenn Sie ein externes Modem besitzen, stellen Sie
sicher, daß Ihr Kabel ausreichend gegen
Interferenzen abgeschirmt ist - das könnte das
Problem beseitigen.Falls Ihre Leitung einfriert, sobald die Verbindung
steht, und viele FCS-Fehler auftreten, könnte das
daran liegen, daß Ihre Leitung nicht 8-Bit-rein ist.
Stellen Sie sicher, daß Ihr Modem keinen
Software-Flow-Control (XON/XOFF) verwendet. Falls Ihre
Datenschnittstelle Software-Flow-Control verwenden
muß, benutzen Sie den Befehl
set accmap 0x000a0000, um &man.ppp.8;
zu sagen, daß es die Zeichen ^Q
und ^S maskieren soll.Ein weiterer Grund dafür, daß zu viele
FCS-Fehler auftreten, könnte der sein, daß das
andere Ende aufgehört hat, ppp zu
sprechen. Aktivieren Sie async
Logging, um festzustellen, ob es sich bei den eingehenden
Daten tatsächlich um einen login- oder Shell-Prompt
handelt. Wenn Sie am anderen Ende einen Shell-Prompt
haben, ist es möglich, durch den Befehl
close lcp &man.ppp.8; zu beenden, ohne
die Verbindung zu beenden (ein folgender
term-Befehl wird Sie wieder mit der
Shell auf dem entfernten Rechner verbinden.Falls nichts in Ihrer Logdatei darauf hindeutet, warum
die Verbindung beendet wurde, sollten Sie den
Administrator des externen Rechners (Ihren ISP?) fragen,
warum die Sitzung beendet worden ist.Wieso hängen die Verbindungen meiner MacOS- und
Windows98(tm)-Maschinen, wenn auf meinem Gateway PPPoE
läuft?Vielen Dank an Michael Wozniak
mwozniak@netcom.ca für die
Erklärung und an Dan Flemming
danflemming@mac.com für die
Lösung für MacOSDie Ursache des Problems ist ein sogenannter
Black Hole Router. MacOS und Windows 98
(und wahrscheinlich auch die anderen Betriebssysteme von
Microsoft) senden TCP Pakete, bei denen zum einen die
angeforderte Segmentgröße zu groß
für einen PPPoE-Rahmen ist (die Default-MTU für
Ethernet beträgt 1500 Byte) und
bei denen das don't fragment Bit gesetzt
ist (das ist bei TCP allerdings Standard). Außerdem
sendet der Router beim Provider nicht die eigentlich
notwendigen must fragment-Meldungen zu dem
Webserver, von dem Sie gerade eine Seite laden wollen. Es
ist auch möglich, daß diese Meldung zwar
erzeugt, aber danach von einem Firewall vor dem Webserver
abgefangen wird. Wenn Ihnen dieser Webserver nun ein
Paket schickt, das nicht in einen PPPoE-Rahmen paßt,
dann verwirft der Router dieses Paket und die Seite wird
nicht geladen (einige Seiten/Grafiken werden geladen, weil
ihre Größe kleiner ist als die MSS). Dies
scheint leider der Normalfall zu sein (wenn die Leute doch
nur wüßten, wie man einen Router
konfiguriert... stöhn...)Eine der möglichen Lösungen für dieses
Problem ist die Erzeugung des folgenden Schlüssels in
der Registry des Windows-Clients:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU
Der Schlüssels sollte vom Typ String sein und den
Wert 1436 haben, da einige ADSL-Router
nicht mit größeren Paketen umgehen können.
Wenn Sie Windows 2000 verwenden, müssen Sie dagegen
den Schlüssel
Tcpip\Parameters\Interfaces\ID der
Netzwerkkarte\MTU benutzen,
außerdem müssen Sie als Typ DWORD
verwenden.Die Knowledge Base von Microsoft enthält weitere
Informationen darüber, wie sie die MTU einer
Windows-Maschine ändern, damit diese mit einem
NAT-Router korrekt zusammenarbeitet. Vom besonderen
Interesse sind die Artikel Q158474
- Windows TCPIP Registry Entries und Q120642
- TCPIP & NBT Configuration Parameters for Windows
NT.Bei Windows 2000 können Sie alternativ auch, wie
im Artikel 120642 beschrieben, mit regedit das DWORD
Tcpip\Parameters\Interfaces\ID der
Netzwerkkarte\EnablePMTUBHDetect
auf 1 setzen.Mit den Bordmitteln von MacOS ist es leider nicht
möglich, die TCP/IP-Einstellungen zu verändern.
Es gibt jedoch kommerzielle Lösungen wie zum Beispiel
OTAdvancedTuner (OT steht für OpenTransport, den
TCP/IP-Stack von MacOS) von Sustainable
Softworks, mit denen man die TCP/IP-Einstellungen
bearbeiten kann. Wenn Sie als MacOS-Anwender NAT
benutzen, sollten Sie im entsprechenden drop-down
Menü den Punkt ip_interface_MTU
auswählen und in der Dialogbox
1450 statt 1500
eingeben. Aktivieren Sie den Punkt Save as Auto
Configure und klicken Sie danach auf
Make Active.&man.ppp.8; kennt seit Version 2.3 den Befehl
enable tcpmssfixup, mit dem die MSS
automatisch korrigiert wird. Wenn Sie einen ältere
Version von &man.ppp.8; benutzen müssen, könnte
der Port tcpmssd für Sie
interessant sein.Nichts von alledem hilft - ich bin
verzweifelt! Was soll ich machen?Falls alles andere fehlschlägt, senden Sie
möglichst umfangreiche Informationen,
einschließlich Ihrer Konfigurationsdateien, wie Sie
&man.ppp.8; starten, die relevanten Teile Ihrer Logdateien
und die Ausgabe des Befehls netstat -rn
(vor und nach Aufbau der Verbindung) an die
Mailingliste &a.de.questions; oder die Newsgroup de.comp.os.unix.bsd.
Irgend jemand sollte Ihnen dann weiterhelfen.Serielle VerbindungenDieses Kapitel beantwortet häufig gestellte Fragen zu
seriellen Verbindungen mit FreeBSD. PPP und SLIP werden im
Abschnitt Netzwerke behandelt.Wie kann ich feststellen, ob FreeBSD meine seriellen
Schnittstellen gefunden hat?Wenn der FreeBSD Kernel bootet, testet er die
seriellen Schnittstellen, für die er konfiguriert
wurde. Sie können entweder Ihrem System aufmerksam
beim Booten zusehen und die angezeigten Nachrichten lesen,
oder Sie führen den Befehl&prompt.user; dmesg | grep sioaus, nachdem Ihr System hochgefahren ist und
läuft.Hier ist ein Beispiel einer Ausgabe nach dem oben
genannten Befehl:
sio0: at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1: at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
Es zeigt zwei serielle Schnittstellen. Die erste
verwendet Port-Adresse 0x3f8, IRQ 4 und
hat einen 16550A UART Chip. Die zweite benutzt ebenfalls
einen 16550A UART, jedoch Port-Adresse
0x2f8 und IRQ 3. Modemkarten werden
wie serielle Schnittstellen behandelt. Der einzige
Unterschied ist, daß an diesen Schnittstellen immer
ein Modem angeschlossen ist.Der GENERIC Kernel beinhaltet
Unterstützung für zwei serielle Schnittstellen,
die den im Beispiel genannten Port und IRQ verwenden.
Wenn diese Einstellungen nicht richtig für Ihr System
sind, Sie Modemkarten hinzugefügt oder mehr serielle
Schnittstellen haben als Ihre Kernelkonfiguration
zuläßt, konfigurieren Sie Ihren Kernel einfach
neu. In dem Kapitel über die Kernelkonfiguration finden
Sie mehr Details.Wie kann ich feststellen, ob FreeBSD meine Modemkarten
gefunden hat?Die vorherige Frage sollte darauf eine Antwort
geben.Ich habe gerade auf 2.0.5 geupdatet und meine
tty0X
fehlen! Wie kann ich das Problem lösen?Keine Sorge, die wurden mit den
ttydX
Geräten zusammengeführt. Sie müssen
allerdings die alten Konfigurationsdateien
ändern.Wie kann ich auf die seriellen Schnittstellen in
FreeBSD zugreifen?Die dritte serielle Schnittstelle,
sio2 (bekannt als COM3 in
DOS/Windows), ist /dev/cuaa2 für
Geräte mit abgehenden Verbindungen und
/dev/ttyd2 für Geräte mit
eingehenden Verbindungen. Was ist der Unterschied
zwischen den beiden Geräteklassen?Sie benutzen
ttydX
für eingehende Verbindungen. Wird
/dev/ttydX
im blockierenden Modus geöffnet, wartet ein
Prozeß darauf, daß das entsprechende
cuaaX
Gerät inaktiv und der Empfangssignalpegel
Mit Empfangssignalpegel oder
Trägersignalerkennung wird hier
die carrier detect
Leitung bezeichnet.
aktiv ist. Wird das
cuaaX
Gerät geöffnet, vergewissert es sich, daß
die serielle Schnittstelle nicht bereits von dem
ttydX
Gerät in Gebrauch ist. Sollte die Schnittstelle
verfügbar sein, stiehlt es sie von dem
ttydX
Gerät. Das
cuaaX
Gerät kümmert sich nicht um
Trägersignalerkennung. Mit diesem Schema und einem
automatisch antwortenden Modem, können sich Benutzer
von außen einloggen, Sie können weiterhin mit
demselben Modem wählen und das System kümmert
sich um die Konflikte.Wie kann ich die Unterstützung für eine
Karte mit mehreren seriellen Schnittstellen
aktivieren?Die Sektion über die Kernelkonfiguration bietet
Informationen darüber, wie Sie Ihren Kernel
konfigurieren. Für eine Karte mit mehreren seriellen
Schnittstellen, schreiben Sie eine &man.sio.4; Zeile
für jede serielle Schnittstelle auf der Karte in die
Kernelkonfigurationsdatei. Aber achten Sie darauf, den
IRQ und die Vektorbezeichnung nur in einem der
Einträge zu plazieren. Alle seriellen Schnittstellen
auf der Karte sollten sich einen IRQ teilen. Daher
sollten Sie den IRQ nur beim letzten Eintrag angeben.
Aktivieren Sie auch die COM_MULTIPORT
Option.Das folgende Beispiel ist geeignet für eine AST
Karte mit 4 seriellen Schnittstellen, die IRQ 7
benutzt:
options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr
Die Flags zeigen an, daß die
Master-Schnittstelle die Minor-Nummer 7
(0x700) hat, Diagnosen während des
Bootens ermöglicht sind (0x080),
und daß sich alle Schnittstellen einen IRQ teilen
(0x001).Kann FreeBSD mehrere Karten mit mehreren seriellen
Schnittstellen mit den gleichen IRQs verwalten?Noch nicht. Sie müssen für jede Karte einen
anderen IRQ verwenden.Kann ich die vorgegebenen seriellen Parameter für
eine Schnittstelle einstellen?Das
ttydX
(oder
cuaaX)
Gerät ist das reguläre Gerät, das man in
Anwendungen öffnet. Wenn ein Prozeß es
öffnet, hat es die voreingestellten Terminal
Eingabe/Ausgabe-Einstellungen. Sie können diese
Einstellungen mit dem Befehl&prompt.root; stty -a -f /dev/ttyd1ansehen. Wenn Sie die Einstellungen für dieses
Gerät ändern, sind die Einstellungen
gültig, bis das Gerät geschlossen wird. Wird es
danach geöffnet, hat es wieder die vorgegebenen
Einstellungen. Um Änderungen an den vorgegebenen
Einstellungen vorzunehmen, können Sie das
Anfangsstatus-Gerät öffnen und dessen
Einstellungen anpassen. Um zum Beispiel den
CLOCAL Modus, 8 Bits und
XON/XOFF Datenflußkontrolle als
Standard für ttyd5 einzustellen, geben Sie&prompt.root; stty -f /dev/ttyid5 clocal cs8 ixon ixoffein. Eine gute Stelle um dies zu tun ist in
/etc/rc.serial. Jetzt hat eine
Anwendung diese Einstellungen als Standardwerte, wenn sie
ttyd5 öffnet. Die Anwendung
kann die Einstellungen jedoch immer noch nach Belieben
verändern.Man aber kann auch bestimme Einstellungen davor
schützen, von einer Anwendung verändert zu
werden, indem man Veränderungen am lock
state Gerät vornimmt. Um beispielsweise die
Geschwindigkeit von ttyd5 auf 57600
bps festzusetzen:&prompt.root; stty -f /dev/ttyld5 57600Wenn jetzt eine Anwendung ttyd5
öffnet und versucht die Geschwindigkeit zu
verändern, wird diese bei 57600 bps bleiben.Natürlich sollten Sie das Schreiben auf die
Anfangsstatus- und lock state-Geräte nur
root erlauben. Das &man.MAKEDEV.8;
Skript tut dies nicht, wenn es die
Geräte-Einträge erstellt.Wie kann ich Einwahl-Logins über mein Modem
aktivieren?Also Sie wollen ein Internet Service Provider werden,
ja? Als erstes brauchen Sie eines oder mehrere Modems,
die automatisches Antworten beherrschen. Ihr Modem sollte
auf Trägersignalerkennung reagieren und nicht fortlaufend
die Leitung offen halten. Es muß auflegen und sich
neu initialisieren können, wenn die Data
Terminal Ready (DTR) Leitung
ausgeschaltet wird. Es sollte wahrscheinlich
RTS/CTS oder gar keine lokale
Datenflußkontrolle benutzen. Zuletzt muß es
eine konstante Geschwindigkeit zwischen dem Computer und
sich selbst verwenden, aber es sollte (um die Anrufer
freundlich zu behandeln) eine Geschwindigkeit zwischen
sich und dem entfernten Modem aushandeln können.Für viele Modems, die mit dem Hayes Befehlssatz
kompatibel sind, erzeugt der folgende Befehl diese
Einstellungen und legt sie im nicht-flüchtigen
Speicher ab:AT &C1 &D3 &K3 &Q6 S0=1 &WDie Sektion über das
Senden von AT-Befehlen bietet weitere
Informationen, wie man diese Einstellungen vornimmt, ohne
zu einem MS-DOS Terminal Programm zu
flüchten.Als nächstes erstellen Sie einen Eintrag in
/etc/ttys für das Modem. Diese
Datei listet alle Schnittstellen auf, auf denen das
Betriebssystem Einlogversuche erwartet. Fügen Sie
eine solche Zeile hinzu:
ttyd1 "/usr/libexec/getty std 57600" dialup on insecure
Diese Zeile bedeutet, daß an der zweiten
seriellen Schnittstelle (/dev/ttyd1)
ein Modem angeschlossen ist, das mit 57600 bps läuft
und keine Parität besitzt
(std.57600 aus
/etc/gettytab). Der Terminal-Typ
für diese Schnittstelle ist dialup
(Einwahl). Die Schnittstelle ist
eingeschaltet (on) und
unsicher (insecure) –
das bedeutet, man kann sich über diese Schnittstelle
nicht als root einloggen. Für
Einwahlanschlüsse wie diesen, benutzen Sie den
ttydX Eintrag.Es ist relativ geläufig,
dialup als Terminal-Typ zu verwenden.
Viele Benutzer richten in ihren
.profile oder
.login Dateien eine Abfrage für
das eigentliche Terminal ein, wenn der Start-Typ
dialup ist. Das Beispiel zeigt die
Schnittstelle als unsicher und um über diese
Schnittstelle root zu werden,
müssen Sie sich als normaler Benutzer einloggen und
&man.su.1;. Wenn sie
secure (sicher) als
Einstellung verwenden, kann sich root
direkt einloggen.Nachdem Sie Modifikationen in
/etc/ttys vorgenommen haben,
müssen Sie ein hangup oder
HUP Signal an &man.init.8;
senden:&prompt.root; kill -HUP 1Das bringt &man.init.8; dazu, die Datei
/etc/ttys neu einzulesen.
init startet dann an allen als
eingeschaltet (on) markierten
Schnittstellen die getty-Prozesse. Sie können
herausfinden ob noch Logins für Ihre Schnittstelle
verfügbar sind, wenn Sie folgendes eingeben:&prompt.user; ps -ax | grep '[t]tyd1'Sie sollten etwas sehen, das so ähnlich aussieht
wie:
747 ?? I 0:00:04 /usr/libexec/getty std.57600 ttyd1
Wie kann ich ein Hardware-Terminal mit meiner FreeBSD
Box verbinden?Wenn Sie einen anderen Computer als Terminal für
Ihr FreeBSD System verwenden wollen, verbinden Sie die
beiden seriellen Schnittstellen mit einem Nullmodem-Kabel.
Wenn Sie ein echtes (Hardware-)Terminal
benutzen, lesen Sie die Begleitinformationen.Ändern Sie /etc/ttys wie
oben angegeben. Wenn Sie zum Beispiel ein WYSE-50
Terminal mit der fünften seriellen Schnittstelle
verbinden wollen, schreiben Sie einen Eintrag wie
diesen:
ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
Das Beispiel zeigt, daß die Schnittstelle an
/dev/ttyd4 mit einem wyse50 Terminal
mit 38400 bps und ohne Parität
(std.38400 aus
/etc/gettytab) verbunden ist und
root Logins möglich sind
(secure).Warum kann ich tip oder
cu nicht laufen lassen?Vielleicht sind auf Ihrem System die Programme
&man.tip.1; und &man.cu.1; nur von
uucp und der Gruppe
dialer ausführbar. Sie
können die Gruppe dialer
verwenden, um zu kontrollieren wer Zugriff auf Ihr Modem
oder entfernte Systeme hat. Fügen Sie sich einfach
selbst zur Gruppe dialer
hinzu.Als Alternative können Sie jeden Benutzer auf
Ihrem System &man.tip.1; und &man.cu.1; verwenden lassen,
dazu müssen Sie das folgende eingeben:&prompt.root; chmod 4511 /usr/bin/cu
&prompt.root; chmod 4511 /usr/bin/tipMein Hayes Modem wird nicht unterstützt – was
kann ich tun?Eigentlich ist die Onlinehilfe für &man.tip.1;
nicht mehr aktuell. Es gibt einen eingebauten,
allgemeinen Hayes Wähler. Verwenden Sie einfach
at=hayes in
/etc/remote.Der Hayes Treiber ist nicht schlau genug, um ein paar
der erweiterten Merkmale von neueren Modems zu erkennen –
Nachrichten wie BUSY, NO
DIALTONE oder CONNECT 115200
verwirren ihn nur. Sie sollten diese Nachrichten mit
Hilfe von ATX0&W abschalten, wenn
Sie tip benutzen.Das Anwahl-Timeout von &man.tip.1;
beträgt 60 Sekunden. Ihr Modem sollte weniger
verwenden, oder tip denkt, daß
ein Kommunikationsfehler vorliegt. Versuchen Sie es mit
ATS7=45&W.Tatsächlich unterstützt die ausgelieferte
Version von &man.tip.1; es noch nicht
vollständig. Die Lösung ist,
tipconf.h im Verzeichnis
/usr/src/usr.bin/tip/tip zu
editieren. Dafür benötigen Sie natürlich
die Quellcode Distribution.Editieren Sie die Zeile #define HAYES
0 in #define HAYES 1 um.
Dann führen Sie make und
make install aus. Es sollte jetzt
funktionieren.Wie soll ich die AT Befehle eingeben?Erstellen Sie einen sogenannten
direct Eintrag in
/etc/remote. Wenn Ihr Modem zum
Beispiel an der ersten seriellen Schnittstelle,
/dev/cuaa0, angeschlossen ist, dann
fügen Sie die folgende Zeile hinzu:
cuaa0:dv=/dev/cuaa0:br#19200:pa=none
Verwenden Sie die höchste bps Rate, die Ihr Modem
in der br Fähigkeit unterstützt. Geben Sie dann
tip cuaa0 ein
und Sie sind mit Ihrem Modem verbunden.Wenn auf Ihrem System keine
/dev/cuaa0 Datei existiert, geben Sie
folgendes ein:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV cuaa0Oder benutzen Sie cu als
root mit dem folgenden Befehl:&prompt.root; cu -lline -sspeedline steht für die
serielle Schnittstelle (/dev/cuaa0)
und speed für die
Geschwindigkeit (57600). Wenn Sie mit
dem Eingeben der AT Befehle fertig sind, beenden Sie mit
~..Wieso funktioniert das <@>
Zeichen für die pn Fähigkeit nicht?Das <@> Zeichen in der
Telefonnummerfähigkeit sagt tip, daß es in der
Datei /etc/phones nach einer Nummer
suchen soll. Aber <@> ist auch
ein spezielles Zeichen in den Dateien, in denen
Fähigkeiten beschrieben werden, wie
/etc/remote. Schreiben Sie es mit
einem '\' (backslash):pn=\@Wie kann ich von der Kommandozeile eine Telefonnummer
wählen?Stellen Sie einen allgemeinen Eintrag
in /etc/remote. Zum
Beispiel:
tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
Mit einem Befehl wie tip -115200
5551234 können Sie dann wählen.
Sollten Sie &man.cu.1; im Gegensatz zu &man.tip.1;
bevorzugen, verwenden Sie einen allgemeinen
cu-Eintrag:
cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
Zum Wählen können Sie dann cu
5551234 -s 115200 eingeben.Muß ich dabei jedes Mal die bps Rate
angeben?Schreiben Sie einen tip1200 oder
einen cu1200 Eintrag, aber geben Sie
auch die bps Rate an, die Ihr Modem wirklich
unterstützt. Leider denkt &man.tip.1;, daß
1200 bps ein guter Standardwert ist und deswegen sucht es
nach einem tip1200-Eintrag.
Natürlich müssen Sie nicht wirklich 1200 bps
benutzen.Wie kann ich möglichst komfortabel über
einen Terminal-Server auf verschiedene Rechner
zugreifen?Sie müssen nicht warten bis Sie verbunden sind,
und jedesmal CONNECT
Rechner eingeben,
benutzen Sie tip's cm Fähigkeit.
Sie können diese Einträge in
/etc/remote verwenden:
pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:
Mit den Befehlen tip pain oder
tip muffin können Sie eine
Verbindungen zu den Rechnern pain oder
muffin herstellen; mit tip
deep13 verbinden Sie sich mit dem Terminal
Server.Kann tip mehr als eine Verbindung für jede Seite
ausprobieren?Das ist oft ein Problem, wenn eine Universität
mehrere Telefonleitungen hat und viele tausend Studenten
diese benutzen wollen.Erstellen Sie einen Eintrag für Ihre
Universität in /etc/remote und
benutzen Sie <\@> für die
pn Fähigkeit:
big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
Listen Sie die Telefonnummern der Universität
in /etc/phones auf:
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
&man.tip.1; probiert jede der Nummern in der
aufgelisteten Reihenfolge und gibt dann auf. Möchten
Sie, daß tip beim Versuchen eine
Verbindung herzustellen nicht aufgibt, lassen Sie es in
einer while-Schleife laufen.Warum muß ich zweimal
CtrlP tippen, um ein
CtrlP zu senden?CtrlP ist das voreingestellte Zeichen, mit dem eine
Übertragung erzwungen werden kann und wird benutzt,
um &man.tip.1; zu sagen, daß das nächste
Zeichen direkt gesendet werden soll und nicht als
Fluchtzeichen interpretiert werden soll. Mit Hilfe der
~s Fluchtsequenz, mit der man Variablen
setzen kann, können Sie jedes andere Zeichen als
force-Zeichen definieren.Geben Sie
~sforce=zeichen
ein und drücken Sie Enter. Für
zeichen können Sie ein
beliebiges einzelnes Zeichen einsetzen. Wenn Sie
zeichen weglassen, ist das
force-Zeichen nul, das Sie mit
Ctrl2 oder
CtrlSPACE eingeben können. Ein
guter Wert für zeichen ist
ShiftCtrl6, welches ich erst auf ein paar
Terminal-Servern in Benutzung gesehen habe.Sie können das force-Zeichen auch
bestimmen, indem Sie in $HOME/.tiprc
das folgende einstellen:
force=single-charWarum ist auf einmal alles was ich schreibe in
GROSSBUCHSTABEN??Sie müssen
CtrlA eingegeben haben, das
raise-Zeichen von &man.tip.1; das speziell
für Leute mit defekten Caps Lock Tasten
eingerichtet wurde. Benutzen Sie ~s wie
oben und setzen Sie die Variable raisechar auf
etwas, das Ihnen angemessen erscheint. Tatsächlich
kann die Variable auf das gleiche Zeichen wie das
force-Zeichen gesetzt werden, wenn Sie
diese Fähigkeiten niemals benutzen wollen.Hier ist ein Muster der .tiprc
Datei, perfekt für Emacs
Benutzer, die oft
Ctrl2 und
CtrlA tippen müssen:
force=^^
raisechar=^^
Das ^^ steht für
ShiftCtrl6.Wie kann ich Dateien mit tip
übertragen?Wenn Sie mit einem anderen &unix; System kommunizieren,
können Sie Dateien senden und empfangen – mit
~p (put) und ~t
(take). Diese Befehle lassen &man.cat.1; und &man.echo.1;
auf dem entfernten System laufen, um Dateien zu
akzeptieren und zu senden. Die Syntax ist:
~p <local-file> [<remote-file>]
~t <remote-file> [<local-file>]
Es gibt keine Fehlerkontrolle, deshalb sollten Sie
besser ein anderes Protokoll benutzen, wie zmodem.Wie kann ich zmodem mit tip
laufen lassen?Zuerst installieren Sie ein zmodem Programm aus der
Ports-Sammlung (eines der beiden aus der comms-Kategorie,
lrzsz oder
rzsz).Um Dateien zu empfangen, starten Sie das Programm zum
Senden auf dem entfernten Computer. Drücken Sie dann
Enter gefolgt von ~C rz (oder
~C lrz, wenn Sie lrzsz installiert
haben), um diese lokal zu empfangen.Um Dateien zu senden, starten Sie das Programm zum
Empfangen auf dem entfernten Computer. Drücken Sie
dann Enter gefolgt von ~C sz
Dateien (oder
~C lsz
Dateien), um sie zum
entfernten System zu senden.Wieso kann FreeBSD meine seriellen Schnittstellen
nicht erkennen, auch wenn die Einstellungen korrekt
sind?Hauptplatinen und Karten mit Acer UARTs werden im
FreeBSD sio test nicht richtig erkannt. Sie erhalten
einen Patch von www.lemis.com,
mit dem Sie das Problem beheben können.Verschiedene FragenFreeBSD benutzt viel mehr Swap-Speicher als Linux.
Warum?Es sieht nur so aus, als ob FreeBSD mehr Swap benutzt,
als Linux. Tatsächlich ist dies nicht der Fall. In
dieser Hinsicht besteht der Hauptunterschied zwischen
FreeBSD und Linux darin, daß FreeBSD vorbeugend
vollkommen untätige, unbenutzte Seiten aus dem
Hauptspeicher in den Swap-Bereich auslagert, um mehr
Hauptspeicher für die aktive Nutzung zur
Verfügung zu stellen. Linux tendiert dazu, nur als
letzten Ausweg Seiten in den Swap-Bereich auszulagern.
Die spürbar höhere Nutzung des Swap-Speichers
wird durch die effizientere Nutzung des Hauptspeichers
wieder ausgeglichen.Beachten Sie, daß FreeBSD in dieser Hinsicht
zwar vorbeugend arbeitet, es entscheidet jedoch nicht
willkürlich, Seiten auszulagern, wenn das System
vollkommen untätig ist. Deshalb werden Sie
feststellen, daß nicht alle Seiten Ihres Systems
ausgelagert wurden, wenn Sie morgens aufstehen, nachdem
das System eine Nacht lang nicht benutzt worden
ist.Warum zeigt mir &man.top.1; so wenig freien Speicher
an, obwohl nur wenige Programme laufen?Die Antwort ist ganz einfach: Freier Speicher ist
verschwendeter Speicher. Der FreeBSD Kernel verwendet den
von den Programmen nicht genutzten Speicher automatisch
für den Plattencache. Die in &man.top.1; für
Inact, Cache und
Buf gemeldeten Werte stehen alle
für zwischengespeicherte Daten mit unterschiedlichem
Alter. Wenn das System wiederholt auf Daten zugreifen
muß, braucht es nicht auf die langsame Platte
zuzugreifen, da die Daten noch zwischengespeichert sind.
Dadurch erhöht sich die Performance. Ganz generell
ist es ein gutes Zeichen, wenn &man.top.1; einen kleinen
Wert bei Free anzeigt, solange der Wert
nicht extrem klein ist.Anmerkung des Übersetzers: Mit extrem
klein sind hier Werte unterhalb 512 KByte
gemeint.Warum benutzt man (was sind) die Formate a.out und ELF
für ausführbare Dateien?Um zu verstehen, warum FreeBSD das Format
ELF benutzt, müssen Sie
zunächst etwas über die drei gegenwärtig
dominanten ausführbaren Formate
für &unix; Systeme wissen:FreeBSD-Version 1.X und 2.X benutzten das Format
a.out.&man.a.out.5;Das älteste und klassische
Objektformat von &unix; Systemen. Es benutzt einen kurzen, kompakten
Header mit einer magischen Nummer am Anfang, die oft
benutzt wird, um das Format zu charakterisieren
(weitere Details finden Sie unter &man.a.out.5;). Es
enthält drei geladene Segmente: .text, .data und
.bss, sowie eine Symboltabelle und eine
Stringtabelle.COFFDas Objektformat von SVR3. Der Header
enthält nun eine Sectiontable Man kann
also mit mehr als nur den Sections .text, .data und .bss
arbeiten.ELFDer Nachfolger von COFF.
Kennzeichnend sind mehrere Sections und mögliche
32-Bit- oder 64-Bit-Werte. Ein wesentlicher Nachteil:
ELF wurde auch unter der Annahme
entworfen, daß es nur ein ABI (Application
Binary Interface) pro Systemarchitektur geben wird.
Tatsächlich ist diese Annahme falsch - nicht
einmal für die kommerzielle SYSV-Welt (in der es
mindestens drei ABIs gibt: SVR4, Solaris, SCO) trifft
sie zu.FreeBSD versucht, dieses Problem zu umgehen, indem
ein Utility bereitgestellt wird, um ausführbare
Dateien im ELF-Format mit
Informationen über die ABI zu versehen, zu der
sie passen. Weitere Informationen finden Sie in der
Manualpage &man.brandelf.1;.FreeBSD kommt aus dem klassischen Lager
und verwendete traditionell das Format &man.a.out.5;, eine
Technologie, die bereits über viele BSD-Releases
hinweg eingesetzt und geprüft worden ist. Obwohl es
bereits seit einiger Zeit möglich war, auf einem
FreeBSD-System auch Binaries (und Kernel) im
ELF-Format zu erstellen und
auszuführen, widersetzte FreeBSD sich anfangs dem
Druck, auf ELF als
Standardformat umzusteigen. Warum? Nun, als das
Linux-Lager die schmerzhafte Umstellung auf
ELF durchführte, ging es nicht so
sehr darum, dem ausführbaren Format
a.out zu entkommen, als dem
unflexiblen, auf Sprungtabellen basierten Mechanismus
für Shared Libraries der die Konstruktion von
Shared Libraries für Hersteller und Entwickler
gleichermaßen sehr kompliziert machte. Da die
verfügbaren ELF-Werkzeuge eine
Lösung für das Problem mit den Shared Libraries
anboten und ohnehin generell als ein Schritt
vorwärts angesehen wurden, wurde der Aufwand
für die Umstellung als notwendig akzeptiert und die
Umstellung wurde durchgeführt.Im Fall von FreeBSD ist der Mechanismus von Shared
Libraries enger an den Mechanismus im Stil von Sun's
SunOS angelehnt und als solcher
sehr einfach zu verwenden. Seit Version 3.0
unterstützt FreeBSD ELF-Binaries
jedoch offiziell als das Standardformat. Obwohl das
ausführbare Format a.out uns
gute Dienste geleistet hat, hat das GNU-Team, das den von
uns verwendeten Compiler erstellt, die Unterstützung
des a.out-Formats eingestellt. Dies
zwang uns dazu, abweichende Versionen der Compiler und
Linker beizubehalten und hinderte uns daran, Nutzen aus
den aktuellen Entwicklungsergebnissen von GNU zu ziehen.
Auch die Anforderungen von ISO-C++, besonders
Konstruktoren und Destruktoren, haben zur
Unterstützung von ELF in
zukünftigen Versionen von FreeBSD
geführt.Ja aber warum gibt es so viele unterschiedliche
Formate?In alter, grauer Vorzeit gab es simple Hardware.
Diese simple Hardware unterstützte ein einfaches,
kleines System. a.out war absolut passend für die
Aufgabe, Binaries auf diesem simplen System (eine PDP-11)
darzustellen. Als &unix; von diesem simplen System portiert
wurde, wurde auch das a.out-Format beibehalten, weil es
für die frühen Portierungen auf Architekturen
wie den Motorola 68000, VAXe usw. ausreichte.Dann dachte sich ein schlauer Hardware-Ingenieur,
daß wenn er Software zwingen könnte, einige
Tricks anzustellen, es ihm möglich wäre, ein
paar Gatter im Design zu sparen, und seinen CPU-Kern
schneller zu machen. Obgleich es dazu gebracht wurde, mit
dieser neuen Art von Hardware (heute als RISC bekannt) zu
arbeiten, war a.out für diese
Hardware schlecht geeignet. Deshalb wurde viele neue
Formate entwickelt, um eine bessere Leistung auf dieser
Hardware zu erreichen, als mit dem begrenzten, simplen
a.out-Format. Dinge wie
COFF, ECOFF und
einige andere obskure wurden erdacht und ihre Grenzen
untersucht, bevor die Dinge sich in Richtung
ELF entwickelten.Hinzu kam, daß die Größe von
Programmen gewaltig wurden und Festplatten (und
physikalischer Speicher) immer noch relativ klein waren.
Also wurde das Konzept von Shared Libraries geboren. Das
VM-System wurde auch immer fortgeschrittener. Obwohl bei
jedem dieser Fortschritte das
a.out-Format benutzt worden ist,
wurde sein Nutzen mit jedem neuen Merkmal mehr und mehr
gedehnt. Zusätzlich wollte man Dinge dynamisch zur
Ausführungszeit laden, oder Teile ihres Programms
nach der Initialisierung wegwerfen, um Hauptspeicher
oder Swap-Speicher zu sparen. Programmiersprachen
wurden immer fortschrittlicher und man wollte, daß
Code automatisch vor der main-Funktion aufgerufen wird.
Das a.out-Format wurde oft
überarbeitet, um alle diese Dinge zu ermöglichen
und sie funktionierten auch für einige Zeit.
a.out konnte diese Probleme nicht
ohne ein ständiges Ansteigen eines Overheads im Code
und in der Komplexität handhaben. Obwohl
ELF viele dieser Probleme löste,
wäre es sehr aufwendig, ein System umzustellen, das
im Grunde genommen funktionierte. Also mußte
ELF warten, bis es aufwendiger war, bei
a.out zu bleiben, als zu
ELF überzugehen.Im Laufe der Zeit haben sich die Erstellungswerkzeuge,
von denen FreeBSD seine Erstellungswerkzeuge abgeleitet
hat (speziell der Assembler und der Loader), in zwei
parallele Zweige entwickelt. Im FreeBSD-Zweig wurden
Shared Libraries hinzugefügt und einige Fehler
behoben. Das GNU-Team, das diese Programme
ursprünglich geschrieben hat, hat sie umgeschrieben
und eine simplere Unterstützung zur Erstellung von
Cross-Compilern durch beliebiges Einschalten verschiedener
Formate usw. hinzugefügt. Viele Leute wollten
Cross-Compiler für FreeBSD erstellen, aber sie hatten
kein Glück, denn FreeBSD's ältere Sourcen
für as und ld waren hierzu nicht geeignet. Die neuen
GNU-Werkzeuge (binutils) unterstützen
Cross-Compilierung, ELF, Shared
Libraries, C++-Erweiterungen usw. Weiterhin geben viele
Hersteller ELF-Binaries heraus und es
ist gut, wenn FreeBSD sie ausführen kann. Und wenn
es ELF-Binaries ausführt, warum
dann auch noch a.out behalten? Es
ist ein müdes, altes Pferd, daß sich für
eine lange Zeit als nützlich erwiesen hat, aber es
ist an der Zeit, es für seine langen, treuen
Dienstjahre auf die Weide zu schicken.ELF ist ausdrucksfähiger als
a.out und gestattet eine bessere Erweiterbarkeit des
Basissystems. Die ELF-Werkzeuge werden
besser gewartet und bieten Unterstützung von
Cross-Compilierung, was für viele Leute wichtig ist.
ELF mag etwas langsamer sein, als
a.out, aber zu versuchen, das zu messen, könnte
schwierig werden. Es gibt unzählige Details, in
denen sich die beiden Formate unterscheiden, wie sie Pages
abbilden, Initialisierungscode handhaben usw. Keins davon
ist sehr wichtig, aber es sind Unterschiede. Irgendwann
wird die Unterstützung für Programme im
a.out-Format aus dem GENERIC Kernel
entfernt werden. Wenn es dann keinen oder kaum noch
Bedarf für die Unterstützung dieses Formates
gibt, werden die entsprechenden Routinen ganz entfernt
werden.Warum ändert chmod die Zugriffsrechte auf
symbolische Links nicht?Für symbolische Links gibt es keine separaten
Zugriffsrechte und standardmäßig folgt
&man.chmod.1; dem Link nicht; die Zugriffsrechte für
die Datei, auf die der symbolische Link zeigt, werden also
nicht verändert. Wenn Sie eine Datei mit dem Namen
foo und einen auf diese Datei
zeigenden symbolischen Link mit dem Namen
bar haben, wird das folgende Kommando
niemals einen Fehler melden.&prompt.user; chmod g-w barTrotzdem werden die Zugriffsrechte für
foo nicht geändert.Hierzu müssen Sie entweder
oder zusammen mit der Option
benutzen. Weitere Informationen
finden Sie in den Manualpages &man.chmod.1; und
&man.symlink.7;.Die Option bewirkt ein
REKURSIVES &man.chmod.1;
Seien Sie vorsichtig, wenn Sie bei
&man.chmod.1; Verzeichnisse oder symbolische
Links zu Verzeichnissen angeben. Wenn Sie die
Zugriffsrechte eines Verzeichnisses ändern
möchten, das durch einen symbolischen Link
referenziert wird, benutzen Sie &man.chmod.1;
ohne irgendwelche Optionen und folgen dem symbolischen
Link durch einen abschließenden Schrägstrich
(/). Falls z.B.
foo ein symbolischer Link zum
Verzeichnis bar ist und Sie die
Zugriffsrechte von foo
(tatsächlich bar) ändern
möchten, dann benutzen Sie etwas ähnliches
wie:&prompt.user; chmod 555 foo/Durch den abschließenden Schrägstrich folgt
&man.chmod.1; dem symbolischen Link
foo, um die Zugriffsrechte für
das Verzeichnis bar zu
ändern.Warum sind Loginnamen bis einschließlich FreeBSD
2.2.X auf acht Zeichen begrenzt?Sie denken vielleicht, daß es leicht sein
sollte, UT_NAMESIZE zu ändern, das
ganze System neu zu erstellen und das dann alles
funktionieren müßte. Unglücklicherweise
gibt es oft dutzende Anwendungen und Utilities
(einschließlich Systemwerkzeuge), bei denen kleine
Zahlen (nicht immer 8 oder
9, sondern auch sonderbare, wie
15 und 20) in
Strukturen und Puffern fest codiert sind. Hierdurch
erhalten Sie nicht nur unbrauchbare Logdateien (weil
variabel lange Sätze ausgegeben werden, wo Sätze
fester Länge erwartet werden), sondern es kann dazu
führen, daß Sun's NIS-Clients nicht mehr
funktionieren und möglicherweise andere Probleme bei
der Interaktion mit anderen &unix; Systemen
verursachen.In FreeBSD 3.0 und späteren wurde die maximale
Länge für Namen auf 16 Zeichen erweitert und die
unterschiedlichen Utilities mit fest codierten
Namenslängen wurden gefunden und bereinigt. Die
Tatsache, daß hiervon so viele Bereiche des Systems
betroffen waren, ist der Grund, warum diese Änderung
nicht vor 3.0 durchgeführt worden ist.Wenn Sie sich absolut sicher sind, daß Sie diese
Art von Problemen selbst finden und bereinigen
können, wenn und falls sie auftreten, dann
können Sie die Länge von Loginnamen in
früheren Versionen ändern, indem Sie
/usr/include/utmp.h editieren und
UT_NAMESIZE entsprechend ändern. Sie müssen
MAXLOGNAME in
/usr/include/sys/param.h auch
entsprechend der Änderung von UT_NAMESIZE
ändern. Schließlich, vergessen Sie nicht,
daß /usr/include jedesmal aktualisiert wird, wenn
Sie von den Sourcen aus Erstellen! Ändern Sie
stattdessen die entsprechen Dateien in
/usr/src/...Kann ich DOS-Programme unter FreeBSD
ausführen?Ja, ab Version 3.0 können Sie die DOS-Emulation
doscmd der Firma BSDi benutzen,
die integriert und erweitert wurde. Schicken Sie eine
Mail an die Mailingliste &a.emulation;, wenn Sie daran
interessiert sind, an den laufenden Bemühungen
teilzunehmen!Für Systeme vor 3.0 gibt es ein nettes Utility
pcemu in der Ports-Sammlung,
das einen 8088 und genug BIOS-Dienste emuliert, um
DOS-Anwendungen im Textmodus auszuführen. Hierzu
wird das X Window-System benötigt (erhältlich
als XFree86).Was muß ich tun, um die FreeBSD-Dokumentation in
meine Muttersprache zu übersetzen?Informationen zu diesem Thema finden Sie in der FAQ
des FreeBSD German Documentation Project.Warum kommen alle meine Mails, die ich an @FreeBSD.org
schicke, wieder zurück?Das Mailsystem von FreeBSD.org verwendet einige der
strengeren Überprüfungen von
Postfix für eingehende Mails.
Mails, bei denen es Anzeichen für Konfigurationsprobleme
oder Spam gibt, werden nicht akzeptiert. Dies kann aus einem
der folgenden Gründe geschehen:Die Mail kommt von einem System oder Netzwerk,
daß für Spam-Aktivitäten bekannt
ist.Die Mailserver von FreeBSD akzeptierten keine
Mails von bekannten Spam-Quellen. Wenn Sie auf eine
Firma oder Domain benutzen, die Spam erzeugt oder
verteilt, sollten Sie sich einen anderen ISP
suchen.Der Mailtext enthält HTML.Mail sollte immer im Klartext gesendet werden, Sie
sollten ihr Mailprogramm entsprechend
einstellen.Das Mailsystem kann die IP-Adresse des
einliefernden Systems nicht in einen symbolischen
Namen umwandeln.Funktionierendes reverse DNS ist eine
Vorbedingung, damit ihre Mails angenommen wird.
Sorgen Sie dafür, daß der reverse DNS
für Ihren Mailserver korrekt konfiguriert wird.
Viele Anbieter für Privatkunden geben Ihnen diese
Möglichkeit nicht. In diesem Fall sollten Sie
Ihre Mails über den Mailserver Ihres Providers
versenden.Der Rechnername, der im EHLO/HELO Teil der SMTP
Kommunikation übergeben wird, kann nicht zu einer
IP-Adresse aufgelöst werden.Damit die E-Mail akzeptiert wird, brauchen Sie einen
voll qualifizierten Rechnernamen, der im DNS eingetragen ist.
Wenn Sie diesen nicht besitzen, benutzen Sie bitte den
Mailserver Ihres Providers, um E-Mails zu verschicken.Die Message-ID Ihrer Mail endet in
localhost.Einige Mail-Clients generieren eine Message-ID, die
nicht akzeptiert wird. Sie müssen Ihren Mail-Client
so konfigurieren, daß er eine gültige Message-ID
generiert. Alternativ können Sie die Message-ID von
Ihrem Mailserver umschreiben lassen.Wo kann ich einen freien FreeBSD-Account bekommen?Das FreeBSD-Projekt bietet zwar keinen freien Zugang
zu seinen Servern an; andere Firmen bieten jedoch frei
zugängliche &unix; Systeme. Die Kosten variieren und
es kann sein, daß nicht alle Dienste zur
Verfügung stehen.Arbornet,
Inc, auch als M-Net bekannt, bietet seit 1983
uneingeschränkten Zugang zu &unix; Systemen.
Zunächst wurde eine Altos-Maschine mit System III
benutzt, 1991 erfolgte dann der Wechsel zu BSD/OS. Im
Juni 2000 erfolgte ein erneuter Wechsel, diesmal zu
FreeBSD. M-Net bietet Zugang mit Telnet und SSH und den
Zugang zur gesamten Software von FreeBSD. Allerdings ist
der Zugriff auf das Netzwerk auf Mitglieder und
Gönner beschränkt, die eine Spende an die
nicht-kommerzielle Organisation geleistet haben. M-Net
stellt zusätzlich ein Mailbox-System und einen
interaktiven Chat zur Verfügung.Grex bietet
ein ganz ähnlichen Dienst wie M-Net an, dazu
gehören auch das Mailbox-System und der interaktive
Chat. Allerdings wird eine SUN4M mit SunOS
benutzt.Was ist sup und wie benutze ich
es?Der Name SUP steht für
Software Update Protocol und wurde von der CMU (Carnegie
Mellon University) entwickelt, um ihre Entwicklungszweige
zu synchronisieren. Wir haben es benutzt, um entfernte
Sites mit unseren zentralen Quellcodeentwicklungen zu
synchronisieren.SUP ist nicht sehr bandbreitenfreundlich und wurde
abgelöst. Die derzeit empfohlene Methode, um Ihren
Quellcode auf dem neuesten Stand zu halten ist CVSup.Wie heißt das niedliche rote Kerlchen?Er ist namenlos, es ist einfach der der BSD
Daemon. Wenn Sie ihm unbedingt einen Namen geben
wollen, rufen Sie ihn beastie. Beachten
Sie aber, daß beastie wie
BSD ausgesprochen wird.Weitere Informationen über den BSD daemon finden
Sie auf seiner
Homepage.Kann ich Bilder des BSD Daemon verwenden?Eventuell. Der BSD Daemon unterliegt dem Copyright
von Marshall Kirk McKusick. Wenn Sie genaue Informationen
über die Einschränkungen bei der Nutzung
brauchen, sollten Sie sein Statement
on the Use of the BSD Daemon Figure lesen.Kurz gesagt, können Sie den BSD Daemon benutzen,
solange es für einen privaten Zweck ist und die
Nutzung geschmackvoll bleibt. Für den kommerziellen
Einsatz brauchen Sie die Zustimmung von Kirk McKusick.
Weitere Informationen erhalten Sie auf der Webseite BSD
Daemon's home page.Woher kann ich Bilder des BSD Daemon bekommen?Einige Bilder in den Format xfig und eps sind unter
/usr/share/examples/BSD_daemon/ zu
finden.Was bedeutet MFC?MFC ist ein Acronym für Merged From
-Current. Es wird in den CVS-Logs benutzt, um zu
kennzeichnen, wenn eine Änderung vom CURRENT-Zweig in
den STABLE-Zweig übernommen worden ist.Was bedeutet BSD?Es steht für etwas in einer geheimen Sprache, das
nur Mitglieder wissen können. Es kann nicht
wörtlich übersetzt werden, aber wir können
Ihnen sagen, daß die Übersetzung von BSD etwas
zwischen Formel-1 Team, Pinguine
sind ein leckerer Imbiß und Wir haben
einen besseren Sinn für Humor als Linux ist
:-)Ernsthaft, BSD ist ein Acronym für Berkeley
Software Distribution. Das ist der Name, den die
Berkeley CSRG (Computer Systems Research
Group) damals für ihre Distribution des &unix; Systems gewählt
hat.Was bedeutet POLA?Prinzip der kleinsten Überraschung (engl.
Principle of Least Astonishment).
Das bedeutet, daß Änderungen in FreeBSD, die den
Endanwender betreffen, für diesen so transparent wie
möglich bleiben. Es wäre beispielsweise eine
Verletzung dieses Prinzips die Variablen in
/etc/defaults/rc.conf willkürlich
umzuordnen. Entwickler berücksichtigen dieses Prinzip,
wenn Sie über Änderungen nachdenken, die den Endanwender
betreffen.Was ist eine repo-copy?Eine repo-copy (die Kurzform von repository
copy) bedeutet, daß Dateien direkt innerhalb
des CVS repository kopiert wurden.Wenn eine Datei an einen anderen Ort im Repository
kopiert oder verschoben werden müsste, würde ein
Committer ohne repo-copy die neue Datei mit cvs
add hinzufügen und die alte ggfs. mit
cvs rm löschen.Damit würden allerdings die Einträge in der
History (die Einträge im CVS-Logfile) nicht mit
übertragen. Da das FreeBSD Projekt diese
Informationen allerdings für äußerst
nützlich hält, wird eine repository copy
durchgeführt. Bei diesem Vorgang wird einer der
CVS-Meister die Dateien direkt innerhalb des Repository
verschieben, statt das Programm &man.cvs.1; zu
benutzen.Warum sollte mich die Farbe des Fahrradschuppens
interessieren?Die ganz, ganz kurze Antwort ist überhaupt nicht.
Die etwas längere Antwort lautet: Nur weil Sie in der
Lage sind, einen Fahrradschuppen zu bauen, müssen Sie
noch lange nicht andere davon abhalten, nur weil Ihnen die
nicht Farbe gefällt. Dies ist natürlich eine Metapher
dafür, daß Sie nicht eine Diskussion über
jede kleine Änderung beginnen sollen, nur weil Sie
das können. Einige Leute behaupten sogar, daß
die Anzahl der (nutzlosen) Kommentare über eine
Änderung umgekehrt proportional zu Ihrer
Komplexität der Änderung ist.Die noch längere und vollständigere Antwort
ist, daß &a.phk; nach einen langen Diskussion
über das Thema "Soll &man.sleep.1; Sekundenbruchteile
als Parameter akzeptieren?" eine lange Mail mit dem Titel
A
bike shed (any colour will do) on greener
grass... schrieb. Die einschlägigen
Teile der Nachricht lauteten:
&a.phk; in freebsd-hackers,
2.10.1999Einige von Euch haben mich gefragt, Was
meinst Du mit dem Fahrradschuppen?Es ist eine lange oder eigentlich eher eine sehr
alte und doch sehr kurze Geschichte. C. Northcote
Parkinson schrieb in den führen sechzigern ein Buch
mit dem Namen Parkinson's Law, das viele
Einblick in die Beziehungen innerhalb des Managements
gibt.[ein paar Kommentare zum Buch gestrichen]In dem Beispiel mit dem Fahrradschuppen ist die
andere wichtige Komponente ein Kernkraftwerk. Ich
glaube, daß zeigt schon, wie alt dieses Buch
ist.Parkinson zeigte, daß man zum Vorstand gehen
kann und die Genehmigung für ein mehrere Millionen
oder sogar Milliarden Dollar teures Kernkraftwerk
bekommt; wenn man aber einen Fahrradschuppen bauen will,
wird man in endlose Diskussionen verwickelt.Laut Parkinson liegt das daran, daß ein
Kernkraftwerk so groß, so teuer und so kompliziert
ist, daß die Leute es nicht verstehen. Und bevor
sie versuchen, es zu verstehen, verlassen Sie sich
lieber darauf, daß irgend jemand sicherlich die
ganzen Details geprüft hat, bevor das Projekt bis
zum Vorstand gekommen ist. Im Buch von Richard P.
Feynmann finden sich einige interessante und sehr
passende Beispiele aus dem Gebiet von Los
Alamos.Ein Fahrradschuppen ist was anderes. Jeder kann an
seinem freien Wochenende einen bauen und hat trotzdem
noch genug Zeit für die Sportschau. Daher ist es
unwichtig, wie gut man sich vorbereitet und wie sinnvoll
der eigene Vorschlag ist. Irgend jemand wird die
Möglichkeit nutzen und zeigen, daß er seine
Arbeit tut, daß er aufmerksam ist, daß er
da ist.In Dänemark nennen wir dieses Verhalten
Seine Fingerabdrücke hinterlassen.
Es geht um persönlichen Stolz und Prestige; die
Chance, auf irgend etwas zu zeigen und zu sagen zu
können: Da! Das habe
Ich getan. Politiker leiden
sehr stark darunter, aber viele Leute verhalten sich so,
wenn sie die Chance haben. Denkt einfach mal an
Fußabdrücke in feuchtem Zement.
Nicht ganz ernstgemeinte FragenWie cool ist FreeBSD?Q. Hat irgend jemand Temperaturmessungen
durchgeführt, während FreeBSD läuft? Ich
weiß, daß Linux cooler läuft, als DOS,
aber niemals gesehen, daß FreeBSD erwähnt
wurde. Es scheint sehr heiß zu laufen.A. Nein, aber wir haben zahlreiche Geschmackstests mit
verblendeten Freiwilligen durchgeführt, denen
außerdem zuvor 250 Mikrogramm LSD-25 verabreicht
wurden. 35% der Freiwilligen sagte, daß FreeBSD
nach Orange schmeckte, Linux hingegen schmecke wie
purple haze (Anm. d. Übersetzers: Song
von Jimmy Hendrix und LSD-Marke). Keine der Gruppen hat
besondere Abweichungen der Temperatur erwähnt.
Eventuell hätten wir sämtliche Ergebnisse dieser
Untersuchung fortwerfen sollen, als wir festgestellt
haben, daß zu viele der Freiwilligen den Raum
während der Tests verlassen haben und dadurch die
Ergebnisse verfälscht haben. Wir glauben, daß
die meisten der Freiwilligen nun bei Apple sind und an
ihrer neuen scratch and sniff
Oberfläche arbeiten. Es ist ein lustiges, altes
Geschäft, in dem wir uns befinden!Ernsthaft, FreeBSD und Linux benutzen beide die
Instruktion HLT (halt), wenn das System
untätig ist, wodurch der Energieverbrauch und dadurch
die produzierte Wärme reduziert wird. Falls Sie auch
noch APM (Advanced Power Management) konfiguriert haben,
kann FreeBSD Ihre CPU auch in einen Low-Power-Modus
bringen.Wer kratzt in meinen Speicherbänken??Q. Gibt es irgend etwas seltsames, das
FreeBSD tut, wenn ich den Kernel kompiliere, das dazu
führt, daß der Speicher ein kratzendes
Geräusch macht? Bei der Kompilierung (und auch
für einen kurzen Moment nach der Erkennung des
Floppy-Laufwerks beim Hochfahren), kommt ein seltsames
kratzendes Geräusch von etwas das die
Speicherbänke zu sein scheinen.A. Ja! In der BSD-Dokumentation finden Sie
häufige Verweise auf Daemons und was
die meisten Leute nicht wissen, ist, daß diese sich
auf echte, nicht-körperlichen Wesen beziehen, die
Besitz von Ihrem Computer ergriffen haben. Das kratzende
Geräusch, das von Ihrem Speicher kommt, ist in
Wirklichkeit hochtöniges Flüstern, das unter den
Daemons ausgetauscht wird, während Sie entscheiden,
wie Sie die verschiedenen Systemadministrationsaufgaben,
am besten erledigen.Wenn Sie das Geräusch stört, wird ein
fdisk /mbr sie vertreiben, aber wundern
Sie sich nicht, wenn sie feindlich reagieren und
versuchen, Sie aufzuhalten. Wenn Sie während der
Ausführung zu irgendeinem Zeitpunkt die teuflische
Stimme von Bill Gates aus dem eingebauten Lautsprecher
kommen hören, laufen Sie weg und sehen Sie sich auf
keinen Fall um! Befreit von dem ausgleichenden
Einfluß der BSD Dämonen sind die beiden
Dämonen von DOS und Windows oft dazu in der Lage, die
totale Kontrolle über Ihre Maschine für die
ewige Verdammung Ihrer Seele zurückzuerlangen. Da
Sie jetzt die Wahrheit kennen, würden Sie es
vorziehen, sich an die Geräusche zu gewöhnen,
wenn Sie die Wahl hätten.Wieviele FreeBSD-Hacker braucht man, um eine
Glühbirne auszuwechseln?Eintausendeinhundertundneunundsechzig:Dreiundzwanzig, die sich bei -CURRENT beschweren,
daß das Licht aus ist;Vier, die behaupten, daß es sich um ein
Konfigurationsproblem handelt und daß solche Dinge
wirklich nach -questions gehören;Drei, die PRs hierzu einreichen, einer von ihnen wird
falsch unter DOC abgelegt und fristet sein Dasein im
Dunkeln;Einen, der eine ungetestete Glühbirne einreicht,
wonach buildworld nicht mehr funktioniert, und sie dann
fünf Minuten später wieder herausnimmt;Acht, die die PR-Erzeuger beschimpfen, weil sie zu
ihren PRs keine Patche hinzugefügt haben;Fünf, die sich darüber beschweren, daß
buildworld nicht mehr funktioniert;Einunddreißig, die antworten, daß es bei
ihnen funktioniert und daß sie cvsup wohl zu einigem
ungünstigen Zeitpunkt durchgeführt
haben;Einen, der einen Patch für eine neue
Glühbirne an -hackers schickt;Einen, der sich beschwert, daß es vor drei
Jahren Patches hierfür hatte, aber als er sie nach
-CURRENT schickte, sind sie einfach ignoriert worden und
er hatte schlechte Erfahrungen mit dem PR-System; nebenbei
ist die vorgeschlagene Glühbirne nicht
reflexiv;Siebenunddreißig, die schreien, daß
Glühbirnen nicht in das Basissystem gehören,
daß Committer nicht das Recht haben, solche Dinge
durchzuführen, ohne die Gemeinschaft zu konsultieren
und WAS GEDENKT -CORE HIER ZU TUN!?Zweihundert, die sich über die Farbe des
Fahrradschuppens beschweren;Drei, die darauf hinweisen, daß der Patch nicht
mit &man.style.9; übereinstimmt;Siebzehn, die sich beschweren, daß die
vorgeschlagene neue Glühbirne der GPL
unterliegt;Fünfhundertundsechsundachtzig, die sich in einen
Streit über die vergleichbaren Vorteile der GPL, der
BSD-Lizenz, der MIT-Lizenz, der NPL und der
persönlichen Hygiene nichtgenannter FSF-Gründer
verwickeln;Sieben, die unterschiedliche Teile des Threads nach
-chat und -advocacy weiterleiten;Einer, der die vorgeschlagene Glühbirne einbaut,
obwohl sie dunkler leuchtet, als die alte;Zwei, die sie wieder ausbauen, und in einer
wütenden Nachricht argumentieren, daß FreeBSD
besser ganz im Dunkeln dasteht, als mit einer
dämmerigen Glühbirne;Sechsundvierzig, die sich lärmend wegen des
Wiederausbaus der dämmerigen Glühbirne streiten
und eine Erklärung von -core verlangen;Elf, die eine kleinere Glühbirne beantragen,
damit sie in ihr Tamagotchi paßt, falls wir
irgendwann beschließen, FreeBSD auf diese Plattform
zu portieren;Dreiundsiebzig, die sich über die SNR auf
-hackers und -chat beschweren und aus Protest
abmelden;Dreizehn, die unsubscribe,
How do I unsubscribe?
oder Please remove me from the list gefolgt
von der üblichen Fußzeile abschicken;Einen, der eine funktionierende Glühbirne
einbaut, während alle zu beschäftigt damit sind,
mit jedem zu streiten, um es zu bemerken;Einunddreißig, die herausstellen, daß die
neue Glühbirne 0,364% heller leuchten würde,
wenn sie mit TenDRA kompiliert werden würde (obwohl
sie ein einen Würfel umgeformt werden
müßte) und daß FreeBSD deshalb nach
TenDRA, anstatt nach GCC wechseln sollte;Einen, der sich beschwert, daß bei der neuen
Glühbirne die Verkleidung fehlt;Neun (einschließlich der PR-Ersteller), die
fragen Was ist MFC?Siebenundfünfzig, die sich zwei Wochen, nachdem
die Birne gewechselt worden ist, darüber beschweren,
daß das Licht aus war.&a.nik; hat
hinzugefügt:Ich habe ziemlich hierüber
gelacht.Und dann dachte ich: "Halt, sollte in dieser
Liste nicht irgendwo 'Einer, der es dokumentiert'
sein?"Und dann wurde ich erleuchtet
:-)Was passiert mit den Daten, die nach
/dev/null geschrieben werden?Sie werden in einer speziellen Datensenke der CPU in
Wärme umgewandelt, die dann über den
Kühlkörper und den Lüfter abgeführt
wird. Dies ist einer der Gründe für die
Kühlung von CPUs; die Anwender gewöhnen sich an
die schnelleren Prozessoren, gehen nicht mehr so
sorgfältig mit Ihren Daten um und so landen immer
mehr Daten in /dev/null, was zur
Überhitzung der CPU führt. Wenn Sie
/dev/null löschen (was die
Datensenke ziemlich sicher abschaltet), wird Ihre CPU zwar
nicht mehr so heiß, dafür wird Ihr System aber
sehr schnell von den überzähligen Daten
überladen und merkwürdige Effekte zeigen. Wenn
Sie eine sehr schnell Netzwerkverbindung haben,
können Sie Ihre CPU kühlen, indem sie Daten aus
/dev/random lesen und in die Weite
des Netzwerkes schicken; allerdings besteht hier die
Gefahr der Überhitzung von Netzwerk und
/. Außerdem dürfte Ihr
ISP ziemlich wütend werden, da der größte
Teil der Daten von seinen Geräten in Hitze
umgewandelt werden wird; da ISPs aber über
Klimaanlagen verfügen, sollte das kein großes
Problem sein, solange Sie es nicht
übertreiben.Nachtrag Paul Robinson:Es gibt andere Mittel und Wege. Wie jeder gute
Systemadministrator weiß, gehört es zum guten
Ton, einigen Daten zum Bildschirm zu senden, damit die
Leuchtkäferchen, die das Bild anzeigen,
glücklich sind. Die Leuchtkäferchen werden nach
der Farbe Ihrer Hüte (Rot, Grün, oder Blau)
unterschieden und sie verstecken bzw. zeigen sich (wobei
man die Farbe ihrer Hüte erkennen kann) bei jeder
Nahrungsaufnahme. Grafikkarten wandeln Daten in
Leuchkäfer-Nahrung um und schicken sie dann zu den
Leuchtkäfern - teure Karten erzeugen bessere Nahrung
und sorgen so für besseres Verhalten der
Leuchtkäfer. Diese brauchen allerdings einen
konstanten Stimulus - darum gibt es
Bildschirmschoner.Darum lautet mein Vorschlag, die zufälligen Daten
einfach zum Bildschirm zu schicken, damit sie von den
Leuchtkäfern verzehrt werden. Dabei entsteht keine
Hitze, die Leuchtkäfer bleiben glücklich und man
wird seine überflüssigen Daten sehr schnell los,
auch wenn der Bildschirm etwas merkwürdig
aussieht.Übrigens: Als Ex-Admin eines großen ISPs,
der so seine Probleme mit der Kühlung seines
Rechenzentrums hatte, kann ich nur davon abraten,
überflüssige Daten einfach in das Netzwerk zu
schicken. Die Heinzelmännchen, die die Pakete
verteilen und versenden, regen sich darüber ganz
furchtbar auf.Weiterführende ThemenWie kann ich mehr über die Interna von FreeBSD
erfahren?Zur Zeit gibt es kein Buch über die Interna von
FreeBSD. Allgemeines Wissen über Wissen kann
allerdings in den meisten Fällen auf FreeBSD
angewendet werden. Auch einige der BSD-spezifischen
Bücher sind für FreeBSD verwendbar.Eine Liste finden Sie im entsprechenden Abschnitt der
Bibliographie.Wie kann ich bei der Entwicklung von FreeBSD
mitarbeiten?Genauere Informationen finden Sie im Artikel
Contributing to FreeBSD. Wie können Hilfe immer gut
gebrauchen!Was sind SNAPs und RELEASEs?Derzeit existieren drei aktive/halbaktive Zweige im
FreeBSD-CVS-Repository (im Zweig RELENG_2 erfolgen
vielleicht noch zwei Änderungen pro Jahr, daher gibt
es nur drei aktive Entwicklungszweige:RELENG_2_2 bzw.
2.2-STABLERELENG_3 bzw.
3.X-STABLERELENG_4 bzw.
4-STABLEHEAD bzw.
-CURRENT oder
5.0-CURRENTHEAD ist keine wirkliche
Bezeichnung für einen Zweig, wie die anderen beiden.
Es ist lediglich eine symbolische Konstante für
den aktuellen, nicht verzweigten
Entwicklungsstrom, auf den wir uns
einfach als -CURRENT beziehen.Zur Zeit ist -CURRENT der 5.0
Entwicklungsstrom und der
4-STABLE-Zweig
RELENG_4 wurde im März 2000 von
-CURRENT abgespalten.Der 2.2-STABLE-Zweig
RELENG_2_2 verließ -CURRENT im
November 1996, die Weiterentwicklung wurde fast
vollständig eingestellt.Wie kann ich meine eigene, angepaßtes Release
erstellen?Eine Anleitung dazu finden Sie im Artikel
FreeBSD Release Engineering.Wieso überschreibt make world
das installierte System?Das ist beabsichtigt. Wie der Name schon andeutet,
erstellt make world alle Systemdateien
von Grund auf neu. Sie können also sicher sein, am
Ende eine saubere, konsistente Umgebung zu haben (das ist
der Grund, warum es so lange dauert).Falls die Umgebungsvariable DESTDIR
während der Ausführung von make
world oder make install
definiert ist, werden die neu erstellten Binaries unter
${DESTDIR} in einem zum
installierten identischen Verzeichnisbaum abgelegt.
Einige zufällige Kombinationen von Änderungen
von Shared Libraries und Neuerstellungen von Programmen
können hierbei jedoch ein Scheitern von make
world verursachen.Warum meldet mein System (bus speed
defaulted) beim Start?Die Adaptec 1542 SCSI Hostadapter erlauben dem
Benutzer die Buszugriffsgeschwindigkeit per Software zu
konfigurieren. Ältere Versionen des 1542-Treibers
versuchten, die schnellstmögliche Geschwindigkeit
herauszufinden und konfigurierten den Adapter
entsprechend. Wir haben festgestellt, daß dies auf
einigen Systemen nicht funktioniert, weshalb Sie nun die
Kernelkonfigurationsoption TUNE_1542
definieren müssen, um es zu aktivieren. Die
Benutzung auf Systemen, auf denen es funktioniert,
könnte Ihre Platten schneller machen, aber auf den
Systemen, auf denen es nicht funktioniert, könnten
Ihre Daten beschädigt werden.Kann ich -CURRENT mit begrenztem Internetzugang
folgen?Ja, Sie können das tun, ohne
den gesamten Quellbaum herunterzuladen, indem Sie die
Einrichtung CTM
benutzen.Wie haben Sie die Distribution in 240k-Dateien
aufgespalten?Bei neueren BSD-basierten Systemen gibt es eine Option
zu split, die das Splitten von Dateien
an willkürlichen Bytegrenzen erlaubt.Hier ist ein Beispiel aus
/usr/src/Makefile.
bin-tarball:
(cd ${DISTDIR}; \
tar cf - . \
gzip --no-name -9 -c | \
split -b 240640 - \
${RELEASEDIR}/tarballs/bindist/bin_tgz.)
Ich habe eine Kernelerweiterung geschrieben. An wen
sende ich sie?Lesen Sie bitte den Artikel
Contributing to FreeBSD.Und Danke, daß Sie darüber
nachdenken!Wie werden Plug&Play ISA-Karten erkannt und
initialisiert?Von: Frank Durda IV
uhclem@nemesis.lonestar.orgKurz gesagt gibt es nur wenige I/O-Ports über die
PnP-Karten antworten, wenn der Host fragt, ob jemand da
ist. Wenn die PnP-Erkennungsroutine startet, fragt sie,
ob irgendwelche PnP-Karten vorhanden sind und alle
PnP-Karten antworten mit ihrer Modellnummer auf demselben
Port, von dem sie auch gelesen haben. Die
Erkennungsroutine erhält also ein geodertes
Ja auf diese Frage. Mindestens ein Bit
wird bei dieser Antwort gesetzt sein. Die
Erkennungsroutine ist dann in der Lage, dafür zu
sorgen, daß Karten mit Modellnummern (zugeordnet von
Microsoft/Intel) kleiner als X off-line
gesetzt werden. Sie prüft dann, ob immer noch Karten
da sind, die auf die Frage antworten. Falls die Antwort
0 war, sind keine Karten mit IDs
größer X vorhanden. Nun prüft die
Erkennungsroutine, ob Karten unterhalb
X vorhanden sind. Dann setzt die
Erkennungsroutine alle Karten größer als
X-(limit/4) off-line und wiederholt die Frage. Wenn diese
halbbinäre Suche nach IDs in Folge genügend oft
wiederholt worden ist, wird die Erkennungsroutine
schließlich alle in einem Rechner befindlichen
PnP-Karten identifiziert haben und das mit einer
Iterationszahl sehr viel kleiner als 2^64.Die IDs bestehen aus zwei 32-Bit-Feldern (daher 2^64)
+ acht Bit Prüfsumme. Die ersten 32 Bit sind die
Herstellerkennung. Es wurde zwar nicht bestätigt,
aber es wird angenommen, daß unterschiedliche
Kartentypen desselben Herstellers unterschiedliche 32-Bit
Herstellerkennungen besitzen können. 32 Bit nur
für eindeutige Hersteller zu benötigen, scheint
etwas übertrieben.Die niedrigen 32 Bit sind eine Seriennummer,
Ethernetadresse - etwas, das die betreffende Karte
einzigartig macht. Die Hersteller dürfen niemals
eine zweite Karte mit denselben niedrigen 32 Bit
herstellen, es sei denn, die höheren 32 Bit sind
unterschiedlich. Sie können also mehrere Karten des
selben Typs im Rechner haben und die gesamten 64 Bit
bleiben stets eindeutig.Die 32-Bit-Gruppen können niemals nur aus Nullen
bestehen. Das erlaubt es, bei der binären Suche zu
Beginn nur auf von Null verschiedene Bits zu
achten.Wenn das System alle vorhandenen Karten-IDs
identifiziert hat, reaktiviert es jede Karte - eine nach
der anderen (über dieselben I/O-Ports) und ermittelt,
welche Ressourcen von der jeweiligen Karte benötigt
werden, welche Wahlmöglichkeiten für Interrupts
bestehen usw. Alle Karten werden abgefragt, um diese
Informationen zusammenzustellen.Diese Informationen werden dann mit Informationen aus
allen ECU-Dateien auf der Festplatte oder mit im MLB-BIOS
verdrahteten Informationen verknüpft. Die ECU- und
BIOS-PnP-Unterstützung für Hardware auf dem MLB
ist für gewöhnlich künstlich und was die
Peripheriegeräte tun ist nicht wirklich echtes PnP.
Durch die Untersuchung der BIOS-Informationen und der
ECU-Informationen können die Erkennungsroutinen
jedoch die von PnP-Geräten benutzten Ressourcen so
ändern, daß vermieden wird, daß bereits
von anderen Geräten benutzte Ressourcen verwendet
werden.Dann werden die PnP-Geräte nochmals besucht und
ihre I/O, DMA, IRQ und Memory-Map-Adressen werden
zugeordnet. Die Geräte werden an diesen Stellen
sichtbar werden und dort bis zum nächsten Reboot
verbleiben. Allerdings hindert Sie auch nichts daran, sie
zu verschieben, wohin Sie wollen.Im obigen Teil wurde sehr viel vereinfacht, aber die
grundlegende Idee sollte klar geworden sein.Microsoft hat einige der primären
Druckerstatusports für PnP übernommen, da keine
Karte diese Adressen für die entgegengesetzten
I/O-Zyklen decodiert. Ich habe während der
frühen Überprüfungsperiode des
PnP-Vorschlags eine echte IBM Druckerkarte gefunden, die
Schreibzugriffe auf dem Statusport decodiert hat, aber MS
hat nur tough gesagt. Also schreiben sie
auf den Druckerstatusport, um Adressen zu setzen, benutzen
zusätzlich diese Adresse + 0x800
und einen dritten I/O-Port zum Lesen, der irgendwo
zwischen 0x200 und
0x3ff liegen kann.Wie bekommen ich eine major number für einen
Gerätetreiber, den ich geschrieben habe?Das hängt davon ab, ob Sie beabsichtigen, den
Treiber frei verfügbar zu machen, oder nicht. Falls
dem so ist, senden Sie uns bitte eine Kopie der
Treiber-Sourcen und zusätzlich die entsprechenden
Änderungen der Datei files.i386,
ein Beispiel für einen Eintrag in der
Konfigurationsdatei und den entsprechenden Code für
&man.MAKEDEV.8; um spezielle Geräte zu erstellen, die
Ihr Gerät benutzt. Falls Sie nicht beabsichtigen,
den Treiber frei verfügbar zu machen, oder es
aufgrund von Lizenzbeschränkungen nicht können,
dann ist die major number 32 für zeichenorientierte
und die major number 8 für blockorientierte
Geräte speziell für diesen Zweck reserviert. In
jedem Fall würden wir uns freuen, auf der Mailingliste
&a.hackers; etwas über Ihren neuen Treiber zu
hören.Gibt es alternative Layoutverfahren für
Verzeichnisse?Als Antwort auf die Frage nach alternativen
Layoutverfahren für Verzeichnisse ist das Schema, das
derzeit benutzt wird, unverändert von dem, das ich
1983 geschrieben habe. Ich habe das Vorgehen für das
originale Fast-Filesystem geschrieben und es niemals
überarbeitet. Es funktioniert gut, wenn es darum
geht, zu verhindern, daß Zylindergruppen volllaufen.
Wie viele von Ihnen angemerkt haben, funktioniert es
schlecht für find. Die meisten Dateisysteme werden
von Archiven erstellt, die mit einer Tiefensuche (also
ftw) erstellt wurden. Diese Verzeichnisse werden
über die Zylindergruppen hinweg entfaltet und
erzeugen denkbar ungünstigste Voraussetzungen
für zukünftige Tiefensuchen. Falls man die
Gesamtzahl der zu erstellenden Verzeichnisse wüsste,
wäre die Lösung die, (gesamt / fs_ncg) pro
Zylindergruppe zu erstellen, bevor fortgefahren wird.
Offensichtlich müßte man eine Heuristik
erstellen, um die Zahl zu schätzen. Sogar die
Benutzung einer kleinen, fixen Zahl, z.B. 10, würde
eine Verbesserung um Größenordnungen ausmachen.
Um Wiederherstellungen von normalem Betrieb (wo der
derzeitige Algorithmus vermutlich sinnvoller ist) zu
unterscheiden, könnten Sie die Clusterung von bis zu
10 benutzen, wenn sie alle innerhalb eines
10-Sekunden-Fensters durchgeführt würden.
Jedenfalls ist mein Schluss, daß dies ein
fruchtbares Gebiet für Experimente ist.Kirk McKusick, September 1998Wie kann ich optimalen Nutzen aus einer kernel panic
ziehen?[Dieser Abschnitt wurde von &a.des;, der
einige Tippfehler korrigiert und die Kommentare in eckigen
Klammern hinzugefügt hat, aus einer Mail von
&a.wpaul; in der Mailingliste freebsd-current
entnommen.]
From: Bill Paul <wpaul@skynet.ctr.columbia.edu>
Subject: Re: the fs fun never stops
To: Ben Rosengart
Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
Cc: current@FreeBSD.org
[<Ben Rosengart> sendete die
folgende Panik-Meldung]
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0x40
> fault code = supervisor read, page not present
> instruction pointer = 0x8:0xf014a7e5
^^^^^^^^^^
> stack pointer = 0x10:0xf4ed6f24
> frame pointer = 0x10:0xf4ed6f28
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 80 (mount)
> interrupt mask =
> trap number = 12
> panic: page fault
[Wenn] Sie eine Meldung wie diese sehen, reicht es
nicht, sie einfach zu reproduzieren und sie einzusenden.
Der Wert des Instruktionszeigers, den ich oben
hervorgehoben habe, ist wichtig; leider ist er auch
konfigurationsabhängig. Mit anderen Worten variieren
die Werte abhängig von dem Kernel-Image, das Sie
tatsächlich benutzen. Wenn Sie ein GENERIC
Kernelimage von einem der Snapshots benutzen, dann ist es
für jemand anderen möglich, die fehlerhafte
Instruktion herauszufinden, aber wenn Sie einen
angepaßten Kernel benutzen, können nur
Sie uns sagen, wo der Fehler
auftrat.Was Sie tun sollten, ist folgendes:Notieren Sie sich den Wert des
Instruktionszeigers. Beachten Sie, daß der Teil
0x8: am Anfang in diesem Fall nicht
von Bedeutung ist; der Teil
0xf0xxxxxx ist der, den wir
wollen.Tun Sie folgendes, wenn das System
rebootet:&prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxxxwobei 0xf0xxxxxx der Wert des
Instruktionszeigers ist. Es besteht die
Möglichkeit, daß Sie keinen exakten Treffer
erzielen, weil die Symbole in der Symboltabelle des
Kernels Funktionseinstiegspunkte sind und die Adresse
des Instruktionszeiger irgendwo innerhalb einer
Funktion liegen wird und nicht am Anfang. Falls sie
keinen exakten Treffer erzielen, lassen Sie den
letzten Teil des Werts des Instruktionszeigers weg und
versuchen es nocheinmal, z.B.:&prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxxFalls das kein Ergebnis liefert, hacken Sie eine
weitere Ziffer ab. Wiederholen Sie die Schritte, bis
Sie irgendeine Ausgabe erhalten. Das Ergebnis wird
eine Liste möglicher Funktionen sein, die die
Panik verursacht haben. Das ist zwar kein absolut
genauer Mechanismus, um die Fehlerursache ausfindig zu
machen, aber es ist besser als gar nichts.Ich sehe ständig Leute, die Panik-Meldungen wie
diese zeigen, aber ich sehe kaum jemanden, der sich die
Zeit nimmt, den Instruktionszeiger einer Funktion aus der
Symboltabelle des Kernel zuzuordnen.Der beste Weg, den Grund für eine Panik
herauszufinden, ist der, einen Crash-Dump festzuhalten und
dann &man.gdb.1; zu benutzen, um den Stack im Crash-Dump
zurückzuverfolgen.Jedenfalls ist die Methode, die ich normalerweise
benutze, folgende:Richten Sie eine Kernelkonfigurationsdatei ein,
fügen Sie optional options DDB
hinzu, falls Sie glauben, daß Sie den
Kerneldebugger benötigen. (Ich benutze ihn
hauptsächlich zum Setzen von Haltepunkten, wenn
ich eine Endlosschleife irgendeiner Art
vermute.)Benutzen Sie config -g
KERNELCONFIG, um
das Erstellungsverzeichnis einzurichten.cd
/sys/compile/KERNELCONFIG;
makeWarten Sie, bis der Kernel fertig kompiliert
ist.make installrebootDer &man.make.1;-Prozeß wird zwei Kernel
erstellt haben: kernel und
kernel.debug.
kernel wurde als
/kernel installiert, während
kernel.debug als Quelle für
Debuggersymbole für &man.gdb.1; benutzt werden
kann.Um sicherzustellen, daß ein Crash-Dump erhalten
bleibt, müssen Sie
/etc/rc.config editieren und
dumpdev so setzen, daß es auf
Ihre Swap-Partition zeigt. Das bewirkt, daß die
&man.rc.8;-Skripte den Befehl &man.dumpon.8; benutzen, um
Crash-Dumps zu ermöglichen. Sie können
&man.dumpon.8; auch manuell ausführen. Nach einer
Panik kann der Crash-Dump mit &man.savecore.8;
wiederhergestellt werden; wenn dumpdev
in /etc/rc.conf gesetzt ist, werden
die &man.rc.8;-Skripte &man.savecore.8; automatisch
ausführen und den Crash-Dump unter
/var/crash ablegen.Crash-Dumps von FreeBSD sind für
gewöhnlich genauso groß wie der physikalische
Hauptspeicher Ihres Rechners. Das heißt, wenn Sie 64MB RAM
haben, werden sie einen 64MB Crash-Dump erhalten.
Deshalb müssen Sie dafür sorgen, daß
genügend Speicherplatz in
/var/crash zur Verfügung
steht, um den Dump aufnehmen zu können. Alternativ
führen Sie &man.savecore.8; manuell aus und lassen
es den Crash-Dump in einem anderen Verzeichnis
wiederherstellen, in dem Sie mehr Platz haben. Es ist
möglich, die Größe des Crash-Dumps zu
begrenzen, indem options MAXMEM=(foo)
benutzt wird, um den Speicher, den der Kernel benutzt,
auf einen etwas vernünftigeren Wert zu setzen.
Wenn Sie z.B. 128MB RAM haben, können Sie die
Speicherbenutzung des Kernels auf 16MB begrenzen, so
daß die Größe Ihres Crash-Dumps 16MB
anstatt 128MB beträgen wird.Wenn Sie den Crash-Dump wiederhergestellt haben,
können Sie den Stack mit &man.gdb.1; so
zurückverfolgen:&prompt.user; gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0(gdb)whereBeachten Sie, daß es mehrere Seiten mit
wertvollen Informationen geben könnte; idealerweise
sollten Sie &man.script.1; benutzen, um sie alle
festzuhalten. Wenn Sie das vollständige Kernelimage
mit allen Debugginginformationen benutzen,
müßten Sie exakt die Zeile des
Kernel-Sourcecodes finden, wo die Panik aufgetreten ist.
Für gewöhnlich müssen Sie den Stack von
unten an zurückverfolgen, um die genaue
Ereignisabfolge, die zum Crash führte,
zurückzuverfolgen. Sie können &man.gdb.1; auch
zum Ausdrucken der Inhalte verschiedener Variablen oder
Strukturen benutzen, um den Systemstatus zum Zeitpunkt des
Absturzes zu untersuchen.Wenn Sie nun wirklich verrückt sind und einen
zweiten Computer haben, können Sie &man.gdb.1; auch
für entferntes Debugging konfigurieren, so daß
Sie &man.gdb.1; auf einem System benutzen können, um
den Kernel auf einem anderen System zu debuggen,
einschließlich dem Setzen von Haltepunkten und dem
Bewegen in Einzelschritten durch den Kernelcode, genauso,
wie Sie es mit einem normalen Benutzerprogramm tun
können. Ich habe noch nicht damit gespielt weil ich
nicht oft Gelegenheit habe, zwei Rechner nebeneinander
für Debuggingzwecke einzurichten.[Bill hat hinzugefügt: "Ich
vergaß, etwas zu erwähnen: wenn Sie DDB
aktiviert haben und der Kernel im Debugger landet,
können Sie eine Panik (und einen Crash-Dump)
erzwingen, indem Sie einfach 'panic' am ddb-Prompt
eingeben. Er könnte während der Panikphase
wieder im Debugger stoppen. Falls er das tut, geben Sie
'continue' ein, dann wird er den Crash-Dump beenden."
-ed]Wieso funktioniert dlsym() nicht mehr für
ELF-Executables?Die ELF-Werkzeuge machen die in einem Executable
definierten Symbole dem dynamischen Linker nicht
standardmäßig sichtbar. Konsequenterweise
werden dlsym()-Suchen nach Handlern
aus Aufrufen von dlopen(NULL, flags)
diese Symbole nicht finden können.Wenn Sie mit dlsym() nach im
Hauptexecutable eines Prozesses vorhandenen Symbolen
suchen wollen, müssen Sie das Executable mit der
Option von &man.ld.1;
linken.Wie kann ich den Adreßraum des Kernels
vergrössern oder verkleinern?Standardmäßig beträgt der
Adreßraum des Kernels 256MB (FreeBSD 3.X) bzw. 1 GB
(FreeBSD 4.X). Wenn Sie einen netzwerkintensiven Server
(z.B. einen großen FTP- oder HTTP-Server) betreiben,
kann es sein, daß Sie der Meinung sind, daß
256MB nicht ausreichen.Wie also erhöhen Sie den Adreßraum? Hier
gibt es zwei Aspekte. Erstens müssen Sie dem Kernel
sagen, daß er einen größeren Anteil des
Adreßraums für sich selbst reservieren soll.
Da der Kernel am oberen Ende des Adreßraums geladen
wird, müssen Sie zweitens die Ladeadresse verringern,
damit er mit dem Kopf nicht gegen die Obergrenze
stößt.Das erste Ziel erreicht man, indem man den Wert von
NKPDE in
src/sys/i386/include/pmap.h
erhöht. Für einen Adreßraum von 1 GB
sieht das so aus:
#ifndef NKPDE
#ifdef SMP
#define NKPDE 254 /* addressable number of page tables/pde's */
#else
#define NKPDE 255 /* addressable number of page tables/pde's */
#endif /* SMP */
#endif
Dividieren Sie die gewünschte
Adreßraumgröße (in Megabyte) durch vier
und subtrahieren Sie dann eins für UP und zwei
für SMP, um den korrekten Wert für
NKPDE zu finden.Um das zweite Ziel zu erreichen müssen Sie die
korrekte Ladeadresse berechnen: subtrahieren Sie einfach
die Größe des Adreßraums (in Byte) von
0x100100000; für einen Adreßraum von 1 GB
lautet das Ergebnis 0xc0100000. Setzen Sie
LOAD_ADDRESS in
src/sys/i386/conf/Makefile.i386 auf
diesen Wert; setzen Sie dann den Location-Counter am
Anfang der Abschnittsliste in
src/sys/i386/conf/kernel.script auf
denselben Wert:
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(btext)
SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib);
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0xc0100000 + SIZEOF_HEADERS;
.interp : { *(.interp) }
Konfigurieren und erstellen Sie Ihren Kernel dann neu.
Sie werden vermutlich Probleme mit &man.ps.1;, &man.top.1;
und ähnlichen Programmen haben. Ein make
world sollte diese beheben; alternativ
können Sie die gepatchte pmap.h
in das Verzeichnis /usr/include/vm
kopieren und danach libkvm,
&man.ps.1; und &man.top.1; neu erzeugen.Hinweis: die Größe des
Kernel-Adreßraums muß ein Vielfaches von vier
Megabyte betragen.[&a.dg; fügt hinzu: Ich glaube, der
Kerneladreßraum muß eine Zweierpotenz sein,
aber ich bin mir dessen nicht sicher. Der alte
(ältere) Bootcode pflegte die oberen Adreßbits
zu mißbrauchen und ich glaube, er erwartete
mindestens 256MB Granularität.]Danksagung
FreeBSD Core TeamFalls Sie ein Problem in dieser FAQ entdecken, oder einen
Eintrag einsenden möchten, senden Sie uns bitte eine Mail
an &a.de.translators; Wir schätzen Ihr Feedback und können
diese FAQ ohne Ihre Hilfe nicht verbessern!
Originalversion&a.jkh;Gelegentliche Anpassungen von Umstrukturierungen der
FAQ und Aktualisierung.&a.dwhite;Dienste über Pflichtbesuche in freebsd-questions
hinaus&a.joerg;Dienste über Pflichtbesuche im Usenet
hinaus&a.wollman;Netzwerke und FormatierungJim LoweMulticast-Informationen&a.pds;Schreibmaschinenknecht der FreeBSD-FAQDas FreeBSD-TeamNörgeln, Stöhnen, Einsenden von
DatenFolgende Personen haben durch die Beantwortung von Fragen,
sowie durch Hinweise und Kommentare an der Entstehung der
deutschen Übersetzung mitgewirkt:Ross Alexander&a.jhb;&a.nik;Glen FosterOliver FrommeFrank GruenderChris HillJames Howard&a.jkh;&a.alex;&a.jmas;Mike MeyerDan O'ConnorEric Ogren&a.de.pierau;Oliver SchneiderChristoph SoldUnd an alle anderen, an die wir nicht gedacht haben.
Entschuldigung und herzlichen Dank!
&bibliography;
diff --git a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
index 9d835d15ea..adb5e97fac 100644
--- a/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
@@ -1,2016 +1,2016 @@
JohannKoisÜbersetzt von Weiterführende NetzwerkthemenÜbersichtDieses Kapitel beschreibt einige der häufiger
verwendeten Netzwerkdienste auf UNIX-Systemen. Es wird
beschrieben, wie die von FreeBSD verwendeten Netzwerkdienste
installiert, getestet und gewartet werden. Zusätzlich sind
im ganzen Kapitel Beispielkonfigurationsdateien vorhanden, von
denen Sie sicherlich profitieren werden.Nachdem Sie dieses Kapitel gelesen haben, werden SieDie Grundlagen von Gateways und Routen kennen.Eine Bridge unter FreeBSD einrichten können.Ein Netzwerkdateisystem (NFS) einrichten können.Einen plattenlosen Rechner über das Netzwerk starten
können.Einen Netzwerkinformationsserver (NIS) für gemeinsame
Benutzerkonten einrichten können.Automatische Netzwerkeinstellungen mittels DHCP vornehmen
können.Einen Domain Name Server (DNS) einrichten können.Unter Verwendung des NTP-Protokolls Uhrzeit und Datum
synchronisieren, sowie einen Zeitserver einrichten können.Wissen, wie man NAT (Network Address Translation)
einrichtet.In der Lage sein, den inetd-Daemon
einzurichten.Zwei Computer über PLIP verbinden können.IPv6 auf einem FreeBSD-Rechner einrichten können.Bevor Sie dieses Kapitel lesen, sollten SieDie Grundlagen der /etc/rc-Skripte
verstanden haben.Mit der grundlegenden Netzwerkterminologie vertraut
sein.CoranthGryphonBeigetragen von Gateways und RoutenRoutingGatewaySubnetzDamit ein Rechner einen anderen über ein Netzwerk
finden kann, muss ein Mechanismus vorhanden sein, der
beschreibt, wie man von einem Rechner zum anderen gelangt.
Dieser Vorgang wird als Routing
bezeichnet. Eine Route besteht aus einem
definierten Adressenpaar: Einem Ziel und einem
Gateway. Dieses Paar zeigt an, dass Sie
über den Gateway zum
Ziel gelangen wollen. Es gibt drei Arten
von Zielen: Einzelne Rechner (Hosts), Subnetze und das
Standardziel. Die Standardroute
wird verwendet, wenn keine andere Route zutrifft. Wir werden
Standardrouten später etwas genauer behandeln. Außerdem
gibt es drei Arten von Gateways: Einzelne Rechner (Hosts),
Schnittstellen (Interfaces, auch als Links
bezeichnet), sowie Ethernet Hardware-Adressen (MAC
Adressen).Ein BeispielUm die verschiedenen Aspekte des Routings zu
veranschaulichen, verwenden wir folgende Ausgaben von
netstat:&prompt.user; netstat -r
Routing tables
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGSc 37 418 ppp0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0
Default-RouteStandardrouteDie ersten zwei Zeilen geben die Standardroute (die wir
im nächsten
Abschnitt behandeln), sowie die
localhost Route an.Loopback-GerätDas in der Routingtabelle für
localhost festgelegte Interface
(Netif-Spalte)
lo0, ist auch als loopback-Gerät
(Prüfschleife) bekannt. Das heißt, dass der ganze
Datenverkehr für dieses Ziel intern (innerhalb des
Gerätes) bleibt, anstatt ihn über ein Netzwerk (LAN)
zu versenden, da das Ziel dem Start entspricht.EthernetMAC-AdresseDer nächste auffällige Punkt sind die mit
0:e0: beginnenden Adressen. Es
handelt sich dabei um Ethernet Hardwareadressen, die auch als
MAC-Adressen bekannt sind. FreeBSD identifiziert Rechner im
lokalen Netz automatisch (im Beispiel test0)
und fügt eine direkte Route zu diesem Rechner hinzu. Dies
passiert über die Ethernet Schnittstelle
ed0. Außerdem existiert ein Timeout
(in der Spalte Expire) für diese Art
von Routen, der verwendet wird, wenn dieser Rechner in einem
definierten Zeitraum nicht reagiert. Wenn dies passiert, wird
die Route zu diesem Rechner automatisch gelöscht.
Rechner im lokalen Netz werden durch einen als RIP (Routing
Information Protocol) bezeichneten Mechanismus identifiziert,
der den kürzesten Weg zu den jeweiligen Rechnern
bestimmt.SubnetzFreeBSD fügt außerdem Subnetzrouten für das
lokale Subnetz hinzu (10.20.30.255 ist die Broadcast-Adresse
für das Subnetz 10.20.30,
example.com ist der zu
diesem Subnetz gehörige Domainname). Das Ziel
link#1 bezieht sich auf die erste
Ethernet-Karte im Rechner. Sie können auch feststellen,
dass keine zusätzlichen Schnittstellen angegeben
sind.Routen für Rechner im lokalen Netz und lokale
Subnetze werden automatisch durch den
routed Daemon konfiguriert. Ist
dieser nicht gestartet, sind nur statisch definierte
(explizit eingegebene) Routen vorhanden.Die Zeile host1 bezieht sich auf
unseren Rechner, der durch seine Ethernetadresse bekannt ist.
Da unser Rechner der Sender ist, verwendet FreeBSD automatisch
das Loopback-Gerät (lo0),
anstatt den Datenverkehr über die Ethernetschnittstelle
zu senden.Die zwei host2 Zeilen sind ein Beispiel
dafür, was passiert, wenn wir ein &man.ifconfig.8; Alias
verwenden (Lesen Sie dazu den Abschnitt über Ethernet,
wenn Sie wissen wollen, warum wir das tun sollten.). Das
Symbol => (nach der
lo0 Schnittstelle) sagt aus, dass wir
nicht nur das Loopbackgerät verwenden (da sich die
Adresse auf den lokalen Rechner bezieht), sondern dass es sich
zusätzlich auch um ein Alias handelt. Solche Routen sind
nur auf Rechnern vorhanden, die den Alias bereitstellen;
alle anderen Rechner im lokalen Netz haben für solche
Routen nur eine einfache link#1
Zeile.Die letzte Zeile (Ziel Subnetz 224)
behandelt das Multicasting, das wir in einem anderen Abschnitt
besprechen werden.Schließlich gibt es für Routen noch
verschiedene Attribute, die Sie in der Spalte
Flags finden. Nachfolgend finden Sie eine
kurze Übersicht von einigen dieser Flags und ihrer
Bedeutung:UUp: Die Route ist aktiv.HHost: Das Ziel der Route ist ein einzelner
Rechner (Host).GGateway: Alle Daten, die an dieses Ziel gesendet
werden, werden von diesem System an ihr jeweiliges
Ziel weitergeleitet.SStatic: Diese Route wurde manuell konfiguriert,
das heißt sie wurde nicht
automatisch vom System erzeugt.CClone: Erzeugt eine neue Route, basierend auf der
Route für den Rechner, mit dem wir uns verbinden.
Diese Routenart wird normalerweise für lokale
Netzwerke verwendet.WWasCloned: Eine Route, die automatisch
konfiguriert wurde. Sie basiert auf einer lokalen
Netzwerkroute (Clone).LLink: Die Route beinhaltet einen Verweis auf eine
Ethernetkarte (MAC-Adresse).StandardroutenDefault-RouteStandardrouteWenn sich der lokale Rechner mit einem entfernten Rechner
verbinden will, wird die Routingtabelle überprüft,
um festzustellen, ob bereits ein bekannter Pfad vorhanden ist.
Gehört dieser entfernte Rechner zu einem Subnetz, dessen
Pfad uns bereits bekannt ist (Cloned route), dann versucht der
lokale Rechner über diese Schnittstelle eine Verbindung
herzustellen.Wenn alle bekannten Pfade nicht funktionieren, hat der
lokale Rechner eine letzte Möglichkeit: Die
Standardroute (Default-Route). Bei dieser
Route handelt es sich um eine spezielle Gateway-Route
(gewöhnlich die einzige im System vorhandene), die im
Flags-Feld immer mit C gekennzeichnet ist.
Für Rechner im lokalen Netzwerk ist dieser Gateway auf
welcher Rechner auch immer eine Verbindung nach
außen hat gesetzt (entweder über eine
PPP-Verbindung, DSL, ein Kabelmodem, T1 oder eine beliebige
andere Netzwerkverbindung).Wenn Sie die Standardroute für einen Rechner
konfigurieren, der selbst als Gateway zur Außenwelt
funktioniert, wird die Standardroute zum Gateway-Rechner Ihres
Internetanbieter (ISP) gesetzt.Sehen wir uns ein Beispiel für Standardrouten an. So
sieht eine übliche Konfiguration aus:
[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
Die Rechner Local1 und
Local2 befinden sich auf Ihrer Seite.
Local1 ist mit einem ISP über eine
PPP-Verbindung verbunden. Dieser PPP-Server ist über ein
lokales Netzwerk mit einem anderen Gateway-Rechner verbunden,
der über eine Schnittstelle die Verbindung des ISP zum
Internet herstellt.Die Standardrouten für Ihre Maschinen lauten:HostStandard GatewaySchnittstelleLocal2Local1EthernetLocal1T1-GWPPPEine häufig gestellte Frage lautet: Warum (oder wie)
sollten wir T1-GW als Standard-Gateway
für Local1 setzen,
statt den (direkt verbundenen) ISP-Server zu
verwenden?.Bedenken Sie, dass die PPP-Schnittstelle für die
Verbindung eine Adresse des lokalen Netzes des ISP verwendet.
Daher werden Routen für alle anderen Rechner im lokalen
Netz des ISP automatisch erzeugt. Daraus folgt, dass Sie
bereits wissen, wie Sie T1-GW erreichen
können! Es ist also unnötig, einen Zwischenschritt
über den ISP-Server zu machen.Es ist üblich, die Adresse X.X.X.1 als Gateway-Adresse für
ihr lokales Netzwerk zu verwenden. Für unser Beispiel
bedeutet dies Folgendes: Wenn Ihr lokaler Klasse-C-Adressraum
10.20.30 ist und Ihr ISP
10.9.9 verwendet, sehen die
Standardrouten so aus:Rechner (Host)StandardrouteLocal2 (10.20.30.2)Local1 (10.20.30.1)Local1 (10.20.30.1, 10.9.9.30)T1-GW (10.9.9.1)Rechner mit zwei HeimatnetzenDual-Homed-HostsEs gibt noch eine Konfigurationsmöglichkeit, die wir
besprechen sollten, und zwar Rechner, die sich in zwei
Netzwerken befinden. Technisch gesehen, zählt jeder als
Gateway arbeitende Rechner zu den Rechnern mit zwei
Heimatnetzen (im obigen Beispiel unter Verwendung einer
PPP-Verbindung). In der Praxis meint man damit allerdings nur
Rechner, die sich in zwei lokalen Netzen befinden.Entweder verfügt der Rechner über zwei
Ethernetkarten und jede dieser Karten hat eine Adresse in
einem separaten Subnetz, oder der Rechner hat nur eine
Ethernetkarte und verwendet &man.ifconfig.8; Aliasing. Die
erste Möglichkeit wird verwendet, wenn zwei physikalisch
getrennte Ethernet-Netzwerke vorhanden sind, die zweite, wenn
es nur ein physikalisches Ethernet-Netzwerk gibt, das aber aus
zwei logisch getrennten Subnetzen besteht.In beiden Fällen werden Routingtabellen erstellt,
damit jedes Subnetz weiß, dass dieser Rechner als Gateway zum
anderen Subnetz arbeitet (inbound
route). Diese Konfiguration
(der Gateway-Rechner arbeitet als Router zwischen den
Subnetzen) wird häufig verwendet, wenn es darum geht,
Paketfilterung oder eine Firewall (in eine oder beide
Richtungen) zu implementieren.Wenn Sie möchten, dass dieser Rechner Pakete zwischen
den beiden Schnittstellen weiterleitet, müssen Sie diese
Funktion manuell konfigurieren und aktivieren.Einen Router konfigurierenRouterEin Netzwerkrouter ist einfach ein System, das Pakete von
einer Schnittstelle zur anderen weiterleitet.
Internetstandards und gute Ingenieurspraxis sorgten
dafür, dass diese Funktion in FreeBSD per Voreinstellung
deaktiviert ist. Sie können diese Funktion aktivieren,
indem Sie in &man.rc.conf.5; folgende Änderung
durchführen:gateway_enable=YES # Auf YES setzen, wenn der Rechner als Gateway arbeiten sollDiese Option setzt die &man.sysctl.8;-Variable
net.inet.ip.forwarding auf
1. Wenn Sie das Routing kurzzeitig
unterbrechen wollen, können Sie die Variable auf
0 setzen.Ihr neuer Router benötigt nun noch Routen, um zu
wissen, wohin er den Verkehr senden soll. Haben Sie ein
(sehr) einfaches Netzwerk, können Sie statische Routen
verwenden. FreeBSD verfügt über den Standard
BSD-Routing-Daemon &man.routed.8;, der RIP (sowohl Version 1
als auch Version 2) und IRDP versteht. Für komplexere
Situationen sollen Sie sich net/gated näher
ansehen.Selbst wenn FreeBSD auf diese Art konfiguriert wurde,
entspricht es den Standardanforderungen an Internet-Router
nicht vollständig. Für den
normalen Gebrauch kommt es den Standards
aber nahe genug.Verteilung von Routing-Informationenrouting propagationWir haben bereits darüber gesprochen, wie wir unsere
Routen zur Außenwelt definieren, aber nicht darüber, wie
die Außenwelt uns finden kann.Wir wissen bereits, dass Routing-Tabellen so erstellt
werden können, dass sämtlicher Verkehr für
einen bestimmten Adressraum (in unserem Beispiel ein
Klasse-C-Subnetz) zu einem bestimmten Rechner in diesem
Netzwerk gesendet wird, der die eingehenden Pakete im Subnetz
verteilt.Wenn Sie einen Adressraum für Ihre Seite zugewiesen
bekommen, richtet Ihr Diensteanbieter seine Routingtabellen so
ein, dass der ganze Verkehr für Ihr Subnetz entlang Ihrer
PPP-Verbindung zu Ihrer Seite gesendet wird. Aber woher
wissen die Seiten in der Außenwelt, dass sie die Daten an
Ihren ISP senden sollen?Es gibt ein System (ähnlich dem verbreiteten DNS),
das alle zugewiesenen Adressräume verwaltet und ihre
Verbindung zum Internet-Backbone definiert und dokumentiert.
Der Backbone ist das Netz aus
Hauptverbindungen, die den Internetverkehr in der ganzen Welt
transportieren und verteilen. Jeder Backbone-Rechner
verfügt über eine Kopie von Haupttabellen, die den
Verkehr für ein bestimmtes Netzwerk über
hierarchisch vom Backbone über eine Kette von
Diensteanbietern bis hin zu Ihrer Seite leiten.Es ist die Aufgabe Ihres Diensteanbieters, den
Backbone-Seiten mitzuteilen, dass sie mit Ihrer Seite
verbunden wurden. Durch diese Mitteilung der Route ist nun
auch der Weg zu Ihnen bekannt. Dieser Vorgang wird als
Bekanntmachung von Routen
(routing propagation)
bezeichnet.ProblembehebungtracerouteManchmal kommt es zu Problemen bei der Bekanntmachung von
Routen, und einige Seiten sind nicht in der Lage, Sie zu
erreichen. Vielleicht der nützlichste Befehl, um
festzustellen, wo das Routing nicht funktioniert, ist
&man.traceroute.8;. Er ist außerdem sehr nützlich, wenn
Sie einen entfernten Rechner nicht erreichen können
(sehen Sie dazu auch &man.ping.8;).&man.traceroute.8; wird mit dem zu erreichenden Rechner
(Host) ausgeführt. Angezeigt werden die Gateway-Rechner
entlang des Verbindungspfades. Schließlich wird der
Zielrechner erreicht oder es kommt zu einem Verbindungsabbruch
(beispielsweise durch Nichterreichbarkeit eines
Gateway-Rechners).Für weitere Informationen lesen Sie bitte die
Dokumentation zu &man.traceroute.8;.EricAndersonGeschrieben von Drahtlose Netzwerkedrahtlose Netzwerke802.11drahtlose NetzwerkeEinführungEs kann sehr nützlich sein, einen Computer zu
verwenden, ohne sich die ganze Zeit mit einem Netzwerkkabel
herumärgern zu müssen. FreeBSD kann auf drahtlose
Netzwerke (wireless LAN)
zugreifen und sogar als Zugangspunkt
(access point) für
drahtlose Netzwerke verwendet werden.Wireless backgroundDrahtlose Geräte können in zwei Modi konfiguriert
werden: BSS und IBSS.BSS-ModusÜberlicherweise wird der BSS-Modus, der auch
Infrastruktur-Modus genannt wird, verwendet. In diesem Modus
sind die Zugangspunkte (access
points mit einem Kabel-Netzwerk verbunden. Jedes
drahtlose Netzwerk besitzt einen Namen, der als die SSID des
Netzwerks bezeichnet wird.Drahtlose Clients benutzen ein im IEEE-802.11-Standard
beschriebenes Protokoll, um sich mit den Zugangspunkten zu
verbinden. Durch die Angabe einer SSID kann sich der Client das
Netzwerk, mit dem er sich verbinden will, aussuchen. Gibt der
Client keine SSID an, so wird er mit irgendeinem Netzwerk
verbunden.IBSS-ModusDer IBSS-Modus, der auch ad-hoc-Modus genannt wird, wurde
für Punkt-zu-Punkt-Verbindungen entworfen. Tatsächlich
gibt es zwei Modi: Der IBSS-Modus, auch ad-hoc- oder
IEEE-ad-hoc-Modus, der im IEEE-802.11-Standard definiert wird
und der demo-ad-hoc-Modus oder Lucent-adhoc-Modus (der zur
Verwirrung auch schon mal ad-hoc-Modus genannt wird). Der letzte
Modus stammt aus der Zeit vor IEEE 802.11 und sollte nur noch
mit alten Installationen verwendet werden.Infrastruktur-ModusZugangspunkteZugangspunkte sind drahtlose Netzwerkgeräte, die es
einem oder mehreren Clients ermöglichen, diesen als
einen zentralen Verteiler (Hub) zu benutzen. Wenn ein
Zugangspunkt verwendet wird, kommunizieren alle Clients
über diesen Zugangspunkt. Oft werden mehrere
Zugangspunkte kombiniert, um ein ganzes Gebiet, wie ein
Haus, ein Unternehmen oder einen Park mit einem drahtlosen
Netzwerk zu versorgen.Üblicherweise haben Zugangspunkte mehrere
Netzwerkverbindungen: Die drahtlose Karte, sowie eine oder
mehrere Ethernetkarten, über die die Verbindung mit dem
restlichen Netzwerk hergestellt wird.Sie können einen vorkonfigurierten Zugangspunkt
kaufen, oder Sie können sich unter Verwendung von
FreeBSD und einer unterstützten drahtlosen Karte einen
eigenen bauen. Es gibt verschiedene Hersteller, die sowohl
Zugangspunkte als auch drahtlose Karten mit verschiedensten
Eigenschaften vertreiben.Einen FreeBSD Zugangspunkt installierendrahtlose NetzwerkeZugangspunkteVoraussetzungenUm einen drahtlosen Zugangspunkt unter FreeBSD
einzurichten, müssen Sie über eine drahtlose
Karte verfügen. Zurzeit werden dafür von
FreeBSD nur Karten mit Prism-Chipsatz unterstützt.
Zusätzlich benötigen Sie eine von FreeBSD
unterstützte Ethernetkarte (diese sollte nicht schwer
zu finden sein, da FreeBSD eine Vielzahl von verschiedenen
Karten unterstützt). Für die weiteren
Erläuterungen nehmen wir an, dass Sie den ganzen
Verkehr zwischen dem drahtlosen Gerät und dem an die
Ethernetkarte angeschlossenen Kabel-Netzwerk über
die &man.bridge.4;-Funktion realisieren wollen.Die hostap-Funktion, mit der FreeBSD Zugangspunkte
implementiert, läuft am besten mit bestimmten
Firmware-Versionen. Prism 2-Karten sollten die
Version 1.3.4 oder neuer der Firmware verwenden.
Prism 2.5- und Prism 3-Karten sollten die
Version 1.4.9 der Firmware verwenden. Es kann sein, dass
auch ältere Versionen funktionieren. Zurzeit ist es nur
mit Windows-Werkzeugen der Hersteller möglich, die Firmware
zu aktualisieren.EinrichtungStellen Sie als erstes sicher, dass Ihr System die
drahtlose Karte erkennt:&prompt.root; ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1Kümmern Sie sich jetzt noch nicht um die Details,
sondern stellen Sie nur sicher, dass ihre drahtlose Karte
überhaupt erkannt und angezeigt wird.Danach müssen Sie ein Modul laden, um die
Bridge-Funktion von FreeBSD für den Zugangspunkt
vorzubereiten. Um das &man.bridge.4;-Modul zu laden,
machen Sie Folgendes:&prompt.root; kldload bridgeDabei sollten beim Laden des Moduls keine
Fehlermeldungen auftreten. Geschieht dies doch, kann es
sein, dass Sie die Bridge-Funktion (&man.bridge.4;)
in Ihren Kernel kompilieren müssen. Der Abschnitt
LAN-Kopplung mit einer Bridge
sollte Ihnen bei dieser Aufgabe behilflich sein.Wenn die Bridge-Funktion aktiviert ist,
müssen wir FreeBSD mitteilen, welche Schnittstellen
über die Bridge verbunden werden sollen. Dazu
verwenden wir &man.sysctl.8;:&prompt.root; sysctl net.link.ether.bridge=1
&prompt.root; sysctl net.link.ether.bridge_cfg="wi0 xl0"
&prompt.root; sysctl net.inet.ip.forwarding=1Nun ist es an der Zeit, die drahtlose Karte zu
installieren.Der folgende Befehl konfiguriert einen Zugangspunkt:&prompt.root; ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"Die &man.ifconfig.8; Zeile aktiviert das
wi0-Gerät, und setzt die
SSID auf my_net sowie den Namen des
Zugangspunkts auf FreeBSD AP
Mit wird die Karte in den
11 Mbps-Modus versetzt. Diese Option ist nötig,
damit -Optionen wirksam werden. Mit
wird die Schnittstelle als
Zugangspunkt konfiguriert. Der zu benutzende 802.11b-Kanal
wird mit festgelegt. In der
Hilfeseite &man.wicontrol.8; werden weitere Kanäle
aufgezählt.Nun sollten Sie über einen voll
funktionsfähigen und laufenden Zugangspunkt
verfügen. Für weitere Informationen lesen Sie
bitte die Dokumentationen zu &man.wicontrol.8;,
&man.ifconfig.8; und &man.wi.4;.Außerdem ist es empfehlenswert, den folgenden
Abschnitt zu lesen, um sich über die Sicherung bzw.
Verschlüsselung von Zugangspunkten zu
informieren.Status InformationenWenn der Zugangspunkt eingerichtet ist und läuft,
können Sie die verbundenen Clients mit dem nachstehenden
Kommando abfragen:&prompt.root; wicontrol -l
1 station:
00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15
Das Beispiel zeigt eine verbundene Station und die
dazugehörenden Verbindungsparameter. Die angegebene
Signalstärke sollte nur relativ interpretiert werden, da
die Umrechnung in dBm oder andere Einheiten abhängig von
der Firmware-Version ist.ClientsEin drahtloser Client ist ein System, das direkt auf
einen Zugangspunkt oder einen anderen Client
zugreift.Üblicherweise haben drahtlose Clients nur ein
Netzwerkgerät, die drahtlose Netzkarte.Es gibt verschiedene Möglichkeiten, einen
drahtlosen Client zu konfigurieren. Diese hängen von
den verschiedenen drahtlosen Betriebsmodi ab. Man
unterscheidet vor allem zwischen BSS (Infrastrukturmodus,
erfordert einen Zugangspunkt) und IBSS (ad-hoc,
Peer-to-Peer-Modus, zwischen zwei Clients, ohne
Zugangspunkt). In unserem Beispiel verwenden wir den weiter
verbreiteten BSS-Modus, um einen Zugangspunkt anzusprechen.
VoraussetzungenEs gibt nur eine Voraussetzung, um FreeBSD als
drahtlosen Client betreiben zu können: Sie brauchen
eine von FreeBSD unterstützte drahtlose
Karte.Einen drahtlosen FreeBSD Client einrichtenSie müssen ein paar Dinge über das drahtlose
Netzwerk wissen, mit dem Sie sich verbinden wollen, bevor
Sie starten können. In unserem Beispiel verbinden
wir uns mit einem Netzwerk, das den Namen
my_net hat, und bei dem die
Verschlüsselung deaktiviert ist.Anmerkung: In unserem Beispiel verwenden wir keine
Verschlüsselung. Dies ist eine gefährliche
Situation. Im nächsten Abschnitt werden Sie daher
lernen, wie man die Verschlüsselung aktiviert, warum
es wichtig ist, dies zu tun, und warum einige
Verschlüsselungstechnologien Sie trotzdem nicht
völlig schützen.Stellen Sie sicher, dass Ihre Karte von FreeBSD
erkannt wird:&prompt.root; ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1Nun werden wir die Einstellungen der Karte unserem
Netzwerk anpassen:&prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_netErsetzen Sie 192.168.0.20 und 255.255.255.0 mit einer
gültigen IP-Adresse und Netzmaske ihres
Kabel-Netzwerks. Bedenken Sie außerdem, dass unser
Zugangspunkt als Bridge zwischen dem drahtlosen und
dem Kabel-Netzwerk fungiert. Für die anderen
Rechner Ihres Netzwerks befinden Sie sich, genauso wie
diese, im gleichen Kabel-Netzwerk, obwohl Sie zum
drahtlosen Netzwerk gehören.Nachdem Sie dies erledigt haben, sollten Sie andere
Rechner (Hosts) im Kabel-Netzwerk anpingen können.
Dies genauso, wie wenn Sie über eine
Standardkabelverbindung mit ihnen verbunden
wären.Wenn Probleme mit Ihrer drahtlosen Verbindung
auftreten, stellen Sie sicher, dass Sie mit dem
Zugangspunkt verbunden sind:&prompt.root; ifconfig wi0sollte einige Informationen ausgeben und Sie sollten
Folgendes sehen:status: associatedWird dies nicht angezeigt, sind Sie entweder
außerhalb der Reichweite des Zugangspunktes, haben die
Verschlüsselung deaktiviert, oder Sie haben ein
anderes Konfigurationsproblem.VerschlüsselungVerschlüsselung ist in einem drahtlosen Netzwerk
wichtig, da Sie das Netzwerk nicht länger in einem
geschützten Bereich betreiben können. Ihre Daten
verbreiten sich in der ganzen Nachbarschaft, das heißt
jeder, der es will, kann Ihre Daten lesen. Deshalb gibt es die
Verschlüsselung. Durch die Verschlüsselung der durch
die Luft versendeten Daten machen Sie es einem Dritten sehr
viel schwerer, Ihre Daten abzufangen oder auf diese
zuzugreifen.Die gebräuchlichsten Methoden, um Daten zwischen
Ihrem Client und dem Zugangspunkt zu verschlüsseln,
sind WEP und &man.ipsec.4;.WEPWEPWEP ist die Abkürzung für Wired Equivalency
Protocol ("Verkabelung entsprechendes Protokoll"). WEP
war ein Versuch, drahtlose Netzwerke genauso sicher und
geschützt zu machen wie verkabelte Netzwerke.
Unglücklicherweise wurde es bereits geknackt, und ist
relativ einfach auszuhebeln. Sie sollten sich also nicht
darauf verlassen, wenn Sie sensible Daten
verschlüsseln wollen.Allerdings ist eine schlechte Verschlüsselung
noch immer besser als gar keine Verschlüsselung.
Aktivieren Sie daher WEP für Ihren neuen FreeBSD
Zugangspunkt:&prompt.root; ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostapAuf dem Client können Sie WEP wie folgt
aktivieren:&prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890Beachten Sie bitte, dass Sie
0x1234567890 durch einen besseren
Schlüssel ersetzen sollten.IPsec&man.ipsec.4; ist ein viel besseres und robusteres
Werkzeug, um Daten in einem Netzwerk zu
verschlüsseln und ist auch der bevorzugte Weg,
Daten in einem drahtlosen Netzwerk zu verschlüsseln.
Für weitere Informationen über
&man.ipsec.4;-Sicherheit, und dessen Implementierung
lesen Sie Abschnitt IPsec
des Handbuches.WerkzeugeEs gibt einige Werkzeuge, die dazu dienen, Ihr
drahtloses Netzwerk zu installieren, und auftretende
Probleme zu beheben. Wir werden nun versuchen, einige davon
zu beschreiben.bsd-airtoolsDas Paket bsd-airtools
enthält einen kompletten Werkzeugsatz zum
Herausfinden von WEP-Schlüsseln, zum Auffinden von
Zugangspunkten, usw.Die bsd-airtools
können Sie über den net/bsd-airtools Port
installieren. Für weitere Informationen zum
Installieren von Ports lesen Sie bitte des Handbuchs.Das Programm dstumbler ist ein
Werkzeug, das Sie beim Auffinden von Zugangspunkten
unterstützt, und das Signal-Rausch-Verhältnis
graphisch darstellen kann. Wenn Sie Probleme beim
Einrichten und Betreiben Ihres Zugangspunktes haben,
könnte dstumbler genau das
Richtige für Sie sein.Um die Sicherheit Ihres drahtlosen Netzwerks zu
überprüfen, könnten Sie das Paket
dweputils (dwepcrack,
dwepdump und
dwepkeygen) verwenden, um
festzustellen, ob WEP Ihren Sicherheitsansprüchen
genügt.wicontrol, ancontrol, raycontrolDies sind Werkzeuge, um das Verhalten Ihrer drahtlosen
Karte im drahtlosen Netzwerk zu kontrollieren. In den
obigen Beispielen haben wir &man.wicontrol.8; verwendet,
da es sich bei unser drahtlosen Karte um ein Gerät
der wi0-Schnittstelle handelt.
Hätten Sie eine drahtlose Karte von Cisco,
würden Sie diese über
an0 ansprechen, und daher
&man.ancontrol.8; verwenden.ifconfigifconfig&man.ifconfig.8; kennt zwar viele Optionen von
&man.wicontrol.8;, einige fehlen jedoch. Lesen Sie die
Dokumentation zu &man.ifconfig.8; für weitere
Informationen zu Parametern und Optionen.Unterstützte KartenZugangspunktDie einzigen Karten, die im BSS-Modus (das heißt als
Zugangspunkt) derzeit unterstützt werden, sind solche
mit Prism 2-, 2.5- oder 3-Chipsatz. Für eine
komplette Übersicht lesen Sie bitte &man.wi.4;.ClientsBeinahe alle 802.11b drahtlosen Karten werden von
FreeBSD unterstützt. Die meisten dieser Karten von
Prism, Spectrum24, Hermes, Aironet und Raylink arbeiten
als drahtlose Netzkarten im IBSS-Modus (ad-hoc,
Peer-to-Peer und BSS).StevePetersonGeschrieben von LAN-Kopplung mit einer BridgeEinführungSubnetzBridgeManchmal ist es nützlich, ein physikalisches Netzwerk
(wie ein Ethernetsegment) in zwei separate Netzwerke aufzuteilen,
ohne gleich IP-Subnetze zu erzeugen, die über einen Router
miteinander verbunden sind. Ein Gerät, das zwei Netze
auf diese Weise verbindet, wird als Bridge
bezeichnet. Jedes FreeBSD-System mit zwei Netzkarten kann
als Bridge fungieren.Die Bridge arbeitet, indem sie die MAC Layeradressen (Ethernet
Adressen) der Geräte in ihren Netzsegmenten lernt. Der
Verkehr wird nur dann zwischen zwei Netzsegmenten weitergeleitet,
wenn sich Sender und Empfänger in verschiedenen Netzsegmenten
befinden.In vielerlei Hinsicht entspricht eine Bridge daher einem
Ethernet-Switch mit sehr wenigen Ports.Situationen, in denen Bridging angebracht
istEine Bridge wird vor allem in folgenden zwei Situationen
verwendet.Hohes Datenaufkommen in einem SegmentIn der ersten Situation wird Ihr physikalisches Netz
mit Datenverkehr überschwemmt. Aus irgendwelchen
Gründen wollen Sie allerdings keine Subnetze verwenden,
die über einen Router miteinander verbunden sind.Stellen Sie sich einen Zeitungsverlag vor, in dem sich die
Redaktions- und Produktionsabteilungen in verschiedenen Subnetzen
befinden. Die Redaktionsrechner verwenden den Server A für
Dateioperationen, und die Produktionsrechner verwenden den
Server B. Alle Benutzer sind über ein gemeinsames
Ethernet-LAN miteinander verbunden. Durch den hohen Datenverkehr
sinkt die Geschwindigkeit des gesamten Netzwerks.Würde man die Redaktionsrechner und die
Produktionsrechner in separate Netzsegmente auslagern,
könnte man diese beiden Segmente über eine Bridge
verbinden. Nur der für Rechner im anderen
Segment bestimmte Verkehr wird dann über die Brigde in
das andere Netzsegment geleitet. Dadurch verringert sich das
Gesamtdatenaufkommen in beiden Segmenten.Filtering/Traffic Shaping FirewallFirewallIP-MasqueradingDie zweite häufig anzutreffende Situation tritt auf,
wenn Firewallfunktionen benötigt werden, ohne dass
IP-Maskierung (NAT – Network Adress Translation)
verwendet wird.Ein Beispiel dafür wäre ein kleines Unternehmen,
das über DSL oder ISDN an ihren ISP angebunden ist. Es
verfügt über 13 weltweit erreichbare IP-Adressen, und
sein Netzwerk besteht aus 10 Rechnern. In dieser Situation ist
die Verwendung von Subnetzen sowie einer routerbasierten Firewall
schwierig.RouterDSLISDNEine brigdebasierte Firewall kann konfiguriert und in den
ISDN/DSL-Downstreampfad ihres Routers eingebunden werden, ohne
sich um IP-Adressen kümmern zu müssen.Die LAN-Kopplung konfigurierenAuswahl der NetzkartenEine Bridge benötigt mindestens zwei Netzkarten.
Leider sind unter FreeBSD 4.x nicht alle verfügbaren
Netzkarten dafür geeignet. Lesen Sie &man.bridge.4;, um
sich über Details der unterstützten Karten zu
informieren.Installieren und testen Sie beide Netzkarten, bevor Sie
fortfahren.Anpassen der KernelkonfigurationKernelkonfigurationKernelkonfigurationoptions BRIDGEUm die Kernelunterstützung für die LAN-Kopplung
zu aktivieren, fügen Sieoptions BRIDGEin Ihre Kernelkonfigurationsdatei ein, und erzeugen einen
neuen Kernel.FirewallunterstützungFirewallWenn Sie die Bridge als Firewall verwenden wollen, müssen
Sie zusätzlich die Option IPFIREWALL
einfügen. Für weitere Informationen zur Konfiguration
der Bridge als Firewall lesen Sie bitte den entsprechenden Abschnitt
des Handbuchs ().Wenn Sie Nicht-IP-Pakete (wie ARP-Pakete) durch Ihre
Bridge leiten wollen, müssen Sie eine zusätzliche,
undokumentierte Option verwenden. Es handelt sich um
IPFIREWALL_DEFAULT_TO_ACCEPT.
Beachten Sie aber, dass Ihre Firewall durch diese Option per
Voreinstellung alle Pakete akzeptiert. Sie sollten sich also
über die Auswirkungen dieser Option im Klaren sein,
bevor Sie sie verwenden.Unterstützung für Traffic ShapingWenn Sie die Bridge als Traffic-Shaper verwenden wollen,
müssen Sie die Option DUMMYNET in
Ihre Kernelkonfigurationsdatei einfügen. Lesen Sie
&man.dummynet.4;, um weitere Informationen zu erhalten.Die LAN-Kopplung aktivierenFügen Sie die Zeilenet.link.ether.bridge=1in /etc/sysctl.conf ein, um die Bridge
zur Laufzeit zu aktivieren, sowie die Zeilenet.link.ether.bridge_cfg=if1,if2um die LAN-Kopplung für die festgelegten Geräte
zu ermöglichen (ersetzen Sie dazu if1
und if2 mit den Namen Ihrer Netzkarten).
Wenn Sie die Datenpakete via &man.ipfw.8; filtern wollen, sollten
Sie zusätzlich Folgendes einfügen:net.link.ether.bridge_ipfw=1LeistungMeine Bridge/Firewall besteht aus einem Pentium90-System mit
einer 3Com 3C900B und einer 3Com 3C905B Netzkarte. Die
geschützte Seite des Netzwerks läuft im 10 mbps
Halbduplex-Modus, und die Verbindung zwischen der Bridge und
meinem Router (einem Cisco 675) läuft im 100 mbps
Fullduplex-Modus. Ohne aktivierte Paketfilterung habe ich
festgestellt, dass die Bridge Pings vom geschützten Netzwerk
zum Cisco-Router um etwa 0,4 Millisekunden verzögert.Sonstige InformationenWenn Sie via telnet auf die Bridge zugreifen
wollen, ist es in Ordnung, einer der beiden Netzkarten eine IP-Adresse
zuzuweisen. Es besteht Einigkeit darüber, dass es eine schlechte
Idee ist, beiden Karten eine IP-Adresse zuzuweisen.Wenn Sie verschiedene Bridges in Ihrem Netzwerk haben, kann es
dennoch nicht mehr als einen Weg zwischen zwei Arbeitsplätzen
geben. Das heißt, Spanning tree link Management wird nicht
unterstützt.TomRhodesReorganisiert und erweitert von BillSwingleGeschrieben von NFS – Network File SystemNFSEines der vielen von FreeBSD unterstützten Dateisysteme
ist das Netzwerkdateisystem, das auch als NFS
bekannt ist. NFS ermöglicht es einem
System, Dateien und Verzeichnisse über ein Netzwerk mit anderen
zu teilen. Über NFS können Benutzer
und Programme auf Daten entfernter Systeme zugreifen, und zwar
genauso, wie wenn es sich um lokale Daten handeln würde.Einige der wichtigsten Vorteile von NFS
sind:Lokale Arbeitsstationen benötigen weniger Plattenplatz,
da gemeinsam benutzte Daten nur auf einem einzigen Rechner
vorhanden sind. Alle anderen Stationen greifen über das
Netzwerk auf diese Daten zu.Benutzer benötigen nur noch ein zentrales
Heimatverzeichnis auf einem NFS-Server.
Diese Verzeichnisse sind über das Netzwerk auf allen
Stationen verfügbar.Speichergeräte wie Disketten-, CD-ROM-
oder ZIP-Laufwerke können über das Netzwerk von
anderen Arbeitstationen genutzt werden. Dadurch sind für
das gesamte Netzwerk deutlich weniger Speichergeräte
nötig.Wie funktioniert NFS?NFS besteht aus zwei Hauptteilen: Einem
Server und einem oder mehreren Clients. Der Client greift
über das Netzwerk auf die Daten zu, die auf dem Server
gespeichert sind. Damit dies korrekt funktioniert, müssen
einige Prozesse konfiguriert und gestartet werden:Der Server benötigt folgende Daemonen:NFSServerportmapmountdnfsdDaemonBeschreibungnfsdDer NFS-Daemon. Er bearbeitet
Anfragen der NFS-Clients.mountdDer NFS-Mount-Daemon. Er
bearbeitet die Anfragen, die &man.nfsd.8; an ihn
weitergibt.portmap Der Portmapper-Daemon. Durch ihn erkennen die
NFS-Clients, welchen Port der
NFS-Server verwendet.Der Client kann ebenfalls einen Daemon aufrufen, und zwar den
nfsiod-Daemon. Der
nfsiod-Daemon bearbeitet Anfragen vom
NFS-Server. Er ist optional und verbessert
die Leistung des Netzwerks. Für eine normale und korrekte
Arbeit ist er allerdings nicht erforderlich. Lesen Sie
&man.nfsiod.8;, wenn Sie weitere Informationen benötigen.NFS einrichtenNFSeinrichtenNFS läßt sich leicht
einrichten. Die nötigen Prozesse werden durch einige
Änderungen in /etc/rc.conf bei
jedem Systemstart gestartet.Stellen Sie sicher, dass auf dem NFS-Server
folgende Optionen in /etc/rc.conf
gesetzt sind:
portmap_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"
mountd läuft automatisch, wenn der
NFS-Server aktiviert ist.Auf dem Client muss in /etc/rc.conf
folgende Option gesetzt sein:nfs_client_enable="YES"/etc/exports legt fest, welche Dateisysteme
NFS exportieren (manchmal auch als
teilen bezeichnet) soll. Jede Zeile in
/etc/exports legt ein Dateisystem sowie
die Arbeitsstationen, die darauf Zugriff haben, fest. Außerdem
ist es möglich, Zugriffsoptionen festzulegen. Es gibt viele
verschiedene Optionen, allerdings werden hier nur einige von
ihnen erwähnt. Wenn Sie Informationen über weitere
Optionen benötigen, lesen Sie &man.exports.5;.Nun folgen einige Beispieleinträge für
/etc/exports:NFSBeispiele zum Export von DateisystemenDie folgenden Beispiele geben Ihnen Anhaltspunkte zum
Exportieren von Dateisystemen, obwohl diese Einstellungen
natürlich von Ihrer Arbeitsumgebung und Ihrer
Netzwerkkonfiguration abhängen. Das nächste
Beispiel exportiert das Verzeichnis /cdrom
für drei Rechner, die sich in derselben Domäne wie
der Server befinden oder für die entsprechende Einträge
in /etc/hosts existieren.
Die Option kennzeichnet das
exportierte Dateisystem als schreibgeschützt. Durch dieses
Flag ist das entfernte System nicht in der Lage, das exportierte
Dateisystem zu verändern./cdrom -ro host1 host2 host3Die nächste Zeile exportiert /home
auf drei durch IP-Adressen bestimmte Rechner. Diese Einstellung
ist nützlich, wenn Sie über ein privates Netzwerk ohne
DNS-Server verfügen. Optional
könnten interne Rechnernamen auch in
/etc/hosts konfiguriert werden.
Benötigen Sie hierzu weitere Informationen, lesen Sie bitte
&man.hosts.5;. Durch das Flag wird es
möglich, auch Unterverzeichnisse als Mountpunkte
festzulegen. Dies bedeutet aber nicht, dass alle
Unterverzeichnisse eingehängt werden, vielmehr wird es dem
Client ermöglicht, nur diejenigen Verzeichnisse
einzuhängen, die auch benötigt werden./home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4Die nächste Zeile exportiert /a,
damit Clients von verschiedenen Domänen auf das Dateisystem
zugreifen können. Das -Flag
erlaubt es dem Benutzer root des entfernten
Systems, als root auf das exportierte
Dateisystem zu schreiben. Wenn dieses Flag nicht gesetzt ist,
kann selbst root nicht auf das exportierte
Dateisystem schreiben./a -maproot=root host.example.com box.example.orgDamit ein Client auf ein exportiertes Dateisystem zugreifen
kann, muss ihm dies explizit gestattet werden. Stellen Sie also
sicher, dass der Client in /etc/exports
aufgeführt wird.Jede Zeile in /etc/exports entspricht
der Exportinformation für ein Dateisystem auf einen Rechner.
Ein entfernter Rechner kann für jedes Dateisystem nur
einmal festgelegt werden, und kann auch nur einen Standardeintrag
haben. Nehmen wir an, dass /usr
ein einziges Dateisystem ist. Dann wären folgende Zeilen
ungültig:
/usr/src client
/usr/ports client
Das Dateisystem /usr wird hier zweimal
auf den selben Rechner (client)
exportiert. Dies ist aber nicht zulässig. Der richtige
Eintrag sieht daher so aus:/usr/src /usr/ports clientDie Eigenschaften eines auf einen anderen Rechner
exportierten Dateisystems müssen alle in einer Zeile
stehen. Zeilen, in denen kein Rechner festgelegt wird, werden
als einzelner Rechner behandelt. Dies schränkt die
Möglichkeiten zum Export von Dateisystemen ein, für
die meisten Anwender ist dies aber kein Problem.Eine gültige Exportliste, in der
/usr und /exports
lokale Dateisysteme sind, sieht so aus:
# Export src and ports to client01 and client02, but only
# client01 has root privileges on it
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# The client machines have root and can mount anywhere
# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=root client01 client02
/exports/obj -ro
Sie müssen mountd nach jeder
Änderung von /etc/exports neu
starten, damit die Änderungen wirksam werden. Dies
kann durch das Senden des HUP-Signals an den
mountd-Prozess erfolgen:&prompt.root; kill -HUP `cat /var/run/mountd.pid`Alternativ können Sie auch das System neu starten.
Dies ist allerdings nicht nötig. Wenn Sie die folgenden
Befehle als root ausführen, sollte
alles korrekt gestartet werden.Auf dem NFS-Server:&prompt.root; portmap
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rAuf dem NFS-Client:&prompt.root; nfsiod -n 4Nun sollte alles bereit sein, um ein entferntes Dateisystem
einhängen zu können. In unseren Beispielen nennen wir
den Server server, den Client
client. Wenn Sie ein entferntes Dateisystem
nur zeitweise einhängen wollen, oder nur Ihre Konfiguration
testen möchten, führen Sie auf dem Client als
root einen Befehl ähnlich dem
folgenden aus:NFSDateisysteme einhängen&prompt.root; mount server:/home /mntDadurch wird das Verzeichnis /home des
Servers auf dem Client unter /mnt eingehängt.
Wenn alles korrekt konfiguriert wurde, sehen Sie auf dem Client
im Verzeichnis /mnt alle Dateien des
Servers.Wenn Sie ein entferntes Dateisystem nach jedem Systemstart
automatisch einhängen wollen, fügen Sie das Dateisystem
in /etc/fstab ein. Dazu ein Beispiel:server:/home /mnt nfs rw 0 0Für Informationen zu allen möglichen Optionen lesen
Sie bitte &man.fstab.5;.Praktische AnwendungenNFS ist in vielen Situationen
nützlich. Einige Anwendungsbereiche finden Sie in der
folgenden Liste:NFSAnwendungsbeispieleMehrere Maschinen können sich ein CD-ROM-Laufwerk
oder andere Medien teilen. Dies ist billiger und außerdem
praktischer, um Programme auf mehreren Rechnern zu
installieren.In größeren Netzwerken ist es praktisch,
einen zentralen NFS-Server einzurichten,
auf dem die Heimatverzeichnisse der Benutzer gespeichert
werden. Diese Heimatverzeichnisse werden über das
Netzwerk exportiert. Dadurch haben die Benutzer immer das
gleiche Heimatverzeichnis zur Verfügung,
unabhängig davon, an welchem Arbeitsplatz sie sich
anmelden.Verschiedene Rechner können auf ein gemeinsames
/usr/ports/distfiles-Verzeichnis
zugreifen. Wenn Sie nun einen Port auf mehreren Rechnern
installieren wollen, greifen Sie einfach auf dieses
Verzeichnis zu, ohne die Quelldateien auf jede Maschine
zu kopieren.WylieStilwellBeigetragen von ChernLeeÜberarbeitet von AMDamdAutomatic Mounter Daemon&man.amd.8; (Automatic Mounter Daemon) hängt ein
entferntes Dateisystem automatisch ein,
wenn auf eine Datei oder ein Verzeichnis in diesem Dateisystem
zugegriffen wird. Dateisysteme, die über einen gewissen
Zeitraum inaktiv sind, werden von amd
automatisch abgehängt.
amd ist eine einfache
Alternative zum dauerhaften Einhängen von Dateisystemen
in /etc/fstab.In der Voreinstellung stellt amd
die Verzeichnisse /host und
/net als NFS-Server bereit. Wenn auf eine Datei
in diesen Verzeichnissen zugegriffen wird, sucht
amd den entsprechenden Mountpunkt
und hängt das Dateisystem automatisch ein.
/net wird zum Einhängen von
exportierten Dateisystemen von einer IP-Adresse verwendet,
während /host zum Einhängen
von exportierten Dateisystemen eines durch seinen Namen
festgelegten Rechners dient.Ein Zugriff auf eine Datei in
/host/foobar/usr würde
amd veranlassen,
das von foobar exportierte Dateisystem
/usr einzuhängen.Ein exportiertes Dateisystem mit
amd in den Verzeichnisbaum
einhängenSie können sich die verfügbaren Mountpunkte
eines entfernten Rechners mit showmount
ansehen. Wollen Sie sich die Mountpunkte des Rechners
foobar ansehen, so verwenden Sie:&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usrWie Sie an diesem Beispiel erkennen können, zeigt
showmount/usr
als exportiertes Dateisystem an. Wenn man in das Verzeichnis
/host/foobar/usr wechselt, versucht
amd den Rechnernamen
foobar aufzulösen und den gewünschten
Export in den Verzeichnisbaum einzuhängen.amd kann durch das Einfügen
der folgenden Zeile in /etc/rc.conf
automatisch gestartet werden:amd_enable="YES"Mit der Option amd_flags kann
amd angepasst werden.
Die Voreinstellung für amd_flags sieht
so aus:amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"/etc/amd.map legt die Standardoptionen
fest, mit denen exportierte Dateisysteme in den Verzeichnisbaum
eingehängt werden. /etc/amd.conf
hingegen legt einige der erweiterten Optionen von
amd fest.Für weitere Informationen lesen Sie bitte &man.amd.8;
und &man.amd.conf.5;.JohnLindBeigetragen von Integrationsprobleme mit anderen SystemenBestimmte ISA-Ethernetadapter haben Beschränkungen, die
zu ernsthaften Netzwerkproblemen, insbesondere mit NFS
führen können. Es handelt sich dabei nicht um ein
FreeBSD-spezifisches Problem, aber FreeBSD-Systeme sind davon
ebenfalls betroffen.Das Problem tritt fast ausschließlich dann auf, wenn
(FreeBSD)-PC-Systeme mit Hochleistungsrechnern verbunden werden,
wie Systemen von Silicon Graphics, Inc. oder
Sun Microsystems, Inc. Das Einhängen via NFS funktioniert
problemlos, auch einige Dateioperationen können erfolgreich
sein. Plötzlich aber wird der Server nicht mehr auf den
Client reagieren, obwohl Anfragen an und von anderen Rechnern
weiter bearbeitet werden. Dieses Problem betrifft stets den
Client, egal ob es sich beim Client um das FreeBSD-System oder
den Hochleistungsrechner handelt. Auf vielen Systemen gibt es
keine Möglichkeit mehr, den Client ordnungsgemäß
zu beenden. Die einzige Lösung ist oft, den Rechner neu
zu starten, da dieses NFS-Problem nicht mehr behoben werden kann.Die korrekte Lösung für dieses
Problem ist es, sich eine schnellere Ethernetkarte für
FreeBSD zu kaufen. Allerdings gibt es auch eine einfache und
meist zufriedenstellende Lösung, um dieses Problem zu
umgehen. Wenn es sich beim FreeBSD-System um den
Server handelt, verwenden Sie beim
Einhängen in den Verzeichnisbaum auf der Clientseite
zusätzlich die Option . Wenn es
sich beim FreeBSD-System um den Client
handelt, dann hängen Sie das NFS-Dateisystem mit der
zusätzlichen Option ein.
Diese Optionen können auf der Clientseite auch durch
das vierte Feld der Einträge in /etc/fstab
festgelegt werden, damit die Dateisysteme automatisch eingehängt
werden. Um die Dateisysteme manuell einzuhängen, verwendet
man bei mount zusätzlich die Option
.Es gibt ein anderes Problem, das oft mit diesem verwechselt
wird. Dieses andere Problem tritt auf, wenn sich über NFS
verbundene Server und Clients in verschiedenen Netzwerken
befinden. Wenn dies der Fall ist, stellen Sie
sicher, dass Ihre Router die
nötigen UDP-Informationen weiterleiten, oder Sie werden
nirgends hingelangen, egal was Sie machen.In den folgenden Beispielen ist fastws der
Name des Hochleistungsrechners (bzw. dessen Schnittstelle),
freebox hingegen ist der Name des
FreeBSD-Systems, das über eine Netzkarte mit geringer
Leistung verfügt. /sharedfs ist das
exportierte NFS -Dateisystem (lesen Sie dazu auch
&man.exports.5;). Bei /project handelt es
sich um den Mountpunkt, an dem das exportierte Dateisystem auf
der Clientseite eingehängt wird. In allen Fällen
können zusätzliche Optionen, wie z.B.
, oder
wünschenswert sein.FreeBSD als Client (eingetragen in
/etc/fstab auf freebox):fastws:/sharedfs /project nfs rw,-r=1024 0 0Manuelles Einhängen auf freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /projectFreeBSD als Server (eingetragen in
/etc/fstab auf fastws):freebox:/sharedfs /project nfs rw,-w=1024 0 0Manuelles Einhängen auf fastws:&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /projectNahezu alle 16-bit Ethernetadapter erlauben Operationen
ohne obengenannte Einschränkungen auf die Lese- oder
Schreibgröße.Für alle technisch Interessierten wird nun beschrieben,
was passiert, wenn dieser Fehler auftritt, und warum er
irreversibel ist. NFS arbeitet üblicherweise mit einer
Blockgröße von 8 kByte (obwohl
es kleinere Fragmente zulassen würde). Da die maximale
Rahmengröße von Ethernet 1500 Bytes
beträgt, wird der NFS-Block in einzelne
Ethernetrahmen aufgeteilt, obwohl es sich nach wie vor um eine
Einheit handelt, die auch als Einheit empfangen, verarbeitet
und bestätigt werden muss. Der
Hochleistungsrechner verschickt die Pakete, aus denen der
NFS-Block besteht, so eng hintereinander, wie es der Standard
erlaubt. Auf der anderen Seite (auf der sich die langsamere
Netzkarte befindet), überschreiben die späteren
Pakete ihre Vorgänger, bevor diese vom System verarbeitet
werden (Überlauf!). Dies hat zur Folge, dass der NFS-Block
nicht mehr rekonstruiert und bestätigt werden kann. Als
Folge davon glaubt der Hochleistungsrechner, dass der andere
Rechner nicht erreichbar ist (Timeout!) und versucht die
Sendung zu wiederholen. Allerdings wird wiederum der komplette
NFS-Block verschickt, so dass sich der ganze Vorgang wiederholt,
und zwar immer wieder (oder bis zum Systemneustart).Indem wir die Einheitengröße unter der maximalen
Größe der Ethernetpakete halten, können wir
sicherstellen, dass jedes vollständig erhaltene
Ethernetpaket individuell angesprochen werden kann und vermeiden
die Blockierung des Systems.Überläufe können zwar nach wie vor auftreten,
wenn ein Hochleistungsrechner Daten auf ein PC-System
transferiert. Durch die besseren (und schnelleren) Netzkarten
treten solche Überläufe allerdings nicht mehr
zwingend auf, wenn
NFS-Einheiten übertragen werden. Tritt nun
ein Überlauf auf, wird die betroffene Einheit erneut
verschickt, und es besteht eine gute Chance, dass sie nun
erhalten, verarbeitet und bestätigt werden kann.Start und Betrieb von FreeBSD über ein
NetzwerkDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.ISDN (Integrated Service Data Network)Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.NIS / YP (Network Information Service)Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.DHCP (Dynamic Host Configuration Protocol)Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.DNS (Domain Name Service)Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.NTP (Network Time Protocol)Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.NATD (Network Address Translation Daemon)Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.inetd Super-ServerDieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.Parallel Line IP (PLIP)Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.IPv6Dieser Abschnitt ist noch nicht übersetzt. Lesen Sie
bitte
das Original in englischer Sprache.
diff --git a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml b/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
index c16682d003..c1118a6426 100644
--- a/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/bibliography/chapter.sgml
@@ -1,600 +1,598 @@
BibliografieÜbersetzt von &a.de.gruender;Während die Manualpages die endgültige Auskunft
über bestimmte Teile des FreeBSD Betriebssystems geben, so
können sie jedoch nicht darstellen, wie man die einzelnen Teile
zusammenfügt, um ein vollständig laufendes Betriebssystem
herzustellen. Daher gibt es keinen Ersatz für ein gutes Buch
über die Administration von &unix; Systemen und ein gutes
Benutzerhandbuch.In der Regel handelt es sich im folgenden Kapitel um englische
Ausgaben der genannten Werke. Übersetzungen oder Ausgaben in
anderen Sprachen sind mit entsprechenden Hinweisen versehen.Bücher und Magazine speziell für FreeBSDInternationale Bücher und
Magazine:
Using FreeBSD (in chinesischer Sprache).FreeBSD for PC 98'ers (in japanischer Sprache), herausgegeben von
SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.FreeBSD (in japanischer Sprache), herausgegeben von CUTT. ISBN
4-906391-22-2 C3055 P2400E.Complete Introduction to FreeBSD (in Japanese), published by Shoeisha Co., Ltd. ISBN 4-88135-473-6 P3600E.
Personal UNIX Starter Kit FreeBSD (in japanischer Sprache),
herausgegeben von ASCII.
ISBN 4-7561-1733-3 P3000E.FreeBSD Handbook (japanische Übersetzung), herausgegeben
von ASCII.
ISBN 4-7561-1580-2 P3800E.FreeBSD mit Methode (in deutscher Sprache), herausgegeben von
Computer und Literatur Verlag
/Vertrieb Hanser, 1998.
ISBN 3-932311-31-0.FreeBSD 4 -
Installieren, Konfigurieren, Administrieren (in
deutscher Sprache), herausgegeben von Computer und Literatur Verlag, 2001.
ISBN 3-932311-88-4.
FreeBSD Install and Utilization Manual (in japanischer Sprache),
herausgegeben von
Mainichi Communications Inc..Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
Building Internet Server with FreeBSD
(in indonesischer Sprache), herausgegeben von Elex Media Komputindo.Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
Building Internet Server with
FreeBSD (auf indonesisch), herausgegeben
von Elex Media Komputindo.Englischsprachige Bücher und
Magazine:Absolute BSD: The
Ultimate Guide to FreeBSD, herausgegeben von
No Starch Press,
2002. ISBN: 1886411743
The Complete FreeBSD, herausgegeben von
O'Reilly, 2003.
ISBN: 0596005164The
FreeBSD Corporate Networker's Guide, herausgegeben von
Addison-Wesley,
2002. ISBN: 0201704811
FreeBSD: An Open-Source Operating System for Your Personal
Computer, herausgegeben von The Bit Tree Press, 2001.
ISBN: 0971204500Teach Yourself FreeBSD in 24 Hours, herausgegeben von
Sams, 2002.
ISBN: 0672324245FreeBSD unleashed, herausgegeben von
Sams, 2002.
ISBN: 0672324563FreeBSD: The Complete Reference, herausgegeben von
McGrawHill, 2003.
ISBN: 0072224096 HandbücherComputer Systems Research Group, UC Berkeley. 4.4BSD
User's Reference Manual. O'Reilly & Associates,
Inc., 1994. ISBN 1-56592-075-9Computer Systems Research Group, UC Berkeley. 4.4BSD
User's Supplementary Documents. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-076-7UNIX in a Nutshell. O'Reilly &
Associates, Inc., 1990. ISBN 093717520XMui, Linda. What You Need To Know When You Can't Find
Your UNIX System Administrator. O'Reilly &
Associates, Inc., 1995. ISBN 1-56592-104-6Die Ohio State
University hat ein UNIX
Introductory Course veröffentlicht, welcher auch
online im HTML- und PostScriptformat verfügbar ist.Jpman Project, Japan
FreeBSD Users Group. FreeBSD User's
Reference Manual (japanische Übersetzung). Mainichi Communications
Inc., 1998. ISBN4-8399-0088-4 P3800E.Edinburgh
University hat einen Online Guide für
Anfänger in Sachen UNIX geschrieben.Administrations-AnleitungenAlbitz, Paul and Liu, Cricket. DNS and
BIND, 4th Ed. O'Reilly & Associates, Inc., 2001.
ISBN 1-59600-158-4Computer Systems Research Group, UC Berkeley. 4.4BSD
System Manager's Manual. O'Reilly & Associates,
Inc., 1994. ISBN 1-56592-080-5Costales, Brian, et al. Sendmail, 2nd Ed.
O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0Frisch, Æleen. Essential System
Administration, 2nd Ed. O'Reilly & Associates,
Inc., 1995. ISBN 1-56592-127-5Hunt, Craig. TCP/IP Network
Administration, 2nd Ed. O'Reilly & Associates, Inc., 1997.
ISBN 1-56592-322-7Nemeth, Evi. UNIX System Administration
Handbook. 3rd Ed. Prentice Hall, 2000. ISBN
0-13-020601-6Stern, Hal Managing NFS and NIS O'Reilly
& Associates, Inc., 1991. ISBN 0-937175-75-7Jpman Project, Japan
FreeBSD Users Group. FreeBSD System
Administrator's Manual (japanische Übersetzung). Mainichi Communications
Inc., 1998. ISBN4-8399-0109-0 P3300E.Die Edinburgh
University hat eine Online Anleitung
(in englischer Sprache) für Neueinsteiger in die
UNIX-Umgebung bereitgestellt.ProgrammierhandbücherAsente, Paul, Paul, Converse, Diana, and Swick, Ralph.
X Window System Toolkit. Digital Press,
1998. ISBN 1-55558-178-1Computer Systems Research Group, UC Berkeley. 4.4BSD
Programmer's Reference Manual. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-078-3Computer Systems Research Group, UC Berkeley. 4.4BSD
Programmer's Supplementary Documents. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-079-1Harbison, Samuel P. and Steele, Guy L. Jr. C: A
Reference Manual. 4rd ed. Prentice Hall, 1995.
ISBN 0-13-326224-3Kernighan, Brian and Dennis M. Ritchie. The C
Programming Language.. PTR Prentice Hall, 1988.
ISBN 0-13-110362-9Lehey, Greg. Porting UNIX Software.
O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7Plauger, P. J. The Standard C Library.
Prentice Hall, 1992. ISBN 0-13-131509-9Stevens, W. Richard. Advanced Programming in the UNIX
Environment. Reading, Mass. : Addison-Wesley, 1992
ISBN 0-201-56317-7Stevens, W. Richard. UNIX Network
Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN
0-13-490012-XWells, Bill. Writing Serial Drivers for UNIX.
Dr. Dobb's Journal. 19(15), December 1994.
pp68-71, 97-99.Betriebssystem-InternaAndleigh, Prabhat K. UNIX System
Architecture. Prentice-Hall, Inc., 1990. ISBN
0-13-949843-5Jolitz, William. Porting UNIX to the 386.
Dr. Dobb's Journal. January 1991-July
1992.Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and
John Quarterman The Design and Implementation of the
4.3BSD UNIX Operating System. Reading, Mass. :
Addison-Wesley, 1989. ISBN 0-201-06196-1Kapitel 2 dieses Buchs ist Teil des FreeBSD Documentation
Projects und online
erhältlich. Kapitel 9 findet sich
hier.Leffler, Samuel J., Marshall Kirk McKusick, The Design
and Implementation of the 4.3BSD UNIX Operating System: Answer
Book. Reading, Mass. : Addison-Wesley, 1991. ISBN
0-201-54629-9McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
John Quarterman. The Design and Implementation of the
4.4BSD Operating System. Reading, Mass. :
Addison-Wesley, 1996. ISBN 0-201-54979-4Stevens, W. Richard. TCP/IP Illustrated, Volume 1:
The Protocols. Reading, Mass. : Addison-Wesley,
1996. ISBN 0-201-63346-9Schimmel, Curt. Unix Systems for Modern
Architectures. Reading, Mass. : Addison-Wesley, 1994.
ISBN 0-201-63338-8Stevens, W. Richard. TCP/IP Illustrated, Volume 3:
TCP for Transactions, HTTP, NNTP and the UNIX Domain
Protocols. Reading, Mass. : Addison-Wesley, 1996.
ISBN 0-201-63495-3Vahalia, Uresh. UNIX Internals -- The New
Frontiers. Prentice Hall, 1996. ISBN
0-13-101908-2Wright, Gary R. and W. Richard Stevens. TCP/IP
Illustrated, Volume 2: The Implementation. Reading,
Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-XSicherheits-AnleitungCheswick, William R. and Steven M. Bellovin. Firewalls
and Internet Security: Repelling the Wily Hacker.
Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-63357-4Garfinkel, Simson and Gene Spafford.
Practical UNIX & Internet Security.
2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN
1-56592-148-8Garfinkel, Simson. PGP Pretty Good
Privacy O'Reilly & Associates, Inc., 1995. ISBN
1-56592-098-8Hardware-AnleitungAnderson, Don and Tom Shanley. Pentium Processor
System Architecture. 2nd Ed. Reading, Mass. :
Addison-Wesley, 1995. ISBN 0-201-40992-5Ferraro, Richard F. Programmer's Guide to the EGA,
VGA, and Super VGA Cards. 3rd ed. Reading, Mass. :
Addison-Wesley, 1995. ISBN 0-201-62490-7Die Intel Corporation veröffentlicht Dokumentationen
Ihrer CPUs, Chipsets und Standards auf ihrer developer web site,
normalerweise als PDF-Dateien.Shanley, Tom. 80486 System Architecture.
3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-40994-1Shanley, Tom. ISA System Architecture.
3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-40996-8Shanley, Tom. PCI System Architecture.
4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN
0-201-30974-2Van Gilluwe, Frank. The Undocumented PC,
2nd Ed.
Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN
0-201-47950-8Messmer, Hans-Peter. The Indispensable PC Hardware
Book, 4th Ed.
Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN
0-201-59616-4UNIX GeschichteLion, John Lion's Commentary on UNIX, 6th Ed. With
Source Code. ITP Media Group, 1996. ISBN
1573980137Raymond, Eric S. The New Hacker's Dictionary, 3rd
edition. MIT Press, 1996. ISBN
0-262-68092-0. Auch bekannt als das Jargon
+ url="http://www.catb.org/~esr/jargon/jargon.html">Jargon
FileSalus, Peter H. A quarter century of UNIX.
Addison-Wesley Publishing Company, Inc., 1994. ISBN
0-201-54777-5Simon Garfinkel, Daniel Weise, Steven Strassmann. The
UNIX-HATERS Handbook. IDG Books Worldwide, Inc.,
1994. ISBN 1-56884-203-1Don Libes, Sandy Ressler Life with UNIX
— special edition. Prentice-Hall, Inc., 1989. ISBN
0-13-536657-7
- The BSD family tree. 1997.
- ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/misc/bsd-family-tree
+ The BSD family tree.
oder lokal
auf einem FreeBSD Rechner.The BSD Release Announcements collection.
- 1997.
- http://www.de.FreeBSD.org/de/ftp/releases/
+ 1997. Networked Computer Science Technical Reports
- Library. http://www.ncstrl.org/
+ Library.
+ Old BSD releases from the Computer Systems Research
- group (CSRG). http://www.mckusick.com/csrg/:
+ group (CSRG).
+ :
Das Paket mit 4 CD-ROMs enthält alle BSD-Versionen von 1BSD
bis 4.4BSD und 4.4BSD-Lite2 (unglücklicherweise nicht
2.11BSD). Die letzte CD beinhaltet auch die finalen Sourcen
inclusive den SCCS Dateien.Magazine und JournaleThe C/C++ Users Journal. R&D
Publications Inc. ISSN 1075-2838Sys Admin — The Journal for UNIX System
Administrators Miller Freeman, Inc., ISSN
1061-2688
diff --git a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
index 9045699305..5ac6f7b335 100644
--- a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
@@ -1,1993 +1,1971 @@
JimMockUmstrukturiert und aktualisiert von JordanHubbardIm Original von Poul-HenningKampJohnPolstraNikClaytonMartinHeinenÜbersetzt von Das Neueste und BesteÜbersicht&os; wird zwischen einzelnen Releases konstant weiter entwickelt.
Es gibt mehrere einfache Möglichkeiten, ein System auf dem
aktuellen Stand der Entwicklung zu halten. Seien Sie jedoch gewarnt:
Die neueste Version ist nicht für jeden geeignet! Dieses
Kapitel hilft Ihnen bei der Entscheidung, ob Sie mit dem
Entwicklungssystem Schritt halten oder ein Release verwenden
wollen.Nachdem Sie dieses Kapitel gelesen haben, werden Sieden Unterschied der beiden Entwicklerversionen
&os.stable; und &os.current; kennen,wissen, wie Sie Ihr System mit
CVSup, CVS
oder CTM aktualisieren.Wissen, wie Sie mit make world das
komplette Basissystem wieder neu bauen und installieren
können.Bevor Sie dieses Kapitel lesen, sollten SieIhr Netzwerk richtig konfiguriert haben () undwissen, wie Sie Software Dritter installieren
().&os.current; vs. &os.stable;-CURRENT-STABLEFreeBSD besitzt zwei Entwicklungszweige: &os.current; und
&os.stable;. Dieser Abschnitt beschreibt beide Zweige und
erläutert, wie Sie Ihr System auf dem aktuellen Stand
eines Zweiges halten. Zuerst wird &os.current; vorgestellt, dann
&os.stable;.&os.current;Beachten Sie im Folgenden, dass &os.current; die Spitze
der Entwicklung von &os; ist. Benutzer von &os.current; sollten
über sehr gute technische Fähigkeiten verfügen und
in der Lage sein, schwierige Probleme alleine zu lösen. Wenn
&os; neu für Sie ist, überlegen Sie sich genau, ob Sie
&os.current; benutzen wollen.Was ist &os.current;?Snapshot&os.current; besteht aus den neuesten Quellen des
FreeBSD-Systems. Es enthält Sachen, an denen gerade
gearbeitet wird, experimentelle Änderungen und
Übergangsmechanismen, die im nächsten offiziellen
Release der Software enthalten sein können oder nicht.
Obwohl &os.current; täglich von vielen Entwicklern gebaut
wird, gibt es Zeiträume, in denen sich das System nicht
bauen lässt. Diese Probleme werden so schnell wie
möglich gelöst, aber ob Sie mit &os.current;
Schiffbruch erleiden oder die gewünschten Verbesserungen
erhalten, kann von dem Zeitpunkt abhängen, an dem Sie sich
den Quelltext besorgt haben!Wer braucht &os.current;?&os.current; wird hauptsächlich für 3
Interessengruppen zur Verfügung gestellt:Entwickler, die an einem Teil des Quellbaums arbeiten und
daher über die aktuellen Quellen verfügen
müssen.Tester, die bereit sind, Zeit in das Lösen von
Problemen zu investieren und sicherstellen, dass
&os.current; so stabil wie möglich bleibt. Weiterhin
Leute, die Vorschläge zu Änderungen oder der
generellen Entwicklung von &os; machen und Patches
bereitstellen, um diese Vorschläge zu realisieren.Für Leute, die die Entwicklung im Auge behalten
wollen, oder die Quellen zu Referenzzwecken (zum Beispiel
darin lesen, aber nicht verwenden) benutzen wollen. Auch diese
Gruppe macht Vorschläge oder steuert Quellcode
bei.Was &os.current; nicht ist!Der schnellste Weg, neue Sachen vor dem offiziellen
Release auszuprobieren. Bedenken Sie, dass der erste,
der die neuen Sachen ausprobiert, auch der erste ist, der die
neuen Fehler findet.Ein schneller Weg, um an Fehlerbehebungen (engl.
bug fixes) zu kommen. Jede
Version von &os.current; führt mit gleicher
Wahrscheinlichkeit neue Fehler ein, mit der sie alte
behebt.In irgendeiner Form offiziell
unterstützt. Wir tun unser Bestes, um Leuten
aus den drei legitimen Benutzergruppen von
&os.current; zu helfen, aber wir haben einfach nicht
die Zeit, technische Unterstützung zu
erbringen. Das kommt nicht daher, dass wir kleinliche,
gemeine Leute sind, die anderen nicht helfen wollen (wenn
wir das wären, würden wir &os; nicht machen), wir
können einfach nicht jeden Tag Hunderte Nachrichten
beantworten und an &os; arbeiten! Vor
die Wahl gestellt, &os; zu verbessern oder jede Menge Fragen
zu experimentellem Code zu beantworten, haben sich die
Entwickler für ersteres entschieden.Benutzen von &os.current;-CURRENTbenutzenEs ist essentiell, die Mailinglisten
- &a.current; und &a.cvsall; zu lesen. Wenn Sie
- &a.current; nicht lesen, verpassen Sie die Kommentare anderer
- über den momentanen Zustand des Systems und rennen
+ &a.current.name; und &a.cvsall.name; zu lesen. Wenn Sie
+ &a.current.name; nicht lesen, verpassen Sie die Kommentare
+ anderer über den momentanen Zustand des Systems und rennen
demzufolge in viele bekannte Probleme, die schon gelöst
sind. Noch kritischer ist, dass Sie wichtige
Bekanntmachungen verpassen, die erhebliche Auswirkungen
auf die Stabilität Ihres Systems haben können.
- In der &a.cvsall; Mailingliste sehen Sie zu jeder
+ In der &a.cvsall.name; Mailingliste sehen Sie zu jeder
Änderung das Commit-Log, das Informationen zu
möglichen Seiteneffekten enthält.
- Um diese Listen zu lesen, senden Sie eine E-Mail
- mit dem folgenden Inhalt im Textkörper der Nachricht
- an &a.majordomo;:
-
- subscribe freebsd-current
-subscribe cvs-all
-
- Majordomo
-
-
- Sie können Majordomo auch
- den Text help schicken und erhalten dann
- eine ausführliche Hilfe, die beschreibt, wie Sie die
- verschiedenen Mailinglisten abonnieren bzw. wieder
- abbestellen.
+ Um diese Listen zu abonnieren (oder zu lesen)
+ besuchen Sie bitte die Seite &a.mailman.lists.link;.
+ Weitere Informationen erhalten Sie, wenn Sie dort
+ auf die gewünschte Liste klicken.Beschaffen Sie sich die Quellen von einem
&os;-Spiegel. Sie haben
dazu drei Möglichkeiten:cvsupcron-CURRENTSynchronisation mit CVSupBenutzen Sie cvsup mit
einer geeigneten Sup-Datei. Dies ist die
empfohlene Methode, da Sie die ganzen Quellen nur einmal
herunterladen und danach nur noch Änderungen
beziehen. Viele lassen cvsup
aus cron heraus laufen, um ihre
Quellen automatisch auf Stand zu bringen. Sie
müssen die obige Sup-Datei anpassen und
cvsup
in Ihrer Umgebung konfigurieren.
Sie können sich die Arbeit vereinfachen, indem Sie
das folgende Kommando absetzen:&prompt.root; pkg_add -f ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/All/cvsupit-3.1.tgz-CURRENTHerunterladen mit ftpBenutzen Sie ftp. Auf einigen
FTP-Spiegeln ist
der Quellbaum im Verzeichnis
/pub/FreeBSD/FreeBSD-current/
abgelegt. Manche FTP-Spiegel unterstützen
das Herunterladen von komprimierten mit
tar gepackten Dateibäumen.
Wenn Sie beispielsweise das Verzeichnis
usr.bin/lex als
tar-Datei herunterladen wollen, geben
Sie Folgendes ein:ftp>cd usr.binftp>get lex.tarDer komplette Quellbaum von &os.current;
lässt sich viel leichter mit
cvsup als mit FTP kopieren.-CURRENTSynchronisation mit CTMCTM
kommt in Frage, wenn Sie
über eine schlechte Internet-Anbindung (hoher Preis
oder nur E-Mail Zugriff) verfügen. Der Umgang mit
CTM ist allerdings recht
mühsam und Sie können beschädigte Dateien
erhalten. Daher wird es selten benutzt, was wiederum
dazu führt, dass es über längere Zeit
nicht funktioniert. Wir empfehlen jedem mit einem
9600 bps oder schnellerem Modem,
CVSup
zu benutzen.Wenn Sie die Quellen einsetzen und nicht nur darin
lesen wollen, besorgen Sie sich bitte die
kompletten Quellen von &os.current; und
nicht nur ausgesuchte Teile. Der Grund hierfür ist,
dass die verschiedenen Teile der Quellen voneinander
abhängen. Es ist ziemlich sicher, dass Sie in
Schwierigkeiten geraten, wenn Sie versuchen, nur einen Teil
der Quellen zu übersetzen.-CURRENTübersetzenBevor Sie &os.current; übersetzen, sollten Sie sich
das Makefile in
/usr/src genau anschauen. Wenn Sie Ihr
System das erste Mal aktualisieren, sollten Sie mindestens
make world laufen lassen.
Lesen Sie bitte die Mailingliste &a.current;, um über
Änderungen im Installationsverfahren, die manchmal
vor der Einführung eines neuen Releases notwendig sind,
informiert zu sein.Seien Sie aktiv! Wenn Sie &os.current; laufen lassen,
wollen wir wissen, was Sie darüber denken, besonders
wenn Sie Verbesserungsvorschläge oder Fehlerbehebungen
haben. Verbesserungsvorschläge, die Code enthalten,
werden übrigens begeistert entgegengenommen.&os.stable;Was ist &os.stable;?-STABLE&os.stable; ist der Entwicklungszweig, auf dem Releases
erstellt werden. Dieser Zweig ändert sich langsamer als
&os.current; und alle Änderungen hier sollten zuvor in
&os.current; ausgetestet sein. Beachten Sie, dass dies
immer noch ein Entwicklungszweig ist und
daher zu jedem Zeitpunkt die Quellen von &os.stable; verwendbar
sein können oder nicht. &os.stable; ist Teil des
Entwicklungsprozesses und nicht für Endanwender
gedacht.Wer braucht &os.stable;?Wenn Sie den FreeBSD Entwicklungsprozess, besonders im
Hinblick auf das nächste Release, verfolgen oder
dazu beitragen wollen, sollten Sie erwägen, &os.stable; zu
benutzen.Auch wenn sicherheitsrelevante Fehlerbehebungen in den
&os.stable; Zweig einfließen, müssen Sie deswegen
noch lange nicht &os.stable; verfolgen. Jeder der FreeBSD
Sicherheitshinweise beschreibt für jedes betroffene Release,
Das stimmt nicht ganz. Obwohl wir alte FreeBSD
Releases für einige Jahre unterstützen, können
wir sie nicht ewig unterstützen. Eine vollständige
Beschreibung der Sicherheitspolitik für alte FreeBSD
Releases entnehmen Sie bitte http://www.FreeBSD.org/security/
wie sie einen sicherheitsrelevanten Fehler beheben.
Wenn Sie den Entwicklungszweig aus Sicherheitsgründen
verfolgen wollen, bedenken Sie, dass Sie neben
Fehlerbehebungen auch eine Vielzahl unerwünschter
Änderungen erhalten werden.Obwohl wir versuchen sicherzustellen, dass der
&os.stable; Zweig sich jederzeit übersetzen lässt
und läuft, können wir dafür keine Garantie
übernehmen. Auch wenn Neuentwicklungen in &os.current;
stattfinden, ist es jedoch so, dass mehr Leute
&os.stable; benutzen als &os.current; und es daher unvermeidlich
ist, dass Fehler und Grenzfälle erst in &os.stable;
auffallen.Aus diesen Gründen empfehlen wir Ihnen
nicht, blindlings &os.stable; zu benutzen.
Es ist wichtig, dass Sie &os.stable; zuerst sorgfältig
in einer Testumgebung austesten, bevor Sie Ihre Produktion
auf &os.stable; migrieren.Wenn Sie dies nicht leisten können, empfehlen wir Ihnen,
das aktuelle FreeBSD Release zu verwenden. Benutzen Sie dann den
binären Update-Mechanismus, um auf neue Releases
zu migrieren.Benutzen von &os.stable;-STABLEbenutzen
- Lesen Sie Mailingliste &a.stable;, damit Sie über
+ Lesen Sie Mailingliste &a.stable.name;, damit Sie über
Abhängigkeiten beim Bau von &os.stable; und Sachen, die
besondere Aufmerksamkeit erfordern, informiert sind.
Umstrittene Fehlerbehebungen oder Änderungen werden von
den Entwicklern auf dieser Liste bekannt gegeben. Dies
erlaubt es den Benutzern, Einwände gegen die
vorgeschlagenen Änderungen vorzubringen.
- In der &a.cvsall; Mailingliste sehen Sie zu jeder
+ In der &a.cvsall.name; Mailingliste sehen Sie zu jeder
Änderung das Commit-Log, das Informationen zu
möglichen Seiteneffekten enthält.
- Um diese Listen zu lesen, senden Sie eine E-Mail
- mit dem folgenden Inhalt im Textkörper der Nachricht
- an &a.majordomo;:
-
- subscribe freebsd-stable
-subscribe cvs-all
-
-
- Majordomo
-
- Sie können Majordomo auch
- den Text help schicken und erhalten dann
- eine ausführliche Hilfe, die beschreibt, wie Sie die
- verschiedenen Mailinglisten abonnieren bzw. wieder
- abbestellen.
+ Um diese Listen oder andere Listen zu abonnieren
+ besuchen Sie bitte die Seite &a.mailman.lists.link;.
+ Weitere Informationen erhalten Sie, wenn Sie dort
+ auf die gewünschte Liste klicken.Wenn Sie ein neues System installieren und so aktuell wie
möglich sein wollen, holen Sie sich einfach den neusten
- Snapshot von ftp://releng4.FreeBSD.org/pub/FreeBSD/
+ Snapshot von
+
und installieren ihn wie ein normales Release.Wenn Sie schon ein älteres Release von &os;
und das System mit dem Quellcode aktualisieren wollen,
benutzen Sie einen der &os;-Spiegel. Sie haben
dazu drei Möglichkeiten:cvsupcron-STABLESynchronisation mit CVSupBenutzen Sie cvsup mit
einer geeigneten Sup-Datei. Dies ist die
empfohlene Methode, da Sie die ganzen Quellen nur einmal
herunterladen und danach nur noch Änderungen
beziehen. Viele lassen cvsup
aus cron heraus laufen, um ihre
Quellen automatisch auf Stand zu bringen. Sie
müssen das oben erwähnte
supfile anpassen und cvsup konfigurieren. Wenn Sie dazu
eine einfache Schnittstelle benötigen, geben sie
Folgendes ein:
-STABLEHerunterladen mit ftpBenutzen Sie ftp. Auf einigen
FTP-Spiegeln ist
der Quellbaum im Verzeichnis
/pub/FreeBSD/FreeBSD-stable/
abgelegt. Manche FTP-Spiegel unterstützen
das Herunterladen von komprimierten mit
tar gepackten Dateibäumen.
Wenn Sie beispielsweise das Verzeichnis
usr.bin/lex als
tar-Datei herunterladen wollen, geben
Sie Folgendes ein:ftp>cd usr.binftp>get lex.tarDer komplette Quellbaum von &os.stable;
lässt sich viel leichter mit
cvsup als mit FTP kopieren.-STABLESynchronisation mit CTMBenutzen Sie
CTM. Wenn Sie über
keine schnelle und billige Internet-Anbindung
verfügen, sollten Sie diese Methode in Betracht
ziehen.Benutzen Sie cvsup oder
ftp, wenn Sie schnellen Zugriff auf die
Quellen brauchen und die Bandbreite keine Rolle spielt,
andernfalls benutzen Sie
CTM.-STABLEübersetzenBevor Sie &os.stable; übersetzen, sollten Sie sich
das Makefile in
/usr/src genau anschauen. Wenn Sie Ihr
System das erste Mal aktualisieren, sollten Sie mindestens
make world laufen lassen.
Lesen Sie bitte die Mailingliste &a.stable;, um über
Änderungen im Installationsverfahren, die manchmal
vor der Einführung eines neuen Releases notwendig sind,
informiert zu sein.Synchronisation der QuellenSie können eine Internet-Verbindung (oder E-Mail) dazu
nutzen, Teile von &os;, wie die Quellen zu einzelnen Projekten, oder
das Gesamtsystem, aktuell zu halten. Dazu bieten wir die Dienste
AnonymousCVS,
CVSup und
CTM an.Obwohl es möglich ist, nur Teile des Quellbaums zu
aktualisieren, ist die einzige unterstütze Migrationsprozedur,
den kompletten Quellbaum zu aktualisieren und alles, das
heißt das Userland (z.B. alle Programme in
/bin und /sbin) und die
Kernelquellen, neu zu übersetzen. Wenn Sie nur einen Teil der
Quellen, zum Beispiel nur den Kernel oder nur die Programme aus dem
Userland, aktualisieren, werden Sie oft Probleme haben, die von
Übersetzungsfehlern über Kernel-Panics bis hin zu
Beschädigungen Ihrer Daten reichen können.anonymous CVSAnonymous CVS und
CVSup benutzen die
Pull-Methode
Von engl. to pull =
ziehen. Der Client holt sich bei dieser
Methode die Dateien ab., um die Quellen zu aktualisieren. Im Fall von
CVSup ruft der Benutzer oder ein
cron-Skript cvsup auf, das
wiederum mit einem cvsupd Server interagiert, um
Ihre Quellen zu aktualisieren. Mit beiden Methoden erhalten Sie
aktuelle Updates zu einem genau von Ihnen bestimmten Zeitpunkt. Sie
können die Prozedur auf bestimmte Dateien oder Verzeichnisse
einschränken, so dass Sie nur die Updates bekommen, die
für Sie von Interesse sind. Die Updates werden zur Laufzeit,
abhängig von den Sachen, die Sie schon haben und den Sachen, die
Sie haben wollen, auf dem Server generiert. Anonymous
CVS ist eine Erweiterung von
CVS, die es Ihnen erlaubt, Änderungen
direkt aus einem entfernten CVS-Repository zu ziehen.
Anonymous CVS ist leichter zu handhaben
als CVSup, doch ist letzteres sehr viel
effizienter.CTMIm Gegensatz dazu vergleicht CTM Ihre
Quellen nicht mit denen auf einem Server. Stattdessen läuft auf
dem Server ein Skript, das Änderungen an Dateien gegenüber
seinem vorigen Lauf bemerkt, die Änderungen komprimiert, mit
einer Sequenznummer versieht und für das Verschicken per E-Mail
kodiert (es werden nur druckbare ASCII-Zeichen verwendet). Wenn Sie
diese CTM-Deltas erhalten haben, können Sie sie
mit &man.ctm.rmail.1; benutzen, welches die Deltas dekodiert,
verifiziert und dann die Änderungen an Ihren Quellen vornimmt.
Dieses Verfahren ist viel effizienter als
CVSup und erzeugt auch weniger Last auf
unseren Servern, da es die
Push-Methode
Von engl. to push =
schieben. Der Server schickt dem Client die
Dateien. verwendet.Es gibt natürlich noch weitere Unterschiede, die Sie
beachten sollten. Wenn Sie unabsichtlich Teile Ihres Archivs
löschen, wird das von CVSup
wie Anonymous CVS erkannt
und repariert. Wenn sich fehlerhafte Dateien in Ihrem Quellbaum
befinden, löschen Sie diese einfach und synchronisieren erneut.
CTM leistet das nicht,
wenn Sie Teile des Quellbaums gelöscht haben und keine Sicherung
besitzen, müssen Sie von neuem, das heißt vom letzten
Basis-Delta, starten und die Änderungen wieder
mit CTM nachziehen.
Bau mit make worldmake worldWenn Sie Ihren lokalen Quellbaum mit einer bestimmten FreeBSD
Version (&os.stable;, &os.current;, usw.) synchronisiert haben,
können Sie diesen benutzen, um das System neu zu
bauen.Erstellen Sie eine Sicherung!Es kann nicht oft genug betont werden, wie wichtig es ist, Ihr
System zu sichern, bevor Sie die nachfolgenden
Schritte ausführen. Obwohl der Neubau des Systems eine
einfache Aufgabe ist, solange Sie sich an die folgende Anleitung
halten, ist es unvermeidlich, dass Sie Fehler machen, oder Ihr
System nicht mehr bootet, weil andere Fehler in den Quellbaum
eingeführt haben.Stellen Sie sicher, dass Sie eine Sicherung erstellt haben
und über eine Fixit-Floppy verfügen. Wahrscheinlich
brauchen Sie sie nicht zu benutzen, aber gehen Sie auf Nummer
Sicher!Abonnieren Sie die richtige MailinglisteMailinglisteDie &os.stable; und &os.current; Zweige befinden sich in
ständiger Entwicklung. Die Leute, die zu
&os; beitragen, sind Menschen und ab und zu machen sie
Fehler.Manchmal sind diese Fehler harmlos und lassen Ihr System eine
Warnung ausgeben. Die Fehler können allerdings auch
katastrophal sein und dazu führen, dass Sie Ihr System
nicht mehr booten können, Dateisysteme beschädigt
werden oder Schlimmeres passiert.Wenn solche Probleme auftauchen, wird ein
heads up an die passende Mailingliste geschickt, welches
das Problem erklärt und die betroffenen Systeme benennt. Eine
all clear Meldung wird versendet, wenn das
Problem gelöst ist.Wenn Sie &os.stable; oder &os.current; benutzen und nicht die
Mailinglisten &a.stable; beziehungsweise &a.current; lesen, bringen
Sie sich nur unnötig in Schwierigkeiten.Lesen Sie /usr/src/UPDATINGBevor Sie etwas anderes tun, lesen Sie bitte
/usr/src/UPDATING (oder die entsprechende
Datei, wenn Sie den Quellcode woanders installiert haben). Die
Datei enthält wichtige Informationen zu Problemen, auf die Sie
stoßen könnten oder gibt die Reihenfolge vor, in der Sie
bestimmte Kommandos laufen lassen müssen. Die Anweisungen in
UPDATING sind aktueller als die in diesem
Handbuch. Im Zweifelsfall folgen Sie bitte den Anweisungen aus
UPDATING.Das Lesen von UPDATING ersetzt nicht das
Abonnieren der richtigen Mailingliste. Die beiden Voraussetzungen
ergänzen sich, es reicht nicht aus, nur eine zu
erfüllen.Überprüfen Sie
/etc/make.confmake.confÜberprüfen Sie die Dateien
/etc/defaults/make.conf und
/etc/make.conf. Die erste enthält
Vorgabewerte, von denen die meisten auskommentiert sind. Um diese
während des Neubaus des Systems zu nutzen, tragen Sie die
Werte in /etc/make.conf ein. Beachten Sie,
dass alles, was Sie in /etc/make.conf
eintragen, bei jedem Aufruf von make angezogen
wird. Es ist also klug, hier etwas Sinnvolles einzutragen.Typischerweise wollen Sie die Zeilen, die
CFLAGS und NOPROFILE
enthalten, aus /etc/defaults/make.conf nach
/etc/make.conf übertragen und dort
aktivieren.Sehen Sie sich auch die anderen Definitionen, wie
COPTFLAGS oder NOPORTDOCS an
und entscheiden Sie, ob Sie diese aktivieren wollen.Aktualisieren Sie die Dateien in /etcDas Verzeichnis /etc enthält den
Großteil der Konfigurationsdateien des Systems und Skripten,
die beim Start des Systems ausgeführt werden. Einige dieser
Skripten ändern sich bei einer Migration auf eine neue
FreeBSD Version.Einige der Konfigurationsdateien, besonders
/etc/group, werden für den Normalbetrieb
des Systems gebraucht.Es gab Fälle, in denen der Installationsteil von
make world auf das Vorhandensein von bestimmten
Accounts oder Gruppen angewiesen war, die aber zurzeit des Updates
noch nicht vorhanden waren. Demzufolge kam es zu Problemen
bei der Migration.Ein Beispiel dafür ist der vor kurzem hinzugefügte
Benutzer smmsp. Die Installationsprozedur
schlug an der Stelle fehl, an der &man.mtree.8;
versuchte, /var/spool/clientmqueue
anzulegen.Um dieses Problem zu umgehen, vergleichen Sie die Gruppen in
/usr/src/etc/group mit den auf Ihrem System
vorhandenen Gruppen. Wenn sich in dieser Datei neue Gruppen
befinden, kopieren Sie diese nach /etc/group.
Gruppen, die in /etc/group dieselbe GID wie in
/usr/src/etc/group aber einen
unterschiedlichen Namen haben, sollten Sie umbenennen.Seit 4.6-RELEASE besitzt &man.mergemaster.8; einen
prä-buildworld Modus, der mit aktiviert
wird. In diesem Modus werden nur Dateien verglichen, die für
den Erfolg von buildworld oder
installworld essentiell sind. Wenn Ihre
alte Version von mergemaster die Option
noch nicht unterstützt, nehmen Sie beim
ersten Lauf die neue Version aus dem Quellbaum:&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -pWenn Sie besonders paranoid sind, sollten Sie Ihr System nach
Dateien absuchen, die der Gruppe, die Sie umbenennen oder
löschen, gehören:&prompt.root; find / -group GID -printDas obige Kommando zeigt alle Dateien an, die der Gruppe
GID (dies kann entweder ein
Gruppenname oder eine numerische ID sein) gehören.Wechseln Sie in den Single-User ModusSingle-User ModusSie können das System im Single-User Modus
übersetzen. Abgesehen davon, dass dies etwas schneller
ist, werden bei der Installation des Systems viele wichtige Dateien,
wie die Standard-Systemprogramme, die Bibliotheken und
Include-Dateien, verändert. Sie bringen sich in
Schwierigkeiten, wenn Sie diese Dateien auf einem laufenden System
verändern, besonders dann, wenn zu dieser Zeit Benutzer auf
dem System aktiv sind.MehrbenutzermodusEine andere Methode übersetzt das System im
Mehrbenutzermodus und wechselt für die Installation den
Single-User Modus. Wenn Sie diese Methode benutzen wollen, warten
Sie mit den folgenden Schritten, bis der Bau des Systems fertig
ist und Sie mit installkernel oder
installworld installieren wollen.Als Superuser können Sie mit dem folgenden Kommando ein
laufendes System in den Single-User Modus bringen:&prompt.root; Alternativ können Sie das System mit der Option
in den Single-User Modus booten. Setzen Sie
dann die folgenden Kommandos ab:&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -aDie Kommandos überprüfen die Dateisysteme,
hängen / wieder beschreibbar ein,
hängen dann alle anderen UFS Dateisysteme aus
/etc/fstab ein und aktivieren den
Swap-Bereich.Zeigt Ihre CMOS-Uhr die lokale Zeit und nicht GMT an, dies
erkennen Sie daran, dass &man.date.1; die
falsche Zeit und eine flasche Zeitzone anzeigt, setzen Sie das
folgende Kommando ab:&prompt.root; adjkerntz -iDies stellt sicher, dass Ihre Zeitzone richtig
eingestellt ist. Ohne dieses Kommando werden Sie
vielleicht später Probleme bekommen.Entfernen Sie /usr/objDie neugebauten Teile des Systems werden in der Voreinstellung
unter /usr/obj gespeichert. Die Verzeichnisse
dort spiegeln die Struktur unter
/usr/src.Sie können den make world Prozess
beschleunigen, indem Sie dieses Verzeichnis entfernen. Dies
erspart Ihnen zudem einigen Ärger aufgrund von
Abhängigkeiten.Einige Dateien unter /usr/obj sind
vielleicht durch die -Option
(siehe &man.chflags.1;) schreibgeschützt, die vor dem
Löschen entfernt werden muss.&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *Übersetzen der QuellenSichern der AusgabenFür den Fall, dass etwas schief geht, sollten Sie
die Ausgaben von &man.make.1; in einer Datei sichern, damit Sie
eine Kopie der Fehlermeldung besitzen. Das mag Ihnen nicht
helfen, den Fehler zu finden, kann aber anderen helfen, wenn Sie
Ihr Problem in einer der &os;-Mailinglisten schildern.Dazu können Sie einfach das Kommando &man.script.1;
benutzen, dem Sie beim Aufruf als Parameter den Dateinamen
für die Ausgaben mitgeben. Setzen Sie das Kommando
unmittelbar vor dem Neubau ab und geben Sie
exit ein, wenn der Bau abgeschlossen
ist:&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET… Ausgaben des Kommandos …
&prompt.root; exit
Script done, …Sichern Sie die Ausgaben nicht in /tmp,
da dieses Verzeichnis beim nächsten Boot aufgeräumt
werden kann. Ein geeigneteres Verzeichnis ist
/var/tmp, wie im vorigen Beispiel gezeigt,
oder das Heimatverzeichnis von root.Übersetzen des BasissystemsWechseln Sie in das Verzeichnis, in dem die Quellen liegen
(in der Voreinstellung ist das
/usr/src):&prompt.root; cd /usr/srcmakeZum Neubau der Welt benutzen Sie &man.make.1;. Dieses
Kommando liest ein Makefile, das Anweisungen
enthält, wie die Programme, aus denen &os; besteht, zu bauen
sind und in welcher Reihenfolge diese zu bauen sind.Ein typischer Aufruf von make sieht wie
folgt aus:&prompt.root; make -x -DVARIABLEtargetIn diesem Beispiel ist
eine Option, die
Sie an &man.make.1; weitergeben wollen. Eine Liste gültiger
Optionen finden Sie in der &man.make.1; Manualpage.Das Verhalten eines Makefiles wird von
Variablen bestimmt. Mit
setzen Sie
eine Variable. Diese Variablen sind dieselben, die auch in
/etc/make.conf gesetzt werden, dies ist nur
ein alternativer Weg, Variablen zu setzen.Um zu verhindern, dass die profiled
Bibliotheken gebaut werden, rufen Sie make wie
folgt auf:&prompt.root; make -DNOPROFILE targetDieser Aufruf entspricht dem folgenden Eintrag in
/etc/make.conf:NOPROFILE= true # Avoid compiling profiled librariesJedes Makefile definiert einige
Ziele, die festlegen, was genau zu tun ist. Mit
target wählen Sie eins dieser
Ziele aus.Einige Ziele im Makefile sind nicht
für den Endanwender gedacht, sondern unterteilen den
Bauprozess in eine Reihe von Einzelschritten.Im Regelfall müssen Sie &man.make.1; keine Parameter
mitgeben, so dass Ihre Kommandozeile wie folgt aussehen
wird:&prompt.root; make targetIn der &os; Version 2.2.5 wurde das Ziel
world in zwei Ziele aufgespalten:
buildworld und
installworld. Tatsächlich ist das
zuerst in &os.current; passiert und wurde dann irgendwann
zwischen den Versionen 2.2.2 und 2.2.5 in &os.stable;
eingebaut.Mit buildworld wird ein kompletter
Baum unterhalb von /usr/obj gebaut, der mit
installworld auf dem System installiert
werden kann.Dies ist aus zwei Gründen nützlich. Erstens
können Sie das System auf einem laufenden System bauen, da die
Bauprozedur abgekapselt vom Rest des Systems ist. Das System
lässt sich im Mehrbenutzermodus ohne negative
Seiteneffekte bauen. Die Installation mit
installworld sollte aber immer noch im
Single-User Modus erfolgen.Zweitens können Sie NFS benutzen, um mehrere Maschinen
in Ihrem Netzwerk zu aktualisieren. Wenn Sie die Maschinen
A, B und C
aktualisieren wollen, lassen sie make
buildworld und make installworld auf
A laufen. Auf den Maschinen B
und C können Sie die
Verzeichnisse /usr/src und
/usr/obj von A einhängen
und brauchen dort nur noch make installworld
auszuführen, um die Bauresultate zu installieren.Obwohl das Ziel world noch
existiert, sollten Sie es wirklich nicht mehr benutzen.Um das System zu bauen, setzen Sie das folgende Kommando
ab:&prompt.root; make buildworldMit können Sie
make anweisen, mehrere Prozesse zu starten.
Besonders effektiv ist das auf Mehrprozessor-Systemen. Da aber
der Übersetzungsprozess hauptsächlich von IO statt
der CPU bestimmt wird, ist diese Option auch auf
Einprozessor-Systemen nützlich.Auf einem typischen Einprozessor-System können Sie den
folgenden Befehl absetzen:&prompt.root; make -j4 buildworld&man.make.1; wird dann bis zu vier Prozesse gleichzeitig
laufen lassen. Erfahrungsberichte aus den Mailinglisten zeigen,
dass dieser Aufruf typischerweise den besten
Geschwindigkeitsgewinn bringt.Wenn Sie ein Mehrprozessor-System besitzen und SMP in Ihrem
Kernel konfiguriert ist, probieren Sie Werte zwischen 6 und 10
aus.Beachten Sie bitte, dass dies noch nicht richtig
unterstützt wird und dass es bei einigen
Änderungen am Quellbaum zu Fehlern kommen kann. Wenn Sie
diesen Parameter benutzt haben und der Bau nicht funktioniert,
bauen Sie bitte noch einmal ohne den Parameter, bevor Sie ein
Problem melden.Laufzeitenmake worldLaufzeitenDie Laufzeit eines Baus wird von vielen Faktoren
beeinflusst. Ein 500 MHz Pentium III braucht
ungefähr zwei Stunden um &os.stable; zu bauen. Der Bau von
&os.current; dauert etwas länger.Übersetzen und Installation des KernelsKernelÜbersetzenUm das Beste aus Ihrem System zu holen, sollten Sie einen neuen
Kernel kompilieren. Praktisch gesehen ist das sogar notwendig, da
sich einige Datenstrukturen geändert haben und Programme wie
&man.ps.1; oder &man.top.1; nur mit einem Kernel zusammen arbeiten,
der auch zu dem entsprechenden Quellcode passt.Am einfachsten und sichersten bauen Sie dazu den
GENERIC Kernel. Obwohl der
GENERIC Kernel vielleicht nicht alle
Ihre Geräte unterstützt, sollte er alles enthalten,
um das System in den Single-User Modus zu booten. Dies ist auch
ein guter Test, um zu sehen, dass das System
ordnungsgemäß funktioniert. Nachdem Sie mit
GENERIC gebootet und sichergestellt haben,
dass Ihr System funktioniert, können Sie einen neuen
Kernel mit Ihrer Konfigurationsdatei bauen.Wenn Sie einen Update nach &os; 4.0 oder höher
durchführen, sollten Sie den Kernel nicht mit der
herkömmlichen Methode,
die in
beschrieben ist, bauen. Stattdessen benutzen Sie die nachstehenden
Kommandos (die neue Methode)
nach dem
Bau des Basissystems mit
buildworld.Wenn Sie einen angepassten Kernel erstellen wollen und
bereits über eine Konfigurationsdatei verfügen,
geben Sie diese, wie im folgenden Beispiel gezeigt, auf der
Kommandozeile an:&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNELWenn Sie FreeBSD 4.2 oder eine ältere Version
verwenden, ersetzen Sie KERNCONF= durch
KERNEL=. Ab der 4.2-STABLE Version vom
2. Februar 2001 können Sie die Variable
KERNCONF verwenden.Wenn kern.securelevel einen Wert
größer als 1 besitzt
und der Kernel mit noschg
oder ähnlichen Optionen geschützt ist, müssen Sie
installkernel im Einbenutzermodus
ausführen. Wenn das nicht der Fall ist, sollten die beiden
Kommandos problemlos im Mehrbenutzermodus laufen. Weitere
Informationen über kern.securelevel finden
Sie in &man.init.8; und &man.chflags.1; erläutert Optionen, die
Sie auf Dateien setzen können.Wenn Sie ein Update auf eine &os; Version vor 4.0
durchführen, sollten Sie die herkömmliche
Methode benutzen. Es ist allerdings empfohlen, dazu die frisch
gebaute Version von &man.config.8; zu benutzen:&prompt.root; /usr/obj/usr/src/usr.sbin/config/config KERNELNAMEBooten Sie in den Single-User ModusSingle-User ModusUm zu prüfen, ob der neue Kernel funktioniert, sollten Sie
in den Single-User Modus booten. Folgen Sie dazu der Anleitung aus
.Installation des SystemsWenn Sie make buildworld benutzt haben, um
das System zu bauen, sollten Sie jetzt
installworld benutzen, um es zu
installieren. Rufen Sie dazu das folgende Kommando auf:&prompt.root; cd /usr/src
&prompt.root; make installworldWenn Sie mit dem make buildworld Kommando
Variablen verwenden haben, müssen Sie dieselben Variablen
auch bei dem make installworld Kommando
angeben. Auf die anderen Optionen trifft das nur bedingt zu:
darf mit installworld
nicht benutzt werden.Sie haben zum Bauen die folgende Kommandozeile
verwendet:&prompt.root; make -DNOPROFILE buildworldBei der Installation setzen Sie dann das folgende Kommando
ab:&prompt.root; make -DNOPROFILE installworldWürden Sie die Variable bei der Installation weglassen,
so würde das System versuchen, die profiled
Bibliotheken, die aber gar nicht gebaut wurden, zu
installieren.Aktualisieren der von make installworld
ausgelassenen DateienNeue oder geänderte Konfigurationsdateien aus einigen
Verzeichnissen, besonders /etc,
/var und /usr werden bei
der Installationsprozedur nicht berücksichtigt.Sie können diese Dateien mit &man.mergemaster.8;
aktualisieren. Alternativ können Sie das auch manuell
durchführen, obwohl wir diesen Weg nicht empfehlen. Egal
welchen Weg Sie beschreiten, sichern Sie vorher den Inhalt von
/etc für den Fall, dass etwas schief
geht.TomRhodesBeigetragen von mergemastermergemasterDas Bourne-Shell Skript &man.mergemaster.8; hilft Ihnen dabei,
die Unterschiede zwischen den Konfigurationsdateien in
/etc und denen im Quellbaum unter
/usr/src/etc zu finden.
mergemaster ist der empfohlene Weg, Ihre
Systemkonfiguration mit dem Quellbaum abzugleichen.Zwischen 3.3-RELEASE und 3.4-RELEASE wurde
mergemaster in das Basissystem integriert, so
dass es in allen -STABLE und -CURRENT Systemen seit der
Version 3.3 vorhanden ist.Rufen Sie mergemaster einfach auf und
schauen Sie zu. Ausgehend von / wird
mergemaster einen virtuellen Root-Baum
aufbauen und darin die neuen Konfigurationsdateien ablegen.
Diese Dateien werden dann mit den auf Ihrem System installierten
verglichen. Unterschiede zwischen den Dateien werden im
&man.diff.1;-Format dargestellt. Neue oder geänderte Zeilen
werden mit gekennzeichnet. Zeilen die
gelöscht oder ersetzt werden, sind mit einem
gekennzeichnet. Das Anzeigeformat wird in
&man.diff.1; genauer erklärt.&man.mergemaster.8; zeigt Ihnen jede geänderte Datei an
und Sie haben die Wahl, die neue Datei (in
mergemaster wird sie temporäre Datei
genannt) zu löschen, sie unverändert zu installieren,
den Inhalt der neuen Datei mit dem Inhalt der alten Datei
abzugleichen, oder die &man.diff.1; Ausgabe noch einmal zu
sehen. Sie können die aktuelle Datei auch
überspringen, sie wird dann noch einmal angezeigt, nachdem
alle anderen Dateien abgearbeitet wurden. Sie erhalten Hilfe,
wenn Sie bei der Eingabeaufforderung von
mergemaster ein ?
eingeben.Wenn Sie die temporäre Datei löschen, geht
mergemaster davon aus, dass Sie Ihre
aktuelle Datei behalten möchten. Wählen Sie die Option
bitte nur dann, wenn Sie keinen Grund sehen, die aktuelle Datei
zu ändern.Wenn Sie die temporäre Datei installieren, wird Ihre
aktuelle Datei mit der neuen Datei überschrieben. Sie
sollten alle unveränderten Konfigurationsdateien auf diese
Weise aktualisieren.Wenn Sie sich entschließen den Inhalt beider Dateien
abzugleichen, wird ein Texteditor aufgerufen, indem Sie beide
Dateien nebeneinander betrachten können. Mit der Taste
l übernehmen Sie die aktuelle Zeile der
links dargestellten Datei, mit der Taste r
übernehmen Sie die Zeile der rechts dargestellten Datei.
Das Ergebnis ist eine Datei, die aus Teilen der beiden
ursprünglichen Dateien besteht und installiert werden kann.
Dieses Verfahren wird gewöhnlich bei veränderten
Dateien genutzt.Haben Sie sich entschieden die Differenzen noch einmal
anzuzeigen, zeigt Ihnen &man.mergemaster.8; dieselbe Ausgabe, die
Sie gesehen haben, bevor die Eingabeaufforderung ausgegeben
wurde.Wenn &man.mergemaster.8; alle Systemdateien abgearbeitet hat,
werden weitere Optionen abgefragt. Sie werden unter
Umständen gefragt, ob Sie die Passwort-Datei neu bauen
oder &man.MAKEDEV.8; laufen lassen wollen. Am Ende
haben Sie die Möglichkeit, den Rest der temporären Dateien
zu löschen.Manueller Abgleich der KonfigurationsdateienWenn Sie den Abgleich lieber selbst ausführen wollen,
beachten Sie bitte, dass Sie nicht einfach die Dateien aus
/usr/src/etc nach /etc
kopieren können. Einige dieser Dateien müssen zuerst
installiert werden, bevor sie benutzt werden
können. Das liegt daran, dass
/usr/src/etc keine exakte Kopie von
/etc ist. Zudem gibt es Dateien, die sich
in /etc befinden aber nicht in
/usr/src/etc. Wenn Sie, wie empfohlen,
mergemaster benutzen, lesen Sie bitte im
nächsten Abschnitt
weiter.Am einfachsten ist es, wenn Sie die neuen Dateien in ein
temporäres Verzeichnis installieren und sie nacheinander auf
Differenzen zu den bestehenden Dateien durchsehen.Sichern Sie die Inhalte von /etcObwohl bei dieser Prozedur keine Dateien in
/etc automatisch verändert werden,
sollten Sie dessen Inhalt an einen sicheren Ort
kopieren:&prompt.root; cp -Rp /etc /etc.oldMit wird rekursiv kopiert und
erhält die Attribute der kopierten
Dateien, wie Zugriffszeiten und Eigentümer.Sie müssen die neuen Dateien in einem temporären
Verzeichnis installieren. /var/tmp/root ist
eine gute Wahl für das temporäre Verzeichnis, in dem
auch noch einige Unterverzeichnisse angelegt werden
müssen.&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distributionDie obigen Kommandos bauen die nötige
Verzeichnisstruktur auf und installieren die neuen Dateien in
diese Struktur. Unterhalb von /var/tmp/root
wurden einige leere Verzeichnisse angelegt, die Sie am besten wie
folgt entfernen:&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/nullIm obigen Beispiel wurde die Fehlerausgabe nach
/dev/null umgeleitet, um die Warnungen
über nicht leere Verzeichnisse zu unterdrücken./var/tmp/root enthält nun alle
Dateien, die unterhalb von / installiert
werden müssen. Sie müssen nun jede dieser Dateien mit
den schon existierenden Dateien vergleichen.Einige der installierten Dateien unter
/var/tmp/root beginnen mit einem /var/tmp/root/ und
/var/tmp/root/root/. Abhängig davon,
wann Sie dieses Handbuch lesen, können mehr Dateien dieser
Art existieren. Verwenden Sie ls -a um
sicherzustellen, dass Sie alle derartigen Dateien
finden.Benutzen Sie &man.diff.1; um Unterschiede zwischen zwei
Dateien festzustellen:&prompt.root; diff /etc/shells /var/tmp/root/etc/shellsDas obige Kommando zeigt Ihnen die Unterschiede zwischen der
installierten Version von /etc/shells und
der neuen Version in /var/tmp/root/etc/shells.
Entscheiden Sie anhand der Unterschiede, ob
Sie beide Dateien abgleichen oder die neue Version über die
alte kopieren wollen.Versehen Sie das temporäre Verzeichnis mit einem
ZeitstempelWenn Sie das System oft neu bauen, müssen Sie
/etc genauso oft aktualisieren. Dies kann
mit der Zeit sehr lästig werden.Sie können das Verfahren beschleunigen, wenn Sie sich
eine Kopie der Dateien behalten, die Sie zuletzt nach
/etc installiert haben. Das folgende
Verfahren zeigt Ihnen, wie das geht.Folgen Sie der normalen Prozedur um das System zu
bauen. Wenn Sie /etc und die anderen
Verzeichnisse aktualisieren wollen, geben Sie dem
temporären Verzeichnis einen Namen, der das aktuelle
Datum enthält. Wenn Sie dies zum Beispiel am
14. Februar 1998 durchführten, hätten Sie die
folgenden Kommandos abgesetzt:&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distributionGleichen Sie die Änderungen entsprechend der
Anleitung von oben ab.Wenn Sie fertig sind, entfernen Sie das Verzeichnis
/var/tmp/root-19980214nicht.Wenn Sie nun neue Quellen heruntergeladen und gebaut
haben, folgen Sie bitte Schritt 1. Wenn Sie zwischen den
Updates eine Woche gewartet haben, haben Sie nun ein
Verzeichnis mit dem Namen
/var/tmp/root-19980221.Sie können nun die Unterschiede, die sich in einer
Woche ergeben haben, sehen, indem Sie &man.diff.1; rekursiv
anwenden:&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221Üblicherweise sind die Differenzen, die Sie jetzt
sehen, kleiner als die Differenzen zwischen
/var/tmp/root-19980221/etc und
/etc. Da die angezeigten Differenzen
kleiner sind, ist es jetzt einfacher den Abgleich der
Dateien durchzuführen.Sie können nun das älteste der beiden
/var/tmp/root-* Verzeichnisse
entfernen:&prompt.root; rm -rf /var/tmp/root-19980214Wiederholen Sie diesen Prozess jedes Mal wenn Sie
Dateien in /etc abgleichen
müssen.Mit &man.date.1; können Sie den Verzeichnisnamen
automatisch erzeugen:&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`Aktualisieren Sie /devDEVFSÜberspringen Sie diesen Abschnitt, wenn Sie
FreeBSD 5.0 oder eine neuere Version benutzen. In diesen
Versionen werden die Gerätedateien automatisch von
&man.devfs.5; angelegt.In den meisten Fällen bemerkt &man.mergemaster.8; wann es
notwendig ist, Gerätedateien in /dev
zu erstellen. Die folgenden Anweisungen zeigen Ihnen, wie Sie dies
manuell durchführen.Um sicher zu gehen, besteht dieser Prozess aus mehreren
Schritten.Kopieren Sie /var/tmp/root/dev/MAKEDEV
nach /dev:&prompt.root; cp /var/tmp/root/dev/MAKEDEV /devMAKEDEVWenn Sie &man.mergemaster.8; benutzt haben, sollte
MAKEDEV schon aktualisiert sein, obwohl es
nicht schadet, das mit diff zu
überprüfen und die Datei, wenn nötig, manuell zu
kopieren.Sichern Sie jetzt die Dateiinformationen aus
/dev. Sie brauchen die Rechte,
Eigentümer, sowie die Major und Minor Nummern der
Gerätedateien (die Zeitstempel sind nicht wichtig). Am
besten erledigen Sie das mit &man.awk.1;:&prompt.root; cd /dev
&prompt.root; ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.outErstellen Sie alle Gerätedateien neu:&prompt.root; Sammeln Sie erneut die Dateiinformationen aus
/dev, diesmal in der Datei
/var/tmp/dev2.out ein. Vergleichen Sie
beide Dateien und suchen Sie nach Gerätedateien, die nicht
erstellt wurden. Sie sollten keine finden, aber es ist besser
das jetzt wirklich zu kontrollieren:&prompt.root; diff /var/tmp/dev.out /var/tmp/dev2.outWenn es doch fehlende Einträge gibt, sind dies
wahrscheinlich fehlende Geräte für Slices. Diese
können Sie mit einem Befehl wie dem folgenden
wiederherstellen:&prompt.root; sh MAKEDEV sd0s1Die genauen Geräte können bei Ihnen
natürlich andere sein.Aktualisieren Sie /standDieser Schritt wurde nur der Vollständigkeit wegen
aufgenommen. Sie können ihn komplett auslassen.Der Vollständigkeit halber wollen Sie vielleicht auch die
Dateien in /stand aktualisieren. Alle Dateien
in diesem Verzeichnis sind Hardlinks zu
/stand/sysinstall. Dieses Programm ist
statisch gelinkt, so dass es unabhängig von den Dateien
in anderen Dateisystemen, insbesondere /usr,
ist.&prompt.root; cd /usr/src/release/sysinstall
&prompt.root; make all installBootenSie sind nun am Ende der Prozedur angelangt. Nachdem Sie sich
davon überzeugt haben, dass Ihr System funktioniert,
booten Sie das System mit &man.fastboot.8;:&prompt.root; fastbootEndeHerzlichen Glückwunsch! Sie haben gerade erfolgreich Ihr
&os; System aktualisiert.Es ist übrigens leicht einen Teil des Systems
wiederherzustellen, für den Fall, dass Ihnen ein kleiner
Fehler unterlaufen ist. Wenn Sie beispielsweise während des
Updates oder Abgleichs /etc/magic aus Versehen
gelöscht haben, wird &man.file.1; nicht mehr funktionieren.
In diesem Fall können Sie das Problem mit dem folgenden
Kommando beheben:&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; FragenMuss ich wirklich immer alles neu bauen, wenn sich
etwas geändert hat?Darauf gibt es keine einfache Antwort. Was zu tun ist,
hängt von den Änderungen ab. Es lohnt
wahrscheinlich nicht, alles neu zu bauen, wenn sich bei einem
CVSup-Lauf nur die folgenden
Dateien geändert haben:src/games/cribbage/instr.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkIn diesem Fall können Sie in die entsprechenden
Unterverzeichnisse wechseln und dort make all
install ausführen. Wenn sich allerdings etwas
Wichtiges, wie src/lib/libc/stdlib,
geändert hat, sollten Sie die Welt oder
mindestens die statisch gelinkten Teile des Systems (sowie
Ihre statisch gelinkten Ergänzungen) neu bauen.Letztendlich ist das Ihre Entscheidung. Sie sind
vielleicht damit zufrieden, das System alle zwei Wochen neu
zu bauen und in der Zwischenzeit die anfallenden
Änderungen zu sammeln. Wenn Sie sich zutrauen, alle
Abhängigkeiten zu erkennen, bauen Sie vielleicht auch
nur die geänderten Sachen neu.Das hängt natürlich auch noch davon ab, wie oft
Sie ein Update durchführen wollen und ob Sie &os.stable;
oder &os.current; benutzen.Der Bau bricht mit vielen
Signal 11-Fehlern (oder anderen
Signalnummern) ab. Was ist da passiert?Signal 11Normalerweise zeigen diese Meldungen Hardwarefehler an.
Ein Neubau der Welt ist ein guter Belastungstest für
Ihre Hardware und zeigt oft Probleme mit dem Speicher auf.
Dies äußert sich darin, dass der Kompiler
mit dem Erhalt von seltsamen Signalen abbricht.Es liegt garantiert ein Hardwarefehler vor, wenn ein
neuer Übersetzungslauf an einer anderen Stelle
abbricht.In diesem Fall können Sie nur einzelne Komponenten
Ihres Systems tauschen, um zu bestimmen, welche Komponente den
Fehler verursacht.Kann ich /usr/obj löschen, wenn
ich fertig bin?Kurze Antwort: Ja.In /usr/obj werden alle Dateien
abgelegt, die während der Übersetzungsphase erstellt
wurden. Dieses Verzeichnis wird in einem der ersten Schritte
der Bauprozedur entfernt. Es macht daher
wenig Sinn, dieses Verzeichnis zu behalten und Sie setzen
eine Menge Plattenplatz, momentan ungefähr 340 MB,
frei, wenn Sie es löschen.Wenn Sie allerdings genau wissen, was Sie tun, können
Sie diesen Schritt bei make world
auslassen. Nachfolgende Bauprozeduren werden dadurch erheblich
schneller, da die meisten Quelldateien nicht mehr neu
übersetzt werden. Dafür können aber subtile
Abhängigkeitsprobleme entstehen, die dazu führen,
dass der Bau auf merkwürdige Weise abbrechen kann.
Dies führt häufig zu unnötigen Diskussionen auf
den &os; Mailinglisten, wenn sich jemand über einen
kaputten Bau beschwert, aber nicht sieht, dass er
Probleme hat, weil er eine Abkürzung genommen hat.Kann ein abgebrochener Bau weitergeführt
werden?Das hängt davon ab, wieweit der Bauprozess
fortgeschritten ist.Üblicherweise werden
essentielle Werkzeuge, wie &man.gcc.1; und &man.make.1;,
und die Systembibliotheken während des Bauprozesses
neu erstellt (dies ist aber keine allgemein gültige
Regel). Die neu erstellen Werkzeuge und Bibliotheken werden
dann benutzt, um sich selbst noch einmal zu bauen, und wieder
installiert. Anschließend wird das Gesamtsystem mit
den neu erstellten Systemdateien gebaut.Wenn Sie sich im letzten Schritt befinden und Sie wissen,
dass Sie dort sind, weil Sie durch die Ausgaben, die Sie
ja sichern, der Bauprozedur gesehen haben, können Sie
mit ziemlicher Sicherheit den Bau weiterführen:… Fehler beheben …
&prompt.root; cd /usr/src
&prompt.root; make -DNOCLEAN allDie Variable NOCLEAN verhindert,
dass make world die vorher erstellten
Dateien löscht.Das Sie sich im letzten Schritt der Bauprozedur
befinden, erkennen Sie daran, dass Sie in der Ausgabe die
folgenden Zeilen finden:--------------------------------------------------------------
Building everything..
--------------------------------------------------------------Wenn Sie diese Meldung nicht finden, oder sich nicht sicher
sind, dann ist es besser, noch einmal ganz von Vorne
anzufangen.Wie kann ich den Bauprozesss beschleunigen?Bauen Sie im Single-User Modus.Legen Sie /usr/src und
/usr/obj in getrennte Dateisysteme auf
unterschiedliche Festplatten. Benutzen Sie nach
Möglichkeit auch getrennte Platten-Controller.Noch besser ist es, diese Dateisysteme auf mehrere
Festplatten mit &man.ccd.4; zu verteilen.Bauen Sie die profiled-Bibliotheken,
die Sie wahrscheinlich sowieso nicht brauchen, nicht.
/etc/make.conf sollte dazu
NOPROFILE=true enthalten.Setzen Sie die CFLAGS in
/etc/make.conf auf . Die Optimierungsstufe
ist deutlich langsamer und die
Performance-Unterschiede zwischen und
sind vernachlässigbar klein.
veranlasst den Kompiler Pipes
anstelle von Dateien für die Kommunikation zu
benutzen. Dies spart einige Plattenzugriffe, geht aber
auf Kosten des Speichers.Benutzen Sie
, um
mehrere Prozesse parallel laufen zu lassen.
Normalerweise beschleunigt dies den Bauprozess
unabhängig davon, ob Sie ein Einprozessor oder
Mehrprozessor System einsetzen.Sie können das Dateisystem
/usr/src mit der Option
einhängen. Dies
verhindert, dass die Zugriffszeiten der Dateien
aktualisiert werden (eine Information, die Sie vielleicht
gar nicht brauchen).&prompt.root; mount -u -o noatime /usr/srcDas Beispiel geht davon aus, dass sich
/usr/src auf einem separaten
Dateisystem befindet. Wenn das nicht der Fall ist,
weil das Verzeichnis beispielsweise Teil des
/usr Dateisystems ist,
müssen Sie anstelle von
/usr/src den Mountpoint des
Dateisystems angeben.Das Dateisystem, in dem sich
/usr/obj befindet, kann mit der
Option eingehangen werden. Dies
bewirkt, dass Schreibzugriffe auf die Platte
asynchron stattfinden, das heißt ein Schreibzugriff
ist sofort beendet, die Daten werden allerdings erst einige
Sekunden später geschrieben. Dadurch können
Schreibzugriffe zusammengefasst werden, was einen
erheblichen Geschwindigkeitszuwachs mit sich bringen
kann.Beachten Sie, dass dies Ihr Dateisystem
anfälliger für Fehler macht. Im Fall eines
Stromausfalls besteht eine erhöhte
Wahrscheinlichkeit, dass das Dateisystem beim
Start der Maschine zerstört ist.Wenn sich /usr/obj auf einem
extra Dateisystem befindet, ist das kein Problem. Wenn
sich allerdings auf diesem Dateisystem noch andere
wertvolle Daten befinden, stellen Sie sicher, dass
Sie aktuelle Sicherungen besitzen.&prompt.root; mount -u -o async /usr/objErsetzen Sie /usr/obj durch
den Mountpoint des entsprechenden Dateisystems, wenn es
sich nicht auf einem eigenen Dateisystem
befindet.Was mache ich, wenn etwas nicht funktioniert?Stellen Sie sicher, dass sich in Ihrer Umgebung
keine Reste eines vorherigen Baus befinden. Das geht ganz
einfach:&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandirJa, make cleandir muss wirklich
zweimal aufgerufen werden.Nachdem Sie aufgeräumt haben, starten Sie den
Bauprozess wieder mit make
buildworld.Wenn Sie immer noch Probleme haben, schicken Sie die
Fehlermeldungen und die Ausgabe von uname
-a an die Mailingliste &a.de.questions;. Bereiten
Sie sich darauf vor, weitere Fragen zu Ihrer Umgebung zu
beantworten.MikeMeyerBeigetragen von Installation mehrerer MaschinenWenn Sie mehrere Maschinen besitzen, die Sie alle auf dem
gleichen Stand halten wollen, ist es eine Verschwendung von
Ressourcen, die Quellen auf jeder Maschine vorzuhalten und zu
übersetzen. Die Lösung dazu ist, eine Maschine den
Großteil der Arbeit durchführen zu lassen und den anderen
Maschinen das Ergebnis mit NFS zur Verfügung zu stellen. Dieser
Abschnitt zeigt Ihnen wie das geht.VoraussetzungenStellen Sie zuerst eine Liste der Maschinen zusammen, die auf
demselben Stand sein sollen. Wir nennen diese Maschinen die
Baugruppe. Jede dieser Maschinen kann mit
einem eigenen Kernel laufen, doch sind die Programme des Userlands
auf allen Maschinen gleich. Wählen Sie aus der Baugruppe eine
Maschine aus, auf der der Bau durchgeführt wird, den
Bau-Master. Dies sollte eine Maschine sein,
die über die nötigen Ressourcen für make
world verfügt. Sie brauchen auch eine
Testmaschine, auf der Sie die Updates testen,
bevor Sie sie in Produktion installieren. Dies sollte eine
Maschine, eventuell der Bau-Master, sein, die über einen
längeren Zeitraum nicht zur Verfügung stehen kann.
Alle Maschinen der Baugruppe müssen
/usr/obj und /usr/src von
derselben Maschine an gleichem Ort einhängen. Idealerweise
befinden sich die beiden Verzeichnisse auf dem Bau-Master auf
verschiedenen Festplatten, sie können allerdings auch auf dem
Bau-Master über NFS zur Verfügung gestellt werden. Wenn
Sie mehrere Baugruppen haben, sollte sich
/usr/src auf einem Bau-Master befinden und
über NFS für den Rest der Maschinen zur Verfügung
gestellt werden.Stellen Sie sicher, dass
/etc/make.conf auf allen Maschinen einer
Baugruppe mit der Datei des Bau-Masters übereinstimmt. Der
Bau-Master muss jeden Teil des Systems bauen, den irgendeine
Maschine der Baugruppe benötigt. Auf dem Bau-Master
müssen in /etc/make.conf alle zu bauenden
Kernel mit der Variablen KERNCONF bekannt gegeben
werden. Geben Sie dabei den Kernel des Bau-Masters zuerst an.
Für jeden zu bauenden Kernel muss auf dem Bau-Master die
entsprechende Konfigurationsdatei unter
/usr/src/sys/arch/conf
abgelegt werden.Installation des BasissystemsNach diesen Vorbereitungen können Sie mit dem Bau
beginnen. Bauen Sie auf dem Bau-Master, wie in beschrieben, den Kernel und die Welt,
installieren Sie aber nichts. Wechseln Sie auf die Testmaschine
und installieren Sie den gerade gebauten Kernel. Wenn diese
Maschine /usr/src und
/usr/obj über NFS bekommt, müssen
Sie das Netzwerk im Single-User Modus aktivieren und die beiden
Dateisysteme einhängen. Am einfachsten ist dies, wenn Sie
auf der Testmaschine ausgehend vom Mehrbenutzermodus mit
shutdown now in den Single-User Modus wechseln.
Sie können dann mit der normalen Prozedur den neuen Kernel
und das System installieren und anschließend
mergemaster laufen lassen. Wenn Sie damit
fertig sind, können Sie die Maschine wieder in den
Mehrbenutzermodus booten.Nachdem Sie sichergestellt haben, dass die Testmaschine
einwandfrei funktioniert, wiederholen Sie diese Prozedur für
jede Maschine in der Baugruppe.Die Ports-SammlungDasselbe Verfahren können Sie auch für die
Ports-Sammlung anwenden. Zuerst müssen alle Maschinen einer
Baugruppe /usr/ports von derselben Maschine
über NFS zur Verfügung gestellt bekommen. Setzen Sie
dann ein Verzeichnis für die Quellen auf, das sich alle
Maschinen teilen. Dieses Verzeichnis können Sie in
/etc/make.conf mit der Variablen
DISTDIR angeben. Das Verzeichnis sollte
für den Benutzer beschreibbar sein, auf den der Benutzer
root vom NFS Subsystem abgebildet wird. Jede
Maschine sollte noch WRKDIRPREFIX auf ein
lokales Bauverzeichnis setzen. Wenn Sie vorhaben, Pakete zu bauen
und zu verteilen, sollten Sie PACKAGES auf ein
Verzeichnis mit den gleichen Eigenschaften wie
DISTDIR setzen.
diff --git a/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml b/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml
index 77a3fb9df9..953d3a15db 100644
--- a/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/desktop/chapter.sgml
@@ -1,1200 +1,1202 @@
ChristopheJunietBeigetragen von MartinHeinenÜbersetzt von Desktop-AnwendungenÜbersichtFreeBSD bietet eine reiche Auswahl an Desktop-Anwendungen,
wie Browser und Textverarbeitungen, die als Pakete oder mit der
Ports-Sammlung installiert werden. Gerade neue Benutzer erwarten
Anwendungen mit einer grafischen Benutzeroberfläche an ihrem
Arbeitsplatz. Dieses Kapitel zeigt Ihnen,
wie Sie einige der beliebtesten Desktop-Anwendungen mühelos
installieren.Wenn Sie Ports installieren, beachten Sie, dass dabei die
Quelltexte der Programme übersetzt werden. Abhängig
von dem Programm und der Geschwindigkeit Ihrer Maschinen kann das
sehr lange dauern. Wenn Ihnen das Übersetzen zu lange dauert,
können Sie die meisten Programme der Ports-Sammlung auch als
fertige Pakete installieren.Da FreeBSD binär kompatibel zu Linux ist, können Sie
zahlreiche für Linux entwickelte Desktop-Anwendungen einsetzen.
Bevor Sie allerdings Linux-Anwendungen installieren, sollten Sie das
lesen. Wenn Sie nach einem bestimmten Port
suchen, zum Beispiel mit &man.whereis.1;, beachten Sie, dass die
Namen vieler Programme, die die Linux-Binärkompatibilität
benutzen, mit linux- anfangen. Wir gehen im
Folgenden davon aus, dass Sie die Linux-Binärkompatibilität
aktiviert haben, bevor Sie Linux-Anwendungen installieren.Dieses Kapitel behandelt Anwendungen aus den Bereichen:Browser (Mozilla,
Netscape,
Opera)Büroanwendungen (KOffice,
AbiWord,
The GIMP,
OpenOffice.org)Dokumentformate(Acrobat
Reader,
gv,
Xpdf,
GQview)Finanzsoftware (
GnuCash,
Gnumeric,
Abacus)Bevor Sie dieses Kapitel lesen, sollten SieSoftware Dritter installieren können
() undLinux-Anwendungen installieren können
().Wie Sie Multimedia-Anwendungen einrichten, wird in einem
gesonderten Kapitel erklärt.
Wie Sie E-Mail einrichten und benutzen, wird in
beschrieben.BrowserFreeBSD besitzt keinen vorinstallierten Browser, stattdessen
enthält das www-Verzeichnis
der Ports-Sammlung Browser, die Sie installieren können.
Wenn Ihnen das Übersetzen der Browser zu lange dauert, bei
einigen Browsern dauert das wirklich lange, installieren Sie die
Pakete, die es für viele Browser gibt.KDE und
GNOME enthalten schon HTML-Browser.
Das Einrichten dieser grafischen Benutzeroberflächen ist
in beschrieben.Wenn Sie besonders schlanke Browser benötigen, suchen Sie in
der Ports-Sammlung nach
www/dillo,
www/links oder
www/w3m.Dieser Abschnitt behandelt die nachstehenden Anwendungen:AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige AbhängigkeitenMozillahochhochGtk+NetscapehochniedrigLinux Binary CompatibilityOperaniedrigniedrigFreeBSD-Version: keine. Linux-Version:
Linux Binary Compatibility und
linux-openmotifMozillaMozillaMozilla ist wahrscheinlich der beste
Browser für Ihren Desktop, da er modern, stabil und komplett
nach FreeBSD portiert ist. Der Browser entspricht dem
HTML-Standard und verfügt über einen E-Mail-Client
und einen Newsreader. Für den Fall, dass Sie
einige HTML-Seiten selbst verfassen wollen, enthält der
Browser auch einen HTML-Editor. Benutzern von
Netscape wird die Ähnlichkeit mit
dem Communicator auffallen, die von der
gemeinsamen Grundlage stammt.Auf langsamen Maschinen, deren CPU-Taktfrequenz weniger als
233 MHz beträgt, oder die weniger als 64 MB Speicher
besitzen, können Sie Mozilla wegen
des Ressourcenbedarfs nur eingeschränkt benutzen. Weniger
Ressourcen verbraucht der Opera Browser,
der gleich in diesem Kapitel behandelt wird.Für den Fall, dass Sie Mozilla
nicht selbst übersetzen wollen, hat das FreeBSD GNOME Team
schon ein Paket für Sie erstellt, das Sie über das Netz
installieren können:&prompt.root; pkg_add -r mozillaWenn das Paket nicht zur Verfügung steht und Sie
genügend Zeit und Plattenplatz haben, können Sie
Mozilla mit den nachstehenden Befehlen
selbst übersetzen und installieren:&prompt.root; cd /usr/ports/www/mozilla
&prompt.root; make install cleanDas Erscheinungsbild von Mozilla
können Sie mit so genannten
Themes oder
Gestures beeinflussen. Der
Mozilla-Port sorgt für die richtige
Installation des Chrome-Themes. Die Installation weiterer
Zusatzkomponenten erfordert allerdings
root-Rechte.Nachdem Sie die Installation von
Mozilla abgeschlossen haben,
benötigen Sie die root-Rechte nicht mehr.
Starten Sie den Browser dann einfach mit dem Kommando:&prompt.user; mozillaSie können auch den E-Mail-Client oder den Newsreader
direkt starten:&prompt.user; mozilla -mailTomRhodesBeigetragen von Mozilla, Java und Shockwave FlashDie Installation von Mozilla ist
einfach, die Installation von Mozilla
mit Java und Shockwave
Flash ist dagegen zeitaufwändig und verbraucht
viel Plattenplatz.Zuerst müssen Sie die nötigen Dateien herunterladen.
Besuchen Sie mit einem Browser die URL
-
- http://www.sun.com/software/java2/download.html und legen
- Sie sich dort einen Account an. Merken Sie sich den Account und das
- Passwort für den Fall, dass Sie den Account später
- benötigen. Laden Sie die Datei
+
+ und legen Sie sich dort einen Account an. Merken Sie sich
+ den Account und das Passwort für den Fall, dass Sie den
+ Account später benötigen. Laden Sie die Datei
j2sdk-1_3_1-src.tar.gz herunter (der
Port kann sie wegen der Lizenz-Bestimmungen nicht automatisch
holen) und speichern Sie die Datei im Verzeichnis
/usr/ports/distfiles/. Weiterhin brauchen Sie
noch eine lauffähige Java-Umgebung, die Sie direkt von
-
- http://java.sun.com/webapps/download/Display?BundleId=7163
+
herunterladen können. Die Datei
j2sdk-1_3_1_06-linux-i586.bin ist
25 Megabyte groß und muss ebenfalls nach
/usr/ports/distfiles/ gestellt werden.
Schließlich benötigen Sie noch das Java-Patchkit von
-
- http://www.eyesbeyond.com/freebsddom/java/, das Sie auch in
- /usr/ports/distfiles/ ablegen.
+ ,
+ das Sie auch in /usr/ports/distfiles/
+ ablegen.
Installieren Sie nun den Port java/jdk13 nach dem üblichen
Verfahren mit make install clean. Danach
können Sie den Port www/flashpluginwrapper installieren.
Beide Ports benötigen den großen Port
emulators/linux_base.Kopieren Sie die Flash-Plugin-Dateien
mit den nachstehenden Kommandos:&prompt.root; cp /usr/local/lib/flash/libflashplayer.so /usr/X11R6/lib/mozilla/plugins/libflashplayer_linux.so
&prompt.root; cp /usr/local/lib/flash/ShockwaveFlash.class /usr/X11R6/lib/mozilla/plugins/Der Port www/mozilla-devel
verwendet andere Zielverzeichnisse.Fügen Sie die folgenden Zeilen unterhalb von
#!/bin/sh in das Startskript
/usr/X11R6/bin/mozilla ein:LD_PRELOAD=/usr/local/lib/libflashplayer.so.1
export LD_PRELOADDamit wird das Flash-Plug-in
beim Start von Mozilla aktiviert.Starten Sie Mozilla wie
gewöhnlich mit dem Kommando:&prompt.user; mozilla &Eine Liste der installierten Plug-ins erhalten Sie, wenn Sie im
Menü Help den Punkt About
Plug-ins auswählen.
Java und Shockwave
Flash sollten hier aufgeführt sein.NetscapeNetscapeIn der Ports-Sammlung sind mehrere Versionen des
Netscape Browsers enthalten. Da aber
alle FreeBSD Versionen ein Sicherheitsproblem haben, sollten Sie
eine neuere Linux oder DIGITAL UNIX Version einsetzen.Die letzte stabile Version des Netscape Browsers ist
Netscape 7. Sie kann aus der
Ports-Sammlung installiert werden:&prompt.root; cd /usr/ports/www/netscape7
&prompt.root; make install cleanIn der Ports-Sammlung gibt es lokalisierte Versionen auf
Französisch, Deutsch und Japanisch.Ältere Versionen wie Netscape 4.x
sollten nicht mehr verwendet werden, da sie nicht mehr konform
mit den heutigen Standards sind. Allerdings stehen die
Netscape 7.x Programme nur für die
i386-Plattform zur Verfügung.OperaOperaOpera ist ein schneller,
vollwertiger und Standard konformer Browser. Sie können
zwischen zwei Versionen des Browsers wählen: Der
FreeBSD-Version und der Linux-Version. Für jedes
Betriebssystem gibt es eine kostenlose Version, die Werbung
anzeigt. Die Version ohne Werbung können Sie auf der
Opera Webseite erstehen.
Wenn Sie das Web mit der FreeBSD-Version von
Opera erkunden
wollen, installieren Sie das Paket:&prompt.root; pkg_add -r operaEinige FTP-Server haben nicht alle Pakete, Sie können
Opera aber über die Ports-Sammlung
installieren:&prompt.root; cd /usr/ports/www/opera
&prompt.root; make install cleanWenn Sie die Linux-Version des Browsers verwenden wollen,
ersetzen Sie in den Beispielen opera durch
linux-opera. Wenn Sie Plugins einsetzen
wollen, die nur für Linux erhältlich sind, wie
das Adobe Acrobat Reader Plugin,
benötigen Sie die Linux-Version. Ansonsten sind die
FreeBSD- und Linux-Versionen des Browsers äquivalent.BüroanwendungenNeue Benutzer suchen oft ein komplettes Office-Paket oder eine
leicht zu bedienende Textverarbeitung. Einige
Benutzeroberflächen
wie KDE bieten schon ein Office-Paket,
aber unter FreeBSD ist keine derartige Anwendung vorinstalliert.
Unabhängig von der verwendeten Benutzeroberfläche, stellt
Ihnen FreeBSD die benötigten Programme zur
Verfügung.Dieser Abschnitt behandelt die nachstehenden Anwendungen:AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige AbhängigkeitenKOfficeniedrighochKDEAbiWordniedrigniedrigGtk+ oder
GNOMEThe GimpniedrighochGtk+OpenOffice.orghochenormGCC 3.1,
JDK 1.3,
MozillaKOfficeKOfficeOffice-PaketKOfficeDie KDE-Gemeinschaft stellt ein Office-Paket bereit, das auch
außerhalb von KDE eingesetzt
werden kann. Es besteht aus vier, von anderen Office-Paketen
bekannten, Komponenten: KWord ist die
Textverarbeitung, KSpread die
Tabellenkalkulation, mit KPresenter
werden Präsentationen erstellt und
Kontour ist ein Zeichenprogramm.Stellen Sie vor der Installation des neusten
KOffice sicher, dass Sie eine aktuelle
Version von KDE besitzen.Mit dem folgenden Kommando installieren Sie das
KOffice-Paket:&prompt.root; pkg_add -r kofficeWenn das Paket nicht zur Verfügung steht, benutzen Sie
bitte die Ports-Sammlung. Wenn Sie beispielsweise
KOffice für
KDE3 installieren wollen, setzen Sie die
nachstehendenen Befehle ab:&prompt.root; cd /usr/ports/editors/koffice-kde3
&prompt.root; make install cleanAbiWordAbiWordAbiWord ist eine freie
Textverarbeitung, die ähnlich wie
Microsoft Word
ist. Sie können damit Artikel, Briefe, Berichte,
Notizen usw. verfassen. Das Programm ist
sehr schnell, besitzt viele Funktionen und ist sehr
benutzerfreundlich.AbiWord kann viele Dateiformate,
unter anderem nicht offene wie Microsoft's .doc,
importieren und exportieren.Das AbiWord-Paket installieren Sie
wie folgt:&prompt.root; pkg_add -r AbiWord-gnomeSollte das Paket nicht zur Verfügung stehen, können
Sie das Programm mit der Ports-Sammlung, die zudem aktueller als
die Pakete ist, übersetzen. Gehen Sie dazu
folgendermaßen vor:&prompt.root; cd /usr/ports/editors/AbiWord
&prompt.root; make install cleanThe GIMPThe GIMPThe GIMP ist ein sehr ausgereiftes
Bildverarbeitungsprogramm mit dem Sie Bilder erstellen oder
retuschieren können. Sie können es sowohl als einfaches
Zeichenprogramm als auch zum retuschieren von Fotografien benutzen.
Das Programm besitzt eine eingebaute Skriptsprache und es existieren
sehr viele Plug-Ins. The GIMP kann
Bilder in zahlreichen Formaten lesen und speichern und stellt
Schnittstellen zu Scannern und grafischen Tabletts zur
Verfügung.Sie installieren das Paket mit dem nachstehenden Befehl:&prompt.root; pkg_add -r gimpBenutzen Sie die Ports-Sammlung, wenn Ihr FTP-Server das Paket
nicht bereitstellt. Im Verzeichnis graphics
finden Sie das Handbuch The Gimp Manual.
Sie können alles mit den folgenden Befehlen
installieren:&prompt.root; cd /usr/ports/graphics/gimp1
&prompt.root; make install clean
&prompt.root; cd /usr/ports/graphics/gimp-manual-pdf
&prompt.root; make install cleanDie Entwickler-Version von The GIMP
finden Sie im Verzeichnis graphics
der Ports-Sammlung. Das Handbuch ist in den Formaten PostScript
(graphics/gimp-manual-ps)
und HTML
(graphics/gimp-manual-html)
erhältlich.OpenOffice.orgOpenOffice.orgOffice-PaketOpenOffice.orgOpenOffice.org enthält alles
was von einem Office-Paket erwartet wird: Textverarbeitung,
Tabellenkalkulation, Präsentation und ein Zeichenprogramm.
Die Bedienung gleicht anderen Office-Paketen und das Programm
kann zahlreiche Dateiformate importieren und exportieren. Es gibt
lokalisierte Versionen mit angepassten Menüs,
Rechtschreibkontrollen und Wörterbüchern.Die Textverarbeitung von
OpenOffice.org speichert Dateien im
XML-Format. Dadurch wird die Verwendbarkeit der Dateien auf
anderen Systemen erhöht und die Handhabung der Daten
vereinfacht. Die Tabellenkalkulation besitzt eine Makrosprache
und eine Schnittstelle zu Datenbanken.
- OpenOffice.org läuft schon stabil
- auf Windows, Solaris und Linux, die Portierungen nach FreeBSD und
- Mac OS X sind fast abgeschlossen. Weitere
+ OpenOffice.org läuft auf
+ Windows, Solaris, Linux, FreeBSD und Mac OS X. Weitere
Informationen über OpenOffice.org
finden Sie auf der OpenOffice Website.
+ url="http://www.openoffice.org/">OpenOffice Website.
+ Spezifische Informationen für FreeBSD finden Sie auf
+ der Webseite FreeBSD OpenOffice
+ Porting Team. Von dort können Sie auch direkt
+ das OpenOffice-Paket herunterladen.
OpenOffice.org installieren Sie wie
folgt:&prompt.root; pkg_add -r openofficeNachdem das Paket installiert ist, müssen Sie
OpenOffice.org konfigurieren. Die
Konfiguration muß mit dem Benutzer, der das Paket später
verwendet, durchgeführt werden:&prompt.user; openoffice-setupWählen Sie im Konfigurationsprogramm die Option
.Falls die OpenOffice.org-Pakete
nicht zur Verfügung stehen, können Sie immer noch die
Ports-Sammlung benutzen. Beachten Sie aber bitte, dass Sie sehr
viel Plattenplatz und Zeit benötigen, um die Quellen zu
übersetzen.&prompt.root; cd /usr/ports/editors/openoffice
&prompt.root; make install cleanEin Benutzer, der OpenOffice.org
verwenden will, muss das Paket zuerst konfigurieren:&prompt.user; cd /usr/ports/editors/openoffice
&prompt.user; make install-userIm Konfigurationsprogramm ist der Punkt auszuwählen.Lokalisierte Versionen existieren für die nachstehenden
Sprachen:SprachePortArabischeditors/openoffice-arDänischeditors/openoffice-dkSpanischeditors/openoffice-esGriechischeditors/openoffice-grItalienischeditors/openoffice-itHolländischeditors/openoffice-nlPolnischeditors/openoffice-plSchwedischeditors/openoffice-seTürkischeditors/openoffice-trFranzösischfrench/openofficeDeutschgerman/openofficeJapanischjapanese/openofficeKoreanischkorean/openofficePortugiesischeditors/openoffice-ptRussischrussian/openofficeAnzeigen von DokumentenEinige neue Dokumentformate, die sich großer Beliebtheit
erfreuen, können Sie sich mit dem Basissystem nicht ansehen.
Dieser Abschnitt behandelt Programme, mit denen Sie sich Dokumente in
unterschiedlichen Formaten ansehen können.Die nachstehenden Anwendungen werden behandelt:AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige AbhängigkeitenAcrobat ReaderniedrigniedrigLinux Binary CompatibilitygvniedrigniedrigXaw3dXpdfniedrigniedrigFreeTypeGQviewniedrigniedrigGtk+ oder
GNOMEAcrobat ReaderAcrobat ReaderPDFanzeigenViele Dokumente werden heute im Portable Document
Format (PDF) zur Verfügung gestellt. PDF-Dokumente
schauen Sie sich am Besten mit dem Programm Acrobat
Reader an, das von Adobe für Linux freigegeben
wurde. Da Linux-Programme unter FreeBSD laufen, steht Ihnen das
Programm auch zur Verfügung.Das Acrobat Reader 5 Paket
installieren Sie wie folgt:&prompt.root; pkg_add -r acroread5Wenn das Paket nicht zur Verfügung steht, oder Sie die
neuste Version installieren möchten, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/print/acroread5
&prompt.root; make install cleanDas Programm Acrobat Reader gibt
es in verschiedenen Versionen:
print/acroread (Version 3.0.2),
print/acroread4 (Version 4.0.5)
und
print/acroread5 (Version 5.0.6).
Es kann sein, dass für Ihre FreeBSD-Version nicht alle
Pakete zur Verfügung stehen; die Ports-Sammlung wird aber
immer die neusten Versionen enthalten.gvgvPDFanzeigenPostScriptanzeigengv kann PostScript- und
PDF-Dokumente anzeigen. Es stammt von
ghostview ab, besitzt aber wegen der
Xaw3d-Bibliothek eine
schönere Benutzeroberfläche.
In gv können Sie viele Operationen
durchführen: Sie können die Ausrichtung
und die Papiergröße eines Dokuments ändern,
das Dokument skalieren oder glätten
(Anti-Aliasing). Fast jede
Operation kann sowohl mit der Tastatur als auch der Maus
durchgeführt werden.Installieren Sie das gv-Paket wie
folgt:&prompt.root; pkg_add -r gvBenutzen Sie die Ports-Sammlung, wenn das Paket nicht zur
Verfügung steht:&prompt.root; cd /usr/ports/print/gv
&prompt.root; make install cleanXpdfXpdfPDFanzeigenEin schlankes und effizientes Programm zum Betrachten von
PDF-Dateien ist Xpdf. Es benötigt
wenige Ressourcen und ist sehr stabil. Da das Programm die Standard
X-Zeichensätze benutzt, ist es nicht auf Motif oder ein
anderes X-Toolkit angewiesen.Das Xpdf-Paket können Sie mit
dem folgenden Kommando installieren:&prompt.root; pkg_add -r xpdfWenn das Paket nicht verfügbar ist, oder Sie lieber die
Ports-Sammlung benutzen möchten, gehen Sie wie folgt vor:&prompt.root; cd /usr/ports/graphics/xpdf
&prompt.root; make install cleanWenn Sie nach Abschluss der Installation
Xpdf starten, öffnen Sie
das Menü mit der rechten Maustaste.GQviewGQviewMit GQview lassen sich Bilder
verwalten. Unter anderem können Sie sich Bilder (auch auf dem
ganzen Bildschirm) anschauen, ein externes Werkzeug aufrufen und
eine Vorschau (thumbnail) erzeugen.
Weiterhin können Sie automatisch ablaufende
Präsentationen erstellen und grundlegende Dateioperationen
durchführen, Bildersammlungen verwalten und doppelte Bilder
aufspüren. GQview ist
internationalisiert, das heißt es berücksichtigt die
Spracheinstellungen des Systems.Wenn Sie das GQview-Paket
installieren wollen, geben Sie das folgende Kommando ein:&prompt.root; pkg_add -r gqviewIst das Paket nicht erhältlich, oder wenn Sie die
Ports-Sammlung bevorzugen, setzen Sie die folgenden Kommandos
ab:&prompt.root; cd /usr/ports/graphics/gqview
&prompt.root; make install cleanFinanzsoftwareWenn Sie, warum auch immer, Ihre Finanzen mit einem FreeBSD
Arbeitsplatz verwalten wollen, stehen Ihnen verschiedene Anwendungen
zur Verfügung. Einige von ihnen unterstützen verbreitete
Formate, wie die von Quicken
oder Excel verwendeten.Dieser Abschnitt behandelt die folgenden Anwendungen:AnwendungRessourcenbedarfInstallationsaufwand aus den Portswichtige AbhängigkeitenGnuCashniedrighochGNOMEGnumericniedrighochGNOMEAbacusniedrigniedrigTcl/TkGnuCashGnuCashGnuCash ist Teil des
GNOME-Projekts, dessen Ziel es ist,
leicht zu bedienende und doch leistungsfähige Anwendungen zu
erstellen. Mit GnuCash können Sie
Ihre Einnahmen und Ausgaben, Ihre Bankkonten und Wertpapiere
verwalten. Das Programm ist leicht zu bedienen und genügt
dennoch hohen Ansprüchen.GnuCash stellt ein Register,
ähnlich dem in einem Scheckheft und ein hierarchisches System
von Konten zur Verfügung. Eine Transaktion kann in einzelne
Teile aufgespaltet werden. GnuCash kann
Quicken-Dateien (QIF) importieren und einbinden. Weiterhin
unterstützt das Programm die meisten internationalen Formate
für Zeitangaben und Währungen. Die Bedienung des
Programms kann durch zahlreiche Tastenkombinationen und dem
automatischen Vervollständigen von Eingaben beschleunigt
werden.Das GnuCash-Paket installieren Sie
wie folgt:&prompt.root; pkg_add -r gnucashWenn das Paket nicht zur Verfügung steht, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/finance/gnucash
&prompt.root; make install cleanGnumericGnumericTabellenkalkulationGnumericGnumeric ist eine
Tabellenkalkulation, die Teil der GNOME
Benutzeroberfläche ist. Das Programm kann Eingaben anhand des
Zellenformats oder einer Folge von Eingaben vervollständigen.
Dateien verbreiteter Formate, wie die von
Excel,
Lotus 1-2-3 oder
Quattro Pro lassen sich importieren.
Grafiken erstellt Gnumeric mit dem
Programm math/guppi.
Gnumeric besitzt viele eingebaute
Funktionen und Zellenformate (zum Beispiel die üblich
verwendeten, wie Zahl, Währung, Datum oder Zeit).Installieren Sie das Gnumeric-Paket
mit dem folgenden Kommando:&prompt.root; pkg_add -r gnumericWenn das Paket nicht zur Verfügung steht, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/math/gnumeric
&prompt.root; make install cleanAbacusAbacusTabellenkalkulationAbacusAbacus ist eine kleine und leicht zu
bedienende Tabellenkalkulation. Die vordefinierten Funktionen
stammen aus verschiedenen Bereichen wie der Statistik, der
Wirtschaft und der Mathematik. Das Programm kann Dateien im
Excel Dateiformat importieren und
exportieren sowie Ausgaben in PostScript erzeugen.Installieren Sie das Abacus-Paket
mit dem folgenden Kommando:&prompt.root; pkg_add -r abacusWenn das Paket nicht zur Verfügung steht, benutzen Sie die
Ports-Sammlung:&prompt.root; cd /usr/ports/deskutils/abacus
&prompt.root; make install cleanZusammenfassungFreeBSD wird von Internet Service Providern wegen seiner
Schnelligkeit und Stabilität eingesetzt, es ist aber auch
zum Einrichten eines Arbeitsplatzes geeignet. Mit tausenden
Anwendungen, die als
Pakete oder
Ports
zur Verfügung stehen, können Sie sich einen
Arbeitsplatz nach Ihren Wünschen einrichten.Wenn Sie einen Arbeitsplatz einrichten, schauen Sie sich den Port
misc/instant-workstation an.
Dieser Meta-Port fasst typische Anwendungen für einen
Arbeitsplatz zusammen. Den Port können Sie anpassen, indem Sie
in /usr/ports/misc/instant-workstation/Makefile
Ports hinzufügen oder löschen. Folgen Sie dabei der
vorgegebenen Syntax und bauen Sie den Port nach dem üblichen
Verfahren. Am Ende erhalten Sie ein großes Paket, das Ihren
maßgeschneiderten Arbeitsplatz enthält. Dieses Paket
können Sie dann natürlich auch auf Ihre anderen Rechner
installieren.Die folgende Aufstellung fasst die in diesem Kapitel besprochenen
Anwendungen zusammen:AnwendungPaket-NamePort-NameMozillamozillawww/mozillaNetscapelinux-netscape7www/netscape7Operalinux-operawww/linux-operaKOfficekoffice-kde3editors/koffice-kde3AbiWordAbiWord-gnomeeditors/AbiWordThe GIMPgimpgraphics/gimp1OpenOffice.orgopenofficeeditors/openofficeAcrobat Readeracroread5print/acroread5gvgvprint/gvXpdfxpdfgraphics/xpdfGQviewgqviewgraphics/gqviewGnuCashgnucashfinance/gnucashGnumericgnumericmath/gnumericAbacusabacusdeskutils/abacus
diff --git a/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml b/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
index b3c2c9e64f..0b83327272 100644
--- a/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/eresources/chapter.sgml
@@ -1,2069 +1,2068 @@
Ressourcen im InternetGedruckte Medien können mit der schnellen Entwicklung von
FreeBSD nicht Schritt halten. Elektronische Medien sind häufig
die einzige Möglichkeit, über aktuelle Entwicklungen
informiert zu sein. Da FreeBSD ein Projekt von Freiwilligen ist, gibt
die Benutzergemeinde selbst auch technische Unterstützung. Die
Benutzergemeinde erreichen Sie am besten über E-Mail oder
Usenet-News.Die wichtigsten Wege, auf denen Sie die FreeBSD Benutzergemeinde
erreichen können, sind unten dargestellt. Wenn Sie weitere
Ressourcen kennen, die hier fehlen, schicken Sie diese bitte an die
Mailingliste &a.doc;, so dass sie hier aufgenommen werden
können.MailinglistenObwohl viele FreeBSD Entwickler Usenet-News lesen, können
wir nicht garantieren, dass Sie eine zügige Antwort auf
Ihre Fragen bekommen, wenn Sie diese nur in einer der
comp.unix.bsd.freebsd.* Gruppen stellen. Wenn Sie
Ihre Fragen auf der passenden Mailingliste stellen, erreichen Sie
sowohl die Entwickler wie auch die FreeBSD Benutzergemeinde und
erhalten damit bessere (oder zumindest schnellere) Antworten.Die Chartas der verschiedenen Listen sind unten wiedergegeben.
Bevor Sie sich einer Mailingliste anschließen oder
E-Mails an eine Liste senden, lesen Sie bitte die Charta der
Liste. Die meisten Mitglieder unserer Mailinglisten
erhalten Hunderte E-Mails zum Thema FreeBSD pro Tag. Die Chartas und
Regeln, die den Gebrauch der Listen beschreiben, garantieren die hohe
Qualität der Listen. Die Listen würden ihren hohen Wert
für das Projekt verlieren, wenn wir weniger Regeln aufstellen
würden.Alle Mailinglisten werden archiviert und können auf dem
FreeBSD World Wide Web
Server durchsucht werden. Das nach
Schlüsselwörtern durchsuchbare Archiv bietet die
hervorragende Möglichkeit, Antworten auf häufig gestellte
Fragen zu finden. Nutzen Sie bitte diese Möglichkeit bevor Sie
Fragen auf einer Liste stellen.Beschreibung der MailinglistenAllgemeine Listen: Jeder kann die
folgenden allgemeinen Listen abonnieren (und ist dazu
aufgefordert):MailinglisteZweck&a.cvsall.name;Änderungen im FreeBSD-Quellbaum&a.advocacy.name;Verbreitung von FreeBSD&a.announce.name;Wichtige Ereignisse und Meilensteine des
Projekts&a.arch.name;Architektur und Design von FreeBSD&a.bugbusters.name;Diskussionen über die Pflege der FreeBSD
Fehlerberichte-Datenbank und die dazu benutzten
Werkzeuge&a.bugs.name;Fehlerberichte&a.chat.name;Nicht technische Themen, die die FreeBSD Gemeinschaft
betreffen&a.config.name;Entwicklung von Konfigurations- und
Installations-Werkzeugen für FreeBSD&a.current.name;Gebrauch von &os.current;&a.isp.name;Themen, die Internet Service Provider betreffen, die
FreeBSD benutzen&a.jobs.name;Anstellung und Beratung im FreeBSD Umfeld&a.newbies.name;-newbiesStarthilfen für neue FreeBSD Benutzer&a.policy.name;Grundsatzentscheidungen des FreeBSD Core Teams. Wenig
Verkehr und nur zum Lesen&a.questions.name;Benutzerfragen und technische
Unterstützung&a.security-notifications.name;Ankündigungen zum Thema Sicherheit&a.stable.name;Gebrauch von &os.stable;&a.test.name;Schicken Sie Testnachrichten an diese Liste anstelle
der wirklichen ListenTechnische Listen: Auf den folgenden
Listen werden technische Diskussionen geführt. Bevor Sie eine
der Listen abonnieren oder Nachrichten an sie schicken, lesen Sie
sich bitte die Charta der Liste durch, da der Inhalt und Zweck
dieser Listen genau festgelegt ist.MailinglisteZweck&a.afs.name;Portierung von AFS nach FreeBSD&a.aic7xxx.name;Entwicklung von Adaptec AIC 7xxx Treibern&a.alpha.name;Portierung von FreeBSD auf Alpha Maschinen&a.arm.name;Portierung von FreeBSD auf ARM Prozessoren&a.atm.name;Benutzung von ATM Netzen mit FreeBSD&a.audit.name;Audit der FreeBSD Quellen&a.binup.name;Design und Entwicklung eines Systems, das es erlaubt,
ein FreeBSD System mit binären Paketen zu
aktualisieren&a.cluster.name;Benutzung von FreeBSD in einem Cluster&a.cvsweb.name;Pflege von CVSweb&a.database.name;Diskussion über Datenbanken und
Datenbankprogrammierung unter FreeBSD&a.doc.name;Erstellen der FreeBSD Dokumentation&a.emulation.name;Emulation anderer Systeme wie Linux, DOS oder
Windows&a.firewire.name;Technische Diskussion über FreeBSD Firewire
(iLink, IEEE 1394)&a.fs.name;Dateisysteme&a.gnome.name;Portierung von GNOME und
GNOME-Anwendungen&a.hackers.name;Allgemeine technische Diskussionen&a.hardware.name;Allgemeine Diskussion über Hardware, auf der
FreeBSD läuft&a.i18n.name;Internationalisierung von FreeBSD&a.ia32.name;FreeBSD für die IA-32 (Intel x86) Plattform&a.ia64.name;Portierung von FreeBSD auf Intels neue IA64
Systeme&a.ipfw.name;Technische Diskussion über die Neubearbeitung der
IP-Firewall Quellen&a.isdn.name;Für Entwickler des ISDN Systems&a.java.name;Für Java-Entwickler und Leute, die JDKs nach
FreeBSD portieren&a.kde.name;Portierung von KDE und
KDE-Anwendungen&a.lfs.name;Portierung von LFS nach FreeBSD&a.libh.name;Das nächste Installations- und
Paketsystem&a.mips.name;Portierung von FreeBSD zu MIPS&a.mobile.name;Diskussionen über mobiles Rechnen&a.mozilla.name;Portierung von Mozilla
nach FreeBSD&a.multimedia.name;Multimedia Anwendungen&a.newbus.name;Technische Diskussionen über die Architektur von
Bussen&a.net.name;Diskussion über Netzwerke und den TCP/IP
Quellcode&a.openoffice.name;Portierung von OpenOffice.org
und StarOffice nach FreeBSD&a.performance.name;Fragen zur Optimierung der Leistung stark
ausgelasteter Systeme&a.platforms.name;Portierungen von FreeBSD auf nicht-Intel
Architekturen&a.ports.name;Diskussion über die Ports-Sammlung&a.ports-bugs.name;Diskussion über Fehler und PRs der Ports&a.ppc.name;Portierung von FreeBSD auf den PowerPC&a.qa.name;Diskussion über Qualitätssicherung,
normalerweise kurz vor einem Release&a.realtime.name;Entwicklung von Echtzeiterweiterungen für
FreeBSD&a.scsi.name;Diskussion über das SCSI Subsystem&a.security.name;Sicherheitsthemen&a.small.name;Gebrauch von FreeBSD in eingebetteten Systemen&a.smp.name;Diskussionen über das Design von asymmetrischen
und symmetrischen Mehrprozessor-Programmen&a.sparc.name;Portierung von FreeBSD auf SPARC Systeme&a.standards.name;Konformität von FreeBSD mit den C99- und
POSIX-Standards&a.threads.name;Leichgewichtige Prozesse
(Threads) in FreeBSD&a.testing.name;Leistungs- und Stabilitätstests von FreeBSD&a.tokenring.name;Token Ring Unterstützung in FreeBSDEingeschränkte Listen: Die folgenden
Listen wenden sich an Zielgruppen mit speziellen Anforderungen und
sind nicht für die Öffentlichkeit gedacht. Bevor Sie
eine dieser Listen abonnieren, sollten Sie einige der technischen
Listen abonniert haben, um mit den Umgangsformen vertraut zu
sein.MailinglisteZweck&a.core.name;FreeBSD Core Team&a.hubs.name;Betrieb von FreeBSD Spiegeln&a.usergroups.name;Koordination von Benutzergruppen&a.vendors.name;Koordination von Händlern vor einem
Release&a.www.name;Betreuer von www.FreeBSD.orgZusammenfassungen: Alle eben
aufgezählten Listen sind auch in zusammengefasster
Form (digest) erhältich.
In den Einstellungen Ihres Accounts legen Sie fest,
in welcher Form Sie die Listen empfangen.CVS Listen: Die folgenden Listen versenden
die Log-Einträge zu Änderungen an verschiedenen
Teilen des Quellbaums. Diese Listen sollen nur
gelesen werden, schicken Sie bitte keine Nachrichten
an eine der Listen.MailinglisteTeil des QuellbaumsBeschreibung&a.cvsall.name;/usr/(CVSROOT|doc|ports|projects|src)Alle Änderungen im Quellbaum (Obermenge der
anderen Commit-Listen)&a.cvs-doc.name;/usr/docÄnderungen im doc-Baum&a.cvs-ports.name;/usr/portsÄnderungen im ports-Baum&a.cvs-projects.name;/usr/projectsÄnderungen im
projects-Baum&a.cvs-src.name;/usr/srcÄnderungen im src-BaumMailinglisten abonnierenUm eine Liste zu abonnieren, folgen Sie dem oben angegebenen
Hyperlink der Liste oder besuchen Sie die Webseite
&a.mailman.lists.link; und klicken dort auf Liste, die Sie
abonnieren wollen. Sie gelangen dann auf die Webseite der
Liste, die weitere Anweisungen enthält.Um eine Nachricht an eine Mailingliste zu schicken, schreiben
Sie einfach eine E-Mail an
<Liste@FreeBSD.org>. Die E-Mail
wird dann an alle Mitglieder der Mailingliste verteilt.Wenn Sie das Abonnement aufheben wollen, folgen Sie der
URL, die am Ende jeder Mail der Liste angegeben ist. Sie
können das Abonnement auch mit einer E-Mail an
freebsd-Liste-unsubscribe@FreeBSD.org
aufheben.Verwenden Sie bitte die technischen Listen ausschließlich
für technische Diskussionen. Wenn Sie nur an wichtigen
Ankündigungen interessiert sind, abonnieren Sie die
Mailingliste &a.announce.name;, auf der nur wenige Nachrichten
versendet werden.Chartas der MailinglistenAlle FreeBSD Mailinglisten besitzen
Grundregeln, die von jedem beachtet werden müssen. Für
die ersten beiden Male, in denen ein Absender gegen diese Regeln
verstößt, erhält er jeweils eine Warnung vom
FreeBSD Postmaster postmaster@FreeBSD.org. Ein
dritter Verstoß gegen die Regeln führt dazu, dass
der Absender in allen FreeBSD Mailinglisten gesperrt wird und
weitere Nachrichten von ihm nicht mehr angenommen werden. Wir
bedauern sehr, dass wir solche Maßnahmen ergreifen
müssen, aber heutzutage ist das Internet eine recht rauhe
Umgebung, in der immer weniger Leute Rücksicht aufeinander
nehmen.Die Regeln:Das Thema einer Nachricht soll der Charta der Liste, an die
sie gesendet wird, entsprechen. Wenn Sie eine Nachricht an
eine technische Liste schicken, sollte die Nachricht auch
technische Inhalte haben. Fortwährendes Geschwätz
oder Streit mindern den Wert der Liste für alle Mitglieder
und wird nicht toleriert. Benutzen Sie &a.chat; für
allgemeine Diskussionen über FreeBSD.Eine Nachricht sollte an nicht mehr als zwei Mailinglisten
gesendet werden. Schicken Sie eine Nachricht nur dann an
zwei Listen, wenn das wirklich notwendig ist. Viele Leute
haben mehrere Mailinglisten abonniert und Nachrichten sollten
nur zu ungewöhnlichen Kombinationen der Listen, wie
-stable und -scsi, gesendet
werden. Wenn Sie eine Nachricht erhalten, die im
Cc-Feld mehrere Listen enthält, sollten
Sie das Feld kürzen, bevor Sie eine Antwort darauf
verschicken. Unabhängig von dem
ursprünglichen Verteiler sind Sie für Ihre eigenen
Mehrfach-Sendungen selbst verantwortlich.Persönliche Angriffe und Beschimpfungen sind in einer
Diskussion nicht erlaubt. Dies gilt gleichermaßen
für Benutzer wie Entwickler. Grobe Verletzungen der
Netiquette, wie das Verschicken oder Zitieren von privater
E-Mail ohne eine entsprechende Genehmigung, werden nicht
gebilligt. Die Nachrichten werden aber nicht besonders auf
Verletzungen der Netiquette untersucht. Es kann sein,
dass eine Verletzung der Netiquette durchaus zu der Charta
einer Liste passt, aber der Absender aufgrund der
Verletzung eine Warnung erhält oder gesperrt wird.Werbung für Produkte oder Dienstleistungen, die nichts
mit FreeBSD zu tun haben, sind verboten. Ist die Werbung als
Spam verschickt worden, wird der Absender sofort gesperrt.Chartas einzelner Listen:&a.afs.name;Andrew File SystemAuf dieser Liste wird die Portierung des AFS von
CMU/Transarc diskutiert.&a.announce.name;Wichtige Ereignisse und
MeilensteineDiese Liste ist für Personen, die nur an den wenigen
Ankündigungen wichtiger Ereignisse interessiert sind.
Die Ankündigungen betreffen Schnappschüsse und
Releases, neue Merkmale von FreeBSD und die Suche nach
freiwilligen Mitarbeitern. Auf der Liste herrscht wenig
Verkehr und sie wird streng moderiert.&a.arch.name;Architektur und Design
von FreeBSDAuf dieser technischen Liste wird die FreeBSD Architektur
diskutiert. Beispiele für angemessene Themen
sind:Wie das Bausystem zu verändern ist, damit
verschiedene Läufe gleichzeitig möglich
sind.Was am VFS geändert werden muss, damit
Heidemann Schichten eingesetzt werden können.Wie die Schnittstelle der Gerätetreiber
angepasst werden muss, damit derselbe Treiber
auf verschiedenen Bussen und Architekturen eingesetzt
werden kann.Wie ein Netzwerktreiber geschrieben wird.&a.audit.name;Source Code Audit ProjectDies ist die Liste des FreeBSD Source Code Audit
Projects. Ursprünglich war vorgesehen, hier nur
sicherheitsrelevante Änderungen zu diskutieren, doch ist
die Charta auf alle Änderungen ausgedehnt worden.Zu dieser Liste werden viele Korrekturen gesandt, so
dass sie für den normalen FreeBSD Benutzer von
wenig Wert ist. Diskussionen über Sicherheit, die sich
nicht auf die Änderung von Quellcode beziehen, finden
auf der Mailingliste &a.security; statt. Auf der anderen
Seite sind aber alle Entwickler aufgefordert, ihre
Korrekturen zur Überprüfung an diese Liste zu
senden. Dies trifft besonders auf Änderungen zu, in
denen ein Fehler die Integrität des Gesamtsystems
gefährdet.&a.binup.name;FreeBSD Binary Update ProjectAuf dieser Liste wird das Design und die Implementierung
von binup diskutiert. Weitere
Themen sind Fehlerbehebungen, Fehlerberichte und Anfragen
nach Neuerungen. Die CVS-Logmeldungen des Projekts werden
ebenfalls auf diese Liste gesendet.&a.bugbusters.name;Bearbeitung der FehlerberichteAuf dieser Liste wird die Bearbeitung der Fehlerberichte
(PR, engl. problem report)
koordiniert. Sie dient dem Bugmeister und
allen Leuten, die ein Interesse an der Datenbank der
Fehlerberichte haben, als Diskussionsforum. Auf dieser Liste
werden keine spezifischen Fehler, Fehlerbehebungen oder PRs
diskutiert.&a.bugs.name;FehlerberichteAuf dieser Liste werden Fehlerberichte gesammelt.
Fehlerberichte sollten immer mit &man.send-pr.1; oder dem
Web Formular
erstellt werden.&a.chat.name;Nicht technische Themen, die die FreeBSD
Gemeinschaft betreffenAuf dieser Liste werden nicht-technische soziale Themen
diskutiert, die nicht auf die anderen Listen passen. Hier
kann diskutiert werden, ob Jordan wie ein Frettchen aus einem
Zeichentrickfilm aussieht oder nicht, ob grundsätzlich
in Großbuchstaben geschrieben werden soll, wer zuviel
Kaffee trinkt, wo das beste Bier gebraut wird und wer Bier in
seinem Keller braut. Gelegentlich können auf den
technischen Listen wichtige Ereignisse wie Feste, Hochzeiten
oder Geburten angekündigt werden, aber nachfolgende
Nachrichten sollten auf die Liste &a.chat; gesendet
werden.&a.core.name;FreeBSD Core TeamDies ist eine interne Mailingliste des FreeBSD Core
Teams. Wenn in einer wichtigen Angelegenheit, die FreeBSD
betrifft, entschieden werden muss oder die
Angelegenheit einer genauen Prüfung unterzogen werden
muss, können Nachrichten an diese Liste gesendet
werden.&a.current.name;Gebrauch von &os.current;Diese Mailingliste ist für die Benutzer von
&os.current; eingerichtet. Auf ihr finden sich
Ankündigungen über Besonderheiten von -CURRENT, von
denen Benutzer betroffen sind. Sie enthält weiterhin
Anweisungen, wie man ein System auf -CURRENT hält.
Jeder, der ein -CURRENT System besitzt, muss diese Liste
lesen. Die Liste ist nur für technische Inhalte
bestimmt.&a.cvsweb.name;FreeBSD CVSweb ProjectTechnische Diskussion über den Gebrauch, die
Entwicklung und die Pflege von FreeBSD-CVSweb.&a.doc.name;Documentation ProjectAuf dieser Mailingliste werden Themen und Projekte
diskutiert, die im Zusammenhang mit der Erstellung der FreeBSD
Dokumentation stehen. The FreeBSD Documentation
Project besteht aus den Mitgliedern dieser Liste.
Diese Liste steht jedem offen, Sie sind herzlich eingeladen
teilzunehmen und mitzuhelfen.&a.firewire.name;Firewire (iLink, IEEE 1394)Auf dieser Liste wird das Design und die Implementierung
eines Firewire-Subsystems (auch IEEE 1394 oder iLink)
für FreeBSD diskutiert. Relevante Themen sind die
Standards, Busse und ihre Protokolle, sowie Adapter, Karten
und Chipsätze. Des Weiteren die Architektur und der
Quellcode, die nötig sind, diese Geräte zu
unterstützen.&a.fs.name;DateisystemeDiskussionen über FreeBSD Dateisysteme. Dies ist
eine technische Liste, in der nur technische Inhalte erwartet
werden.&a.gnome.name;GNOMEDiskussionen über die grafische
Benutzeroberfläche GNOME.
Dies ist eine technische Liste, in der nur technische Inhalte
erwartet werden.&a.ipfw.name;IP FirewallDiskussionen über eine Neubearbeitung des
IP-Firewall Quelltexts in FreeBSD. Dies ist eine technische
Liste, in der nur technische Inhalte erwartet werden.&a.ia64.name;Portierung von FreeBSD auf die
IA64-PlattformDies ist eine technische Liste für diejenigen, die
FreeBSD auf die IA-64 Plattform von Intel portieren. Themen
sind die Probleme bei der Portierung und deren Lösung.
Interessierte, die der Diskussion folgen wollen, sind
ebenfalls willkommen.&a.isdn.name;ISDN SubsystemMailingliste für die Entwickler des ISDN Subsystems
von FreeBSD.&a.java.name;Java EntwicklungMailingliste, auf der die Entwicklung von Java
Anwendungen für FreeBSD sowie die Portierung und Pflege
von JDKs diskutiert wird.&a.hackers.name;Technische DiskussionenDies ist ein Forum für technische Diskussionen
über FreeBSD. Leute, die aktiv an FreeBSD arbeiten,
können hier Probleme und deren Lösungen
diskutieren. Interessierte, die den Diskussionen folgen
wollen, steht die Liste ebenfalls offen. Auf dieser Liste
finden nur technische Diskussionen statt.&a.hardware.name;Allgemeine Diskussionen über
HardwareAllgemeine Diskussionen über die Hardware, auf der
FreeBSD läuft: Probleme und Ratschläge welche
Hardware man kaufen sollte und welche nicht.&a.hubs.name;FreeBSD SpiegelAnkündigungen und Diskussionsforum für Leute,
die FreeBSD Spiegel betreiben.&a.isp.name;Themen für Internet Service
ProviderDiese Liste ist für Internet Service Provider (ISP),
die FreeBSD benutzen. Auf dieser Liste finden nur technische
Diskussionen statt.&a.kde.name;KDEDiskussionen über KDE
auf FreeBSD-Systemen.
Dies ist eine technische Liste, in der nur technische Inhalte
erwartet werden.&a.newbies.name;Starthilfen für neue FreeBSD
BenutzerEin Forum für Aktivitäten von Neulingen, die
anderswo nicht behandelt werden, wieselbständiges Lernen,Techniken zur Problemlösung,Suchen und Benutzen von Ressourcen,wo man Hilfe findet,wie Mailinglisten benutzt werden und welche Listen
man abonnieren sollte,allgemeine Unterhaltungen und Geschichten,Berichte über Fehler, die man gemacht hat,Prahlen mit eigenen Erfolgen,Mitteilen von Ideen,moralische (aber keine technische)
Unterstützung undwie man aktiver Teil der FreeBSD Gesellschaft
wird.Fragen und Probleme werden auf der Liste &a.questions;
behandelt, die Mailingliste &a.newbies; gibt neuen FreeBSD
Benutzern die nötigen Starthilfen.&a.openoffice.name;OpenOffice.orgPortierung und Pflege von
OpenOffice.org und
StarOffice.&a.performance.name;Diskussionsforum mit dem Ziel, die
Leistung von FreeBSD zu verbessern.Auf dieser Liste diskutieren Hacker,
Systemadministratoren und andere Interessierte die
Leistung von FreeBSD. Zulässige Themen sind
beispielsweise Systeme unter hoher Last, Systeme
mit Leistungsproblemen oder Systeme, die Leistungsgrenzen
von FreeBSD überwinden. Jeder, der mithelfen will,
die Leistung von FreeBSD zu verbessern, sollte diese
Liste abonnieren. Die Liste ist technisch anspruchsvoll
und geeignet für erfahrene FreeBSD-Benutzer,
Hacker oder Administratoren, die FreeBSD schnell,
robust und skalierbar halten wollen. Auf der Liste
werden Beiträge gesammelt oder Fragen nach
ungelösten Problemen beantwortet. Sie ist kein
Ersatz für das gründliche Studium der
Dokumentation.&a.platforms.name;Portierung auf nicht-Intel
PlattformenPlattformübergreifende Themen und Vorschläge
für die Portierung auf nicht-Intel Plattformen.
Auf dieser Liste finden nur technische Diskussionen
statt.&a.policy.name;Grundsatzentscheidungen des Core
TeamsDiese Mailingliste ist für Grundsatzentscheidungen
des FreeBSD Core Teams. Sie trägt wenige Nachrichten und
ist nur zum Lesen gedacht.&a.ports.name;Diskussion über die
Ports-SammlungDiskussionen über die FreeBSD Ports-Sammlung und
die Infrastruktur der Sammlung. Die
Liste dient auch der allgemeinen Koordination der Dinge, die
die Ports-Sammlung betreffen. Auf dieser Liste finden nur
technische Diskussionen statt.&a.ports-bugs.name;Diskussion über Fehler in
den PortsDiskussion über Fehler in der Ports-Sammlung
(/usr/ports), neue Ports oder
Änderungen an bestehenden Ports. Auf dieser Liste
finden nur technische Diskussionen statt.&a.questions.name;BenutzerfragenAuf dieser Mailingliste können Fragen über
FreeBSD gestellt werden. Fragen Sie bitte nicht nach
Anleitungen, wenn Sie nicht sicher sind, dass Ihre
Frage wirklich technischer Natur ist.&a.scsi.name;SCSI SubsystemDiese Mailingliste ist für die Entwickler des SCSI
Subsystems von FreeBSD. Auf dieser Liste finden nur
technische Diskussionen statt.&a.security.name;SicherheitsthemenSicherheitsthemen, die FreeBSD betreffen, wie DES,
Kerberos, bekannte Sicherheitslöcher und Fehlerbehebungen.
Stellen Sie bitte auf dieser Liste keine allgemeinen Fragen
zum Thema Sicherheit. Willkommen sind allerdings Beiträge
zur FAQ, das heißt eine Frage mit der passenden
Antwort. Auf dieser Liste finden nur technische Diskussionen
statt.&a.security-notifications.name;Ankündigungen zum Thema
SicherheitAnkündigungen über Sicherheitsprobleme von
FreeBSD und deren Behebungen. Diese Liste ist kein
Diskussionsforum, benutzen Sie &a.security;, um
Sicherheitsthemen zu diskutieren.&a.small.name;Gebrauch von FreeBSD in
eingebetteten Systemen.Diese Liste für ungewöhnlich kleine FreeBSD
Installation oder den Einsatz von FreeBSD in eingebetteten
Systemen gedacht. Auf dieser Liste finden nur technische
Diskussionen statt.&a.stable.name;Gebrauch von &os.stable;.Diese Mailingliste ist für die Benutzer von
&os.stable; eingerichtet. Auf ihr finden sich
Ankündigungen über Besonderheiten von -STABLE, von
denen Benutzer betroffen sind. Sie enthält weiterhin
Anweisungen, wie man ein System auf -STABLE hält. Jeder,
der ein -STABLE System besitzt, muss diese Liste lesen. Die
Liste ist nur für technische Inhalte bestimmt.&a.standards.name;Konformität von FreeBSD mit den C99- und
POSIX-StandardsDieses Forum ist für technische Diskussionen
über die Konformität von FreeBSD mit den C99- und
POSIX-Standards.&a.usergroups.name;Koordination von BenutzergruppenDiese Liste ist für Koordinatoren lokaler
Benutzergruppen und einem ausgesuchten Mitglied des Core Teams
eingerichtet worden. Der Inhalt sollte Inhalte von Treffen
und die Koordination von Projekten mehrerer Benutzergruppen
beschränkt sein.&a.vendors.name;Koordination von HändlernKoordination zwischen dem FreeBSD Projekt und
Händlern, die Soft- und Hardware für FreeBSD
verkaufen.Usenet-NewsNeben den Gruppen, die sich ausschließlich mit BSD
beschäftigen, gibt es viele weitere in denen über FreeBSD
diskutiert wird, oder die für FreeBSD Benutzer wichtig sind.
Warren Toomey wkt@cs.adfa.edu.au stellte
großzügig suchbare
Archive einiger dieser Gruppen bereit.BSD spezifische Gruppencomp.unix.bsd.freebsd.announcecomp.unix.bsd.freebsd.miscde.comp.os.unix.bsd (Deutsch)fr.comp.os.bsd (Französisch)Weitere UNIX Gruppencomp.unixcomp.unix.questionscomp.unix.admincomp.unix.programmercomp.unix.shellcomp.unix.user-friendlycomp.security.unixcomp.sources.unixcomp.unix.advocacycomp.unix.misccomp.bugs.4bsdcomp.bugs.4bsd.ucb-fixescomp.unix.bsdX Window Systemcomp.windows.x.i386unixcomp.windows.xcomp.windows.x.appscomp.windows.x.announcecomp.windows.x.intrinsicscomp.windows.x.motifcomp.windows.x.pexcomp.emulators.ms-windows.wineWorld Wide Web Server
- http://www.FreeBSD.org/
+
– Hauptserver.
- http://www.ar.FreeBSD.org/ – Armenien.
+
+ – Armenien.
- http://www.au.FreeBSD.org/ – Australien/1.
+
+ – Australien/1.
- http://www2.au.FreeBSD.org/ – Australien/2.
+
+ – Australien/2.
- http://www3.au.FreeBSD.org/ – Australien/3.
+
+ – Australien/3.
- http://www4.au.FreeBSD.org/ – Australien/4.
+
+ – Australien/4.
- http://www5.au.FreeBSD.org/ – Australien/5.
+
+ – Australien/5.
- http://www6.au.FreeBSD.org/ – Australien/6.
+
+ – Australien/6.
- http://http://freebsd.itworks.com.au/ – Australien/7.
+
+ – Australien/7.
- freebsd.unixtech.be/ – Belgien.
+ freebsd.unixtech.be/
+ – Belgien.
- http://www.br.FreeBSD.org/ – Brasilien/1.
+
+ – Brasilien/1.
- http://www2.br.FreeBSD.org/ – Brasilien/2.
+
+ – Brasilien/2.
- http://www3.br.FreeBSD.org/ – Brasilien/3.
+
+ – Brasilien/3.
- http://www.bg.FreeBSD.org/ – Bulgarien.
+
+ – Bulgarien.
- http://www.cn.FreeBSD.org/ – China.
+
+ – China.
- http://www.dk.FreeBSD.org/ – Dänemark.
+
+ – Dänemark.
- http://www3.dk.FreeBSD.org/ – Dänemark/3.
+
+ – Dänemark/3.
- http://www.de.FreeBSD.org/ – Deutschland/1.
+
+ – Deutschland/1.
- http://www1.de.FreeBSD.org/ – Deutschland/2.
+
+ – Deutschland/2.
- http://www2.de.FreeBSD.org/ – Deutschland/3.
+
+ – Deutschland/3.
- http://www.ee.FreeBSD.org/ – Estland.
+
+ – Estland.
- http://www.fi.FreeBSD.org/ – Finnland.
+
+ – Finnland.
- http://www2.fi.FreeBSD.org/ – Finnland/2.
+
+ – Finnland/2.
- http://www.fr.FreeBSD.org/ – Frankreich.
+
+ – Frankreich.
- http://www.gr.FreeBSD.org/ – Griechenland.
+
+ – Griechenland.
- http://www.uk.FreeBSD.org/ – Großbritannien/1.
+
+ – Großbritannien/1.
- http://www2.uk.FreeBSD.org/ – Großbritannien/2.
+
+ – Großbritannien/2.
- http://www3.uk.FreeBSD.org/ – Großbritannien/3.
+
+ – Großbritannien/3.
- http://www4.uk.FreeBSD.org/ – Großbritannien/4.
+
+ – Großbritannien/4.
- http://www.hk.FreeBSD.org/ – Hong Kong.
+
+ – Hong Kong.
- http://www.ie.FreeBSD.org/ – Irland.
+
+ – Irland.
- http://www2.ie.FreeBSD.org/ – Irland/2.
+
+ – Irland/2.
- http://www.is.FreeBSD.org/ – Island.
+
+ – Island.
- http://www.it.FreeBSD.org/ – Italien.
+
+ – Italien.
- http://www.gufi.org/mirrors/www.freebsd.org/data/ – Italien/2.
+
+ – Italien/2.
- http://www.jp.FreeBSD.org/www.FreeBSD.org/ – Japan.
+
+ – Japan.
- http://www.ca.FreeBSD.org/ – Kanada.
+
+ – Kanada.
- http://www3.ca.FreeBSD.org/ – Kanada/3.
+
+ – Kanada/3.
- http://www.kr.FreeBSD.org/ – Korea/1.
+
+ – Korea/1.
- http://www2.kr.FreeBSD.org/ – Korea/2.
+
+ – Korea/2.
- http://www3.kr.FreeBSD.org/ – Korea/3.
+
+ – Korea/3.
- http://www.lv.FreeBSD.org/ – Lettland.
+
+ – Lettland.
- http://www.lt.FreeBSD.org/ – Litauen.
+
+ – Litauen.
- http://rama.asiapac.net/freebsd/ – Malaysia.
+
+ – Malaysia.
- http://www.nz.FreeBSD.org/ – Neuseeland.
+
+ – Neuseeland.
- http://www.nl.FreeBSD.org/ – Niederlande/1.
+
+ – Niederlande/1.
- http://www2.nl.FreeBSD.org/ – Niederlande/2.
+
+ – Niederlande/2.
- http://www.no.FreeBSD.org/ – Norwegen.
+
+ – Norwegen.
- http://www.no2.FreeBSD.org/ – Norwegen/2.
+
+ – Norwegen/2.
- http://www.FreeBSD.org.ph/ – Philippinen.
+
+ – Philippinen.
- http://www.at.FreeBSD.org/ – Österreich.
+
+ – Österreich.
- http://www2.at.FreeBSD.org/ – Österreich/2.
+
+ – Österreich/2.
- http://www.pl.FreeBSD.org/ – Polen/1.
+
+ – Polen/1.
- http://www2.pl.FreeBSD.org/ – Polen/2.
+
+ – Polen/2.
- http://www2.pt.FreeBSD.org/ – Portugal/2.
+
+ – Portugal/2.
- http://www3.pt.FreeBSD.org/ – Portugal/3.
+
+ – Portugal/3.
- http://www4.pt.FreeBSD.org/ – Portugal/4.
+
+ – Portugal/4.
- http://www.ro.FreeBSD.org/ – Rumänien.
+
+ – Rumänien.
- http://www2.ro.FreeBSD.org/ – Rumänien/2.
+
+ – Rumänien/2.
- http://www3.ro.FreeBSD.org/ – Rumänien/3.
+
+ – Rumänien/3.
- http://www4.ro.FreeBSD.org/ – Rumänien/4.
+
+ – Rumänien/4.
- http://www.ru.FreeBSD.org/ – Russland/1.
+
+ – Russland/1.
- http://www2.ru.FreeBSD.org/ – Russland/2.
+
+ – Russland/2.
- http://www3.ru.FreeBSD.org/ – Russland/3.
+
+ – Russland/3.
- http://www4.ru.FreeBSD.org/ – Russland/4.
+
+ – Russland/4.
- http://www.sm.FreeBSD.org/ – San Marino.
+
+ – San Marino.
- http://www.se.FreeBSD.org/ – Schweden.
+
+ – Schweden.
- http://www.se2.FreeBSD.org/ – Schweden/2.
+
+ – Schweden/2.
- http://www.ch.FreeBSD.org/ – Schweiz.
+
+ – Schweiz.
- http://www.ch2.FreeBSD.org/ – Schweiz/2.
+
+ – Schweiz/2.
- http://www2.sg.FreeBSD.org/ – Singapur.
+
+ – Singapur.
- http://www.sk.FreeBSD.org/ – Slowakische Republik.
+
+ – Slowakische Republik.
- http://www.sk2.FreeBSD.org/ – Slowakische Republik/2.
+
+ – Slowakische Republik/2.
- http://www.si.FreeBSD.org/ – Slowenien.
+
+ – Slowenien.
- http://www2.si.FreeBSD.org/ – Slowenien/2.
+
+ – Slowenien/2.
- http://www.es.FreeBSD.org/ – Spanien.
+
+ – Spanien.
- http://www2.es.FreeBSD.org/ – Spanien/2.
+
+ – Spanien/2.
- http://www3.es.FreeBSD.org/ – Spanien/3.
+
+ – Spanien/3.
- http://www.za.FreeBSD.org/ – Südafrika/1.
+
+ – Südafrika/1.
- http://www2.za.FreeBSD.org/ – Südafrika/2.
+
+ – Südafrika/2.
- http://www.tw.FreeBSD.org/www.freebsd.org/data/ – Taiwan.
+
+ – Taiwan.
- http://www2.tw.FreeBSD.org/ – Taiwan/2.
+
+ – Taiwan/2.
- http://www3.tw.FreeBSD.org/ – Taiwan/3.
+
+ – Taiwan/3.
- http://www4.tw.FreeBSD.org/ – Taiwan/4.
+
+ – Taiwan/4.
- http://www.cz.FreeBSD.org/ – Tschechische Republik.
+
+ – Tschechische Republik.
- http://www.tr.FreeBSD.org/ – Türkei.
+
+ – Türkei.
- http://www.tr2.FreeBSD.org/ – Türkei/2.
+
+ – Türkei/2.
- http://www.enderunix.org/freebsd/ – Türkei/3.
+
+ – Türkei/3.
- http://www.ua.FreeBSD.org/www.freebsd.org/ – Ukraine/1.
+
+ – Ukraine/1.
- http://www2.ua.FreeBSD.org/ – Ukraine/2.
+
+ – Ukraine/2.
- http://www4.ua.FreeBSD.org/ – Ukraine/Crimea.
+
+ – Ukraine/Crimea.
- http://www5.ua.FreeBSD.org/ – Ukraine/5.
+
+ – Ukraine/5.
- http://www.hu.FreeBSD.org/ – Ungarn.
+
+ – Ungarn.
- http://www.hu2.FreeBSD.org/ – Ungarn/2.
+
+ – Ungarn/2.
- http://www2.FreeBSD.org/ – USA/Texas.
+
+ – USA/Texas.
- http://www3.FreeBSD.org/ – USA/3.
+
+ – USA/3.
- http://www7.FreeBSD.org/ – USA/7.
+
+ – USA/7.E-Mail AdressenDie folgenden Benutzergruppen stellen ihren Mitgliedern für
die Arbeit an FreeBSD E-Mail Adressen zur Verfügung. Der
aufgeführte Administrator behält sich das Recht vor,
die Adresse zu sperren, wenn sie missbraucht wird.DomainAngebotBenutzergruppeAdministratorukug.uk.FreeBSD.orgnur zum Weiterleitenfreebsd-users@uk.FreeBSD.orgLee Johnston
lee@uk.FreeBSD.orgShell AccountsDie folgenden Benutzergruppen stellen Personen, die das FreeBSD
Projekt aktiv unterstützen, Shell-Accounts zur Verfügung.
Der aufgeführte Administrator behält sich das Recht vor,
den Account zu sperren, wenn er missbraucht wird.RechnerZugriffAngebotAdministratorstorm.uk.FreeBSD.orgnur SSHlesender Zugriff auf CVS, persönliche Webseiten,
E-Mail&a.brian;dogma.freebsd-uk.eu.orgTelnet/FTP/SSHE-Mail, Webseiten, Anonymous FTPLee Johnston
lee@uk.FreeBSD.org
diff --git a/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml b/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
index cc9fa391c9..8ecf9592cf 100644
--- a/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml
@@ -1,1064 +1,1060 @@
Andrey A.ChernovBeigesteuert von Michael C.WuÜberarbeitet von AlexanderLangerÜbersetzt von MartinHeinenLokalisierung – I18N/L10N Einrichtung und BenutzungÜbersichtFreeBSD ist ein über die ganze Welt verteiltes Projekt.
Dieses Kapitel behandelt die Internationalisierung und
Lokalisierung von FreeBSD, mit denen nicht englisch sprechende
Benutzer FreeBSD an ihre Bedürfnisse anpassen können.
Die Internationalisierung betrifft sowohl die
System- als auch die Anwendungsebene, daher wird im Laufe des
Texts auf genauere Anwendungsdokumentationen verwiesen.Nachdem Sie dieses Kapitel durchgearbeitet haben, werden Sie
wissenwie verschiedene Sprachen und Lokalisierungen in
modernen Betriebssystemen codiert werden,wie Sie die Locale Ihrer Login-Shell setzen,wie Sie die Konsole für nicht-englische Sprachen
konfigurieren,wie Sie das X Window System mit verschiedenen
Sprachen benutzen,wo Sie mehr Informationen über das Erstellen von
I18N konformen Anwendungen erhalten.Bevor Sie dieses Kapitel lesen, sollten Siewissen, wie Sie zusätzliche Anwendungen
installieren ().GrundlagenWas ist I18N/L10N?InternationalisierungLokalisierungEntwickler kürzen das Wort
internationalization
(englisch für Internationalisierung) mit I18N ab,
weil sich zwischen dem ersten und letzten Buchstaben des Worts
18 Buchstaben befinden. L10N benutzt die gleiche
Namensgebung und ist eine Abkürzung des Worts
localization (englisch für
Lokalisierung). Mit I18N/L10N Methoden, Protokollen und Anwendungen
können Benutzer eine Sprache ihrer Wahl verwenden.I18N Anwendungen werden mit Hilfe von I18N Bibliotheken
programmiert. Diese erlauben es Entwicklern, eine einfache
Sprachdatei zu schreiben und Menüs und Texte an jede
Sprache anzupassen. Wir möchten Programmierern empfehlen,
für ihre eigenen Anwendungen auf diese Techniken
zurückzugreifen.Wieso soll ich I18N/L10N Benutzen?I18N/L10N wird immer dann benutzt, wenn Sie Daten in anderen
Sprachen als Englisch anzeigen, eingeben oder verarbeiten
möchten.Welche Sprachen werden von I18N unterstützt?I18N und L10N sind nichts FreeBSD spezifisches.
Momentan können Sie unter den meisten der verbreitetsten
Sprachen der Welt wählen, unter anderen Chinesisch,
Japanisch, Koreanisch, Französisch, Russisch und
Deutsch.Lokale Anpassungen benutzenIn seiner ganzen Schönheit ist L10N nichts, was auf
FreeBSD alleine beschränkt ist, im Gegenteil, es ist eine
Konvention, an die sich viele Programme für verschiedene
Betriebssysteme halten. Wir möchten Sie anregen, FreeBSD
bei der Unterstützung dieser Konvention zu helfen.LocaleLokale Anpassungen werden durch die Angabe von drei Werten
erreicht: dem Sprachcode, dem Ländercode und der Codierung.
Die Zusammenfassung dieser Werte wird Locale genannt
und sieht wie folgt aus:Sprachcode_Ländercode.CodierungSprach- und LändercodesSprachcodesLändercodesUm FreeBSD (oder ein anderes &unix; System, das I18N unterstützt)
an lokale Gegebenheiten und Sprachen anzupassen, muss der
Benutzer herausfinden, welche Codes für sein Land
und seine Sprache benutzt werden. Ländercodes geben den
Anwendungen dabei vor, welche Variation einer bestimmten Sprache
zu benutzen ist. Eine Variation von Deutsch wäre zum Beispiel
de_CH, das eine lokale Anpassung an das in der Schweiz gesprochene
Deutsch meint. Außerdem benutzen Webbrowser, SMTP/POP Server,
Webserver usw. diese, um Entscheidungen über die Sprache zu
fällen. Im Folgenden sind einige Beispiele für
Sprach- und Ländercodes aufgelistet:Sprachcode/LändercodeBeschreibungen_USEnglisch - USAru_RURussisch für Russlandzh_TWTraditionelles Chinesisch für TaiwanCodierungenCodierungenASCIIEinige Sprachen benutzen Codierungen, die nicht dem 7-Bit
breitem ASCII-Standard entsprechen, wie 8-Bit Codierungen,
Wide- oder Multibyte Zeichen (&man.multibyte.3;
geht darauf näher ein). Ältere Anwendungen erkennen
diese Zeichen nicht und halten sie fälschlicherweise
für Steuerzeichen. Neuere Anwendungen erkennen für
gewöhnlich 8-Bit Zeichen. Es hängt allerdings
von der Implementierung ab, ob man eine Anwendung neu
kompilieren muss, um in den Genuss von lokalen
Zeichensätzen zu kommen, oder ob man es sie nur
nachträglich konfigurieren muss.
Um es möglich zu machen, Wide- oder Multibyte-Zeichen
einzugeben und zu verarbeiten, unterstützt die FreeBSD Ports Sammlung
verschiedene Sprachen für diverse Programme. Bitte
konsultieren Sie die I18N Dokumentation des entsprechenden
FreeBSD-Ports.In den meisten Fällen muss der Benutzer in die
Dokumentation des Programms schauen, um herauszufinden, wie
man es entsprechend für die eigene Sprache und den eigenen
Zeichensatz konfiguriert, oder welche Optionen beim
Übersetzen anzugeben sind.Einige Dinge, die man im Hinterkopf behalten sollte, sind:Sprachbezogene C-char ZeichensätzeMit C-char Zeichensätzen werden Zeichensätze
bezeichnet, die zur Codierung den C-Datentyp
char verwenden.
(siehe &man.multibyte.3;), zum Beispiel ISO-8859-1, ISO-8859-15,
KOI8-R, CP437.Wide- oder Multibyte-Codierungen, zum Beispiel
EUC, Big5.Eine aktuelle Liste der Zeichensätze ist in der IANA Registry.
verfügbar.Ab FreeBSD 4.5 werden X11-kompatible Codierungen
verwendet.I18N AnwendungenIm FreeBSD Ports- und Paket-System werden I18N Anwendungen
mit einem I18N im Namen gekennzeichnet,
damit man sie leicht identifizieren kann. Trotzdem kann es
vorkommen, dass die benötigte Sprache nicht immer
unterstützt wird.Einstellen der LocaleZum Aktivieren der Lokalisierung reicht es, die Umgebungsvariable
LANG in Ihrer Login-Shell auf den Wert der Locale zu
setzen und die Variable zu exportieren. Dies geschieht normalerweise
in Ihrer ~/.login_conf oder der Startdatei
Ihrer Shell (~/.profile,
~/.bashrc, ~/.cshrc).
Wenn LANG gesetzt ist, brauchen die speziellen
Variablen wie LC_CTYPE oder LC_CTIME
in der Regel nicht gesetzt zu werden. Sie sollten sprachbezogene
FreeBSD Dokumentation zu Rate ziehen, wenn Sie mehr Informationen
wünschen.Setzen Sie die zwei folgenden Umgebungsvariablen in Ihren
Konfigurationsdateien:POSIXLANG für Funktionen der
POSIX &man.setlocale.3; FamilieMIMEMM_CHARSET gibt den den MIME
Zeichensatz von Anwendungen anDamit ist die Locale für die Shell, jede Anwendung und X11
eingestellt.Verfahren zum Einstellen der LocaleLocaleLogin-KlasseEs gibt zwei Wege, die Locale zu setzen, die im Folgenden
beschrieben werden. Die erste und empfohlene Methode ist,
die Umgebungsvariablen in der
Login-Klasse
zu setzen, die zweite ist, sie in den
Startdateien
der Shell zu setzen.Lokalisierung in der Login-KlasseWenn Sie diese Methode verwenden, werden die
Umgebungsvariablen für die Locale und den MIME Zeichensatz
einmal für alle Shells, anstatt einzeln für jede
Shell, gesetzt. Die Lokalisierung kann von einem Benutzer
selbst oder von einem
Administrator mit Superuser-Rechten für alle
eingestellt werden.Einrichten als Benutzer.login_conf im Heimatverzeichnis
eines Benutzers sollte mindestens die folgenden Einträge
enthalten, damit beide Variablen für den Gebrauch der
Latin-1 Codierung gesetzt werden:me:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:traditionelles Chinesisch / BIG-5 CodierungDamit traditionelles Chinesisch (BIG-5 Codierung)
verwendet werden kann, sind in .login_conf
die nachstehenden Ergänzungen vorzunehmen. Einige
Programme behandeln die Lokalisierung für Chinesisch,
Japanisch und Koreanisch falsch, daher müssen mehr
Variablen als üblich gesetzt werden:#Users who do not wish to use monetary units or time formats
#of Taiwan can manually change each variable
me:\
lang=zh_TW.Big5:\
lc_all=zh_TW.Big:\
lc_collate=zh_TW.Big5:\
lc_ctype=zh_TW.Big5:\
lc_messages=zh_TW.Big5:\
lc_monetary=zh_TW.Big5:\
lc_numeric=zh_TW.Big5:\
lc_time=zh_TW.Big5:\
charset=big5:\
xmodifiers="@im=xcin": #Setting the XIM Input ServerWeitere Informationen entnehmen Sie bitte
&man.login.conf.5;.Einrichten als AdministratorStellen Sie sicher, dass in der Login-Klasse der
Benutzer in /etc/login.conf die richtige
Sprache eingestellt ist. Die folgenden Einstellungen
müssen in /etc/login.conf
vorgenommen werden:Sprache:Beschreibung:\
:charset=MIME_Zeichensatz:\
:lang=Locale:\
:tc=default:Die für Latin-1 erforderlichen Einträge
sehen wie folgt aus:german:German Users Accounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:Ändern der Login-Klasse
mit &man.vipw.8;vipwWenn Sie neue Accounts mit vipw
anlegen, erstellen Sie Einträge in folgender Art:user:password:1111:11:Sprache:0:0:Benutzername:/home/user:/bin/shÄndern der Login-Klasse
mit &man.adduser.8;adduserLogin-KlasseWenn Sie neue Accounts mit adduser
anlegen, stehen Ihnen die folgenden Möglichkeiten zur
Verfügung:Geben Sie in /etc/adduser.conf
mit defaultclass =
Sprache eine Sprache
vor. In diesem Fall müssen Sie für Benutzer
anderer Sprachen eine andere Login-Klasse angeben.Geben Sie die Sprache jedes Mal ein, wenn Sie dazu von
&man.adduser.8; aufgefordert werden:Enter login class: default []: Sie können die Login-Klasse auch auf der
Kommandozeile von &man.adduser.8; übergeben:&prompt.root; adduser -class SpracheÄndern der Login-Klasse
mit &man.pw.8;pwWenn Sie neue Accounts mit &man.pw.8; anlegen, benutzen
Sie die folgende Kommandozeile:&prompt.root; pw useradd Account -L SpracheLokalisierung in den Startdateien der ShellsDa Sie jede Shell unterschiedlich einrichten
müssen, sollten Sie diese Methode nicht verwenden.
Benutzen Sie stattdessen bitte Login-Klassen.MIMELocaleUm die Locale und den MIME Zeichensatz anzugeben, setzen
Sie die unten aufgeführten Variablen in den Startdateien
der Shells (/etc/profile und
/etc/csh.login). In den folgenden
Beispielen verwenden wir die deutsche Sprache.Einstellungen in /etc/profile:LANG=de_DE.ISO8859-1; export LANGMM_CHARSET=ISO-8859-1; export MM_CHARSETEinstellungen in /etc/csh.login:setenv LANG de_DE.ISO8859-1setenv MM_CHARSET ISO-8859-1Alternativ können Sie die Einstellungen in den
Vorgabedateien der Shells vornehmen. Die oben gezeigten
Einstellungen aus /etc/profile tragen Sie
dann in /usr/share/skel/dot.profile und
die Einstellungen aus /etc/csh.login in
/usr/share/skel/dot.login ein.Die Einstellungen für X11 in
$HOME/.xinitrc sind von der verwendeten
Login-Shell abhängig. Mit Bourne Shells
verwenden Sie den folgenden Eintrag:LANG=de_DE.ISO8859-1; export LANGMit C-Shells verwenden Sie den nachstehenden
Eintrag:setenv LANG de_DE.ISO8859-1Einrichten der KonsoleWenn Sie C-char Zeichensätze
verwenden, müssen Sie die richtigen Zeichensätze für die
gewählte Sprache in /etc/rc.conf
angeben:font8x16=Zeichensatz
font8x14=Zeichensatz
font8x8=ZeichensatzDabei ist Zeichensatz der Name der
passenden Datei aus /usr/share/syscons/fonts
ohne die Endung .fnt.sysinstallkeymapscreenmapStellen Sie sicher, dass Sie die richtige Tasten- und
Bildschirmzuordnung (keymap und screenmap) verwenden. Dies
können Sie in sysinstall
einstellen, indem Sie Configure und dann
Console wählen. Sie können
die Zuordnungen aber auch direkt in /etc/rc.conf
angeben:scrnmap=screenmap_name
keymap=keymap_name
keychange="fkey_number sequence"screenmap_name ist der Name einer
Datei aus /usr/share/syscons/scrnmaps ohne die
Endung .scm. Eine Bildschirmzuordnung und der
zugehörige Zeichensatz verbreitert die Zeichenmatrix von
VGA Karten im Pseudographik Modus von 8 Bit auf 9 Bit.
Sie wird benötigt, wenn der Zeichensatz des Bildschirms
8 Bit verwendet.Lesen Sie den nächsten Absatz, wenn Sie in
/etc/rc.conf den
moused Dæmon mit der nachstehenden
Anweisung aktiviert haben:moused_enable="YES"mousedDer Mauszeiger des &man.syscons.4; Treibers belegt in
der Voreinstellung den Bereich von 0xd0 bis 0xd3 des Zeichensatzes.
Wenn dieser Bereich ebenfalls von der eingestellten Sprache
benötigt wird, müssen Sie den Mauszeiger verschieben.
Wenn Sie eine frühere FreeBSD Version als 5.0 verwenden,
fügen Sie dazu in Ihrer Kernelkonfiguration die folgende Zeile
ein:options SC_MOUSE_CHAR=0x03Ab FreeBSD 4.4 ergänzen Sie
/etc/rc.conf um die folgende Zeile:mousechar_start=3keymap_name ist der Name einer Datei
aus /usr/share/syscons/keymaps ohne die Endung
.kbd. Welche Tastenzuordnung Sie benutzen
müssen, können Sie ohne einen Neustart mit &man.kbdmap.1;
ausprobieren.Mit keychange können die
Funktionstasten so programmiert werden, dass Sie zu dem
ausgesuchten Terminal passen. Die Sequenzen der Funktionstasten
können nicht in Tastenzuordnungen definiert werden.Stellen Sie sicher, dass der richtige Terminaltyp für
die ttyv* Konsolen in
/etc/ttys angegeben ist. Momentan sind die
folgenden Terminaltypen definiert:ZeichensatzTerminaltypISO-8859-1 oder ISO-8859-15cons25l1ISO-8859-2cons25l2ISO-8859-7cons25l7KOI8-Rcons25rKOI8-Ucons25uCP437 (VGA default)cons25US-ASCIIcons25wMit Wide- oder Multibyte-Zeichensätzen müssen Sie den
richtigen Port aus dem Verzeichnis
/usr/ports/Sprache
verwenden. Einige Ports erscheinen als Konsolen werden aber vom
System als serielle vtty's betrachtet. Achten Sie daher darauf,
dass Sie genügend vtty's für X11 und die
Pseudo-seriellen Konsolen definiert haben. Nachstehend finden Sie
eine unvollständige Liste der Ports, die eine andere Sprache
als Englisch auf der Konsole verwenden:SprachePorttraditionelles Chinesisch (BIG-5)chinese/big5conJapanischjapanese/ja-kon2-* oder
japanese/Mule_WnnKoreanischkorean/ko-hanEinrichten von X11Obwohl X11 nicht Teil des FreeBSD Projekts ist, stellen wir
hier einige Hinweise für FreeBSD Benutzer zusammen. Weitere
Details entnehmen Sie bitte der XFree86 Webseite oder der
Dokumentation Ihres X11 Servers.Anwendungsspezifische I18N Einstellungen (Zeichensätze,
Menüs, usw.) können Sie in ~/.Xresources
vornehmen.ZeichensätzeX11 True Type Font-ServerInstallieren Sie den X11 True Type-Common Server
(x11-servers/XttXF86srv-common)
und die Truetype Zeichensätze für die gewählten
Sprachen. Wenn Sie die Locale gesetzt haben, sollten die
Menüs dann in der entsprechenden Sprache erscheinen.Eingabe von nicht-englischen ZeichenX11 Input Method (XIM)Das X11 Input Method (XIM) Protokoll ist ein neuer Standard
für alle X11-Clients. Jede X11-Anwendung sollte als
XIM-Client, der Eingaben von einem XIM-Server entgegen nimmt,
implementiert sein. XIM-Server sind für verschiedene
Sprachen erhältlich.Einrichten eines DruckersDrucker verfügen normalerweise schon über einige
C-char Zeichensätze. Wide- oder
Multibyte-Zeichensätze müssen gesondert eingerichtet werden.
Wir empfehlen Ihnen, dazu apsfilter zu
benutzen. Weiterhin können Sie mit sprachspezifischen Konvertern
Ihre Dokumente auch in PostScript oder PDF umwandeln.Kernel und DateisystemeDas FreeBSD Dateisystem (FFS) unterstützt 8-Bit, so
dass es mit C-char Zeichensätzen (siehe &man.multibyte.3;) verwendet werden
kann. Der Zeichensatz wird allerdings nicht im Dateisystem
gespeichert, das heißt es werden nur die 8-Bit Werte
gespeichert und die Codierung wird nicht berücksichtigt.
Offiziell werden Wide- oder Multibyte-Zeichensätze noch nicht
unterstützt, für einige Zeichensätze existieren
Patche, die eine solche Unterstützung aktivieren.
Sie sind allerdings nicht im Quelltext enthalten, da sie nur
schwer pflegbare Übergangslösungen sind. Die Patche
und weitere Informationen erhalten Sie auf den Webseiten der
betreffenden Sprache.DOSUnicodeDas MS-DOS Dateisystem von FreeBSD kann von MS-DOS- und
Unicode-Zeichensätzen nach frei wählbaren FreeBSD
Zeichensätzen konvertieren. Weitere Details entnehmen Sie
bitte &man.mount.msdos.8;.I18N Programme übersetzenViele FreeBSD Ports besitzen I18N Unterstützung, einige
davon enthalten -I18N im Namen. Für diese
und viele andere Programme ist keine spezielle Konfiguration
notwendig.MySQLEinige Anwendungen wie MySQL
müssen allerdings speziell für einen Zeichensatz
konfiguriert werden. Normalerweise wird dazu das
Makefile angepasst oder
configure mit einem speziellen Parameter
aufgerufen.Lokalisierung für einzelne SprachenAndrey A.ChernovBeigetragen von Russisch (KOI8-R Codierung)LokalisierungrussischWeitere Informationen über die KOI8-R Codierung erhalten
Sie auf der Webseite KOI8-R References
(Russian Net Character Set).Einrichten der LocaleFügen Sie die folgenden Zeilen in
~/.login_conf ein:me:My Account:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:Weitere Erklärungen finden Sie in Einstellen der Locale.Einrichten der KonsoleVor FreeBSD 5.0 müssen Sie die folgende Zeile
in Ihre Kernelkonfiguration aufnehmen:options SC_MOUSE_CHAR=0x03Ab FreeBSD 4.4 fügen Sie bitte die nachstehende
Zeile in /etc/rc.conf ein:mousechar_start=3Nehmen Sie die folgenden Einstellungen in
/etc/rc.conf: vorkeymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"Benutzen Sie cons25r als Terminaltyp
für jeden ttyv* Eintrag in
/etc/ttys.Weitere Beispiele finden Sie in Einrichten der Konsole.Einrichten eines DruckersDruckerDie meisten Drucker mit russischen Zeichen besitzen die
Codetabelle CP866, so dass ein spezielles Programm zur
Übersetzung von KOI8-R nach CP866 benötigt wird. Zu
diesem Zweck ist /usr/libexec/lpr/ru/koi2alt
im Basissystem enthalten. Der Eintrag für einen Drucker mit
russischer Sprachunterstützung in
/etc/printcap sieht wie folgt aus:lp|Russian local line printer:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:Näheres erfahren Sie in &man.printcap.5;.MS-DOS Dateisystem und russische DateinamenRussische Dateinamen auf MS-DOS Dateisystemen werden mit dem
folgenden Eintrag in /etc/fstab
erkannt:/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0Die Optionen und
werden in &man.mount.msdos.8; näher beschrieben.Einrichten von X11Richten Sie zunächst die
normale Lokalisierung
ein.Die Locale KOI8-R wird von
alten XFree86-Versionen (vor
3.3) nicht unterstützt. FreeBSD verwendet
XFree86 4.X, daher sollte es
mit neuen FreeBSD Versionen keine Probleme geben.Wechseln Sie in das Verzeichnis russian/X.language
und setzen Sie das folgende Kommando ab:&prompt.root; make installDer Port installiert die neusten Versionen der KOI8-R
Zeichensätze. XFree86 3.3
besitzt zwar schon einige KOI8-R Zeichensätze, allerdings
sind die des Ports besser skaliert.Im "Files" Abschnitt von
/etc/XF86Config fügen Sie die
folgenden Einträge vor allen
anderen FontPath Einträgen
ein:FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"Wenn Sie eine hohe Auflösung benutzen, vertauschen
Sie bitte die Einträge für 75 dpi und
100 dpi.Die Unterstützung für eine russische Tastatur
aktivieren Sie im "Keyboard" Abschnitt von
XF86Config.Mit XFree86 3.X:XkbLayout "ru"
XkbOptions "grp:caps_toggle"Mit XFree86 4.X:Option "XkbLayout" "ru"
Option "XkbOptions" "grp:caps_toggle"Stellen Sie zudem sicher, dass
XkbDisable nicht aktiviert (auskommentiert)
ist.Mit CapsLock können Sie zwischen
dem RUS- und LAT-Modus wechseln. Die alte Funktion von
CapsLock steht nur im LAT-Modus mit der
Tastenkombination
ShiftCapsLock zur Verfügung.Wenn Ihre Tastatur Windows-Tasten
besitzt und nicht alphanumerische Tasten im RUS-Modus nicht
funktionieren, fügen Sie die folgende Zeile in
XF86Config ein:Mit XFree86 3.X:XkbVariant "winkeys"Mit XFree86 4.X:Option "XkbVariant" "winkeys"Die russische XKB-Tastatur funktioniert vielleicht
nicht mit alten XFree86-Versionen
(vgl. obige Anmerkung).
Vielleicht funktioniert sie auch nicht mit
nicht-lokalisierten Anwendungen. Lokalisierte Anwendungen
sollten mindestens die Funktion
XtSetLanguageProc (NULL, NULL,NULL);
frühzeitig aufrufen. Weitere Informationen über
die Lokalisierung von X11-Anwendungen erhalten Sie auf der
Webseite KOI8-R
for X Window.Traditionell chinesische Lokalisierung für TaiwanLokalisierungtraditionell chinesischDas taiwanesische FreeBSD Projekt stellt ein Tutorium unter
-
- http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/ zur
- Verfügung, das viele chinesische Anwendungen benutzt. Der
- Editor von zh-L10N-tut ist Clive Lin
+
+ zur Verfügung, das viele chinesische Anwendungen benutzt.
+ Der Editor von zh-L10N-tut ist Clive Lin
Clive@CirX.org. Von freebsd.sinica.edu.tw können Sie mit
CVSup auch die folgenden Sammlungen
beziehen:SammlungBeschreibungoutta-port tag=.Chinesische Ports Sammlung (Beta-Test)zh-L10N-tut tag=.Tutorium Lokalisation von FreeBSD mit traditionellem
Chinesisch (BIG-5)zh-doc tag=.Übersetzung der FreeBSD Dokumentation nach
traditionellem Chinesisch (BIG-5)Chuan-Hsing Shen s874070@mail.yzu.edu.tw hat mit
Hilfe von zh-L10N-tut die Chinese FreeBSD Collection
- (CFC) zusammengestellt. Die Pakete und Skripten sind
- unter ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/
- erhältlich.
+ (CFC) zusammengestellt. Die Pakete und Skripten sind unter
+
+ erhältlich.
Deutsche Lokalisierung (für alle ISO 8859-1
Sprachen)LokalisierungdeutschVon Slaven Rezic eserte@cs.tu-berlin.de stammt
ein Tutorium, das die Benutzung von Umlauten mit FreeBSD
beschreibt. Das Tutorium ist in Deutsch verfasst und unter
- http://www.de.FreeBSD.org/de/umlaute/
+
erhältlich.Japanische und koreanische LokalisierungLokalisierungjapanischLokalisierungkoreanischInformationen über die japanische Lokalisierung entnehmen
- Sie bitte http://www.jp.FreeBSD.org/,
+ Sie bitte ,
Informationen über die koreanische Lokalisierung erhalten Sie
- unter http://www.kr.FreeBSD.org/.
+ unter .
Nicht-englische FreeBSD DokumentationTeile von FreeBSD wurden in andere Sprachen übersetzt.
Folgen Sie bitte den Links auf der FreeBSD Webseite oder
schauen Sie in /usr/share/doc nach.
diff --git a/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
index 5a035abcd5..0c76d05b8e 100644
--- a/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/linuxemu/chapter.sgml
@@ -1,3414 +1,3414 @@
JimMockRestrukturiert und teilweise aktualisiert von Brian N.HandyBeigetragen von RichMurpheyJohannKoisÜbersetzt von Linux-BinärkompatibilitätÜbersichtLinux-BinärkompatibilitätBinärkompatibilitätLinuxFreeBSD bietet Binärkompatibilität zu verschiedenen
anderen &unix; Betriebssystemen, darunter auch Linux. Nun
könnten Sie sich fragen, warum FreeBSD in der Lage sein
muss, Linux-Binärprogramme auszuführen? Die Antwort
auf diese Frage ist sehr einfach. Viele Unternehmen und Entwickler
programmieren bzw. entwickeln nur für Linux, da es
das Neueste und Beste in der Computerwelt ist.
Für uns FreeBSD-Anwender heißt dies, genau diese Unternehmen
und Entwickler zu bitten, FreeBSD-Versionen ihrer Programme
herauszubringen. Das Problem dabei ist nur, dass die meisten dieser
Firmen trotzdem nicht erkennen, wie viele zusätzliche
Anwender ihre Produkte benutzen würden, wenn es auch
FreeBSD-Versionen gäbe, und daher weiterhin
ausschließlich für Linux entwickeln. Was also kann ein
FreeBSD-Anwender tun? Genau an diesem Punkt kommt die Linux-
Binärkompatibilität ins Spiel.Um es auf den Punkt zu bringen, genau diese Kompatibilität
erlaubt es FreeBSD-Anwendern, etwa 90 % aller Linux-Anwendungen
ohne Code-Änderungen zu verwenden. Dies schließt
solche Anwendungen wie Star Office,
Open Office, die Linux-Versionen von
Netscape,
Adobe Acrobat,
RealPlayer 8,
VMWare, Oracle,
WordPerfect, Doom,
Quake und viele andere ein. Es wird
sogar berichtet, dass diese Linux-Anwendungen in manchen
Fällen unter FreeBSD eine bessere Leistung als unter
Linux aufweisen.Linux/proc DateisystemAllerdings gibt es nach wie vor einige Linux-spezifische
Betriebssystem-Eigenschaften, die unter FreeBSD nicht
unterstützt werden. Linux-Anwendungen, die in großem
Stil das Linux-/proc-Dateisystem verwenden,
werden unter FreeBSD nicht funktionieren, da sich dieses vom
FreeBSD-/proc-Dateisystem unterscheidet.
Auch i386-spezifische Aufrufe dieser Linux-Anwendungen (wie
z.B. die Aktivierung des virtuellen 8086-Modus) funktionieren
unter FreeBSD leider nicht.Nach dem Lesen dieses Kapitels werden Siewissen, wie Sie die Linux-Binärkompatibilität
installieren bzw. aktivieren.Wissen, wie man zusätzliche Linux-Systembibliotheken
unter FreeBSD installiert.Linux-Anwendungen unter FreeBSD installieren können.Wissen, wie die Linux-Binärkompatibilität
unter FreeBSD verwirklicht wurde.Bevor Sie dieses Kapitel lesen, sollten Siewissen, wie man Software Dritter installiert
().InstallationKLD (kernel loadable object)Die Linux-Binärkompatibilität ist per Voreinstellung
nicht aktiviert. Der einfachste Weg, dies zu tun, ist das
Linux KLD (Kernel LoaDable object)
zu laden. Dies geschieht durch die Eingabe von
linux an der Eingabeaufforderung.Wollen Sie die Linux-Binärkompatibilität dauerhaft
aktivieren, sollten Sie die folgende Zeile in
/etc/rc.conf einfügen:linux_enable="YES"Der &man.kldstat.8;-Befehl kann benutzt werden, um
festzustellen, ob KLD geladen wurde:&prompt.user; kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.koKerneloptionLINUXWenn Sie das KLD nicht laden können oder wollen, besteht
auch die Möglichkeit, die Linux-Binärkompatibiltät
statisch in den Kernel einzubinden. Dazu fügen Sie Ihrer
Kernelkonfigurationsdatei den Eintrag options LINUX
hinzu. Anschließend installieren Sie Ihren neuen Kernel
wie in beschrieben.Linux-Laufzeitbibliotheken installierenLinuxLinux-Laufzeitbibliotheken installierenDies kann auf zwei Arten geschehen, entweder über den
linux_base-Port,
oder durch manuelle Installation der Bibliotheken
.Installation unter Verwendung des linux_base-PortsPorts CollectionDies ist die einfachste Methode, um die Laufzeitbibliotheken
zu installieren. Sie funktioniert genauso wie die
Installation eines beliebigen anderen Ports aus der
Ports-Sammlung.
Dazu machen Sie einfach folgendes:&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanSie sollten nun über eine funktionierende
Linux-Binärkompatibilität verfügen. Einige
Programme könnten sich zwar über falsche
Unterversionsnummern der Systembibliotheken beschweren, dies ist
im Allgemeinen aber kein Problem.Manuelle Installation der BibliothekenWenn Sie die Ports-Sammlung nicht installiert
haben, können Sie die Bibliotheken auch manuell
installieren. Dazu brauchen Sie die jeweiligen
Linux-Systembibliotheken, die das zu installierende Programm
verwendet sowie den Laufzeit-Linker. Zusätzlich müssen
Sie auf Ihrem FreeBSD-System einen
virtuellen Verzeichnisbaum für die
Linux-Bibliotheken einrichten. Alle unter FreeBSD gestarteten
Linux-Programme suchen zuerst in diesem Verzeichnisbaum
nach Systembibliotheken. Wenn also ein Linuxprogramm beispielsweise
/lib/libc.so lädt, versucht FreeBSD
zuerst, /compat/linux/lib/libc.so laden.
Ist diese Datei nicht vorhanden, wird
/lib/libc.so geladen. Systembibliotheken
sollten daher besser in den virtuellen Verzeichnisbaum
/compat/linux/lib als in den vom
Linux-ld.so vorgeschlagenen installiert
werden.Im Allgemeinen müssen Sie nur zu Beginn nach den
Systembibliotheken suchen, die von Linuxprogrammen
benötigt werden. Nach den ersten Installationen von
Linuxprogrammen auf Ihrem FreeBSD-System verfügen Sie
über eine Sammlung von Linux-Systembibliotheken,
die es Ihnen ermöglichen wird, neue Linuxprogramme
ohne Zusatzarbeit zu installieren.Installation zusätzlicher SystembibliothekenShared-LibrariesWas passiert, wenn Sie den linux_base-Port
installieren, und Ihr Programm beschwert sich trotzdem
über fehlende Systembibliotheken? Woher wissen Sie,
welche Systembibliotheken von Linux-Binärprogrammen
benötigt werden, und wo Sie diese finden? Grundsätzlich
gibt es dafür zwei Möglichkeiten (um dieser
Anleitung zu folgen, müssen Sie unter
FreeBSD als Benutzer root angemeldet
sein):Wenn Sie Zugriff auf ein Linux-System haben, können
Sie dort nachsehen, welche Systembibliotheken eine Anwendung
benötigt, und diese auf Ihr FreeBSD-System kopieren.
Dazu folgendes Beispiel:Nehmen wir an, Sie haben FTP verwendet, um die
Linux-Binärversion von Doom
zu bekommen und haben sie auf Ihrem Linux-System installiert.
Nun können Sie überprüfen, welche
Systembibliotheken das Programm benötigt, indem Sie
ldd linuxdoom eingeben. Das Resultat
sieht dann so aus:&prompt.user; ldd linuxdoom
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29symbolische LinksSie müssten nun alle Dateien aus der
letzten Spalte kopieren und sie unter
/compat/linux speichern, wobei
die Namen der ersten Spalte als symbolische Links auf
diese Dateien zeigen. Damit haben Sie schließlich
folgende Dateien auf Ihrem FreeBSD-System:/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Beachten Sie, dass wenn Sie bereits eine
Linux-Systembibliothek einer zur ersten Spalte
passenden Hauptversionsnummer (laut
ldd-Ausgabe) besitzen, Sie die Datei
aus der zweiten Spalte nicht mehr kopieren müssen,
da die bereits vorhandene Version funktionieren sollte.
Hat die Systembibliothek jedoch eine neuere
Versionsnummer, sollten Sie sie dennoch kopieren.
Sie können die alte Version löschen, solange
Sie einen symbolischen Link auf die neue
Version anlegen. Wenn Sie also folgende Bibliotheken
auf Ihrem System installiert haben:/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -> libc.so.4.6.27und Sie haben eine neue Binärdatei, die
laut ldd
eine neuere Bibliothek benötigt:libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29Wenn diese sich nur um ein oder zwei Stellen
in der Unterversionsnummer unterscheiden, müssen
Sie /lib/libc.so.4.6.29
nicht auf Ihr System kopieren, da das Programm auch
mit der etwas älteren Version ohne Probleme
funktionieren sollte. Wenn Sie wollen,
können Sie libc.so aber
dennoch ersetzen (das heißt aktualisieren), was dann zu
folgender Ausgabe führt:/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Der Mechanismus der symbolischen Links wird
nur für Linux-Binärdateien
benötigt. Der FreeBSD-Laufzeitlinker sucht
sich die passenden Hauptversionsnummern selbst,
das heißt Sie müssen sich nicht darum
kümmern.
Linux ELF-Binärdateien installierenLinuxELF-BinärdateiELF-Binärdateien benötigen manchmal eine zusätzliche
Kennzeichnung. Wenn Sie versuchen, eine nicht
gekennzeichnete ELF-Binärdatei auszuführen,
werden Sie eine Fehlermeldung ähnlich der folgenden
erhalten:&prompt.user; ./my-linux-elf-binary
ELF binary type not known
AbortDamit der FreeBSD-Kernel eine Linux-ELF-Datei von einer
FreeBSD-ELF-Datei unterscheiden kann, gibt es das Werkzeug
&man.brandelf.1;:&prompt.user; brandelf -t Linux my-linux-elf-binaryGNU WerkzeugeDie GNU Werkzeuge schreiben nun automatisch die
passende Kennzeichnungsinformation in die ELF-Binärdateien,
so dass Sie diesen Schritt in Zukunft nur noch selten benötigen
werden.Namensauflösung konfigurierenWenn DNS nicht funktioniert, oder Sie folgende Fehlermeldung
erhalten:resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keywordmüssen sie /compat/linux/etc/host.conf
wie folgt anlegen:order hosts, bind
multi onDiese Reihenfolge legt fest, dass zuerst
/etc/hosts und anschließend DNS
durchsucht werden. Wenn
/compat/linux/etc/host.conf nicht vorhanden
ist, finden Linux-Anwendungen FreeBSD's
/etc/host.conf und
beschweren sich über die inkompatible FreeBSD-Syntax. Wenn Sie
keinen Nameserver (in /etc/resolv.conf)
konfiguriert haben, sollten Sie den Eintrag
bind entfernen.MurrayStokelyFür Mathematica 4.x aktualisiert von BojanBistrovicMit der Unterstützung von Mathematica installierenLinux-AnwendungenMathematicaDieses Dokument beschreibt die Installation der Linux-Version von
Mathematica 4.x auf einem
FreeBSD-System.Die Linux-Version von Mathematica
läuft perfekt unter FreeBSD, allerdings müssen die
von Wolfram verschickten Binärdateien gekennzeichnet werden,
damit FreeBSD weiß, dass es die Linux-ABI verwenden muss,
um sie auszuführen.Die Linux-Version von Mathematica
oder Mathematica für Studenten kann
- direkt von Wolfram unter
- http://www.wolfram.com/ bestellt werden.
+ direkt von Wolfram unter
+ bestellt werden.
Linux-Binärdateien kennzeichnenDie Linuxbinärdateien befinden sich im
Unix-Verzeichnis der von Wolfram
vertriebenen Mathematica-CD-ROM.
Sie müssen diesen Verzeichnisbaum auf Ihre Festplatte kopieren,
damit Sie die Linux-Binärdateien kennzeichnen können,
bevor Sie das Installationsprogramm aufrufen:&prompt.root; mount /cdrom
&prompt.root; cp -rp /cdrom/Unix/ /localdir/
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Graphics/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Converters/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/LicenseManager/Binaries/Linux/mathlm
&prompt.root; cd /localdir/Installers/Linux/
&prompt.root; ./MathInstallerAlternativ können Sie mit folgendem Befehl auch die
Standard-ELF-Kennzeichnung für alle ungekennzeichneten
Binärdateien festlegen:&prompt.root; sysctl kern.fallback_elf_brand=3Danach wird FreeBSD annehmen, dass alle ungekennzeichneten
ELF-Binärdateien die Linux-ABI verwenden. Dadurch sollte es Ihnen
nun möglich sein, das Installationsprogramm direkt von der CD-ROM
zu starten.Ihr Mathematica-Passwort anfordernBevor Sie Mathematica
ausführen können, müssen Sie von Wolfram
ein zu Ihrer Rechner-ID passendes
Passwort anfordern.EthernetMAC-AdresseNachdem Sie die Linux-Kompatibilitätsbibliotheken
installiert und Mathematica entpackt
haben, können Sie Ihre
Rechner-ID durch das Ausführen von
mathinfo (im Installationsverzeichnis) ermitteln.
Diese Rechner-ID basiert ausschließlich auf der MAC-Adresse
Ihrer ersten Ethernet-Karte.&prompt.root; cd /localdir/Files/SystemFiles/Installation/Binaries/Linux
&prompt.root; mathinfo
disco.example.com 7115-70839-20412Wenn Sie sich bei Wolfram registrieren (durch E-Mail,
Telefon oder Fax), teilen Sie
Ihre Rechner-ID mit und erhalten dafür
ein aus Zahlengruppen
bestehendes Passwort. Diese Information geben Sie ein, wenn Sie
Mathematica das erste Mal starten,
genauso wie Sie es auch auf jeder anderen
Mathematica-Plattform machen
würden.Das Mathematica-Frontend über ein Netzwerk
ausführenMathematica verwendet einige
spezielle Schriftarten, um Zeichen anzuzeigen, die in den
Standardzeichensätzen nicht vorhanden
sind (z.B. Integrale, Summen, griechische Buchstaben). Das
X-Protokoll verlangt allerdings, dass diese Schriftarten
lokal installiert sind.
Das bedeutet, dass Sie diese Schriftarten von der CD-ROM oder
von einem Rechner, auf dem Mathematica
installiert ist, auf Ihren Rechner kopieren müssen.
Diese Schriftarten befinden sich normalerweise in
/cdrom/Unix/Files/SystemFiles/Fonts
(Mathematica-CD) oder in
/usr/local/mathematica/SystemFiles/Fonts
(Festplatte). Die aktuellen Schriftarten befinden sich dabei
in den Unterverzeichnissen Type1 und
X. Um diese Schriftarten zu verwenden,
gibt es mehrere Möglichkeiten, die nun beschrieben werden:Die erste Möglichkeit besteht darin, die Schriftarten
in eins der bereits existierenden Schriftartenverzeichnisse unter
/usr/X11R6/lib/X11/fonts zu kopieren.
Dies bedeutet, dass Sie fonts.dir editieren
müssen, indem Sie die Schriftnamen hinzufügen und
die Anzahl der Schriftarten in der ersten Zeile ändern.
Alternativ ist es auch möglich, im Verzeichnis, in das
Sie die Schriftarten kopiert haben, das Kommando
mkfontdir auszuführen.Die zweite Möglichkeit, besteht darin,
die Verzeichnisse nach
/usr/X11R6/lib/X11/fonts zu kopieren:&prompt.root; cd /usr/X11R6/lib/X11/fonts
&prompt.root; mkdir X
&prompt.root; mkdir MathType1
&prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts
&prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X
&prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; cd /usr/X11R6/lib/X11/fonts/X
&prompt.root; mkfontdir
&prompt.root; cd ../MathType1
&prompt.root; mkfontdirNun fügen Sie die neuen Schriftartenverzeichnisse in
Ihren Pfad ein:&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X
&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; xset fp rehashWenn Sie den XFree86-Server verwenden, können Sie die
Schriftarten-Verzeichnisse automatisch laden lassen, indem Sie sie
Ihrer XF86Config-Datei hinzufügen.SchriftartenWenn Sie noch kein/usr/X11R6/lib/X11/fonts/Type1-Verzeichnis
haben, können Sie das
MathType1-Verzeichnis im vorherigen
Beispiel in Type1 umbenennen.AaronKaplanBeigetragen von RobertGetschmannMit Unterstützung durch Maple installierenLinux-AnwendungenMapleMaple ist ein mit Mathematica vergleichbares kommerzielles
Mathematikprogramm. Sie können dieses Programm unter
kaufen und sich
anschließend registrieren, um eine Lizenz zu erhalten. Um
dieses Programm unter FreeBSD zu installieren, gehen Sie wie
folgt vor:Führen Sie das
INSTALL-Shell-Skript
der Softwaredistribution aus. Wählen Sie die
RedHat-Option aus, wenn Sie das
Installationsprogramm danach fragt. Ein typisches
Installationsverzeichnis wäre z.B.
/usr/local/maple.Wenn Sie dies noch nicht gemacht haben, besorgen Sie
sich nun eine Maple-Lizenz (von Maple Waterloo Software
(http://register.maplesoft.com)) und kopieren Sie diese nach
/usr/local/maple/license/license.dat.Installieren Sie den
FLEXlm-Lizenz-Manager, indem Sie
das INSTALL_LIC-Installations-Shellskript
ausführen, das mit Maple
ausgeliefert wird. Geben Sie Ihren primären
Rechnernamen für den Lizenz-Server an.Verändern Sie
usr/local/maple/bin/maple.system.type
wie folgt: ----- snip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
--- maple.system.type Sun Jul 8 16:35:51 2001
***************
*** 72,77 ****
--- 72,78 ----
# the IBM RS/6000 AIX case
MAPLE_BIN="bin.IBM_RISC_UNIX"
;;
+ "FreeBSD"|\
"Linux")
# the Linux/x86 case
# We have two Linux implementations, one for Red Hat and
----- snip end of patch -----Bitte beachten Sie, dass nach
"FreeBSD"|\ kein anderes
Zeichen eingefügt werden darf.Dieser Patch weist Maple an,
FreeBSD als eine Art von Linux-System zu erkennen.
Das Shell-Skript bin/maple ruft das
Shell-Skript bin/maple.system.type auf,
welches wiederum uname -a verwendet,
um den Namen des Betriebssystems herauszufinden.
Abhängig vom Betriebssystem weiß das System nun,
welche Binärdateien verwendet werden sollen.Starten Sie den Lizenz-Server.Das folgende, als
/usr/local/etc/rc.d/lmgrd.sh
installierte Shell-Skript ist ein komfortabler Weg,
um lmgrd zu starten: ----- snip ------------
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
export PATH
LICENSE_FILE=/usr/local/maple/license/license.dat
LOG=/var/log/lmgrd.log
case "$1" in
start)
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
echo -n " lmgrd"
;;
stop)
lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
;;
*)
echo "Usage: `basename $0` {start|stop}" 1>&2
exit 64
;;
esac
exit 0
----- snip ------------Versuchen Sie, Maple zu starten.&prompt.user; cd /usr/local/maple/bin
&prompt.user; ./xmapleNun sollte das Programm laufen und alles funktionieren.
Falls ja, vergessen Sie nicht, an Maplesoft zu schreiben
und sie wissen zu lassen, dass Sie gerne eine native
FreeBSD-Version hätten.Häufige FehlerquellenDer FLEXlm-Lizenzmanager kann schwierig
zu bedienen sein. Zusätzliche Dokumentation
zu diesem Thema finden Sie unter .Es ist bekannt, dass lmgrd
sehr pingelig ist, wenn es um die Lizenzdatei geht. Gibt
es Probleme, führt dies zu einem Speicherauszug
(core dump). Ein
korrekte Lizenzdatei sollte ähnlich der
folgenden aussehen:# =======================================================
# License File for UNIX Installations ("Pointer File")
# =======================================================
SERVER chillig ANY
#USE_SERVER
VENDOR maplelmg
FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXXSeriennummer und Schlüssel wurden durch mehrere
X unkenntlich gemacht. chillig ist ein
Rechnername.Veränderungen an der Lizenzdatei sind möglich,
solange Sie die FEATURE-Zeile nicht
verändern (diese ist durch den Lizenzschlüssel
geschützt).MarcelMoolenaarBeigetragen von Oracle installierenLinux-AnwendungenOracleÜbersichtDieses Dokument beschreibt die Installation von Oracle 8.0.5
und Oracle 8.0.5.1 Enterprise Edition für Linux auf
einem FreeBSD-Rechner.Installation der Linux-UmgebungStellen Sie sicher, dass Sie linux_base und
linux_devtools (aus der Ports-Sammlung)
installiert haben. Diese Ports wurden nach der Veröffentlichung
von FreeBSD 3.2 hinzugefügt. Wenn Sie FreeBSD 3.2
oder eine ältere Version verwenden, aktualisieren Sie Ihre
Ports-Sammlung. Sie könnten auch in Betracht ziehen,
Ihre FreeBSD-Version zu aktualisieren. Wenn
linux_base-6.1 oder
linux_devtools-6.1 Probleme verursachen,
kann es sein, dass Sie Version 5.2 dieser Pakete verwenden
müssen.Wenn Sie den Intelligent Agent verwenden wollen,
müssen Sie zusätzlich das RedHat Tcl-Paket
installieren: tcl-8.0.3-20.i386.rpm.
Die allgemeine Form des Befehls, um Pakete mit dem offiziellen
RPM-Port zu installieren, lautet:&prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm packageDie Installation dieses Paketes sollte ohne Fehlermeldung
ablaufen.Die Oracle Umgebung erzeugenBevor Sie Oracle installieren können, müssen
Sie eine entsprechende Umgebung erzeugen. Dieses Dokument
beschreibt nur, was Sie im Speziellen
tun müssen, um die Linux-Version von Oracle unter FreeBSD
zu installieren, nicht aber, was bereits in der Installationsanleitung
von Oracle beschrieben wird.Kernel TuningKernel TuningWie in der Oracle Installationsanleitung beschrieben,
müssen Sie die maximale Shared-Memory Größe
festlegen. Verwenden Sie
SHMMAX nicht unter FreeBSD.
SHMMAX wird lediglich aus
SHMMAXPGS und PGSIZE
berechnet. Definieren Sie stattdessen
SHMMAXPGS. Alle anderen Optionen
können wie in der Anleitung beschrieben verwendet werden.
Zum Beispiel:options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61Passen Sie diese Optionen entsprechend dem von Ihnen
gewünschten Einsatzzweck von Oracle an.Stellen Sie außerdem sicher, dass Sie folgende
Optionen in Ihren Kernel kompilieren:options SYSVSHM #SysV shared memory
options SYSVSEM #SysV semaphores
options SYSVMSG #SysV interprocess communicationOracle-Benutzer anlegenLegen Sie einen Oracle-Benutzerzugang an. Dies
funktioniert genauso wie für jeden anderen Zugang auch.
Der Oracle-Zugang hat allerdings die Besonderheit, dass er
eine Linux-Shell zugeordnet bekommen muss. Fügen
Sie daher /compat/linux/bin/bash in die
Datei /etc/shells ein und setzen Sie die
Shell für den Oracle-Benutzerzugang auf
/compat/linux/bin/bash.UmgebungNeben den normalen Oracle-Variablen, wie z.B.
ORACLE_HOME und ORACLE_SID
müssen Sie die folgenden Variablen setzen:VariableWertLD_LIBRARY_PATH$ORACLE_HOME/libCLASSPATH$ORACLE_HOME/jdbc/lib/classes111.zipPATH/compat/linux/bin
/compat/linux/sbin
/compat/linux/usr/bin
/compat/linux/usr/sbin
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
$ORACLE_HOME/binEs ist empfehlenswert, alle Variablen in der Datei
.profile zu setzen. Ein komplettes
Beispiel sieht folgendermaßen aus:ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
export PATHOracle installierenAuf Grund einer kleinen Unregelmäßigkeit
im Linux-Emulator müssen Sie das Verzeichnis
.oracle unter /var/tmp
erzeugen, bevor Sie das Installationsprogramm
starten. Machen Sie es entweder für alle Benutzer
schreibbar oder belassen Sie den Oracle-Benutzer als Eigentümer.
Sie sollten Oracle nun ohne Probleme installieren können.
Treten dennoch Probleme auf, überprüfen Sie
zuerst Ihre Oracle-Dateien und/oder Ihre Konfiguration.
Nachdem Sie Oracle erfolgreich installiert haben, installieren
Sie die Patches wie in den zwei folgenden
Abschnitten beschrieben:Ein häufiges Problem ist, dass der
TCP Protokoll-Adapter nicht korrekt installiert wird.
Daraus folgt, dass Sie keine TCP Listener starten können.
Dieses Problem kann durch folgende Schritte behoben werden:&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk ntcontab.o
&prompt.root; cd $ORACLE_HOME/lib
&prompt.root; ar r libnetwork.a ntcontab.o
&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk installVergessen Sie nicht, root.sh
nochmals auszuführen!root.sh patchenWährend der Oracle-Installation werden einige
Aktionen, die als root
ausgeführt werden müssen, in ein Shell-Skript
mit dem Namen root.sh gespeichert.
root.sh befindet sich im Verzeichnis
orainst. Verwenden Sie folgenden
Patch für root.sh, damit es die richtige Position
von chown findet oder lassen Sie das
Skript alternativ unter einer Linux-Shell ablaufen:*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown
#
# Define variables to be used in this script
--- 31,37 ----
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown
#
# Define variables to be used in this scriptWenn Sie Oracle nicht von CD-ROM installieren, können
Sie Quelldatei für root.sh
verändern. Sie heißt rthd.sh
und befindet sich im orainst-Verzeichnis
des Quellcodebaums.genclntsh patchenDas Skript genclntsh wird verwendet,
um eine Shared-Library für Clients zu erzeugen.
Diese wird bei der Erzeugung der Demos verwendet. Verwenden
Sie folgenden Patch, um die PATH-Definition
auszukommentieren:*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lstOracle startenWenn Sie den Anweisungen gefolgt sind, sollten Sie nun
in der Lage sein, Oracle zu starten,
genau so, wie Sie dies auch unter Linux tun würden.HolgerKippBeigetragen von ValentinoVaschettoOriginalversion nach SGML konvertiert durch: SAP R/3 installierenLinux-AnwendungenSAP R/3SAP-Installationen unter FreeBSD werden vom SAP Support Team
nicht unterstützt – und SAP bietet Support nur
für zertifizierte Plattformen an! ÜbersichtDieses Dokument beschreibt einen möglichen Weg, um ein
SAP R/3-System mit
Oracle Datenbank
für Linux auf einem FreeBSD-Rechner zu installieren,
einschließlich der Installation von FreeBSD und
Oracle. Zwei verschiedene Konfigurationen
werden beschrieben:SAP R/3 4.6B (IDES) mit
Oracle 8.0.5 unter
FreeBSD 4.3-STABLESAP R/3 4.6C mit
Oracle 8.1.7 unter
FreeBSD 4.5-STABLEObwohl dieses Dokument versucht, alle wichtigen Schritte
ausführlich zu beschreiben, besteht nicht die Absicht,
die originalen Installationsanleitungen von
Oracle und
SAP R/3 zu ersetzen.Benutzen Sie die mit SAP R/3 Linux Edition
gelieferte Dokumentation für SAP- und
Oracle-spezifische Fragen,
sowie die Ressourcen von Oracle und
SAP OSS.Software/ProgrammeFolgende CD-ROMs wurden für die SAP-Installationen
verwendet:SAP R/3 4.6B, Oracle 8.0.5BezeichnungNummerBeschreibungKERNEL51009113SAP Kernel Oracle / Installation / AIX, Linux,
SolarisRDBMS51007558Oracle / RDBMS 8.0.5.X / LinuxEXPORT151010208IDES / DB-Export / Disc 1 of 6EXPORT251010209IDES / DB-Export / Disc 2 of 6EXPORT351010210IDES / DB-Export / Disc 3 of 6EXPORT451010211IDES / DB-Export / Disc 4 of 6EXPORT551010212IDES / DB-Export / Disc 5 of 6EXPORT651010213IDES / DB-Export / Disc 6 of 6Zusätzlich wurde die Oracle 8 Server
(Pre-production Version 8.0.5 für Linux, Kernel Version 2.0.33)
CD-ROM verwendet, die allerdings nicht unbedingt nötig ist
und natürlich FreeBSD 4.3-STABLE (die Installation wurde
nur ein paar Tage nach dem 4.3 RELEASE durchgeführt).SAP R/3 4.6C SR2, Oracle 8.1.7BezeichnungNummerBeschreibungKERNEL51014004SAP Kernel Oracle / SAP Kernel Version 4.6D / DEC,
LinuxRDBMS51012930Oracle 8.1.7/ RDBMS / LinuxEXPORT151013953Release 4.6C SR2 / Export / Disc 1 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 2 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 3 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 4 of 4LANG151013954Release 4.6C SR2 / Language / DE, EN, FR /
Disc 1 of 3Abhängig von den zu installierenden Sprachen kann
es sein, dass zusätzliche Sprach-CDs nötig sind.
Da hier nur Deutsch und Englisch verwendet wurden, ist die
erste Sprachen-CD ausreichend. Nebenbei bemerkt sind
die Nummern aller vier Export-CDs identisch. Das heißt alle
drei Sprachen-CDs haben diesselbe Nummer (das unterscheidet
sie von der Nummerierung der 4.6B IDES-Version).
Zum Zeitpunkt der Erstellung dieses Dokuments lief das
System unter FreeBSD 4.5-STABLE (20.03.2002).SAP-NotesDie folgenden Anmerkungen sollten vor der Installation
von SAP R/3 gelesen werden, da sie
sich während der Installation als nützlich
erwiesen haben.SAP R/3 4.6B, Oracle 8.0.5NummerBezeichnung0171356SAP Software on Linux: Essential Comments0201147INST: 4.6C R/3 Inst. on UNIX - Oracle0373203Update / Migration Oracle 8.0.5 --> 8.0.6/8.1.6
LINUX0072984Release of Digital UNIX 4.0B for Oracle0130581R3SETUP step DIPGNTAB terminates0144978Your system has not been installed correctly0162266Questions and tips for R3SETUP on
Windows NT/W2KSAP R/3 4.6C, Oracle 8.1.7NummerBezeichnung0015023Initializing table TCPDB (RSXP0004) (EBCDIC)0045619R/3 with several languages or typefaces0171356SAP Software on Linux: Essential Comments0195603RedHat 6.1 Enterprise version: Known problems0212876The new archiving tool SAPCAR0300900Linux: Released DELL Hardware0377187RedHat 6.2: important remarks0387074INST: R/3 4.6C SR2 Installation on UNIX0387077INST: R/3 4.6C SR2 Inst. on UNIX - Oracle0387078SAP Software on UNIX: OS Dependencies 4.6C SR2Hardware-AnforderungenDie folgende Ausstattung reicht für die Installation eines
SAP R/3 Systems aus. Für
Produktionszwecke benötigt man natürlich eine
exakte Bestimmung dieser Größen:Komponente4.6B4.6CProzessor2 x 800MHz Pentium III2 x 800MHz Pentium IIIHauptspeicher1GB ECC2GB ECCFestplattenplatz50-60GB (IDES)50-60GB (IDES)Für Produktionszwecke sind Xeon-Prozessoren mit
großem Cache, Hochgeschwindigkeitsspeicher (SCSI,
RAID Hardware Controller), USV (unterbrechungsfreie
Stromversorgung) und ECC-RAM empfehlenswert. Der große
Bedarf an Festplattenplatz ergibt sich durch das vorkonfigurierte
IDES System, welches während der Installation
27 GB Datenbankdateien erzeugt. Dieser Speicher ist
auch für neue Produktionssysteme und Anwendungsdaten
ausreichend.SAP R/3 4.6B, Oracle 8.0.5Folgende Standard-Hardware wurde verwendet: Ein
Doppelprozessorboard mit zwei 800 MHz Pentium III
Prozessoren, Adaptec 29160 Ultra160 SCSI Adaptern
(zum Anschluß eines 40/80 GB DLT Bandlaufwerks und eines
CD-ROM-Laufwerks), Mylex AcceleRAID (2 Kanäle,
Firmware 6.00-1-00 mit 32 MB RAM). An den
Mylex Raid-controller wurden 2 (gespiegelte) 17 GB
Festplatten sowie vier 36 GB Festplatten (RAID level 5)
angeschlossen.SAP R/3 4.6C, Oracle 8.1.7Für diese Installation wurde ein DELL PowerEdge 2500
verwendet: Ein Doppelprozessorboard mit zwei
1000 MHz Pentium III Prozessoren
(256 kB Cache), 2 GB PC133 ECC SDRAM, PERC/3 DC PCI Raid
Controller mit 128 MB, und einem EIDE DVD-ROM Laufwerk. An den
RAID-Controller sind zwei (gespiegelte) 18 GB Festplatten
sowie vier 36 GB Festplatten (RAID level 5) angeschlossen.Installation von FreeBSDAls erstes müssen Sie FreeBSD installieren.
Dazu gibt es mehrere Möglichkeiten (Hier wurde
FreeBSD 4.3 via FTP, FreeBSD 4.5 hingegen direkt
von CD installiert.).Aufteilung der FestplatteUm das Ganze zu vereinfachen, wurde sowohl für die
SAP R/3 46B- als auch die
SAP R/3 46C SR2-Installation die
gleiche Platteneinteilung verwendet. Nur die Gerätenamen
änderten sich, da die Installationen auf verschiedenen
Hardwareplattformen durchgeführt wurden.(insbesondere
/dev/da sowie
/dev/amr; wenn also jemand z.B.
ein AMI MegaRAID verwendet, so wird er
/dev/amr0s1a anstelle von
/dev/da0s1a vorfinden):DateisystemGröße (1k-blocks)HDD-Größe (GB)Gemountet nach/dev/da0s1a1.016.3031//dev/da0s1b6Swap/dev/da0s1e2.032.6232/var/dev/da0s1f8.205.3398/usr/dev/da1s1e45.734.36145/compat/linux/oracle/dev/da1s1f2.032.6232/compat/linux/sapmnt/dev/da1s1g2.032.6232/compat/linux/usr/sapKonfigurieren und initialisieren Sie die zwei
logischen Platten mit der Mylex- oder PERC/3 RAID Software,
bevor Sie beginnen. Diese kann während der BIOS-Bootphase
gestartet werden.Beachten Sie bitte, dass sich diese Platteneinteilung
etwas von den SAP-Empfehlungen unterscheidet, da SAP
vorschlägt, die Oracle-Unterverzeichnisse
(und einige andere) separat zu mounten – ich habe mich
jedoch aus Vereinfachungsgründen
dazu entschieden, diese als reale Unterverzeichnisse
zu erzeugen.make world und ein neuer KernelLaden Sie die neuesten STABLE-Quellen herunter.
Aktualisieren Sie das System und erzeugen Sie einen
neuen Kernel, nachdem Sie die Kernelkonfigurationsdatei
angepasst haben. Zusätzlich sollten Sie
die Kernel Parameter
einfügen, die sowohl von SAP R/3
als auch von Oracle
benötigt werden.Installation der Linux-UmgebungWährend der ersten Installation von FreeBSD 4.3-STABLE
traten einige Fehler beim Download der benötigten
RPM-Pakete (für 4.3-STABLE, am 2. Mai 2001) auf, mit
FreeBSD 4.5-STABLE hingegen lief alles glatt. Sollten dennoch
Probleme auftreten, versuchen Sie diese Pakete manuell herunterzuladen.
Für eine Übersicht der RPM-Spiegelserver
sowie der benötigten Dateien lesen Sie bitte das
zugehörige Makefile.Das Linux-Basissystem installierenAls erstes muss der
linux_base-Port
(als root) installiert werden.
Zum Zeitpunkt der Erstellung dieses Artikels war dies
linux_base-6.&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make packageDie Linux-Umgebung installieren und einrichtenDie Linux-Entwicklungsumgebung wird benötigt, wenn Sie
Oracle auf Ihrem FreeBSD-System
(gemäß der Beschreibung im Handbuch)
installieren wollen:&prompt.root; cd /usr/ports/devel/linux_devtools
&prompt.root; make packageDie Linux-Entwicklungsumgebung wurde hier jedoch nur für die
SAP R/3 46B IDES-Installation
verwendet. Sie wird nicht benötigt, wenn die
Oracle-Datenbank auf dem FreeBSD
System nicht neu gebunden wird. Dies ist dann der Fall,
wenn Sie den Oracle
Tarball eines Linux-Systems verwenden.Notwendige RPMs installierenRPMsUm das R3SETUP-Programm zu starten, wird
PAM-Unterstützung benötigt.
Während der ersten SAP-Installation unter
FreeBSD 4.3-STABLE wurde versucht, zuerst alle von PAM
benötigten Paketen zu installieren. Anschließend
wurde die Installation von PAM erzwungen (force install),
was dann auch ohne Probleme funktionierte. Die
Installation von SAP R/3 4.6C SR2
wurde ebenfalls erzwungen, diesmal ohne die Installation
der benötigten Pakete, was ebenfalls funktionierte.
Es sieht also so aus, dass die abhängigen Pakete
doch nicht benötigt werden.&prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
pam-0.68-7.i386.rpmUm den Intelligent-Agent von
Oracle 8.0.5 auszuführen,
musste das RedHat Tcl-Paket
tcl-8.0.5-30.i386.rpm installiert werden,
da sonst das Binden (link) während der
Oracle-Installation nicht
funktionierte. Es gibt noch weitere Punkte beim Binden von
Oracle, die aber die Kombination Oracle-Linux betreffen und nicht
FreeBSD spezifisch sind.Zusätzliche HinweiseEine gute Idee ist es, linprocfs
in /etc/fstab einzufügen. Für
weitere Informationen lesen Sie bitte die zugehörige Hilfedatei
(man linprocfs). Ein anderer zu setzender
Parameter ist kern.fallback_elf_brand=3.
Dies erfolgt in /etc/sysctl.conf.
Die SAP/R3-Umgebung erzeugenDie nötigen Dateisysteme erzeugenFür eine einfache Installation reicht es aus,
folgende Dateisysteme zu erzeugen:DateisystemeGröße in GB/compat/linux/oracle45 GB/compat/linux/sapmnt2 GB/compat/linux/usr/sap2 GBAußerdem müssen einige Links angelegt werden.
Ansonsten beschwert sich der SAP-Installer, wenn er die
erzeugten Links überprüft:&prompt.root; ln -s /compat/linux/oracle /oracle
&prompt.root; ln -s /compat/linux/sapmnt /sapmnt
&prompt.root; ln -s /compat/linux/usr/sap /usr/sapEine Fehlermeldung während der Installation (hier unter dem
PRD-System und
SAP R/3 4.6C SR2 könnte
beispielsweise so aussehen:INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
/sapmnt/PRD/exe. Creating if it does not exist...
WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
/compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
program cannot go on as long as this link exists at this
location. Move the link to another location.
ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
'/sapmnt/PRD/exe'Benutzer und Verzeichnisse anlegenSAP R/3 benötigt zwei
Benutzer und drei Benutzergruppen. Die Benutzernamen
hängen von der (aus drei Buchstaben bestehenden)
SAP-System-ID (SID) ab. Einige
dieser SIDs sind von SAP
reserviert (z.B. SAP und
NIX. Für eine komplette
Übersicht schlagen Sie bitte in der SAP-Dokumentation
nach. Für die IDES-Installation wurde IDS
verwendet, für die 4.6C-SR2-Installation
PRD, da das System für
Produktionszwecke eingesetzt werden sollte. Daraus ergaben
sich folgende Gruppen (die Gruppen-IDs können variieren,
es handelt sich nur um Werte, die für diese spezielle
Installation verwendet wurden):Gruppen-IDGruppen-NameBeschreibung100dbaDatenbank-Administrator101sapsysSAP System102operDatenbank-OperatorFür eine Standard-Oracle-Installation wird nur die Gruppe
dba verwendet. Ein Mitglied der Gruppe
oper verwendet auch die Gruppe
dba (weitere Informationen finden sich
in der Oracle- und SAP-Dokumentation).Zusätzlich werden auch folgende Benutzer
benötigt:Benutzer-IDBenutzernameGenerischer NameGruppeZusätzliche GruppenBeschreibung1000idsadm/prdadmsidadmsapsysoperSAP Administrator1002oraids/oraprdorasiddbaoperDB AdministratorFür das Anlegen des SAP-Administrators mittels
adduser werden folgende Einträge
(bitte Shell und Heimatverzeichnis beachten) benötigt:Name: sidadm
Password: ******
Fullname: SAP Administrator SID
Uid: 1000
Gid: 101 (sapsys)
Class:
Groups: sapsys dba
HOME: /home/sidadm
Shell: bash (/compat/linux/bin/bash)und für den Datenbank-Administrator:Name: orasid
Password: ******
Fullname: Oracle Administrator SID
Uid: 1002
Gid: 100 (dba)
Class:
Groups: dba
HOME: /oracle/sid
Shell: bash (/compat/linux/bin/bash)Wenn Sie beide Gruppen (dba und
oper) verwenden, sollte auch die Gruppe
oper hinzugefügt werden.Verzeichnisse erzeugenDiese Verzeichnisse werden gewöhnlich als eigene
Dateisysteme erzeugt und gemountet. Letztlich liegt dies
aber an Ihren Anforderungen an das System. Hier wurden
sie als einfache Verzeichnisse angelegt, die sich alle im
gleichen RAID5 befinden:Zuerst werden die Eigentümer und Rechte für
einige Verzeichnisse (als Benutzer root)
gesetzt:&prompt.root; chmod 775 /oracle
&prompt.root; chmod 777 /sapmnt
&prompt.root; chown root:dba /oracle
&prompt.root; chown sidadm:sapsys /compat/linux/usr/sap
&prompt.root; chmod 775 /compat/linux/usr/sapDanach werden (als Benutzer
orasid) einige
Verzeichnisse erzeugt, die alle Unterverzeichnisse von
/oracle/SID sind:&prompt.root; su - orasid
&prompt.root; cd /oracle/SID
&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB
&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6
&prompt.root; mkdir saparch sapreorg
&prompt.root; exitFür die Oracle 8.1.7-Installation
werden ebenfalls zusätzliche Verzeichnisse benötigt:&prompt.root; su - orasid
&prompt.root; cd /oracle
&prompt.root; mkdir 805_32
&prompt.root; mkdir client stage
&prompt.root; mkdir client/80x_32
&prompt.root; mkdir stage/817_32
&prompt.root; cd /oracle/SID
&prompt.root; mkdir 817_32Das Verzeichnis client/80x_32
muss genau so genannt werden. Versuchen Sie nicht,
das x durch eine Zahl oder
einen Buchstaben zu ersetzen.Im dritten Schritt werden wiederum Verzeichnisse (als Benutzer
sidadm) erzeugt:&prompt.root; su - sidadm
&prompt.root; cd /usr/sap
&prompt.root; mkdir SID
&prompt.root; mkdir trans
&prompt.root; exitEinträge in /etc/servicesSAP R/3 benötigt einige Einträge in
/etc/services, die während der
Installation unter FreeBSD nicht richtig gesetzt werden.
Sie benötigen mindestens die zur Instanzennummer,
in diesem Fall 00, passenden Einträge.
Es ist auch möglich für dp,
gw, sp und
ms alle Einträge von
00 bis 99
einzufügen. Wenn Sie einen
SAP-Router verwenden, oder den Zugang zu SAP OSS benötigen,
müssen Sie auch 99 einfügen,
da der Port 3299 normalerweise für den
SAP-Router-Prozess auf dem Zielsystem benötigt wird:
sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number
sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number
sapsp00 3400/tcp # 3400 + Instance-Number
sapms00 3500/tcp # 3500 + Instance-Number
sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number
sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-NumberNotwendige LokalisierungenLocaleSAP benötigt mindestens zwei Lokalisierungen, die
nicht Teil der RedHat-Standardinstallation sind. SAP bietet
diese als RPMs auf ihrem FTP-Server als Downloads
an (diese sind aber nur dann zugänglich, wenn Sie
ein Kunde mit OSS-Zugang sind). Für eine
Übersicht der notwendigen RPMs lesen Sie bitte den
SAP-Hinweis 0171356.Es ist auch möglich, nur die passenden Links
(z.B. von de_DE und en_US)
zu erzeugen, diese Vorgehensweise wird aber nicht nicht
empfohlen (obwohl es bisher beim IDES-System ohne Probleme
funktioniert hat). Folgende Lokalisationen werden
benötigt:
de_DE.ISO-8859-1
en_US.ISO-8859-1
Erzeugen Sie die Links wie folgt:&prompt.root; cd /compat/linux/usr/share/locale
&prompt.root; ln -s de_DE de_DE.ISO-8859-1
&prompt.root; ln -s en_US en_US.ISO-8859-1Sind diese nicht vorhanden, wird es während
der Installation zu einigen Problemen kommen. Wenn diese
konsequent ignoriert werden (durch das OK-Setzen der jeweiligen
Stadien in CENTRDB.R3S), ist es ohne größeren
Aufwand nicht mehr möglich, sich am SAP-System
anzumelden.Kernel TuningKernel TuningSAP R/3-Systeme verbrauchen sehr viel Ressourcen.
Deshalb wurden folgende Parameter in die Kernelkonfigurationsdatei
eingefügt:# Set these for memory pigs (SAP and Oracle):
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
# System V options needed.
options SYSVSHM #SYSV-style shared memory
options SHMMAXPGS=262144 #max amount of shared mem. pages
#options SHMMAXPGS=393216 #use this for the 46C inst.parameters
options SHMMNI=256 #max number of shared memory ident if.
options SHMSEG=100 #max shared mem.segs per process
options SYSVMSG #SYSV-style message queues
options MSGSEG=32767 #max num. of mes.segments in system
options MSGSSZ=32 #size of msg-seg. MUST be power of 2
options MSGMNB=65535 #max char. per message queue
options MSGTQL=2046 #max amount of msgs in system
options SYSVSEM #SYSV-style semaphores
options SEMMNU=256 #number of semaphore UNDO structures
options SEMMNS=1024 #number of semaphores in system
options SEMMNI=520 #number of semaphore indentifiers
options SEMUME=100 #number of UNDO keysDie minimalen Werte sind in der von SAP kommenden
Dokumentation festgelegt. Da es keine Beschreibung für
Linux (und daher auch nicht für FreeBSD) gibt,
muss man für weitere Informationen im
HP-UX-Abschnitt (32-Bit) nachschlagen.
Da das System für die 4.6C SR2-Installation über
mehr Hauptspeicher verfügte, können die
Shared-Segments für SAP und
Oracle größer sein.
Wählen Sie daher eine größere Anzahl von
Shared-Memory-Pages.Bei einer Standard-Installation von
FreeBSD 4.5 auf i386-Systemen belassen Sie MAXDSIZ
und DFLDSIZ auf dem Maximum von 1 GB. Ansonsten könnten
seltsame Fehlermeldungen, wie
ORA-27102: out of memory oder
Linux Error: 12: Cannot allocate memory
auftreten.SAP R/3 installierenDie SAP CD-ROMs vorbereitenFür eine Installation werden viele CD-ROMs benötigt,
die gemountet und ungemountet werden müssen. Wenn
Sie genügend CD-ROM-Laufwerke haben, können Sie
alle gleichzeitig gemountet werden. Ansonsten kopiert man die
CD-ROM-Inhalte einfach in die entsprechenden Verzeichnisse,/oracle/SID/sapreorg/cd-namewobei cd-nameKERNEL,
RDBMS, EXPORT1,
EXPORT2, EXPORT3,
EXPORT4, EXPORT5 und
EXPORT6 bei einer 4.6B/IDES-Installation und
KERNEL, RDBMS,
DISK1, DISK2,
DISK3, DISK4 und
LANG bei einer 4.6C SR2-Installation
entspricht. Die Dateinamen auf den gemounteten CDs sollten
aus Großbuchstaben bestehen. Ist dies nicht der Fall,
verwenden Sie zum Mounten die Option . Für das
Kopieren der CD-Inhalte verwenden Sie folgenden Befehle:&prompt.root; mount_cd9660 -g /dev/cd0a /mnt
&prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/cd-name
&prompt.root; umount /mntDas Installations-Skript ausführenAls erstes müssen Sie ein Installationsverzeichnis
anlegen:&prompt.root; cd /oracle/SID/sapreorg
&prompt.root; mkdir install
&prompt.root; cd installAnschließend wird das Installations-Skript gestartet,
das nahezu alle relevanten Daten in das Installationsverzeichnis
kopiert:&prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SHDie IDES-Installation (4.6B) wird mit einem vollständig
angepassten SAP R/3 Demo-System geliefert, das heißt
es gibt sechs statt drei Export-CDs. Da
CENTRDB.R3S
für eine Standard-Zentralinstanz (R/3 plus Datenbank)
ausgelegt ist, aber nicht für eine IDES-Zentralinstanz,
muss die passende CENTRDB.R3S-Datei
manuell aus dem EXPORT1-Verzeichnis in das Installationsverzeichnis
kopiert werden, da R3SETUP ansonsten nur nach drei
EXPORT-CDs verlangt.Die aktuellere Version SAP 4.6C SR2
wird mit vier EXPORT-CDs geliefert. Die die Installation
überwachende Parameter-Datei heißt hier
CENTRAL.R3S. Im Gegensatz zu früheren
Versionen gibt es nun keine separaten Vorlagen für
die Installation von Zentralinstanzen mit und ohne Datenbank mehr.
SAP verwendet eine eigene Vorlage für die
Datenbankinstallation. Um die Installation später
erneut starten, ist es jedoch ausreichend,
die Installation mit der ursprünglichen Datei zu starten.Während und nach der Installation benötigt SAP
hostname, um den Rechnernamen, aber nicht
den vollständigen Domain-Namen zu erhalten. Setzen Sie
also entweder den Rechnernamen entsprechend, oder
setzen Sie einen Alias mit
alias hostname='hostname -s'
für die Benutzer
orasid und
sidadm
(Und zusätzlich für root.
Dies zumindest für die Installationsschritte, die als
root ausgeführt werden müssen.).
Außerdem ist es möglich, nur die installierten
Profil- und Login-Skripts der beiden Benutzer anzupassen,
die während der SAP-Installation
erstellt wurden.R3SETUP 4.6B startenStellen Sie sicher, dass LD_LIBRARY_PATH korrekt
gesetzt wurde:&prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/libGehen Sie in das Installationsverzeichnis und starten Sie
R3SETUP als root:&prompt.root; cd /oracle/IDS/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRDB.R3SDas Skript stellt anschließend einige Fragen
(Vorgaben stehen dabei in Klammern, gefolgt von den
aktuellen Eingaben):FrageVorgabeEingabeEnter SAP System ID[C11]IDSEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[troubadix.domain.de]EnterEnter name of SAP db host[troubadix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (1) Oracle 8.0.5,
(2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.61EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/IDS/sapreorg/KERNELEnter path to RDBMS CD[/sapcd]/oracle/IDS/sapreorg/RDBMSEnter path to EXPORT1 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT1Directory to copy EXPORT1 CD[/oracle/IDS/sapreorg/CD4_DIR]EnterEnter path to EXPORT2 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT2Directory to copy EXPORT2 CD[/oracle/IDS/sapreorg/CD5_DIR]EnterEnter path to EXPORT3 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT3Directory to copy EXPORT3 CD[/oracle/IDS/sapreorg/CD6_DIR]EnterEnter path to EXPORT4 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT4Directory to copy EXPORT4 CD[/oracle/IDS/sapreorg/CD7_DIR]EnterEnter path to EXPORT5 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT5Directory to copy EXPORT5 CD[/oracle/IDS/sapreorg/CD8_DIR]EnterEnter path to EXPORT6 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT6Directory to copy EXPORT6 CD[/oracle/IDS/sapreorg/CD9_DIR]EnterEnter amount of RAM for SAP + DB850Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[101]EnterEnter Group-ID of oper[102]EnterEnter Group-ID of dba[100]EnterEnter User-ID of sidadm[1000]EnterEnter User-ID of orasid[1002]EnterNumber of parallel procs[2]EnterWenn Sie die CD-Inhalte nicht in verschiedene
Verzeichnisse kopiert haben, findet der SAP-Installer
die benötigten CDs nicht (diese sind durch die Datei
LABEL.ASC gekennzeichnet) und
würde von Ihnen verlangen, entweder die CD einzulegen
und zu mounten oder den entsprechenden mount-Pfad
einzugeben.CENTRDB.R3S ist möglicherweise
nicht fehlerfrei. Im vorliegenden Fall wurde die CD EXPORT4
zwar erneut verlangt, dennoch wurde der richtige Schlüssel
(6_LOCATION, danach 7_LOCATION) vorgeschlagen.
Daher ist es problemlos möglich, durch Eingabe der
korrekten Werte fortzufahren. Lassen Sie sich also
nicht verwirren.Abgesehen von einigen kleineren (unten angeführten)
Problemen, sollte nun bis zur Installation der
Oracle-Datenbank alles ohne Probleme
ablaufen.R3SETUP 4.6C SR2 startenStellen Sie sicher, dass LD_LIBRARY_PATH
korrekt gesetzt ist. Dieser Wert unterscheidet sich von dem der
4.6B-Oracle 8.0.5-Installation:&prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/libGehen Sie in das Installationsverzeichnis und führen
Sie R3SETUP als root aus:&prompt.root; cd /oracle/PRD/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRAL.R3SDas Skript stellt anschließend einige Fragen
(Vorgaben in Klammern, gefolgt von den aktuellen Eingaben):FrageVorgabeEingabeEnter SAP System ID[C11]PRDEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[majestix]EnterEnter Database System ID[PRD]PRDEnterEnter name of SAP db host[majestix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (2) Oracle 8.1.72EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/PRD/sapreorg/KERNELEnter amount of RAM for SAP + DB20441800Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[100]EnterEnter Group-ID of oper[101]EnterEnter Group-ID of dba[102]EnterEnter User-ID of oraprd[1002]EnterEnter User-ID of prdadm[1000]EnterLDAP support3Enter (no support)Installation step completed[1] (continue)EnterChoose installation service[1] (DB inst,file)EnterBisher verursacht das Anlegen von Benutzern eine
Fehlermeldung während der Installation, und zwar
in den Stadien OSUSERDBSID_IND_ORA (beim Anlegen
des Benutzers orasid),
sowie in OSUSERSIDADM_IND_ORA (beim Anlegen des Benutzers
sidadm).Abgesehen von einigen kleineren (unten angeführten)
Problemen, sollte nun bis zur Installation der
Oracle-Datenbank alles ohne
Probleme ablaufen.Oracle 8.0.5 installierenLesen Sie bitte die entsprechenden
SAP-Hinweise und
Oracle-Readmes für Probleme,
die Linux
und die Oracle-Datenbank betreffen.
Die meisten (wenn nicht alle) Probleme
werden durch inkompatible Bibliotheken verursacht.Für weitere Informationen zur Oracle-Installation,
lesen Sie bitte das Kapitel
zur Installation von Oracle.Oracle 8.0.5 mit orainst installierenWenn Oracle 8.0.5 verwendet
wird, werden einige zusätzliche Bibliotheken benötigt,
da Oracle 8.0.5 mit einer
alten Version von glibc verlinkt wurde, RedHat 6.1 aber
bereits eine aktuellere Version verwendet. Daher müssen
Sie folgende zusätzliche Pakte installieren, um sicherzustellen,
dass die Verlinkung ordnungsgemäß erfolgt:compat-libs-5.2-2.i386.rpmcompat-glibc-5.2-2.0.7.2.i386.rpmcompat-egcs-5.2-1.0.3a.1.i386.rpmcompat-egcs-c++-5.2-1.0.3a.1.i386.rpmcompat-binutils-5.2-2.9.1.0.23.1.i386.rpmFür weitere Informationen lesen Sie bitte die
entsprechenden SAP-Hinweise sowie die Oracle-Readme's.
Ist dies nicht möglich (z.B. aus Zeitmangel, oder bei
Nichtvorhandensein dieser Unterlagen), besteht auch die
Möglichkeit, die originalen Binärdateien oder die
verlinkten Binärdateien eines RedHat-Systems zu
verwenden.Um den Intelligent-Agent zu kompilieren, muss
das RedHat Tcl-Paket installiert sein. Wenn Sie
tcl-8.0.3-20.i386.rpm nicht bekommen
können, sollte es auch problemlos möglich sein,
eine neuere Version, z.B.
tcl-8.0.5-30.i386.rpm für
RedHat 6.1, zu verwenden.Vom Binden abgesehen, läuft die Installation
wie folgt ab:&prompt.root; su - oraids
&prompt.root; export TERM=xterm
&prompt.root; export ORACLE_TERM=xterm
&prompt.root; export ORACLE_HOME=/oracle/IDS
&prompt.root; cd /ORACLE_HOME/orainst_sap
&prompt.root; ./orainstBestätigen Sie alle Meldungen mit Enter,
bis die Software installiert ist. Einzige Ausnahme ist die
Frage nach der Installation des Oracle On-Line
Text Viewers. Dieser ist unter Linux (noch)
nicht verfügbar. Daher muss diese Option deaktiviert werden.
Anschließend will sich Oracle unter Verwendung von
i386-glibc20-linux-gcc anstelle der
verfügbaren gcc, egcs
oder i386-redhat-linux-gcc verlinken.Auf Grund zeitlicher Einschränkungen wurden
für die Installation die Binärdateien der
Oracle 8.0.5 PreProduction-Version
verwendet, nachdem sich der erste Versuch, die Version
von der RDBMS-CD zum Laufen zu bringen, sowie die
richtigen RPMs zu finden und zu installieren,
zum Alptraum entwickelt hatte.Oracle 8.0.5 Pre-Production für
Linux (Kernel 2.0.33) installierenDiese Installation ist relativ einfach. Mounten Sie die
CD und starten Sie den Installer. Danach wählen Sie
das Oracle-Heimatverzeichnis und kopieren Sie die
Binärdateien dorthin. Die Überreste der
vorherigen RDBMS-Installationsversuche werden dabei nicht
entfernt.Danach konnte die Oracle-Datenbank ohne Probleme
gestartet werden.Das Oracle 8.1.7-Linux-Archiv entpackenNehmen Sie das aus dem Installationsverzeichnis eines
Linux-Systems erstellte Archiv oracle81732.tgz
und entpacken Sie es nach
/oracle/SID/817_32/.Mit der SAP R/3-Installation fortfahrenÜberprüfen Sie als erstes die
Umgebungseinstellungen der Benutzer
idsamd(sidadm) und
oraids (orasid).
Beide sollten nun die Dateien .profile,
.login und .cshrc
enthalten, die alle hostname benutzen.
Falls der Rechnername Ihres Systems der vollständige Rechnername
ist, müssen Sie in allen drei Dateien
hostname in hostname -s
ändern.Datenbanken ladenDanach kann R3SETUP entweder erneut gestartet
oder fortgesetzt werden (je nachdem, ob sie das Programm
zuvor beendet hatten oder nicht). R3SETUP erzeugt nun die
Tablespaces und lädt die Daten
(für 46B IDES von EXPORT1 bis EXPORT6,
für 46C von DISK1 bis DISK4) mittels R3load in
die Datenbank.Wenn das Laden der Datenbank abgeschlossen ist
(dieser Vorgang kann einige Stunden dauern!), werden
einige Passwörter angefordert. Für
Testinstallationen können auch
Standard-Passwörter verwendet werden. Liegt
Ihnen allerdings etwas an der Sicherheit Ihres Systems,
so verwenden Sie andere Passwörter.FrageEingabeEnter Password for sapr3sapEnterConfirum Password for sapr3sapEnterEnter Password for syschange_on_installEnterConfirm Password for syschange_on_installEnterEnter Password for systemmanagerEnterConfirm Password for systemmanagerEnterAn diesem Punkt gab es während der 4.6B-Installation
einige Probleme mit dipgntab.ListenerStarten Sie den Oracle-Listener als Benutzer
orasid
wie folgt:&prompt.user; umask 0; lsnrctl startAnsonsten könnten Sie die Meldung
ORA-12546 erhalten,
da die Sockets nicht über die korrekten Berechtigungen
verfügen werden. Lesen Sie dazu auch den
SAP-Hinweis 072984.MNLS-Tabellen aktualisierenWenn Sie Nicht-Latin-1-Sprachen in das SAP-System
einbauen wollen, müssen Sie die MNLS
(Multi National Language Support)-Tabellen aktualisieren.
Dies wird in den SAP-OSS-Hinweisen 15023 und 45619 beschrieben.
Ansonsten können Sie diese Frage während der
SAP-Installation überspringen.Wenn Sie MNLS nicht benötigen, ist es
trotzdem nötig, die Tabelle TCPDB zu überprüfen
und zu initialisieren, falls dies nicht bereits geschehen ist.
Lesen Sie die SAP-Hinweise 0015023 und 0045619, falls Sie
weitere Informationen benötigen.Abschließende AufgabenSAP R/3-Lizenzschlüssel anfordernSie müssen Ihren SAP R/3-Lizenzschlüssel anfordern,
da die zur Installation verwendete Lizenz nur für
vier Wochen gültig ist. Dazu ermitteln Sie zuerst Ihren
Hardwareschlüssel. Melden Sie sich als
idsadm an und rufen
Sie saplicense auf:&prompt.root; /sapmnt/IDS/exe/saplicense -getWird saplicense ohne Optionen aufgerufen,
so erhalten Sie eine Übersicht der möglichen Optionen.
Nach Erhalt des Lizenzschlüssels kann dieser
installiert werden:&prompt.root; /sapmnt/IDS/exe/saplicense -installNun müssen Sie folgende Daten eingeben:
SAP SYSTEM ID = SID, 3 Zeichen
CUSTOMER KEY = Hardware-Schlüssel, 11 Zeichen
INSTALLATION NO = Installation, 10 Ziffern
EXPIRATION DATE = JJJJMMTT, normalerweise "99991231"
LICENSE KEY = Lizenzschlüssel, 24 ZeichenBenutzer anlegenErzeugen Sie einen Benutzer innerhalb von client 000
(für einige Aufgaben muss dies innerhalb von
client 000 erfolgen, aber nicht als Benutzer
sap* und ddic).
Als Benutzername empfiehlt sich z.B.
wartung oder
service (in Englisch). Benötigte
Profile sind sap_new und
sap_all. Aus Sicherheitsgründen
sollten die Passwörter der Standardbenutzer in allen
Clients geändert werden (dies gilt auch für die Benutzer
sap* und ddic).Transportsystem, Profile, Betriebsarten usw.
konfigurierenInnerhalb von client 000 führen andere Benutzer als
ddic und sap*
normalerweise folgende Aufgaben durch:AufgabeTransaktionKonfiguration des Transportsystems, z.B. als
Stand-Alone Transport Domain EntitySTMSErstellen und Editieren von ProfilenRZ10Pflege von Betriebsarten und InstanzenRZ04Diese sowie alle anderen Post-Installationsschritte
sind ausführlich in den SAP-Installationsanleitungen
beschrieben.initsid.sap (initIDS.sap) anpassenDie Datei /oracle/IDS/dbs/initIDS.sap
enthält das SAP-Sicherungsprofil. Hier sind die
Größe des verwendeten Band(laufwerks),
die Kompressionsart und so weiter festgelegt. Um dieses
Profil mit sapdba oder brbackup
auszuführen, wurden folgende Werte geändert:
compress = hardware
archive_function = copy_delete_save
cpio_flags = "-ov --format=newc --block-size=128 --quiet"
cpio_in_flags = "-iuv --block-size=128 --quiet"
tape_size = 38000M
tape_address = /dev/nsa0
tape_address_rew = /dev/sa0Erklärungen:compress Das verwendete Bandlaufwerk
war ein HP DLT1. Dieses unterstützt Hardware-Kompression.archive_function Hier wird das
Standardverhalten beim Sichern von Oracle-Archivprotokollen
festgelegt. Neue Protokolldateien werden auf Band
gespeichert, bereits gespeicherte erneut gespeichert und
anschließend gelöscht. Dies verhindert eine Vielzahl
von Problemen, falls Sie Ihre Datenbank wiederherstellen
müssen und dabei feststellen, dass eins Ihrer
Archivbänder defekt ist.cpio_flags Standardmäßig
wird -B verwendet. Dies setzt die Blockgröße
auf 5120 Bytes. Für DLT-Bänder
werden von HP mindestens 32 K Blockgröße
empfohlen, daher wurde hier --block-size=128
verwendet, um 64 KB-blöcke zu erzeugen.
--format=newc wurde benötigt, da das
Installationssystem über mehr als 65535 Inodes
verfügt. Die letzte Option --quiet ist notwendig, weil
brbackup sich sonst beschwert, wenn
die cpio die Anzahl der gespeicherten
Blöcke ausgibt.cpio_in_flags Flags, die zum Laden
der Daten vom Band benötigt werden. Das Format wird
dabei automatisch erkannt.tape_size Damit wird die maximale
Speicherkapazität des Bandes angegeben. Aus
Sicherheitsgründen (das Bandlaufwerk unterstützt
Hardware-Kompression) ist dieser Wert geringfügig kleiner
als der aktuelle Wert.tape_address Nicht zurückspulendes
Gerät für cpio.tape_address_rew Zurückspulendes
Gerät für cpio.Konfiguration nach InstallationsendeDie folgenden SAP-Parameter sollten nach der
Installation optimiert werden (die Beispiele gelten
für IDES 46B, 1 GB Hauptspeicher):NameWertztta/roll_extension250000000abap/heap_area_dia300000000abap/heap_area_nondia400000000em/initial_size_MB256em/blocksize_kB1024ipc/shm_psize_4070000000SAP-Hinweis 0013026:NameWertztta/dynpro_area2500000SAP-Hinweis 0157246:NameWertrdisp/ROLL_MAXFS16000rdisp/PG_MAXFS30000Mit obigen Parametern und einem System mit 1 Gigabyte
Hauptspeicher, könnte der Speicherverbrauch in etwa
so aussehen:Mem: 547M Active, 305M Inactive, 109M Wired, 40M Cache, 112M Buf, 3492K FreeWährend der Installation auftretende ProblemeNeustarten von R3SETUP nach Behebung eines ProblemsR3SETUP bricht ab, wenn ein Fehler auftritt. Wenn Sie
(nach Durchsicht der jeweiligen Protokolldateien) den Fehler
behoben haben, müssen Sie R3SETUP erneut aufrufen,
indem Sie für den fehlerhaften Schritt als Option
REPEAT eingeben.Um R3SETUP erneut zu starten, rufen Sie die Datei
einfach mit der entsprechenden R3S-Datei
auf:&prompt.root; ./R3SETUP -f CENTRDB.R3Sfür 4.6B, oder mit&prompt.root; ./R3SETUP -f CENTRAL.R3Sfür 4.6C, unabhängig davon, ob der Fehler mit
CENTRAL.R3S oder mit
DATABASE.R3S auftrat.Zu bestimmten Zeitpunkten nimmt R3SETUP an, dass
sowohl der Datenbank- als auch der SAP-Prozess vorhanden
sind und laufen (da dies Schritte sind, die es bereits
ausgeführt hat). Sollten Fehler auftreten (z.B.
wenn sich die Datenbank nicht starten lässt),
müssen Sie sowohl die Datenbank als auch SAP manuell
neu starten, nachdem Sie die Fehler behoben haben. Erst danach
darf R3SETUP erneut gestartet werden.Achten Sie auch darauf, den Oracle-Listener erneut
zu starten (als Benutzer orasid
mittels umask 0; lsnrctl start), wenn
dieser beendet wurde (z.B. durch einen notwendigen
Neustart des Systems).Fehler im Stadium OSUSERSIDADM_IND_ORA bei der Ausführung von R3SETUPWenn sich R3SETUP in diesem Stadium beschwert, editieren
Sie die bei der Installation verwendete Version der
Vorlage (CENTRDB.R3S (4.6B) oder
entweder CENTRAL.R3S oder
DATABASE.R3S (4.6C)). Finden Sie
[OSUSERSIDADM_IND_ORA] oder suchen Sie nach dem einzigen
STATUS=ERROR-Eintrag und ändern
Sie die folgenden Werte:HOME=/home/sidadm (war voher leer)
STATUS=OK (hatte den Status ERROR)
Danach können Sie R3SETUP erneut aufrufen.Fehler im Stadium OSUSERDBSID_IND_ORA bei der
Ausführung von R3SETUPWahrscheinlich beschwert sich R3SETUP auch in diesem Stadium.
Der hier auftretende Fehler ähnelt dem im Abschnitt
OSUSERSIDADM_IND_ORA. Editieren Sie einfach die bei
der Installation verwendete Version der Vorlage
(das heißt CENTRDB.R3S (4.6B) oder
entweder CENTRAL.R3S oder
DATABASE.R3S (4.6C)). Finden Sie
[OSUSERDBSID_IND_ORA] oder suchen Sie nach dem einzigen
STATUS=ERROR-Eintrag und ändern
Sie folgenden Eintrag:STATUS=OKDanach können Sie R3SETUP erneut aufrufen.Fehler oraview.vrf FILE NOT FOUND bei der
Oracle-InstallationSie haben die Option
Oracle On-Line Text Viewer nicht deaktiviert,
bevor Sie die Installation gestartet haben. Per Voreinstellung
ist diese Option aktiviert, obwohl sie unter Linux gar nicht
verfügbar ist. Deaktivieren Sie daher diese Option im
Oracle-Installationsmenü und starten Sie die Installation
erneut.Fehler TEXTENV_INVALID bei der Ausführung von R3SETUP,
RFC oder beim Start von SAPGUITritt dieser Fehler auf, so fehlt die korrekte Lokalisierung.
SAP-Hinweis 0171356 führt die notwendigen RPMs auf,
die installiert sein müssen (z.B.
saplocales-1.0-3,
saposcheck-1.0-1 für
RedHat 6.1). Falls Sie alle damit verbundenen Fehler
ignoriert haben, und bei der Ausführung von R3SETUP
den Status jeweils von ERROR auf OK (in CENTRDB.R3S)
gesetzt haben, um R3SETUP anschließend neu zu starten,
wurde das SAP-System nicht ordnungsgemäß
konfiguriert. Das bedeutet, dass Sie nicht via
sapgui am System anmelden können,
obwohl das System trotzdem gestartet werden kann. Ein Versuch,
sich über die alte Linux-sapgui
anzumelden, führte zu folgenden Fehlermeldungen:Sat May 5 14:23:14 2001
*** ERROR => no valid userarea given [trgmsgo. 0401]
Sat May 5 14:23:22 2001
*** ERROR => ERROR NR 24 occured [trgmsgi. 0410]
*** ERROR => Error when generating text environment. [trgmsgi. 0435]
*** ERROR => function failed [trgmsgi. 0447]
*** ERROR => no socket operation allowed [trxio.c 3363]
SpeicherzugriffsfehlerDieses Verhalten kommt daher, weil SAP R/3 nun nicht
in der Lage ist, eine korrekte Lokalisierung zuzuweisen, und
sich daher nicht ordnungsgemäß konfigurieren kann
(durch fehlende Einträge in einigen Datenbank-Tabellen).
Um sich in SAP anmelden zu können, müssen Sie
folgende Einträge zur Datei DEFAULT.PFL
(lesen Sie dazu auch Hinweis 0043288) hinzufügen:abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0BStarten Sie nun das SAP-System neu. Sie sind nun in der Lage,
sich anzumelden, obwohl einige länderspezifische
Spracheinstellungen fehlerhaft sein könnten. Nachdem Sie diese
Ländereinstellungen korrigiert (und die korrekten
Lokalisierungen installiert) haben, können
Sie diese Einträge wieder aus
DEFAULT.PFL löschen und das
SAP-System anschließend neu starten.ORA-00001Dieser Fehler trat nur bei einer Installation von
Oracle 8.1.7 unter FreeBSD 4.5
auf. Dies geschah deshalb, weil sich die Oracle Datenbank nicht
initialisieren konnte und daher abstürzte. Dadurch
verblieben Semaphore und Shared-Memory
im System. Der nächste Startversuch führte dann
zur Meldung ORA-00001.Suchen Sie diese Semaphore mittels ipcs -a
und entfernen Sie sie mit ipcrm.ORA-00445 (Hintergrundprozess PMON wurde nicht gestartet)Dieser Fehler trat bei Oracle 8.1.7
auf. Die Meldung erscheint, wenn die Datenbank mit dem
normalen startsap-Skript (z.B.
startsap_majestix_00), aber als Benutzer
prdadm gestartet wird.Dies kann vermieden werden, indem die Datenbank als Benutzer
oraprd über svrmgrl
gestartet wird:&prompt.user; svrmgrl
SVRMGR> connect internal;
SVRMGR> startup;
SVRMGR> exitORA-12546 (den Listener mit den richtigen
Berechtigungen starten)Starten Sie den Oracle-Listener als Benutzer
oraids mit folgendem Befehl:&prompt.root; umask 0; lsnrctl startAnsonsten könnten Sie die Meldung ORA-12546 erhalten,
da die Sockets nun nicht die richtigen Berechtigungen aufweisen.
Lesen Sie dazu auch den SAP-Hinweis 0072984.ORA-27102 (kein freier Speicher mehr)Dieser Fehler trat auf, wenn versucht wurde, für
MAXDSIZ und DFLDSIZ
Werte über 1 GB (1024x1024x1024) festzulegen.
Zusätzlich führte dies zur Fehlermeldung
Linux Error 12: Cannot allocate memory.Fehler im Stadium [DIPGNTAB_IND_IND] bei der
Ausführung von R3SETUPFür allgemeine Informationen lesen Sie bitte den
SAP-Hinweis 0130581 # (R3SETUP - Abbruch im Stadium
DIPGNTAB). Bei der IDES-spezifischen
Installation verwendete der Installationsprozess aus
irgendwelchen Gründen nicht den
korrekten SAP-Systemnamen IDS, sondern den (leeren)
String "". Dies führte zu einigen kleineren Problemen
beim Zugriff auf bestimmte Verzeichnisse, da die Pfade durch
SID (in diesem Fall IDS) dynamisch
generiert werden. Das heißt anstatt auf/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00zuzugreifen, wurden folgende Pfade verwendet:/usr/sap//SYS/...
/usr/sap/D00Um dennoch mit der Installation fortfahren zu können,
wurden ein Link sowie ein zusätzliches Verzeichnis
erzeugt:&prompt.root; pwd
/compat/linux/usr/sap
&prompt.root; ls -l
total 4
drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00
drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS
lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 transDieses Verhalten wird auch in den SAP-Hinweisen 0029227
und 0008401 beschrieben. Bei der Installtion von
SAP 4.6C trat allerdings keines dieser
Probleme auf.Fehler im Stadium [RFCRSWBOINI_IND_IND] bei der
Ausführung von R3SETUPBei der Installation von SAP 4.6C
trat dieser Fehler als Folge eines anderen, bereits vorher
aufgetretenen Fehlers auf. Daher müssen Sie sich
die entsprechenden Protokolldateien durchsehen, und danach das
wirkliche (bereits vorher aufgetretene) Problem beheben.Wenn Sie nach dem Durchsehen der Protokolldateien feststellen,
dass dieser Fehler wirklich der eigentliche Fehler ist
(lesen Sie dazu wiederum die SAP-Hinweise), können
Sie den StATUS des betreffenden Schritts von ERROR auf OK
setzen (und zwar in der Datei CENTRDB.R3S).
Anschließend starten Sie R3SETUP erneut. Nach
der Installation müssen Sie den Report
RSWBOINS der Transaktion
SE38 ausführen. Lesen Sie den SAP-Hinweis 0162266,
um weitere Informationen zu den Stadien
RFCRSWBOINI und RFCRADDBDIF
zu erhalten.Fehler im Stadium [RFCRADDBDIF_IND_IND] bei der
Ausführung von R3SETUPHier gilt das Gleiche wie für den letzten Fehler.
Stellen Sie durch Überprüfen der Protokolldateien
sicher, dass dieser Fehler nicht durch ein früheres
Problem verursacht wird.Wenn Sie sicher sind, dass SAP-Hinweis 0162266 auf
Ihr System zutrifft, setzen Sie den STATUS des betreffenden
Stadiums von ERROR auf OK (und zwar in der Datei
CENTRDB.R3S). Anschließend starten
Sie R3SETUP erneut. Nach der Installation müssen Sie den
Report RADDBDIF der Transaktion SE38
ausführen.sigaction sig31: File size limit exceededDieser Fehler trat beim Start des SAP-Prozesses
disp+work auf. Wird SAP mit
startsap-Skript gestartet, werden Subprozesse gestartet,
deren Aufgabe es ist, alle anderen SAP-Prozesse zu starten.
Als Folge davon erkennt startsap dabei auftretende
Fehler nicht.Um zu überprüfen, ob die SAP-Prozesse korrekt
gestartet wurden, überprüfen Sie den Prozessstatus
mit ps ax | grep SID.
Sie erhalten dadurch eine Liste aller Oracle- und SAP-Prozesse.
Wenn einige Prozesse fehlen, oder Sie sich nicht mit dem
SAP-System verbinden können, überprüfen Sie
wiederum die entsprechenden Protokolldateien, die sich unter
/usr/sap/SID/DVEBMGSnr/work/
befinden. Die zu durchsuchenden Dateien heißen
dev_ms und dev_disp.Wenn Oracle und SAP mehr Speicher anfordern als in der
Kernelkonfigurationsdatei festgelegt wurde, wird das
Signal 31 ausgeliefert. Der Fehler
kann behoben werden, indem im Kernel
ein größerer Wert verwendet wird.# larger value for 46C production systems:
options SHMMAXPGS=393216
# smaller value sufficient for 46B:
#options SHMMAXPGS=262144Der Start von saposcol schlug fehlDas Programm saposcol (Version 4.6D) kann
einige Probleme verursachen. Saposcol wird vom SAP-System
verwendet, um Daten über die Systemleistung zu sammeln.
Für die Benutzung des SAP-Systems hingegen ist es es
nicht erforderlich. Daher handelt es sich hier auch
nur um ein kleineres Problem. Ältere Versionen
von saposcol (z.B. 4.6B) funktionieren, sammeln
allerdings nicht alle Daten (viele Aufrufe geben,
zum Beispiel die CPU-Nutzung, einfach
0 (Null) zurück.Weiterführende ThemenWenn Sie sich fragen, wie die Linux-Binärkompatibilität
unter FreeBSD realisiert wurde, sollten Sie diesen Abschnitt lesen.
Der Großteil der folgenden Informationen stammt aus einer
E-Mail, die von Terry Lambert (tlambert@primenet.com)
an die FreeBSD-Chat-Mailingliste
(freebsd-chat@FreeBSD.org) geschrieben wurde
(Message ID: <199906020108.SAA07001@usr09.primenet.com>).Wie funktioniert es?execution class loaderFreeBSD verfügt über eine execution class
loader genannte Abstraktion. Dabei handelt es sich um einen
Eingriff in den &man.execve.2; Systemaufruf.FreeBSD verfügt über eine Liste von Ladern, anstelle
eines einzigen, auf #!
zurückgreifenden Laders, um Shell-Interpreter oder Shell-Skripte
auszuführen.Historisch gesehen untersuchte der einzige, auf
UNIX-Plattformen vorhandene Lader die "magische Zahl"
(in der Regel die ersten 4 oder 8 Bytes der Datei), um
festzustellen, ob der Binärtyp dem System bekannt war.
War dies der Fall, wurde der Binärlader aufgerufen.Wenn es sich nicht um den zum System gehörigen Binärtyp
handelte, gab &man.execve.2; einen Fehler zurück,
und die Shell versuchte stattdessen, die Datei als Shell-Befehl
auszuführen.Dabei wurde als Standardeinstellung was auch immer die
aktuelle Shell ist festgelegt.Später wurde ein Hack in &man.sh.1; eingefügt,
der die zwei ersten Zeichen untersuchte. Wenn diese
:\n entsprachen,
wurde stattdessen die &man.csh.1;-Shell aufgerufen
(wir glauben, dass dies zuerst von SCO umgesetzt wurde).FreeBSD versucht heute eine Liste von Ladern, unter denen
sich ein allgemeiner Lader für Interpreter befindet. Der
auszuführende Interpreter wird im ersten, durch
Leerzeichen getrennten Feld, der #!-Zeile
angegeben. Läßt sich der Interpreter nicht ermitteln,
wird auf /bin/sh zurückgegriffen.ELFFür die Linux ABI-Unterstützung erkennt FreeBSD
die magische Zahl als ELF-Binärdatei (Zu diesem Zeitpunkt wird
nicht zwischen FreeBSD, Solaris, Linux oder anderen Systemen
unterschieden, die über ELF-Binärdateien
verfügen.).SolarisDer ELF-Lader sucht nach einer speziellen
Kennzeichnung, die aus einem Kommentarabschnitt
in der ELF-Datei besteht, und die in SVR4/Solaris ELF
Binärdateien nicht vorhanden ist.Damit Linux-Binärdateien (unter FreeBSD) funktionieren,
müssen sie als Linuxgekennzeichnet werden, und zwar durch
&man.brandelf.1;:&prompt.root; brandelf -t Linux fileNachdem dies geschehen ist, erkennt der ELF-Lader die
Linux-Kennzeichnung der Datei.ELFbrandelfWenn der ELF-Lader die Linux-Kennzeichnung
sieht, wird ein Zeiger in der proc-Struktur
ersetzt. Alle Systemaufrufe werden durch diesen Zeiger indiziert
(in einem traditionellen &unix; System wäre das ein
sysent[]-Strukturfeld, das die Systemaufrufe
enthält). Der Prozess wird weiterhin speziell gekennzeichnet,
so dass der Trap-vector im Signal-trampoline-code eine spezielle
Behandlung erfährt und das Linux-Kernelmodul verschiedene
kleinere Korrekturen vornehmen kann.Der Linux-Systemaufrufvektor enthält neben anderen
Dingen eine Liste der sysent[]-Einträge,
deren Adressen sich im Kernelmodul befinden.Wenn ein Linux-Programm einen Systemaufruf ausführt,
dereferenziert die Trap-Behandlungsroutine den Zeiger auf die
Eintrittspunkte für die Systemaufrufe und erhält damit die
Linux-Eintrittspunkte und nicht die FreeBSD-Eintrittspunkte.Zusätzlich verändert der
Linuxmodus die Systempfade dynamisch; genauso, wie dies die
union Option beim Einbinden von Dateisystemen
macht (Achtung: nicht unionfs!).
Zuerst wird die Datei im Verzeichnis /compat/linux/Originalpfad
gesucht, danach, wenn sie dort nicht gefunden
wurde, wird sie im FreeBSD-Verzeichnis
/Originalpfad
gesucht. Dadurch wird sichergestellt, dass
Binärdateien, die zur Ausführung andere
Binärdateien benötigen, ausgeführt
werden können (so dass alle Linux-Werkzeuge unter der
ABI laufen). Dies bedeutet auch,
dass Linux-Binärdateien FreeBSD-Binärdateien
laden und ausführen können, wenn keine passenden
Linux-Binärdateien vorhanden sind. Ein in
/compat/linux plaziertes &man.uname.1; kann
damit Linux-Programmen vorgaukeln, dass sie auf einem Linux-System
laufen.Im Endeffekt gibt es einen Linux-Kernel innerhalb des
FreeBSD-Kernels. Die Sprungtabellen für Linux-
beziehungsweise FreeBSD-Systemaufrufe verweisen allerdings auf
dieselben Funktionen, die Kerneldienste wie Dateisystemoperationen,
Operationen für den virtuellen Speicher,
Signalübermittlung und System V IPC bereitstellen,
Der einzige Unterschied ist, dass Binärdateien unter FreeBSD
FreeBSD-glue-Funktionen verwenden.
Linux-Binärdateien hingegen verwenden die
Linux-glue-Funktionen. Die meisten
älteren Betriebssysteme hatten ihre eigenen
glue-Funktionen: Funktionsadressen
in einem globalen, statischen sysent[]
Strukturfeld an Stelle von Funktionsadressen, die durch
einen dynamisch initialisierten Zeiger aus der
proc Struktur, die den Aufruf gemacht hatte,
dereferenziert wurden.Welche ist die echte FreeBSD ABI? Das spielt keine Rolle.
Grundsätzlich ist der einzige Unterschied (zurzeit
ist das so; dies könnte sich in zukünftigen
Versionen leicht ändern und wird sich wahrscheinlich
auch ändern), dass die
FreeBSD-glue-Funktionen statisch in
den Kernel gelinkt sind, und dass die
Linux-glue-Funktionen statisch gelinkt
oder über ein Modul eingebunden werden können.Ja, aber ist das wirkliche eine Emulation? Nein. Es ist eine ABI
Implementation, keine Emulation. Es ist kein Emulator (oder
Simulator, um der nächsten Frage zuvorzukommen.)
beteiligt.Warum wird es manchmal Linux-Emulation genannt?
Um es schwerer zu machen, FreeBSD zu verkaufen. Wirklich, das kommt
daher, weil die historische Implementation zu einer Zeit
durchgeführt wurde, in der es kein anderes Wort
(als Emulation) gab, das beschrieb, was vor sich ging.
Wenn der Kernel nicht entsprechend konfiguriert wurde oder das
Modul geladen wurde, war es falsch zu behaupten, FreeBSD würde
Linux-Binärprogramme ausführen. Man benötigte
ein Wort, das beschrieb, was da geladen
wurde – daher Der Linux-Emulator.
diff --git a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
index 5a05c6e1a7..f3254ed784 100644
--- a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
@@ -1,4823 +1,4965 @@
Bezugsquellen für FreeBSDCD-ROM und DVD VerlegerFreeBSD PaketeFreeBSD Pakete (FreeBSD CDs, zusätzliche Software und
gedruckte Dokumentation) erhalten Sie von mehreren
Händlern:CompUSA
- WWW: http://www.compusa.com/
+ WWW: Frys Electronics
- WWW: http://www.frys.com/
+ WWW: FreeBSD CDs und DVDsDie FreeBSD CDs und DVDs werden von vielen Online-Händlern
angeboten:Daemon News Mall560 South State Street, Suite A2Orem, UT84058USA
Telefon: +1 800 407-5170
Fax: +1 1 801 765-0877
E-Mail: sales@daemonnews.org
WWW: http://www.bsdmall.com/FreeBSD Mall, Inc.3623 Sanford StreetConcord, CA94520-1405USA
Telefon: +1 925 674-0783
Fax: +1 925 674-0821
E-Mail: info@freebsdmall.com
- WWW: http://www.freebsdmall.com/
+ WWW: FreeBSD Services Ltd.11 Lapwing CloseBicesterOX26 6XRUnited Kingdom
- WWW: http://www.freebsd-services.com/
+ WWW: Hinner EDVSt. Augustinus-Str. 10D-81825MünchenGermany
Telefon: (089) 428 419
- WWW: http://www.hinner.de/linux/freebsd.html
+ WWW: Ingram Micro1600 E. St. Andrew PlaceSanta Ana, CA92705-4926USA
Telefon: 1 (800) 456-8000
- WWW: http://www.ingrammicro.com/
+ WWW: The Linux EmporiumHilliard House, Lester WayWallingfordOX10 9TAUnited Kingdom
Telefon: +44 1491 837010
Fax: +44 1491 837016
WWW: http://www.linuxemporium.co.uk/bsd.htmlUNIXDVD.COM LTD57 Primrose AvenueSheffieldS5 6FSUnited Kingdom
- WWW: http://www.unixdvd.com/
+ WWW: LieferantenWenn Sie FreeBSD CD-ROM Produkte weiterverkaufen möchten,
kontaktieren Sie einen der folgenden Lieferanten:Cylogistics2672 Bayshore Parkway, Suite 610Mountain View, CA94043USA
Telefon: +1 650 694-4949
Fax: +1 650 694-4953
E-Mail: sales@cylogistics.com
- WWW: http://www.cylogistics.com/
+ WWW: FreeBSD Services Ltd.11 Lapwing CloseBicesterOX26 6XRUnited Kingdom
- WWW: http://www.freebsd-services.com/
+ WWW: Kudzu, LLC7375 Washington Ave. S.Edina, MN55439USA
Telefon: +1 952 947-0822
Fax: +1 952 947-0876
E-Mail: sales@kudzuenterprises.comNavarre Corp7400 49th Ave SouthNew Hope, MN55428USA
Telefon: +1 763 535-8333
Fax: +1 763 535-0341
- WWW: http://www.navarre.com/
+ WWW: FTP ServerDie offiziellen Quellen von FreeBSD sind über anonymous FTP
unter der folgenden URL erhältlich:
- ftp://ftp.FreeBSD.org/pub/FreeBSD/.
+ .
Die Datenbank
der FreeBSD Spiegel ist aktueller als die folgende Liste, da
sie im Gegensatz zu einer statischen Liste die Informationen aus
dem DNS erhält.Sie können FreeBSD auch über anonymous FTP von den
folgenden Spiegeln beziehen. Wenn Sie FreeBSD über anonymous
FTP beziehen wollen, wählen Sie bitte einen Spiegel in Ihrer
Nähe.Argentinien,
Australien,
Brasilien,
Bulgarien,
China,
Dänemark,
Deutschland,
Estland,
Finnland,
Frankreich,
Griechenland,
Großbritannien,
Hong Kong,
Irland,
Island,
Italien,
Japan,
Kanada,
Korea,
Litauen,
Neuseeland,
Niederlande,
Norwegen,
Österreich,
Polen,
Portugal,
Rumänien,
Russland,
Saudi Arabien,
Schweden,
Schweiz,
Singapur,
Slowakische Republik,
Slowenien,
Spanien,
Südafrika,
Taiwan,
Thailand,
Tschechische Republik,
Ukraine,
Ungarn,
USA.ArgentinienBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@ar.FreeBSD.org dieser Domain.
- ftp://ftp.ar.FreeBSD.org/pub/FreeBSD/
+
+
+ AustralienBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@au.FreeBSD.org dieser Domain.
- ftp://ftp.au.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.au.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.au.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp4.au.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.au.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp6.au.FreeBSD.org/pub/FreeBSD/
+
+
+ BrasilienBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@br.FreeBSD.org dieser Domain.
- ftp://ftp.br.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.br.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp4.br.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.br.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp6.br.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp7.br.FreeBSD.org/pub/FreeBSD/
+
+
+ BulgarienBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@bg.FreeBSD.org dieser Domain.
- ftp://ftp.bg.FreeBSD.org/pub/FreeBSD/
+
+
+ ChinaBei Problemen wenden Sie sich bitte an den Betreuer
phj@cn.FreeBSD.org dieser Domain.
- ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.cn.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.cn.FreeBSD.org/pub/FreeBSD/
+
+
+ DänemarkBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@dk.FreeBSD.org dieser Domain.
- ftp://ftp.dk.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.dk.FreeBSD.org/pub/FreeBSD/
+
+
+ DeutschlandBei Problemen wenden Sie sich bitte an die
Administratoren der Spiegel
de-bsd-hubs@de.FreeBSD.org .
- ftp://ftp.de.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.de.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp4.de.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp6.de.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/
+
+
+ EstlandBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@ee.FreeBSD.org dieser Domain.
- ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/
+
+
+ FinnlandBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@fi.FreeBSD.org dieser Domain.
- ftp://ftp.fi.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp.fi3.FreeBSD.org/pub/FreeBSD/
+
+
+ FrankreichBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@fr.FreeBSD.org dieser Domain.
- ftp://ftp.fr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.fr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.fr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.fr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp6.fr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp8.fr.FreeBSD.org/pub/FreeBSD/
+
+
+ GriechenlandBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@gr.FreeBSD.org dieser Domain.
- ftp://ftp.gr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.gr.FreeBSD.org/pub/FreeBSD/
+
+
+ GroßbritannienBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@uk.FreeBSD.org dieser Domain.
- ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.uk.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.uk.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp6.uk.FreeBSD.org/pub/FreeBSD/
+
+
+ Hong Kong
- ftp://ftp.hk.FreeBSD.org/pub/FreeBSD/
+
+
+ IrlandBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@ie.FreeBSD.org dieser Domain.
- ftp://ftp.ie.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.ie.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.ie.FreeBSD.org/pub/FreeBSD/
+
+
+ IslandBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@is.FreeBSD.org dieser Domain.
- ftp://ftp.is.FreeBSD.org/pub/FreeBSD/
+
+
+ ItalienBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@it.FreeBSD.org dieser Domain.
- ftp://ftp.it.FreeBSD.org/pub/FreeBSD/
+
+
+ JapanBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@jp.FreeBSD.org dieser Domain.
- ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp6.jp.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp7.jp.FreeBSD.org/pub/FreeBSD/
+
+
+ KanadaBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@ca.FreeBSD.org dieser Domain.
- ftp://ftp.ca.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.ca.FreeBSD.org/pub/FreeBSD/
+
+
+ KoreaBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@kr.FreeBSD.org dieser Domain.
- ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.kr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.kr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp4.kr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.kr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp6.kr.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp7.kr.FreeBSD.org/pub/FreeBSD/
+
+
+ LitauenBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@lt.FreeBSD.org dieser Domain.
- ftp://ftp.lt.FreeBSD.org/pub/FreeBSD/
+
+
+ NeuseelandBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@nz.FreeBSD.org dieser Domain.
- ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/
+
+
+ NiederlandeBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@nl.FreeBSD.org dieser Domain.
- ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.nl.FreeBSD.org/pub/FreeBSD/
-
+
+
+
+ NorwegenBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@no.FreeBSD.org dieser Domain.
- ftp://ftp.no.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.no.FreeBSD.org/pub/FreeBSD/
-
+
+
+
+ ÖsterreichBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@at.FreeBSD.org dieser Domain.
- ftp://ftp.at.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp2://ftp.at.FreeBSD.org/pub/FreeBSD/
+
+
+ PolenBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@pl.FreeBSD.org dieser Domain.
- ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.pl.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.pl.FreeBSD.org/pub/FreeBSD/
+
+
+ PortugalBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@pt.FreeBSD.org dieser Domain.
- ftp://ftp.pt.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.pt.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.pt.FreeBSD.org/pub/FreeBSD/
+
+
+ RumänienBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@ro.FreeBSD.org dieser Domain.
- ftp://ftp.ro.FreeBSD.org/pub/FreeBSD/
+
+
+ RusslandBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@ru.FreeBSD.org dieser Domain.
- ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.ru.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.ru.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp4.ru.FreeBSD.org/pub/FreeBSD/
+
+
+ Saudi ArabienBei Problemen wenden Sie sich bitte an
ftpadmin@isu.net.sa
- ftp://ftp.isu.net.sa/pub/mirrors/ftp.freebsd.org/.
+
+
+ SchwedenBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@se.FreeBSD.org dieser Domain.
- ftp://ftp.se.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.se.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.se.FreeBSD.org/pub/FreeBSD/
+
+
+ SchweizBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@ch.FreeBSD.org dieser Domain.
- ftp://ftp.ch.FreeBSD.org/pub/FreeBSD/
+
+
+ SingapurBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@sg.FreeBSD.org dieser Domain.
- ftp://ftp.sg.FreeBSD.org/pub/FreeBSD/
+
+
+ Slowakische RepublikBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@sk.FreeBSD.org dieser Domain.
- ftp://ftp.sk.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.sk.FreeBSD.org/pub/FreeBSD/
+
+
+ SlowenienBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@si.FreeBSD.org dieser Domain.
- ftp://ftp2.si.FreeBSD.org/pub/FreeBSD/
+
+
+ SpanienBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@es.FreeBSD.org dieser Domain.
- ftp://ftp.es.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.es.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.es.FreeBSD.org/pub/FreeBSD/
+
+
+ SüdafrikaBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@za.FreeBSD.org dieser Domain.
- ftp://ftp.za.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.za.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.za.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp4.za.FreeBSD.org/pub/FreeBSD/
+
+
+ TaiwanBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@tw.FreeBSD.org dieser Domain.
- ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.tw.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.tw.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp6.tw.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp7.tw.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp8.tw.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp9.tw.FreeBSD.org/pub/FreeBSD/
+
+
+ Thailand
- ftp://ftp.nectec.or.th/pub/FreeBSD/
+
Kontakt: ftpadmin@ftp.nectec.or.th.Tschechische RepublikBei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@cz.FreeBSD.org dieser Domain.
- ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/
+
+
Kontakt: calda@dzungle.ms.mff.cuni.czUkraine
- ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/
+
Kontakt: freebsd-mnt@lucky.net.
- ftp://ftp2.ua.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.ua.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.ua.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp6.ua.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp7.ua.FreeBSD.org/pub/FreeBSD/
+
+
+ UngarnBei Problemen wenden Sie sich bitte an den Betreuer
mohacsi@ik.bme.hu dieser Domain.
- ftp://ftp.hu.FreeBSD.org/pub/FreeBSD/
+
+
+ USABei Problemen wenden Sie sich bitte an den Betreuer
hostmaster@FreeBSD.org dieser Domain.
- ftp://ftp1.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp2.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp3.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp4.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp5.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp6.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp7.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp8.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp9.FreeBSD.org/pub/os/FreeBSD/
+
+
+
- ftp://ftp10.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp11.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp12.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp13.FreeBSD.org/pub/FreeBSD/
+
+
+
- ftp://ftp14.FreeBSD.org/pub/FreeBSD/
+
+
+ Anonymous CVSEinführungAnonymous CVS (oder anoncvs) dient zum
Synchronisieren mit entfernten Repositories und steht mit
den CVS Werkzeugen, die im FreeBSD
Basissystem enthalten sind, zur Verfügung. Benutzer von
FreeBSD können damit unter anderem lesende Operationen
auf den Anoncvs Servern des
FreeBSD Projekts durchführen,
ohne über besondere Berechtigungen zu verfügen. Um es
zu benutzen, setzen Sie einfach die CVSROOT
Umgebungsvariable auf einen Anoncvs Server
und geben beim Login mit cvs login das
Passwort anoncvs an. Danach können
Sie mit &man.cvs.1; wie auf jedes lokale Repository (allerdings nur
lesend) zugreifen.cvs login speichert Passwörter
zur Authentifizierung an einem CVS Server in der Datei
.cvspass in Ihrem
HOME-Verzeichnis. Wenn diese Datei beim ersten
Benutzen von cvs login nicht existiert,
erhalten Sie vielleicht eine Fehlermeldung. In diesem Fall
legen Sie einfach eine leere .cvspass
Datei an und melden sich erneut an.CVSup und
Anoncvs bieten dieselbe
Funktionalität, die folgenden Kriterien helfen Ihnen zu
entscheiden, welche Methode Sie benutzen sollen.
CVSup
geht wesentlich effizienter mit Netzwerk-Ressourcen um und ist
auch technisch ausgereifter. Allerdings müssen Sie zuerst
einen speziellen Client installieren und konfigurieren, bevor Sie
CVSup benutzen können. Weiterhin
können Sie mit CVSup nur relativ
große Teile der Quellen, die Sammlungen
genannt werden, synchronisieren.Im Gegensatz dazu können Sie mit
Anoncvs jede beliebige Datei oder
indem Sie einfach den CVS Namen des
Moduls angeben, ein beliebiges Programm, wie ls
oder grep, bearbeiten. Natürlich
können Sie mit Anoncvs nur lesend
auf ein CVS Repository zugreifen.
Wenn Sie lokal mit dem FreeBSD Repository entwickeln wollen, dann
ist CVSup die einzige Wahl.Benutzen von Anonymous CVSSetzen Sie einfach die CVSROOT
Umgebungsvariable, um &man.cvs.1; das
CVS Repository eines FreeBSD
Anoncvs Servers bekannt zu geben.
Zurzeit stehen folgende Server zur Verfügung:USA:
:pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
(Benutzen Sie cvs login und das
Passwort anoncvs.)Deutschland:
:pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs
(Benutzen Sie cvs login und das
Passwort anoncvs.)Deutschland:
:pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs
(rsh, pserver, ssh, ssh/2022)
Japan:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
(Benutzen Sie cvs login und das
Passwort anoncvs.)Mit CVS können Sie praktisch
jede Version von FreeBSD, die schon einmal existiert hat (oder in
manchen Fällen existieren wird) auschecken. Sie sollten
daher damit vertraut sein, wie Sie mit Tags unter &man.cvs.1;
arbeiten (die Option). Zudem müssen Sie
die Namen der Tags im FreeBSD Repository kennen.Es gibt zwei verschiedene TagsTags sind
symbolische Namen, die im Repository vergeben werden.
: Tags, die Revisionen bezeichnen und Tags, die
Zweige bezeichnen. Die Ersten sind statisch und fest an eine
Revision gebunden. Ein Tag, das einen Zweig bezeichnet,
bezieht sich dagegen zu einem gegebenen Zeitpunkt immer auf die
aktuellste Revision. Da ein Tag eines Zweiges nicht an eine
bestimmte Revision gebunden ist, kann sich dessen Bedeutung von
heute auf morgen ändern.In finden Sie eine Liste der
gültigen Tags. Beachten Sie bitte, dass keines der
Tags auf die Ports-Sammlung anwendbar ist, da diese nicht
über Zweige verfügt.Wenn Sie ein Tag eines Zweiges verwenden, erhalten Sie die
aktuellsten Dateien dieses Entwicklungszweiges. Wenn Sie eine
frühere Revision erhalten möchten, können Sie zum
Beispiel einen Zeitpunkt mit der Option
angeben. Weitere Informationen dazu entnehmen Sie bitte
&man.cvs.1;.BeispieleIm Folgenden finden Sie einige Beispiele für den Umgang
mit Anonymous CVS. Sie sollten sich
aber die Manualpage von &man.cvs.1; sorgfältig durchlesen,
bevor Sie anfangen.&man.ls.1; von -CURRENT auschecken und wieder
löschen:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs co ls
&prompt.user; cvs release -d ls
&prompt.user; cvs logout&man.ls.1; aus dem 3.X-STABLE Zweig auschecken:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs co -rRELENG_3 ls
&prompt.user; cvs release -d ls
&prompt.user; cvs logoutÄnderungen in &man.ls.1; zwischen 3.0 RELEASE und
3.4 RELEASE (als unified diff)&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls
&prompt.user; cvs logoutGültige Modulnamen herausfinden:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginWenn Sie dazu aufgefordert werden, benutzen Sie das Passwortanoncvs.
&prompt.user; cvs co modules
&prompt.user; more modules/modules
&prompt.user; cvs release -d modules
&prompt.user; cvs logoutWeitere RessourcenDie folgenden Ressourcen sind nützlich, um den Umgang
mit CVS zu lernen:CVS Tutorial von Cal Poly.CVS Home,
die Homepage des CVS
Projekts.CVSweb das
Web Interface zu CVS des FreeBSD
Projekts.CTMMit CTM
Abkürzung für CVS Through eMail
können Sie einen
entfernten Verzeichnisbaum mit einem zentralen Baum
synchronisieren. Es wurde extra zum Synchronisieren der FreeBSD
Quellen entwickelt, obwohl es mit der Zeit vielleicht auch andere
Anwendungen geben wird. Zurzeit existiert leider so gut wie keine
Dokumentation zum Erstellen der Deltas. Wenn Sie
CTM für andere Zwecke einsetzen
wollen, wenden Sie sich bitte &a.phk;.Warum soll ich CTM benutzen?Mit CTM erhalten Sie eine lokale
Kopie des FreeBSD Quellbaums, den es in mehreren
Varianten gibt. Sie können das ganze
Repository oder nur einen Zweig spiegeln. Wenn Sie ein aktiver
FreeBSD Entwickler mit einer schlechten oder gar keiner TCP/IP
Verbindung sind, oder die Änderungen einfach automatisch
zugesandt bekommen wollen, dann ist CTM
das Richtige für Sie. Für die Zweige mit der
meisten Aktivität müssen Sie sich täglich bis zu drei
Deltas beschaffen, Sie sollten allerdings erwägen, die
Deltas automatisch über E-Mail zu beziehen. Die
Größe der Updates wird so klein wie möglich
gehalten. Normalerweise sind sie kleiner als 5 kB, manchmal
sind sie 10-50 kB groß (etwa jedes 10. Update) und ab
und an werden Sie auch einmal ein Update mit 100 kB oder
mehr erhalten.Sie sollten sich über die Vorbehalte gegen die
Verwendung der Quellen anstelle eines offiziellen Releases
bewusst sein. Das trifft besonders auf &os.current; zu, lesen
Sie dazu bitte den Abschnitt
&os.current;.Was brauche ich, um CTM zu
benutzen?Zwei Sachen: Das CTM Programm und
die initialen Deltas, von denen aus Sie auf die
aktuellen Stände kommen.CTM ist schon seit der
Version 2.0 Teil des FreeBSD Basissystems. Sie finden es in
/usr/src/usr.sbin/ctm, wenn Sie eine Kopie
der Quellen besitzen.Wenn Sie eine frühere Version als FreeBSD 2.0
besitzen, können Sie die aktuellen CTM
Quellen von der folgenden URL beziehen:ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm/
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/ctm/">
Die Deltas, die CTM verarbeitet,
können Sie über FTP oder E-Mail beziehen. Wenn Sie
über einen FTP Zugang zum Internet verfügen, erhalten
Sie die Deltas unter der folgenden URL:
- ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/
+
+
+ Die Deltas werden auch von
CTM Spiegeln
bereitgehalten.Wechseln Sie in das passende Verzeichnisse zum Beispiel
src-cur für &os.current; und laden Sie
sich von dort die Deltas herunter.Sie können die Deltas auch über E-Mail
beziehen.Dazu senden Sie eine E-Mail an &a.majordomo; und abonnieren
eine der Verteilerlisten. Über ctm-cvs-cur
erhalten Sie den kompletten CVS Baum,
über ctm-src-cur erhalten Sie &os.current;
und über ctm-src-4 erhalten Sie den FreeBSD
4.X-Zweig. Wenn Sie nicht wissen, wie Sie eine
Majordomo-Liste abonnieren, senden Sie
eine E-Mail mit dem Text help im
Textkörper an &a.majordomo;. Sie erhalten dann eine
ausführliche Anleitung.Benutzen Sie ctm_rmail, um die
CTM Updates, die Sie per
E-Mail empfangen, auszupacken und anzuwenden. Wenn Sie diesen
Prozess automatisiert ablaufen lassen möchten,
können Sie dazu einen Eintrag in
/etc/aliases verwenden. Genauere
Informationen finden Sie in der Manualpage von
ctm_rmail.Sie sollten die Mailingliste
ctm-announce@FreeBSD.org abonnieren,
unabhängig davon über welche Methode Sie die
CTM Deltas erhalten. In dieser
Liste werden Ankündigungen, die die Verwendung von
CTM betreffen, bekannt gegeben.
Senden Sie eine E-Mail mit dem Text subscribe
ctm-announce an &a.majordomo; um diese Liste zu
abonieren.Initialisieren von CTMBevor Sie die CTM Deltas benutzen
können, brauchen Sie einen Startpunkt, auf den die
nachfolgenden Deltas angewendet werden.Sie können natürlich mit einem leeren Verzeichnis
beginnen. In diesem Fall benötigen Sie ein
XEmpty-Delta, mit dem Sie den
CTM-Verzeichnisbaum initialisieren.
Wenn Sie Glück haben, finden Sie ein
XEmpty-Delta, mit dem sie beginnen können,
auf einer der CDs Ihrer Distribution.Da die Verzeichnisbäume mehrere Megabyte groß
sind, sollten Sie nach Möglichkeit etwas schon vorhandenes
benutzen. Wenn Sie eine -RELEASE CD besitzen, können Sie
die Quellen von dieser CD benutzen. Sie ersparen sich damit das
Übertragen großer Datenmengen.Die Deltas, mit denen Sie beginnen können, enthalten ein
X in ihrem Namen, wie in
src-cur.3210XEmpty.gz. Hinter dem
X wird der Startpunkt der Deltas
angegeben, in diesem Fall steht Empty
für ein leeres Verzeichnis. Nach etwa 100 Deltas wird ein
neues XEmpty-Delta erstellt.
Mit ungefähr 75 Megabyte komprimierter Daten sind diese
XEmpty-Deltas übrigens sehr
groß.Nachdem Sie Ihren Startpunkt festgelegt haben, benötigen
Sie alle Deltas mit einer höheren Nummer.Benutzen von CTMUm ein Delta einzuspielen, benutzen Sie das folgende
Kommando:&prompt.root; cd /Pfad/zu/den/Quellen
&prompt.root; ctm -v -v /Pfad/zu/den/Deltas/src-xxx.*CTM kann mit Deltas arbeiten, die
mit gzip komprimiert wurden. Sie brauchen die
Deltas vorher nicht mit gunzip zu
dekomprimieren und sparen damit Plattenplatz.Ihr Quellbaum wird erst dann verändert, wenn
CTM die Deltas sauber verarbeiten
kann. Die Integrität der Deltas und ihre Anwendbarkeit auf
den Quellbaum lassen sich durch die Angabe des Schalters
-c überprüfen,
CTM ändert in diesem Fall Ihren
Quellbaum nicht.CTM verfügt über weitere
Kommandozeilenoptionen, Informationen dazu finden Sie in der
Manualpage oder dem Quellcode.Das war schon alles. Um Ihre Quellen aktuell zu halten,
verwenden Sie CTM jedes Mal, wenn Sie
neue Deltas bekommen.Löschen Sie die Deltas nicht, wenn Sie diese nur schwer
wieder beschaffen können. Behalten Sie sie für den
Fall, das etwas passiert. Auch wenn Sie nur Disketten besitzen,
sollten Sie erwägen, die Deltas mit
fdwrite zu sichern.Umgang mit lokalen ÄnderungenEntwickler wollen mit den Dateien im Quellbaum
experimentieren und diese verändern. In beschränkter
Weise werden lokale Änderungen von
CTM unterstützt. Wenn
CTM die Datei foo
bearbeiten will, überprüft es zuerst ob die Datei
foo.ctm existiert. Wenn diese Datei
existiert, werden Änderungen in ihr anstatt in
foo vorgenommen.Mit diesem Verfahren ist eine leichte Handhabung lokaler
Änderungen möglich. Kopieren Sie die Dateien, die Sie
ändern möchten, in Dateien, die das Suffix
.ctm tragen. Sie können dann
ungestört mit dem Quellcode arbeiten, während
CTM die
.ctm Dateien aktualisiert.Weitere CTM-OptionenWas wird aktualisiert?Eine Liste der Änderungen, die
CTM an Ihrem Quellbaum vornehmen
wird, erhalten Sie, wenn Sie die Option
angeben.Das ist nützlich, wenn Sie Logs über die
Änderungen führen wollen, geänderte Dateien vor-
oder nachbearbeiten wollen, oder einfach ein bisschen
paranoid sind.Sicherungen vor einer Aktualisierung erstellenSie wollen vielleicht die Dateien, die durch eine
CTM Aktualisierung verändert
werden, sichern.Mit weisen Sie
CTM an, alle Dateien, die durch ein
CTM Delta verändert
würden, nach backup-file zu
sichern.Dateien ausschließenManchmal wollen Sie nur bestimmte Teile aktualisieren
oder nur bestimmte Dateien aus einer Folge
von Deltas extrahieren.Sie können die Liste der Dateien, mit denen
CTM arbeitet, einschränken,
indem Sie reguläre Ausdrücke mit den Optionen
und angeben.Wenn Sie eine aktuelle Kopie von
lib/libc/Makefile aus den gesicherten
CTM Deltas erhalten wollen, setzen
Sie das folgende Kommando ab:&prompt.root; cd /wo/Sie/es/auspacken/wollen/
&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*Die Optionen und
werden in der Reihenfolge angewandt, in der sie auf der
Kommandozeile angegeben wurden. Eine Datei wird nur dann von
CTM verarbeitet, wenn dies nach der
Anwendung der Optionen und
noch erlaubt ist.Pläne für CTMMehrere:Hinzufügen eines Authentifizierungsmechanismus,
damit gefälschte CTM-Deltas
erkannt werden können.Aufräumen der
CTM-Optionen, die mit der Zeit
unübersichtlich und irreführend wurden.VerschiedenesEs gibt Deltas für die Ports-Sammlung, die
aber nicht intensiv genutzt werden.CTM-SpiegelDie CTM-Deltas können Sie mit anonymous FTP von den folgenden
Spiegeln beziehen. Versuchen Sie bitte einen Spiegel in Ihrer
Nähe zu benutzen.Bei Problemen wenden Sie sich bitte an &a.phk;.Kalifornien, Bay Area, Offizieller Serverftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/">
Südafrika, Backup-Server für alte Deltasftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/
+ url="ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/">
Taiwan/R.O.C.ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/
+ url="ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/">
ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/
+ url="ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/">
ftp://ctm3.tw.FreeBSD.org/pub/freebsd/development/CTM/
+ url="ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/">
Wenn die Liste keinen Spiegel in Ihrer Nähe enthält
oder Sie Probleme mit dem ausgewählten Spiegel haben, versuchen
Sie einen Spiegel mit einer Suchmaschine, wie
alltheweb, zu
finden.Benutzen von CVSupEinführungCVSup ist eine Anwendung, die
Verzeichnisbäume von einem entfernten
CVS-Server bereitstellt und
aktualisiert. Die Quellen von FreeBSD werden in einem
CVS-Repository auf einer
Entwicklungsmaschine in Kalifornien gepflegt. Mit
CVSup können sich FreeBSD Benutzer
den eigenen Quellbaum auf aktuellem Stand halten.Zum Aktualisieren benutzt CVSup die
Pull-Methode, bei der die Aktualisierungen vom Client angefragt
werden. Der Server wartet dabei passiv auf Anfragen von Clients,
das heißt er verschickt nicht unaufgefordert
Aktualisierungen. Somit gehen alle Anfragen vom Client aus und die
Benutzer müssen CVSup entweder
manuell starten oder einen cron Job einrichten, um
regelmäßig Aktualisierungen zu erhalten.CVSup in genau dieser Schreibweise
bezeichnet die Anwendung, die aus dem Client cvsup
und dem Server cvsupd besteht.
cvsup läuft auf den Maschinen der Benutzer,
cvsupd läuft auf jedem der
FreeBSD-Spiegel.Wenn Sie die FreeBSD Dokumentation und die Mailinglisten lesen,
werden Sie oft auf Sup, dem
Vorgänger von CVSup stoßen.
CVSup wird in gleicher Weise wie
Sup benutzt und verfügt sogar
über Konfigurationsdateien, die kompatibel zu denen von
Sup sind. Da
CVSup schneller und flexibler als
Sup ist, wird
Sup vom FreeBSD-Projekt nicht mehr
benutzt.Installation von CVSupCVSup können Sie leicht
installieren, wenn Sie das vorkompilierte Paket
net/cvsup aus der
Ports-Sammlung benutzen.
Alternativ können Sie
net/cvsup auch ausgehend von
den Quellen bauen, doch seien Sie gewarnt:
net/cvsup hängt vom
Modula-3 System ab, das viel Zeit und
Platz zum Herunterladen und Bauen braucht.Wenn Sie CVSup auf einer
Maschine ohne XFree86,
beispielsweise einem Server, benutzen, stellen Sie sicher,
dass Sie den Port ohne das
CVSup-GUI,
net/cvsup-without-gui
verwenden.Wenn Sie CVSup möglichst
einfach installieren und konfigurieren wollen, installieren Sie
mit &man.pkg.add.1; das Paket
net/cvsupit. Bei der
Installation können Sie dann die Konfiguration von
CVSup menügestützt
durchführen.Konfiguration von CVSupDas Verhalten von CVSup wird mit
einer Konfigurationsdatei gesteuert, die
supfile genannt wird. Beispiele für
Konfigurationsdateien finden Sie in dem Verzeichnis
- /usr/share/examples/cvsup/.
+ url="file://localhost/usr/share/examples/cvsup/">.
Ein supfile enthält die folgenden
Informationen:Welche Dateien Sie
erhalten wollen.Welche Versionen der
Dateien Sie benötigen.Woher Sie die Dateien
beziehen wollen.Wo Sie die erhaltenen
Dateien speichern.Wo Sie die
Status-Dateien aufbewahren wollen.In den folgenden Abschnitten erstellen wir ein typisches
supfile indem wir nach und nach diese Punkte
klären. Zuerst beschreiben wir aber den Aufbau dieser
Konfigurationsdatei.Ein supfile ist eine Textdatei.
Kommentare beginnen mit einem # und gelten bis zum
Zeilenende. Leerzeilen und Zeilen, die nur Kommentare enthalten,
werden ignoriert.Die anderen Zeilen legen die Dateien fest, die ein Benutzer
erhalten will. Der Server organisiert verschiedene Dateien in
einer Sammlung, deren Name auf einer Zeile angegeben
wird. Nach dem Namen der Sammlung können mehrere durch
Leerzeichen getrennte Felder folgen, die die oben angesprochenen
Informationen festlegen. Es gibt zwei Arten von Feldern: Felder,
die Optionen festlegen und Felder mit Parametern.
Optionen bestehen aus einem Schlüsselwort, wie
oder und
stehen alleine. Ein Parameterfeld beginnt mit einem
Schlüsselwort, dem = und ein Parameter,
wie in ,
folgt. Dieses Feld darf keine Leerzeichen enthalten.In einem supfile werden normalerweise
mehrere Sammlungen angefordert. Die erforderlichen Felder
können explizit für jede Sammlung angegeben werden,
dann werden jedoch die Zeilen ziemlich lang. Außerdem ist
dieses Vorgehen sehr unhandlich, da die meisten Felder für
alle Sammlungen gleich sind. CVSup
bietet die Möglichkeit, Vorgaben für die Felder der
Sammlungen festzulegen. Zeilen, die mit der Pseudo-Sammlung
*default beginnen, legen Optionen und Parameter
für nachfolgende Sammlungen im supfile
fest. Der Vorgabewert kann in der Zeile einer bestimmten Sammlung
überschrieben werden. Durch Hinzufügen weiterer
*default Zeilen können die Vorgaben auch
mitten im supfile überschrieben oder
erweitert werden.Mit diesem Wissen können wir nun ein
supfile erstellen, das den Quellbaum von
FreeBSD-CURRENT anfordert und
aktualisiert.Welche Dateien wollen Sie
empfangen?Dateien werden von CVSup in
Sammlungen organisiert. Die erhältlichen
Sammlungen werden später
beschrieben. Wir wollen den Quellbaum von FreeBSD empfangen,
der in der Sammlung src-all enthalten ist.
Das supfile enthält pro Zeile eine
Sammlung, in diesem Fall also nur eine einzige Zeile:src-allWelche Versionen der Dateien
werden benötigt?Mit CVSup können Sie jede
Version der Quellen bekommen, da der
cvsupd-Server seine Daten direkt aus
dem CVS-Repository bezieht. Sie
können die benötigten Versionen in den
Parameterfeldern tag= und
angeben.Achten Sie darauf, dass Sie das richtige
tag=-Feld angeben. Einige Tags sind nur
für spezielle Sammlungen gültig. Wenn Sie ein
falsches Tag angeben oder sich verschreiben, wird
CVSup Dateien löschen, die
Sie wahrscheinlich gar nicht löschen wollten.
Achten Sie insbesondere bei den
ports-*-Sammlungen darauf,
ausschließlichtag=. zu verwenden.Mit tag= wird ein symbolischer Name aus
dem Repository angegeben. Es gibt zwei verschiedene Tags:
Tags, die Revisionen bezeichnen und Tags, die Zweige
bezeichnen. Die ersteren sind statisch und fest an eine
Revision gebunden. Ein Tag, das einen Zweig bezeichnet,
bezieht sich dagegen zu einem gegebenen Zeitpunkt immer auf
die aktuellste Revision. Da ein Tag eines Zweiges nicht an
eine bestimmte Revision gebunden ist, kann sich dessen
Bedeutung von heute auf morgen ändern. zählt für Benutzer
relevante Tags auf. Wenn Sie in der Konfigurationsdatei ein
Tag, wie RELENG_4, angeben, müssen Sie
diesem tag= vorstellen:
tag=RELENG_4. Denken Sie daran, dass
es für die Ports-Sammlung nur tag=.
gibt.Achten Sie darauf, dass Sie den Namen eines Tags
richtig angeben. CVSup kann nicht
zwischen richtigen und falschen Tags unterscheiden. Wenn Sie
sich bei der Angabe eines Tags vertippen, nimmt
CVSup an, Sie hätten ein
gültiges Tag angegeben, dem nur keine Dateien zugeordnet
sind. Die Folge davon ist, dass Ihre vorhandenen Quellen
gelöscht werden.Wenn Sie ein Tag angeben, das sich auf einen Zweig bezieht,
erhalten Sie die aktuellsten Revisionen der Dateien auf diesem
Zweig. Wenn Sie eine frühere Revision erhalten
möchten, können Sie diese im
Feld angeben. Einzelheiten dazu finden Sie in der Manualpage
von cvsup.Wir möchten gerne FreeBSD-CURRENT beziehen und
fügen die folgende Zeile am Anfang
der Konfigurationsdatei ein:*default tag=.Eine wichtige Ausnahme ist wenn Sie weder ein
tag=-Feld noch ein date=-Feld
angeben. In diesem Fall erhalten Sie anstelle einer speziellen
Revision die wirklichen RCS-Dateien aus dem CVS-Repository
des Servers. Diese Vorgehensweise wird von Entwicklern
bevorzugt, da sie mit einem eigenen Repository leicht die
Entwicklungsgeschichte und Veränderungen von Dateien
verfolgen können. Dieser Vorteil muss allerdings mit
sehr viel Plattenplatz bezahlt werden.Woher sollen die Dateien
bezogen werden?Im host=-Feld wird angegeben, woher
cvsup die Dateien holen soll. Sie
können hier jeden der CVSup-Spiegel angeben, doch
sollten Sie einen Server in Ihrer Nähe auswählen.
Für dieses Beispiel wollen wir den erfundenen Server
cvsup666.FreeBSD.org
verwenden:*default host=cvsup666.FreeBSD.orgBevor Sie CVSup laufen
lassen, sollten Sie hier einen existierenden Server
einsetzen. Den zu verwendenden Server können Sie auf der
Kommandozeile mit
überschreiben.Wo sollen die Dateien
gespeichert werden?Im prefix=-Feld teilen Sie
cvsup mit, wo die Dateien gespeichert werden
sollen. In diesem Beispiel werden wir die Quelldateien direkt
im Verzeichnisbaum für Quellen
/usr/src ablegen. Das Verzeichnis
src ist schon in der Sammlung, die wir
beziehen enthalten, so dass wir die folgende Zeile
angeben:*default prefix=/usrWo sollen die
Statusinformationen von cvsup gespeichert
werden?cvsup legt in einem Verzeichnis
Statusinformationen ab, die festhalten, welche Versionen schon
empfangen wurden. Wir verwenden das Standardverzeichnis
/usr/local/etc/cvsup:*default base=/usr/local/etc/cvsupDer Vorgabewert für base= ist genau
dieses Verzeichnis, so dass wir diese Zeile nicht angeben
müssen.Wenn das Verzeichnis für die Statusinformationen nicht
existiert, sollten Sie es jetzt anlegen, da
cvsup ohne dieses Verzeichnis nicht
startet.Verschiedene Einstellungen:Eine weitere Zeile sollte normalerweise in jedem
supfile sein:*default release=cvs delete use-rel-suffix compressMit release=cvs wird angegeben,
dass der Server das FreeBSD Haupt-Repository abfragen soll,
was praktisch immer der Fall ist (die Ausnahmen können in
diesem Rahmen nicht diskutiert werden).delete erlaubt es
CVSup, Dateien zu löschen.
Diese Option sollten Sie immer angeben, damit
CVSup Ihren Quellbaum auch wirklich
aktuell halten kann. CVSup
löscht nur Dateien für die es auch verantwortlich
ist. Andere Dateien, die sich in einem Baum unter Kontrolle
von CVSup befinden, werden nicht
verändert.Wenn Sie wirklich etwas über das obskure
use-rel-suffix erfahren wollen, lesen Sie
bitte in der Manualpage nach, ansonsten geben Sie es einfach an
und vergessen es.Wenn Sie compress angeben, werden Daten
auf dem Kommunikationskanal komprimiert. Wenn Sie über
eine T1-Leitung oder eine schnellere Netzanbindung
verfügen, brauchen Sie diese Option vielleicht nicht. In
allen anderen Fällen beschleunigt sie aber den
Ablauf.Zusammenfassung:Das vollständige supfile unseres
Beispiels sieht nun so aus:*default tag=.
*default host=cvsup666.FreeBSD.org
*default prefix=/usr
*default base=/usr/local/etc/cvsup
*default release=cvs delete use-rel-suffix compress
src-allDie refuse DateiCVSup benutzt die Pull-Methode, das
heißt wenn sich ein Client mit einem Server verbindet,
erhält er eine Liste der verfügbaren Sammlungen und
wählt aus diesen die herunterzuladenden Dateien aus. In der
Voreinstellung wählt der Client alle Dateien aus, die zu
einer gegebenen Sammlung und zu einem gegebenen Tag passen.
Dieses Verhalten ist aber nicht immer erwünscht, besonders
wenn Sie die doc, ports
oder www Verzeichnisbäume
synchronisieren. Die wenigsten Leute beherrschen vier oder fünf
Sprachen und benötigen Dateien mit speziellen Anpassungen
für eine Sprache. Wenn Sie die Ports-Sammlung
synchronisieren, können Sie anstelle von
ports-all einzelne Ports, wie
ports-astrology oder
ports-biology angeben. Die
doc und www
Verzeichnisbäume verfügen aber nicht über
Sammlungen für spezielle Sprachen. In diesem Fall
müssen Sie eines der vielen eleganten Merkmale von
CVSup benutzen: Die
refuse Datei.Mit einer refuse Datei können Sie
bestimmte Dateien einer Sammlung von der Übertragung
ausschließen. Der Ort der refuse ist
base/sup/refuse,
wobei base in Ihrem
supfile festgelegt wurde. In der
Voreinstellung ist base das Verzeichnis
/usr/local/etc/cvsup, der Ort der
refuse Datei ist daher
/usr/local/etc/cvsup/sup/refuse.Das Format der refuse Datei ist einfach:
Sie enthält eine Liste der Dateien und Verzeichnisse, die Sie
nicht herunterladen wollen. Wenn Sie zum Beispiel keinen Bedarf
an Anwendungen mit Anpassungen für Sprachen außer
Englisch haben, könnte ein Teil Ihrer
refuse Datei wie folgt aussehen:ports/chinese
ports/french
ports/german
ports/hebrew
ports/japanese
ports/hungarian
ports/korean
ports/portuguese
ports/russian
ports/ukrainian
ports/vietnamese
doc/de_DE.ISO8859-1
doc/el_GR.ISO8859-7
doc/es_ES.ISO8859-1
doc/fr_FR.ISO8859-1
doc/it_IT.ISO8859-15
doc/ja_JP.eucJP
doc/nl_NL.ISO8859-1
doc/pt_BR.ISO8859-1
doc/ru_RU.KOI8-R
doc/sr_YU.ISO8859-2
doc/zh_TW.Big5Die Aufzählung setzt sich für andere Sprachen fort.
Eine vollständige Liste erhalten Sie, wenn Sie sich die
Verzeichnisse auf dem FreeBSD
FTP server anschauen. Beachten Sie bitte, dass
der Name des Repositories das erste Verzeichnis in der
refuse Datei ist.Die refuse Datei spart Anwendern von
CVSup, die über eine langsame
Internetanbindung verfügen oder deren Internetverbindung
zeitlich abgerechnet wird, wertvolle Zeit, da sie Dateien, die sie
nicht benötigen, nicht mehr herunterladen müssen.
Weitere Informationen zu refuse Dateien und
anderen Eigenschaften von CVSup
entnehmen Sie bitte der Manualpage.Ausführen von CVSupWir können nun eine Aktualisierung mit der folgenden
Kommandozeile starten:&prompt.root; cvsup supfilesupfile gibt
dabei das eben erstelle supfile an. Wenn Sie
X11 benutzen, wird
cvsup ein GUI starten.
Drücken Sie go und schauen Sie
zu.Das Beispiel aktualisiert die Dateien im Verzeichnisbaum
/usr/src. Sie müssen
cvsup als root starten,
damit Sie die nötigen Rechte haben, die Dateien zu
aktualisieren. Sie sind vielleicht ein bisschen nervös
weil Sie das Programm zum ersten Mal anwenden und möchten
zuerst einmal einen Testlauf durchführen. Legen Sie dazu ein
temporäres Verzeichnis an und übergeben es auf der
Kommandozeile von cvsup:&prompt.root; mkdir /var/tmp/dest
&prompt.root; cvsup supfile /var/tmp/destAktualisierungen werden dann nur in dem angegebenen Verzeichnis
vorgenommen. CVSup untersucht die
Dateien in /usr/src, wird aber keine dieser
Dateien verändern. Die veränderten Dateien finden Sie
stattdessen in /var/tmp/dest/usr/src. Die
Statusdateien von CVSup werden ebenfalls
nicht geändert, sondern in dem angegebenen Verzeichnis
abgelegt. Wenn Sie Leseberechtigung in
/usr/src haben, brauchen Sie das Programm
noch nicht einmal unter root laufen zu
lassen.Wenn Sie X11 nicht benutzen wollen
oder keine GUIs mögen, sollten Sie
cvsup wie folgt aufrufen:&prompt.root; cvsup -g -L 2 supfile verhindert den Start des
GUIs. Wenn Sie kein
X11 laufen haben, passiert das
automatisch, ansonsten müssen Sie diesen Schalter
angeben.Mit gibt CVSup
Einzelheiten zu jeder Aktualisierung aus. Die Wortfülle der
Meldungen können Sie von bis
einstellen. In der Voreinstellung
werden nur Fehlermeldungen ausgegeben.Eine Zusammenfassung der Optionen von
CVSup erhalten Sie mit
cvsup -H. Genauere Informationen finden Sie in
der Manualpage von CVSup.Wenn Sie mit dem Ablauf der Aktualisierung zufrieden sind,
können Sie CVSup
regelmäßig aus &man.cron.8; ausführen. In diesem
Fall sollten Sie natürlich nicht das GUI
benutzen.CVSup SammlungenDie CVSup Sammlungen sind
hierarchisch organisiert. Es gibt wenige große Sammlungen,
die in kleinere Teilsammlungen unterteilt sind. Wenn Sie eine
große Sammlung beziehen, entspricht das dem Beziehen aller
Teilsammlungen. Der Hierarchie der Sammlung wird in der folgenden
Aufzählung durch Einrückungen dargestellt.Die am häufigsten benutzen Sammlungen sind
src-all und ports-all. Die
anderen Sammlungen werden von wenigen Leuten zu speziellen Zwecken
benutzt und es kann sein, dass diese nicht auf allen Spiegeln
zur Verfügung stehen.cvs-all release=cvsDas FreeBSD Haupt-Repository einschließlich der
Kryptographie-Module.distrib release=cvsDateien, die zum Verteilen und Spiegeln von FreeBSD
benötigt werden.doc-all release=cvsQuellen des FreeBSD Handbuchs und weiterer
Dokumentation. Diese Sammlung enthält nicht die
FreeBSD Webseite.ports-all release=cvsDie FreeBSD Ports-Sammlung.Wenn Sie nicht die gesamte Ports-Sammlung
(ports-all) aktualieren wollen,
sondern nur eine der nachstehend aufgeführten
Teilsammlungen, aktualisieren Sie
immer die Teilsammlung
ports-base. Diese Teilsammlung
enthält das Bausystem der Ports. Immer wenn
ports-base geändert wird,
ist es so gut wie sicher, dass diese Änderung
auch tatsächlich von einem Port benutzt wird.
Der Bau eines Ports, der auf Änderungen
im Bausystem angewiesen wird, wird fehlschlagen,
wenn das Bausystem noch auf einem alten Stand ist.
Aktualisieren Sie vor allen Dingen
ports-base, wenn Sie bei
einem Bau merkwürdige Fehlermeldungen
erhalten und kein aktuelles Bausystem benutzen.ports-archivers
release=cvsWerkzeuge zum Archivieren.ports-astro
release=cvsAstronomie-Programme.ports-audio
release=cvsAudio-Programme.ports-base
release=cvsDas Bausystem der Ports-Sammlung.
Dazu gehören verschiedene Dateien in den
Unterverzeichnissen Mk/
und Tools/ von
/usr/ports.Aktualisieren Sie diese Teilsammlung
jedes Mal, wenn Sie
einen Teil der Ports-Sammlung aktualisieren.
Lesen Sie dazu auch den obigen
Hinweis zur Ports-Sammlung.ports-benchmarks
release=cvsBenchmarks.ports-biology
release=cvsBiologie.ports-cad
release=cvsComputer Aided Design Werkzeuge.ports-chinese
release=cvsChinesische Sprachunterstützung.ports-comms
release=cvsProgramme zur Datenkommunikation.ports-converters
release=cvsZeichensatz Konvertierer.ports-databases
release=cvsDatenbanken.ports-deskutils
release=cvsSachen, die sich vor dem Computer-Zeitalter
auf dem Schreibtisch befanden.ports-devel
release=cvsWerkzeuge für Entwickler.ports-editors
release=cvsEditoren.ports-emulators
release=cvsProgramme, die andere Betriebssysteme
emulieren.ports-finance
release=cvsFinanz-Anwendungen.ports-ftp
release=cvsWerkzeuge für FTP Clients und Server.ports-games
release=cvsSpiele.ports-german
release=cvsDeutsche Sprachunterstützung.ports-graphics
release=cvsGraphik-Programme.ports-hungarian
release=cvsUngarische Sprachunterstützung.ports-irc
release=cvsInternet Relay Chat Werkzeuge.ports-japanese
release=cvsJapanische Sprachunterstützung.ports-java
release=cvsJava Werkzeuge.ports-korean
release=cvsKoreanische Sprachunterstützung.ports-lang
release=cvsProgrammiersprachen.ports-mail
release=cvsE-Mail Programme.ports-math
release=cvsProgramme zur numerischen Mathematik.ports-mbone
release=cvsMBone Anwendungen.ports-misc
release=cvsVerschiedene Werkzeuge.ports-multimedia
release=cvsMultimedia-Anwendungen.ports-net
release=cvsNetzwerk-Programme.ports-news
release=cvsUSENET News Werkzeuge.ports-palm
release=cvsProgramme für den
Palm.ports-portuguese
release=cvsPortugiesische Sprachunterstützung.ports-print
release=cvsDruckprogramme.ports-russian
release=cvsRussische Sprachunterstützung.ports-security
release=cvsWerkzeuge zum Thema Sicherheit.ports-shells
release=cvsKommandozeilen-Shells.ports-sysutils
release=cvsSystem-Werkzeuge.ports-textproc
release=cvsProgramme zur Textverarbeitung (ohne Desktop
Publishing).ports-vietnamese
release=cvsVietnamesische
Sprachunterstützung.ports-www
release=cvsSoftware rund um das World Wide Web.ports-x11
release=cvsX-Window Programme.ports-x11-clocks
release=cvsX11-Uhren.ports-x11-fm
release=cvsX11-Dateiverwalter.ports-x11-fonts
release=cvsX11-Zeichensätze und Werkzeuge dazu.ports-x11-toolkits
release=cvsX11-Werkzeuge.ports-x11-serversX11-Server.ports-x11-wmX11-Fensterverwalter.src-all release=cvsDie FreeBSD Quellen einschließlich der
Kryptographie-Module.src-base
release=cvsVerschiedene Dateien unter
/usr/src.src-bin
release=cvsBenutzer-Werkzeuge die im Einzelbenutzermodus
gebraucht werden
(/usr/src/bin).src-contrib
release=cvsWerkzeuge und Bibliotheken, die nicht aus dem
FreeBSD-Projekt stammen und wenig verändert
übernommen werden.
(/usr/src/contrib).src-crypto release=cvsKryptographische Werkzeuge und Bibliotheken,
die nicht aus dem FreeBSD-Projekt stammen und
wenig verändert übernommen werden.
(/usr/src/crypto).src-eBones release=cvsKerberos und DES
(/usr/src/eBones). Wird
in aktuellen Releases von FreeBSD nicht
benutzt.src-etc
release=cvsKonfigurationsdateien des Systems
(/usr/src/etc).src-games
release=cvsSpiele
(/usr/src/games).src-gnu
release=cvsWerkzeuge, die unter der GNU Public License
stehen (/usr/src/gnu).src-include
release=cvsHeader Dateien
(/usr/src/include).src-kerberos5
release=cvsKerberos5
(/usr/src/kerberos5).src-kerberosIV
release=cvsKerberosIV
(/usr/src/kerberosIV).src-lib
release=cvsBibliotheken
(/usr/src/lib).src-libexec
release=cvsSystemprogramme, die von anderen Programmen
ausgeführt werden
(/usr/src/libexec).src-release
release=cvsDateien, die zum Erstellen eines FreeBSD
Releases notwendig sind
(/usr/src/release).src-sbin release=cvsWerkzeuge für den Einzelbenutzermodus
(/usr/src/sbin).src-secure
release=cvsKryptographische Bibliotheken und Befehle
(/usr/src/secure).src-share
release=cvsDateien, die von mehreren Systemen
gemeinsam benutzt werden können
(/usr/src/share).src-sys
release=cvsDer Kernel
(/usr/src/sys).src-sys-crypto
release=cvsKryptographie Quellen des Kernels
(/usr/src/sys/crypto).src-tools
release=cvsVerschiedene Werkzeuge zur Pflege von FreeBSD
(/usr/src/tools).src-usrbin
release=cvsBenutzer-Werkzeuge
(/usr/src/usr.bin).src-usrsbin
release=cvsSystem-Werkzeuge
(/usr/src/usr.sbin).www release=cvsDie Quellen der FreeBSD WWW Seite.distrib release=selfDie Konfigurationsdateien des
CVSup Servers. Diese werden von
den CVSup benutzt.gnats release=currentDie GNATS Datenbank, in der Problemberichte verwaltet
werden.mail-archive release=currentDas Archiv der FreeBSD Mailinglisten.www release=currentDie formatierten Dateien der FreeBSD WWW Seite (nicht die
Quellen). Diese werden von den WWW-Spiegeln benutzt.Weiterführende InformationenDie CVSup FAQ und weitere
Informationen über CVSup finden Sie
auf The
CVSup Home Page.FreeBSD spezifische Diskussionen über
CVSup finden auf der Mailingliste
&a.hackers; statt. Dort und auf der Liste &a.announce; werden neue
Versionen von CVSup
angekündigt.Fragen und Problemberichte sollten an den Autor des Programms
cvsup-bugs@polstra.com weitergeleitet werden.CVSup ServerDie folgende Aufzählung enthält
CVSup Server für FreeBSD:Argentiniencvsup.ar.FreeBSD.org (Betreuer
msagre@cactus.fi.uba.ar)Australiencvsup.au.FreeBSD.org (Betreuer
cvsup@ntt.net.au)cvsup2.au.FreeBSD.org (Betreuer
cvsup@isp.net.au)cvsup3.au.FreeBSD.org (Betreuer
cvsup@speednet.com.au)cvsup4.au.FreeBSD.org (Betreuer
cvsup@ideal.net.au)cvsup5.au.FreeBSD.org (Betreuer
cvsup@netlead.com.au)Brasiliencvsup.br.FreeBSD.org (Betreuer
cvsup@cvsup.br.FreeBSD.org)cvsup2.br.FreeBSD.org (Betreuer
tps@ti.sk)cvsup3.br.FreeBSD.org (Betreuer
camposr@matrix.com.br)cvsup4.br.FreeBSD.org (Betreuer
cvsup@tcoip.com.br)cvsup5.br.FreeBSD.org (Betreuer
hostmaster@br.FreeBSD.org)Bulgariencvsup.bg.FreeBSD.org (Betreuer
hostmaster@bg.FreeBSD.org)Chinacvsup.cn.FreeBSD.org (Betreuer
phj@cn.FreeBSD.org)Dänemarkcvsup.dk.FreeBSD.org (Betreuer
jesper@FreeBSD.org)Deutschlandcvsup.de.FreeBSD.org (Betreuer
cvsup@cosmo-project.de)cvsup2.de.FreeBSD.org (Betreuer
cvsup@apfel.de)cvsup3.de.FreeBSD.org (Betreuer
ag@leo.org)cvsup4.de.FreeBSD.org (Betreuer
cvsup@cosmo-project.de)cvsup5.de.FreeBSD.org (Betreuer
&a.rse;)cvsup6.de.FreeBSD.org (Betreuer
adminmail@heitec.net)cvsup7.de.FreeBSD.org (Betreuer
karsten@rohrbach.de)Estlandcvsup.ee.FreeBSD.org (Betreuer
taavi@uninet.ee)Finnlandcvsup.fi.FreeBSD.org (Betreuer
count@key.sms.fi)cvsup2.fi.FreeBSD.org (Betreuer
count@key.sms.fi)Frankreichcvsup.fr.FreeBSD.org (Betreuer
hostmaster@fr.FreeBSD.org)cvsup2.fr.FreeBSD.org (Betreuer
ftpmaint@uvsq.fr)cvsup3.fr.FreeBSD.org (Betreuer
ftpmaint@enst.fr)cvsup4.fr.FreeBSD.org (Betreuer
ftpmaster@t-online.fr)cvsup5.fr.FreeBSD.org (Betreuer
freebsdcvsup@teaser.net)cvsup8.fr.FreeBSD.org (Betreuer
ftpmaint@crc.u-strasbg.fr)Griechenlandcvsup.gr.FreeBSD.org (Betreuer
ftpadm@duth.gr)cvsup2.gr.FreeBSD.org (Betreuer
paschos@cs.uoi.gr)Großbritanniencvsup.uk.FreeBSD.org (Betreuer
ftp-admin@plig.net)cvsup2.uk.FreeBSD.org (Betreuer
&a.brian;)cvsup3.uk.FreeBSD.org (Betreuer
ben.hughes@uk.easynet.net)cvsup4.uk.FreeBSD.org (Betreuer
ejb@leguin.org.uk)cvsup5.uk.FreeBSD.org (Betreuer
mirror@teleglobe.net)Irlandcvsup.ie.FreeBSD.org (Betreuer
dwmalone@maths.tcd.ie),
Trinity College, Dublin.Islandcvsup.is.FreeBSD.org (Betreuer
hostmaster@is.FreeBSD.org)Japancvsup.jp.FreeBSD.org (Betreuer
cvsupadm@jp.FreeBSD.org)cvsup2.jp.FreeBSD.org (Betreuer
&a.max;)cvsup3.jp.FreeBSD.org (Betreuer
shige@cin.nihon-u.ac.jp)cvsup4.jp.FreeBSD.org (Betreuer
cvsup-admin@ftp.media.kyoto-u.ac.jp)cvsup5.jp.FreeBSD.org (Betreuer
cvsup@imasy.or.jp)cvsup6.jp.FreeBSD.org (Betreuer
cvsupadm@jp.FreeBSD.org)Kanadacvsup.ca.FreeBSD.org (Betreuer
cvsup@ca.FreeBSD.org)Koreacvsup.kr.FreeBSD.org (Betreuer
cjh@kr.FreeBSD.org)cvsup2.kr.FreeBSD.org (Betreuer
holywar@mail.holywar.net)cvsup3.kr.FreeBSD.org (Betreuer
leo@florida.sarang.net)Kuwaitcvsup1.kw.FreeBSD.org (Betreuer
sysadmin@kems.net)Lettlandcvsup.lv.FreeBSD.org (Betreuer
system@soft.lv)Litauencvsup.lt.FreeBSD.org (Betreuer
domas.mituzas@delfi.lt)cvsup2.lt.FreeBSD.org (Betreuer
vaidas.damosevicius@if.lt)Neuseelandcvsup.nz.FreeBSD.org (Betreuer
cvsup@langille.org)Niederlandecvsup.nl.FreeBSD.org (Betreuer
xaa@xaa.iae.nl)cvsup2.nl.FreeBSD.org (Betreuer
cvsup@nl.uu.net)cvsup3.nl.FreeBSD.org (Betreuer
cvsup@vuurwerk.nl)cvsup4.nl.FreeBSD.org (Betreuer
hostmaster@cvsup4.nl.FreeBSD.org)Norwegencvsup.no.FreeBSD.org (Betreuer
Per.Hove@math.ntnu.no)Österreichcvsup.at.FreeBSD.org (Betreuer
postmaster@wu-wien.ac.at)cvsup2.at.FreeBSD.org (Betreuer
ftp-admin.zid@univie.ac.at)Polencvsup.pl.FreeBSD.org (Betreuer
Mariusz@kam.pl)cvsup2.pl.FreeBSD.org (Betreuer
hostmaster@cvsup2.pl.FreeBSD.org)cvsup3.pl.FreeBSD.org (Betreuer
hostmaster@cvsup3.pl.FreeBSD.org)Portugalcvsup.pt.FreeBSD.org (Betreuer
jpedras@webvolution.net)Rumäniencvsup.ro.FreeBSD.org (Betreuer
razor@ldc.ro)cvsup2.ro.FreeBSD.org (Betreuer
hostmaster@rofug.ro)cvsup3.ro.FreeBSD.org (Betreuer
veedee@c7.campus.utcluj.ro)Russlandcvsup.ru.FreeBSD.org (Betreuer
ache@nagual.pp.ru)cvsup2.ru.FreeBSD.org (Betreuer
dv@dv.ru)cvsup3.ru.FreeBSD.org (Betreuer
fjoe@iclub.nsu.ru)cvsup4.ru.FreeBSD.org (Betreuer
maxim@macomnet.ru)cvsup5.ru.FreeBSD.org (Betreuer
maxim@macomnet.ru)cvsup6.ru.FreeBSD.org (Betreuer
pvr@corbina.net)San Marinocvsup.sm.FreeBSD.org (Betreuer
sysadmin@alexdupre.com)Schwedencvsup.se.FreeBSD.org (Betreuer
pantzer@ludd.luth.se)cvsup2.se.FreeBSD.org (Betreuer
cvsup@dataphone.net)Singapurcvsup.sg.FreeBSD.org (Betreuer
mirror-maintainer@mirror.averse.net)Slowakische Republikcvsup.sk.FreeBSD.org (Betreuer
scorp@scorp.sk)cvsup2.sk.FreeBSD.org (Betreuer
scorp@scorp.sk)Sloweniencvsup.si.FreeBSD.org (Betreuer
blaz@si.FreeBSD.org)cvsup2.si.FreeBSD.org (Betreuer
cuk@cuk.nu)Spaniencvsup.es.FreeBSD.org (Betreuer
&a.jesusr;)cvsup2.es.FreeBSD.org (Betreuer
&a.jesusr;)cvsup3.es.FreeBSD.org (Betreuer
jose@we.lc.ehu.es)Südafrikacvsup.za.FreeBSD.org (Betreuer
&a.markm;)cvsup2.za.FreeBSD.org (Betreuer
&a.markm;)Taiwancvsup.tw.FreeBSD.org (Betreuer
ijliao@FreeBSD.org)cvsup3.tw.FreeBSD.org (Betreuer
foxfair@FreeBSD.org)cvsup4.tw.FreeBSD.org (Betreuer
einstein@NHCTC.edu.tw)cvsup5.tw.FreeBSD.org (Betreuer
einstein@NHCTC.edu.tw)cvsup6.tw.FreeBSD.org (Betreuer
jason@tw.FreeBSD.org)cvsup7.tw.FreeBSD.org (Betreuer
cvsup@abpe.org)cvsup8.tw.FreeBSD.org (Betreuer
heboy@FreeBSD.tku.edu.tw)cvsup9.tw.FreeBSD.org (Betreuer
cs871256@csie.ncu.edu.tw)cvsup10.tw.FreeBSD.org (Betreuer
rafan@infor.org)cvsup11.tw.FreeBSD.org (Betreuer
vanilla@FreeBSD.org)cvsup12.tw.FreeBSD.org (Betreuer
GEO.bbs@birdnest.twbbs.org)cvsup13.tw.FreeBSD.org (Betreuer
cdsheen@tw.FreeBSD.org)Tschechische Republikcvsup.cz.FreeBSD.org (Betreuer
cejkar@fit.vutbr.cz)Ukrainecvsup2.ua.FreeBSD.org (Betreuer
freebsd-mnt@lucky.net)cvsup3.ua.FreeBSD.org (Betreuer
ftpmaster@ukr.net), Kievcvsup4.ua.FreeBSD.org (Betreuer
phantom@cris.net)cvsup5.ua.FreeBSD.org (Betreuer
never@nevermind.kiev.ua)cvsup6.ua.FreeBSD.org (Betreuer
freebsd-cvs@colocall.net)cvsup7.ua.FreeBSD.org (Betreuer
never@nevermind.kiev.ua)Türkeicvsup.tr.FreeBSD.org (Betreuer
roots@enderunix.org)Ungarncvsup.hu.FreeBSD.org (Betreuer
janos.mohacsi@bsd.hu)USAcvsup1.FreeBSD.org (Betreuer
cwt@networks.cwu.edu), Washington
statecvsup2.FreeBSD.org (Betreuer
djs@secure.net und &a.nectar;), Virginiacvsup3.FreeBSD.org (Betreuer
&a.wollman;), Massachusettscvsup5.FreeBSD.org (Betreuer
mjr@blackened.com), Arizonacvsup6.FreeBSD.org (Betreuer
cvsup@cvsup.adelphiacom.net), Illinoiscvsup7.FreeBSD.org (Betreuer
&a.jdp;), Washington statecvsup8.FreeBSD.org (Betreuer
hostmaster@bigmirror.com), Washington
statecvsup9.FreeBSD.org (Betreuer
&a.jdp;), Minnesotacvsup10.FreeBSD.org (Betreuer
&a.jdp;), Californiacvsup11.FreeBSD.org (Betreuer
cvsup@research.uu.net), Virginiacvsup12.FreeBSD.org (Betreuer
&a.will;), Indianacvsup13.FreeBSD.org (Betreuer
dima@valueclick.com), Californiacvsup14.FreeBSD.org (Betreuer
freebsd-cvsup@mfnx.net), Californiacvsup15.FreeBSD.org (Betreuer
cvsup@math.uic.edu), Illinoiscvsup16.FreeBSD.org (Betreuer
pth3k@virginia.edu), Virginiacvsup17.FreeBSD.org (Betreuer
cvsup@mirrortree.com), Washington stateCVS TagsWenn Sie Quellen mit CVS oder
CVSup erhalten oder aktualisieren wollen,
müssen Sie dazu ein Tag oder eine Revision angeben.
Im Folgenden finden Sie Tags, die verschiedene FreeBSD Zweige zu
verschiedenen Zeiten angeben.Der ports Baum besitzt kein eigenes Tag,
er ist immer CURRENT.Die am häufigsten verwendeten Tags sind:HEADSymbolischer Name für den Hauptzweig, auch
&os.current; genannt. Dies ist die Vorgabe, wenn keine
Revision angegeben wird.In CVSup wird dieses Tag mit
einem . (Punkt) bezeichnet.In CVS ist das die Vorgabe,
wenn Sie kein Tag oder eine Revision angeben. Außer
Sie wollen einen -STABLE Rechner auf -CURRENT aktualisieren,
ist es nicht ratsam, die -CURRENT
Quellen auf einem -STABLE Rechner einzuspielen.RELENG_5_0Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 5.0 durchgeführt
werden.RELENG_4Der FreeBSD 4.X Entwicklungszweig, der auch &os.stable;
genannt wird.RELENG_4_8Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.8 durchgeführt
werden.RELENG_4_7Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.7 durchgeführt
werden.RELENG_4_6Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.6 und
FreeBSD 4.6.2 durchgeführt werden.RELENG_4_5Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.5 durchgeführt
werden.RELENG_4_4Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.4 durchgeführt
werden.RELENG_4_3Der Zweig, auf dem sicherheitsrelevante oder kritische
Fehlerbehebungen für FreeBSD 4.3 durchgeführt
werden.RELENG_3Der FreeBSD-3.X Entwicklungszweig, der auch 3.X-STABLE
genannt wird.RELENG_2_2Der FreeBSD-2.2.X Entwicklungszweig, der auch 2.2-STABLE
genannt wird.Weitere Revision-Tags sind:RELENG_4_8_0_RELEASEFreeBSD 4.8RELENG_5_0_0_RELEASEFreeBSD 5.0RELENG_4_7_0_RELEASEFreeBSD 4.7RELENG_4_6_2_RELEASEFreeBSD 4.6.2.RELENG_4_6_1_RELEASEFreeBSD 4.6.1.RELENG_4_6_0_RELEASEFreeBSD 4.6.RELENG_4_5_0_RELEASEFreeBSD 4.5.RELENG_4_4_0_RELEASEFreeBSD 4.4.RELENG_4_3_0_RELEASEFreeBSD 4.3.RELENG_4_2_0_RELEASEFreeBSD 4.2.RELENG_4_1_1_RELEASEFreeBSD 4.1.1.RELENG_4_1_0_RELEASEFreeBSD 4.1.RELENG_4_0_0_RELEASEFreeBSD 4.0.RELENG_3_5_0_RELEASEFreeBSD-3.5.RELENG_3_4_0_RELEASEFreeBSD-3.4.RELENG_3_3_0_RELEASEFreeBSD-3.3.RELENG_3_2_0_RELEASEFreeBSD-3.2.RELENG_3_1_0_RELEASEFreeBSD-3.1.RELENG_3_0_0_RELEASEFreeBSD-3.0.RELENG_2_2_8_RELEASEFreeBSD-2.2.8.RELENG_2_2_7_RELEASEFreeBSD-2.2.7.RELENG_2_2_6_RELEASEFreeBSD-2.2.6.RELENG_2_2_5_RELEASEFreeBSD-2.2.5.RELENG_2_2_2_RELEASEFreeBSD-2.2.2.RELENG_2_2_1_RELEASEFreeBSD-2.2.1.RELENG_2_2_0_RELEASEFreeBSD-2.2.0.AFS ServerDie folgende Aufzählung enthält AFS Server für
FreeBSD:SchwedenDie Dateien sind unter dem Pfad
/afs/stacken.kth.se/ftp/pub/FreeBSD/
erreichbar.stacken.kth.se # Stacken Computer Club, KTH, Sweden
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.seBetreuer ftp@stacken.kth.sersync Serverrsync wird ähnlich wie
rcp verwendet, besitzt aber mehr Optionen und
verwendet das rsync remote-update Protokoll, das nur
geänderte Dateien überträgt und damit viel schneller
als ein normaler Kopiervorgang ist. rsync
ist sehr nützlich, wenn Sie einen FreeBSD FTP-Spiegel oder einen
CVS-Spiegel betreiben. Das Programm ist für viele
Betriebssysteme erhältlich, mit FreeBSD können Sie den
Port net/rsync oder das fertige
Paket benutzen. Die folgenden Server stellen FreeBSD über das
rsync Protokoll zur Verfügung:Deutschlandrsync://grappa.unix-ag.uni-kl.de/Verfügbare Sammlungen:freebsd-cvs: Das vollständige
CVS-Repository von &os;.Neben anderen Repositories spiegelt diese Maschine auch die
Repositories der NetBSD- und OpenBSD-Projekte.Großbritannienrsync://rsync.mirror.ac.uk/Verfügbare Sammlungen:ftp.freebsd.org: Kompletter Spiegel des
FreeBSD FTP Servers.Niederlandersync://ftp.nl.FreeBSD.org/Verfügbare Sammlungen:vol/3/freebsd-core: Kompletter Spiegel des
FreeBSD FTP Servers.Tschechische Republikrsync://ftp.cz.FreeBSD.org/Verfügbare Sammlungen:ftp: Unvollständiger Spiegel des FreeBSD FTP
Servers.FreeBSD: Vollständiger Spiegel des FreeBSD FTP
Servers.USArsync://ftp-master.FreeBSD.org/Dieser Server darf nur von primären Spiegeln benutzt
werden.Verfügbare Sammlungen:FreeBSD: Das Hauptarchiv des FreeBSD
FTP Servers.acl: Die primäre ACL-Liste.rsync://ftp13.FreeBSD.org/Verfügbare Sammlungen:FreeBSD: Kompletter Spiegel des FreeBSD FTP
Servers.
diff --git a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
index 6873ffc0af..9a1398ca07 100644
--- a/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/ports/chapter.sgml
@@ -1,1650 +1,1649 @@
UwePierauÜbersetzt von Installieren von Anwendungen: Pakete und PortsÜbersichtPortsPaketeFreeBSD enthält sehr viele Systemwerkzeuge, die Teil des
Basissystems sind. Allerdings sind Sie früher oder später
auf Software Dritter angewiesen, damit Sie bestimmte Arbeiten
durchführen können. Um diese Software zu installieren,
stellt FreeBSD zwei, sich ergänzende, Methoden zur
Verfügung: Die Ports-Sammlung und binäre Softwarepakete.
Sie können beide Methoden benutzen, um Ihre Lieblingsanwendungen
von lokalen Medien oder über das Netzwerk zu
installieren.Nachdem Sie dieses Kapitel durchgearbeitet haben, werden Sie
wissenwie Sie binäre Softwarepakete installieren,wie Sie Software Dritter mit der Ports-Sammlung bauen
undwie Sie zuvor installierte Pakete oder Ports von einem
System entfernen.Installation von SoftwareWenn Sie schon einmal ein &unix; System benutzt haben, werden Sie
wissen, dass zusätzliche Software meist wie folgt
installiert wird:Download der Software, die als Quelltext oder im
Binärformat vorliegen kann.Auspacken der Software, die typischerweise ein mit
&man.compress.1; oder &man.gzip.1; komprimiertes Tar-Archiv
enthält.Durchsuchen der Dokumentation, die sich meist in Dateien wie
INSTALL, README oder
mehreren Dateien im Verzeichnis doc/
befindet, nach Anweisungen, wie die Software
zu installieren ist.Kompilieren der Software wenn sie als Quelltext vorliegt.
Dazu müssen Sie vielleicht das Makefile
anpassen, oder configure laufen lassen, oder
andere Arbeiten durchführen.Testen und installieren der Software.Das beschreibt aber nur den optimalen Fall. Wenn Sie
Software installieren, die nicht speziell für FreeBSD
geschrieben wurde, müssen Sie vielleicht sogar den Quelltext
anpassen, damit die Software funktioniert.Wenn Sie unbedingt wollen, können Sie mit FreeBSD Software
nach der althergebrachten Methode installieren. Mit
Paketen oder Ports bietet Ihnen FreeBSD allerdings zwei Methoden an,
die Ihnen sehr viel Zeit sparen können. Zurzeit werden über
&os.numports; Anwendungen Dritter über diese Methoden zur
Verfügung gestellt.Das FreeBSD Paket einer Anwendung besteht aus einer einzigen
Datei, die Sie sich herunterladen müssen. Das Paket
enthält schon übersetzte Kommandos der Anwendung, sowie
zusätzliche Konfigurationsdateien oder Dokumentation. Zur
Handhabung der Pakete stellt FreeBSD Kommandos wie &man.pkg.add.1;,
&man.pkg.delete.1; oder &man.pkg.info.1; zur Verfügung.Mit diesem System können neue Anwendungen mit einem
Kommando, pkg_add, installiert werden.Der FreeBSD Port einer Anwendung ist eine Sammlung von Dateien,
die das Kompilieren der Quelltexte einer Anwendung
automatisieren.Die Dateien eines Ports führen für Sie alle oben
aufgeführten Schritte zum Installieren einer Anwendung durch.
Mit einigen wenigen Kommandos wird der Quellcode der Anwendung
automatisch heruntergeladen, ausgepackt, gepatcht, übersetzt und
installiert.Tatsächlich kann das Portsystem auch dazu benutzt werden,
Pakete zu generieren, die Sie mit den gleich beschriebenen Kommandos,
wie pkg_add, manipulieren können.Pakete und Ports beachten Abhängigkeiten zwischen
Anwendungen. Angenommen, Sie wollen eine Anwendung installieren,
die von einer Bibliothek abhängt und die Anwendung wie die
Bibliothek sind als Paket oder Port für FreeBSD verfügbar.
Wenn Sie pkg_add oder das Portsystem benutzen,
um die Anwendung zu installieren, werden Sie bemerken, dass
die Bibliothek zuerst installiert wird, wenn sie nicht schon vorher
installiert war.Sie werden sich fragen, warum FreeBSD Pakete und Ports
unterstützt, wo doch beide Methoden fast gleiches leisten.
Beide Methoden haben ihre Stärken und welche Sie einsetzen,
hängt letztlich von Ihren Vorlieben ab.Vorteile von PaketenDas komprimierte Paket einer Anwendung ist normalerweise
kleiner als das komprimierte Archiv der Quelltexte.Pakete müssen nicht mehr kompiliert werden. Dies ist
ein Vorteil, wenn Sie große Pakete, wie
Mozilla, KDE
oder GNOME auf langsamen Maschinen
installieren.Wenn Sie Pakete verwenden, brauchen Sie nicht zu verstehen,
wie Sie Software unter FreeBSD kompilieren.Vorteile von PortsDa die Pakete auf möglichst vielen System laufen sollen,
werden Optionen beim Übersetzen zurückhaltend gesetzt.
Wenn Sie eine Anwendung über die Ports installieren,
können Sie die Angabe der Optionen optimieren. Zum Beispiel
können Sie spezifischen Code für Pentium III oder
Athlon Prozessoren erzeugen.Die Eigenschaften einiger Anwendungen werden über
Optionen zum Zeitpunkt des Übersetzens festgelegt.
Apache kann zum Beispiel über
viele eingebaute Optionen konfiguriert werden. Wenn Sie das
Portsystem benutzen, können Sie die Vorgaben für die
Optionen überschreiben.Für einige Fälle existieren verschiedene
Pakete einer Anwendung, die beim Übersetzen
unterschiedlich konfiguriert wurden. Für
Ghostscript gibt es ein
ghostscript-Paket und ein
ghostscript-nox11-Paket, die sich durch die
X11 Unterstützung unterscheiden. Diese grobe Unterscheidung
ist mit dem Paketsystem möglich, wird aber schnell
unhandlich, wenn eine Anwendung mehr als ein oder zwei Optionen
zum Zeitpunkt des Übersetzens besitzt.Die Lizenzbestimmungen mancher Software verbietet ein
Verbreiten in binärer Form. Diese Software muss als
Quelltext ausgeliefert werden.Einige Leute trauen binären Distributionen nicht. Wenn
Sie den Quelltext besitzen, können Sie sich diesen
(zumindest theoretisch) durchlesen und nach möglichen Problemen
durchsuchen.Wenn Sie eigene Anpassungen besitzen, benötigen Sie den
Quelltext, um diese anzuwenden.Manch einer besitzt gerne den Quelltext, um ihn zu lesen,
wenn es einmal langweilig ist, ihn zu hacken, oder sich einfach
ein paar Sachen abzugucken (natürlich nur, wenn es die
Lizenzbestimmungen erlauben).Wenn Sie über aktualisierte Ports informiert sein wollen,
lesen Sie bitte die Mailinglisten &a.ports; und &a.ports-bugs;.Der Rest dieses Kapitels beschreibt, wie Sie Software Dritter mit
Paketen oder Ports auf einem FreeBSD System installieren und
verwalten.Suchen einer AnwendungBevor Sie eine Anwendung installieren, müssen Sie deren
Art und Namen kennen.Die Anzahl der nach FreeBSD portierten Anwendungen steigt
ständig. Zum Glück gibt es einige Wege, die richtige zu
finden.Eine aktuelle Liste verfügbarer Anwendungen, die sich
auch durchsuchen lässt, finden Sie unter http://www.FreeBSD.org/ports/.
Die Anwendungen sind in Kategorien unterteilt und Sie
können sich alle Anwendungen einer Kategorie anzeigen
lassen. Wenn Sie den Namen der Anwendung kennen, können
Sie natürlich auch direkt nach dem Namen suchen.FreshPortsFreshPorts, das von Dan Langille gepflegt wird, erreichen Sie
- unter
- http://www.FreshPorts.org/. FreshPorts verfolgt
+ unter .
+ FreshPorts verfolgt
Änderungen an Anwendungen aus den Ports. Mit FreshPorts
können Sie ein oder mehrere Ports beobachten und sich eine
E-Mail schicken lassen, wenn ein Port aktualisiert wird.FreshMeatWenn Sie den Namen einer Anwendung nicht kennen, versuchen
- Sie eine Webseite wie FreshMeat (http://www.freshmeat.net/),
+ Sie eine Webseite wie FreshMeat
+ (),
um eine passende Anwendung zu finden. Schauen Sie dann auf der
FreeBSD Webseite nach, ob die Anwendung schon portiert
wurde.ChernLeeBeigesteuert von Benutzen des PaketsystemsInstallieren eines PaketsPaketeinstallierenpkg_addMit &man.pkg.add.1; können Sie ein FreeBSD Paket von einer
lokalen Datei oder über das Netzwerk installieren.Download vor Installation eines Pakets&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>exit
&prompt.root; pkg_add lsof-4.56.4.tgzWenn Sie die Pakete nicht lokal vorliegen haben (zum Beispiel
auf den FreeBSD CD-ROMs), ist es wahrscheinlich einfacher den
Schalter von &man.pkg.add.1; zu verwenden. Das
Werkzeug bestimmt dann automatisch das nötige Objektformat und
die richtige Version des Pakets, lädt dieses dann von einem
FTP-Server und installiert das Paket.pkg_add&prompt.root; pkg_add -r lsofDas obige Beispiel würde ohne weitere Interaktion das
richtige Paket herunterladen und installieren. Die Dateien werden
mit &man.fetch.3;, das Umgebungsvariablen wie
FTP_PASSIVE_MODE, FTP_PROXY und
FTP_PASSWORD berücksichtigt, heruntergeladen.
Wenn Sie durch eine Firewall geschützt werden, müssen Sie
vielleicht eine oder mehrere dieser Umgebungsvariablen setzen oder
einen FTP oder HTTP Proxy verwenden. Eine Liste der
unterstützten Umgebungsvariablen finden Sie in &man.fetch.3;.
Beachten Sie, dass im obigen Beispiel lsof
anstelle von lsof-4.56.4 verwendet wird. Wenn
Sie &man.pkg.add.1; zum Herunterladen eines Pakets verwenden, darf
die Versionsnummer des Pakets nicht angegeben werden, da
automatisch die neuste Version der Anwendung geholt wird.Pakete werden im .tgz Format ausgeliefert.
- Sie finden Sie unter
- ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/ oder
- auf der FreeBSD CD-ROM Distribution. Jede CD der FreeBSD
+ Sie finden Sie unter
+
+ oder auf der FreeBSD CD-ROM Distribution. Jede CD der FreeBSD
Distribution (oder des PowerPaks) enthält Pakete im
Verzeichnis /packages. Die Struktur des
Paketbaums entspricht dem /usr/ports Baum.
Jede Kategorie besitzt ein eigenes Verzeichnis und alle
Pakete befinden sich im Verzeichnis
All.Die Verzeichnisstruktur des Paketbaums ist ein Abbild der
Ports, da beide Systeme eng zusammenarbeiten.Verwalten von PaketenPaketeverwalten&man.pkg.info.1; zeigt alle installierten Pakete und deren
Beschreibung an.pkg_info&prompt.root; pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...&man.pkg.version.1; vergleicht die Version installierter Pakete
mit der Version aus der Ports-Sammlung.pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...Die Symbole in der zweiten Spalte zeigen das Alter des Pakets
im Vergleich zu der lokalen Version aus der Ports-Sammlung an.
SymbolBedeutung=Die Version des installierten Paketes stimmt mit der
Version aus der lokalen Ports-Sammlung überein.<Die installierte Version ist älter als die der
verfügbaren Version aus der Ports-Sammlung.>Die installierte Version ist neuer als die aus der
Ports-Sammlung (Eventuell ist die lokale Ports-Sammlung
veraltet).?Das installierte Paket konnte in der Ports-Sammlung
nicht gefunden werden.*In der Ports-Sammlung befinden sich mehrere Versionen
der Anwendung.Entfernen eines Paketspkg_deletePaketeentfernenUm ein zuvor installiertes Paket zu entfernen, benutzen Sie das
Werkzeug &man.pkg.delete.1;.&prompt.root; pkg_delete xchat-1.7.1VerschiedenesInformationen über alle installierte Pakete werden in
/var/db/pkg abgelegt. Das Verzeichnis
enthält Dateien, in denen sich die Beschreibungen der Pakete
und Listen von Dateien, die zu einem Paket gehören,
befinden.Benutzen der Ports-SammlungDie folgenden Abschnitte stellen die grundlegenden Anweisungen
vor, um Anwendungen aus der Ports-Sammlung auf
Ihren Rechner zu installieren oder zu löschen.Installation der Ports-SammlungBevor Sie einen Port installieren können, müssen Sie
zuerst die Ports-Sammlung installieren, die aus Makefiles, Patches
und Beschreibungen besteht. Die Ports-Sammlung wird
für gewöhnlich unter /usr/ports
installiert.Bei der FreeBSD Installation hatten Sie in
Sysinstall die Möglichkeit, die
Ports-Sammlung zu installieren. Wenn Sie die Sammlung damals nicht
installiert haben, können Sie das mit den folgenden
Anweisungen nachholen:Installieren mit SysinstallSie können die Ports-Sammlung nachträglich mit
sysinstall installieren.Führen Sie als root/stand/sysinstall aus:&prompt.root; /stand/sysinstallWählen Sie den Punkt Configure
aus und drücken Sie Enter.Wählen Sie dann Distributions
aus und drücken Sie Enter.In diesem Menü wählen Sie
ports aus und drücken die
Leertaste.Danach wählen Sie Exit aus und
drücken Enter.Legen Sie nun ein geeignetes Installationsmedium, wie CD-ROM
oder FTP, fest.Wählen Sie nun Exit aus und
drücken Enter.Verlassen Sie sysinstall mit
X.Alternativ können Sie die Ports-Sammlung auch mit
CVSup installieren und aktualisieren.
Ein Beispiel für die Konfiguration von
CVSup finden Sie in
/usr/share/examples/cvsup/ports-supfile.
Weitere Informationen über CVSup
und dessen Konfiguration finden Sie in Benutzen
von CVSup ().Installieren mit CVSupDies ist eine schnelle Methode um die Ports-Sammlung zu
aktualisieren.Installieren Sie den net/cvsup Port. Weitere
Informationen finden Sie in
Installation von CVSup
().Kopieren Sie als root/usr/share/examples/cvsup/ports-supfile an
einen neuen Ort, beispielsweise nach /root
oder in Ihr Heimatverzeichnis.Editieren Sie die Kopie von
ports-supfile.Ersetzen Sie
CHANGE_THIS.FreeBSD.org durch einen
CVSup-Server in Ihrer Nähe.
Eine vollständige Liste der
CVSup-Spiegel finden Sie in
CVSup Spiegel
().Führen Sie cvsup aus:&prompt.root; cvsup -g -L 2 /root/ports-supfileMit diesem Kommando können Sie später die
Ports-Sammlung aktualisieren. Die installierten Ports werden
mit diesem Kommando nicht aktualisiert.Ports installierenPortsinstallierenWas ist mit einem Gerüst im Zusammenhang
mit der Ports-Sammlung gemeint? In aller Kürze: ein
Gerüst eines Ports ist ein minimaler Satz von Dateien, mit
denen das FreeBSD System eine Anwendung sauber übersetzen und
installieren kann. Ein jeder Port beinhaltet:Eine Datei Makefile. Das
Makefile enthält verschiedene
Anweisungen, die spezifizieren, wie eine Anwendung kompiliert
wird und wo sie auf Ihrem System installiert werden
sollte.Eine Datei distinfo. Diese
enthält Informationen, welche Dateien heruntergeladen
werden müssen, sowie Prüfsummen, um sicher zu gehen,
dass diese Dateien während des Herunterladens nicht
beschädigt wurden.Ein files Verzeichnis. Hierin
liegen Patches, welche das Übersetzen und Installieren
der Anwendung ermöglichen. Patches sind im Wesentlichen
kleine Dateien, die Änderungen an speziellen Dateien
spezifizieren. Sie liegen als reiner Text vor und sagen
ungefähr:
Lösche Zeile 10 oder
Ändere Zeile 26 zu .... Patches sind
auch bekannt unter dem Namen diffs, weil
Sie mit dem Programm &man.diff.1;
erstellt werden.Dieses Verzeichnis kann auch noch andere Dateien enthalten,
welche zum Bauen des Ports benutzt werden.Eine Datei pkg-comment. Eine
einzeilige Beschreibung der Anwendung.Eine Datei pkg-descr. Eine
ausführlichere, oft mehrzeilige Beschreibung der
Anwendung.Eine Datei pkg-plist. Das ist eine
Liste aller Dateien, die durch diesen Port installiert werden.
Außerdem sind hier Informationen enthalten, die zum
Entfernen des Ports benötigt werden.Einige Ports besitzen noch andere Dateien, wie
pkg-message, die vom Portsystem benutzt
werden, um spezielle Situationen zu handhaben. Wenn Sie mehr
über diese Dateien oder das Port-System erfahren sollen, lesen
Sie bitte im FreeBSD
FreeBSD Porter's Handbook weiter.Nun haben Sie genug Hintergrund Informationen über
die Ports-Sammlung und Sie können Ihren ersten Port
installieren. Es gibt dazu zwei Möglichkeiten, die
im Folgenden erläutert werden.Bevor Sie damit beginnen, müssen Sie sich natürlich
einen Port zum Installieren aussuchen. Sie können
dazu mehrere Wege gehen, als einfachste Methode gibt es die
Liste aller Ports auf
dem FreeBSD Web-Server. Sie können dort suchen
oder in der Liste schmökern. Jeder Port enthält
außerdem eine Beschreibung, so dass Sie sich vor der
Entscheidung, welchen Port Sie installieren wollen, über den Port
informieren können.Sie können einen Port auch mit &man.whereis.1; suchen.
Geben Sie einfach
whereis Datei ein,
wobei Datei der Name des
Programms ist, das Sie suchen:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofDamit haben wir herausgefunden, dass sich
lsof, ein Systemwerkzeug, in
/usr/ports/sysutils/lsof befindet.Ein weiterer Weg, einen bestimmten Port zu finden, ist es,
die eingebaute Suchfunktion der Ports-Sammlung zu benutzen.
Dazu müssen Sie im Verzeichnis /usr/ports
sein. Darin geben Sie
make search name=Anwendungsname ein, worin Anwendungsname
der Name der von Ihnen gesuchten Anwendung ist. Wenn Sie
zum Beispiel nach lsof suchen:&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps: Der Teil der Ausgabe der Sie interessiert ist die Zeile, die
mit Path: beginnt, weil sie Ihnen sagt, wo der Port
zu finden ist. Die anderen Informationen werden zum Installieren
des Ports nicht direkt benötigt, Sie brauchen sich darum
jetzt nicht weiter zu kümmern.Mit make search key=Text können Sie erweiterte Suchen durchführen.
Damit werden Portnamen, Kommentare, Beschreibungen und
Abhängigkeiten nach Text
durchsucht. Dies kann sehr nützlich sein, wenn Sie den Namen
des Programms, nach dem Sie suchen, nicht kennen.In beiden Fällen wird Groß- und Kleinschreibung bei
der Suche ignoriert. Die Suche nach LSOF wird
dieselben Ergebnisse wie die Suche nach lsof
liefern.Zum Installieren von Ports müssen Sie als Benutzer
root angemeldet sein.Jetzt, wo Sie den gewünschten Port gefunden haben, kann es
mit der eigentlichen Installation losgehen. Der Port enthält
Anweisungen, wie der Quelltext zu bauen ist, enthält aber
nicht den Quelltext selbst. Den Quelltext erhalten Sie von einer
CD-ROM oder aus dem Internet. Quelltexte werden in einem Format
nach Wahl des jeweiligen Software-Autors ausgeliefert. Häufig
ist dies ein gezipptes Tar-Archiv, aber es kann auch mit einem
anderen Tool komprimiert oder gar nicht komprimiert sein. Der
Quelltext, in welcher Form er auch immer vorliegen mag, wird
Distfile genannt.Installation von einer CD-ROMPortsInstallation von einer CD-ROMDie offiziellen FreeBSD CD-ROMs enthalten keine Distfiles
mehr, da diese sehr viel Platz beanspruchen, der besser von
vorkompilierten Paketen genutzt werden kann. Andere FreeBSD CD-ROMs,
wie der FreeBSD PowerPak, enthalten Distfiles.
Diese CD-ROMs können Sie über einen Händler wie
FreeBSD Mall
beziehen. Dieser Abschnitt geht davon aus, dass Sie eine
solche CD-ROM Distribution besitzen.&prompt.root; cd /usr/ports/sysutils/lsofIm Verzeichnis lsof kann man das
Gerüst erkennen. Der
nächste Schritt ist das Übersetzen (auch Bauen genannt)
des Ports. Dies wird durch Eingabe von make
getan. Haben Sie das eingegeben, so werden Sie etwas lesen
wie:&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===> Extracting for lsof-4.57
...
[Ausgabe des Auspackens weggelassen]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure-Ausgabe weggelassen]
...
===> Building for lsof-4.57
...
[Ausgabe der Übersetzung weggelassen]
...
&prompt.root;Ist die Übersetzungsprozedur beendet, sind Sie wieder
in der Kommandozeile und der nächste Schritt ist die
Installation. Erweitern Sie dazu einfach die
make-Kommandozeile um das Wort
install:&prompt.root; make install
===> Installing for lsof-4.57
...
[Ausgabe der Installation weggelassen]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Wenn Sie wieder den Prompt haben, sollten Sie in der Lage
sein, die gerade installierte Anwendung laufen zu lassen. Da
lsof eine Anwendung ist, die mit erhöhten
Rechten läuft, wird eine Sicherheitswarnung angezeigt. Sie
sollten alle Warnungen während des Baus und der Installation
eines Ports beachten.Sie können einen Schritt sparen, wenn Sie gleich
make install anstelle von
make und dem anschließenden
make install eingeben.Um die Suche nach Kommandos zu beschleunigen, speichern
einige Shells eine Liste der verfügbaren Kommandos in den
durch die Umgebungsvariable PATH gegebenen
Verzeichnissen. Nach der Installation eines Ports müssen
Sie in einer solchen Shell vielleicht das Kommando
rehash absetzen, um die neu installierten
Kommandos benutzen zu können. Dies betrifft sowohl die
beiden Shells des Basissystems, wie die
tcsh, und Shells aus den Ports, zum
Beispiel die shells/zsh.Beachten Sie bitte, dass die Lizenzen einiger Ports
die Einbeziehung auf der CD-ROM verbieten. Das kann
verschiedene Gründe haben. Beispielsweise eine
Registrierung vor dem Herunterladen erforderlich oder die
Weiterverteilung ist verboten. Wenn Sie einen Port
installieren wollen, der nicht auf
der CD-ROM enthalten ist, müssen Sie Online sein. Folgen
Sie bitte den Anweisungen des
nächsten Abschnitts.Ports vom Internet installierenDieser Abschnitt setzt voraus, dass Sie eine Verbindung
mit dem Internet haben. Haben Sie dies nicht, müssen Sie
eine CD-ROM Installation
durchführen oder das Distfile selber nach
/usr/ports/distfiles stellen.Das Installieren eines Ports vom Internet wird genauso
durchgeführt wie das Installieren von CD-ROM. Der einzige
Unterschied zwischen beiden ist, dass das Distfile des
Ports vom Internet heruntergeladen und nicht von der CD-ROM
gelesen wird.Die durchgeführten Schritte sind identisch:&prompt.root; make install
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
439860 bytes transferred in 18.0 seconds (23.90 kBps)
===> Extracting for lsof-4.57
...
[Ausgabe des Auspackens weggelassen]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure-Ausgabe weggelassen]
...
===> Building for lsof-4.57
...
[Ausgabe der Übersetzung weggelassen]
...
===> Installing for lsof-4.57
...
[Ausgabe der Installation weggelassen]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Wie Sie sehen können, besteht der einzige Unterschied in
der Zeile, die Ihnen sagt, woher das System den Quellcode
holt.Die Ports-Sammlung benutzt zum Herunterladen von Dateien
&man.fetch.3;, das Umgebungsvariablen wie
FTP_PASSIVE_MODE, FTP_PROXY und
FTP_PASSWORD berücksichtigt. Wenn Sie durch
eine Firewall geschützt werden, müssen Sie vielleicht
eine oder mehrere dieser Umgebungsvariablen setzen, oder einen FTP
oder HTTP Proxy verwenden. Eine Liste der unterstützten
Umgebungsvariablen finden Sie in &man.fetch.3;.Entfernen installierter PortsPortsentfernenDa Sie nun wissen, wie man einen Port installiert, wollen Sie
sicher auch wissen, wie man einen Port entfernt, für den
Fall, dass Sie versehentlich einen falschen installiert haben.
Nun wollen wir mal unser vorheriges Beispiel wieder
löschen (für alle die nicht aufgepasst haben, das
war lsof).
Wie beim Installieren wechseln Sie zuerst in das Verzeichnis des
Ports /usr/ports/sysutils/lsof. Nachdem Sie
das Verzeichnis gewechselt haben, können Sie
lsof mit make deinstall
entfernen:&prompt.root; cd /usr/ports/sysutils/lsof
&prompt.root; make deinstall
===> Deinstalling for lsof-4.57Das war leicht, Sie haben lsof
von Ihrem System entfernt. Möchten Sie den Port doch
wieder neu installieren, geben Sie
make reinstall im Verzeichnis
/usr/ports/sysutils/lsof ein.make deinstall und make
reinstall funktionieren nicht mehr, wenn Sie einmal
make clean ausgeführt haben. Wenn Sie
dennoch einen Port nach einem make clean
entfernen möchten, benutzen Sie &man.pkg.delete.1;
wie im Abschnitt Benutzen des
Paketsystems beschrieben.Nach der InstallationNach der Installation einer neuen Anwendung wollen Sie
wahrscheinlich die mitgelieferte Dokumentation lesen und die
Konfigurationsdateien der Anwendung anpassen. Wenn die Anwendung
ein Dæmon ist, sollten Sie sicherstellen, dass die
Anwendung beim Booten startet.Die einzelnen Schritte sind natürlich von Anwendung zu
Anwendung verschieden. Wenn Sie sich allerdings nach der Installation
einer Anwendung die Frage Was nun? stellen, helfen die
folgenden Hinweise vielleicht weiter.Finden Sie mit &man.pkg.info.1; heraus, welche Dateien die
Anwendung wo installiert hat. Wenn Sie beispielsweise gerade
die Version 1.0.0 von FooPackage installiert haben, zeigt Ihnen
das folgende Kommando alle installierten Dateien des
Pakets:&prompt.root; pkg_info -L foopackage-1.0.0 | lessAchten Sie besonders auf die Manualpages, die Sie in
man/ Verzeichnissen finden und auf
Konfigurationsdateien, die in etc/ abgelegt
werden. Manche Pakete enthalten in doc/
zusätzliche Dokumentation.Wenn Sie sich nicht sicher sind, welche Version einer
Anwendung Sie gerade installiert haben, können Sie mit dem
folgenden Kommando nach der Anwendung suchen:&prompt.root; pkg_info | grep foopackageDas Kommando zeigt alle installierten Pakete, deren
Paketname foopackage enthält.
Ersetzen Sie foopackage durch den
Namen der Anwendung, die Sie suchen.Nachdem Sie die Manualpages der Anwendung gefunden haben,
lesen Sie diese bitte mit &man.man.1;. Schauen Sie sich auch die
Beispiele für Konfigurationsdateien und die zusätzliche
Dokumentation, wenn es welche gibt, an.Wenn es für die Anwendung eine Webseite gibt, suchen
Sie dort nach zusätzlicher Dokumentation wie FAQs
(häufig gestellte Fragen). Wenn Sie die Adresse der Webseite
nicht kennen, versuchen Sie das folgende Kommando:&prompt.root; pkg_info foopackage-1.0.0Die Ausgabe enthält oft eine Zeile, die mit
WWW: beginnt und die URL der Webseite
enthält.Fehlersuche und -behebungDer folgende Abschnitt beschreibt einige einfache
Fehlerbehebungsmöglichkeiten beim Benutzen der Ports-Sammlung
und ein paar Fehlerbehandlungen, falls ein Port kaputt ist.Einige Fragen und AntwortenIch dachte hierbei ging es um Modems??!Ah, Sie müssen an die serielle Schnittstelle auf der
Rückseite Ihres Computers gedacht haben (engl.
port). Wir
benutzen hier Port als Ergebnis des
Portierens einer Anwendung von einem
Betriebssystem auf ein anderes.Was ist ein Patch?Ein Patch ist eine kleine Datei, die beschreibt, wie man
von einer Version einer Datei zu einer anderen kommt. Sie
enthält reinen Text und sagt im Prinzip Dinge wie
lösche Zeile 23,
füge diese zwei Zeilen hinter Zeile 468 an
oder ändere Zeile 197 hierzu. Patche werden
mit &man.diff.1; erstellt, daher werden die resultierenden
Dateien auch diffs genannt.TarballWorum gehts eigentlich bei diesen
Tarballs?Das ist eine Datei mit der Endung .tar
oder als Varianten mit .tar.gz,
.tar.Z, .tar.bz2,
oder auch .tgz.Vereinfacht ist das ein Verzeichnisbaum, welcher in eine
einzelne Datei (.tar) archiviert und
optional gepackt (.gz) wurde. Diese
Technik wurde ursprünglich für
Tape ARchives
benutzt (daher der Name tar), aber stellt
heute einen weit verbreiteten Weg da, im Internet Quellcode
zu verbreiten und zu verteilen.Sie können nachsehen, welche Dateien im Archiv
enthalten sind oder diese auspacken, indem Sie das Programm
&man.tar.1;, das Teil des FreeBSD Basissystems ist,
benutzen. Das sähe in etwa so aus:&prompt.user; tar tvzf foobar.tar.gz
&prompt.user; tar xzvf foobar.tar.gz
&prompt.user; tar tvf foobar.tar
&prompt.user; tar xvf foobar.tarPrüfsummeEine Prüfsumme?Das ist eine Zahl, die dadurch generiert wird, indem man
die ganzen Daten einer Datei aufaddiert. Ändert sich ein
Zeichen in dieser Datei, ist die Prüfsumme nicht mehr die
gleiche und ein einfacher Vergleich ermöglicht das
Erkennen des Unterschieds.Ich tat, was ihr zum Übersetzen von Ports von der
CD-ROM geschrieben habt und es funktionierte auch prima, bis ich
zum Port Kermit kam.&prompt.root; make install
>> cku190.tar.gz doesn't seem to exist on this system.
>> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.Warum kann die Datei nicht gefunden werden? Habe ich
eine kaputte CD-ROM?Wie im Abschnitt Installation von
CD-ROM erläutert, dürfen einige Ports wegen
Lizenz-Beschränkungen nicht auf CD-ROM veröffentlicht
werden. Kermit ist ein solches
Beispiel. Die Lizenz-Bestimmungen
verbieten uns das Brennen des Tarballs auf CD-ROM, leider
müssen Sie es sich von Hand aus dem Netz
herunterladen – sorry!Der Grund für die ganzen Fehlermeldungen liegt darin,
dass Sie zu diesem Zeitpunkt nicht mit dem Internet verbunden
waren. Haben Sie den Tarball von einer der
MASTER_SITES (aufgeführt im
Makefile) gezogen, können Sie die
Installation erneut starten.Das habe ich getan, aber als ich ihn in das Verzeichnis
/usr/ports/distfiles legen wollte, erhielt
ich eine Fehlermeldung bezüglich der Zugriffsrechte.Der Port-Mechanismus versucht heruntergeladene Tarballs in
/usr/ports/distfiles abzulegen. Dieses
Verzeichnis verweist aber oft auf ein Verzeichnis eines
Fileservers oder eine CD-ROM, die nur gelesen werden
können. Wenn dies der Fall ist, können Sie einen
anderen Ort zum Speichern der Tarballs angeben:&prompt.root; make DISTDIR=/Verzeichnis/mit/Schreibberechtigung installFunktioniert das Konzept der Ports nur, wenn alles in
/usr/ports abläuft? Mein
Systemadministrator sagt, dass ich alles unter
/u/people/guests/wurzburger haben
muss, aber das scheint nicht zu klappen.Die Variablen PORTSDIR und
PREFIX legen die Verzeichnisse fest, die das
Ports-System benutzt.&prompt.root; make PORTSDIR=/u/people/guests/wurzburger/ports installDer obige Befehl übersetzt den Port in
/u/people/guests/wurzburger/ports und
installiert alles unter /usr/local. Der
folgende Befehl kompiliert in /usr/ports
und installiert den Port in
/u/people/guests/wurzburger/local:&prompt.root; make PREFIX=/u/people/guests/wurzburger/local installSie können beide Variablen auch zusammen benutzen:&prompt.root; make PORTSDIR=../ports PREFIX=../local installDie Kommandozeile ist zu lang, um es hier komplett
wiederzugeben, aber Sie sollten die zugrunde liegende Idee
erkennen.imakeEinige Ports, welche &man.imake.1; (Teil des X Window
Systems) benutzen, funktionieren nicht gut mit
PREFIX und bestehen darauf, unter
/usr/X11R6 installiert zu werden. In
ähnlicher Weise verhalten sich einige Perl Ports, die
PREFIX ignorieren und sich in den Perl
Verzeichnisbaum installieren. Zu erreichen, dass solche
Ports PREFIX beachten, ist schwierig oder
sogar unmöglich.Wenn Sie keine Lust haben, dies jedes Mal zu tippen,
sollten Sie diese Variablen als Umgebungsvariablen setzen.
Lesen Sie die Manualpage Ihrer Shell, um zu erfahren, wie man
das anstellt.Ich habe keine FreeBSD CD-ROM, würde aber gerne die
Tarballs auf meinem Rechner liegen haben, damit ich nicht
jedes Mal auf das Herunterladen warten muss, wenn ich mal einen
Port installieren will. Gibt es einen Weg, alle auf einmal
zu holen?Um jeden einzelnen Tarball für die Ports-Sammlung zu
holen geben Sie ein:&prompt.root; cd /usr/ports
&prompt.root; make fetchFür alle Tarballs eines Ports-Verzeichnis:&prompt.root; cd /usr/ports/Verzeichnis
&prompt.root; make fetchund für nur einen Port – gut, das haben Sie sicher
schon erraten.Ich weiß, das es wohl schneller geht, wenn ich die
Tarballs von einem FreeBSD Spiegel in der Nähe hole. Kann
ich sagen, dass andere als in MASTER_SITES angegebene
Server genommen werden sollen?Ja. Zum Beispiel, wenn ftp.FreeBSD.org näher bei Ihnen
ist, als der in MASTER_SITES angegebene,
machen Sie das wie folgt:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchIch würde gerne vorher wissen, welche Dateien
make holen wird, bevor es das versucht.make fetch-list gibt aus, welche Dateien
für den Port benötigt werden.Gibt es einen Weg einen Port am Kompilieren zu hindern? Ich
möchte gerne vor der Installation etwas im Quellcode hacken.
Es ist aber etwas nervig, immer aufzupassen und im richtigen
Moment mit
CtrlC
abzubrechen.Die Eingabe von make extract erreicht,
dass der Port Quellcode nur geholt und entpackt wird.Ich versuche einen eigenen Port zu erstellen und will,
dass der Port vor dem Übersetzen anhält, damit
ich eine Chance habe zu sehen, ob meine Patches sauber
funktionieren. Gibt es etwas wie make
extract für Patches?Klar, make patch ist alles was Sie
wünschen. Sie werden wahrscheinlich die Variable
PATCH_DEBUG auch recht nützlich finden.
Ach ja, und vielen Dank für Ihre Bemühungen!Stimmt es, dass einige Compiler Fehler machen? Wie
kann ich sicher gehen, dass ich mit den richtigen
Einstellungen übersetze?Ja, in der Version 2.6.3 des gcc (diese
Version ist bei FreeBSD 2.1.0 und 2.1.5 dabei) kann die Option
fehlerhafte Ergebnisse liefern, sofern man
nicht auch die Option
benutzt. (Die meisten Ports benutzen
nicht). Sie sollten die Compiler-Optionen
etwa wie folgt spezifizieren können:&prompt.root; make CFLAGS='-O2 -fno-strength-reduce' installDie Compiler-Optionen können Sie auch in
/etc/make.conf angeben,
allerdings beachten das nicht alle Ports. Der sicherste Weg ist,
nach einem make configure in das Verzeichnis
mit dem Quellcode zu gehen und dort die
Makefiles von Hand zu
untersuchen. Das kann aber sehr mühselig werden, da es
oft sehr viele Unterverzeichnisse mit eigenen
Makefiles geben
kann.Die bei FreeBSD voreingestellten Compiler Optionen sind
recht konservativ, Sie sollten eigentlich keine Probleme
bekommen, wenn Sie diese nicht verändert haben.Das sind aber ganz schön viele Ports und es ist nicht
leicht, den einen zu finden, den ich gerade möchte. Gibt es
eine Liste der erhältlichen Ports?Schauen Sie in die Datei INDEX im
Verzeichnis /usr/ports. Sie können
auch die Ports-Sammlung nach einem Stichwort durchsuchen.
Wollen Sie zum Beispiel alle Ports finden, die mit der
Programmiersprache LISP zu tun haben, geben Sie ein:&prompt.user; cd /usr/ports
&prompt.user; make search key=lispAls ich den Port bla installieren
wollte, hört das System auf einmal mit dem Kompilieren auf
und fing an, den Port sülz zu
erstellen. Was ist hier los?Der Port bla braucht etwas aus dem
Port sülz – beispielsweise,
wenn bla Grafik benutzt, könnte der Port
sülz eine Bibliothek mit
nützlichen grafischen Routinen enthalten. Oder
sülz könnte ein Werkzeug sein, das zum
Übersetzen des Ports bla notwendig
ist. Wenn sülz einmal installiert ist,
sollte das System mit dem Bau von bla
fortfahren. Ich habe aus der Ports-Sammlung die
Anwendung grizzle installiert und nun
festgestellt, dass es reine Verschwendung von Plattenplatz
ist. Ich will ihn wieder löschen, weiß aber nicht
wohin der Port seine Dateien installiert hat. Tips?Alles kein Problem, tippen Sie einfach:&prompt.root; pkg_delete grizzle-6.5Sie können alternativ auch eingeben:&prompt.root; cd /usr/ports/somewhere/grizzle
&prompt.root; make deinstallMoment, man muss die Versionsnummer wissen, um das
Kommando benutzen zu können. Es wird aber nicht wirklich
erwartet, dass ich mich daran noch erinnere, oder?Nein, Sie finden diese Nummer durch folgende Eingabe
heraus:&prompt.root; pkg_info -a | grep 'grizzle*'
Information for grizzle-6.5:
grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up
arcade game.Die Versionsnummer finden Sie auch mit
pkg_info heraus, oder indem Sie
ls /var/db/pkg eingeben.Apropos Plattenplatz, die Ports-Sammlung scheint recht viel
Platz einzunehmen. Ist es gefährlich darin
Sachen zu löschen?Nun, wenn Sie Anwendungen installiert haben und sicher sind,
dass Sie den Quellcode nicht benötigen, gibt es
keinen Grund diesen herumliegen zu haben. Der sicherste Weg
aufzuräumen ist:&prompt.root; cd /usr/ports
&prompt.root; make cleanDas geht durch alle Ports-Verzeichnisse und löscht
für jeden Port alles bis auf das Gerüst.Dasselbe können Sie auch erreichen, ohne
rekursiv jedes Makefile aufzurufen. Die
work/ Verzeichnisse können Sie auch
mit dem folgenden Kommando löschen:
&prompt.root; find /usr/ports -depth -name work -exec rm -rf {} \;Das habe ich probiert, aber da liegen immer noch diese
Tarballs (oder wie die genannt werden) im Verzeichnis
distfiles herum. Darf ich die auch
löschen?Ja, wenn Sie mit denen fertig sind, können die auch
verschwinden. Man kann sie von Hand löschen oder das
Kommando make distclean benutzen.Ich finde es toll, tierisch viele Anwendungen zu haben und
damit rumzuspielen. Gibt es einen Weg alle Ports auf einmal
zu installieren?Machen Sie einfach:&prompt.root; cd /usr/ports
&prompt.root; make installVorsicht: Einige Ports könnten Dateien mit dem
gleichen Namen installieren. Wenn man zwei grafische Ports
installiert und beide eine Datei
/usr/local/bin/plot anlegen, haben Sie
ein Problem.Okay, das habe ich gemacht und da ich dachte, dass das
sicherlich ziemlich lange dauert, ging ich zu Bett. Als ich heute
morgen zum Computer kam, waren erst dreieinhalb Ports
installiert. Hat da etwas nicht geklappt?Nein, das Problem ist, dass es Ports gibt, die Ihnen
Fragen stellen, auf die wir die Antworten nicht für Sie
geben konnten (z.B. Drucken Sie auf Papier im A4 oder US
Letter Format?). In solchen Fällen muss
jemand da sein und die Fragen beantworten.Ich möchte aber nicht wirklich einen ganzen Tag damit
verbringen, auf den Monitor zu starren. Irgendeine bessere
Idee?Klar, bevor Sie zu Bett/zur Arbeit/in den Park gehen,
geben Sie ein:&prompt.root; cd /usr/ports
&prompt.root; make -DBATCH installDas installiert Ihnen alle Ports, die
keine Eingaben des Benutzers erfordern.
Die restlichen Ports installieren Sie, wenn Sie zurück
sind, mit dem Kommando:&prompt.root; cd /usr/ports
&prompt.root; make -DINTERACTIVE installAuf der Arbeit benutzen wir die Anwendung
frobble, die in der Ports-Sammlung ist. Wir
haben sie aber etwas auf unsere Bedürfnisse angepasst.
Können wir irgendwie ein eigenes Paket erstellen, so
dass wir die Anwendung leichter auf unsere Rechner
verteilen können?Kein Problem. Angenommen Sie wissen, wie Sie für Ihre
Anpassungen Patches erzeugen:&prompt.root; cd /usr/ports/somewhere/frobble
&prompt.root; make extract
&prompt.root; cd work/frobble-2.8
[Ihre patche einspielen]
&prompt.root; cd ../..
&prompt.root; make packageDiese Geschichte mit den Ports ist wirklich clever. Ich
habe keine Ahnung, wie ihr das hinbekommen habt. Was ist das
Geheimnis dahinter?Keine Geheimnisse. Sehen Sie einfach in die Dateien
bsd.port.mk und
bsd.port.subdir.mk im Verzeichnis
/usr/ports/Mk/.Lesern mit einer Aversion gegen komplizierte Shell-Skripten
wird geraten, dieses Verzeichnis nicht zu besuchen.Hilfe! Dieser Port ist kaputt!Stolpern Sie mal über einen Port, der bei Ihnen nicht
funktioniert, könnten Sie zum Beispiel Folgendes tun:Reparieren Sie ihn! Das
FreeBSD Porter's Handbook enthält eine detaillierte Beschreibung
des Portsystems. Damit sind Sie in der Lage, einen gelegentlich
kaputten Port zu reparieren oder einen eigenen Port zu
erstellen.Rummeckern – nur mittels E-Mail!
Senden Sie zuerst eine E-Mail an den Betreuer des Ports. Geben
Sie dazu make maintainer ein oder lesen Sie das
Makefile im Verzeichnis des Ports, um an
die E-Mail-Adresse zu kommen. Vergessen Sie nicht den Namen und
die Version des Ports (schicken Sie die Zeile mit
$FreeBSD: aus dem
Makefile)
und die Ausgabe bis zur Fehlermeldung mitzuschicken. Erhalten
Sie vom Betreuer keine Resonanz, können mit
&man.send-pr.1; einen Fehler-Report senden.Holen Sie sich das Paket von einem FTP-Server in Ihrer
Nähe. Die Basis Sammlung aller Pakete
liegt auf ftp.de.FreeBSD.org im
Verzeichnis packages.
Aber versuchen Sie zuerst einen Spiegel in
Ihrer Nähe! Benutzen Sie das Programm &man.pkg.add.1;, um
Pakete auf Ihrem Rechner zu installieren. Dies hat zudem den
Vorteil, dass es schneller geht.
diff --git a/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml b/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
index 3e322c704a..51f95bbbb6 100644
--- a/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
@@ -1,3474 +1,3490 @@
JimMockRestrukturiert, neu organisiert und aktualisiert von ThomasSchwarzkopfÜbersetzt von PPP und SLIPÜbersichtPPPSLIPUnter FreeBSD stehen verschiedene Möglichkeiten zur
Verfügung, um Computer miteinander zu verbinden. Der Aufbau
einer Netzwerk- oder Internetverbindung mit Hilfe eines Einwahlmodems
– für den eigenen oder für andere Rechner –
erfordert den Einsatz von PPP oder SLIP.Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen:Wie Sie User-PPP einrichten.Wie Sie Kernel-PPP einrichten.Was zu tun ist, um PPPoE (PPP over
Ethernet) einzurichten.Wie Sie PPPoA (PPP over
ATM) einrichten.Wie Sie einen SLIP-Client und -Server einrichten und
konfigurierenPPPUser-PPPPPPKernel-PPPPPPover EthernetBevor Sie dieses Kapitel lesen, sollten Sie:mit den grundlegenden Begriffen der Netzwerktechnik
vertraut sein.die Grundlagen und den Zweck einer Einwahlverbindung sowie
PPP und/oder SLIP kennen.Sie fragen sich vielleicht, worin denn der Hauptunterschied
zwischen User-PPP und Kernel-PPP liegt. Die Antwort ist einfach:
User-PPP verarbeitet die ein- und ausgehenden Daten im Userland,
statt im Kernel. Dies ist zwar aufwändig, im Hinblick auf
die Daten, die dadurch zwischen Kernel und Userland hin und her
kopiert werden müssen, doch es ermöglicht auch eine
PPP-Implementierung mit weitaus mehr Funktionen. User-PPP verwendet
das tun Device, um mit anderen Rechnern
zu kommunizieren, während Kernel-PPP hierfür das
ppp Device benutzt.In diesem Kapitel wird durchgängig die Bezeichnung PPP
verwendet, wenn auf User-PPP Bezug genommen wird. Ausnahmen werden
gemacht, wenn eine Unterscheidung gegenüber anderer PPP-Software,
wie z.B. pppd notwendig wird.
Soweit nichts anderes angegeben wird, sollten alle Befehle, die in
diesem Kapitel erklärt werden, als root
ausgeführt werden.TomRhodesAktualisiert und erweitert von BrianSomersUrsprünglich geschrieben von NikClaytonMit Beiträgen von DirkFrömbergPeterChildsUser-PPPUser-PPPVoraussetzungenDieses Dokument geht davon aus, dass Sie Folgendes zur
Verfügung haben:ISPPPPEinen Account bei einem Internet Service Provider (ISP),
zu dem Sie mit PPP eine Verbindung aufbauen können.Ein Modem oder ein anderes Gerät, das, richtig
konfiguriert und mit Ihrem Rechner verbunden, Ihnen die
Herstellung einer Verbindung zu Ihrem ISP erlaubt.Die Einwahlnummer(n) Ihres ISP.PAPCHAPUNIXLogin NamePasswortIhren Login-Namen und Ihr Passwort (entweder ein
reguläres Login/Passwort-Paar im UNIX-Stil oder
ein PAP bzw. CHAP Login/Passwort-Paar).NameserverDie IP-Adresse von einem oder mehreren Nameservern.
Üblicherweise werden Ihnen von Ihrem ISP zwei
IP-Adressen für diesen Zweck zur Verfügung gestellt.
Wenn Sie keine solche IP-Adresse von Ihrem
Provider bekommen haben, können Sie das Kommando
enable dns in der Datei
ppp.conf verwenden, um
ppp anzuweisen, den Nameserver
für Sie einzutragen. Diese Funktion setzt allerdings
voraus, dass Ihr ISP eine PPP-Implementierung verwendet,
die das Aushandeln eines Nameservers unterstützt.Die folgenden Informationen werden Ihnen möglicherweise
von Ihrem ISP zur Verfügung gestellt, sie sind aber nicht
zwingend erforderlich:Die Gateway IP-Adresse Ihres ISP. Als Gateway wird
der Computer bezeichnet, zu dem Sie eine Verbindung aufbauen.
Die IP-Adresse dieses Rechners wird als
default route eingetragen. Wenn Sie
diese Information nicht zur Verfügung haben, kann PPP so
konfiguriert werden, dass der PPP-Server Ihres ISP während
des Verbindungsaufbaus eine gültige Adresse
übermittelt.ppp bezieht sich mit
HISADDR auf diese IP-Adresse.Die Netzmaske, die Sie verwenden sollten. Falls Ihnen Ihr
ISP keine Netzmaske vorgegeben hat, können Sie
255.255.255.255 verwenden.feste IP-AdresseWenn Ihnen Ihr ISP eine statische IP-Adresse zur
Verfügung stellt, können Sie diese eintragen.
Andernfalls lassen wir uns einfach von der Gegenstelle
eine IP-Adresse zuweisen.Falls Ihnen die erforderlichen Informationen fehlen
sollten, nehmen Sie bitte Kontakt mit Ihrem ISP auf.Die Beispieldateien, die in diesem Kapitel dargestellt werden,
enthalten Zeilennummern. Die Nummerierung dient lediglich einer
leichteren Orientierung und sollte von Ihnen nicht in Ihre Dateien
übernommen werden. Richtiges Einrücken, durch
Tabulatoren und Leerzeichen, ist ebenfalls wichtig.Einrichten des tun-GerätsUnter normalen Umständen werden die meisten Anwender
nur ein tun Device benötigen
(/dev/tun0). Weiter unten werden wir
uns statt auf tun0 auch auf
tunN beziehen, wobei N
jedem möglichen weiteren Tunnel-Device Ihres Rechners
entspricht.Bei FreeBSD-Installationen, die &man.devfs.5; nicht aktiviert
haben (FreeBSD 4.X und frühere Versionen),
sollte überprüft werden, ob
tun0 vorhanden ist (Dies ist nicht
erforderlich, wenn &man.devfs.5; aktiviert ist, da in diesem Fall
Gerätedateien bei Bedarf erzeugt werden).Der einfachste Weg, um sicherzustellen, dass das
tun0 Device richtig konfiguriert ist,
besteht darin, das Device neu zu erzeugen. Dazu geben Sie
bitte Folgendes ein:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV tun0Wenn Sie 16 Tunnel-Devices im Kernel benötigen, werden Sie
diese erzeugen müssen. Sie können die Devices durch die
Ausführung folgender Befehle erstellen:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV tun15Überprüfung des ModemsWenn Sie den kernel neu konfiguriert
haben, kennen Sie das sio Gerät.
Verhält sich Ihr Modem wie ein normales
serielles Gerät, so müssen Sie
wahrscheinlich nur die Gerätedateien erzeugen.
Wechseln Sie dazu nach /dev und
führen das Skript MAKEDEV aus:&prompt.root; sh MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3Wenn Ihr Modem an sio1
angeschlossen ist (in DOS ist dieser Anschluss als
COM2 bekannt), ist das Device Ihres
Modems /dev/cuaa1.Manuelle VerbindungenEin Verbindungsaufbau zum Internet durch manuelle Steuerung
von ppp geht schnell, ist einfach und
stellt einen guten Weg dar, eine Verbindung auf Fehler hin
zu überprüfen oder einfach Informationen darüber
zu sammeln, wie Ihr ISP Verbindungen handhabt.
Lassen Sie uns PPP von der
Kommandozeile aus starten. Beachten Sie, dass in allen
Beispielen example
der Hostname der Maschine ist, auf der
PPP läuft. Sie starten
ppp, indem Sie einfach ppp
eingeben:&prompt.root; pppWir haben ppp nun gestartet.ppp ON example> set device /dev/cuaa1Wir geben das Device an, an das unser Modem angeschlossen ist.
In diesem Fall ist es cuaa1:ppp ON example> set speed 115200Wir geben die Verbindungsgeschwindigkeit an. Im Beispiel
verwenden wir 115200 kbpsppp ON example> enable dnsWir weisen ppp an, unseren
Resolver zu konfigurieren und in der Datei
/etc/resolv.conf Einträge für
den Nameserver hinzuzufügen. Falls ppp
unseren Hostnamen nicht bestimmen kann, geben wir diesen
später manuell an.ppp ON example> termWir wechseln in den Terminal-Modus, um
das Modem manuell kontrollieren zu können.
deflink: Entering terminal mode on /dev/cuaa1
type '~h' for helpat
OK
atdt123456789Sie verwenden at zur Initialisierung
Ihres Modems und dann atdt sowie die Nummer Ihres
ISP, um den Einwählprozess zu starten.CONNECTDies ist die Bestätigung, dass eine Verbindung aufgebaut
wurde. Falls wir Verbindungsprobleme bekommen, die nicht
mit der Hardware zusammenhängen, werden wir an dieser
Stelle ansetzen müssen, um eine Lösung zu finden.ISP Login:myusernameHier werden Sie nach einem Benutzernamen gefragt. Geben Sie
am Prompt den Namen ein, den Ihnen Ihr ISP
zur Verfügung gestellt hat.ISP Pass:mypasswordAn dieser Stelle müssen Sie das Passwort angeben, das
Ihnen von Ihrem ISP vorgegeben wurde. Das
Passwort wird, analog dem normalen Anmeldevorgang, auch hier
nicht angezeigt.Shell or PPP:pppAbhängig von Ihrem ISP, kann es sein,
dass dieser Prompt bei Ihnen gar nicht erscheint. Wir werden
hier gefragt, ob wir eine Shell beim Provider verwenden oder
ppp starten wollen. Weil wir eine
Internetverbindung aufbauen wollen, haben wir uns in diesem
Beispiel für ppp entschieden.Ppp ON example>Beachten Sie, dass sich in diesem Beispiel das erste
in einen Großbuchstaben verwandelt hat.
Dies zeigt, dass wir erfolgreich eine Verbindung
zu unserem ISP hergestellt haben.PPp ON example>An dieser Stelle haben wir uns erfolgreich bei unserem
ISP authentifiziert und warten darauf, dass
uns eine IP-Adresse zugewiesen wird.PPP ON example>Wir haben uns mit der Gegenstelle auf eine
IP-Adresse geeinigt und den Verbindungsaufbau
erfolgreich abgeschlossenPPP ON example> add default HISADDRHier geben wir unsere Standardroute an. Weil zu diesem
Zeitpunkt unsere einzige Verbindung zu unserer Gegenstelle besteht,
müssen wir dies tun, bevor wir Kontakt zu unserer Umwelt
aufnehmen können. Falls dies aufgrund bestehender Routen
nicht funktionieren sollte, können Sie ein Ausrufungszeichen
! vor setzen.
Sie können diese Standardroute aber auch vor dem
eigentlichen Verbindungsaufbau angeben und
PPP wird entsprechend eine neue Route
aushandeln.Wenn alles gut ging, sollten wir nun eine aktive
Internetverbindung haben, die wir mit
CTRLz
in den Hintergrund schicken können
Wenn sie feststellen, dass PPP wieder zu
ppp wird, ist die Verbindung abgebrochen.
Es ist gut dies zu wissen, weil dadurch der Verbindungsstatus
angezeigt wird. Große Ps zeigen an,
dass wir eine Verbindung zum ISP haben und
kleine ps zeigen an, dass
wir aus irgendeinem Grund die Verbindung verloren haben.
ppp hat nur diese beiden Zustände.Fehlersuche bei manuellen VerbindungenWie überall, können auch im Zusammenhang
mit PPP gelegentlich Probleme
auftreten. Falls ppp nicht mehr reagiert,
gibt es einige Dinge die wir probieren können.Wenn sie einen Direktanschluss haben und keine Verbindung
aufbauen können, schalten Sie die
Hardware-Flusssteuerung
CTS/RTS aus, indem Sie die Option
verwenden. Dies ist
zumeist dann der Fall, wenn Sie mit einem
PPP-fähigen Terminalserver
verbunden sind. Hier bleibt PPP
bei dem Versuch hängen, Daten über Ihre
Nachrichtenverbindung zu schicken, weil auf ein
CTS-Signal (Clear To Send
Signal) gewartet
wird, das nie kommt. Wenn Sie diese Option jedoch gebrauchen,
sollten Sie auch die Option
verwenden, die erforderlich sein kann, um bestimmte Hardware
zu kontrollieren, die auf die Übertragung bestimmter
Zeichen zwischen den Kommunikations-Endpunkten (zumeist
XON/XOFF) angewiesen ist. Die Manual-Seite &man.ppp.8;
bietet mehr Informationen zu dieser Option und ihrer
Verwendung.Wenn Sie ein älteres Modem haben, benötigen Sie
vielleicht die Option .
Standardmäßig wird keine Parität vorausgesetzt,
sie ist aber für die Fehlerprüfung bei älteren
Modems und bei bestimmten ISPs erforderlich.
Sie könnten diese Option für den
ISP Compuserve benötigen.PPP kehrt möglicherweise
nicht in den Befehlsmodus zurück, was normalerweise
auf einen Fehler bei der Aushandlung hinweist, wobei der
ISP wartet, dass Ihre Seite den
Aushandlungsprozess beginnt. Die Option ~p
zwingt ppp in diesem Fall damit zu beginnen, die
Konfigurationsinformationen zu senden.Wenn Sie nie einen Login-Prompt erhalten, müssen
Sie statt des im Beispiel gezeigten UNIX-Stils höchst
wahrscheinlich PAP oder
CHAP für die Authentifizierung
verwenden. Um PAP oder
CHAP zu verwenden, ergänzen Sie
PPP einfach um folgende Optionen,
bevor Sie in den Terminalmodus wechseln:ppp ON example> set authname myusernameHierbei sollte myusername
durch den Benutzernamen ersetzt werden, den Sie von Ihrem
ISP bekommen haben.ppp ON example> set authkey mypasswordmypassword sollten Sie
durch das Passwort ersetzen, das Ihnen Ihr ISP
gegeben hat.Wenn die Verbindung aufgebaut wird, Sie aber keine Rechner
unter ihrem Domänen-Namen erreichen können, versuchen
Sie, einen Rechner mit &man.ping.8; und seiner
IP-Adresse zu erreichen. Wenn 100% der Pakete
verloren gehen, ist es sehr wahrscheinlich, dass Ihnen
keine Standardroute zugewiesen wurde. Überprüfen Sie,
ob während des Verbindungsaufbaus die Option
gesetzt war. Wenn Sie zu
einer entfernten IP-Adresse eine Verbindung
aufbauen können, ist es möglich, dass die
Adresse eines Nameservers nicht in die Datei
/etc/resolv.conf eingetragen
wurde. Diese Datei sollte folgendermaßen aussehen:domain example.com
nameserver x.x.x.x
nameserver y.y.y.y Dabei sollten x.x.x.x und
y.y.y.y durch die
IP-Adresse des DNS-Servers Ihres
ISP ersetzt werden. Diese Information ist
Ihnen bei Vertragsabschluss mitgeteilt worden oder auch nicht, aber
ein Anruf bei Ihrem ISP kann hier Abhilfe
schaffen.Mit &man.syslog.3; können Sie Ihre
PPP-Verbindung protokollieren.
Fügen Sie einfach die folgende Zeile in
/etc/syslog.conf ein:
!ppp
*.* /var/log/ppp.logIn den meisten Fällen existiert diese Funktionalität
bereits.Automatische Konfiguration von
PPPPPPKonfigurationSowohl ppp als auch pppd
(die PPP-Implementierung auf Kernelebene) verwenden die
Konfigurationsdateien im Verzeichnis /etc/ppp.
Beispiele für User-PPP sind in
/usr/share/examples/ppp/ zu finden.Die Konfiguration von ppp erfordert,
je nach Ihren besonderen Bedingungen, die Bearbeitung
einiger Dateien. Was Sie in diese Dateien eintragen, hängt
unter anderem davon ab, ob Ihnen Ihr ISP eine statische
IP-Adresse (Sie verwenden immer dieselbe IP-Adresse,
die Ihnen einmal zugeteilt wurde) oder eine dynamische IP-Adresse
(Ihre IP-Adresse ändert sich bei jeder Verbindung
mit dem ISP) zugewiesen hat.PPP und statische IP-AdressenPPPmit fester IP-AdresseSie müssen die Konfigurationsdatei
/etc/ppp/ppp.conf bearbeiten. Sie sollte
so aussehen, wie in dem unten angegebenen Beispiel.Zeilen die mit einem : enden,
beginnen in der ersten Spalte (am Beginn der Zeile). Alle
anderen Zeilen sollten wie dargestellt durch Leerzeichen
oder Tabulatoren eingerückt werden. Die meisten
Informationen die Sie hier angeben müssen, kennen wir
bereits durch unsere oben beschriebene manuelle Einwahl.1 default:
2 set log Phase Chat LCP IPCP CCP tun command
3 ident user-ppp VERSION (built COMPILATIONDATE)
4 set device /dev/cuaa0
5 set speed 115200
6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8 set timeout 180
9 enable dns
10
11 provider:
12 set phone "(123) 456 7890"
13 set authname foo
14 set authkey bar
15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
16 set timeout 300
17 set ifaddr x.x.x.xy.y.y.y 255.255.255.255 0.0.0.0
18 add default HISADDRZeile 1:Gibt den Standardeintrag an. Befehle dieses
Eintrags werden automatisch ausgeführt, wenn
ppp läuft.Zeile 2:Schaltet die Loggingparameter ein. Wenn die
Verbindung zufriedenstellend funktioniert, können
Sie diese Zeile verkürzen:set log phase tunDies verhindert ein übermäßiges
Anwachsen der Logdateien.Zeile 3:Gibt PPP an, wie es sich gegenüber der
Gegenstelle identifizieren soll. PPP identifiziert
sich gegenüber der Gegenstelle, wenn es Schwierigkeiten
bei der Aushandlung und beim Aufbau der Verbindung gibt.
Dabei werden Informationen bereitgestellt, die dem
Administrator der Gegenstelle helfen
können, die Ursache der Probleme zu finden.Zeile 4:Gibt das Device an, an dem das Modem
angeschlossen ist.
COM1 entspricht
/dev/cuaa0 und
COM2 entspricht
/dev/cuaa1.Zeile 5:Legt die Geschwindigkeit fest, mit der Sie
die Verbindung betreiben möchten. Falls ein Wert
von 115200 nicht funktioniert (was aber bei jedem
einigermaßen neuen Modem
funktionieren sollte), versuchen Sie es stattdessen
mit 38400.Zeilen 6 & 7:PPPUser-PPPDie Zeichenfolge für die Einwahl. User-PPP
verwendet eine expect-send Syntax, ähnlich dem
&man.chat.8;-Programm. Weitere Informationen zu den
Eigenschaften dieser Sprache bietet die Manual-Seite.Beachten Sie, dass dieser Befehl aufgrund der
besseren Lesbarkeit auf der nächsten Zeile weitergeht.
Das kann für jeden Befehl in
ppp.conf gelten, wenn ``\''
das letzte Zeichen in einer Zeile ist.Zeile 8:Legt den Zeitrahmen fest, innerhalb dessen eine Reaktion
erfolgen muss. Der Standardwert liegt bei 180 Sekunden, so
dass diese Zeile lediglich einen kosmetischen Charakter
hat.Zeile 9:Weist PPP an, bei der Gegenstelle eine Bestätigung
der lokalen Resolvereinstellungen anzufordern. Wenn Sie
einen lokalen Nameserver betreiben, sollte diese Zeile
auskommentiert oder gelöscht werden.Zeile 10:Eine leere Zeile zur besseren Lesbarkeit. Leere Zeilen
werden von PPP ignoriert.Zeile 11:Bestimmt einen Provider, namens
provider. Wenn Sie hier den Namen Ihres
ISP einsetzen, können Sie später die Verbindung
mit aufbauen.Zeile 12: Gibt die Telefonnummer des Providers an. Mehrere
Telefonnummern können angegeben werden, indem Doppelpunkte
(:) oder Pipe-Zeichen
(|) als Trennzeichen verwendet werden.
Der Unterschied zwischen diesen beiden Trennzeichen ist in
&man.ppp.8; beschrieben.
Zusammenfassend: Wenn Sie die verschiedenen Nummern
abwechselnd verwenden möchten, sollten Sie die
Nummern durch einen Doppelpunkt trennen.
Wenn Sie immer die erste Nummer verwenden möchten und
die anderen nur zum Einsatz kommen sollen, wenn eine Einwahl
mit der ersten Telefonnummer nicht möglich ist, sollten
Sie das Pipe-Zeichen zur Trennung verwenden.
Wie im Beispiel, sollten Sie die gesamte Reihe der
Telefonnummern in Anführungszeichen setzen.Sie müssen die Telefonnummer in
Anführungszeichen (") setzen,
wenn Sie Leerzeichen in der Telefonnummer verwenden,
ansonsten rufen Sie einen Fehler hervor, der vielleicht
schwer zu finden ist.Zeilen 13 & 14:Gibt den Benutzernamen und das Passwort an. Wenn Sie
zur Verbindung einen Login-Prompt im UNIX-Stil verwenden,
bezieht sich der Befehl set login
mit den \U und \P Variablen auf diese Werte. Wenn Sie
zum Verbindungsaufbau PAP oder CHAP verwenden, werden
diese Werte zum Zeitpunkt der
Authentifizierung verwendet.Zeile 15:PAPCHAPWenn Sie PAP oder CHAP einsetzen, gibt es an
dieser Stelle keinen Login-Prompt, weshalb Sie diese
Zeile auskommentieren oder löschen sollten. Der
Abschnitt Authentifizierung
mit PAP und CHAP enthält hierzu weitere
Einzelheiten.Der Login-String hat die gleiche chat-ähnliche
Syntax, wie der Einwahlstring. Der String in diesem
Beispiel funktioniert mit einem ISP, dessen
Login-Session folgendermaßen aussieht:J. Random Provider
login: foo
password: bar
protocol: pppSie müssen dieses Skript noch an Ihre
eigenen Erfordernisse anpassen. Wenn Sie dieses Skript
zum ersten Mal schreiben, sollten Sie sicherstellen,
dass Sie chat-logging aktiviert haben,
damit Sie überprüfen zu können, ob
die Konversation zwischen Ihrem Rechner und dem Rechner
des Providers wie erwartet abläuft.Zeile 16:ZeitbeschränkungSetzt einen Zeitrahmen (in Sekunden), innerhalb
dessen eine Reaktion erfolgen muss. In diesem Fall,
wird die Verbindung nach 300 Sekunden automatisch
geschlossen, wenn keine Aktivität zu
verzeichnen ist. Wenn Sie keinen Zeitrahmen festlegen
wollen, nach dessen Überschreiten die Verbindung
geschlossen wird, können Sie diesen Wert auf 0
setzen oder die Kommandozeilen-Option
verwenden.Zeile 17:ISPGibt die IP-Adresse für das Interface an.
Der String x.x.x.x sollte
durch die IP-Adresse ersetzt werden, die Ihnen Ihr
Provider zugeteilt hat. Der String
y.y.y.y sollte durch die
IP-Adresse ersetzt werden, die Ihr ISP als Gateway
angegeben hat (das ist der Rechner, mit dem Ihr Rechner
eine Verbindung aufbaut). Wenn Ihnen Ihr ISP keine
Gateway Adresse zur Verfügung gestellt hat,
verwenden Sie hier einfach 10.0.0.2/0. Wenn Sie
eine erratene IP-Adresse verwenden
müssen, sollten Sie in der Datei
/etc/ppp/ppp.linkup einen
entsprechenden Eintrag machen. Folgen Sie dazu den
Anweisungen im Abschnitt PPP und dynamische
IP-Adressen. Wenn diese Zeile ausgelassen
wird, kann ppp nicht im
Modus betrieben werden.Zeile 18:Fügt eine Defaultroute für das Gateway Ihres
Providers hinzu. Das Wort HISADDR wird
dabei durch die in Zeile 9 angegebene Gateway
Adresse ersetzt. Wichtig ist, dass diese Zeile nach Zeile 9
erscheint, da andernfalls HISADDR
noch nicht initialisiert ist.Wenn Sie ppp nicht im
Modus betreiben, sollte diese Zeile in die Datei
ppp.linkup
verschoben werden.Wenn Sie eine statische IP-Adresse verwenden und ppp im
Modus läuft, ist es nicht notwendig,
einen Eintrag in die Datei ppp.linkup
hinzuzufügen. In diesem Fall hat ihre Routingtabelle
bereits die richtigen Einträge, bevor Sie die Verbindung
aufbauen. Sie möchten aber vielleicht einen Eintrag
hinzufügen, um ein Programm aufzurufen, nachdem die
Verbindung aufgebaut ist. Dies wird weiter unten am Beispiel
von Sendmail erklärt.Beispiele für Konfigurationsdateien finden Sie
im Verzeichnis /usr/share/examples/ppp/.PPP und dynamische IP-AdressenPPPmit dynamischen IP-AdressenIPCPWenn Ihnen Ihr ISP keine statische IP-Adresse zuteilt,
kann ppp so konfiguriert werden, dass die
lokale und die entfernte IP-Adresse beim Verbindungsaufbau
ausgehandelt werden. Dies geschieht, indem zunächst eine
IP-Adresse erraten wird, die von
ppp, unter Verwendung des IP
Configuration Protocol (IPCP) durch eine richtige ersetzt wird,
wenn die Verbindung aufgebaut ist. Die Konfiguration der Datei
ppp.conf entspricht derjenigen, die im
Abschnitt PPP und statische IP-
Adressen dargestellt wurde, jedoch mit folgender
Änderung:17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255Auch hier dient die Zeilennummerierung lediglich der
besseren Übersichtlichkeit. Einrückungen, von
mindestens einem Leerzeichen, sind allerdings erforderlich.Zeile 17:Die Zahl nach dem / Zeichen,
gibt die Anzahl der Bits der Adresse an, auf die ppp
besteht. Sie möchten vielleicht andere IP-Adressen
verwenden, die oben angegebenen werden aber immer
funktionieren.Das letzte Argument (0.0.0.0) weist
PPP an, den Verbindungsaufbau mit der Adresse 0.0.0.0 zu beginnen, statt 10.0.0.1 zu verwenden. Dies ist bei
einigen ISPs notwendig. Verwenden Sie nicht
0.0.0.0
als erstes Argument für set ifaddr,
da so verhindert wird, dass
PPP im Modus eine initiale Route
setzt.Wenn PPP nicht im Modus läuft,
müssen Sie die Datei/etc/ppp/ppp.linkup
editieren. ppp.linkup kommt zum Einsatz, wenn
eine Verbindung aufgebaut worden ist. Zu diesem Zeitpunkt hat
ppp die Interface Adressen vergeben und es ist
möglich, die Einträge in der Routingtabelle
hinzuzufügen:1 provider:
2 add default HISADDRZeile 1:Beim Aufbau einer Verbindung sucht ppp
in der Datei ppp.linkup nach einem
Eintrag. PPP geht dabei nach folgenden Regeln vor:
Suche zunächst nach der gleichen Bezeichnung,
die wir auch in der Datei ppp.conf
verwendet haben. Falls das nicht
funktioniert, suche nach einem Eintrag der IP-Adresse unseres
Gateways. Dieser Eintrag ist eine Bezeichnung im Stil von
IP-Adressen, die sich aus vier Oktetts zusammensetzt. Falls
immer noch kein passender Eintrag gefunden wurde, suche nach
dem Eintrag MYADDR.Zeile 2:Diese Zeile weist ppp an, eine
Defaultroute zu verwenden, die auf HISADDR
zeigt. HISADDR wird nach der
Aushandlung mit IPCP durch die IP-Adresse des
Gateways ersetzt.Die Dateien
/usr/share/examples/ppp/ppp.conf.sample
und /usr/share/examples/ppp/ppp.linkup.sample
bieten detaillierte Beispiele für pmdemand
Einträge.Annahme eingehender AnrufePPPeingehende Anrufe annehmenWenn Sie ppp auf einem Rechner,
der in ein LAN eingebunden ist, so konfigurieren, dass eingehende
Anrufe angenommen werden, müssen Sie entscheiden,
ob Pakete an das LAN weitergeleitet werden sollen. Wenn Sie das
möchten, sollten Sie an die Gegenstelle eine IP-Adresse aus
Ihrem lokalen Subnetz vergeben und den Befehl
enable proxy
in die Datei /etc/ppp/ppp.conf einfügen.
Außerdem sollte die Datei /etc/rc.conf
Folgendes enthalten:gateway_enable="YES"Welches getty?Der Abschnitt Einwählverbindungen
bietet eine gute Beschreibung, wie Einwählverbindungen unter
Verwendung von &man.getty.8; genutzt werden können.Eine Alternative zu getty ist mgetty,
eine raffiniertere Version von getty, die mit
Blick auf Einwählverbindungen entworfen wurde.Der Vorteil von mgetty ist,
dass es auf aktive Weise mit Modems spricht,
das heißt wenn ein Port in /etc/ttys
ausgeschaltet ist, wird Ihr Modem nicht auf Anrufe
reagieren.Spätere Versionen von mgetty (von
0.99beta aufwärts) unterstützen auch die automatische
Erkennung von PPP-Streams, was Ihren Clients den skriptlosen
Zugang zu Ihren Servern erlaubt.Der Abschnitt Mgetty und
AutoPPP bietet weitere Informationen zu
mgetty.PPP und RechteDer Befehl ppp muss normalerweise als
root ausgeführt werden. Wenn Sie
jedoch möchten, dass ppp im Server-Modus
auch von einem normalen Benutzer, wie unten beschrieben,
durch Aufruf von ppp
ausgeführt werden kann, müssen Sie
diesem Benutzer die Rechte erteilen, ppp
auszuführen, indem Sie ihn in der Datei
/etc/group der Gruppe
network hinzufügen.Sie werden ihm ebenfalls den Zugriff auf einen oder mehrere
Abschnitte der Konfigurationsdatei geben müssen, indem Sie
den allow Befehl verwenden:allow users fred maryWenn dieser Befehl im default
Abschnitt verwendet wird, erhalten die angegebenen Benutzer
vollständigen Zugriff.PPP-Shells für dynamische IP-AdressenPPP ShellsErzeugen Sie eine Datei mit dem Namen
/etc/ppp/ppp-shell, die Folgendes
enthält:#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`
if [ x$IDENT = xdialup ]; then
IDENT=`basename $TTY`
fi
echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"
exec /usr/sbin/ppp -direct $IDENTDieses Skript sollte ausführbar sein. Nun
erzeugen Sie einen symbolischen Link
ppp-dialup auf dieses Skript
mit folgendem Befehl:&prompt.root; ln -s ppp-shell /etc/ppp/ppp-dialupSie sollten dieses Skript als
Shell für alle Benutzer von
Einwählverbindungen verwenden. Dies ist ein Beispiel
aus der Datei /etc/password
für einen Benutzer namens pchilds,
der PPP für Einwählverbindungen verwenden kann
(Denken Sie daran, die Passwortdatei nicht direkt zu
editieren, sondern dafür den Befehl
vipw zu verwenden).pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialupErstellen Sie ein Verzeichnis /home/ppp,
das von allen Benutzern gelesen werden kann und die folgenden leeren
Dateien enthält:-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
-r--r--r-- 1 root wheel 0 May 27 02:22 .rhostsDies verhindert, dass /etc/motd
angezeigt wird.PPP-Shells für statische IP-AdressenPPP ShellsErstellen Sie die Datei ppp-shell
wie oben oben dargestellt. Erzeugen Sie nun für
jeden Account mit statischer IP-Adresse einen symbolischen
Link auf ppp-shell.Wenn Sie beispielsweise die drei Kunden,
fred, sam, und
mary haben, für die Sie Netzwerke
der Klasse C routen, schreiben Sie Folgendes:&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
&prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-maryJeder Einwählzugang dieser Kunden sollte den
oben erzeugten symbolischen Link als Shell haben
(mary's Shell
sollte also /etc/ppp/ppp-mary sein).Einrichten von ppp.conf für
dynamische IP-AdressenDie Datei /etc/ppp/ppp.conf sollte in
etwa wie folgt aussehen:default:
set debug phase lcp chat
set timeout 0
ttyd0:
set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
enable proxy
ttyd1:
set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
enable proxyDie Einrückungen sind wichtig.Der Abschnitt default: wird für
jede Sitzung geladen. Erstellen Sie für jede
Einwählverbindung, die Sie in der Datei
/etc/ttys ermöglicht haben, einen
Eintrag, wie oben für ttyd0: gezeigt.
Jede Verbindung sollte eine eigene IP-Adresse aus dem Pool
der Adressen bekommen, die sie für diese Benutzergruppe
reserviert haben.Einrichten von ppp.conf für
statische IP-AdressenZu dem bisher dargestellten Inhalt der Beispieldatei
/usr/share/examples/ppp/ppp.conf sollten
Sie einen Abschnitt für jeden Benutzer mit statisch
zugewiesener IP-Adresse hinzufügen. Wir werden nun
unser Beispiel mit den
Accounts fred, sam und
mary weiterführen.fred:
set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
sam:
set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
mary:
set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255Die Datei /etc/ppp/ppp.linkup sollte,
falls erforderlich, ebenfalls Routinginformationen für
jeden Benutzer mit statischer IP-Adresse enthalten. Die unten
dargestellte Zeile würde dem Klasse C Netzwerk 203.14.101.0 eine Route über die
PPP-Verbindung des Client hinzufügen.fred:
add 203.14.101.0 netmask 255.255.255.0 HISADDR
sam:
add 203.14.102.0 netmask 255.255.255.0 HISADDR
mary:
add 203.14.103.0 netmask 255.255.255.0 HISADDRMehr zu mgetty, AutoPPP
und MS-Erweiterungenmgetty und AutoPPPmgettyAutoPPPLCPWird mgetty mit der Option
AUTO_PPP konfiguriert und kompiliert,
kann mgetty die LCP Phase von PPP-Verbindungen
erkennen und automatisch eine ppp-Shell starten.
Da hierbei jedoch die Login/Passwort-Sequenz nicht
durchlaufen wird, ist es notwendig, Benutzer durch PAP
oder CHAP zu authentifizieren.In diesem Abschnitt wird davon ausgegangen, dass der
Benutzer eine Version von mgetty mit
der Option AUTO_PPP (v0.99beta oder
neuer) erfolgreich konfiguriert, kompiliert und
installiert hat.Stellen Sie sicher, dass die Datei
/usr/local/etc/mgetty+sendfax/login.config
Folgendes enthält:/AutoPPP/ - - /etc/ppp/ppp-pap-dialupHierdurch wird mgetty angewiesen,
das Skript ppp-pap-dialup für
die erkannten PPP-Verbindungen auszuführen.Erstellen Sie nun die Datei
/etc/ppp/ppp-pap-dialup mit folgendem
Inhalt (die Datei sollte ausführbar sein):#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENTErstellen Sie bitte für jede Einwählverbindung,
die Sie in /etc/ttys ermöglicht haben,
einen korrespondierenden Eintrag in der Datei
/etc/ppp/ppp.conf. Diese
Einträge können problemlos, mit den Definitionen
die wir weiter oben gemacht haben, koexistieren.pap:
enable pap
set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
enable proxyJeder Benutzer, der sich auf diese Weise anmeldet,
benötigt einen Benutzernamen und ein Passwort in der Datei
/etc/ppp/ppp.secret. Sie haben auch die
Möglichkeit, Benutzer mit Hilfe von PAP zu authentifizieren,
indem Sie der Datei /etc/password folgende
Option hinzufügen:enable passwdauthWenn Sie bestimmten Benutzern eine statische IP-Adresse
zuweisen möchten, können Sie diese als drittes
Argument in der Datei
/etc/ppp/ppp.secret angeben. In
/usr/share/examples/ppp/ppp.secret.sample
finden Sie hierfür Beispiele.MS-ErweiterungenDNSNetBIOSPPPErweiterungen von MicrosoftEs ist möglich PPP so zu konfigurieren, dass bei Bedarf
DNS und NetBIOS Nameserveradressen bereitgestellt werden.Um diese Erweiterungen für die PPP Version 1.x zu aktivieren,
sollte der entsprechende Abschnitt der Datei
/etc/ppp/ppp.conf um folgende Zeilen
ergänzt werden:enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5Für PPP Version 2 und höher:accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5Damit werden den Clients die primären und sekundären
Nameserveradressen sowie ein NetBIOS Nameserver-Host
mitgeteilt.In Version 2 und höher verwendet PPP die Werte, die
in /etc/resolv.conf zu finden sind, wenn
die Zeile set dns weggelassen wird.Authentifizierung durch PAP und CHAPPAPCHAPEinige ISPs haben ihr System so eingerichtet, dass der
Authentifizierungsteil eines Verbindungsaufbaus mit Hilfe von
PAP oder CHAP-Mechanismen durchgeführt wird. Wenn dies bei
Ihnen der Fall sein sollte, wird Ihnen Ihr ISP bei der Verbindung
keinen login:-Prompt präsentieren,
sondern sofort mit der Aushandlung der PPP-Verbindung
beginnen.PAP ist nicht so sicher wie CHAP, doch die Sicherheit ist
hierbei normalerweise kein Problem, da Passwörter, obgleich
von PAP im Klartext versandt, lediglich über die
serielle Verbindung verschickt werden. Es gibt für Cracker
wenig Möglichkeiten zu lauschen.Zurückkommend auf die Abschnitte
PPP und statische
IP-Adressen oder PPP und dynamische IP-Adressen
müssen folgende Veränderungen vorgenommen werden:7 set login
…
12 set authname MyUserName
13 set authkey MyPasswordZeile 7:Ihr ISP wird normalerweise nicht von Ihnen verlangen,
dass Sie sich am Server einloggen, wenn Sie PAP oder CHAP
verwenden. Sie müssen deshalb den String
set login deaktivieren.Zeile 12:Diese Zeile legt Ihren PAP/CHAP Benutzernamen fest. Sie
müssen den richtigen Wert für
MyUserName eingeben.Zeile 13:PasswortDiese Zeile legt Ihr PAP/CHAP Passwort fest. Sie
müssen den richtigen Wert für
MyPassword eingeben.
Sie können eine zusätzliche Zeile, wie etwa:15 accept PAPoder15 accept CHAPverwenden, um deutlich zu machen, dass dies
beabsichtigt ist, aber sowohl PAP wie auch CHAP als
standardmäßig akzeptiert werden.Veränderung Ihrer ppp
Konfiguration im laufenden BetriebEs ist möglich, dem Programm ppp
Befehle zu erteilen, während es im Hintergrund läuft.
Dazu ist jedoch die Einrichtung eines passenden Diagnose-Ports
erforderlich. Ergänzen Sie hierzu Ihre Konfigurationsdatei
um folgende Zeile:set server /var/run/ppp-tun%d DiagnosticPassword 0177Damit wird PPP angewiesen, auf den angegebenen
UNIX-Domainsocket zu hören und Clients nach dem angegebenen
Passwort zu fragen, bevor der Zugang Gewährt wird. Das
%d wird durch die Nummer des benutzten
tun-Devices ersetzt.Wenn ein Socket eingerichtet ist, kann das Programm
&man.pppctl.8; in Skripten verwendet werden, mit denen in das
laufende Programm eingegriffen wird.Interne NAT von PPP benutzenPPPNATPPP kann Network Address Translation (NAT) ohne Hilfe des
Kernels durchführen. Wenn Sie diese Funktion benutzen
wollen, fügen Sie die folgende Zeile in
/etc/ppp/ppp.conf ein:PPP has ability to use internal NAT without kernel diverting
capabilities. This functionality may be enabled by the following
line in /etc/ppp/ppp.conf:nat enable yesSie können NAT mit der Option
auf der Kommandozeile von PPP aktivieren. Weiterhin kann
NAT in /etc/rc.conf mit der Variablen
ppp_nat aktiviert werden. Dies ist auch die
Voreinstellung.Die nachstehende /etc/ppp/ppp.conf
benutzt NAT für bestimmte eingehende Verbindungen:nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http httpWenn Sie Verbindungen von außen überhaupt nicht
trauen, benutzen Sie die folgende Zeile:nat deny_incoming yesAbschließende SystemkonfigurationPPPKonfigurationSie haben ppp nun konfiguriert,
aber bevor PPP eingesetzt werden kann, gibt noch einige
weitere Dinge zu erledigen, die alle die Bearbeitung der
Datei /etc/rc.conf erfordern.Gehen Sie diese Datei von oben nach unten durch, und stellen Sie
als erstes sicher, dass die Zeile hostname=
vorhanden ist:hostname="foo.example.com"Wenn Ihnen Ihr ISP eine statische IP-Adresse und einen Namen
zugewiesen hat, ist es wahrscheinlich am besten, wenn Sie diesen
Namen als Hostnamen verwenden.Schauen Sie nach der Variable
network_interfaces. Wenn Sie Ihr System
so konfigurieren möchten, dass bei Bedarf
eine Verbindung zu Ihrem ISP aufgebaut wird, sollten Sie das Device
tun0 zu der Liste hinzufügen oder es
andernfalls entfernen.network_interfaces="lo0 tun0"
ifconfig_tun0=Die Variable ifconfig_tun0 sollte leer sein
und eine Datei namens /etc/start_if.tun0 sollte
erstellt werden. Diese Datei sollte die nachfolgende Zeile
enthalten:ppp -auto mysystemDieses Skript startet Ihren ppp-Dæmon im Automatik-Modus.
Es wird bei der Netzwerkkonfiguration ausgeführt.
Wenn Ihr Rechner als Gateway für ein LAN fungiert,
möchten Sie vielleicht auch die Option
verwenden. In der Manual-Seite sind
weitere Einzelheiten hierzu zu finden.Mit folgender Zeile in der Datei
/etc/rc.conf verhindern Sie den Start
eines Routerprogramms:router_enable="NO"routedEs ist wichtig, dass der routed Dæmon nicht
gestartet wird (was standardmäßig geschehen würde), da
routed dazu tendiert, die von
ppp erstellten Einträge der Standardroute
zu überschreiben.Es ist außerdem sinnvoll, darauf zu achten, dass die Zeile
sendmail_flags nicht die Option
enthält, da sendmail sonst ab und zu
die Netzwerkverbindung prüfen wird, was möglicherweise dazu
führt, dass sich Ihr Rechner einwählt. Sie können
hier Folgendes angeben:sendmail_flags="-bd"sendmailDer Nachteil dieser Lösung ist, dass Sie
sendmail nach jedem Aufbau einer
ppp-Verbindung auffordern müssen, die Mailwarteschlange
zu überprüfen, indem Sie Folgendes eingeben:&prompt.root; /usr/sbin/sendmail -qVielleicht möchten Sie den Befehl !bg
in der Datei ppp.linkup verwenden, um dies
zu automatisieren:1 provider:
2 delete ALL
3 add 0 0 HISADDR
4 !bg sendmail -bd -q30mSMTPWenn Sie dies nicht möchten, ist es möglich,
einen dfilter einzusetzen, um SMTP-Verkehr
zu blockieren. Weitere Einzelheiten hierzu finden Sie in den
Beispieldateien.Das Einzige, was nun noch zu tun bleibt, ist Ihren Rechner neu
zu starten.Nach dem Neustart können Sie entweder:&prompt.root; pppund danach dial provider eingeben,
um eine PPP-Sitzung zu starten, oder Sie geben:&prompt.root; ppp -auto providerein, um ppp bei Datenverkehr aus Ihrem
Netzwerk heraus, automatisch eine Verbindung herstellen
zu lassen (vorausgesetzt Sie haben kein
start_if.tun0 Skript erstellt).ZusammenfassungDie folgenden Schritte sind nötig, wenn ppp zum ersten Mal
eingerichtet werden soll:Clientseite:Stellen Sie sicher, dass das
tun Device in den Kernel
eingebaut ist.Vergewissern Sie sich, dass die Gerätedatei
tunX
im Verzeichnis /dev vorhanden ist.Bearbeiten Sie die Datei
/etc/ppp/ppp.conf. Das Beispiel
pmdemand sollte für die meisten
ISP ausreichen.Wenn Sie eine dynamische IP-Adresse haben, erstellen Sie
einen Eintrag in der Datei
/etc/ppp/ppp.linkup.Aktualisieren Sie die Datei
/etc/rc.conf.Erstellen Sie das Skript start_if.tun0,
wenn Sie einen bedarfgesteuerten Einwahlprozess
(demand dialing)
benötigen.Serverseite:Stellen Sie sicher, dass das
tun Device in den Kernel
eingebaut ist.Vergewissern Sie sich, dass die Gerätedatei
tunX
im Verzeichnis /dev vorhanden istErstellen Sie einen Eintrag in der Datei
/etc/passwd
(verwenden Sie dazu das Programm &man.vipw.8;).Erstellen Sie ein Profil im Heimatverzeichnis des
Benutzers, das
ppp -direct direct-server o.Ä.
ausführt.Bearbeiten Sie die Datei
/etc/ppp/ppp.conf. Das Beispiel
direct-server sollte ausreichen.Erzeugen Sie einen Eintrag in
/etc/ppp/ppp.linkup.Aktualisieren Sie die Datei
/etc/rc.conf.Gennady B.SorokopudTeile wurden ursprünglich beigetragen von RobertHuffKernel-PPPEinrichtung von Kernel-PPPPPPKernel-PPPBevor Sie PPP auf Ihrem Computer einrichten, sollten Sie
dafür sorgen, dass pppd im Verzeichnis
/usr/sbin vorhanden ist und
/etc/ppp existiert.pppd kann auf zweierlei Weise arbeiten:Als Client – Sie möchten
Ihren Rechner mit einem Netz verbinden, indem Sie eine
serielle PPP-Verbindung aufbauen.PPPServerAls Server – Ihr Rechner ist in
ein Netzwerk eingebunden und stellt die PPP-Verbindung
für andere Rechner im Netzwerk her.In beiden Fällen werden Sie eine Datei mit den
benötigten Optionen erstellen müssen
(/etc/ppp/options oder,
wenn mehr als ein Benutzer PPP verwendet,
~/.ppprc).Sie benötigen außerdem eine Software
(vorzugsweise kermit), mit der
Sie seriell/per Modem wählen und eine Verbindung zu dem
entfernten Host aufbauen können.TrevRoydhouseBasierend auf Informationen von Verwendung von pppd als ClientPPPClientCiscoDie folgende Datei /etc/ppp/options
kann für einen Verbindungsaufbau mit PPP zu einem Cisco
Terminalserver verwendet werden.crtscts # enable hardware flow control
modem # modem control line
noipdefault # remote PPP server must supply your IP address.
# if the remote host doesn't send your IP during IPCP
# negotiation , remove this option
passive # wait for LCP packets
domain ppp.foo.com # put your domain name here
:<remote_ip> # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to <local_ip>:<remote_ip>
defaultroute # put this if you want that PPP server will be your
# default routerUm eine Verbindung herzustellen, sollten Sie:kermitModemMit kermit (oder einem anderen Modemprogramm) den
entfernten Host anwählen und Ihren Benutzernamen sowie
Ihr Passwort (oder was sonst nötig ist, um PPP
auf dem entfernten Host zu aktivieren)
eingeben.kermit beenden (ohne die Verbindung abzubrechen).Folgendes eingeben:&prompt.root; /usr/src/usr.sbin/pppd.new/pppd /dev/tty0119200Achten Sie darauf, dass sie eine geeignete Geschwindigkeit
wählen und das richtige Device verwenden.Nun ist Ihr Computer mit Hilfe von PPP verbunden. Wenn
die Verbindung nicht funktionieren sollte, können Sie
die Option in die Datei
/etc/ppp/options eintragen und die Ausgaben
auf der Konsole beobachten, um die Fehler zu finden.Das folgende Skript /etc/ppp/pppup
führt alle 3 Schritte automatisch aus:#!/bin/sh
ps ax |grep pppd |grep -v grep
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.dial
pppd /dev/tty01 19200kermit/etc/ppp/kermit.dial ist ein kermit-Skript
das den Einwählvorgang und alle notwendigen Autorisationen auf
dem entfernten Host durchführt (ein Beispiel für ein
solches Skript ist im Anhang zu diesem Dokument zu finden).Verwenden Sie das folgende Skript
/etc/ppp/pppdown, um die PPP-Verbindung
abzubrechen:#!/bin/sh
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ X${pid} != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill -TERM ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
/sbin/ifconfig ppp0 down
/sbin/ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.hup
/etc/ppp/ppptestPrüfen Sie, ob PPP immer noch läuft, indem Sie
/usr/etc/ppp/ppptest ausführen.
Dieses Skript sollte folgendermaßen aussehen:#!/bin/sh
pid=`ps ax| grep pppd |grep -v grep|awk '{print $1;}'`
if [ X${pid} != "X" ] ; then
echo 'pppd running: PID=' ${pid-NONE}
else
echo 'No pppd running.'
fi
set -x
netstat -n -I ppp0
ifconfig ppp0Um die Modemverbindung abzubrechen, können Sie das Skript
/etc/ppp/kermit.hup verwenden, das Folgendes
enthalten sollte:set line /dev/tty01 ; put your modem device here
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
echo \13
exitHier ist eine alternative Methode, bei der chat
an Stelle von kermit eingesetzt wird.Die folgenden beiden Dateien reichen aus, um eine
pppd Verbindung herzustellen./etc/ppp/options:/dev/cuaa1 115200
crtscts # enable hardware flow control
modem # modem control line
connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
noipdefault # remote PPP serve must supply your IP address.
# if the remote host doesn't send your IP during
# IPCP negotiation, remove this option
passive # wait for LCP packets
domain <your.domain> # put your domain name here
: # put the IP of remote PPP host here
# it will be used to route packets via PPP link
# if you didn't specified the noipdefault option
# change this line to <local_ip>:<remote_ip>
defaultroute # put this if you want that PPP server will be
# your default router/etc/ppp/login.chat.script:Die folgenden Angaben sollten in einer Zeile stehen.ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<phone.number>
CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <login-id>
TIMEOUT 5 sword: <password>Wenn diese Dateien richtig installiert und modifiziert sind,
müssen Sie pppd, nur noch wie folgt
starten:&prompt.root; pppdVerwendung von pppd als Server/etc/ppp/options sollte etwa Folgendes
enthalten:crtscts # Hardware flow control
netmask 255.255.255.0 # netmask ( not required )
192.114.208.20:192.114.208.165 # ip's of local and remote hosts
# local ip must be different from one
# you assigned to the ethernet ( or other )
# interface on your machine.
# remote IP is ip address that will be
# assigned to the remote machine
domain ppp.foo.com # your domain
passive # wait for LCP
modem # modem lineDas folgende Skript /etc/ppp/pppserv
lässt pppd als Server zu arbeiten:#!/bin/sh
ps ax |grep pppd |grep -v grep
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
# reset ppp interface
ifconfig ppp0 down
ifconfig ppp0 delete
# enable autoanswer mode
kermit -y /etc/ppp/kermit.ans
# run ppp
pppd /dev/tty01 19200Verwenden Sie das Skript/etc/ppp/pppservdown,
um den Server zu beenden:#!/bin/sh
ps ax |grep pppd |grep -v grep
pid=`ps ax |grep pppd |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing pppd, PID=' ${pid}
kill ${pid}
fi
ps ax |grep kermit |grep -v grep
pid=`ps ax |grep kermit |grep -v grep|awk '{print $1;}'`
if [ "X${pid}" != "X" ] ; then
echo 'killing kermit, PID=' ${pid}
kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.noansMit dem kermit-Skript
(/etc/ppp/kermit.ans) lässt sich
die Funktion Ihres Modems, automatisch zu antworten, ein- bzw.
ausschalten. Es sollte folgendermaßen aussehen:set line /dev/tty01
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
pau 1
out +++
inp 5 OK
out ATH0\13
inp 5 OK
echo \13
out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable
; autoanswer mod
inp 5 OK
echo \13
exitEin Skript namens /etc/ppp/kermit.dial wird
für die Einwahl und Authentifizierung am entfernten Host verwendet.
Sie müssen es noch an Ihre lokalen Gegebenheiten anpassen.
Geben Sie in diesem Skript Ihren Benutzernamen und Ihr Passwort ein.
In Abhängigkeit von der Reaktion Ihres Modems und des
entfernten Hosts, werden Sie auch noch die input
Anweisungen verändern müssen.;
; put the com line attached to the modem here:
;
set line /dev/tty01
;
; put the modem speed here:
;
set speed 19200
set file type binary ; full 8 bit file xfer
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
set modem hayes
set dial hangup off
set carrier auto ; Then SET CARRIER if necessary,
set dial display on ; Then SET DIAL if necessary,
set input echo on
set input timeout proceed
set input case ignore
def \%x 0 ; login prompt counter
goto slhup
:slcmd ; put the modem in command mode
echo Put the modem in command mode.
clear ; Clear unread characters from input buffer
pause 1
output +++ ; hayes escape sequence
input 1 OK\13\10 ; wait for OK
if success goto slhup
output \13
pause 1
output at\13
input 1 OK\13\10
if fail goto slcmd ; if modem doesn't answer OK, try again
:slhup ; hang up the phone
clear ; Clear unread characters from input buffer
pause 1
echo Hanging up the phone.
output ath0\13 ; hayes command for on hook
input 2 OK\13\10
if fail goto slcmd ; if no OK answer, put modem in command mode
:sldial ; dial the number
pause 1
echo Dialing.
output atdt9,550311\13\10 ; put phone number here
assign \%x 0 ; zero the time counter
:look
clear ; Clear unread characters from input buffer
increment \%x ; Count the seconds
input 1 {CONNECT }
if success goto sllogin
reinput 1 {NO CARRIER\13\10}
if success goto sldial
reinput 1 {NO DIALTONE\13\10}
if success goto slnodial
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 60 goto look
else goto slhup
:sllogin ; login
assign \%x 0 ; zero the time counter
pause 1
echo Looking for login prompt.
:slloop
increment \%x ; Count the seconds
clear ; Clear unread characters from input buffer
output \13
;
; put your expected login prompt here:
;
input 1 {Username: }
if success goto sluid
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 10 goto slloop ; try 10 times to get a login prompt
else goto slhup ; hang up and start again if 10 failures
:sluid
;
; put your userid here:
;
output ppp-login\13
input 1 {Password: }
;
; put your password here:
;
output ppp-password\13
input 1 {Entering SLIP mode.}
echo
quit
:slnodial
echo \7No dialtone. Check the telephone line!\7
exit 1
; local variables:
; mode: csh
; comment-start: "; "
; comment-start-skip: "; "
; end:JimMockBeigetragen (durch http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) von PPP over Ethernet (PPPoE)PPPover EthernetPPPoEPPP, over EthernetDieser Abschnitt beschreibt, wie Sie PPP over Ethernet
(PPPoE) einrichten.Konfiguration des KernelsEine besondere Kernelkonfiguration ist für PPPoE nicht
mehr erforderlich. Sofern die notwendige Netgraph Unterstützung
nicht in den Kernel eingebaut wurde, wird diese von
ppp dynamisch geladen.Einrichtung von ppp.confDies hier ist ein Beispiel einer funktionierenden
ppp.conf:default:
set log Phase tun command # you can add more detailed logging if you wish
set ifaddr 10.0.0.1/0 10.0.0.2/0
name_of_service_provider:
set device PPPoE:xl1 # replace xl1 with your ethernet device
set authname YOURLOGINNAME
set authkey YOURPASSWORD
set dial
set login
add default HISADDRPPP ausführenAls root, geben Sie ein:&prompt.root; ppp -ddial name_of_service_providerPPP beim Systemstart
ausführenFügen Sie Folgendes in Ihre Datei
/etc/rc.conf ein:ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"Verwendung einer PPPoE-Dienstbezeichnung (service tag)Manchmal kann es notwendig sein, eine Dienstbezeichnung
(service tag) zu verwenden, um
eine Verbindung aufzubauen.
Dienstbezeichnungen werden eingesetzt, um zwischen verschiedenen
PPPoE-Servern unterscheiden zu können, die einem
bestehenden Netzwerk zugeteilt sind.Die erforderlichen Dienstbezeichnungen sollten in der
Dokumentation, zu finden sein, die Ihnen Ihr ISP zur Verfügung
gestellt hat. Wenn Sie diese Informationen dort nicht finden,
fragen Sie beim technischen Kundendienst Ihres ISP danach.Als letzte Möglichkeit, bleibt die Methode, die von
dem Programm Roaring Penguin PPPoE
vorgeschlagen wird, das in der Ports-Sammlung zu finden ist. Bedenken
Sie aber, dass dadurch Daten Ihres Modems gelöscht werden
können, so dass es nicht mehr benutzt werden kann.
Überlegen Sie also genau, ob Sie dies machen wollen.
Installieren Sie einfach das Programm, das Ihnen Ihr Provider
zusammen mit dem Modem geliefert hat. Dann gehen Sie in das
System Menü dieses Programms. Der Name
Ihres Profils, sollte in der Liste aufgeführt sein.
Normalerweise ist dies ISP.Der Name des Profils (service tag)
wird im Eintrag für
die PPPoE-Konfiguration in der Datei ppp.conf
verwendet, als der Teil des Befehls
set device (die manpage &man.ppp.8;
enthält Einzelheiten hierzu), der den Provider angibt.
Dieser Eintrag sollte folgendermaßen aussehen:set device PPPoE:xl1:ISPVergessen Sie nicht, statt xl1
das richtige Device Ihrer Netzwerkkarte anzugeben.Denken sie auch daran, ISP
durch das Profil, das Sie oben gefunden haben zu ersetzen.Weitere Informationen bieten:Nutzung von T-DSL und T-Online mit
FreeBSD von Udo ErdelhoffCheaper Broadband with FreeBSD on
DSL von Renaud Waldura.PPPoE mit einem 3Com HomeConnect ADSL Modem Dual LinkDieses Modem folgt nicht dem RFC 2516
(A Method for transmitting PPP over Ethernet
(PPPoE), verfasst von L. Mamakos, K. Lidl, J. Evarts,
D. Carrel, D. Simone, und R. Wheeler). Stattdessen wurden andere
Pakettyp-Codes für die Ethernet Frames verwendet.
Bitte beschweren Sie sich unter 3Com, wenn Sie
der Ansicht sind, dass dieses Modem die PPPoE-Spezifikation einhalten
sollte.Um FreeBSD in die Lage zu versetzen, mit diesem Gerät zu
kommunizieren, muss ein sysctl Befehl angegeben werden. Dies kann
beim Systemstart automatisch geschehen, indem die Datei
/etc/sysctl.conf angepasst wird:net.graph.nonstandard_pppoe=1oder, wenn der Befehl unmittelbar wirksam werden soll, durch
sysctl net.graph.nonstandard_pppoe=1.Da hiermit eine systemweit gültige Einstellung vorgenommen
wird, ist es nicht möglich, gleichzeitig mit einem normalen
PPPoE-Client oder Server und einem 3Com HomeConnect ADSL Modem
zu kommunizieren.PPP over ATM (PPPoA)PPPover ATMPPPoAPPP, over ATMNachfolgend wird beschrieben, wie PPP over ATM (PPPoA)
eingerichtet wird. PPPoA ist vor allem unter europäischen
DSL-Providern populär.
- Der Einsatz von PPPoA mit dem Alcatel Speedtouch USB
+ Der Einsatz von PPPoA mit dem Alcatel SpeedTouch USBPPPoA-Unterstützung für dieses Gerät ist
unter FreeBSD als Port verfügbar, da die Firmware unter Alcatels
Lizenzvereinbarung vertrieben wird und deshalb nicht
mit dem FreeBSD-Basissystem frei verteilt werden kann.Um die Software zu installieren, verwenden Sie einfach die Ports-Sammlung. Installieren Sie den Port
net/pppoa und folgen Sie den dabei
angegebenen Instruktionen.Die Verwendung von mpdSie können mpd verwenden,
- um zu einer Reihe von Diensten, insbesondere pptp-Diensten eine
+ um zu einer Reihe von Diensten, insbesondere PPTP-Diensten eine
Verbindung herzustellen. Sie finden
mpd in der Ports-Sammlung unter
- net/mpd.
+ net/mpd. Viele ADSL Modems,
+ wie das Alcatel SpeedTouch Home, sind auf einen PPTP-Tunnel
+ zwischen dem Modem und dem Rechner angewiesen.
Zuerst müssen Sie den Port installieren, um danach
mpd entsprechend Ihren Anforderungen
und den Vorgaben Ihres Providers konfigurieren zu können. Der
Port installiert auch einige
gut dokumentierte Beispielkonfigurationsdateien in
PREFIX/etc/mpd/.
Beachten Sie, dass PREFIX hier das Verzeichnis
angibt, in das Ihre Ports installiert werden. Standardmäßig
ist dies das Verzeichnis /usr/local/.
Ein kompletter Leitfaden zur Konfiguration von
mpd ist im HTML-Format verfügbar,
sobald der Port installiert ist. Dieser ist in
PREFIX/share/mpd/
zu finden. Hier ist eine Beispielkonfiguration, um mit
mpd eine Verbindung zu einem
ADSL-Dienst aufzubauen. Die Konfiguration ist auf zwei Dateien
verteilt. Zunächst die Datei
mpd.conf:default:
load adsl
adsl:
new -i ng0 adsl adsl
set bundle authname username
set bundle password password
set bundle disable multilink
- set link no pap actcomp protocomp
+ set link no pap acfcomp protocomp
set link disable chap
set link accept chap
set link keep-alive 30 10
set ipcp no vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface route default
set iface disable on-demand
set iface enable proxy-arp
set iface idle 0
openDer Benutzername, den Sie zur Authentifizierung bei
Ihrem ISP verwenden.Das Passwort, das Sie zur Authentifizierung bei
Ihrem ISP verwenden.Die Datei mpd.links enthält
Informationen über die Verbindung(en), die Sie aufbauen
möchten. Eine Beispieldatei mpd.links,
die das vorige Beispiel ergänzt, wird unten
angegeben:adsl:
set link type pptp
set pptp mode active
set pptp enable originate incoming outcall
- set pptp self 10.0.0.140
- set pptp peer 10.0.0.138
+ set pptp self 10.0.0.1
+ set pptp peer 10.0.0.138
+
+
+
+ Die IP-Adresse des &os;-Rechners von dem aus Sie
+ mpd verwenden.
+
+
+ Die IP-Adresse des ADSL-Modems.
+ Das Alcatel SpeedTouch Home hat die Adresse
+ 10.0.0.138 voreingestellt.
+
+ Ein Verbindungsaufbau kann einfach durch Eingabe des folgenden
Befehls als root gestartet werden:&prompt.root; mpd -badslSie können sich den Status der Verbindung durch folgenden Befehl
anzeigen lassen:&prompt.user; ifconfig ng0
-: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
+ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffffDie Verwendung von mpd ist der
empfehlenswerteste Weg, um mit &os; eine Verbindung zu
einem ADSL-Dienst aufzubauen.Die Verwendung von pptpclientEs ist außerdem möglich, mit FreeBSD eine
Verbindung zu anderen PPPoA-Diensten aufzubauen. Dazu wird
net/pptpclient verwendet.Um mit net/pptpclient eine
eine Verbindung zu einem DSL-Dienst aufbauen zu können,
müssen Sie den entsprechenden Port bzw. das Paket installieren
und die Datei /etc/ppp/ppp.conf bearbeiten.
Sie müssen root sein, um diese Schritte
durchführen zu können. Eine Beispieldatei für
ppp.conf ist weiter unten angegeben.
Weitere Informationen zu den Optionen von ppp.conf
bietet die Manual-Seite ppp
&man.ppp.8;:adsl:
set log phase chat lcp ipcp ccp tun command
set timeout 0
enable dns
set authname username
set authkey password
set ifaddr 0 0
add default HISADDRDer Benutzername für den Zugang zu den Diensten
Ihres ISP.Das Passwort für Ihren Account.Weil Sie Ihr Passwort in der Datei
ppp.conf in Klartext angeben müssen,
sollten Sie sicherstellen, dass niemand den Inhalt dieser Datei
lesen kann. Die folgende Reihe von Befehlen stellt sicher,
dass die Datei nur von root lesbar ist.
Zusätzliche Informationen bieten die Manual-Seiten
&man.chmod.1; und &man.chown.8;:&prompt.root; chown root:wheel /etc/ppp/ppp.conf
&prompt.root; chmod 600 /etc/ppp/ppp.confDies wird einen Tunnel für eine PPP-Session zu Ihrem
DSL-Router öffnen. Ethernet DSL-Modems haben eine
vorkonfigurierte LAN IP-Adresse, mit der Sie eine Verbindung
- aufbauen. Im Falle des Alcatel Speedtouch Home handelt es sich
+ aufbauen. Im Falle des Alcatel SpeedTouch Home handelt es sich
dabei um die Adresse 10.0.0.138.
In der Dokumentation Ihres Routers sollte angegeben sein, welche
Adresse Ihr Gerät verwendet. Um den Tunnel zu öffnen
und eine ppp-Session zu starten, führen
Sie bitte folgendes Kommando aus:&prompt.root; pptp addressispVielleicht möchten Sie ein kaufmännisches Und
(&) an das Ende oben angegebenen Kommandos
anfügen, da pptp sonst den
Prompt nicht zurückgibt.Ein virtuelles Tunnel-Device tun
wird für das Zusammenspiel der Prozesse
pptp und ppp
geschaffen. Wenn Sie den Prompt zurückerhalten haben
oder der pptp-Prozess das Vorliegen
einer Verbindung bestätigt, können Sie den Tunnel
folgendermaßen überprüfen:&prompt.user; ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
Opened by PID 918Wenn Sie nicht in der Lage sein sollten eine Verbindung aufzubauen,
prüfen Sie die Konfiguration Ihres Routers, den
Sie normalerweise per telnet oder
mit einem Web-Browser erreichen können. Falls dennoch keine
Verbindung zustande kommt, sollten Sie die Ausgabe des Befehls
pptp und den Inhalt der
ppp-Logdatei,
/var/log/ppp.log auf Hinweise durchsehen.SatoshiAsamiUrsprünglich beigetragen von GuyHelmerMit Beiträgen von PieroSeriniSLIPSLIPEinrichtung eines SLIP-ClientsSLIPClientIm Folgenden wird ein Weg beschrieben, SLIP auf einer
FreeBSD Maschine für ein Netzwerk mit festen Hostnamen
einzurichten. Bei einer dynamischen Zuweisung des Hostnamens
(das heißt wenn sich Ihre Adresse bei jeder Einwahl ändert)
wird die Einrichtung wahrscheinlich etwas komplexer aussehen.Bestimmen Sie zuerst, an welcher seriellen Schnittstelle Ihr Modem
angeschlossen ist. Viele Leute erzeugen einen symbolischen Link,
wie etwa /dev/modem, der auf den
wirklichen Gerätenamen /dev/cuaaN
verweist. Damit ist es Ihnen möglich,
vom eigentlichen Gerätenamen zu abstrahieren, sollten Sie
das Modem einmal an eine andere Schnittstelle anschließen
müssen. Es kann ziemlich umständlich sein, wenn Sie
eine viele Dateien in /etc und
.kermrc-Dateien, die über
das ganze System verstreut sind, anpassen müssen!/dev/cuaa0 ist
COM1, cuaa1 ist
COM2, etc.Stellen Sie sicher, dass Folgendes in Ihrer
Kernelkonfigurationsdatei steht:pseudo-device sl 1Dieses pseudo-device ist im GENERIC Kernel
enthalten. Falls es von Ihnen nicht gelöscht wurde, sollten
Sie hier kein Problem haben.Dinge, die Sie nur einmal erledigen müssenTragen Sie Ihren lokalen Rechner, das Gateway, sowie
die Nameserver in Ihre Datei /etc/hosts
ein. Diese Datei sieht bei mir so aus:127.0.0.1 localhost loghost
136.152.64.181 water.CS.Example.EDU water.CS water
136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway
128.32.136.9 ns1.Example.EDU ns1
128.32.136.12 ns2.Example.EDU ns2Vergewissern Sie sich, dass in der Datei
/etc/host.conf
vor steht, wenn
Sie ein System vor FreeBSD 5.0 verwenden. Ab
FreeBSD 5.0 wird die Datei
/etc/nsswitch.conf verwendet, in deren
-Zeile vor
stehen sollte. Ohne diese Reihenfolge
könnten lustige Dinge passieren.Editieren Sie die Datei
/etc/rc.conf.Ihren Hostnamen geben Sie an, indem Sie folgende Zeile
bearbeiten:hostname="myname.my.domain"Hier sollte der vollständige Internethostname
Ihres Rechners angegeben werden.Fügen Sie sl0
zur Liste der Netzwerkinterfaces hinzu, indem Sie die
folgende Zeile abändern:network_interfaces="lo0"wird zu:network_interfaces="lo0 sl0"Legen Sie die Startwerte von sl0 fest, indem Sie
die Zeile ergänzen:ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"DefaultrouteDen Defaultrouter geben Sie durch die Modifikation
folgender Zeile an:defaultrouter="NO"wird zu:defaultrouter="slip-gateway"Erstellen Sie die Datei
/etc/resolv.conf, die Folgendes
enthält:domain CS.Example.EDU
nameserver 128.32.136.9
nameserver 128.32.136.12NameserverDomain NameWie Sie sehen, werden hiermit die Nameserver angegeben.
Natürlich hängen die tatsächlichen Domainnamen
und Adressen von Ihren Gegebenheiten ab.Legen Sie ein Passwort für root und
toor (sowie für alle anderen Accounts
die kein Passwort haben) fest.Starten Sie Ihren Rechner neu und überprüfen
Sie, ob er mir dem richtigen Hostnamen startet.Aufbau einer SLIP-VerbindungSLIPVerbindungsaufbauWählen Sie sich ein, geben Sie
slip und am Prompt den Namen Ihres
Rechners sowie Ihr Passwort ein. Was Sie eingeben müssen,
hängt von Ihren Gegebenheiten ab. Wenn Sie kermit
verwenden, können Sie ein Skript wie das
Folgende verwenden:# kermit setup
set modem hayes
set line /dev/modem
set speed 115200
set parity none
set flow rts/cts
set terminal bytesize 8
set file type binary
# The next macro will dial up and login
define slip dial 643-9600, input 10 =>, if failure stop, -
output slip\x0d, input 10 Username:, if failure stop, -
output silvia\x0d, input 10 Password:, if failure stop, -
output ***\x0d, echo \x0aCONNECTED\x0aNatürlich müssen Sie hier Ihren Hostnamen
und Ihr Passwort eintragen. Wenn Sie das getan haben,
können Sie am kermit-Propmt einfach slip
eingeben, um sich zu verbinden.Es ist generell eine schlechte
Idee, Ihr Passwort in einer unverschlüsselten
Textdatei irgendwo im Dateisystem zu speichern.
Tun Sie dies auf Ihr eigenes Risiko.Belassen Sie kermit so (Sie können es mit
Ctrlz unterbrechen) und geben Sie als
root ein:&prompt.root; slattach -h -c -s 115200 /dev/modemWenn Sie mit ping Hosts auf der anderen
Seite des Routers erreichen können, sind Sie verbunden!
Wenn es nicht funktionieren sollte, können Sie versuchen
statt als Argument
für slattach zu verwenden.Beenden der VerbindungUm slattach zu beenden, geben Sie
Folgendes ein:&prompt.root; kill -INT `cat /var/run/slattach.modem.pid`Beachten Sie, dass Sie
root sein müssen, um dies
durchführen zu können. Kehren Sie zu kermit
zurück (mit Hilfe von fg, wenn Sie es
unterbrochen haben) und beenden Sie dieses Programm
(q).Die slattach Manual-Seite gibt an,
dass ifconfig sl0 down verwendet werden
soll, um das Interface zu deaktivieren, doch das
scheint in meinem Fall keinen Unterschied zu machen.
(ifconfig sl0 gibt dasselbe aus).Es kann vorkommen, dass Ihr Modem sich weigert, das
Trägersignal zu beenden (mein Modem macht dies oft).
In diesem Fall starten Sie einfach kermit und beenden es wieder.
Beim zweiten Versuch geht es meist aus.Lösungen bei ProblemenWenn es nicht funktionieren sollte, können Sie
mich gerne fragen. Über diese Dinge sind Benutzer
bisher gestolpert:Nicht oder in
slattach verwenden (Das sollte
nicht entscheidend sein, aber einige Benutzer haben
berichtet, dass dies ihre Probleme löst).Verwendung von statt
(bei einigen Schriftarten kann der
Unterschied schwer zu erkennen sein).Probieren Sie ifconfig sl0,
um den Status Ihrer Schnittstelle abzufragen. Das Ergebnis
könnte beispielsweise so aussehen:&prompt.root; ifconfig sl0
sl0: flags=10<POINTOPOINT>
inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00Wenn ping die Fehlermeldung
no route to host ausgibt, kann
die Routingtabelle falsch sein. Die Routen können Sie
sich mit dem Kommando netstat -r
ansehen:&prompt.root; netstat -r
Routing tables
Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
(root node)
(root node)
Route Tree for Protocol Family inet:
(root node) =>
default inr-3.Example.EDU UG 8 224515 sl0 - -
localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438
inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -
water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438
(root node)Die Zahlen im Beispiel stammen von einer recht
ausgelasteten Maschine. Die Zahlen auf Ihrem System werden,
je nach Netzaktivität, von den gezeigten
abweichen.Einrichtung eines SLIP-ServersSLIPServerDieses Dokument bietet Empfehlungen, wie Sie Ihr FreeBSD-System als
SLIP-Server einrichten. Typischerweise bedeutet dies, Ihr System so zu,
konfigurieren, dass beim Login automatisch eine Verbindung für
entfernte SLIP-Clients aufgebaut wird.VoraussetzungenTCP/IP NetzeDieser Abschnitt ist ausgesprochen technischer Natur, weshalb
Hintergrundwissen erforderlich ist. Wir gehen davon aus, dass Sie
mit dem TCP/IP Protokoll, insbesondere mit
Netzwerk- und Rechneradressierung, Netzwerkmasken, Subnetzen,
Routing und Routingprotokollen, wie RIP, vertraut sind.
Die Konfiguration von SLIP-Diensten
auf einem Einwählserver erfordert die Kenntnis dieser Konzepte.
Wenn Sie damit nicht vertraut sein sollten, lesen Sie bitte
Craig Hunt's TCP/IP Network Administration
publiziert von O'Reilly & Associates, Inc. (ISBN Nummer
0-937175-82-X) oder die Bücher von Douglas Comer über
das TCP/IP Protokoll.ModemWir gehen außerdem davon aus, dass Sie Ihr(e) Modem(s)
eingerichtet haben und die entsprechenden Systemdateien so
konfiguriert haben, dass Logins durch Ihr Modem zugelassen sind.
Wenn Sie Ihr System dafür noch nicht vorbereitet haben,
sehen Sie sich bitte das Tutorium zur Konfiguration von
Einwähldiensten an. Wenn Sie einen WWW-Browser zur
Verfügung haben, schauen Sie in der Liste der Tutorien unter
http://www.FreeBSD.org/
nach. Sie können auch die Manual-Seiten &man.sio.4;
für Informationen zum Gerätetreiber der seriellen
Schnittstelle &man.ttys.5;, &man.gettytab.5;, &man.getty.8;,
& &man.init.8; für Informationen zu Rate ziehen, die
benötigt werden, um das System so zu konfigurieren, dass Logins
über ein Modem akzeptiert werden. &man.stty.1; bietet
Informationen zur Einstellung der Parameter der seriellen
Schnittstelle (wie beispielsweise clocal für
direkt angeschlossene serielle Geräte).Ein kurzer ÜberblickMit der normal verwendeten Konfiguration funktioniert der
FreeBSD SLIP-Server folgendermaßen: Ein SLIP-Benutzer
wählt einen FreeBSD SLIP-Server an und meldet sich mit einer
speziellen SLIP Login-ID ein, wobei
/usr/sbin/sliplogin als Shell dieses
besonderen Accounts dient. Das Programm
sliplogin durchsucht die Datei
/etc/sliphome/slip.hosts nach einer
passenden Zeile für diesen Account. Falls ein
Treffer erzielt wird, verbindet es den seriellen Anschluss mit
einem verfügbaren SLIP-Interface und führt das
Shellskript /etc/sliphome/slip.login
aus, um das SLIP-Interface zu konfigurieren.Ein Beispiel für ein Login eines SLIP-ServersWenn beispielsweise die Kennung eines SLIP-Benutzers,
Shelmerg wäre, könnte der Eintrag des
Benutzers Shelmerg in der Datei
/etc/master.passwd etwa so aussehen:Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliploginWenn sich Shelmerg anmeldet,
wird sliplogin die Datei
/etc/sliphome/slip.hosts nach einer
übereinstimmenden Benutzerkennung durchsuchen. So
könnte etwa folgende Zeile in
/etc/sliphome/slip.hosts stehen:Shelmerg dc-slip sl-helmer 0xfffffc00 autocompsliplogin wird die passende Zeile finden,
den seriellen Anschluss mit dem nächsten verfügbaren
SLIP-Interface verbinden und dann
/etc/sliphome/slip.login wie hier
dargestellt ausführen:/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocompWenn alles gut läuft, wird
/etc/sliphome/slip.login ein
ifconfig für das SLIP Interface
durchführen, mit dem sich sliplogin
verbunden hat (in obigem Beispiel ist das slip 0, der als
erster Parameter in der Liste an slip.login
übergeben wurde), um die lokale IP-Adresse
(dc-slip), die entfernte IP-Adresse
(sl-helmer), die Netzmaske
des SLIP-Interface (0xfffffc00) und
alle zusätzlichen Optionen (autocomp)
festzulegen. Wenn etwas schief laufen sollte, bietet,
sliplogin normalerweise informative
Meldungen durch den Syslog daemon, der
die Meldungen standardmäßig nach
/var/log/messages schreibt (sehen Sie
hierzu auch in den Manual-Seiten für &man.syslogd.8;
und &man.syslog.conf.5; nach). Überprüfen Sie
vielleicht auch /etc/syslog.conf,
um zu sehen was syslogd aufzeichnet und
wohin es aufgezeichnet wird.OK, genug der Beispiele – lassen Sie uns ein
System einrichten.KernelkonfigurationKernelKonfigurationDie FreeBSD Standardkernels haben normalerweise bereits
zwei SLIP-Interfaces definiert (sl0 und
sl1). Sie können netstat
-i verwenden, um zu überprüfen, ob diese
beiden Interfaces in Ihrem Kernel definiert sind.Ein Beispiel für die Ausgabe von
netstat -i:Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
ed0 1500 <Link>0.0.c0.2c.5f.4a 291311 0 174209 0 133
ed0 1500 138.247.224 ivory 291311 0 174209 0 133
lo0 65535 <Link> 79 0 79 0 0
lo0 65535 loop localhost 79 0 79 0 0
sl0* 296 <Link> 0 0 0 0 0
sl1* 296 <Link> 0 0 0 0 0Die sl0 und
sl1 Interfaces, die von
netstat -i angezeigt werden, weisen darauf hin,
dass zwei SLIP-Interfaces in den Kernel eingebaut sind. (Der
Asteriskus nach sl0 und sl1
zeigt an, dass diese Interfaces deaktiviert sind.)Der FreeBSD Standardkernel ist jedoch nicht so konfiguriert,
dass Pakete weitergeleitet werden (standardmäßig wird
sich ihre FreeBSD Maschine nicht als Router verhalten), aufgrund
von Internet RFC Maßgaben für Internet Hosts (vergleichen
Sie hierzu RFCs 1009 [Requirements for Internet Gateways], 1122
[Requirements for Internet Hosts – Communication Layers],
und vielleicht auch 1127 [A Perspective on the Host Requirements
RFCs]). Wenn Sie Ihren FreeBSD SLIP-Server als Router einsetzen
möchten, müssen Sie die Datei editieren
/etc/rc.conf und und den Wert der
Variable gateway_enable auf
setzen.Danach sollten Sie Ihren Rechner neu starten, damit die neuen
Einstellungen wirksam werden.Sie werden im unteren Teil der Konfigurationsdatei des
Standardkernels (/sys/i386/conf/GENERIC)
die folgende Zeile finden:pseudo-device sl 2SLIPDies ist die Zeile, in der die Anzahl der SLIP Devices
festgelegt wird, die im Kernel verfügbar sind. Die Zahl
am Ende der Zeile gibt die maximale Anzahl an SLIP-Verbindungen
an, die gleichzeitig betrieben werden können.Weitere Informationen zur Konfiguration Ihres Kernels,
finden Sie in dieses Handbuches.Konfiguration des SliploginWie bereits erwähnt, gibt es im Verzeichnis
/etc/sliphome drei Dateien, die Teil der
Konfiguration für /usr/sbin/sliplogin
sind (sliplogin ist in &man.sliplogin.8;
beschrieben): slip.hosts,
definiert die SLIP-Benutzer sowie deren IP-Adresse;
slip.login, womit normalerweise nur das
SLIP-Interface konfiguriert wird und (optional)
slip.logout, womit die Auswirkungen von
slip.login rückgängig gemacht
werden, wenn die serielle Verbindung beendet wird.Konfiguration der Datei
slip.hosts/etc/sliphome/slip.hosts enthält
Zeilen, die mindestens vier durch Leerzeichen getrennte Elemente
enthalten:Login-Kennung des SLIP-BenutzersLokale Adresse (lokal für den SLIP-Server)
der SLIP-VerbindungEntfernte Adresse der SLIP-VerbindungNetzwerkmaskeDie lokalen und entfernten Adressen können
Hostnamen sein, deren zugehörige IP-Adresse durch die
Datei /etc/hosts oder mithilfe des
Domain Name Service aufgelöst wird. Wie die Adressen
aufgelöst werden, hängt auf FreeBSD 5.X
von den Einstellungen in /etc/nsswitch.conf
und auf FreeBSD 4.X von den Einstellungen in
/etc/host.conf ab. Die Netzwerkmaske
kann ein Name sein, der durch
eine Suche in /etc/networks aufgelöst
werden kann. Auf einem Beispielsystem, würde die Datei
/etc/sliphome/slip.hosts
folgendermaßen aussehen:#
# login local-addr remote-addr mask opt1 opt2
# (normal,compress,noicmp)
#
Shelmerg dc-slip sl-helmerg 0xfffffc00 autocompAm Ende der Zeile stehen eine oder mehrere der folgenden
Optionen. – keine
Header-Kompression – Header werden
komprimiert – Header werden
komprimiert, sofern die Gegenstelle es erlaubt – ICMP-Pakete werden
deaktiviert (ping Pakete werden
unterdrückt, statt die Ihnen zur Verfügung
stehende Bandbreite aufzubrauchen)SLIPTCP/IP NetzeDie Auswahl von lokalen und entfernten Adressen für Ihre
SLIP-Verbindung, hängt davon ab, ob Sie ein TCP/IP-Subnetz
reservieren oder ob Sie proxy ARP auf Ihrem
SLIP-Server verwenden (es handelt sich nicht um
echtes proxy ARP, aber dieser Begriff wird
in diesem Abschnitt verwendet, um diesen Sachverhalt zu
beschreiben). Wenn Sie nicht sicher sind, welche Methode
Sie wählen sollen oder wie IP-Adressen zugewiesen werden,
lesen Sie bitte in den Büchern
zum Thema TCP/IP nach, die als Voraussetzungen für SLIP
() angegeben worden sind
oder fragen Sie Ihren IP-Netzwerkadministrator.Wenn Sie für Ihre SLIP-Clients ein eigenes Subnetz
verwenden, werden Sie die Nummer des Subnetzes aus der Ihnen
zugewiesenen IP-Netzwerknummer zuteilen und die IP-Adressen
Ihrer SLIP-Clients aus diesem Subnetz verwenden müssen.
Dann können Sie eine statische Route zu Ihrem
SLIP-Subnetz über Ihren SLIP-Server auf Ihren
nächsten IP-Router konfigurieren.EthernetWenn Sie aber andererseits die proxy ARP
Methode verwenden möchten, werden Sie die IP-Adressen Ihrer
SLIP-Clients aus dem Subnetz Ihres SLIP-Server nehmen und die
Skripte /etc/sliphome/slip.login/etc/sliphome/slip.logout anpassen
müssen, damit diese &man.arp.8; zur Verwaltung der
proxy-ARP-Einträge in der ARP-Tabelle Ihres SLIP-Servers
verwendenKonfiguration von slip.loginEine typische Datei
/etc/sliphome/slip.login sieht
folgendermaßen aus:#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6Diese slip.login Datei führt
lediglich ifconfig für das entsprechende
SLIP-Interface mit den lokalen und entfernten Adressen und der
Netzwerkmaske des SLIP-Interface aus.Wenn Sie sich dafür entschieden haben, die
proxy ARP Methode zu verwenden (statt eines
separaten Subnetzes für Ihre SLIP-Clients)
sollte Ihre Datei /etc/sliphome/slip.login
etwa folgendermaßen aussehen:#!/bin/sh -
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
# Answer ARP requests for the SLIP client with our Ethernet addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pubDie zusätzliche Zeile arp -s
$5 00:11:22:33:44:55 pub in der Datei
slip.login erzeugt einen ARP-Eintrag
in der ARP-Tabelle des SLIP-Servers. Dieser ARP-Eintrag
veranlasst den SLIP-Server mit seiner Ethernet MAC-Adresse
zu antworten, sobald ein anderer IP-Knoten im Ethernet mit
der IP-Adresse des SLIP-Clients Kontakt aufnehmen
möchte.EthernetMAC AdresseWenn Sie das Beispiel von oben verwenden, achten Sie darauf
die Ethernet MAC-Adresse (00:11:22:33:44:55) durch die MAC-Adresse der
Ethernetkarte Ihres Systems zu ersetzen. Sonst wird Ihr
proxy ARP sicher nicht funktionieren! Sie
können die MAC-Adresse Ihres SLIP-Servers herausfinden,
indem Sie sich die Ausgabe von netstat -i
ansehen. Die zweite Zeile der Ausgabe sollte ungefähr
aussehen wie diese hier:ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116Dies zeigt an, dass die Ethernet MAC-Adresse dieses
Systems 00:02:c1:28:5f:4a lautet.
Die Punkte in der Ethernet MAC-Adresse, die von
netstat -i ausgegeben wird, müssen
durch Doppelpunkte ersetzt werden. Bei jeder einstelligen
Hexadezimalzahl sollten außerdem führende Nullen
hinzugefügt werden, um die Adresse in die Form zu bringen,
die von &man.arp.8; verlangt wird.
Die Manual-Seite von &man.arp.8; bietet hierzu eine
vollständige Übersicht.Wenn Sie die Dateien
/etc/sliphome/slip.login und
/etc/sliphome/slip.logout erstellen,
müssen diese ausführbar gemacht werden
(chmod 755 /etc/sliphome/slip.login
/etc/sliphome/slip.logout),
da sliplogin auf deren Ausführbarkeit
angewiesen ist. Konfiguration von slip.logoutDie Datei/etc/sliphome/slip.logout ist
nicht zwingend erforderlich (außer Sie verwenden proxy
ARP), aber falls Sie diese Datei erzeugen möchten,
ist hier ein Beispiel für ein grundlegendes
slip.logout Skript:#!/bin/sh -
#
# slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 downWenn Sie proxy ARP einsetzen, muss
/etc/sliphome/slip.logout den
ARP-Eintrag für den SLIP-Client löschen:#!/bin/sh -
#
# @(#)slip.logout
#
# logout file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
# Quit answering ARP requests for the SLIP client
/usr/sbin/arp -d $5arp -d $5 löscht den ARP-Eintrag,
den die proxy ARPslip.login
hinzufügte, als der SLIP-Client sich eingeloggt hatte.Es soll nochmals darauf hingewiesen werden, dass für die
Datei /etc/sliphome/slip.logout das
Ausführungs-Bit gesetzt werden muss, nachdem die Datei
erstellt worden ist (z.B. chmod 755
/etc/sliphome/slip.logout).Überlegungen zum RoutingSLIPRoutingWenn Sie nicht die proxy ARP Methode benutzen,
um Datenpakete zwischen Ihren SLIP-Clients und dem Rest Ihres
Netzwerkes (oder vielleicht dem Internet) zu routen, werden Sie
wahrscheinlich statische Routen zu Ihrem nächsten
Standardrouter hinzufügen müssen, um Pakete aus dem
Subnetz Ihres SLIP-Clients über Ihren SLIP-Server
weiterzuleiten.Statische RoutenStatische RoutenDas Hinzufügen von statischen Routen zu Ihrem
nächsten Standardrouter kann problematisch sein
(oder unmöglich, wenn Sie nicht die erforderliche
Berechtigung haben...). Wenn Sie in Ihrer Organisation ein
Netzwerk mit mehreren Routern haben, müssen einige Router,
wie etwa die von Cisco und Proteon hergestellten, nicht nur mit
der statischen Route zum SLIP-Subnetz konfiguriert werden, sondern
es muss ihnen auch mitgeteilt werden, über welche statischen
Routen sie andere Router informieren sollen. Daher ist einiges
an Fachwissen und Problemlösungskompetenz erforderlich, um auf
statischen Routen basierendes Routing erfolgreich
einzurichten.Der Einsatz von gatedgatedgated ist inzwischen proprietäre
Software und steht der Öffentlichkeit nicht mehr als
Sourcecode zur Verfügung (weitere Informationen hierzu
sind auf der gated
Webseite zu finden). Dieser Abschnitt existiert lediglich,
um die Rückwärtskompatibilität für
diejenigen sicherzustellen, die noch eine ältere Version
verwenden.Eine Alternative zu dem aufwändigen Einsatz von statischen
Routen ist die Installation von gated auf Ihrem
FreeBSD SLIP-Server. gated kann so konfiguriert
werden, dass er die passenden Routingprotokolle (RIP/OSPF/BGP/EGP)
verwendet, um die anderen Router über Ihr SLIP-Subnetz zu
informieren. Sie müssen die Datei
/etc/gated.conf erstellen, um gated
zu konfigurieren. Hier ist eine Beispieldatei,
ähnlich derjenigen, die der Autor auf einem FreeBSD SLIP-Server
verwendet hat:#
# gated configuration file for dc.dsu.edu; for gated version 3.5alpha5
# Only broadcast RIP information for xxx.xxx.yy out the ed Ethernet interface
#
#
# tracing options
#
traceoptions "/var/tmp/gated.output" replace size 100k files 2 general ;
rip yes {
interface sl noripout noripin ;
interface ed ripin ripout version 1 ;
traceoptions route ;
} ;
#
# Turn on a bunch of tracing info for the interface to the kernel:
kernel {
traceoptions remnants request routes info interface ;
} ;
#
# Propagate the route to xxx.xxx.yy out the Ethernet interface via RIP
#
export proto rip interface ed {
proto direct {
xxx.xxx.yy mask 255.255.252.0 metric 1; # SLIP connections
} ;
} ;
#
# Accept routes from RIP via ed Ethernet interfaces
import proto rip interface ed {
all ;
} ;RIPDie oben angegebene Beispieldatei
gated.conf sendet Routinginformationen,
die das SLIP-Subnetz xxx.xxx.yy
betreffen, mit Hilfe von RIP zum Ethernet. Wenn Sie einen
anderen Ethernet-Treiber als ed
verwenden, werden Sie die Einträge,
die sich auf ed beziehen, entsprechend
abändern müssen. Mit dieser Beispieldatei wird auch
die Aufzeichnung der Aktivitäten von gated
in der Datei /var/tmp/gated.output
eingerichtet, was für eine eventuelle Fehlersuche
nützlich sein kann. Sie können diese Option
natürlich auch abschalten, wenn gated
bei Ihnen ohne Probleme läuft. Sie müssen
xxx.xxx.yy noch durch die
Netzwerkadresse Ihres SLIP-Subnetzes ersetzen (ändern
Sie die Netzmaske im Abschnitt proto direct
ebenfalls).Wenn Sie gated auf Ihrem System
installiert und konfiguriert haben, müssen Sie die
FreeBSD Startskripten noch anweisen, gated
statt routed zu verwenden. Am
einfachsten können Sie dies erreichen, indem Sie
die Variablen router und
router_flags in der Datei
/etc/rc.conf entsprechend setzen.
Die Manual-Seite für gated bietet
weitere Informationen zu den Kommandozeilenparametern.
diff --git a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
index f7078ce30c..36ddd0cd34 100644
--- a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
@@ -1,4093 +1,4092 @@
MatthewDillonViel von diesem Kapitel stammt aus der security(7)
Manualpage von MartinHeinenÜbersetzt von SicherheitSicherheitÜbersichtDieses Kapitel bietet eine Einführung in die Konzepte
der Systemsicherheit. Neben einigen Daumenregeln werden
weiterführende Themen wie S/Key, OpenSSL und Kerberos
diskutiert. Die meisten der hier besprochenen Punkte treffen
sowohl auf die Systemsicherheit sowie die Internetsicherheit zu.
Das Internet hat aufgehört ein friedlicher
Ort zu sein, an dem Sie nur nette Leute finden werden. Es ist
unumgänglich, dass Sie Ihre Daten, Ihr geistiges Eigentum,
Ihre Zeit und vieles mehr vor dem Zugriff von Hackern
schützen.FreeBSD besitzt eine Reihe von Werkzeugen und Mechanismen, um die
Integrität und die Sicherheit Ihrer Systeme und Netzwerke
zu gewährleisten.Nach dem Sie dieses Kapitel durchgearbeitet haben, werden
Sie:Grundlegende auf FreeBSD bezogene Sicherheitsaspekte
kennen.Die verschiedenen Verschlüsselungsmechanismen von FreeBSD,
wie DES oder MD5, kennen.Wissen, wie Sie S/Key, ein Einmal-Passwort
Authentifizierungssystem konfigurieren.Wissen, wie Sie Kerberos, ein weiteres Authentifizierungssystem,
einrichten.Firewalls mit IPFW erstellen können.Wissen, wie Sie IPsec konfigurieren.OpenSSH, FreeBSDs Implementierung von SSH, konfigurieren
und benutzen können.Wie sie mithilfe des TrustedBSD-MAC-Frameworks
Zugrifsskontrollen konfigurieren.Bevor Sie dieses Kapitel lesen, sollten SieGrundlegende Konzepte von FreeBSD und dem Internet
verstehen.EinführungSicherheit ist ein Konzept, das beim Systemadministrator anfängt
und aufhört. Obwohl alle BSD &unix; Mehrbenutzersysteme über
Sicherheitsfunktionen verfügen, ist es wohl eine der
größten Aufgaben eines Systemadministrators zusätzliche
Sicherheitsmechanismen zu erstellen und zu pflegen. Maschinen sind
nur so sicher wie sie gemacht werden und Sicherheitsanforderungen
stehen oft der Benutzerfreundlichkeit entgegen. Auf &unix; Systemen
können sehr viele Prozesse gleichzeitig laufen und viele dieser
Prozesse sind Server, das heißt von außen kann auf sie
zugegriffen werden. In einer Zeit, in der die Minicomputer und
Mainframes von gestern die Desktops von heute sind und Rechner
immer mehr vernetzt werden, kommt der Sicherheit eine große
Bedeutung zu.Sicherheit wird am besten in mehreren Schichten implementiert.
Kurz gesagt wollen Sie eine angemessene Anzahl Schichten einrichten,
und dann das System auf Einbrüche hin beobachten. Die
Sicherheitsmaßnahmen sollten nicht überzogen werden,
da sie sonst das Entdecken von Einbrüchen stören und die
Möglichkeit, Einbrüche zu entdecken, ist einer der wichtigsten
Aspekte einer Sicherheitsmaßnahme. Es macht zum Beispiel wenig
Sinn, jedes Programm mit der schg Option (siehe auch
&man.chflags.1;) zu schützen, weil dies verhindert, dass ein
Angreifer eine leicht zu entdeckende Veränderung vornimmt und
vielleicht dazu führt, dass Ihre Sicherheitsvorkehrungen den
Angreifer überhaupt nicht entdecken.Zur Systemsicherheit gehört auch die Beschäftigung mit
verschiedenen Arten von Angriffen, auch solchen, die versuchen,
ein System still zu legen, oder sonst unbrauchbar zu machen ohne
root zu kompromittieren. Sicherheitsaspekte
lassen sich in mehrere Kategorien unterteilen:Denial of Service Angriffe.Kompromittierte Accounts.Kompromittierter root-Account durch
zugreifbare Server.Kompromittierter root-Account durch
kompromittierte Accounts.Einrichten von Hintertüren.DoS AngriffeDenial of Service (DoS)SicherheitDoS AngriffeDenial of Service (DoS)Denial of Service (DoS)Ein Denial of Service (Verhinderung von Diensten, DoS) Angriff
entzieht einer Maschine Ressourcen, die sie zur Bereitstellung
von Diensten benötigt. Meist versuchen Denial of Service Angriffe
die Dienste oder den Netzwerkstack einer Maschine zu überlasten,
um so die Maschine auszuschalten oder nicht nutzbar zu machen. Einige
Angriffe versuchen, Fehler im Netzwerkstack auszunutzen, und die
Maschine mit einem einzigen Paket auszuschalten. Diese Art des
Angriffs kann nur verhindert werden, indem der entsprechende Fehler
im Kernel behoben wird. Oft können Angriffe auf Dienste durch
die Angabe von Optionen verhindert werden, die die Last, die ein
Dienst auf das System unter widrigen Umständen ausüben kann,
begrenzt. Angriffen auf das Netzwerk ist schwerer zu begegnen.
Außer durch Trennen der Internetverbindung ist zum Beispiel
einem Angriff mit gefälschten Paketen nicht zu begegnen.
Diese Art von Angriff wird Ihr System zwar nicht unbrauchbar machen,
kann aber die Internetverbindung sättigen.Sicherheitkompromittierte AccountsKompromittierte Accounts kommen noch häufiger als
DoS Angriffe vor. Viele Systemadministratoren lassen auf ihren
Maschinen noch die Dienste telnetd,
rlogind, rshd
und ftpd laufen. Verbindungen zu diesen
Servern werden nicht verschlüsselt. Wenn Sie eine
größere Benutzerzahl auf Ihrem System haben, die sich von
einem entfernten System anmelden, ist die Folge davon, dass
das Passwort eines oder mehrerer Benutzer ausgespäht wurde.
Ein aufmerksamer Systemadministrator wird die Logs über Anmeldungen
von entfernten Systemen auf verdächtige Quelladressen, auch
für erfolgreiche Anmeldungen, untersuchen.Es ist immer davon auszugehen, dass ein Angreifer, der
Zugriff auf einen Account hat, Zugang zum
root-Account erlangt. Allerdings gibt der
Zugriff auf einen Account auf einem gut gesicherten und
gepflegten System nicht notwendig Zugriff auf den
root-Account. Diese Unterscheidung ist wichtig,
da ein Angreifer, der keinen Zugang zu root
besitzt, seine Spuren nicht verwischen kann. Er kann höchstens
die Dateien des betreffenden Benutzers verändern oder die
Maschine stilllegen. Kompromittierte Accounts sind sehr
häufig, da Benutzer meist nicht dieselben Vorsichtsmaßnahmen
wie Administratoren treffen.SicherheitHintertürenEs gibt viele Wege, Zugang zum root-Account
eines Systems zu bekommen: Ein Angreifer kann das Passwort von
root kennen, er kann einen Fehler in einem
Server entdecken, der unter root läuft und
dann über eine Netzwerkverbindung zu diesem Server einbrechen.
Oder er kennt einen
Fehler in einem SUID-root Programm, der es
ihm erlaubt, root zu werden, wenn er einmal
einen Account kompromittiert hat. Wenn ein Angreifer einen
Weg gefunden hat, root zu werden, braucht er
vielleicht keine Hintertür auf dem System installieren.
Viele der heute
bekannten und geschlossenen Sicherheitslöcher, die zu einem
root Zugriff führen, verlangen vom Angreifer
einen erheblichen Aufwand, um seine Spuren zu verwischen. Aus diesem
Grund wird er sich wahrscheinlich entschließen, eine Hintertür
(engl. Backdoor) zu installieren.
Eine Hintertür erlaubt es
dem Angreifer leicht auf den root-Account
zuzugreifen. Einem klugen Systemadministrator erlaubt sie allerdings
auch, den Einbruch zu entdecken. Wenn Sie es einem Angreifer verwehren,
Hintertüren zu installieren, kann das schädlich für
Ihre Sicherheit sein, da es vielleicht verhindert, dass die
Lücke, die der Angreifer für den Einbruch ausgenutzt hat,
entdeckt wird.Sicherheitsmaßnahmen sollten immer in mehreren Schichten
angelegt werden. Die Schichten können wie folgt eingeteilt
werden:Absichern von root und
Accounts.Absichern von unter root laufenden
Servern und SUID/SGID Programmen.Absichern von Accounts.Absichern der Passwort-Datei.Absichern des Kernels, der Geräte und von
Dateisystemen.Schnelles Aufdecken von unbefugten Veränderungen des
Systems.Paranoia.Die einzelnen Punkte der obigen Liste werden im nächsten
Abschnitt genauer behandelt.SicherheitAbsichernAbsichern von FreeBSDKommandos und ProtokolleIn diesem Abschnitt wird fett verwendet,
um Kommandos oder Anwendungen zu kennzeichnen. Zum Beispiel
wird ssh so gekennzeichnet, da es
sowohl ein Protokoll wie auch ein Kommando ist.Die folgenden Abschnitte behandeln die im
letzten Abschnitt erwähnten
Methoden Ihr FreeBSD-System zu sichern.Absichern von root und
AccountssuZuallererst, kümmern Sie sich nicht um die Absicherung
von Accounts, wenn Sie root
noch nicht abgesichert haben. Auf den meisten Systemen ist
root ein Passwort zugewiesen. Sie
sollten immer davon ausgehen, dass
dieses Passwort kompromittiert ist. Das heißt nicht,
dass Sie das Passwort entfernen sollten, da es meist
für den Konsolenzugriff notwendig ist. Vielmehr heißt
es, dass Sie das Passwort nicht außerhalb der
Konsole, auch nicht zusammen mit &man.su.1;, verwenden sollten.
Stellen Sie sicher, dass Ihre PTYs in ttys als
unsicher markiert sind und damit Anmeldungen von
root mit telnet oder
rlogin verboten sind. Wenn Sie andere
Anwendungen wie sshd zum Anmelden
benutzen, vergewissern Sie sich, dass dort ebenfalls
Anmeldungen als root verboten sind. Für
ssh editieren Sie
/etc/ssh/sshd_config und überprüfen,
dass PermitRootLogin auf NO
gesetzt ist. Beachten Sie jede Zugriffsmethode – Dienste
wie FTP werden oft vergessen. Nur an der Systemkonsole sollte
ein direktes Anmelden als root möglich
sein.wheelNatürlich müssen Sie als Systemadministrator
root-Zugriff erlangen können. Dieser
sollte aber durch zusätzliche Passwörter
geschützt sein. Ein Weg, Zugang zu root
zu ermöglichen, ist es, berechtigte Mitarbeiter in
/etc/group in die Gruppe
wheel aufzunehmen. Die Personen, die
Mitglieder in der Gruppe wheel sind,
können mit su zu root
wechseln. Ihre Mitarbeiter sollten niemals die Gruppe
wheel als primäre Gruppe in
/etc/passwd besitzen. Mitarbeiter sollten
der Gruppe staff angehören und über
/etc/group in wheel
aufgenommen werden. Es sollten auch nur die Mitarbeiter, die
wirklich root Zugriff benötigen in
wheel aufgenommen werden. Mit anderen
Authentifizierungsmethoden müssen Sie niemanden in
wheel aufnehmen. Wenn Sie z.B.
Kerberos benutzen, wechseln Sie mit
&man.ksu.1; zu root und der Zugriff wird
mit der Datei .k5login geregelt. Dies ist
vielleicht eine bessere Lösung, da es der
wheel-Mechanismus einem Angreifer immer
noch möglich macht, den root-Account
zu knacken, nachdem er einen Mitarbeiter-Account geknackt hat.
Obwohl der wheel-Mechanismus besser als
gar nichts ist, ist er nicht unbedingt die sicherste Lösung.Indirekt können Sie die Accounts von Mitarbeitern und
damit auch den Zugriff auf root schützen,
indem Sie eine alternative Zugangsmethode verwenden und die
Accounts der Mitarbeiter mit einem ungültigen verschlüsselten
Passwort versehen. Mit &man.vipw.8; können Sie jedes
verschlüsselte Passwort mit einem
* Zeichen ersetzen. Das Kommando
wird /etc/master.passwd und die
Benutzer/Passwort Datenbank aktualisieren und die Passwort
Authentifizierung abstellen.Ein Account wiefoobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshsollte wie folgt abgeändert werden:foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshDa ein verschlüsseltes Passwort niemals
ein * sein kann, verhindert dies
die normale Anmeldung. Damit müssen sich die Mitarbeiter
mit anderen Mechanismen wie &man.kerberos.1; oder &man.ssh.1;
authentifizieren. Wenn Sie etwas wie
Kerberos benutzen, müssen Sie
die Maschinen, die die Kerberos-Server
beheimaten und die Maschinen der Benutzer absichern. Wenn Sie
öffentliche/private Schlüssel mit
ssh benutzen, muss die Maschine
von der die Anmeldung gestartet wird, gesichert
werden. Als zusätzliche Sicherheitsschicht können Sie
das Schlüsselpaar beim Erstellen mit &man.ssh-keygen.1; durch
ein Passwort schützen. Dadurch, dass Sie die
Passwörter Ihrer Mitarbeiter als ungültig markiert
haben, stellen Sie sicher, dass sich die Mitarbeiter nur mit
den sicheren Methoden, die Sie aufgesetzt haben, anmelden können.
Dies zwingt alle Mitarbeiter, verschlüsselte Verbindungen
für ihre Sitzungen zu verwenden, und schließt ein
wichtiges Loch, dass gerne von Angreifern ausgenutzt wird:
Das Abhören des Netzwerks von einer anderen weniger gesicherten
Maschine.Die indirekten Sicherheitsmechanismen setzen voraus, dass
Sie sich von einer restriktiven Maschine auf einer weniger restriktiven
Maschine anmelden. Wenn zum Beispiel auf Ihrem Hauptrechner alle
möglichen Arten von Servern laufen, so sollten auf Ihrer
Workstation keine Server laufen. Um Ihre Workstation vernünftig
abzusichern, sollten auf Ihr so wenig Server wie möglich bis hin
zu keinem Server laufen. Sie sollten zudem über einen
Bildschirmschoner verfügen, der mit einem Passwort
gesichert ist. Natürlich kann ein Angreifer, der physikalischen
Zugang zu einer Maschine hat, jede Art von Sicherheitsmechanismen
umgehen. Dieses Problem sollten Sie daher auch in Ihren
Überlegungen berücksichtigen. Beachten Sie dabei aber,
dass der Großteil der Einbrüche über das
Netzwerk erfolgt und die Einbrecher keinen Zugang zu der Maschine
besitzen.KerberosMit Kerberos können Sie das
Passwort eines Mitarbeiters an einer Stelle ändern
und alle Maschinen, auf denen der Mitarbeiter einen Account hat,
beachten die Änderung sofort. Wird der Account eines
Mitarbeiters einmal kompromittiert, so sollte die Fähigkeit, das
Passwort mit einem Schlag auf allen Maschinen zu ändern,
nicht unterschätzt werden. Mit einzelnen Passwörtern
wird es schwierig, das Passwort auf N Maschinen zu ändern.
Mit Kerberos können Sie auch
Beschränkungen für Passwörter festlegen:
Nicht nur das Ticket kann nach einiger Zeit ungültig werden,
Sie können auch festlegen, dass ein Benutzer nach einer
bestimmten Zeit, z.B. nach einem Monat, das Passwort wechseln
muss.Absichern von unter root laufenden
Servern und SUID/SGID ProgrammenntalkcomsatfingerSandkästensshdtelnetdrshdrlogindEin kluger Systemadministrator lässt nur die
Dienste, die er wirklich braucht, laufen; nicht mehr und auch
nicht weniger. Beachten Sie, dass Server von Dritten die
fehleranfälligsten sind. Wenn Sie z.B. eine alte Version von
imapd oder popper
laufen lassen, ist das so, als würden Sie der ganzen Welt
freien Zugang zu root geben. Lassen Sie keine
Server laufen, die Sie vorher nicht genau überprüft haben.
Viele Server müssen nicht unter root
laufen, zum Beispiel können ntalk,
comsat und finger
in speziellen Sandkästen unter
einem Benutzer laufen. Ein Sandkasten ist keine perfekte Lösung,
wenn Sie nicht eine Menge Arbeit in die Konfiguration investieren,
doch bewährt sich hier das Prinzip, die Sicherheit in Schichten
aufzubauen. Wenn es einem Angreifer gelingt, in einen Server,
der in einem Sandkasten läuft, einzubrechen, dann muss
er immer noch aus dem Sandkasten selber ausbrechen. Je mehr Schichten
der Angreifer zu durchbrechen hat, desto kleiner sind seine Aussichten
auf Erfolg. In der Vergangenheit wurden praktisch in jedem
Server, der unter root läuft, Lücken
gefunden, die zu einem root Zugriff führten.
Dies betrifft selbst die grundlegenden Systemdienste. Wenn Sie eine
Maschine betreiben, auf der man sich nur mit
sshd anmelden kann, dann stellen Sie die
Dienste telnetd,
rshd oder rlogind
ab!In der Voreinstellung laufen unter FreeBSD
ntalkd, comsat
und finger nun in einem Sandkasten. Ein
weiteres Programm, das in einem Sandkasten laufen sollte, ist
&man.named.8;. In /etc/defaults/rc.conf sind
die notwendigen Argumente, um named in
einem Sandkasten laufen zu lassen, in kommentierter Form schon
enthalten. Abhängig davon, ob Sie ein neues System installieren
oder ein altes System aktualisieren, sind die hierfür
benötigten Benutzer noch nicht installiert.
Ein kluger Systemadministrator sollte immer nach Möglichkeiten
suchen, Server in einem Sandkasten laufen zu lassen.sendmailEinige Server wie sendmail,
popper, imapd
und ftpd werden normalerweise nicht in
Sandkästen betrieben. Zu einigen Servern gibt es Alternativen,
aber diese wollen Sie vielleicht wegen der zusätzlich nötigen
Arbeit nicht installieren (ein weiteres Beispiel für den
Widerspruch zwischen Sicherheit und Benutzerfreundlichkeit).
In diesem Fall müssen Sie die
Server unter root laufen lassen und auf die
eingebauten Mechanismen vertrauen, Einbrüche zu entdecken.Weitere potentielle Löcher, die zu einem
root-Zugriff führen können, sind
die auf dem System installierten SUID- und SGID-Programme. Die
meisten dieser Programme wie rlogin stehen
in /bin, /sbin,
/usr/bin, oder /usr/sbin.
Obwohl nichts 100% sicher ist, können Sie davon ausgehen,
dass die SUID- und SGID-Programme des Basissystems ausreichend
sicher sind. Allerdings werden ab und an in diesen Programmen
Löcher gefunden. 1998 wurde in Xlib ein
Loch gefunden, das xterm, der
normal mit SUID installiert wird, verwundbar machte. Es ist besser
auf der sicheren Seite zu sein, als sich später zu beklagen,
darum wird ein kluger Systemadministrator den Zugriff auf
SUID-Programme mit einer Gruppe, auf die nur Mitarbeiter zugreifen
können, beschränken. SUID-Programme, die niemand benutzt,
sollten mit chmod 000 deaktiviert werden. Zum
Beispiel braucht ein Server ohne Bildschirm kein
xterm Programm. SGID-Programme sind
vergleichbar gefährlich. Wenn ein Einbrecher Zugriff auf
SGID-kmem Programm erhält, kann er
vielleicht /dev/kmem und damit die
verschlüsselte Passwortdatei lesen. Dies kompromittiert
unter Umständen jeden Account, der mit einem Passwort
geschützt ist. Alternativ kann ein Einbrecher, der in die
Gruppe kmem eingebrochen ist, die
Tastendrücke auf PTYs verfolgen. Dies schließt
auch PTYs mit ein, auf denen sich ein Benutzer mit sicheren
Methoden anmeldet. Ein Einbrecher, der Zugriff auf die
tty Gruppe hat, kann auf fast jeden Terminal
anderer Benutzer schreiben. Wenn der Benutzer einen Terminal-Emulator
benutzt, der über eine Tastatur-Simulation verfügt,
könnte der Angreifer Daten generieren, die den Terminal
veranlassen, ein Kommando unter diesem Benutzer laufen zu lassen.Absichern von AccountsAccounts sind für gewöhnlich sehr schwierig
abzusichern. Während Sie drakonische Beschränkungen
für Ihre Mitarbeiter einrichten und deren Passwörter
als ungültig markieren können, werden Sie das
vielleicht bei den normalen Accounts nicht durchsetzen.
Wenn Sie über ausreichend Macht verfügen, gelingt es Ihnen
vielleicht doch, ansonsten müssen Sie diese Accounts
aufmerksam überwachen. Wegen der zusätzlichen
Administrationsarbeit und der nötigen technischen
Unterstützung ist die Verwendung von
ssh und Kerberos
mit normalen Accounts erschwert, obwohl das natürlich
sicherer als die Verwendung von verschlüsselten
Passwörtern ist.Absichern der Passwort-DateiDer einzig sichere Weg ist, so viele Accounts wie möglich als
ungültig zu markieren und ssh oder
Kerberos zu benutzen, um auf sie
zuzugreifen. Obwohl die Datei /etc/spwd.db,
die die verschlüsselten Passwörter enthält,
nur von root gelesen werden kann, mag ein
Angreifer lesenden Zugriff auf diese Datei erlangen, ohne die
Fähigkeit sie auch zu beschreiben.Ihre Überwachungsskripten sollten Änderungen
an der Passwort-Datei melden (siehe Überprüfen der
Integrität von Dateien weiter unten).Absichern des Kernels, der Geräte und von
DateisystemenWenn ein Angreifer root-Zugriff erlangt,
kann er so ziemlich alles mit Ihrem System anstellen, doch sollten Sie
es ihm nicht zu leicht machen. Die meisten modernen Kernel haben
zum Beispiel einen Gerätetreiber, der es erlaubt, Pakete
abzuhören. Unter FreeBSD wird das Gerät
bpf genannt. Für gewöhnlich
wird ein Angreifer versuchen, dieses Gerät zu nutzen, um
Pakete abzuhören. Sie sollten ihm diese Gelegenheit nicht
geben und auf den meisten Systemen ist das Gerät
bpf nicht nötig.sysctlAuch wenn Sie bpf nicht verwenden,
müssen Sie sich immer noch um /dev/mem
und /dev/kmem sorgen. Außerdem
kann der Angreifer immer noch auf die rohen Geräte
(raw devices)
schreiben. Weiterhin gibt es ein Programm zum Nachladen von
Modulen in den Kernel: &man.kldload.8;. Ein unternehmungslustiger
Angreifer kann dies benutzen, um sein eigenes
bpf oder ein anderes zum Abhören
geeignetes Gerät in den laufenden Kernel einzubringen. Um diese
Probleme zu vermeiden, müssen Sie den Kernel auf einer
höheren Sicherheitsstufe, mindestens 1,
laufen lassen. Die Sicherheitsstufe wird durch die Variable
kern.securelevel, die mit sysctl
gesetzt werden kann, angegeben. Nachdem Sie die Sicherheitsstufe
auf 1 gesetzt haben, sind schreibende Zugriffe
auf rohe Geräte verboten und die speziellen
chflags Optionen, wie schg
werden erzwungen. Sie müssen sicherstellen, dass die
schg Option auf allen kritischen Programmen,
Verzeichnissen und Skripten, die bis zum Setzen der Option laufen,
aktiviert ist. Das mag übertrieben sein da eine Migration
des Systems erschwert wird, wenn Sie auf einer höheren
Sicherheitsstufe arbeiten. Sie können einen Kompromiss
erreichen, indem Sie das System auf einer erhöhten
Sicherheitsstufe laufen lassen, aber die schg
Option nicht für jede Datei und jedes Verzeichnis auf der Welt
setzen. Eine andere Möglichkeit besteht darin,
/ und /usr einfach
schreibgeschützt einzuhängen. Bedenken Sie, dass
Sie das Aufdecken eines Einbruchs vielleicht verhindern, wenn
Sie zu drastische Maßnahmen zum Schutz Ihres Systems
verwenden.Überprüfen der Integrität von DateienSie können die Systemkonfiguration und die Dateien
nur so weit schützen, wie es die Benutzbarkeit des
Systems nicht einschränkt. Wenn Sie zum Beispiel
mit chflags die Option schg
auf die meisten Dateien in / und
/usr setzen, kann das Ihre Arbeit mehr behindern
als nützen. Die Maßnahme schützt zwar die
Dateien, schließt aber auch eine Möglichkeit,
Veränderungen zu entdecken, aus. Die letzte Schicht des
Sicherheitsmodells – das Aufdecken von Einbrüchen –
ist sicherlich die wichtigste. Alle Sicherheitsmaßnahmen sind
nichts wert, oder wiegen Sie in falscher Sicherheit, wenn Sie
nicht in der Lage sind, einen möglichen Einbruch zu entdecken.
Die Hälfte der Sicherheitsmaßnahmen hat die Aufgabe,
einen Einbruch zu verlangsamen, um es zu ermöglichen, den
Einbrecher auf frischer Tat zu ertappen.Der beste Weg, einen Einbruch zu entdecken, ist es, nach
veränderten, fehlenden oder unerwarteten Dateien zu suchen.
Der wiederum beste Weg, nach veränderten Dateien zu suchen, ist
es, die Suche von einem anderen (oft zentralen) besonders
geschützten System durchzuführen. Es ist wichtig, dass
Ihre Sicherheitsüberprüfungen vor einem Angreifer
verborgen bleiben und daher sind sie auf einem besonders
geschützten System gut aufgehoben. Um dies optimal auszunutzen,
müssen Sie dem besonders geschützten System Zugriffsrechte
auf die zu schützenden Systeme geben. Sie können die
Dateisysteme der zu schützenden Systeme schreibgeschützt
für das besonders geschützte System exportieren, oder
Sie können der besonders geschützten Maschine
ssh auf die anderen Maschinen erlauben,
indem Sie ssh Schlüsselpaare
installieren. Mit Ausnahme des verursachten Netzwerkverkehrs
ist die NFS-Methode die am wenigsten sichtbare. Sie erlaubt es Ihnen,
nahezu unentdeckt die Dateisysteme der Clients zu beobachten. Wenn
Ihr besonders geschütztes System mit den Clients über
einen Switch verbunden ist, ist die NFS-Methode oft das Mittel der
Wahl. Wenn das besonders geschützte System allerdings
mit einem Hub verbunden ist, oder der Zugriff über mehrere
Router geschieht, ist die NFS-Methode aus der Netzwerksicht zu
unsicher. In einem solchen Fall ist ssh
besser geeignet, auch wenn es deutliche Spuren
hinterlässt.Wenn das besonders geschützte System lesenden Zugriff
auf die Clients hat, müssen Sie Skripten schreiben, die die
Überwachung durchführen. Wenn Sie die NFS-Methode
verwenden, können Sie dazu einfache Systemwerkzeuge wie
&man.find.1; und &man.md5.1; benutzen. Am besten berechnen
Sie einmal am Tag MD5-Prüfsummen der Dateien, Konfigurationsdateien
in /etc und /usr/local/etc
sollten öfter überprüft werden. Wenn Unstimmigkeiten
zwischen den auf der besonders geschützten Maschine gehaltenen
MD5-Prüfsummen und den ermittelten Prüfsummen festgestellt
werden, sollte Ihr System einen Systemadministrator benachrichtigen,
der den Unstimmigkeiten dann nachgehen sollte. Ein gutes Skript
überprüft das System auch auf verdächtige
SUID-Programme sowie gelöschte oder neue Dateien in
/ und /usr.Wenn Sie ssh anstelle von NFS
benutzen, wird das Erstellen der Skripten schwieriger. Sie müssen
die Skripten und die Programme wie find mit
scp auf den Client kopieren. Damit machen
Sie die Überprüfung für einen Angreifer sichtbar.
Außerdem kann der ssh-Client auf dem
Zielsystem schon kompromittiert sein. Zusammenfassend, kann der
Einsatz von ssh nötig sein,
wenn Sie über ungesicherte Verbindungen arbeiten, aber
der Umgang mit dieser Methode ist auch sehr viel schwieriger.Ein gutes Sicherheitsskript wird auch Dateien von Benutzern,
die den Zugriff auf ein System ermöglichen, wie
.rhosts, .shosts,
.ssh/authorized_keys usw., auf
Veränderungen untersuchen, die über die Möglichkeiten
einer Überprüfung mit MD5,
die ja nur Veränderungen feststellen kann, hinausgehen.Wenn Sie über große Partitionen verfügen, kann
es zu lange dauern, jede Datei zu überprüfen. In diesem
Fall sollten Sie beim Einhängen des Dateisystems Optionen
setzen, die das Ausführen von SUID-Programmen und den
Zugriff auf Geräte verbieten. &man.mount.8; stellt dazu
die Optionen und
zur Verfügung. Sie sollten diese Dateien aber trotzdem
mindestens einmal die Woche überprüfen, da das Ziel
dieser Schicht das Aufdecken eines Einbruchs, auch wenn er nicht
erfolgreich war, ist.Die Prozessüberwachung (siehe &man.accton.8;)
des Betriebssystems steht ein günstiges Werkzeug zur
Verfügung, dass sich bei der Analyse eines Einbruchs
als nützlich erweisen kann. Insbesondere können Sie
damit herausfinden, wie der Einbrecher in das System eingedrungen ist,
vorausgesetzt die Dateien der Prozessüberwachung sind
noch alle intakt.Schließlich sollten die Sicherheitsskripten die Logdateien
analysieren. Dies sollte so sicher wie möglich durchgeführt
werden, nützlich ist das Schreiben von Logdateien auf
entfernte Systeme mit syslog. Ein Einbrecher
wird versuchen, seine Spuren zu verwischen. Die Logdateien
sind wichtig für den Systemadministrator, da er aus ihnen
den Zeitpunkt und die Art des Einbruchs bestimmen kann. Eine
Möglichkeit, die Logdateien unverändert aufzuheben,
ist es, die Systemkonsole auf einen seriellen Port zu legen
und die Informationen dort von einer gesicherten Maschine
auszulesen.ParanoiaEs schadet nicht, ein bisschen paranoid zu sein.
Grundsätzlich darf ein Systemadministrator jede
Sicherheitsmaßnahme treffen, die die Bedienbarkeit des
Systems nicht einschränkt. Er kann auch Maßnahmen
treffen, die die Bedienbarkeit einschränken,
wenn er diese vorher genau durchdacht hat. Was noch wichtiger
ist: Halten Sie sich nicht sklavisch an dieses Dokument, sondern
führen Sie eigene Maßnahmen ein, um nicht einem
künftigen Angreifer, der auch Zugriff auf dieses Dokument
hat, alle Ihre Methoden zu verraten.Denial of Service AngriffeDenial of Service (DoS)Dieser Abschnitt behandelt Denial of Service Angriffe (DoS).
Ein DoS-Angriff findet typischerweise auf der Paketebene statt.
Während Sie nicht viel gegen moderne Angriffe mit falschen
Paketen, die das Netzwerk sättigen, ausrichten können,
können Sie allerdings den Schaden in der Hinsicht begrenzen,
dass Ihre Server von einem solchen Angriff nicht gestoppt
werden.Begrenzen von fork() Aufrufen.Begrenzen von Sprungbrett-Angriffen (ICMP response Angriffen,
ping zu Broadcast-Adressen usw.).Kernel-Cache für Routen.Ein häufiger DoS-Angriff gegen forkende Server versucht
den Server dazu zu bringen, möglichst viele Prozesse, viele
Dateideskriptoren und viel Speicher zu verbrauchen, bis hin zu
dem Punkt, an dem die Maschine ausfällt. &man.inetd.8;
besitzt einige Optionen, um diese Art von Angriffen zu begrenzen.
Beachten Sie bitte, dass es möglich ist, einen
Ausfall einer Maschine zu verhindern, doch ist es generell nicht
möglich, den Ausfall eines Dienstes bei dieser Art
von Angriffen zu verhindern. Lesen Sie sich bitte die Manualpages
von inetd gut durch und achten Sie speziell
auf die Optionen , und
. Angriffe mit gefälschten IP-Adressen
umgehen , so dass normalerweise eine
Kombination der Optionen benutzt werden muss. Manche Server,
die nicht von inetd gestartet werden,
besitzen Optionen, um den Start über fork()
einzuschränken.Sendmail besitzt die Option
, die besser als die
eingebauten Optionen zur Begrenzung der Systemauslastung funktioniert.
Sie sollten beim Start von sendmailMaxDaemonChildren so hoch setzen, dass Sie
die erwartete Auslastung gut abfangen können. Allerdings
sollten Sie den Wert nicht so hoch setzen, dass der
Rechner über seine eigenen Füße fällt.
Es ist auch klug, sendmail im
Queue-Modus () laufen zu
lassen. Der Dæmon (sendmail -bd) sollte
getrennt von den Queue-Läufen (sendmail -q15m)
laufen. Wenn Sie trotzdem eine sofortige Auslieferung der Post
wünschen, können Sie die Queue in einem geringeren
Intervall, etwa , abarbeiten. Geben Sie
für diesessendmail aber einen vernünftigen
Wert für MaxDaemonChildren an, um
Fehler zu verhindern.Syslogd kann direkt angegriffen
werden. Daher empfehlen wir Ihnen unbedingt die Option
zu benutzen. Sollte das nicht möglich
sein, benutzen Sie bitte .
Vorsicht ist auch mit Diensten geboten, die automatisch
eine Rückverbindung eröffnen, wie der
reverse-identd der tcpwrapper.
Diese Funktion der tcpwrapper
sollten Sie normalerweise nicht benutzen.Es empfiehlt sich sehr, interne Dienste vor externen Zugriffen
durch eine Firewall an der Grenze Ihres Netzwerks zu schützen.
Dahinter steckt mehr die Idee, das Netzwerk vor Überlastung
durch Angriffe von außen zu schützen, als interne
Dienste vor einem root-Zugriff aus dem Netz
zu schützen. Konfigurieren Sie immer eine Firewall, die
alle Zugriffe blockiert, das heißt blockieren Sie
alles außer den Ports A, B, C, D
und M-Z. Damit können Sie Zugriffe auf alle niedrigen
Ports blockieren und Zugriffe auf spezielle Dienste wie
named, wenn Sie den primären
Namensdienst für eine Zone anbieten,
ntalkd oder
sendmail erlauben. Wenn Sie die
Firewall so konfigurieren, das sie in der Voreinstellung alle
Zugriffe erlaubt, ist es sehr wahrscheinlich, dass Sie
vergessen, eine Reihe von Diensten zu blockieren bzw. einen
internen Dienst einführen und dann vergessen die Firewall
zu aktualisieren. Sie können immer die höheren
Portnummern öffnen, ohne die niedrigen Portnummern,
die nur von root benutzt werden dürfen,
zu kompromittieren. Beachten Sie bitte auch, dass es
FreeBSD erlaubt, die Portnummern, die für dynamische
Verbindungen zur Verfügung stehen, zu konfigurieren.
Mit sysctl lassen sich verschiedene
Bereiche der net.inet.ip.portrange Variablen
setzen (eine Liste erhalten Sie mit sysctl -a | fgrep
portrange).
So können Sie zum Beispiel die Portnummern 4000 bis 5000
für den normalen Bereich und die Nummern 49152 bis 65535
für den hohen Bereich vorsehen. Dies erleichtert Ihnen
die Konfiguration der Firewall, da Sie nun Zugriffe auf Ports
unterhalb von 4000, mit Ausnahme der Dienste, die von außen
erreichbar sein sollen, blockieren können.ICMP_BANDLIMEine andere Form eines DoS-Angriffs nutzt einen Server
als Sprungbrett, der Server wird dabei so angegriffen, dass
seine Antworten ihn selber, das lokale Netzwerk oder einen
anderen Server überlasten. Der am häufigsten verwendete
Angriff dieser Art ist der ICMP ping broadcast
Angriff. Der Angreifer fälscht dazu
ping-Pakete, die zu der Broadcast-Adresse
Ihres LANs gesendet werden, indem er darin als Quelladresse
die Adresse des Opfers einsetzt. Wenn die Router an der Grenze
Ihres Netzwerks ping-Pakete auf
Broadcast-Adressen nicht abwehren, wird Ihr LAN genügend
Netzwerkverkehr generieren, um das Ziel des Angriffs zu
überlasten. Dies kann besonders effektiv sein, wenn der
Angreifer diese Methode mit mehreren Dutzend Broadcast-Adressen
über mehrere Netzwerke einsetzt. Es wurden schon
Broadcast-Angriffe mit über 120 Megabit pro Sekunde
gemessen. Ein zweiter Sprungbrett-Angriff wird gegen
das Fehlerbehandlungssystem von ICMP eingesetzt. Indem ein Angreifer
Pakete konstruiert, die eine ICMP-Fehlermeldung hervorrufen, kann
er das einkommende Netzwerk des Servers sättigen und diesen
wiederum veranlassen sein ausgehendes Netzwerk mit ICMP-Antworten
zu sättigen. Diese Art des Angriffs kann alle mbuf-Strukturen
auf dem Server aufbrauchen und damit den Server stilllegen,
insbesondere wenn der Server nicht in der Lage ist, die generierten
ICMP-Antworten schnell genug abzuführen. Der FreeBSD-Kernel
besitzt eine neue Option , die die
Auswirkungen von solchen Angriffen begrenzen kann. Die letzte
weit verbreitete Form von Sprungbrett-Angriffen verwendet
interne inetd-Dienste wie den
UDP echo-Dienst. Der Angreifer fälscht
dazu einfach ein UDP-Paket, indem er als Quellport den
echo-Port von Server A
und als Zielport den echo-Port von
Server B angibt, wobei beide
Server in Ihrem LAN stehen. Die beiden Server werden nun
dieses Paket zwischen sich hin und her schicken. Der Angreifer
kann die beiden Server und das LAN einfach damit überlasten,
dass er mehrere Pakete dieser Art generiert. Ähnliche
Probleme gibt es mit dem internen
chargen-Port, daher sollten Sie
die internen inetd-Testdienste
abstellen.Gefälschte IP-Pakete können dazu benutzt werden,
den Kernel-Cache für Routen zu überlasten. Schauen Sie
sich bitte die sysctl-Parameter
net.inet.ip.rtexpire, rtminexpire
und rtmaxcache an. Ein Angriff der gefälschte
Pakete mit zufälligen Quelladressen einsetzt, bewirkt, dass
der Kernel eine Route im Route-Cache anlegt, die Sie sich mit
netstat -rna | fgrep W3 ansehen können.
Diese Routen verfallen für gewöhnlich nach 1600 Sekunden.
Wenn der Kernel feststellt, dass die Routingtabelle im Cache
zu groß geworden ist, wird er dynamisch den Wert von
rtexpire verringern. Dieser Wert wird aber nie
kleiner werden als rtminexpire. Daraus
ergeben sich zwei Probleme:Der Kernel reagiert nicht schnell genug, wenn ein
Server mit einer niedrigen Grundlast plötzlich angegriffen
wird.rtminexpire ist nicht klein genug,
um einen anhaltenden Angriff zu überstehen.Wenn Ihre Server über eine T3 oder eine noch schnellere
Leitung mit dem Internet verbunden sind, ist es klug, mit
&man.sysctl.8; die Werte für rtexpire und
rtminexpire händisch zu setzen. Setzen
Sie bitte keinen der Werte auf Null, außer Sie wollen die
Maschine zum Erliegen bringen. Ein Wert von 2 Sekunden für
beide Parameter sollte ausreichen, um die Routingtabelle vor
einem Angriff zu schützen.Anmerkungen zum Zugriff mit Kerberos und sshsshKerberosEs gibt ein paar Punkte, die Sie beachten sollten, wenn Sie
Kerberos oder ssh
einsetzen wollen. Kerberos V ist ein
ausgezeichnetes Authentifizierungsprotokoll. Leider gibt es
Fehler, in den für Kerberos
angepassten Versionen von telnet und
rlogin, die sie ungeeignet für den
Umgang mit binären Datenströmen machen. Weiterhin
verschlüsselt Kerberos Ihre Sitzung
nicht, wenn Sie nicht die Option verwenden,
mit ssh wird dagegen alles
verschlüsselt.Ein Problem mit SSH sind Weiterleitungen von Verbindungen.
Wenn Sie von einer sicheren Maschine, auf der sich Ihre
Schlüssel befinden, eine Verbindung zu einer
ungesicherten Maschine aufmachen, wird für die Dauer der
Sitzung ein Port für Weiterleitungen geöffnet.
Ein Angreifer, der auf der unsicheren Maschine Zugang zu
root hat, kann diesen Port
benutzen, um Zugriff auf andere Maschinen zu
erlangen, die mit Ihren Schlüsseln zugänglich
sind.Wir empfehlen Ihnen, für die Logins Ihrer Mitarbeiter immer
ssh zusammen mit
Kerberos einzusetzen. Damit reduzieren
Sie die Abhängigkeit von potentiell gefährdeten
Schlüsseln und schützen gleichzeitig die Passwörter
mit Kerberos.
ssh-Schlüsselpaare sollten nur
für automatisierte Aufgaben von einem besonders gesicherten
Server eingesetzt werden (Kerberos
kann für diese Art von Aufgaben nicht eingesetzt werden).
Weiterhin empfehlen wir Ihnen, das Weiterreichen von Schlüsseln
in der ssh-Konfiguration abzustellen bzw.
die from=IP/DOMAIN Option in
authorized_keys zu verwenden, die den
Schlüssel nur von bestimmten Maschinen aus nutzbar macht.BillSwingleTeile umgeschrieben und aktualisiert von DES, MD5, und crypt()Sicherheitcrypt()crypt()DESMD5Jedem Benutzer eines &unix; Systems ist ein Passwort zugeordnet.
Es scheint offensichtlich, dass das Passwort nur dem Benutzer
und dem System bekannt sein muss. Um die Passwörter
geheim zu halten, werden sie mit einer nicht umkehrbaren Hash-Funktion
verschlüsselt, das heißt sie können leicht
verschlüsselt aber nicht entschlüsselt werden. Was wir
gerade als offensichtlich dargestellt haben, ist also nicht wahr: Das
Betriebssystem kennt das Passwort wirklich
nicht, es kennt nur das verschlüsselte
Passwort. Die einzige Möglichkeit, das originale Passwort
herauszufinden, besteht darin, alle möglichen Passwörter
auszuprobieren (brute force Suche).Zu der Zeit als &unix; entstanden ist, war die einzig sichere
Möglichkeit Passwörter zu verschlüsseln, leider
DES (Data Encryption Standard). Für die Einwohner der USA
stellte das kein Problem dar, aber da der Quellcode von DES nicht aus
den USA exportiert werden durfte, musste ein Weg gefunden werden,
der die Gesetze der USA nicht verletzte und gleichzeitig die
Kompatibilität mit anderen &unix; Systemen, die immer noch DES
benutzten, wahrte.Die Lösung bestand darin, die Verschlüsselungsbibliotheken
aufzuspalten. Benutzer in den USA konnten die DES-Bibliotheken
installieren und nutzen. In der Grundeinstellung benutzt FreeBSD
MD5 als Verschlüsselungsmethode, das exportiert werden durfte
und damit von jedem genutzt werden konnte. Es wird davon ausgegangen,
dass MD5 sicherer als DES ist, so dass DES nur aus
Kompatibilitätsgründen installiert werden sollte.Erkennen der VerschlüsselungsmethodeVor FreeBSD 4.4 war libcrypt.a ein
symbolischer Link, der auf die Library zeigte, die die
Verschlüsselungsroutinen enthielt. Seit FreeBSD 4.4 enthält
libcrypt.a verschiedene Hash-Funktionen, deren
Anwendung sich konfigurieren lässt. Momentan werden
DES-, MD5- und Blowfish-Hash Funktionen unterstützt. In der
Voreinstellung benutzt FreeBSD die MD5-Hash Funktion.Sie können leicht herausfinden, welche
Verschlüsselungsmethode von FreeBSD verwendet wird. Ein Weg
besteht darin, die verschlüsselten Passwörter in
/etc/master.passwd zu untersuchen.
Passwörter, die mit MD5 verschlüsselt wurden,
sind länger als die mit DES verschlüsselten und
beginnen mit den Zeichen $1$.
Passwörter, die mit $2$
anfangen, wurden mit der Blowfish-Funktion verschlüsselt.
DES Passwörter besitzen keine offensichtlichen Merkmale,
an denen sie identifiziert werden könnten. Sie sind aber
kürzer als MD5-Passwörter und sind in einem
64 Zeichen umfassenden Alphabet kodiert, das das
$-Zeichen nicht enthält. Ein relativ
kurzes Passwort, das nicht mit einem
$-Zeichen anfängt, ist wahrscheinlich
ein DES-Passwort.Die Verschlüsselungsmethode für neue
Passwörter wird durch in
/etc/login.conf bestimmt. Der Wert dieser
Variablen kann entweder des, md5
oder blf sein. Näheres schlagen Sie bitte
in &man.login.conf.5; nach.S/KeyS/KeySicherheitS/KeyS/Key ist ein Einmal-Passwort System, das auf einer nicht
umkehrbaren Hash-Funktion basiert. Aus Kompatibilitätsgründen
benutzt FreeBSD MD4-Hashes, andere Systeme benutzen MD5 und DES-MAC.
S/Key ist seit Version 1.1.5 Teil des FreeBSD Basissystems und wird
auch auf einer wachsenden Anzahl anderer Systeme benutzt. S/Key
ist eine geschützte Warenmarke von
Bell Communications Research, Inc.Ab der FreeBSD Version 5.0 wurde S/Key durch OPIE
(Onetime Passwords In Everything), das die gleichen Funktionen
bietet, abgelöst. OPIE benutzt MD5 Hash-Funktionen.In der folgenden Diskussion werden drei verschiedene
Passwörter verwendet. Das Erste ist Ihr normales System- oder
Kerberos-Passwort und wird im Folgenden System-Passwort
genannt. Das Zweite ist das Einmal-Passwort, das bei S/Key
von key oder bei OPIE von
opiekey generiert wird. Dieses Passwort wird von
den Programmen keyinit oder
opiepasswd und dem Login-Programm akzeptiert. Im
Folgenden wird es Einmal-Passwort genannt. Das Dritte
Passwort ist das geheime Passwort, das Sie mit den Programmen
key/opiekey (manchmal auch mit
keyinit/opiepasswd) zum Erstellen
der Einmal-Passwörter verwenden. Dieses Passwort
werden wir im Folgenden geheimes Passwort
oder schlicht Passwort nennen.Das geheime Passwort steht in keiner Beziehung zu Ihrem
System-Passwort, beide können gleich sein, obwohl das nicht
empfohlen wird. Die geheimen Passwörter von S/Key oder
OPIE sind nicht auf eine Länge von 8 Zeichen beschränkt.
Sie können so lang sein, wie Sie wollen. Gebräuchlich sind
Passwörter, die sich aus sechs bis sieben Wörtern
zusammensetzen. Das S/Key oder OPIE System arbeitet
größtenteils unabhängig von den
auf &unix; Systemen verwendeten Passwort-Mechanismen.Neben dem Passwort gibt es noch zwei Werte, die für
S/Key und OPIE wichtig sind. Der erste ist der
Initialwert (engl. seed
oder key), der aus zwei Buchstaben
und fünf Ziffern besteht. Der andere Wert ist der
Iterationszähler, der eine Zahl zwischen
1 und 100 ist. S/Key generiert das Einmal-Passwort, indem
es den Initialwert und das geheime Passwort aneinander hängt
und dann die MD4/MD5 Hash-Funktion so oft, wie durch den
Iterationszähler gegeben, anwendet. Das Ergebnis wird in
sechs englische Wörter umgewandelt, die Ihr Einmal-Passwort
sind. Das Authentifizierungssystem (meistens PAM) merkt sich das
zuletzt benutzte Einmal-Passwort und Sie sind authentisiert,
wenn die Hash-Funktion des Passworts dem vorigen Passwort
entspricht. Da nicht umkehrbare Hash-Funktionen benutzt werden,
ist es unmöglich, aus einem bekannten Passwort weitere
gültige Einmal-Passwörter zu berechnen. Der
Iterationszähler wird nach jeder erfolgreichen Anmeldung um
eins verringert und stellt so die Synchronisation zwischen Benutzer
und Login-Programm sicher. Wenn der Iterationszähler den
Wert 1 erreicht, müssen S/Key und OPIE neu initialisiert
werden.In jedem System werden drei Programme verwendet, die weiter unten
beschrieben werden. Die Programme key und
opiekey verlangen einen Iterationszähler,
einen Initialwert und ein geheimes Passwort. Daraus generieren
sie ein Einmal-Passwort oder eine Liste von
Einmal-Passwörtern. Die Programme keyinit
und opiepasswd werden benutzt, um S/Key bzw.
OPIE zu initialisieren. Mit ihnen können Passwörter,
Iterationszähler oder Initialwerte geändert werden.
Als Parameter verlangen sie entweder ein geheimes Passwort
oder einen Iterationszähler oder einen Initialwert und ein
Einmal-Passwort. Die Programme keyinfo
und opieinfo geben den momentanen
Iterationszähler und Initialwert eines Benutzers aus. Diese
werden aus den Dateien /etc/skeykeys bzw.
/etc/opiekeys ermittelt.Im Folgenden werden vier verschiedene Tätigkeiten beschrieben.
Zuerst wird erläutert, wie keyinit oder
opiepasswd über eine gesicherte Verbindung
eingesetzt werden, um Einmal-Passwörter das erste Mal
zu konfigurieren oder das Passwort oder den Initialwert
zu ändern. Als nächstes wird erklärt, wie
keyinit oder opiepasswd
über eine nicht gesicherte Verbindung, zusammen mit
key oder opiekey über eine
gesicherte Verbindung, eingesetzt werden, um dasselbe zu erreichen.
Als drittes wird beschrieben, wie
key/opiekey genutzt werden,
um sich über eine nicht gesicherte Verbindung anzumelden.
Die vierte Tätigkeit beschreibt, wie mit key
oder opiekey eine Reihe von Schlüsseln
generiert werden, die Sie sich aufschreiben oder ausdrucken können,
um sich von Orten anzumelden, die über keine gesicherten
Verbindungen verfügen.Einrichten über eine gesicherte VerbindungBenutzen Sie keyinit um S/Key das erste
Mal einzurichten, das Passwort oder den Initialwert
zu ändern, während Sie über eine gesicherte
Verbindung, das heißt an der Konsole oder über ssh
angemeldet, sind:&prompt.user; keyinit
Adding unfurl:
Reminder - Only use this method if you are directly connected.
If you are using telnet or rlogin exit with no password and use keyinit -s.
Enter secret password:
Again secret password:
ID unfurl s/key is 99 to17757
DEFY CLUB PRO NASH LACE SOFTMit OPIE benutzen Sie stattdessen
opiepasswd:&prompt.user; opiepasswd -c
[grimreaper] ~ $ opiepasswd -f -c
Adding unfurl:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:
ID unfurl OTP key is 499 to4268
MOS MALL GOAT ARM AVID COED
Nach der Aufforderung Enter new secret pass phrase:
oder Enter secret password: geben Sie bitte Ihr
Passwort ein. Dies ist nicht das Passwort, mit dem Sie sich
anmelden, sondern es wird genutzt, um das Einmal-Passwort
zu generieren. Die Zeile, die mit ID anfängt,
enthält Ihren Login-Namen, den Iterationszähler und den
Initialwert. Diese Werte müssen Sie sich nicht behalten, da
das System sie zeigen wird, wenn Sie sich anmelden. In der letzten
Zeile steht das Einmal-Passwort, das aus diesen Parametern
und Ihrem geheimen Passwort ermittelt wurde. Wenn sie sich jetzt
wieder anmelden wollten, dann müssten Sie dieses
Passwort benutzen.Einrichten über eine nicht gesicherte VerbindungUm Einmal-Passwörter über eine nicht gesicherte
Verbindung einzurichten, oder das geheime Passwort zu ändern,
müssen Sie über eine gesicherte Verbindung zu einer Stelle
verfügen, an der Sie die Kommandos key
oder opiekey ausführen. Dies kann
ein Desk Accessory auf einem Macintosh oder
die Eingabeaufforderung auf einer Maschine, der Sie vertrauen, sein.
Zudem müssen Sie einen Iterationszähler vorgeben (100
ist ein guter Wert) und einen Initialwert wählen, wobei
Sie auch einen zufällig generierten benutzen können.
Benutzen Sie keyinit -s über die ungesicherte
Verbindung zu der Maschine, die Sie einrichten wollen:&prompt.user; keyinit -s
Updating unfurl:
Old key: to17758
Reminder you need the 6 English words from the key command.
Enter sequence count from 1 to 9999: 100
Enter new key [default to17759]:
s/key 100 to 17759
s/key access password:
s/key access password:CURE MIKE BANE HIM RACY GOREMit OPIE benutzen Sie opiepasswd:&prompt.user; opiepasswd
Updating unfurl:
You need the response from an OTP generator.
Old secret pass phrase:
otp-md5 498 to4268 ext
Response: GAME GAG WELT OUT DOWN CHAT
New secret pass phrase:
otp-md5 499 to4269
Response: LINE PAP MILK NELL BUOY TROY
ID mark OTP key is 499 gr4269
LINE PAP MILK NELL BUOY TROY
Drücken Sie Return, um die Vorgabe
für den Initialwert, der von keyinitkey genannt wird, zu akzeptieren. Bevor
Sie nun das Zugriffspasswort
(engl. access password)
eingeben, rufen Sie über die gesicherte Verbindung
key mit denselben Parametern auf:&prompt.user; key 100 to17759
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <secret password>
CURE MIKE BANE HIM RACY GOREMit OPIE benutzen Sie opiekey:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHAT
Gehen Sie nun zurück zu der nicht gesicherten Verbindung
und geben dort das eben generierte Einmal-Passwort ein.Erzeugen eines einzelnen Einmal-PasswortesNachdem Sie S/Key oder OPIE eingerichtet haben, werden Sie beim
nächsten Anmelden wie folgt begrüßt:&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
s/key 97 fw13894
Password: OPIE begrüßt Sie wie folgt:&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
otp-md5 498 gr4269 ext
Password: Anmerkung: S/Key und OPIE besitzen eine nützliche Eigenschaft,
die hier nicht gezeigt ist. Wenn Sie an der Eingabeaufforderung
Return eingeben, wird die echo-Funktion eingeschaltet,
das heißt Sie sehen, was Sie tippen. Dies ist besonders
nützlich, wenn Sie ein generiertes Passwort von einem
Ausdruck abtippen müssen.MS-DOSWindowsMacOSJetzt müssen Sie Ihr Einmal-Passwort generieren,
um der Anmeldeaufforderung nachzukommen. Dies muss auf
einem gesicherten System geschehen, auf dem Sie key
oder opiekey ausführen können.
Diese Programme gibt es übrigens auch für DOS, Windows und
MacOS. Beide Programme benötigen den Iterationszähler
sowie den Initialwert als Parameter, die Sie mittels
cut-and-paste direkt von der Login Aufforderung
nehmen können.Auf dem sicheren System:&prompt.user; key 97 fw13894
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password:
WELD LIP ACTS ENDS ME HAAGMit OPIE:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHATMit dem jetzt generierten Einmal-Passwort können
Sie die Anmeldeprozedur fortsetzen:login: <username>
s/key 97 fw13894
Password: <return to enable echo>
s/key 97 fw13894
Password [echo on]: WELD LIP ACTS ENDS ME HAAG
Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ...Erzeugen von mehreren Einmal-PasswörternManchmal müssen Sie sich an Orte begeben, an denen
Sie keinen Zugriff auf eine sichere Maschine oder eine
sichere Verbindung haben. In diesem Fall können Sie
vorher mit key einige Einmal-Passwörter
generieren, die Sie sich ausdrucken und mitnehmen können.
Zum Beispiel:&prompt.user; key -n 5 30 zz99999
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <secret password>
26: SODA RUDE LEA LIND BUDD SILT
27: JILT SPY DUTY GLOW COWL ROT
28: THEM OW COLA RUNT BONG SCOT
29: COT MASH BARR BRIM NAN FLAG
30: CAN KNEE CAST NAME FOLK BILKMit fordern Sie fünf
Passwörter der Reihe nach an. Der letzte
Iterationszähler wird durch gegeben.
Beachten Sie bitte, dass die Passwörter in der
umgekehrten Reihenfolge, in der sie
zu benutzen sind, ausgeben werden. Wenn Sie wirklich paranoid
sind, schreiben Sie sich jetzt die Passwörter auf,
ansonsten drucken Sie sie mit lpr aus.
Beachten Sie, dass jede Zeile den Iterationszähler
und das Einmal-Passwort zeigt, trotzdem finden Sie es
vielleicht hilfreich, eine Zeile nach Gebrauch durchzustreichen.Einschränken der Benutzung von
System-PasswörternBasierend auf dem Hostnamen, Benutzernamen, Terminal oder
IP-Adresse, können Sie die Verwendung von
System-Passwörtern einschränken. Die Beschränkungen
werden in /etc/skey.access definiert. Die
Manualpage &man.skey.access.5; beschreibt das Format dieser
Datei sowie einige Vorsichtsmaßnahmen,
die Sie treffen sollten, bevor Sie diese Datei einsetzen.Wenn /etc/skey.access nicht existiert und
das ist unter FreeBSD die Vorgabe, dann dürfen sich alle Benutzer
mit ihren System-Passwörtern anmelden. Wenn die Datei existiert,
dann müssen alle Benutzer S/Key zum Anmelden benutzen. Ausnahmen
müssen explizit in skey.access konfiguriert
werden. In allen Fällen werden System-Passwörter
beim Anmelden auf der Konsole erlaubt.Das folgende Beispiel zeigt die drei häufigsten
Ausnahmen:permit internet 192.168.0.0 255.255.0.0
permit user fnord
permit port ttyd0Die erste Zeile (permit internet) erlaubt
es Benutzern, deren IP-Adresse, die immer noch gefälscht werden
kann, mit dem angegebenen Wert und der angegebenen Maske
übereinstimmt, System-Passwörter zu benutzen. Dies
sollte nicht als Sicherheitsmechanismus missverstanden werden,
sondern sollte autorisierte Benutzer daran erinnern, dass sie
ein ungesichertes Netzwerk benutzen und sich mit S/Key anmelden
müssen.Die zweite Zeile (permit user) erlaubt
es dem angegebenen Benutzer, hier fnord,
jederzeit System-Passwörter zu verwenden. Dies sollte
allerdings nur für Benutzer konfiguriert werden, die das
key Programm nicht benutzen können (Leute
mit dumb Terminals oder wirklich uneinsichtige).
Die dritte Zeile (permit port) erlaubt allen
Benutzern, die sich an dem angegebenen Terminal anmelden,
System-Passwörter zu benutzen. Sie sollte für
Einwählverbindungen genutzt werden.MarkMurrayBeigesteuert von MarkDapozBasiert auf einem Beitrag von KerberosKerberosKerberos ist ein zusätzliches Netzwerkprotokoll, das es
Benutzern erlaubt, sich über einen sicheren Server zu
authentifizieren. Dienste wie rlogin,
rcp oder das sichere Kopieren von Dateien
zwischen Systemen und andere risikoreiche Tätigkeiten werden
durch Kerberos erheblich sicherer und kontrollierbarer.Die folgende Anleitung kann nur als Wegweiser dazu dienen, wie
Sie Kerberos für FreeBSD konfigurieren. Für eine komplette
Beschreibung des Systems, sollten Sie sich auf jeden Fall die
entsprechenden Manualpage ansehen.Installation von KerberosMITKerberosInstallationKerberos ist eine optionale Komponente von FreeBSD. Am leichtesten
installieren Sie die Software, wenn Sie bei der ersten Installation
von FreeBSD in sysinstall die
Distribution 'krb4' oder 'krb5' auswählen. Damit installieren
Sie entweder die 'eBones' (KerberosIV) oder 'Heimdal' (Kerberos5)
Version von Kerberos. Beide Versionen werden mit FreeBSD ausgeliefert,
da sie außerhalb von den USA oder Kanada entwickelt werden.
Sie unterliegen deshalb auch nicht den restriktiven
Exportbeschränkungen der USA und sind auch für
Bewohner anderer Länder zugänglich.Als Alternative steht die MIT Variante von Kerberos in der
Ports-Kollektion unter security/krb5 zur
Verfügung.Erstellen der initialen DatenbankDie folgenden Schritte werden nur auf dem Kerberos-Server
durchgeführt. Stellen Sie bitte vorher sicher, dass
keine alten Kerberos-Datenbanken mehr vorhanden sind. Im
Verzeichnis /etc/kerberosIV sollten sich nur
die folgenden Dateien befinden:&prompt.root; cd /etc/kerberosIV
&prompt.root; ls
README krb.conf krb.realmsWenn noch andere Dateien, wie principal.*
oder master_key, existieren, müssen
Sie die alte Kerberos-Datenbank mit kdb_destroy
löschen. Wenn Kerberos nicht läuft, können Sie
die Dateien auch einfach löschen.Sie sollten nun die Dateien krb.conf und
krb.realms editieren, um Ihr Kerberos-Realm zu
definieren. Das folgende Beispiel zeigt dies für das Realm
EXAMPLE.COM auf dem Server
grunt.example.com.
krb.conf sollte wie folgt aussehen:&prompt.root; cat krb.conf
EXAMPLE.COM
EXAMPLE.COM grunt.example.com admin server
CS.BERKELEY.EDU okeeffe.berkeley.edu
ATHENA.MIT.EDU kerberos.mit.edu
ATHENA.MIT.EDU kerberos-1.mit.edu
ATHENA.MIT.EDU kerberos-2.mit.edu
ATHENA.MIT.EDU kerberos-3.mit.edu
LCS.MIT.EDU kerberos.lcs.mit.edu
TELECOM.MIT.EDU bitsy.mit.edu
ARC.NASA.GOV trident.arc.nasa.govDie zusätzlich aufgeführten Realms brauchen Sie nicht
anzulegen. Sie zeigen hier nur, wie man Kerberos dazu bringt, andere
Realms zu erkennen. Sie können Sie also auch weglassen.Die erste Zeile benennt das Realm, in dem das System arbeitet.
Die anderen Zeilen enthalten Realm/Host Paare. Der erste Wert jeder
Zeile ist das Realm, der zweite Teil ein Host, der in diesem
Realm Key Distribution Center ist. Die
Schlüsselwörter admin server nach einem
Hostnamen bedeuten, dass dieser Host auch einen administrativen
Datenbankserver zur Verfügung stellt. Weitere Erklärungen zu
diesen Begriffen finden Sie in den Kerberos Manualpages.Als nächstes muss
grunt.example.com in das Realm
EXAMPLE.COM aufgenommen werden. Des Weiteren
erstellen wir einen Eintrag, der alle Rechner der Domäne
.example.com in das Realm
EXAMPLE.COM aufnimmt.
krb.realms sollte danach so aussehen:&prompt.root; cat krb.realms
grunt.example.com EXAMPLE.COM
.example.com EXAMPLE.COM
.berkeley.edu CS.BERKELEY.EDU
.MIT.EDU ATHENA.MIT.EDU
.mit.edu ATHENA.MIT.EDUDie zusätzlichen Realms sind hier wieder als Beispiel
gedacht. Sie können sie der Einfachheit halber auch
weglassen.Die erste Zeile nimmt ein einzelnes System
in das Realm auf. Die anderen Zeilen zeigen, wie bestimmte
Subdomänen einem bestimmten Realm zugeordnet werden.Das folgende Kommando muss nur auf dem Kerberos-Server
(oder Key Distribution Center) laufen. Mit
kdb_init können wir die Datenbank
anlegen:&prompt.root; kdb_initRealm name [default ATHENA.MIT.EDU ]:EXAMPLE.COM
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter Kerberos master key:Anschließend muss der Schlüssel gespeichert
werden, damit Server auf der lokalen Maschine darauf zugreifen
können. Dies geschieht mit kstash:&prompt.root; kstashEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!Das verschlüsselte Master-Passwort wurde in
/etc/kerberosIV/master_key gesichert.Anlegen von PrinzipalsFür jedes System, das mit Kerberos
gesichert werden soll, müssen zwei Prinzipale in die
Datenbank eingetragen werden. Ihre Namen sind
kpasswd und rcmd. Beide
Prinzipale müssen für jedes System angelegt werden, wobei
die Instanz der Name des jeweiligen Systems ist.Die Dæmonen kpasswd und
rcmd erlauben es anderen Systemen,
Kerberos-Passwörter zu ändern und Kommandos wie
rcp, rlogin und
rsh laufen zu lassen.Beide Einträge werden im Folgenden angelegt:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:passwdInstance:grunt
<Not found>, Create [y] ?y
Principal: passwd, Instance: grunt, kdc_key_ver: 1
New Password: <---- geben Sie hier Zufallswerte ein
Verifying password
New Password: <---- geben Sie hier Zufallswerte ein
Random password [y] ?y
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name:rcmdInstance:grunt
<Not found>, Create [y] ?
Principal: rcmd, Instance: grunt, kdc_key_ver: 1
New Password: <---- geben Sie hier Zufallswerte ein
Verifying password
New Password: <---- geben Sie hier Zufallswerte ein
Random password [y] ?
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- geben Sie nichts an, um das Programm zu verlassenErstellen der Server-DateiWir müssen nun für jede Maschine die Instanzen,
die Dienste definieren, aus der Datenbank mit
ext_srvtab extrahieren. Die erstelle Datei
muss auf einem sicheren Weg in das
/etc/kerberosIV Verzeichnis jedes Clients
kopiert werden. Die Datei muss auf jedem Server und auf
jedem Client vorhanden sein und ist unabdingbar für
Kerberos.&prompt.root; ext_srvtab gruntEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Generating 'grunt-new-srvtab'....Das Kommando erzeugt Dateien mit einem temporären Namen,
der es anderen Servern erlaubt, ihre Datei abzuholen. Die Datei
muss auf dem entsprechenden System in srvtab
umbenannt werden. Auf dem originalen System können Sie
mv benutzen, um die Datei umzubenennen:&prompt.root; mv grunt-new-srvtab srvtabWenn die Datei für ein Client-System bestimmt ist und das
Netzwerk nicht sicher ist, kopieren Sie die Datei auf ein bewegliches
Medium und transportieren sie physikalisch. Kopieren Sie die Datei
auf den Client in das Verzeichnis /etc/kerberosIV.
Benennen Sie die Datei in srvtab um und setzen Sie
schließlich noch die Berechtigungen auf 600:&prompt.root; mv grumble-new-srvtab srvtab
&prompt.root; chmod 600 srvtabFüllen der DatenbankWir können nun Benutzer in der Datenbank anlegen. Mit
kdb_edit legen wir zuerst die Benutzerin
jane an:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:janeInstance:
<Not found>, Create [y] ?y
Principal: jane, Instance: , kdc_key_ver: 1
New Password: <---- geben Sie ein sicheres Passwort ein
Verifying password
New Password: <---- wiederholen Sie die Eingabe
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- geben Sie nichts an, um das Programm zu verlassenTestenZuerst müssen die Kerberos-Dæmonen gestartet sein.
Wenn Sie /etc/rc.conf richtig angepasst haben,
passiert das automatisch, wenn Sie booten. Dieser Schritt ist nur
auf dem Kerberos-Server notwendig, die Clients bekommen alles
was sie brauchen aus dem /etc/kerberosIV
Verzeichnis.&prompt.root; kerberos &
Kerberos server starting
Sleep forever on error
Log file is /var/log/kerberos.log
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Current Kerberos master key version is 1
Local realm: EXAMPLE.COM
&prompt.root; kadmind -n &
KADM Server KADM0.0A initializing
Please do not use 'kill -9' to kill this job, use a
regular kill instead
Current Kerberos master key version is 1.
Master key entered. BEWARE!Jetzt können wir mit kinit versuchen,
ein Ticket für die ID jane, die wir
oben angelegt haben, zu erhalten:&prompt.user; kinit jane
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane"
Password:Mit klist können Sie sich vergewissern,
dass Sie die Tickets auch erhalten haben:&prompt.user; klist
Ticket file: /tmp/tkt245
Principal: jane@EXAMPLE.COM
Issued Expires Principal
Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COMVersuchen Sie nun das Passwort mit passwd
zu ändern, um zu überprüfen, dass der
kpasswd Dæmon auch auf der
Kerberos-Datenbank autorisiert ist:&prompt.user; passwd
realm EXAMPLE.COM
Old password for jane:New Password for jane:
Verifying password
New Password for jane:
Password changed.Anlegen von su PrivilegienMit Kerberos kann jedem Benutzer, der
root-Privilegien braucht, ein
eigenes Passwort für
su zugewiesen werden. Dies wird dadurch
erreicht, dass die Instanz eines Prinzipals
root ist. Mit kbd_edit
legen wir nun den Eintrag jane.root in der
Kerberos-Datenbank an:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:janeInstance:root
<Not found>, Create [y] ? y
Principal: jane, Instance: root, kdc_key_ver: 1
New Password: <---- geben Sie ein sicheres Passwort ein
Verifying password
New Password: <---- geben Sie das Passwort erneut ein
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?12 <--- Keep this short!
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- geben Sie nichts an, um das Programm zu verlassenVersuchen Sie nun, für diesen Prinzipal Tickets zu
bekommen:&prompt.root; kinit jane.root
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane.root"
Password:Als nächstes fügen wir den Prinzipal in
.klogin von root ein:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMJetzt benutzen wir su:&prompt.user; su
Password:und kontrollieren, welche Tickets wir haben:&prompt.root; klist
Ticket file: /tmp/tkt_root_245
Principal: jane.root@EXAMPLE.COM
Issued Expires Principal
May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COMWeitere KommandosIn einem der Beispiele haben wir einen Prinzipal mit
dem Namen jane und der Instanz
root angelegt. Der Prinzipal entstand aus
einem Benutzer mit dem gleichen Namen. Unter Kerberos ist es
Standard, dass ein
principal.instance der Form
username.root es dem
Benutzer username erlaubt, mit
suroot zu werden, wenn die
entsprechenden Einträge in .klogin von
root existieren:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMDas gilt auch für die .klogin-Datei
im Heimatverzeichnis eines Benutzers:&prompt.user; cat ~/.klogin
jane@EXAMPLE.COM
jack@EXAMPLE.COMDie Einträge erlauben jedem, der sich im Realm
EXAMPLE.COM als jane oder
jack mit kinit authentifiziert
hat, über rlogin, rsh
oder rcp Zugriff auf den Account
jane und dessen Dateien.Im folgenden Beispiel meldet sich jane
mit Kerberos auf grunt an:&prompt.user; kinit
MIT Project Athena (grunt.example.com)
Password:
&prompt.user; rlogin grunt
Last login: Mon May 1 21:14:47 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995Im folgenden Beispiel wurde der Prinzipal jack
mit einer Instanz null angelegt. Mit der obigen
.klogin-Datei kann er sich nun auf derselben
Maschine als jane anmelden:&prompt.user; kinit
&prompt.user; rlogin grunt -l jane
MIT Project Athena (grunt.example.com)
Password:
Last login: Mon May 1 21:16:55 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995GaryPalmerBeigetragen von AlexNashFirewallsFirewallSicherheitFirewallsFirewalls sind sehr wichtig für Leute, die mit dem Internet
verbunden sind. Weiterhin halten sie Einzug in private Netzwerke, um
dort die Sicherheit zu verbessern. Dieser Abschnitt erklärt,
was Firewalls sind, wie sie benutzt werden und wie man die
Möglichkeiten von FreeBSD benutzen kann, um eine Firewall zu
implementieren.Es wird oft gedacht, dass eine Firewall zwischen dem internen
Netzwerk und dem weiten, schlechten Internet
alle Sicherheitsprobleme löst. Eine Firewall kann die Sicherheit
erhöhen, doch eine schlecht aufgesetzte Firewall ist ein
größeres Sicherheitsrisiko als gar keine Firewall. Eine
Firewall ist nur eine weitere Sicherheitsschicht, sie verhindert
aber nicht, dass ein wirklich entschlossener Cracker in
Ihr internes Netz eindringt. Wenn Sie Ihre interne Sicherheit
vernachlässigen, weil Sie Ihre Firewall für undurchdringlich
halten, machen Sie den Crackern die Arbeit leichter.Was ist eine Firewall?Auf dem Internet sind momentan zwei Arten von Firewalls
gebräuchlich. Die erste Art ist ein
Paketfilter, in dem ein Kernel auf einer
Maschine mit mehreren Netzwerkkarten auf Grund von Regeln
entscheidet, ob er ein Paket weiterleitet oder nicht. Der zweite
Typ sind Proxy-Server, die auf Dæmonen
angewiesen sind. Die Dæmonen authentifizieren Benutzer
und leiten Pakete weiter, das heißt sie können auf
Maschinen mit mehreren Netzwerkverbindungen laufen, auf denen
das Weiterleiten von Paketen durch den Kernel ausgeschaltet ist.Manchmal werden beide Arten einer Firewall kombiniert und es
ist nur einer besonderen Maschine, die
Bastion Host genannt wird, erlaubt, Pakete
in das interne Netzwerk über einen Paketfilter zu schicken.
Auf dem Bastion Host laufen Proxy-Dienste, die im Allgemeinen
sicherer als normale Authentifizierungsmechanismen sind.FreeBSD besitzt einen Kernel-Paketfilter (IPFW), der im Rest
dieses Abschnitts behandelt wird. Proxy-Server können
mit Hilfe von Software von Drittherstellern auf FreeBSD realisiert
werden, doch gibt es so viele Proxy-Server, dass deren
Behandlung den Rahmen dieses Abschnitts sprengen würde.PaketfilterEin Router ist eine Maschine, die Pakete zwischen zwei oder
mehr Netzwerken weiterleitet. Ein Paketfilter ist ein spezieller
Router, der mit einem Regelwerk entscheidet, ob er Pakete
weiterleitet. Um den Filter zu aktivieren, müssen
Sie zuerst die Regeln definieren, die festlegen, ob ein
Paket weitergeleitet wird oder nicht.Um zu entscheiden, ob ein Paket weitergeleitet wird, sucht
die Firewall eine Regel, die auf den Inhalt des Paketheaders
passt. Wenn eine passende Regel gefunden wurde, wird die Aktion
der Regel ausgeführt. Die Aktion kann das Paket blockieren,
weiterleiten oder auch dem Sender eine ICMP-Nachricht schicken.
Die Regeln werden der Reihenfolge nach durchsucht und nur die
erste passende Regel wird angewandt. Daher wird auch von einer
Regelkette gesprochen.Die Kriterien, nach denen Sie ein Paket spezifizieren
können, hängen von der eingesetzten Software ab.
Typischerweise können Sie Pakete nach der Quell IP-Adresse,
der Ziel IP-Adresse, dem Quellport, dem Zielport (bei Protokollen,
die diese unterscheiden) oder dem Pakettyp (UDP, TCP, ICMP)
unterscheiden.Proxy-ServerAuf Proxy-Servern werden die normalen Systemdienste,
wie telnetd
oder ftpd,
durch besondere Server ersetzt. Diese Server werden
Proxy-Server genannt, da sie normalerweise
nur weitergehende Verbindungen erlauben
(proxy engl. für
Stellvertreter). Zum Beispiel können Sie auf Ihrer
Firewall einen Proxy-Server für
telnet laufen lassen, der Verbindungen
aus dem Internet erlaubt. Ein Authentifizierungsmechanismus
auf dem Proxy-Server erlaubt dann den Zugriff auf Ihr
internes Netzwerk. Für den umgekehrten Weg können Sie
natürlich auch Proxy-Server einsetzen.Proxy-Server sind in aller Regel sicherer als normale Server
und bieten oft eine Reihe von Authentifizierungsmechanismen. Dazu
gehören Einmal-Passwort Systeme, bei denen das zum
Anmelden verwendete Passwort sofort ungültig wird und
nicht zu einer weiteren Anmeldung benutzt werden kann, auch wenn
es abgehört wurde. Da Proxy-Server den Benutzern keinen
Zugang zu dem System geben, wird es für einen Angreifer
sehr schwer, Hintertüren zur Umgehung Ihres Sicherheitssystems
zu installieren.Mit Proxy-Servern lassen sich die Zugriffe meist noch weiter
beschränken. Der Zugriff kann auf bestimmte Rechner
eingeschränkt werden und oft ist es möglich,
festzulegen, welcher Benutzer mit welcher Zielmaschine kommunizieren
darf. Welche Möglichkeiten Sie haben, hängt stark
von der Proxy-Software ab, die Sie einsetzen.Was kann ich mit IPFW machen?ipfwIPFW, das von FreeBSD zur Verfügung gestellt wird,
ist ein Paketfilter und ein Accounting-System, das im Kernel
läuft und mit &man.ipfw.8; ein Werkzeug im Userland
zur Verfügung stellt. Beide Teile zusammen erlauben es Ihnen,
die Regeln für Routing Entscheidungen im Kernel zu definieren
oder abzufragen.In IPFW gibt es zwei zusammenhängende Teile: Die
Firewall filtert Pakete und das IP-Accounting-Modul
überwacht mit einem Regelwerk, ähnlich dem der
Firewall, die Nutzung Ihres Routers.
Damit können Sie zum Beispiel sehen, wie viel Verkehr auf
Ihrem Router von einer bestimmten Maschine kommt oder wie viel
WWW (World Wide Web) Verkehr durch Ihren Router geht.Durch das Design von IPFW können Sie IPFW auch auf
Maschinen, die keine Router sind, einsetzen und einen Paketfilter
für eingehende und ausgehende Verbindungen konfigurieren.
Dies ist ein Spezialfall der normalen Verwendung von IPFW
und daher werden dieselben Kommandos und Techniken benutzt.Aktivieren von IPFWipfwaktivierenDer größte Teil des IPFW-Systems befindet sich im
Kernel, daher müssen Sie die Konfigurationsdatei des Kernels
editieren und anschließend den Kernel neu übersetzen.
Das Kapitel Konfiguration des
FreeBSD Kernels beschreibt, wie Sie dazu
vorzugehen haben.In der Voreinstellung verbietet IPFW
alle Verbindungen. Sie
haben sich ausgesperrt, wenn Sie den Kernel mit
Firewall-Unterstützung starten und keine eigenen Regeln,
die einen Zugriff erlauben, definiert haben. Zum ersten
Überprüfen der Firewall-Funktion können Sie die
Firewall öffnen, indem Sie
firewall_type=open in
/etc/rc.conf eintragen und danach, wenn
alles funktioniert hat, die Regeln in
/etc/rc.firewall anpassen. Um zu vermeiden,
dass Sie sich aus Versehen aussperren, konfigurieren Sie die
Firewall nicht über eine
ssh-Verbindung sondern an der Konsole.
Sie können auch in der Voreinstellung alle Verbindungen
zulassen, indem Sie die Option
IPFIREWALL_DEFAULT_TO_ACCEPT in die
Kernelkonfiguration aufnehmen.Momentan gibt es vier Optionen in der Kernelkonfiguration, die
IPFW betreffen:options IPFIREWALLFügt den Paketfilter-Code in den Kernel ein.options IPFIREWALL_VERBOSEAktiviert das Loggen von Paketen mit &man.syslogd.8;.
Ohne diese Option werden keine Pakete geloggt, auch wenn Sie
in den Filterregeln das Loggen angeben.options IPFIREWALL_VERBOSE_LIMIT=10Begrenzt die Anzahl der über &man.syslogd.8;
geschriebenen Einträge. Die Option ist in Umgebungen
mit hoher Aktivität nützlich, in denen Sie die
Firewall Aktivitäten loggen möchten, aber einem
Angreifer nicht die Möglichkeit eines Denial of Service
Angriffs durch das Überlasten von syslog geben
wollen.Erreicht eine Regel der Regelkette die angegebene Grenze,
so wird für diesen Eintrag das Loggen abgestellt. Um
das Loggen von Paketen wieder zu aktivieren, müssen Sie
den Zähler mit &man.ipfw.8; zurücksetzen:&prompt.root; ipfw zero 4500Hier ist 4500 die Nummer der Regel in
der Regelkette, für die Sie das Log weiterführen
möchten.options IPFIREWALL_DEFAULT_TO_ACCEPTÄndert die Voreinstellung der Firewall, sodass alle
Verbindungen erlaubt anstatt verboten sind. Diese
Einstellung vermeidet, dass Sie sich aussperren, wenn Sie
einen Kernel mit IPFIREWALL und ohne
eigene Regeln starten. Wenn Sie &man.ipfw.8; wie einen
Filter zum Lösen spezieller Probleme bei deren
Auftreten verwenden, kann diese Option sehr nützlich
sein. Diese Einstellung öffnet die Firewall und
verändert ihre Arbeitsweise. Gehen Sie daher sehr
vorsichtig mit ihr um.Frühere Versionen von FreeBSD stellten die Option
IPFIREWALL_ACCT zur Verfügung. Die Option
ist mittlerweile überholt, da der Firewall Code automatisch
Accounting Möglichkeiten bereitstellt.Konfiguration von IPFWipfwKonfigurationMit &man.ipfw.8; konfigurieren Sie die IPFW-Software. Die
Syntax dieses Kommandos sieht ziemlich kompliziert aus, doch wenn
Sie einmal den Aufbau der Kommandos verstanden haben, ist es sehr
einfach.Das Kommando unterstützt vier verschiedene Operationen:
Hinzufügen/Löschen, Anzeigen und Zurücksetzen von
Regeln, sowie das Zurücksetzen von Paketzählern. Die
Operationen Hinzufügen/Löschen werden genutzt, um die
Regeln, nach denen Pakete akzeptiert, blockiert oder geloggt
werden, zu erstellen. Die Operation Anzeigen zeigt die Regelkette
und die Paketzähler an. Die Operation Zurücksetzen
löscht alle Regeln der Regelkette. Mit der letzten Operation
können Sie ein oder mehrere Paketzähler auf den Wert Null
zurücksetzen.Ändern der IPFW-RegelnDie Syntax für diese Operation lautet:
ipfw-NKommandoindexAktionlogProtokollAdressenOptionenDieser Aufruf unterstützt eine Option:-NLöst Adressen und Namen von Diensten in der
Ausgabe auf.Kommando kann auf die kürzeste
eindeutige Länge reduziert werden. Gültig sind die
Werte:addFügt einen Eintrag in die Firewall/Accounting
Regelkette ein.deleteLöscht einen Eintrag in der Firewall/Accounting
Regelkette.Frühere Versionen von IPFW verfügten über
getrennte Firewall- und Accounting-Einträge in der Regelkette.
In der jetzigen Version steht das Accounting für jeden
Eintrag in der Firewall-Regelkette zur Verfügung.Wenn ein Wert für index angegeben
ist, so wird die Regel an entsprechender Stelle in die Regelkette
eingefügt. Ansonsten wird die Regel an das Ende der Kette
gestellt, wobei der Index um 100 größer ist als der
Index der letzten Regel (die voreingestellte letzte Regel mit der
Nummer 65535 wird in diesem Verfahren nicht
berücksichtigt).Wenn der Kernel mit IPFIREWALL_VERBOSE
erstellt wurde, gibt die Regel mit der Option
log Meldungen auf der Systemkonsole
aus.Gültige Werte für Aktion
sind:rejectBlockiert das Paket und schickt dem Sender die
ICMP-Nachricht host or port unreachable.allowLeitet das Paket normal weiter. Zulässige Aliase
sind pass, permit
und accept.denyBlockiert das Paket und benachrichtigt den Sender
nicht mit einer ICMP-Nachricht. Dem
Sender kommt es so vor, als hätte das Paket sein Ziel
nie erreicht.countErhöht den Paketzähler für diese Regel,
trifft aber keine Entscheidung wie mit dem Paket zu
verfahren ist, das heißt die nächste Regel der
Kette wird auf das Paket angewendet.Es ist möglich, die kürzeste eindeutige Form der
Aktion anzugeben.Für Protokoll können die
folgenden Werte angegeben werden:allTrifft auf jedes IP-Paket zu.icmpPasst auf jedes ICMP-Paket.tcpPasst auf jedes TCP-Paket.udpTrifft auf jedes UDP-Paket zu.Die Syntax für Adresse
lautet:fromAdresse/MaskePorttoAdresse/MaskePortvia InterfacePort können Sie nur angeben,
wenn das Protokoll auch Ports
unterstützt (UDP und TCP). ist optional und gibt die IP-Adresse,
den Domainnamen eines lokalen Interfaces oder den Namen des
Interfaces (z.B. ed0) an und trifft nur
auf Pakete zu, die durch dieses Interface gehen. Die Nummern der
Interfaces können mit einem Platzhalter angegeben werden,
ppp* trifft auf alle Kernel-PPP Interfaces
zu.Adresse/Maske können Sie wie
folgt angeben:
Adresse
oder
Adresse/Bitmaske
oder
Adresse:MaskenmusterAnstelle einer IP-Adresse können Sie einen gültigen
Hostnamen angeben.
ist eine
dezimale Zahl, die angibt, wie viele Bits in der Adressmaske
gesetzt werden sollen. Die Angabe
192.216.222.1/24 erstellt
eine Maske, die auf jede Adresse des Klasse C Subnetzes
192.216.222 zutrifft.
Das
wird mit der gegebenen IP-Adresse logisch UND verknüpft.
Das Schlüsselwort any trifft auf jede
IP-Adresse zu.Die Portnummern werden wie folgt angegeben:
Port,Port,Port…
Dies gibt entweder einen Port oder eine Liste von Ports an.
Port-Port
Gibt einen Portbereich an. Sie können einen einzelnen
Bereich mit einer Liste kombinieren, müssen aber den Bereich
immer zuerst angeben.Die verfügbaren Optionen
sind:fragTrifft auf Pakete zu, die nicht das erste Fragment
eines Datagrams sind.inTrifft auf eingehende Pakete zu.outTrifft auf ausgehende Pakete zu.ipoptions specTrifft auf alle IP-Pakete zu, deren Header die in
spec angegebenen, durch Kommata
separierte, Optionen enthalten. Die unterstützten
IP-Optionen sind: ssrr (strict source
route), lsrr (loose source route),
rr (record packet route), und
ts (time stamp). Ein führendes
! trifft auf alle Pakete zu, die diese
Option nicht gesetzt haben.establishedTrifft auf alle Pakete zu, die zu einer schon
bestehenden TCP-Verbindung gehören, das heißt
das RST- oder ACK-Bit ist gesetzt. Sie können den
Durchsatz der Firewall verbessern, wenn Sie die
established Regeln soweit wie
möglich an den Anfang der Regelkette stellen.setupPasst auf alle Pakete, die versuchen eine
TCP-Verbindung aufzubauen, das heißt das SYN-Bit ist
gesetzt und das ACK-Bit ist nicht gesetzt.tcpflags flagsTrifft auf alle Pakete zu, die im TCP-Header eine der
durch Kommata getrennten Option gesetzt haben. Die
gültigen Optionen sind: fin,
syn, rst,
psh, ack und
urg. Mit einem führenden
! kann die Abwesenheit einer Option
angegeben werden.icmptypes typesTrifft auf ICMP-Pakete vom Typ
types. Hier kann eine
Kommata separierte Aufzählung von Bereichen oder
einzelnen Typen angegeben werden. Gebräuchliche Typen
sind: 0 echo reply (ping reply),
3 destination unreachable,
5 redirect, 8 echo
request (ping request) und 11 time
exceeded, das die Überschreitung der TTL angibt und
zum Beispiel von &man.traceroute.8; genutzt wird.Anzeigen der IPFW-RegelnDie Syntax für dieses Kommando lautet:
ipfw-a-c-d-e-t-N-SlistSieben Optionen sind für diese Form gültig:-aZeigt die Paketzähler zu den Regeln an. Diese
Option ist die einzige Möglichkeit, die Zähler zu
sehen.-cZeigt die Regeln in einer kompakten
Darstellung an.-dZeigt zusätzlich zu den statischen Regeln
die dynamischen Regeln an.-eZeigt auch abgelaufene dynamische Regeln an, wenn
die Option zusammen mit angegeben
wird.-tZeigt die Zeit, zu der die Regel zuletzt aktiviert
wurde. Die Syntax dieser Ausgabe ist nicht kompatibel mit
der Eingabesyntax von &man.ipfw.8;.-NVersucht Adressen und Namen von Diensten
aufzulösen.-SZeigt den Regelsatz an, zu dem die Regel gehört.
Inaktive Regeln werden ohne diesen Schalter nicht
angezeigt.Zurücksetzen der IPFW-RegelnDie Regeln setzen Sie wie folgt zurück:
ipfwflushDamit werden alle Regeln der Regelkette, mit Ausnahme der
Vorgaberegel 65535 gelöscht. Seien Sie
vorsichtig, wenn Sie die Regeln zurücksetzen. Die Vorgabe
für die Regel 65535 ist es, alle Pakete
zu blockieren, das heißt, das System ist solange vom
Netzwerk abgeschnitten, bis wieder neue Regeln in die Kette
eingefügt werden.Zurücksetzen der PaketzählerUm einen oder mehrere Paketzähler zurückzusetzen,
verwenden Sie folgende Syntax:
ipfwzeroindexWenn Sie das Argument index nicht
angeben, werden alle Paketzähler zurückgesetzt. Wenn
Sie das Argument angeben, wird nur der Zähler der
angegebenen Regel zurückgesetzt.Beispiel für ipfw
KommandozeilenDas folgende Kommando blockiert alle Pakete, die von dem Host
evil.crackers.org auf den Telnet-Port
von nice.people.org gehen:&prompt.root; ipfw add deny tcp from evil.crackers.org to nice.people.org 23Das nächste Beispiel verbietet jeden IP-Verkehr von dem
ganzen crackers.org Klasse C
Netzwerk zu der Maschine nice.people.org:&prompt.root; ipfw add deny log tcp from evil.crackers.org/24 to nice.people.orgWenn Sie X-Sitzungen zu Ihrem internen Netzwerk, einem Subnetz
eines C Klasse Netzwerkes, verbieten wollen, wenden Sie das
folgende Kommando an:&prompt.root; ipfw add deny tcp from any to my.org/28 6000 setupUm die Accounting Einträge zu sehen:
&prompt.root; ipfw -a list
oder kürzer
&prompt.root; ipfw -a lDen Zeitpunkt, an dem eine Regel das letzte Mal aktiviert
wurde, sehen Sie mit:&prompt.root; ipfw -at lAufbau einer Firewall mit PaketfilternBeachten Sie bitte, dass die folgenden Vorschläge
wirklich nur Vorschläge sind. Die Anforderungen jeder
Firewall sind verschieden und wir können Ihnen wirklich
nicht sagen, wie Sie Ihre maßgeschneiderte Firewall einrichten
müssen.Wenn Sie Ihre Firewall außerhalb eines kontrollierten
Testumfelds aufbauen, empfehlen wir Ihnen dringend, das Loggen der
Regeln im Kernel zu aktivieren und Regeln zu verwenden, die loggen.
Das macht es Ihnen leichter, Fehler zu finden und diese ohne
große Unterbrechungen zu beheben. Auch nachdem Sie die
Firewall aufgesetzt haben, empfehlen wir Ihnen, die `deny'-Regeln
zu loggen. Dies macht es leichter, Angriffen nachzugehen und das
Regelwerk Ihrer Firewall zu ändern, wenn sich die Anforderungen
einmal ändern.Wenn Sie Pakete der accept-Regel loggen,
denken Sie bitte daran, dass Sie leicht sehr
große Datenmengen erzeugen können, da jedes
durchgelassene Paket einen Eintrag im Log generiert. Es kann
vorkommen, das große FTP oder HTTP Übertragungen das
System langsamer machen. Weiterhin wird für jedes der
betroffenen Pakete die Latenzzeit erhöht, da von Seiten des
Kernels mehr Arbeit zum Weiterleiten des Paketes erforderlich ist.
Da alle Daten auf die Platte ausgeschrieben werden wird
syslogd auch mehr Prozessorzeit
beanspruchen und es kann leicht passieren, dass die
Partition, die /var/log enthält voll
läuft.Sie sollten Ihre Firewall aus
/etc/rc.conf.local oder
/etc/rc.conf aktivieren. Die entsprechende
Manualpage zeigt Ihnen, welche Einstellungen Sie vornehmen
müssen und zeigt einige vorgegebene Firewall-Konfigurationen.
Wenn Sie keine der Vorgaben verwenden, können Sie Ihre
Regelkette mit ipfw list in eine Datei ausgeben
und diese Datei in /etc/rc.conf angeben. Wenn
sie weder /etc/rc.conf.local oder
/etc/rc.conf benutzen, um Ihre Firewall zu
aktivieren, stellen Sie bitte sicher, dass die Firewall
aktiviert ist, bevor die IP-Interfaces konfiguriert werden.Als nächstes müssen Sie festlegen, was Ihre Firewall
machen soll. Das wird sehr stark davon abhängen welche
Zugriffe Sie von außen auf Ihr Netzwerk erlauben wollen und
welche Zugriffe von innen nach außen erlaubt sein sollen.
Einige gebräuchliche Regeln sind:Blockieren Sie jeden einkommenden Zugriff auf Ports unter
1024 für TCP. Dort befinden sich die meisten der
sicherheitsrelevanten Dienste wie finger, SMTP (Post) und
telnet.Blockieren Sie jeden einkommenden
UDP-Verkehr. Es gibt wenige nützliche UDP-Dienste und
die, die nützlich sind, stellen meist eine Bedrohung der
Sicherheit dar (z.B. die RPC- und NFS-Protokolle von Sun).
Dies bringt allerdings auch Nachteile mit sich. Da UDP ein
verbindungsloses Protokoll ist, verbieten Sie auch die
Antworten auf ausgehende UDP-Pakete, wenn Sie eingehende
UDP-Verbindungen blockieren. Dies kann zum Beispiel Probleme
für Anwender des internen Netzwerks hervorrufen, wenn
diese einen externen Archie-Server (prospero) verwenden. Wenn
Sie den Zugriff auf Archie erlauben wollen, müssen Sie
Pakete von den Ports 191 und 1525 zu jedem internen UDP-Port
durch Ihre Firewall lassen. Ein anderer Dienst, den Sie
vielleicht erlauben wollen, ist ntp,
der vom Port 123 ausgeht.Verbieten Sie Verkehr von außen zum Port 6000. Der
Port 6000 wird für den Zugriff auf X-Server genutzt und
kann eine Bedrohung der Sicherheit darstellen, insbesondere
wenn die Anwender gewohnt sind xhost + zu
benutzen. Tatsächlich kann X einen Bereich von Ports
verwenden, der bei 6000 anfängt. Die Obergrenze ist durch
die Anzahl der Displays, die auf einer Maschine laufen, gegeben.
Laut RFC 1700 (Assigned Numbers) hat der höchst
mögliche Port die Nummer 6063.Überprüfen Sie, welche Ports von internen Servern
(z.B. SQL-Servern) benutzt werden. Da diese normalerweise aus
dem oben angesprochenen Bereich von 1-1024 fallen, ist es
wahrscheinlich gut, diese Ports ebenfalls zu blockieren.Eine Checkliste zum Aufbau einer Firewall ist vom CERT unter
- http://www.cert.org/tech_tips/packet_filtering.html
- erhältlich.
+
+ erhältlich.
Wie oben schon gesagt, können wir Ihnen nur
Richtlinien geben. Sie müssen selbst
entscheiden, welche Regeln Sie auf Ihrer Firewall einsetzen wollen.
Wir übernehmen keine Verantwortung
dafür, dass jemand in Ihr Netzwerk eindringt, auch wenn
Sie die obigen Ratschläge befolgt haben.IPFW Overhead und OptimierungenViele Leute wollen wissen, wie viel zusätzliche Last IPFW
auf einem System erzeugt. Hauptsächlich hängt dies von
der Art der Regelkette und der Geschwindigkeit des Prozessors ab.
Für die meisten Anwendungen mit einer kleinen Regelkette auf
einem Ethernet ist der Aufwand vernachlässigbar klein. Wenn
Sie genaue Zahlen brauchen, lesen Sie bitte weiter.Die folgenden Messungen wurden auf einem 486-66 mit
2.2.5-STABLE durchgeführt. Obwohl sich IPFW in
späteren FreeBSD Versionen leicht geändert hat, läuft
es doch mit vergleichbarer Geschwindigkeit. Zur Durchführung
der Messungen wurde in IPFW die verbrauchte Zeit in der Routine
ip_fw_chk gemessen. Die Ergebnisse wurden alle
1000 Pakete auf der Konsole ausgegeben.Zwei Regelsätze mit je 1000 Regeln wurden getestet. Der
erste Regelsatz sollte den schlimmsten Fall durch wiederholte
Anwendung der folgenden Regel demonstrieren:&prompt.root; ipfw add deny tcp from any to any 55555Da ein Großteil der Routine, die die Pakete
überprüft, durchlaufen werden muss, bevor
entschieden werden kann, ob das Paket wegen der Portnummer nicht
auf die Regel passt, wird mit dieser Regel der schlimmste Fall gut
simuliert. Nach 999 Wiederholungen dieser Regel folgte die Regel
allow ip from any to any.Der zweite Regelsatz wurde so entworfen, dass die
Überprüfung der Regel schnell abgeschlossen werden
kann:&prompt.root; ipfw add deny ip from 1.2.3.4 to 1.2.3.4Die Regel kann aufgrund einer nicht passenden IP-Adresse sehr
schnell verlassen werden. Nach 999 Wiederholungen dieser Regel
folgte wie im ersten Fall die Regel allow ip from any to
any.Im ersten Fall betrug der zusätzliche Aufwand 2,703 ms pro
Paket also ungefähr 2,7 µs pro Regel. Damit könnten
maximal ungefähr 370 Pakete pro Sekunde verarbeitet werden.
Mit einem 10 Mbps Ethernet und Paketen, die ungefähr 1500
Bytes groß sind, entspricht dies einer Ausnutzung von 55% der zur
Verfügung stehenden Bandbreite.Im letzten Fall wurde jedes Paket in 1,172 ms abgearbeitet, was
ungefähr 1,2 µs pro Regel entspricht. In diesem Fall
könnten maximal 853 Pakete pro Sekunde verarbeitet werden, was
die Bandbreite eines 10 Mbps Ethernet vollständig
ausnutzt.Die große Anzahl und die Beschaffenheit der Regeln in den
Beispielen entsprechen nicht der Wirklichkeit. Die Regeln dienten
nur der Messung der Geschwindigkeit. Wenn Sie eine effiziente
Regelkette aufbauen wollen, sollten Sie die folgenden
Ratschläge berücksichtigen:Setzen Sie eine established Regel so
früh wie möglich in die Regelkette, um den
Großteil des TCP Verkehrs abzudecken. Vor dieser Regel
sollten Sie keine allow tcp Regeln stehen
haben.Plazieren Sie häufig benutzte Regeln vor selten
benutzten Regeln, ohne dabei den Sinn der Regelkette zu
ändern. Welche Regeln häufig durchlaufen werden,
können Sie den Paketzählern mit ipfw
-a l entnehmen.OpenSSLsecurityOpenSSLOpenSSLDas OpenSSL-Toolkit ist seit FreeBSD 4.0 Teil des Basissystems.
OpenSSL stellt eine
universale Kryptographie Bibliothek sowie die Protokolle Secure
Sockets Layer v2/v3 (SSLv2/SSLv3) und Transport Layer Security v1
(TLSv1) zur Verfügung.Einer der Algorithmen, namentlich IDEA, in OpenSSL ist durch
Patente in den USA und anderswo geschützt und daher nicht frei
verfügbar. IDEA ist Teil des Quellcodes von OpenSSL wird aber
in der Voreinstellung nicht kompiliert. Wenn Sie den Algorithmus
benutzen wollen und die Lizenzbedingungen erfüllen, können
Sie MAKE_IDEA in
/etc/make.conf aktivieren und das System mit
make world neu bauen.Der RSA-Algorithmus ist heute in den USA und anderen Ländern
frei verfügbar. Früher wurde er ebenfalls durch ein Patent
geschützt.OpenSSLInstallationInstallation des QuellcodesOpenSSL ist Teil der src-crypto und
src-secure CVSup-Kollektionen. Mehr Informationen
über die Erhältlichkeit und das Aktualisieren des FreeBSD
Quellcodes erhalten Sie im Abschnitt
Bezugsquellen für FreeBSD.YoshinobuInoueBeigetragen von IPsecIPsecSicherheitIPsecAbschließende ZeichenAm Ende der Beispiele in diesem und anderen Abschnitten werden
Sie oft ein ^D sehen. Das bedeutet, dass Sie
die Control-Taste zusammen mit der Taste
D drücken sollen. Eine weiterere häufig
genutzte Kombination ist ^C. Hier drücken Sie
die Taste Control zusammen mit der
C-Taste.HOWTOs, die die Implementierung von IPsec in FreeBSD
beschreiben, finden Sie unter
und .IPsec stellt eine sichere Kommunikation auf IP- und Socket-Ebene
zur Verfügung. Der folgende Abschnitt zeigt wie Sie IPsec
benutzen. Weitere Einzelheiten können Sie dem
FreeBSD Developers' Handbook entnehmen.Die aktuelle Version von IPsec unterstützt den
Transport-Modus sowie den Tunnel-Modus, wobei der Tunnel-Modus einige
- Beschränkungen besitzt. Unter http://www.kame.net/newsletter/
+ Beschränkungen besitzt. Unter
+
finden Sie weitere Beispiele.Um IPsec benutzen zu können, müssen Sie folgende
Optionen in Ihren Kernel kompiliert haben:options IPSEC #IP security
options IPSEC_ESP #IP security (crypto; define w/IPSEC)Transport-Modus mit IPv4Um zwischen zwei Rechnern, im folgenden Beispiel HOST A
(10.2.3.4) und HOST B
(10.6.7.8) sicher zu kommunizieren,
müssen wir zuerst eine
Sicherheitsassoziation einrichten. Das
folgende Beispiel benutzt den alten AH (Authentication Header)
von HOST A zu HOST B. Für die Kommunikation von HOST B
zu HOST A wird der neue AH mit dem neuen ESP (Encapsulating
Security Payload) kombiniert.Zu den Verfahren AH, neuer AH,
ESP und neuem ESP müssen nun
Algorithmen ausgewählt werden. Die zur Verfügung
stehenden Algorithmen werden in &man.setkey.8; erläutert. Wir
entschieden uns für die Kombinationen MD5 für AH,
new-HMAC-SHA1 für neuen AH und new-DES-expIV mit 8 Byte IV
für den neuen ESP.Die Schlüssellänge hängt stark vom
gewählten Algorithmus ab. Für MD5 beträgt sie 16
Bytes, für new-HMAC-SHA1 20 Bytes und 8 Bytes für
new-DES-expIV. Wie wählten jeweils die Schlüssel
MYSECRETMYSECRET,
KAMEKAMEKAMEKAMEKAME und PASSWORD.Als nächstes müssen wir jedem Protokoll einen SPI
(Security Parameter Index) zuweisen. Beachten Sie bitte, dass
wir drei SPIs benötigen, da drei Header erzeugt werden (einer
für die Kommunikation von HOST A zu HOST B und zwei für
die Kommunikation von HOST B zu HOST A). Beachten Sie weiterhin,
dass die SPIs größer oder gleich 256 sein
müssen. Im folgenden Beispiel haben wir uns für 1000,
2000 und 3000 entschieden.
(1)
HOST A ------> HOST B
(1)PROTO=AH
ALG=MD5(RFC1826)
KEY=MYSECRETMYSECRET
SPI=1000
(2.1)
HOST A <------ HOST B
<------
(2.2)
(2.1)
PROTO=AH
ALG=new-HMAC-SHA1(new AH)
KEY=KAMEKAMEKAMEKAMEKAME
SPI=2000
(2.2)
PROTO=ESP
ALG=new-DES-expIV(new ESP)
IV length = 8
KEY=PASSWORD
SPI=3000
Um die Sicherheitsassoziation einzurichten, führen Sie
&man.setkey.8; auf HOST A und HOST B aus:&prompt.root; setkey -c
add 10.2.3.4 10.6.7.8 ah-old 1000 -m transport -A keyed-md5 "MYSECRETMYSECRET" ;
add 10.6.7.8 10.2.3.4 ah 2000 -m transport -A hmac-sha1 "KAMEKAMEKAMEKAMEKAME" ;
add 10.6.7.8 10.2.3.4 esp 3000 -m transport -E des-cbc "PASSWORD" ;
^DBevor Sie die Kommunikation mit IPsec benutzen können,
müssen Sie noch eine Sicherheits-Policy auf beiden Rechnern
einrichten:
Auf Host A:
&prompt.root; setkey -c
spdadd 10.2.3.4 10.6.7.8 any -P out ipsec
ah/transport/10.2.3.4-10.6.7.8/require ;
^D
Auf Host B:
&prompt.root; setkey -c
spdadd 10.6.7.8 10.2.3.4 any -P out ipsec
esp/transport/10.6.7.8-10.2.3.4/require ;
spdadd 10.6.7.8 10.2.3.4 any -P out ipsec
ah/transport/10.6.7.8-10.2.3.4/require ;
^D
HOST A --------------------------------------> HOST E
10.2.3.4 10.6.7.8
| |
========== old AH keyed-md5 ==========>
<========= new AH hmac-sha1 ===========
<========= new ESP des-cbc ============
Transport-Modus mit IPv6Das folgende Beispiel zeigt die Nutzung von IPsec mit
IPv6.Das folgende Beispiel richtet den ESP Transport-Modus für
TCP Verbindungen zwischen HOST B Port 110 und HOST A ein.
============ ESP ============
| |
Host-A Host-B
fec0::10 -------------------- fec0::11
Der Algorithmus zum Verschlüsseln ist blowfish-cbc, der
zugehörige Schlüssel ist kamekame.
Für die Authentifizierung wird hmac-sha1 mit dem
Schlüssel this is the test key verwendet. Auf
HOST A geben Sie die folgenden Befehle ein:
&prompt.root; setkey -c <<EOF
spdadd fec0::10[any] fec0::11[110] tcp -P out ipsec
esp/transport/fec0::10-fec0::11/use ;
spdadd fec0::11[110] fec0::10[any] tcp -P in ipsec
esp/transport/fec0::11-fec0::10/use ;
add fec0::10 fec0::11 esp 0x10001
-m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
add fec0::11 fec0::10 esp 0x10002
-m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
EOFEntsprechend auf HOST B:&prompt.root; setkey -c <<EOF
spdadd fec0::11[110] fec0::10[any] tcp -P out ipsec
esp/transport/fec0::11-fec0::10/use ;
spdadd fec0::10[any] fec0::11[110] tcp -P in ipsec
esp/transport/fec0::10-fec0::11/use ;
add fec0::10 fec0::11 esp 0x10001 -m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
add fec0::11 fec0::10 esp 0x10002 -m transport
-E blowfish-cbc "kamekame"
-A hmac-sha1 "this is the test key" ;
EOFBeachten Sie bitte die Richtung der erstellen Security
Policy.Tunnel-Modus mit IPv4Das folgende Beispiel baut einen Tunnel zwischen zwei Gateways
auf.Als Protokoll wird der alte AH Tunnel-Modus (RFC 1826)
verwendet. Zur Authentifizierung wird keyed-md5 mit dem
Schlüssel this is the test verwendet.
======= AH =======
| |
Network-A Gateway-A Gateway-B Network-B
10.0.1.0/24 ---- 172.16.0.1 ----- 172.16.0.2 ---- 10.0.2.0/24
Der Gateway A wird wie folgt konfiguriert:
&prompt.root; setkey -c <<EOF
spdadd 10.0.1.0/24 10.0.2.0/24 any -P out ipsec
ah/tunnel/172.16.0.1-172.16.0.2/require ;
spdadd 10.0.2.0/24 10.0.1.0/24 any -P in ipsec
ah/tunnel/172.16.0.2-172.16.0.1/require ;
add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any
-A keyed-md5 "this is the test" ;
add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any
-A keyed-md5 "this is the test" ;
EOFWenn wie oben die Portnummer weggelassen wird, wird
[any] verwendet. Mit -m wird
der Modus der Sicherheitsassoziation angegeben.
-m any gilt für den Transport- sowie den
Tunnel-Modus.Auf Gateway B geben Sie Folgendes ein:
&prompt.root; setkey -c <<EOF
spdadd 10.0.2.0/24 10.0.1.0/24 any -P out ipsec
ah/tunnel/172.16.0.2-172.16.0.1/require ;
spdadd 10.0.1.0/24 10.0.2.0/24 any -P in ipsec
ah/tunnel/172.16.0.1-172.16.0.2/require ;
add 172.16.0.1 172.16.0.2 ah-old 0x10003 -m any
-A keyed-md5 "this is the test" ;
add 172.16.0.2 172.16.0.1 ah-old 0x10004 -m any
-A keyed-md5 "this is the test" ;
EOFTunnel-Modus mit IPv6Transport- und Tunnel-Modus zwischen zwei GatewaysZwischen Gateway A und Gateway B soll der AH Transport-Modus
und der ESP Tunnel-Modus eingerichtet werden. In diesem Fall wird
zuerst der ESP-Tunnel eingerichtet, danach folgt das Einrichten des
AH Transport-Modus.
========== AH =========
| ======= ESP ===== |
| | | |
Network-A Gateway-A Gateway-B Network-B
fec0:0:0:1::/64 --- fec0:0:0:1::1 ---- fec0:0:0:2::1 --- fec0:0:0:2::/64
Für ESP wird 3des-cbc zur Verschlüsselung und hmac-sha1
zur Authentifizierung verwendet. Bei AH wird zur Authentifizierung
hmac-md5 benutzt. Auf Gateway A sieht die Konfiguration wie folgt
aus:
&prompt.root; setkey -c <<EOF
spdadd fec0:0:0:1::/64 fec0:0:0:2::/64 any -P out ipsec
esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require
ah/transport/fec0:0:0:1::1-fec0:0:0:2::1/require ;
spdadd fec0:0:0:2::/64 fec0:0:0:1::/64 any -P in ipsec
esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require
ah/transport/fec0:0:0:2::1-fec0:0:0:1::1/require ;
add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10001 -m tunnel
-E 3des-cbc "kamekame12341234kame1234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:1::1 fec0:0:0:2::1 ah 0x10001 -m transport
-A hmac-md5 "this is the test" ;
add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10001 -m tunnel
-E 3des-cbc "kamekame12341234kame1234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:2::1 fec0:0:0:1::1 ah 0x10001 -m transport
-A hmac-md5 "this is the test" ;
EOFIm Folgenden werden zwei Sicherheitsassoziationen mit
unterschiedlichen Endpunkten erstellt.Zwischen Host A und Gateway A soll ein ESP-Tunnel eingerichtet
werden. Zur Verschlüsselung wird cast128-cbc und zur
Authentifizierung wird hmac-sha1 verwendet. Zusätzlich wird
zwischen Host A und Host B der ESP Transport-Modus eingerichtet.
Zur Verschlüsselung wird rc5-cbc verwendet. Die
Authentifizierung verwendet hmac-md5.
================== ESP =================
| ======= ESP ======= |
| | | |
Host-A Gateway-A Host-B
fec0:0:0:1::1 ---- fec0:0:0:2::1 ---- fec0:0:0:2::2
Host A wird wie folgt konfiguriert:
&prompt.root; setkey -c <<EOF
spdadd fec0:0:0:1::1[any] fec0:0:0:2::2[80] tcp -P out ipsec
esp/transport/fec0:0:0:1::1-fec0:0:0:2::2/use
esp/tunnel/fec0:0:0:1::1-fec0:0:0:2::1/require ;
spdadd fec0:0:0:2::1[80] fec0:0:0:1::1[any] tcp -P in ipsec
esp/transport/fec0:0:0:2::2-fec0:0:0:l::1/use
esp/tunnel/fec0:0:0:2::1-fec0:0:0:1::1/require ;
add fec0:0:0:1::1 fec0:0:0:2::2 esp 0x10001
-m transport
-E cast128-cbc "12341234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:1::1 fec0:0:0:2::1 esp 0x10002
-E rc5-cbc "kamekame"
-A hmac-md5 "this is the test" ;
add fec0:0:0:2::2 fec0:0:0:1::1 esp 0x10003
-m transport
-E cast128-cbc "12341234"
-A hmac-sha1 "this is the test key" ;
add fec0:0:0:2::1 fec0:0:0:1::1 esp 0x10004
-E rc5-cbc "kamekame"
-A hmac-md5 "this is the test" ;
EOFChernLeeBeigetragen von OpenSSHOpenSSHSicherheitOpenSSHSecure Shell stellt Werkzeuge bereit, um sicher auf entfernte
Maschinen zuzugreifen. Die Kommandos rlogin,
rsh, rcp und
telnet können durch ssh ersetzt werden.
Zusätzlich können andere TCP/IP-Verbindungen sicher durch
ssh weitergeleitet (getunnelt) werden. Mit ssh werden alle
Verbindungen verschlüsselt, dadurch wird verhindert, dass
die Verbindung zum Beispiel abgehört oder übernommen
(Hijacking) werden kann.OpenSSH wird vom OpenBSD Projekt gepflegt und basiert auf
SSH v1.2.12 mit allen aktuellen Fixen und Aktualisierungen. OpenSSH
ist mit den SSH Protokollen der Versionen 1 und 2 kompatibel. Seit
FreeBSD 4.0 ist die OpenSSH Teil des Basissystems.Vorteile von OpenSSHMit &man.telnet.1; oder &man.rlogin.1; werden Daten in einer
unverschlüsselten Form über das Netzwerk gesendet. Daher
besteht die Gefahr, das Benutzer/Passwort Kombinationen
oder alle Daten an
beliebiger Stelle zwischen dem Client und dem Server abgehört
werden. Mit OpenSSH stehen eine Reihe von Authentifizierungs- und
Verschlüsselungsmethoden zur Verfügung, um das zu
verhindern.Aktivieren von sshdOpenSSHAktivierenStellen Sie sicher, dass /etc/rc.conf
die folgende Zeile enthält:sshd_enable="YES"Der ssh Dæmon wird damit bei
dem nächsten Neustart des Systems geladen. Alternativ
können Sie den Dæmon auch händisch starten.SSH ClientOpenSSHClient&man.ssh.1; arbeitet ähnlich wie &man.rlogin.1;:&prompt.root; ssh user@example.com
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? yes
Host 'example.com' added to the list of known hosts.
user@example.com's password: *******Der Anmeldevorgang wird danach, wie von
rlogin oder telnet gewohnt,
weiterlaufen. SSH speichert einen Fingerabdruck des
Serverschlüssels. Die Aufforderung, yes
einzugeben, erscheint nur bei der ersten Verbindung zu einem
Server. Weitere Verbindungen zu dem Server werden gegen den
gespeicherten Fingerabdruck des Schlüssels geprüft und
der Client gibt eine Warnung aus, wenn sich der empfangene
Fingerabdruck von dem gespeicherten unterscheidet. Die
Fingerabdrücke der Version 1 werden in
~/.ssh/known_hosts, die der Version 2 in
~/.ssh/known_hosts2 gespeichert.In der Voreinstellung akzeptieren OpenSSH Server Verbindungen
mit SSH v1 und SSH v2. Die Clients können sich aber das
Protokoll auswählen, dabei wird das Protokoll der Version 2
als robuster und sicherer als die Vorgängerversion
angesehen.Mit den Optionen oder
kann die Protokollversion, die ssh verwendet,
erzwungen werden.Secure CopyOpenSSHsecure copyscpMit scp lassen sich Dateien analog wie mit
rcp auf entfernte Maschinen kopieren. Mit
scp werden die Dateien allerdings in einer
sicheren Weise übertragen.&prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT
user@example.com's password:
COPYRIGHT 100% |*****************************| 4735
00:00
&prompt.root;Da der Fingerabdruck schon im vorigen Beispiel abgespeichert
wurde, wird er bei der Verwendung von scp in
diesem Beispiel überprüft. Da die Fingerabdrücke
übereinstimmen, wird keine Warnung ausgegeben.Die Argumente, die scp übergeben
werden, gleichen denen von cp in der Beziehung,
dass die ersten Argumente die zu kopierenden Dateien sind und
das letzte Argument den Bestimmungsort angibt. Da die Dateien
über das Netzwerk kopiert werden, können ein oder mehrere
Argumente die Form
besitzen.KonfigurationOpenSSHKonfigurationDie für das ganze System gültigen
Konfigurationsdateien des OpenSSH Dæmons und des Clients
finden sich in dem Verzeichnis
/etc/ssh.Die Client-Konfiguration befindet sich in
ssh_config, die des Servers befindet sich in
sshd_config.Das SSH-System lässt sich weiterhin über die
Anweisungen (Vorgabe ist
/usr/sbin/sshd) und
in /etc/rc.conf
konfigurieren.ssh-keygenMit &man.ssh-keygen.1; können RSA-Schlüssel für
einen Benutzer erzeugt werden, die anstelle von
Passwörtern verwendet werden können.&prompt.user; ssh-keygen
Initializing random number generator...
Generating p: .++ (distance 66)
Generating q: ..............................++ (distance 498)
Computing the keys...
Key generation complete.
Enter file in which to save the key (/home/user/.ssh/identity):
Enter passphrase:
Enter the same passphrase again:
Your identification has been saved in /home/user/.ssh/identity.
...&man.ssh-keygen.1; erzeugt einen öffentlichen und einen
privaten Schlüssel für die Authentifizierung. Der private
Schlüssel wird in ~/.ssh/identity, der
öffentliche Schlüssel in
~/.ssh/identity.pub gespeichert. Damit die
RSA-Schlüssel zur Authentifizierung verwendet werden
können, muss der öffentliche Schlüssel in der
Datei ~/.ssh/authorized_keys auf der
entfernten Maschine abgelegt werden.Damit werden Verbindungen zu der entfernten Maschine über
den RSA-Mechanismus anstelle von Passwörtern
authentifiziert.Wenn bei der Erstellung der Schlüssel mit
&man.ssh-keygen.1; ein Passwort angegeben wurde, wird der
Benutzer bei jeder Anmeldung zur Eingabe des Passworts
aufgefordert.Zum gleichen Zweck kann ein DSA-Schlüssel zur Verwendung
mit SSH v2 erstellt werden. Dazu rufen Sie das Kommando
ssh-keygen -d oder ssh-keygen -t
dsa mit FreeBSD &os.current; auf. Sie erzeugen damit ein
DSA-Schlüsselpaar, das nur in SSH v2 Verbindungen genutzt
wird. Der öffentliche Schlüssel wird in
~/.ssh/id_dsa.pub, der private Schlüssel
in ~/.ssh/id_dsa gespeichert.Die öffentlichen DSA-Schlüssel werden in
~/.ssh/authorized_keys2 auf der entfernten
Maschine abgelegt.Mit &man.ssh-agent.1; und &man.ssh-add.1; können Sie
mehrere durch Passwörter geschützte private
Schlüssel verwalten.SSH TunnelOpenSSHTunnelMit OpenSSH ist es möglich, einen Tunnel zu erstellen, in
dem ein anderes Protokoll verschlüsselt übertragen
wird.Das folgende Kommando erzeugt einen Tunnel für
telnet:&prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
&prompt.user;Dabei wurden die folgenden Optionen von ssh
verwendet:Erzwingt die Version 2 des Protokolls (Benutzen Sie die
Option nicht mit langsamen
ssh-Servern).Zeigt an, dass ein Tunnel erstellt werden soll.
Ohne diese Option würde ssh eine
normale Sitzung öffnen.Zwingt ssh im Hintergrund zu
laufen.Ein lokaler Tunnel wird in der Form
localport:remotehost:remoteport
angegeben. Die Verbindung wird dabei von dem lokalen Port
localport auf einen entfernten
Rechner weitergeleitet.Gibt den entfernten SSH server an.Ein SSH-Tunnel erzeugt ein Socket auf
localhost und dem angegebenen Port. Jede
Verbindung, die auf dem angegebenen Socket aufgemacht wird, wird
dann auf den spezifizierten entfernten Rechner und Port
weitergeleitet.Im Beispiel wird der Port 5023 auf
die entfernte Maschine und dort auf localhost
Port 23 weitergeleitet. Da der Port
23 für Telnet reserviert ist,
erzeugt das eine sichere Telnet Verbindung durch einen
SSH-Tunnel.Diese Vorgehensweise kann genutzt werden, um jedes unsichere
TCP-Protokoll wie SMTP, POP3, FTP, usw. weiterzuleiten.Mit SSH einen sicheren Tunnel für SMTP erstellen&prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
user@mailserver.example.com's password: *****
&prompt.user; telnet localhost 5025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mailserver.example.com ESMTP
Zusammen mit &man.ssh-keygen.1; und zusätzlichen
Benutzer-Accounts können Sie leicht benutzbare SSH-Tunnel
aufbauen. Anstelle von Passwörtern können Sie
Schlüssel benutzen und jeder Tunnel kann unter einem eigenen
Benutzer laufen.Beispiel für SSH-TunnelSicherer Zugriff auf einen POP3-ServerNehmen wir an, an Ihrer Arbeitsstelle gibt es einen
SSH-Server, der Verbindungen von außen akzeptiert. Auf
dem Netzwerk Ihrer Arbeitsstelle soll sich zudem noch ein
Mail-Server befinden, der POP3 spricht. Das Netzwerk oder die
Verbindung von Ihrem Haus zu Ihrer Arbeitsstelle ist unsicher
und daher müssen Sie Ihre E-Mail über eine gesicherte
Verbindung abholen können. Die Lösung zu diesem
Problem besteht darin, eine SSH-Verbindung von Ihrem Haus zu
dem SSH-Server an Ihrer Arbeitsstelle aufzubauen, und von dort
weiter zum Mail-Server zu tunneln.&prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
user@ssh-server.example.com's password: ******Wenn Sie den Tunnel eingerichtet haben, konfigurieren Sie
Ihren Mail-Client so, dass er POP3 Anfragen zu
localhost Port 2110 sendet. Die Verbindung
wird dann sicher zu mail.example.com
weitergeleitet.Umgehen einer strengen FirewallEinige Netzwerkadministratoren stellen sehr drakonische
Firewall-Regeln auf, die nicht nur einkommende Verbindungen
filtern, sondern auch ausgehende. Es kann sein, dass Sie
externe Maschinen nur über die Ports 22 und 80 (SSH und
Web) erreichen.Sie wollen auf einen Dienst, der vielleicht nichts mit
Ihrer Arbeit zu tun hat, wie einen Ogg Vorbis Musik-Server,
zugreifen. Wenn der Ogg Vorbis Server nicht auf den Ports 22
oder 80 läuft, können Sie aber nicht auf ihn
zugreifen.Die Lösung hier ist es, eine SSH-Verbindung zu einer
Maschine außerhalb der Firewall aufzumachen und durch
diese zum Ogg Vorbis Server zu tunneln.&prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled.myserver.com
user@unfirewalled.myserver.com's password: *******Konfigurieren Sie Ihren Client so, dass er
localhost und Port 8888 benutzt. Die Verbindung
wird dann zu music.example.com Port 8000
weitergeleitet und Sie haben die Firewall erfolgreich
umgangen.Weiterführende Informationen:OpenSSH&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
&man.ssh-agent.1; &man.ssh-add.1;&man.sshd.8; &man.sftp-server.8;RobertWatsonGefördert von DARPA und Network Associates Laboratories.
Beigetragen von MACVorgeschriebene Zugriffskontrolle (MAC)In FreeBSD 5.0 wurde ein neues kernelbasiertes
Sicherheitssystem eingeführt: das TrustedBSD-MAC-Framework.
Das MAC-Framework erlaubt die Erweiterung der Zugriffskontrollen des
Kernels beim Übersetzen, beim Systemstart und zur Laufzeit.
Damit lassen sich Module laden, die vorgeschriebene Zugriffskontrollen
(Mandatory Access Control,
MAC) bereitstellen, oder angepasste Module laden,
die zur Systemhärtung eingesetzt werden können. Das
MAC-Framework befindet sich noch im Teststadium und sollte daher
erst nach sorgfältigen Überlegungen auf produktiven Systemen
eingesetzt werden. Voraussichtlich wird das MAC-Framework ab
FreeBSD 5.2 produktionsreif sein.Wenn das MAC-Framework im Kernel aktiviert ist, können
Sicherheitsmodule die Zugriffskontrollen des Kernels erweitern und
damit Zugriffe auf Systemdienste oder Systemobjekte
einschränken. Beispielsweise erweitert das
&man.mac.bsdextended.4;-Modul die Zugriffskontrollen
auf Dateisysteme und erlaubt es, Regelsätze, wie sie analog
in Firewalls verwendet werden, aufzustellen, die Zugriffe auf
Dateisystemobjekte anhand der Benutzer-ID und der Zugehörigkeit
zu Gruppen regeln. Einige Module, wie das
&man.mac.seeotheruids.4;-Modul, müssen gar nicht
oder nur minimal konfiguriert werden, andere Module, wie das
&man.mac.biba.4;-Modul oder das
&man.mac.mls.4;-Modul, sind aufwändig zu
konfigurieren, da sie Objekte systemweit kennzeichnen.Fügen Sie die nachstehende Zeile der Kernelkonfiguration
hinzu, um das MAC-Framework zu aktivieren:options MACDie Sicherheitsmodule des Basissystems können Sie mit
&man.kldload.8; oder während des Systemstarts mit &man.loader.8;
laden oder mit den nachstehenden Optionen fest in den Kernel
einbinden.Die Zugriffsrichtlinien (policy)
der Module werden unterschiedlich konfiguriert. Oft lässt sich
ein Modul über den Namensraum security.mac
der &man.sysctl.8;-MIB konfigurieren. Richtlinien,
die vom Dateisystem oder bestimmten Kennzeichen abhängen,
erfordern vielleicht eine initiale Konfiguration, in der
Systemobjekten Kennzeichen zugeordnet werden müssen oder eine
Konfigurationsdatei für die Richtlinie erstellt werden muss.
Die erforderlichen Schritte werden in den Hilfeseiten des
betreffenden Moduls beschrieben.Zur Konfiguration des MAC-Frameworks und der Kennzeichen, die von
verschiedenen Richtlinien verwendet werden, stehen eine Reihe von
Werkzeugen zur Verfügung. Das Anmeldeverfahren und die
Verwaltung von Berechtigungsnachweisen (&man.setusercontext.3;)
wurden erweitert, so dass Kennzeichen für Benutzerkonten mit
&man.login.conf.5; eingerichtet werden können. Um Kennzeichen
auf Prozessen, Dateien und Adaptern lesen und schreiben zu
können, wurden &man.su.1;, &man.ps.1;, &man.ls.1; und
&man.ifconfig.8; geändert. Zur Verwaltung der Kennzeichen
wurden neue Werkzeuge eingeführt, beispielsweise &man.getfmac.8;,
&man.setfmac.8; und &man.setfsmac.8; zur Verwaltung von
Dateikennzeichen oder &man.getpmac.8; und &man.setpmac.8;.Die folgende Aufstellung beschreibt alle mit FreeBSD 5.0
ausgelieferten Sicherheitsmodule.Biba-Richtlinie zur Sicherung der Integrität
(mac_biba)RichtlinieBiba-Richtlinie,
Biba Integrity PolicyHersteller: TrustedBSD ProjectModulname: mac_biba.koKerneloption: MAC_BIBADie Biba-Richtlinie (Biba Integrity
Policy, &man.mac.biba.4;) kennzeichnet die
Integrität aller Systemobjekte (die Kennzeichnung kann
hierarchisch oder nicht-hierarchisch erfolgen) und erzwingt
einen Informationsfluß, der verhindert, dass Objekte
mit hoher Integrität von Subjekten mit niedriger Integrität
verändert werden. Die Integrität der Objekte wird
dadurch sichergestellt, dass Subjekte mit hoher Integrität
(üblicherweise Prozesse) nicht lesend auf Objekte niedrigerer
Integrität (häufig Dateien) zugreifen dürfen
und Subjekte niedrigerer Integrität nicht schreibend auf
Objekte höherer Integrität zugreifen dürfen.
Diese Richtlinie dient häufig zum Schutz der
Trusted Code Base in
kommerziellen Sicherheitssystemen. Da die Biba-Richtlinie
systemweite Kennzeichen zur Verfügung stellt, muss Sie
fest in den Kernel integriert sein oder zum Zeitpunkt des
Systemstarts geladen werden.Dateisystem-Richtlinie (mac_bsdextended)RichtlinieDateisystem-Richtlinie,
File System Firewall PolicyHersteller: TrustedBSD ProjectModulname: mac_bsdextended.koKerneloption: MAC_BSDEXTENDEDDie Dateisystem-Richtlinie (File System Firewall
Policy, &man.mac.bsdextended.4;) erweitert
die Zugriffsrechte des BSD-Dateisystems. Ein Administrator kann
für Zugriffe auf Dateisystemobjekte anderer Benutzer
und Gruppen Regelsätze, analog den von Firewalls verwendeten,
definieren. Die Regelsätze, die mit &man.ugidfw.8; verwaltet
werden, beschränken den Zugriff auf Dateien und Verzeichnisse
aufgrund der UID und der GID des zugreifenden Prozesses sowie dem
Besitzer und der Gruppe des Objekts auf das zugegriffen werden
soll. Da alle Regeln die möglichen Zugriffe beschränken,
können sie in beliebiger Reihenfolge angelegt werden. Diese
Richtlinie erfordert keine gesonderte Konfiguration oder die
Vergabe von Kennzeichen und mag für Mehrbenutzer-Umgebungen
geeignet sein, in denen vorgeschriebene Zugriffskontrollen für
den Datenaustausch zwischen Benutzern erforderlich sind. Seien Sie
vorsichtig, wenn Sie die Zugriffe auf Dateien von
root oder anderen System-Accounts
einschränken. Viele nützliche Programme und
Verzeichnisse gehören diesen Benutzern und die falsche
Anwendung der Dateisystem-Richtlinie kann, wie ein falscher
Regelsatz einer Firewall, das System unbrauchbar machen. Mithilfe
der Bibliothek &man.libugidfw.3; können leicht neue Werkzeuge zur
Verwaltung der Regelsätze geschrieben werden.Interface-silencing-Richtlinie (mac_ifoff)RichtlinieInterface-silencing-Richtlinie,
Interface Silencing PolicyHersteller: TrustedBSD ProjectModulname: mac_ifoff.koKerneloption: MAC_IFOFFDie Interface-silencing-Richtlinie (&man.mac.ifoff.4;)
verhindert, das die Netzwerkkarte vom Systemstart an bis zu dem
Zeitpunkt, an dem sie explizit aktiviert wird, benutzt werden kann.
Damit verhindert die Richtlinie ungewollte Antworten auf
eingehende Pakete. Diese Richtlinie eignet sich für
Umgebungen, in denen der Netzverkehr passiv, das heißt ohne
eigene Pakete zu erzeugen, beobachtet werden soll.Low-Watermark Mandatory Access Control (mac_lomac)RichtlinieLow-Watermark Mandatory Access Control (LOMAC)LOMACHersteller: Network Associates LaboratoriesModulname: mac_lomac.koKerneloption: MAC_LOMACWie die Biba-Richtlinie kennzeichnet die LOMAC-Richtlinie
(&man.mac.lomac.4;) systemweit die Integrität aller Objekte.
Im Gegensatz zur Biba-Richtlinie können allerdings Subjekte
hoher Integrität lesend auf Objekte niedrigerer
Integrität zugreifen. In diesem Fall wird aber die
Integrität des lesenden Subjekts heruntergesetzt, damit dieses
nicht mehr schreibend auf Objekte mit hoher Integrität
zugreifen kann. Diese Richtlinie ist leichter als die
Biba-Richtlinie zu benutzen und zu konfigurieren. Da sie
allerdings systemweit die Objekte kennzeichnet, muss sie, wie die
Biba-Richtlinie, fest in den Kernel eingebunden sein oder beim
Systemstart geladen werden.Multi-Level-Security Richtlinie (mac_mls)RichtlinieMulti-Level-Security Richtlinie (MLS)MLSHersteller: TrustedBSD ProjectModulname: mac_mls.koKerneloption: MAC_MLSDie Multi-Level-Security Richtlinie (MLS,
&man.mac.mls.4;) stellt systemweit hierarchische und
nicht-hierarchische Kennzeichen zur Markierung der Vertraulichkeit
von Objekten zur Verfügung. Die Richtlinie stellt einen
Informationsfluß sicher, der garantiert, dass vertrauliche
Daten nicht unberechtigt weitergeleitet werden. Die MLS-Richtlinie
wird häufig zusammen mit der Biba-Richtlinie in sicheren
kommerziellen Mehrbenutzerumgebungen verwendet.
Mit hierarchischen Kennzeichen können Zugangsberechtigungen zu
Verschlusssachen (Einteilung in streng geheim,
geheim, usw.) abgebildet werden. Nicht-hierarchische
Kennzeichen dienen zur Verwirklichung des Prinzips Kenntnis
nur, wenn nötig (need to
know). Alle Systemobjekte müssen wie bei
der Biba-Richtlinie vorher gekennzeichnet werden, so dass die
Richtlinie fest in den Kernel eingebunden werden muss oder beim
Systemstart als Modul geladen werden muss. Der
Konfigurationsaufwand der MLS-Richtlinie kann analog zur
Biba-Richtlinie sehr hoch sein.Rumpf-Richtlinie (mac_none)RichtlinieRumpf-Richtlinie,
MAC Stub PolicyHersteller: TrustedBSD ProjectModulname: mac_none.koKerneloption: MAC_NONEDie Rumpf-Richtlinie (MAC Stub
Policy, &man.mac.none.4;) ist als Beispiel
für Entwickler gedacht. Sie stellt alle benötigten
Funktionen zur Verfügung, ohne die Zugriffsrechte im System zu
verändern. Auf einem Produktionssystem ist die Anwendung
dieser Richtlinie nicht sehr sinnvoll.Partitions-Richtlinie (mac_partition)RichtliniePartitions-Richtlinie,
Process Partition PolicyHersteller: TrustedBSD ProjectModulname: mac_partition.koKerneloption: MAC_PARTITIONDie Partitions-Richtlinie (Process Partition
Policy, &man.mac.partition.4;) schränkt
die Sichtbarkeit von Prozessen ein, indem Prozessen Partitionsnummern
zugewiesen werden. Besitzt ein Prozess keine Partitionsnummer,
so kann er alle Prozesse auf dem System sehen, besitzt er hingegen
eine Partitionsnummer, so kann er nur Prozesse in derselben
Partition sehen. Die Richtlinie kann
fest in den Kernel eingebunden werden, beim Systemstart oder zur
Laufzeit geladen werden.See Other Uids (mac_seeotheruids)Richtlinie
See Other UidsHersteller: TrustedBSD ProjectModulname: mac_seeotheruids.koKerneloption: MAC_SEEOTHERUIDSDie Richtlinie See Other Uids
(&man.mac.seeotheruids.4;) schränkt wie &man.mac.partition.4;
die Sichtbarkeit von Prozessen ein. Allerdings wird die
Sichtbarkeit anderer Prozesse von den Berechtigungen eines
Prozesses anstelle einer Partitionsnummer bestimmt. Die Richtlinie
kann so konfiguriert werden, dass sie für bestimmte Accounts
oder Gruppen nicht gilt, so dass beispielsweise Systemverwalter
alle Prozesse sehen können. Die Richtlinie kann
fest in den Kernel eingebunden werden, beim Systemstart oder zur
Laufzeit geladen werden.Test-Richtlinie (mac_test)RichtlinieTest-Richtlinie,
MAC Framework Test PolicyHersteller: TrustedBSD ProjectModulname: mac_test.koKerneloption: MAC_TESTDie Test-Richtlinie (MAC Framework Test
Policy, &man.mac.test.4;) stellt einen
Regressions-Test für das MAC-Framework bereit. Die Richtlinie
führt zu einem Systemstopp für den Fall, dass interne
Prüfungen auf korrekte Kennzeichen fehlschlagen. Sie kann
fest in den Kernel eingebunden werden, beim Systemstart oder zur
Laufzeit geladen werden.
diff --git a/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml b/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml
index 89b80c7ce1..647026230f 100644
--- a/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml
@@ -1,1580 +1,1583 @@
MartinHeinenÜbersetzt von Das X-Window-SystemÜbersichtMit XFree86 steht unter FreeBSD eine
leistungsfähige grafische Benutzeroberfläche zur
Verfügung. XFree86 ist eine
Open-Source Realisierung des X-Window-Systems. Dieses Kapitel
behandelt die Installation und Konfiguration von
XFree86 auf einem FreeBSD-System. Weitere
Informationen über XFree86 und
unterstützte Video-Hardware finden Sie auf der XFree86-Website.Nachdem Sie dieses Kapitel gelesen haben, werden Siedie Komponenten des X-Window-Systems und ihr
Zusammenspiel kennen.Wissen, wie XFree86 installiert
und konfiguriert wird.Wissen, wie Sie verschiedene Window-Manager installieren und
benutzen.Wissen, wie TrueType-Schriftarten mit
XFree86 benutzt werden.Wissen, wie Sie die grafische Anmeldung
(XDM) einrichten.Bevor Sie dieses Kapitel lesen, sollten Siewissen, wie Sie Software Dritter installieren
().X-GrundlagenAnwendern anderer grafischer Benutzeroberflächen, wie
Microsoft Windows oder MacOS, kommt X beim ersten Mal oft
befremdlich vor.Man braucht kein weitreichendes Verständnis der
X-Komponenten und Ihres Zusammenspiels, um X anzuwenden. Um die
Stärken von X auszunutzen, sollten Sie allerdings die Grundlagen
verstehen.Warum heißt es X?X ist nicht die erste grafische Benutzeroberfläche, die
für &unix; geschrieben wurde. Die Entwickler von X arbeiteten
vorher an einem anderen System, das W (von engl.
window: Fenster) hieß.
X ist schlicht der nächste Buchstabe im Alphabet.X wird X, X-Window-System
oder X11 genannt. Sagen Sie bitte nicht
X-Windows: das kommt bei einigen Leuten schlecht an
(die Hilfeseite &man.X.1; führt dies näher aus).Das Client/Server-Modell von XX wurde von Anfang an netzwerktransparent entworfen und
verwendet ein Client-Server-Modell. In diesem Modell läuft
der Server auf dem Rechner, an dem die Tastatur, der Bildschirm
und die Maus angeschlossen ist. Der Server ist für Dinge
wie die Verwaltung des Bildschirms und die Verarbeitung von
Tastatur- und Maus-Eingaben verantwortlich. Jede X-Anwendung,
beispielsweise ein XTerm oder
Netscape ist ein Client. Der Client
sendet dem Server Nachrichten wie Zeichne an diesen
Koordinaten ein Fenster und der Server sendet dem Client
Nachrichten der Art Der Benutzer hat gerade den Ok-Knopf
gedrückt.Wenn, wie oft in kleinen Umgebungen, nur ein Rechner zur
Verfügung steht, laufen der X-Server und die X-Clients auf
demselben Rechner. Es ist aber durchaus möglich, den X-Server
auf einem weniger leistungsfähigen Arbeitsplatzrechner laufen
zu lassen und die X-Anwendungen (die Clients) auf dem
leistungsfähigen und teuren Server der Arbeitsgruppe
zu betreiben. In diesem Fall kommunizieren der X-Server und die
X-Clients über das Netz.Dieses Modell verwirrt viele Leute, die erwarten, dass der
X-Server der dicke Rechner im Maschinenraum und der X-Client ihr
Arbeitsplatzrechner ist.Merken Sie sich einfach, dass der X-Server der Rechner mit dem
Bildschirm und der Maus ist und die X-Clients Programme sind, die
in den Fenstern laufen.Das X-Protokoll ist unabhängig vom verwendeten
Betriebssystem und Rechnertyp. Ein X-Server kann durchaus auch
unter Microsoft Windows oder Apples MacOS betrieben werden,
wie viele kostenlose und kommerzielle Anwendungen zeigen.Der X-Server von FreeBSD heißt
XFree86 und steht kostenlos unter einer
Lizenz, die ähnlich der FreeBSD-Lizenz ist, zur
Verfügung. Kommerzielle X-Server sind ebenfalls
erhältlich.Der Window-ManagerDie X-Philosophie Werkzeuge statt Richtlinien
ist wie die UNIX-Philosophie. Es wird nicht vorgeschrieben, wie
eine Aufgabe zu lösen ist, stattdessen erhält der
Benutzer Werkzeuge, über die er frei verfügen
kann.Dies geht so weit, dass X nicht bestimmt, wie Fenster auf dem
Bildschirm auszusehen haben, wie sie mit der Maus zu verschieben
sind, welche Tastenkombination benutzt werden muss, um zwischen
den Fenstern zu wechseln (z.B.
AltTab unter Microsoft Windows), oder ob die
Fensterrahmen Schaltflächen zum Schließen haben.X gibt die Verantwortung für all diese Sachen an eine
Anwendung ab, die Window-Manager genannt
wird. Unter X gibt es zahlreiche Window-Manager:
AfterStep,
Blackbox, ctwm,
Enlightenment,
fvwm, Sawfish,
twm,
Window Maker um nur einige zu nennen.
Jeder dieser Window-Manager sieht anders aus: manche stellen
virtuelle Bildschirme zur Verfügung, in anderen lassen sich
die Tastenkombinationen zur Verwaltung des Bildschirms anpassen,
einige besitzen eine Startleiste
oder etwas Ähnliches und in manchen läßt sich das
Aussehen und Verhalten über die Anwendung von
Themes beliebig einstellen. Die
eben genannten Window-Manager und viele weitere finden Sie in der
Kategorie x11-wm der Ports-Sammlung.Die grafischen Benutzeroberflächen
KDE und
GNOME besitzen eigene Window-Manager,
die in den grafischen Arbeitsplatz integriert sind.Die Window-Manager werden unterschiedlich konfiguriert. Einige
erwarten eine manuell erstellte Konfigurationsdatei, andere bieten
grafische Werkzeuge für die meisten Konfigurations-Arbeiten
an. Die Konfigurationsdatei von sawfish
ist sogar in einem Lisp-Dialekt geschrieben.FokusWeiterhin ist der Window-Manager für die Methode, mit
der ein Fenster den Fokus bekommt, verantwortlich. Jedes System,
das Fenster verwendet, muss entscheiden, wie ein Fenster
aktiviert wird, damit es Eingaben empfangen kann. Das aktive
Fenster sollte zudem sichtbar gekennzeichnet werden.Eine geläufige Methode, den Fokus zu wechseln,
wird click-to-focus genannt. Die Methode wird
in Microsoft Windows benutzt: Ein Fenster wird aktiv, wenn
es mit der Maus angeklickt wird.X legt nicht fest, wie der Fokus einzustellen ist,
stattdessen bestimmt der Window-Manager welches Fenster den Fokus
zu einem gegebenen Zeitpunkt erhält. Alle Window-Manager
stellen die Methode click-to-focus bereit, die
meisten stellen auch noch andere Methoden bereit.Verbreitete Methoden, den Fokus einzustellen, sind:focus-follows-mouseDen Fokus hat das Fenster, unter dem sich der
Mauszeiger befindet. Das muss nicht unbedingt das Fenster,
sein, das sich vorne befindet. Wird der Mauszeiger in ein
anderes Fenster bewegt, so erhält dieses Fenster den
Fokus, ohne das es angeklickt werden muss.sloppy-focusDiese Methode erweitert die Methode
focus-follows-mouse. Wenn die Maus mit
focus-follows-mouse aus dem Fenster auf die
Oberfläche bewegt wird, verliert das aktive Fenster
den Fokus. Da dann kein Fenster mehr den Fokus hat,
gehen alle Eingaben verloren. Die Methode
sloppy-focus wechselt
den Fokus nur, wenn sich der Mauszeiger in ein neues
Fenster bewegt und nicht, wenn er das aktive Fenster
verläßt.click-to-focusDas aktive Fenster wird durch einen Mausklick
festgelegt (dabei kann das Fenster vor alle anderen
Fenster gesetzt werden).
Alle Eingaben werden dann, unabhängig von der Position
des Mauszeigers, dem aktiven Fenster zugeordnet.Viele Window-Manager unterstützen noch andere Methoden,
so wie Abwandlungen der hier vorgestellten Methoden. Schauen Sie
sich dazu bitte die Hilfeseiten Ihres Window-Managers an.WidgetsDie X-Philosophie dehnt sich auch auf die Widgets aus, die von
den Anwendungen benutzt werden.Ein Widget bezeichnet Objekte, die
manipuliert werden können, wie
buttons (Schaltflächen),
check buttons (Mehrfachauswahlknopf),
radio buttons (Einfachauswahlknopf),
Icons und Auswahllisten. Unter Microsoft Windows werden Widgets
Controls genannt.Microsoft Windows und Apples MacOS geben strenge
Richtlinien für Widgets vor: Von den Entwicklern wird erwartet,
dass Sie Anwendungen mit einheitlichem Aussehen und einheitlicher
Bedienung (look and feel) entwickeln.
X gibt weder einen Stil noch Widgets vor, die benutzt werden
müssen.Erwarten Sie daher nicht, dass alle X-Anwendungen gleich
aussehen oder sich gleich bedienen lassen. Es gibt mehrere
verbreitete Widget-Sammlungen, beispielsweise die Athena-Widgets
vom MIT, Motif (abgeschrägte
Ecken und drei Grautöne, danach wurden die Widgets von
Microsoft Windows entworfen) oder
OpenLook.Die meisten neuen X-Anwendungen benutzen heute modern
aussehende Widgets, wie Qt, das von KDE
benutzt wird oder GTK, das von
GNOME benutzt wird. Damit wird eine
gewisse Einheitlichkeit in Bedienung und Aussehen erreicht, die
sicher neuen Benutzern die Arbeit erleichtert.XFree86 installierenLegen Sie zuerst die XFree86-Version
fest, die Sie einsetzen wollen. XFree86
3.X ist sehr stabil und unterstützt zahlreiche
Grafikkarten, allerdings wird dieser Entwicklungszweig nicht mehr
weiterentwickelt. XFree86 4.X wurde
komplett neu entworfen und besitzt neue Merkmale wie die verbesserte
Unterstützung von Schriftarten und Anti-aliasing.
Leider mussten dafür auch die Grafiktreiber neu geschrieben
werden und einige der alten Karten, die in 3.X unterstützt
wurden, werden in 4.X noch nicht unterstützt. Da Treiber
für neue Grafikkarten nur noch in XFree86
4.X erstellt werden, ist diese Version in FreeBSD
voreingestellt.Während Sie FreeBSD einrichten, haben Sie Gelegenheit
XFree86 4.X zu installieren. XFree86 3.X
müssen Sie nach dem Basissystem installieren. Aus der
Ports-Sammlung installieren Sie XFree86
3.X wie folgt:&prompt.root; cd /usr/ports/x11/XFree86
&prompt.root; make all install cleanBeide Versionen von XFree86
können Sie auch direkt mit den binären Distributionen von
der XFree86 Website
installieren. XFree86 4.X steht ebenfalls
als Paket für &man.pkg.add.1; zur Verfügung. Soll das Paket
auch mit &man.pkg.add.1; heruntergeladen werden, darf die
Versionsnummer auf der Kommandozeile nicht verwendet werden, da
&man.pkg.add.1; automatisch die neuste Version herunterlädt.
Die neuste Version von XFree86 4.X wird
mit dem folgenden Kommando heruntergeladen und installiert:&prompt.root; pkg_add -r XFree86XFree86 4.X lässt sich auch aus
der Ports-Sammlung installieren:&prompt.root; cd /usr/ports/x11/XFree86-4
&prompt.root; make install cleanDer Rest dieses Kapitels erklärt, wie Sie
XFree86 konfigurieren und sich eine
Arbeitsumgebung einrichten.ChristopherShumwayBeigetragen von XFree86 konfigurierenXFree86 4.XXFree86VorarbeitenBevor Sie XFree86 4.X konfigurieren,
benötigen Sie folgende Informationen:die Spezifikationen des Monitorsden Chipset des Grafikadaptersdie Speichergröße des
Grafikadaptershorizontale Synchronisationsfrequenzvertikale SynchronisationsfrequenzAus den Spezifikationen des Monitors ermittelt
XFree86 die Auflösung und die
Wiederholrate für den Betrieb des X-Servers. Die
Spezifikationen entnehmen Sie der Dokumentation des Monitors
oder der Webseite des Herstellers. Sie benötigen die
horizontale und die vertikale Synchronisationsfrequenz.Der Chipsatz der Grafikkarte bestimmt den Treiber, den
XFree86 verwendet. Die meisten
Chipsätze werden automatisch erkannt, Sie brauchen die
Information jedoch, wenn die Erkennung fehlschlägt.Die Speichergröße der Grafikkarte bestimmt die
maximal mögliche Auflösung und Farbtiefe.XFree86 4.X konfigurierenXFree86 4.X wird in mehreren
Schritten konfiguriert. Mit der Option
von XFree86 wird zuerst eine Vorgabe
für die Konfigurationsdatei erstellt. Setzen Sie dazu als
root den folgenden Befehl ab:&prompt.root; XFree86 -configureDie Vorgabe-Konfiguration wird dann unter dem Namen
XF86Config.new im Verzeichnis
/root abgespeichert (das verwendete
Verzeichnis wird durch die Umgebungsvariable $HOME
bestimmt und hängt davon ab, wie Sie zu
root gewechselt sind).
XFree86 hat in diesem Schritt versucht,
die Grafik-Hardware des Systems zu erkennen und eine
Konfigurationsdatei ausgeschrieben, die die zur Hardware passenden
Treiber lädt.Im nächsten Schritt wird geprüft, ob
XFree86 die Grafik-Hardware des Systems
verwenden kann. Setzen Sie dazu den folgenden Befehl ab:&prompt.root; XFree86 -xf86config XF86Config.newWenn jetzt ein graues Raster und der X-Mauszeiger erscheinen,
war die Konfiguration erfolgreich. Beenden Sie den Test indem Sie
CtrlAltBackspace drücken.Wenn die Maus nicht funktioniert, überprüfen Sie,
ob die Maus, wie im
Kapitel Installation von FreeBSD
beschrieben, konfiguriert wurde.XFree86 4 anpassenAls Nächstes passen Sie
XF86Config.new an. Öffnen Sie die Datei
in einem Editor, wie &man.emacs.1; oder &man.ee.1; und fügen
Sie die Synchronisationsfrequenzen des Monitors ein. Die
Frequenzen werden im Abschnitt "Monitor"
eingetragen:Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSectionUnter Umständen fehlen die Schlüsselwörter
HorizSync und VertRefresh,
die Sie dann nachtragen müssen. Geben Sie, wie im Beispiel
gezeigt, die horizontale Synchronisationsfrequenz hinter
Horizsync und die vertikale
Synchronisationsfrequenz hinter VertRefresh
an.X unterstützt die Energiesparfunktionen (DPMS,
Energy Star) Ihres Monitors. Mit &man.xset.1; können Sie
Zeitschranken für die DPMS-Modi standby,
suspend, off vorgeben, oder diese
zwingend aktivieren. Die DPMS-Funktionen können Sie mit der
nachstehenden Zeile im "Monitor"-Abschnitt
aktivieren:
Option "DPMS"XF86ConfigDie gewünschte Auflösung und Farbtiefe stellen Sie im
Abschnitt "Screen" ein:Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSectionMit DefaultDepth wird die Farbtiefe des
X-Servers vorgegeben. Mit der Option -bpp von
&man.XFree86.1; lässt sich die vorgegebene Farbtiefe
überschreiben. Modes gibt die
Auflösung für die angegebene Farbtiefe an. Die Farbtiefe
im Beispiel beträgt 24 Bits pro Pixel, die
zugehörige Auflösung ist 1024x768 Pixel. Beachten Sie,
dass in der Voreinstellung nur Standard-VESA-Modi
der Grafikkarte angegeben werden können.Sichern Sie die Konfigurationsdatei und testen Sie sie wie oben
beschrieben. Installieren Sie dann die Datei an einen Ort, an dem
&man.XFree86.1; sie findet (typischerweise
/etc/X11/XF86Config oder
/usr/X11R6/etc/X11/XF86Config):&prompt.root; cp XF86Config.new /etc/X11/XF86ConfigDamit ist die Konfiguration beendet. Wenn Sie
XFree86 4.X mit &man.startx.1; starten
wollen, müssen Sie noch den Port x11/wrapper installieren. Sie
können XFree86 4.X aber auch mit
&man.xdm.1; starten.Spezielle KonfigurationenKonfiguration des Intel i810 Graphics ChipsetsIntel i810 ChipsetDer Intel i810 Chipset benötigt den Treiber
agpgart, die AGP-Schnittstelle
von XFree86. Der Treiber
agpgart wird durch das Laden des Moduls
agp.ko mit &man.kldload.8; aktiviert. Das
kann mit dem &man.loader.8; schon zum Zeitpunkt des Systemstarts
erfolgen. Fügen Sie dazu einfach die nachstehende Zeile in
/boot/loader.conf ein:agp_load="YES"Wenn Sie FreeBSD 4.X oder eine frühere Version
benutzen, müssen Sie noch die Gerätedateien im
Verzeichnis /dev erstellen:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV agpgartWenn Sie FreeBSD 5.X oder eine neuere Version verwenden,
werden die Gerätedateien automatisch von &man.devfs.5;
angelegt. Lassen Sie dann diesen Schritt aus.Ab jetzt kann die Hardware wie jede andere Grafikkarte auch
konfiguriert werden.Ab XFree86 4.1.0 kann es sein,
dass Sie Meldungen über unresolved
symbols wie fbPictureInit
erhalten. Fügen Sie in diesem Fall die nachstehende Zeile
hinter Driver "i810" in der
XFree86-Konfigurationsdatei
ein:Option "NoDDC"MurrayStokelyBeigetragen von Schriftarten in XFree86 benutzenType 1 SchriftartenDie Schriftarten, die mit XFree86
geliefert werden, eignen sich ganz und gar nicht für
Desktop-Publishing-Anwendungen. Große Schriftarten zeigen bei
Präsentationen deutliche Treppenstufen und die kleinen
Schriftarten in Netscape sind fast
unleserlich. Es gibt allerdings mehrere hochwertige
Type 1 Schriftarten (PostScript), die mit
XFree86 (Version 3.X oder 4.X) benutzt
werden können. Beispielsweise enthalten die URW-Schriftarten
(x11-fonts/urwfonts) hochwertige
Versionen gängiger Type 1 Schriftarten (z.B. Times Roman,
Helvetica, Palatino). Die Freefont-Sammlung (x11-fonts/freefont) enthält noch
mehr Schriftarten, doch sind diese für den Einsatz in
Grafik-Programmen wie The Gimp gedacht.
Es fehlen auch einige Schriftarten, so dass sich die Sammlung nicht
für den alltäglichen Gebrauch eignet. Weiterhin kann
XFree86 leicht so konfiguriert werden,
dass es TrueType-Schriftarten verwendet (dies wird später im
Abschnitt TrueType Schriftarten
beschrieben).Die Type 1 Schriftarten lassen sich aus der Ports-Sammlung wie
folgt installieren:&prompt.root; cd /usr/ports/x11-fonts/urwfonts
&prompt.root; make install cleanAnalog lassen sich Freefont und andere Sammlungen installieren.
Die neuen Schriftarten müssen dem X-Server in der Datei
XF86Config bekannt gegeben werden.
In der Version 3 von XFree86 befindet
diese Datei in /etc, in Version 4 befindet
sich die Datei im Verzeichnis /etc/X11/.
Fügen Sie die folgende Zeile hinzu:FontPath "/usr/X11R6/lib/X11/fonts/URW/"Sie können aber auch in der X-Sitzung das folgende
Kommando absetzen:&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/URW
&prompt.user; xset fp rehashDann kennt der X-Server die neuen Schriftarten nur bis zum Ende
der Sitzung. Wenn die Änderung dauerhaft sein soll, müssen
Sie die Kommandos in ~/.xinitrc eintragen,
wenn Sie X mit startx starten, oder in
~/.xsession, wenn Sie
XDM benutzen. Sie können die
Schriftarten auch in die neue Datei XftConfig,
die im Abschnitt Anti-aliasing
beschrieben wird, eintragen.TrueType-SchriftartenXFree86 4.X kann TrueType-Schriftarten
mithilfe von zwei Modulen darstellen. Im folgenden Beispiel wird das
Freetype-Modul benutzt, da es besser mit anderen Werkzeugen, die
TrueType-Schriftarten darstellen, übereinstimmt. Das
Freetype-Modul aktivieren Sie im Abschnitt "Module"
von /etc/X11/XF86Config durch Einfügen der
Zeile:Load "freetype"XFree86 3.3.X benötigt einen
gesonderten TrueType-Schriftserver. Üblicherweise wird
dafür Xfstt verwendet, den Sie aus
dem Port x11-servers/Xfstt
installieren können.Erstellen Sie ein Verzeichnis für die
TrueType-Schriftarten (z.B.
/usr/X11R6/lib/X11/fonts/TrueType) und kopieren
Sie alle Schriftarten dorthin. Die Schriftarten müssen im
UNIX/DOS/Windows-Format liegen, Schriftarten von einem Macintosh
können Sie nicht direkt übernehmen. Die Schriftarten
müssen noch in der Datei fonts.dir
katalogisiert werden. Den Katalog können Sie mit
ttmkfdir aus dem Port x11-fonts/ttmkfdir erzeugen:&prompt.root; cd /usr/X11R6/lib/X11/fonts/TrueType
&prompt.root; ttmkfdir > fonts.dirGeben Sie dem System das TrueType-Verzeichnis, wie im Abschnitt
Type 1 Schriftarten beschrieben,
bekannt:&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/TrueType
&prompt.user; xset fp rehashOder fügen Sie eine -Zeile in
XF86Config hinzu.Das war's. Jetzt sollten Netscape,
Gimp, StarOffice
und alle anderen X-Anwendungen die TrueType-Schriftarten benutzen.
Extrem kleine Schriftarten (Webseiten, die mit hoher Auflösung
betrachtet werden) und sehr große Schriftarten (in
StarOffice) sollten jetzt viel besser
aussehen.Anti-aliasingAb der Version 4.0.2 kann XFree86
Schriftarten mit dem Anti-aliasing-Verfahren
darstellen. Die meisten Programme benutzen diese neue
Funktion noch nicht, Qt (das KDE-Toolkit)
ist da eine Ausnahme. Wenn Sie XFree86
4.0.2 mit Qt 2.3 und
KDE einsetzen, können alle
KDE/Qt-Anwendungen das Anti-aliasing-Verfahren zur Darstellung von
Schriftarten benutzen.Um das Anti-aliasing-Verfahren zu benutzen, legen Sie die Datei
/usr/X11R6/lib/X11/XftConfig an oder editieren
Sie die Datei, wenn sie schon existiert. In dieser Datei
können vielfältige Einstellungen vorgenommen werden,
dieser Abschnitt beschreibt nur die einfachsten
Möglichkeiten.Legen Sie zuerst fest, welche Schriftarten mit dem
Anti-aliasing-Verfahren dargestellt werden sollen. Für jedes
Schriftarten-Verzeichnis fügen Sie eine Zeile wie die folgende in
die Datei ein:dir "/usr/X11R6/lib/X11/fonts/Type1"Verfahren Sie genauso für jedes andere
Schriftarten-Verzeichnis (z.B. URW, TrueType). Das Verfahren
kann nur mit skalierbaren Schriftarten (im Wesentlichen
Type 1 und TrueType) sinnvoll angewendet werden.
Nehmen Sie also nicht die Bitmap-Zeichensätze in die Datei auf.
Die Verzeichnisse, die in die Datei aufgenommen wurden, können
jetzt in XF86Config auskommentiert
werden.Das Anti-aliasing-Verfahren zeichnet Ränder leicht unscharf,
dadurch werden kleine Schriften besser lesbar und der
Treppenstufen-Effekt bei wird großen Schriften vermieden. Auf
normale Schriftgrößen sollte das Verfahren aber nicht
angewendet werden, da dies die Augen zu sehr anstrengt. Um
Schriftgrößen zwischen 9 und 13 Punkt von dem
Verfahren auszunehmen, fügen Sie in
XftConfig die nachstehenden Zeilen ein:match
any size > 8
any size < 14
edit
antialias = false;Das Anit-aliasing-Verfahren kann die Abstände einiger
Fixschriften falsch darstellen, dies fällt besonders unter
KDE auf. Sie können das Problem
umgehen, indem Sie die Abstände dieser Schriften auf den Wert
100 festsetzen. Fügen Sie die nachstehenden
Zeilen hinzu:match any family == "fixed" edit family =+ "mono";
match any family == "console" edit family =+ "mono";Damit werden die Namen der gebrächlichen Fixschriften auf
"mono" abgebildet. Für diese Schriften
setzen Sie dann den Abstand fest:match any family == "mono" edit spacing = 100;Wenn Sie jede Fixschrift durch die Schriftart
Lucidux (sie sieht gut aus und das Problem
mit den Abständen gibt es bei dieser Schriftart nicht)
ersetzen wollen, tauschen Sie die letzte Zeile mit den
nachstehenden aus:match any family == "mono" edit family += "LuciduxMono";
match any family == "Lucidux Mono" edit family += "LuciduxMono";
match any family == "LuciduxMono" edit family =+ "Lucidux Mono";Die letzten Zeilen fassen verschiedene gleichwertige
Schriftfamilien zusammen.Schließlich sollten Sie es den Benutzern erlauben, eigene
Einstellungen in .xftconfig vorzunehmen.
Dazu fügen Sie am Ende der Datei die nachstehende Zeile
ein:includeif "~/.xftconfig"Mit einem LCD können Sie
sub-pixel sampling anstelle von
Anti-aliasing einsetzen. Dieses Verfahren behandelt die horizontal
getrennten Rot-, Grün- und Blau-Komponenten eines Pixels
gesondert und verbessert damit (teilweise sehr wirksam) die
horizontale Auflösung. Die nachstehende Zeile in
XftConfig aktiviert diese Funktion:match edit rgba=rgb;Abhängig von der Organisation Ihres Bildschirms
müssen Sie ,
oder anstelle von
verwenden. Experimentieren Sie und schauen Sie, was besser
aussieht.Der nächste Start des X-Servers aktiviert das
Anti-aliasing-Verfahren. Beachten Sie, dass die Anwendungen dieses
Verfahren auch benutzen müssen. Zurzeit wird das Verfahren
von Qt und damit von KDE benutzt
(Details finden Sie in ).
Ein Patch für GTK+ erlaubt es GNOME und Mozilla das
Anti-aliasing-Verfahren zu benutzen. Der Port x11/gdkxft erlaubt sogar das Verfahren
ohne eine neue Übersetzung der Quellen zu benutzen (genaueres
erfahren Sie in ).Das Anti-aliasing-Verfahren ist erst neu in FreeBSD und
XFree86 integriert. Mit der Zeit wird
es einfacher zu konfigurieren sein und mehr Anwendungen werden dieses
Verfahren benutzen.SethKingsleyBeigetragen von Der X-Display-ManagerEinführungDer X-Display-Manager
(XDM), eine optionale
Komponente des X-Window-Systems, verwaltet Sitzungen. Er kann mit
vielen Komponenten, wie minimal ausgestatteten X-Terminals,
Arbeitsplatz-Rechnern und leistungsfähigen Netzwerkservern,
nutzbringend eingesetzt werden. Da das X-Window-System
netzwerktransparent ist, gibt es zahlreiche
Möglichkeiten, X-Clients und X-Server auf unterschiedlichen
Rechnern im Netz laufen zu lassen. XDM
stellt eine grafische Anmeldemaske zur Verfügung, in der Sie
den Rechner, auf dem eine Sitzung laufen soll, auswählen
können und in der Sie die nötigen
Autorisierungs-Informationen, wie Benutzername und Passwort,
eingeben können.Die Funktion des X-Display-Managers läßt sich mit
der von &man.getty.8; (siehe )
vergleichen. Er meldet den Benutzer am ausgesuchten System an,
startet ein Programm (meist einen Window-Manager) und
wartet darauf, dass dieses Programm beendet wird, das heißt
der Benutzer die Sitzung beendet hat. Nachdem die Sitzung beendet
ist, zeigt XDM den grafischen
Anmeldebildschirm für den nächsten Benutzer an.XDM einrichtenDer XDM-Dæmon befindet sich in
/usr/X11R6/bin/xdm und kann jederzeit von
root gestartet werden. Er verwaltet dann den
X-Bildschirm des lokalen Rechners. XDM
läßt sich bequem mit einem Eintrag in
/etc/ttys (siehe )
bei jedem Start des Rechners aktivieren. In
/etc/ttys sollte schon der nachstehende
Eintrag vorhanden sein:ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureIn der Voreinstellung ist dieser Eintrag nicht aktiv. Um den
Eintrag zu aktivieren, ändern Sie den Wert in Feld 5 von
off zu on und starten Sie
&man.init.8; entsprechend der Anleitung in neu. Das erste Feld gibt den Namen des
Terminals an, auf dem das Programm läuft. Im Beispiel wird
ttyv8 verwendet, das heißt
XDM läuft auf dem neunten
virtuellen Terminal.XDM konfigurierenDas Verhalten und Aussehen von XDM
steuern Sie mit Konfigurationsdateien, die im Verzeichnis
/usr/X11R6/lib/X11/xdm stehen.
Üblicherweise finden Sie dort die folgenden Dateien vor:DateiBeschreibungXaccessRegelsatz, der zur Autorisierung von Clients benutzt
wird.XresourcesVorgabewerte für X-Ressourcen.XserversListe mit lokalen und entfernten Bildschirmen, die
verwaltet werden.XsessionVorgabe für das Startskript der
Sitzung.Xsetup_*Skript, das dazu dient, Anwendungen vor der Anmeldung
zu starten.xdm-configKonfiguration für alle auf der Maschine
verwalteten Bildschirme.xdm-errorsFehlermeldungen des Servers.xdm-pidDie Prozess-ID des gerade laufenden
XDM-Prozesses.Im Verzeichnis /usr/X11R6/lib/X11/xdm
befinden sich auch noch Skripten und Programme, die zum Einrichten
der XDM-Oberfläche dienen. Der
Zweck dieser Dateien und der Umgang mit ihnen wird in der
Hilfeseite &man.xdm.1; erklärt. Wir gehen im Folgenden nur
kurz auf ein paar der Dateien ein.Die vorgegebene Einstellung zeigt ein rechteckiges
Anmeldefenster, in dem der Rechnername in großer Schrift
steht. Darunter befinden sich die Eingabeaufforderungen
Login: und Password:.
Mit dieser Maske können Sie anfangen, wenn Sie das
Erscheinungsbild von XDM
verändern wollen.XaccessVerbindungen zu XDM werden mit
dem X Display Manager Connection Protocol
(XDMCP) hergestellt.
XDMCP-Verbindungen von entfernten Maschinen
werden über den Regelsatz in Xaccess
kontrolliert. In der Vorgabe sind alle Verbindungen erlaubt,
doch muss auch xdm-config geändert
werden, damit XDM Verbindungen
entfernter Maschinen annimmt.XresourcesIn dieser Datei kann das Erscheinungsbild der
Bildschirmauswahl und der Anmeldemasken festgelegt werden. Das
Format entspricht den Dateien im Verzeichnis
app-defaults, die in der
XFree86-Dokumentation beschrieben
sind.XserversDiese Datei enthält eine Liste entfernter Maschinen, die
in der Bildschirmauswahl angeboten werden.XsessionDieses Skript wird vom XDM
aufgerufen, nachdem sich ein Benutzer erfolgreich angemeldet hat.
Üblicherweise besitzt jeder Benutzer eine angepasste Version
dieses Skripts in ~/.xsession, das dann
anstelle von Xsession ausgeführt
wird.Xsetup_*Diese Skripten werden automatisch ausgeführt bevor die
Bildschirmauswahl oder die Anmeldemasken angezeigt werden.
Für jeden lokalen Bildschirm gibt es ein Skript, dessen
Namen aus Xsetup_ gefolgt von der
Bildschirmnummer gebildet wird (zum Beispiel
Xsetup_0). Normalerweise werden damit ein
oder zwei Programme, wie xconsole, im
Hintergrund gestartet.xdm-configDiese Datei enthält Einstellungen, die für jeden
verwalteten Bildschirm zutreffen. Das Format entspricht dem der
Dateien aus app-defaults.xdm-errorsDie Ausgaben jedes X-Servers, den
XDM versucht zu starten, werden in
dieser Datei gesammelt. Wenn ein von
XDM verwalteter Bildschirm aus
unbekannten Gründen hängen bleibt, sollten Sie in
dieser Datei nach Fehlermeldungen suchen. Für jede Sitzung
werden die Meldungen auch in die Datei
~/.xsession-errors des Benutzers
geschrieben.Einrichten eines Bildschirm-Servers auf dem NetzwerkDamit sich Clients mit dem Bildschirm-Server verbinden
können, muss der Zugriffsregelsatz editiert werden und der
Listener aktiviert werden. Die Vorgabewerte sind sehr
restriktiv eingestellt. Damit XDM
Verbindungen annimmt, entfernen Sie einen Kommentar in
xdm-config:! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0Starten Sie danach XDM neu.
Beachten Sie, dass Kommentare in den
Ressourcen-Konfigurationsdateien mit einem !
anstelle des sonst üblichen Zeichens #
beginnen. Wenn Sie strengere Zugriffskontrollen einrichten wollen,
sehen Sie sich die Beispiele in Xaccess und
die Hilfeseite &man.xdm.1; an.XDM ersetzenEs gibt mehrere Anwendungen, die
XDM ersetzen können, zum Beispiel
KDM, der Teil von
KDE ist und später in diesem
Kapitel besprochen wird. KDM ist
ansprechender gestaltet und bietet neben einigen Schnörkeln
die Möglichkeit, den zu verwendenden Window-Manager bei der
Anmeldung auszuwählen.ValentinoVaschettoBeigetragen von Grafische OberflächenDieser Abschnitt beschreibt verschiedene grafische
Oberflächen, die es für X unter FreeBSD gibt. Eine
Oberfläche (desktop environment)
kann alles von einem einfachen Window-Manager bis hin zu kompletten
Anwendungen wie KDE oder
GNOME sein.GNOMEÜber GNOMEGNOME ist eine benutzerfreundliche
Oberfläche, mit der Rechner leicht benutzt und konfiguriert
werden können. GNOME besitzt
eine Leiste, mit der Anwendungen gestartet werden und die
Statusinformationen anzeigen kann. Programme und Daten
können auf der Oberfläche abgelegt werden und
Standardwerkzeuge stehen zur Verfügung. Es gibt
Konventionen, die es Anwendungen leicht machen,
zusammenzuarbeiten und ein konsistentes Erscheinungsbild
garantieren. Benutzer anderer Betriebssysteme oder anderer
Arbeitsumgebungen sollten mit der leistungsfähigen
grafischen Oberfläche von GNOME
sehr gut zurechtkommen.GNOME installierenAm einfachsten installieren Sie GNOME
während der Installation des FreeBSD Systems wie in
beschrieben. Es ist aber ebenfalls leicht möglich,
GNOME als Paket oder über die
Ports-Sammlung zu installieren.Wenn Sie das GNOME-Paket über
das Netz installieren wollen, setzen Sie den nachstehenden Befehl
ab:&prompt.root; pkg_add -r gnomeWenn Sie den Quellcode von GNOME
übersetzen wollen, benutzen Sie die Ports-Sammlung:&prompt.root; cd /usr/ports/x11/gnome
&prompt.root; make install cleanNachdem GNOME installiert ist,
muss der X-Server GNOME anstelle eines
Window-Managers starten. Wenn Sie bereits eine angepasste
.xinitrc besitzen, ersetzen Sie dort den
Start des Window-Managers durch
/usr/X11R6/bin/gnome-session. Wenn
.xinitrc nicht gesondert angepasst wurde,
reicht es, den nachstehenden Befehl abzusetzen:&prompt.user; echo "/usr/X11R6/bin/gnome-session" > ~/.xinitrcRufen Sie dann startx auf, um die
GNOME Oberfläche zu starten.Wenn Sie einen Display-Manager wie
XDM verwenden, müssen Sie
anders vorgehen. Legen Sie eine ausführbare
.xsession an, die das Kommando
zum Start von GNOME enthält.
Ersetzen Sie dazu den Start des Window-Managers durch
/usr/X11R6/bin/gnome-session:&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "/usr/X11R6/bin/gnome-session" >> ~/.xsession
&prompt.user; chmod +x ~/.xsessionSie können auch den Display-Manager so konfigurieren,
dass der Window-Manager beim Anmelden ausgesucht werden kann. Im
Abschnitt Details zu KDE
wird das für kdm, den
Display-Manager von KDE
erklärt.Anti-aliasing-Verfahren mit GNOMEMit dem Anti-aliasing-Verfahren behandelte Schriftarten
tauchten unter XFree86 zuerst auf der
KDE-Oberfläche auf und werden
dort in der Standardinstallation bereitgestellt. Es ist
allerdings auch möglich, das Verfahren mit GTK-Anwendungen
wie GNOME zu benutzen. Das geht am
einfachsten, indem Sie die Bibliothek
libgdkxft aus dem Port x11/gdkxft installieren. Lesen Sie
nach der Installation bitte die Datei
/usr/X11R6/share/doc/gdkxft/README.GTK-Anwendungen müssen dann zur Darstellung von
Schriften zuerst in libgdkxft.so nachsehen,
bevor sie libgdk.so verwenden. Dies wird
durch eine Umgebungsvariable erreicht, die auf die richtige
Bibliothek zeigt. Wenn Sie eine Bourne-Shell oder eine
ähnliche Shell benutzen, können Sie mit dem
nachstehenden Kommando beispielsweise The
Gimp starten:&prompt.user; LD_PRELOAD=/usr/X11R6/lib/libgdkxft.so gimpIn einer csh oder ähnlichen
Shell benutzen Sie die nachstehenden Kommandos:&prompt.user; setenv LD_PRELOAD /usr/X11R6/lib/libgdkxft.so
&prompt.user; gimpSie können die Umgebungsvariable auch beim Start der
Sitzung setzen. Setzen Sie dazu die folgenden Kommandos,
abhängig von der Art und Weise, wie die Sitzung gestartet
wird, in .xinitrc oder
.xsession oder an die passenden Stellen in
/usr/X11R6/lib/X11/xdm/Xsession ein:LD_PRELOAD=/usr/X11R6/lib/libgdkxft.so
export LD_PRELOADDiese Vorgehensweise ist zwar einfacher, kann aber bei der
Verwendung von Linux-GTK-Programmen zu Problemen
führen.KDEÜber KDEKDE ist eine moderne, leicht zu
benutzende Oberfläche, die unter anderem Folgendes
bietet:eine schöne und moderne Oberfläche,eine Oberfläche, die völlig netzwerktransparent
ist,ein integriertes Hilfesystem, das bequem und konsistent
Hilfestellungen bezüglich der Bedienung
der KDE-Oberfläche und
ihrer Anwendungen gibt,ein konstantes Erscheinungsbild (look and
feel) aller
KDE-Anwendungen,einheitliche Menüs, Werkzeugleisten,
Tastenkombinationen und Farbschemata,Internationalisierung: KDE
ist in mehr als 40 Sprachen erhältlich,durch Dialoge gesteuerte zentrale Konfiguration der
Oberfläche,viele nützliche
KDE-Anwendungen.In KDE ist ein Office-Paket
integriert, das die KParts-Technik benutzt. Das
Paket enthält neben anderem eine Tabellenkalkulation, ein
Präsentationsprogramm, einen Terminkalender und einen
News-Client. Ein Webbrowser mit Namen
Konqueror, der sich mit anderen
Webbrowsern von &unix; Systemen messen kann, ist ebenfalls
Bestandteil von KDE. Weitere
Informationen über KDE erhalten
Sie auf den KDE-Webseiten.KDE installierenAm einfachsten installieren Sie KDE,
wie jede andere grafische Oberfläche auch, während der
Installation des FreeBSD Systems wie in
beschrieben. Die Anwendung kann natürlich auch als Paket
oder über die Ports-Sammlung installiert werden.Um KDE über das Netz zu
installieren, setzen Sie den nachstehenden Befehl ab:
- &prompt.root; pkg_add -r kde3
+ &prompt.root; pkg_add -r kde
+
+ &man.pkg.add.1; installiert automatisch die neuste
+ Version einer Anwendung.Benutzen Sie die Ports-Sammlung, wenn Sie den Quellcode von
KDE übersetzen wollen:&prompt.root; cd /usr/ports/x11/kde3
&prompt.root; make install cleanNachdem KDE installiert ist, muss
der X-Server KDE anstelle eines
Window-Managers starten. Legen Sie dazu die Datei
.xinitrc an:&prompt.user; echo "exec startkde" > ~/.xinitrcWenn das X-Window-System danach mit startx
gestartet wird, erscheint die
KDE-Oberfläche.Wird ein Display-Manager wie xdm
benutzt, muss .xsession angepasst werden.
Eine Anleitung für kdm folgt
gleich in diesem Kapitel.Details zu KDEWenn KDE erst einmal installiert
ist, erschließen sich die meisten Sachen durch das
Hilfesystem oder durch Ausprobieren. Benutzer von Windows oder
MacOS werden sich sehr schnell zurecht finden.Die beste Referenz für KDE
ist die Online-Dokumentation. KDE
besitzt einen eigenen Webbrowser, sehr viele nützliche
Anwendungen und ausführliche Dokumentation. Der Rest dieses
Abschnitts beschäftigt sich daher mit Dingen, die schlecht
durch einfaches Ausprobieren erlernbar sind.Der KDE-Display-ManagerDer Administrator eines Mehrbenutzersystems will den
Benutzern vielleicht eine grafische Anmeldung wie mit
xdm
ermöglichen. KDE besitzt einen
eigenen Display-Manager, der schöner aussieht und auch
über mehr Optionen verfügt. Insbesondere können
sich die Benutzer die Oberfläche für die Sitzung
(beispielsweise KDE oder
GNOME) aussuchen.Starten Sie das KDE
Kontrollzentrum, kcontrol, als
root. Lassen Sie bitte nicht die gesamte
X-Umgebung unter root laufen, dies ist sehr
unsicher. Öffnen Sie stattdessen als normaler Benutzer ein
Terminalfenster (zum Beispiel einen xterm
oder die konsole von
KDE) und wechseln Sie darin mit
su zu root (dazu muss der
Benutzer der Gruppe wheel angehören).
Rufen Sie dann kcontrol auf, um das
Kontrollzentrum zu starten.Klicken Sie auf das Icon System und
dann auf Login manager. Auf der rechten
Seite befinden sich verschiedene Optionen, die alle
ausführlich im KDE-Handbuch
beschrieben werden. Klicken Sie auf
sessions und dann auf
New type. Jetzt können Sie Namen
für Window-Manager oder grafische Oberflächen eingeben.
Die Namen müssen nicht mit den zu startenden Programmen
übereinstimmen, so dass Sie KDE
anstelle von startkde oder
GNOME anstelle von
gnome-session eingeben
können. Legen Sie bitte auch eine Sitzung mit dem Namen
failsafe an.Sehen Sie sich auch die anderen Menüs an. Wenn Sie
fertig sind, klicken Sie Apply und beenden
Sie das Kontrollzentrum.Damit kdm mit den vergebenen
Namen (KDE,
GNOME) etwas anfangen kann, editieren
Sie die Dateien, die von xdm benutzt
werden.
Ab KDE 2.2 benutzt
kdm eigene Konfigurationsdateien.
Schauen Sie die Einzelheiten bitte in der
KDE 2.2-Dokumentation nach.
Wechseln Sie in einem Terminalfenster zu root
und editieren Sie die Datei
/usr/X11R6/lib/X11/xdm/Xsession.
Ungefähr in der Mitte Datei finden Sie einen Abschnitt wie
den folgenden:case $# in
1)
case $1 in
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esacFür die vergebenen Namen müssen nun einige Zeilen
hinzugefügt werden. Wenn Sie KDE und
GNOME verwendet haben, sollte der Abschnitt wie
folgt aussehen:case $# in
1)
case $1 in
kde)
exec /usr/local/bin/startkde
;;
GNOME)
exec /usr/X11R6/bin/gnome-session
;;
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esacWenn Sie den KDE-Hintergrund schon
während der Anmeldung benutzen wollen, fügen Sie die
nachstehende Zeile in
/usr/X11R6/lib/X11/xdm/Xsetup_0 ein:/usr/local/bin/kdmdesktopDamit kdm beim nächsten
Systemstart gestartet wird, muss ein entsprechender Eintrag in
/etc/ttys vorhanden sein. Folgen Sie dazu
den Anweisungen aus dem Anschnitt über
xdm und ersetzen Sie alle Bezüge auf
/usr/X11R6/bin/xdm durch
/usr/local/bin/kdm.Anti-aliasing-Verfahren mit KDEAb der Version 4.0.2 beherrscht
XFree86 durch die
RENDER-Erweiterung das Anti-aliasing-Verfahren.
Die Erweiterung wird ab der Version 2.3 von Qt, dem
KDE-Toolkit, benutzt. In
wird beschrieben wie das
Anti-aliasing-Verfahren eingerichtet wird. Im KDE-Menü
wählen Sie Preferences ->
Look and Feel ->
Fonts. Klicken Sie dann in das
Kontrollkästchen Use Anti-Aliasing for Fonts and
Icons. Für nicht zu
KDE gehörende Qt-Anwendungen
muss die Umgebungsvariable QT_XFT vor dem Start
der Anwendung auf true gesetzt werden.XFceÜber XFceXFce ist eine grafische
Oberfläche, die auf den GTK-Bibliotheken, die auch von
GNOME benutzt werden, beruht. Die
Oberfläche ist allerdings weniger aufwändig und
für diejenigen gedacht, die eine schlichte und effiziente
Oberfläche wollen, die dennoch einfach zu benutzen
und zu konfigurieren ist. Die Oberfläche sieht
ähnlich wie CDE aus, das in
kommerziellen &unix; Systemen verwendet wird. Einige Merkmale
von XFce sind:eine schlichte einfach zu benutzende
Oberfläche,vollständig mit Mausoperationen konfigurierbar,
Unterstützung von drag and
drop,ähnliche Hauptleiste wie
CDE, die Menüs enthält
und über die Anwendungen gestartet werden
können,integrierter Window-Manager, Datei-Manager und
Sound-Manager,
GNOME-compliance-Modul,mit Themes anpassbar (da
GTK benutzt wird),schnell, leicht und effizient: ideal für ältere
oder langsamere Maschinen oder Maschinen mit wenig
Speicher.Weitere Information über
XFce erhalten Sie auf der
XFce-Webseite.XFce installierenDas XFce-Paket installieren Sie
mit dem nachstehenden Kommando:&prompt.root; pkg_add -r xfceMit der Ports-Sammlung können Sie auch den Quellcode
übersetzen:&prompt.root; cd /usr/ports/x11-wm/xfce
&prompt.root; make install cleanDamit beim nächsten Start des X-Servers
XFce benutzt wird, setzen Sie das
folgende Kommando ab:&prompt.user; echo "/usr/X11R6/bin/startxfce" > ~/.xinitrcWenn Sie einen Display-Manager benutzen, erstellen Sie die
Datei .xsession, wie im GNOME Abschnitt beschrieben.
Verwenden Sie jetzt allerdings das Kommando
/usr/X11R6/bin/startxfce. Sie können
auch den Display-Manager wie im kdm Abschnitt beschrieben, so
konfigurieren, dass die Oberfläche für die Sitzung
ausgewählt werden kann.