diff --git a/de_DE.ISO8859-1/articles/contributing/article.sgml b/de_DE.ISO8859-1/articles/contributing/article.sgml index 1283ff4516..a17f8fa61f 100644 --- a/de_DE.ISO8859-1/articles/contributing/article.sgml +++ b/de_DE.ISO8859-1/articles/contributing/article.sgml @@ -1,626 +1,628 @@ %articles.ent; ]>
&os; unterstützen $FreeBSD$ Dieser Artikel beschreibt, wie Einzelpersonen oder Unternehmen das &os;-Projekt unterstützen können. Übersetzt von Johann Kois. Jordan Hubbard Beigetragen von &tm-attrib.freebsd; &tm-attrib.ieee; &tm-attrib.general; Unterstützung Sie wollen &os; unterstützen? Das ist großartig! &os; ist auf die Unterstützung seiner Anwender angewiesen, um zu überleben. Ihre Beiträge werden nicht nur begrüßt, sie sind für die Weiterentwicklung von &os; von elementarer Bedeutung. Im Gegensatz zu dem, was einige Leute Ihnen einreden wollen, müssen Sie kein Spitzenprogrammierer oder persönlicher Freund eines Mitglieds des FreeBSD-Core-Teams sein, damit Ihre Beiträge akzeptiert werden. Ein große und wachsende Anzahl von internationalen Unterstützern verschiedenen Alters und mit verschiedenen technischen Fähigkeiten entwickelt FreeBSD weiter. Es gibt immer mehr zu tun, als von den beteiligten Personen bewältigt werden kann, daher freuen wir uns über jede Hilfe. Das FreeBSD-Projekt ist für ein komplettes Betriebssytem verantwortlich, nicht nur für einen Kernel oder ein paar verstreute Werkzeuge. Daher umfasst unsere TODO-Liste viele verschiedene Aufgabenbereiche: Angefangen von der Dokumentation, über Betatests und Präsentationen bis zu Systeminstallationen und speziellen Weiterentwicklungen des Kernels. Da Fähigkeiten in den verschiedensten Bereichen benötigt werden, kann fast jeder etwas zu diesem Projekt beitragen. Personen, die im kommerziellen Umfeld mit FreeBSD zu tun haben, sind ebenfalls aufgefordert, sich bei uns zu melden. Brauchen Sie eine spezielle Erweiterung, damit Ihr Produkt funktioniert? Wir kommen Ihren Wünschen gerne entgegen, vorausgesetzt, sie sind nicht zu speziell. Arbeiten Sie an einem Mehrwertprodukt? Dann informieren Sie uns bitte! Wir könnten in der Lage sein, an einem Teil davon mitzuarbeiten. Die Welt der freien Software fordert viele bestehenden Annahmen über die Entwicklung, den Verkauf und die Wartung von Software heraus, und wir bitten Sie, ernsthaft darüber nachzudenken. Was wird gebraucht? Die folgende Liste von Aufgaben und Unterprojekten repräsentiert eine Zusammenfassung von verschiedenen TODO-Listen und Benutzerwünschen. Aufgaben für Nicht-Programmierer Viele Menschen, die an FreeBSD beteiligt sind, sind keine Programmierer. Es sind Leute, die an der Dokumentation arbeiten, Internetseiten erstellen oder einfach Hilfe anbieten. Alles, was diese Leute mitbringen müssen, sind Zeit und die Bereitschaft, etwas zu lernen. Lesen Sie die häufig gestellten Fragen (FAQ) und das Handbuch gelegentlich. Wenn etwas schlecht erklärt wird, veraltet oder einfach falsch ist, teilen Sie es uns mit. Oder noch besser, korrigieren Sie es (SGML ist nicht schwer zu erlernen, wir akzeptieren aber auch Vorschläge im ASCII-Format.). Helfen Sie dabei, die Dokumentation in Ihre Muttersprache zu übersetzen. Wenn an der Übersetzung in Ihre Sprache bereits gearbeitet wird, helfen Sie, indem Sie weitere Dokumente übersetzen, oder sorgen Sie dafür, dass die Übersetzungen aktuell sind. Lesen Sie zuerst die Übersetzungs-FAQ der Fibel für neue Mitarbeiter des FreeBSD-Dokumentations-Projekts. Sie verpflichten sich dabei nicht dazu, jede einzelne Seite zu übersetzen — als Freiwilliger übersetzen Sie genau so viel, wie Sie wollen. Wenn jemand mit der Übersetzung beginnt, beteiligen sich fast immer auch andere Personen daran. Wenn Sie nur Zeit und Energie für einen Teil der Dokumentation haben, dann übersetzen Sie bitte die Installationsanleitung. Lesen Sie &a.questions; sowie die &ng.misc; gelegentlich (oder sogar regelmäßig). Es kann sehr befriedigend sein, wenn Sie Ihr Wissen teilen und anderen Leuten dabei helfen können, deren Probleme zu lösen; vielleicht lernen Sie sogar noch etwas Neues! Diese Foren können auch eine Quelle für Ideen sein, an denen man arbeiten könnte. Aufgaben für Programmierer Die meisten der hier aufgeführten Aufgaben erfordern entweder einen bedeutenden Zeitaufwand oder eine sehr gute Kenntnis des FreeBSD-Kernels, oder beides. Es gibt jedoch genug Aufgaben, die auch für Wochenendprogrammierer geeignet sind. Wenn Sie FreeBSD-CURRENT installiert haben und über eine schnelle Internetanbindung verfügen, können Sie von current.FreeBSD.org ein täglich neu erzeugtes Release herunterladen — versuchen Sie dann hin und wieder, das neueste Release zu installieren und melden Sie dabei eventuell auftretende Fehler. Lesen Sie &a.bugs;. Es könnte ein Problem geben, an dem Sie konstruktiv mitarbeiten könnten, oder für das es Patches gibt, die Sie testen könnten. Oder Sie könnten sogar versuchen, eines dieser Probleme selbst zu beheben. Wenn Sie von Fehlerbehebungen wissen, die zwar erfolgreich auf -CURRENT angewendet wurden, die aber nach einem bestimmten Zeitraum nicht in -STABLE eingebracht wurden (normalerweise innerhalb einiger Wochen), erinnern Sie den Committer höflich daran. Verschieben Sie beigetragene Software im Quellcodebaum - nach src/contrib. + nach src/contrib. Stellen Sie sicher, dass der Code in - src/contrib aktuell ist. + src/contrib aktuell + ist. Bauen Sie den Quellcodebaum (oder einen Teil des Baumes) mit aktivierten Compilerwarnungen und beheben Sie auftretende Fehlermeldungen. Beheben Sie Fehlermeldungen bei der Installation von Ports, die auf unsauberen Code hinweisen (etwa die Verwendung von gets() oder die Einbindung von malloc.h). - Wenn Sie einen Port repariert haben, senden Sie Ihre - Patches an die ursprünglichen Autoren (die dadurch - die nächste Version des Ports verbessern - können). + Wenn Sie einen Port beigetragen und dabei irgendwelche + &os;-spezifischen Änderungen getätigt haben, senden Sie + Ihre Patches an die ursprünglichen Autoren (das wird ihr Leben + einfacher machen, wenn die nächste Version des Ports + erscheint). Besorgen Sie sich Kopien von wichtigen Standards wie &posix;. Als Ausgangspunkt für Ihre Suche können Sie die Seite des FreeBSD C99 & POSIX Standards Conformance Project verwenden. Vergleichen Sie das Verhalten von FreeBSD mit dem von dem jeweiligen Standard geforderten Verhalten. Verhält sich FreeBSD in einem Bereich unterschiedlich, sollten Sie einen Problembericht (PR) einsenden. Wenn Sie dazu in der Lage sind, können Sie sich auch eine Lösung des Problems überlegen und Ihrem PR einen Patch anfügen. Wenn Sie der Meinung sind, dass der Standard nicht korrekt ist, können Sie auch das jeweilige Standardgremium um weitere Informationen bitten. Schlagen Sie weitere Aufgaben für diese Liste vor! Die PR-Datenbank durchsehen problem reports database Die FreeBSD PR-Datenbank enthält alle derzeit offenen Problemberichte und Verbesserungswüsche, die von Anwendern eingereicht wurden. Die PR-Datenbank enthält sowohl Aufgaben für Programmierer als auch für Nichtprogrammierer. Gehen Sie die Liste der offenen PRs durch, um festzustellen, ob Sie ein Problem interessiert. Bei manchen Berichten geht es nur darum, zu überprüfen, ob der bereitgestellte Patch korrekt funktioniert. Andere Problemberichte sind hingegen komplexer, oder beinhalten überhaupt keinen Lösungsvorschlag. Beginnen Sie mit den PRs, die niemandem zugewiesen sind. Ist ein PR, für den Sie eine Lösung hätten, bereits jemandem zugewiesen, nehmen Sie mit dem dafür Zuständigen Kontakt auf und fragen Sie ihn, ob Sie an der Lösung mitarbeiten können — es könnte etwa bereits ein Patch existieren, der nur noch getestet werden muss, oder Sie könnten weitere Ideen mit ihm diskutieren. Wählen Sie einen der Einträge auf der <quote>Ideen</quote>-Seite aus Die Liste von Projekten und Ideen für &os; ist auch für Freiwillige interessant, die etwas zum &os; Projekt beitragen möchten. Diese Liste wird regelmäßig aktualisiert und enthält Einträge für Programmierer und Nicht-Programmierer sowie Informationen zu jedem Projekt. Was Sie tun können Mögliche Beiträge lassen sich in fünf Kategorien einteilen: Fehlerberichte und allgemeine Vorschläge Eine Idee oder ein Vorschlag von allgemeinem technischen Interesse sollte an &a.hackers; geschickt werden. Personen, die an solchen Fragen interessiert sind (und kein Problem mit einem hohen Mailaufkommen haben!) können die Mailingliste &a.hackers; auch abonnieren. Informationen zu dieser und anderen Mailinglisten finden Sie im FreeBSD Handbuch. Wenn Sie einen Fehler gefunden oder eine Verbesserung entwickelt haben, vergessen Sie nicht, einen Bericht über &man.send-pr.1; oder dessen Internetschnittstelle zu erstellen. Versuchen Sie bitte, jedes Feld auszufüllen. Ist Ihr Patch kleiner als 65 KB, sollten Sie ihn direkt in den Bericht einbauen. Kann der Patch direkt auf den Quellcodebaum angewendet werden, fügen Sie [PATCH] im Synopsis-Feld ein. Wenn Sie einen Patch einfügen, verwenden Sie bitte kein copy-and-paste, weil dadurch Tabulatoren in Leerzeichen umgewandelt werden, was - den Patch unbrauchbar macht. Sind die Patches größer - als 20 KB, sollten Sie sie komprimieren und mit - &man.uuencode.1; umwandeln. + den Patch unbrauchbar macht. Sind die Patches viel größer + als 20 KB, sollten Sie sie komprimieren (z.B. mit &man.gzip.1; + oder &man.bzip2.1;) und &man.uuencode.1; verwenden, um diese in ihren + Problembericht einzufügen. Nachdem Sie einen Bericht versandt haben, erhalten Sie eine E-Mail, die eine Bestätigung sowie eine Identifikationsnummer enthält. Geben Sie diese Nummer im Betreff der Nachricht an ("Re: kern/3377"), wenn Sie neue Informationen zu diesem Problem an &a.bugfollowup; senden. Zusätzliche Informationen zu Problemberichten sollten immer auf diese Art und Weise verschickt werden. Sollten Sie innerhalb einer Woche keine Bestätigung erhalten, oder &man.send-pr.1; nicht verwenden können, können Sie über &a.bugs; jemanden bitten, dies für Sie zu erledigen. Weitere Informationen zum Verfassen von guten Problemberichten finden Sie im entsprechenden Artikel. Änderungen der Dokumentation documentation submissions Änderungen der Dokumentation werden vom &a.doc; überwacht. Lesen Sie bitte die Fibel für neue Mitarbeiter des FreeBSD-Dokumentationsprojekts für weitere Informationen. Korrekturen und Ergänzungen (selbst kleine Änderungen sind willkommen!) werden mit &man.send-pr.1; übermittelt. Lesen Sie dazu den Abschnitt Fehlerberichte und allgemeine Vorschläge. Änderungen am vorhandenen Quellcode FreeBSD-CURRENT Änderungen des existierenden Quellcodes sind etwas komplizierter. Entscheidend ist hier, wie vertraut Sie mit dem aktuellen Entwicklungsstand von FreeBSD sind. Es existiert eine spezielle, ständig aktualisierte Version von FreeBSD, die als FreeBSD-CURRENT bekannt ist. Diese ist auf verschiedenen Wegen erhältlich und stellt den aktuellen Stand der Entwicklung dar. Lesen Sie den Abschnitt FreeBSD-CURRENT vs. FreeBSD-STABLE des Handbuchs für weitere Informationen zur Installation und Verwendung von FreeBSD-CURRENT. Arbeiten Sie mit älteren Quellcodeversionen, kann dies leider bedeuten, das Ihre Änderungen obsolet sind, oder sich nicht mehr in FreeBSD reintegrieren lassen. Dieses Risiko lässt sich verringern, wenn Sie die Mailinglisten &a.announce; und &a.current; abonnieren, auf denen aktuelle Systemänderungen diskutiert werden. Wenn Ihre Änderungen auf ausreichend aktuellen Quellen beruhen, erstellen Sie als Nächstes einen Differenzensatz, den Sie an die FreeBSD-Entwickler schicken. Eine solche Differenz erstellen Sie mit &man.diff.1;. Das bevorzugte &man.diff.1;-Format für das Versenden von Patches ist das sogenannte unified output-Format, das Sie mit diff -u erstellen. Für größere Änderungen kann allerdings das context output-Format (erzeugt mit diff -c) die bessere Wahl sein. diff Dazu ein Beispiel: - - &prompt.user; diff -c oldfile newfile + &prompt.user; diff -c oldfile newfile - oder + oder - &prompt.user; diff -c -r olddir newdir + &prompt.user; diff -c -r olddir newdir - würde einen solchen Satz von Differenzen für die angegebene - Verzeichnishierarchie erzeugen. + würde einen solchen Satz von Differenzen für die + angegebene Verzeichnishierarchie erzeugen. - - &prompt.user; diff -u oldfile newfile + Genauso hätte + &prompt.user; diff -u oldfile newfile - oder + oder - &prompt.user; diff -u -r olddir newdir + &prompt.user; diff -u -r olddir newdir - hätte den gleichen Effekt, allerdings erfolgt die Ausgabe + den gleichen Effekt, allerdings erfolgt die Ausgabe im unified diff-Format. Lesen Sie dazu auch &man.diff.1;. Nachdem Sie den Differenzensatz erstellt und mit &man.patch.1; getestet haben, sollten Sie ihn an das FreeBSD-Projekt senden. Verwenden Sie dazu &man.send-pr.1; (wie im Abschnitt Fehlerberichte und allgemeine Vorschläge beschrieben). Senden Sie die Differenzen nicht nur an &a.hackers;, da diese sonst verloren gehen. Wir freuen uns über Ihren Beitrag (schließlich ist FreeBSD ein Freiwilligenprojekt); wir sind aber manchmal nicht in der Lage, das Problem sofort anzugehen. Es verbleibt aber in der PR-Datenbank, bis wir dafür Zeit finden. Verwenden Sie den Begriff [PATCH] im Synopsis-Feld des Berichts. uuencode Sie können auch ein tar-Archiv erzeugen (was vor allem dann sinnvoll ist, wenn Sie Dateien hinzugefügt, gelöscht oder umbenannt haben) und &man.uuencode.1; auf das Archiv anwenden. Mit &man.shar.1; erzeugte Archive sind ebenfalls willkommen. Wenn Ihre Änderungen potentielle Probleme aufweisen, wie Unklarheiten im Hinblick auf das Copyright, oder Sie einfach eine genaue Überprüfung Ihrer Änderungen möchten, sollten Sie die Änderungen an das &a.core; schicken, statt sie mit &man.send-pr.1; zu versenden. Die Mailingliste &a.core; erreicht nur eine kleine Gruppe von Leuten, die sich um die tägliche Arbeit an FreeSD kümmern. Beachten Sie aber, dass diese Gruppe sehr beschäftigt ist. Daher sollten Sie nur dann eine E-Mail an sie schicken, wenn es absolut notwendig ist. &man.intro.9; und &man.style.9; beschreiben den zu verwendenden Programmierstil. Bevor Sie also Code versenden, sollten Sie diese Informationen gelesen haben. Neuer Code oder große Mehrwertpakete Handelt es sich um einen bedeutenden Beitrag oder um das Hinzufügen von neuen wichtigen Fähigkeiten zu FreeBSD, ist es fast immer notwendig, die Änderungen als uuencoded tar-Dateien zu versenden, oder diese auf einer Internetseite oder einem FTP-Server bereitzustellen. Haben Sie keinen eigenen Speicherplatz im Internet, sollten Sie auf einer entsprechenden Mailinglisten nachfragen, ob jemand diese Aufgabe für Sie übernehmen kann. Arbeitet man mit großen Codebeständen, kommt man unweigerlich mit den unterschiedlichen Lizenzen in Berührung. Code, der in FreeBSD enthalten ist, kann unter den folgenden Lizenzen stehen: BSD-Lizenz Der BSD-Lizenz. Diese Lizenz wird von uns bevorzugt, weil sie an keine Bedingungen geknüpft ist und daher für kommerzielle Unternehmen sehr attraktiv ist. Das FreeBSD-Projekt unterstützt diese kommerzielle Verwendung, die manchmal sogar in eine Förderung des FreeBSD-Projekts mündet. GPLGNU General Public License GNU General Public License Der GNU General Public License, oder GPL. Diese Lizenz ist nicht ganz so beliebt bei uns, da sie die kommerzielle Nutzung des Quellcodes einschränkt. In Anbetracht der schieren Menge an GPL-Quellcode, den wir derzeit benötigen (wie Compiler, Assembler oder Textformatierer) wären wir aber schlecht beraten, Beiträge, die unter dieser Lizenz stehen, abzulehnen. Code, der unter der GPL steht, befindet sich in einem gesonderten Bereich des Quellcodebaums, und zwar unter - /sys/gnu oder - /usr/src/gnu, und ist daher für - jeden, für den die GPL ein Problem darstellt, sofort + /sys/gnu oder + /usr/src/gnu, und ist daher + für jeden, für den die GPL ein Problem darstellt, sofort erkennbar. Beiträge, die unter einer dieser Lizenzen stehen, müssen sorgfältig geprüft werden, bevor ihre Aufnahme in FreeBSD in Betracht gezogen wird. Beiträge, für die besonders restriktive Lizenzen gelten, werden generell abgelehnt, obwohl die Autoren ermutigt werden, ihre Veränderungen über ihre eigenen Kanäle verfügbar zu machen. Um Ihre Arbeit unter die BSD-Lizenz zu stellen, fügen Sie den folgenden Text am Beginn jeder von Ihnen erstellten Quellcodedatei ein, wobei Sie den Text zwischen den %%-Zeichen durch die entsprechenden Informationen ersetzt: Copyright (c) %%Jahr der Veröffentlichung%% %%Ihr Name%%, %%Ihr Land%% %%Ihre Postleitzahl%%. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY %%Ihr Name%% ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL %%Ihr Name%% BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. $Id$ Eine Kopie dieses Textes finden Sie unter /usr/share/examples/etc/bsd-style-copyright. Geld, Hardware oder Internetzugang Wir freuen uns immer, wenn jemand das FreeBSD-Projekt durch Spenden unterstützen will. Auch kleine Spenden können eine große Wirkung haben. Hardwarespenden sind ebenfalls sehr wichtig, um die Liste der von FreeBSD unterstützten Hardware erweitern zu können, da uns die Mittel zum Erwerb dieser Hardware fehlen. <anchor id="donations">Geldspenden Die FreeBSD Foundation ist eine gemeinnützige Gesellschaft, die zur Unterstützung des FreeBSD-Projekts geschaffen wurde. Sie ist nach dem Paragraphen 501(c)3 sowohl von der amerikanischen Einkommenssteuer als auch von der des Staates Colorado befreit. Spenden an solche steuerbefreiten Gesellschaften können unter gewissen Umständen steuermindernd geltend gemacht werden. Sie können Spenden in Scheckform an folgende Adresse senden:
The FreeBSD Foundation 7321 Brockway Dr. Boulder, CO 80303 USA
Die FreeBSD Foundation ist nun auch in der Lage, Spenden durch das PayPal-System entgegenzunehmen. Solche Spenden können über die Homepage der Foundation erfolgen. Für weitere Informationen zur FreeBSD Foundation sollten Sie den Artikel The FreeBSD Foundation -- an Introduction lesen. Sie erreichen die FreeBSD Foundation über die E-Mail-Adresse bod@FreeBSDFoundation.org.
Hardwarespenden donations Das FreeBSD-Projekt freut sich, wenn jemand benötigte Hardware spenden will. Sind Sie daran interessiert, setzen Sie sich bitte mit dem Donations Liaison Office in Verbindung. Internetzugang zur Verfügung stellen Wir sind ständig auf der Suche nach neuen FTP-, WWW- oder cvsup-Spiegeln. Wenn Sie einen solchen Spiegel einrichten wollen, lesen Sie bitte den Artikel Mirroring FreeBSD, der weitere Informationen enthält.
diff --git a/de_DE.ISO8859-1/books/fdp-primer/overview/chapter.sgml b/de_DE.ISO8859-1/books/fdp-primer/overview/chapter.sgml index c46e09fac8..3462488486 100644 --- a/de_DE.ISO8859-1/books/fdp-primer/overview/chapter.sgml +++ b/de_DE.ISO8859-1/books/fdp-primer/overview/chapter.sgml @@ -1,348 +1,348 @@ Überblick Herzlich Willkommen beim FreeBSD-Dokumentationsprojekt. Qualitativ hochwertige Dokumentation ist ein wichtiger Erfolgsfaktor und sehr bedeutend für die Verbreitung von FreeBSD. Die wichtigste Quelle dafür ist das FreeBSD-Dokumentationsprojekt (FDP). Jeder Beitrag, der zu diesem Projekt geleistet wird, ist ungemein wertvoll. Es ist das Anliegen dieser Fibel, den Leser mit dem FDP vertraut zu machen und zu erklären, wie das FDP organisiert ist, wie man selber Dokumente erstellt und an das FDP einreicht und wie die verfügbaren Werkzeuge effektiv beim Schreiben eingesetzt werden können. Wie jedes Opensourceprojekt, ist auch das FDP auf die Mithilfe vieler angewiesen. Deshalb ist jeder herzlich eingeladen mitzuarbeiten. Die dafür erforderlichen Voraussetzungen sind gering und es gibt keine Verpflichtung eine bestimmte Menge an Dokumenten pro Monat oder Jahr beizusteuern. Das Einzige was Sie tun müssen, ist sich auf der Mailingliste &a.doc; einzutragen. Nach dem Lesen der FDP-Fibel sollte man wissen: welche Dokumente durch das FDP betreut werden, wie man SGML-Dokumente liest und den SGML-Quellcode der durch das FDP betreuten Dokumente versteht, wie man selbst Änderungen an Dokumenten vornehmen kann und wie man Änderungen zur Begutachtung durch das FDP einreichen kann. Die FreeBSD-Dokumentationsreihe Das FDP umfaßt vier verschiedene Kategorien: Hilfeseiten Die englischen Hilfeseiten wurden nicht vom FDP geschrieben, da sie ein Teil des Basissystems sind. Jedoch können bzw. wurden bereits Teile von existierenden Hilfeseiten umformuliert, um sie verständlicher zu machen oder um Fehler zu beheben. Für die Übersetzung der Hilfeseiten des Systems in die verschiedenen Sprachen sind die einzelnen Übersetzergruppen verantwortlich. Alle dabei entstandenen Übersetzungen gehören zum FDP. Die FAQ Das Ziel der FAQ ist es, Fragen, die auf den verschiedenen Maillinglisten und in Newsgruppen regelmäßig diskutiert werden, nach einem einfachen Frage- und Antwort-Muster zu behandeln. Das schließt nicht aus, das auf bestimmte Fragen ausführlich und umfassend eingegangen wird. Das Handbuch Das Ziel des Handbuches ist es, die umfassende Quelle und Referenz im Netz für FreeBSD-Benutzer zu sein. Die Webseite Die Webseite http://www.FreeBSD.org und ihre vielen Spiegel auf der ganzen Welt vertreten das FreeBSD-Projekt im WWW. Für viele Menschen ist sie der erste Kontakt mit FreeBSD. Jede dieser vier Kategorien wird im FreeBSD-CVS-Baum verwaltet. Das bedeutet, dass alle Änderungen an den Dateien für jeden verfügbar sind und jeder sich mittels eines Programms wie CVSup oder CTM eine lokale Kopie der Dokumentation anlegen kann. Parallel zum FDP haben viele Menschen Anleitungen geschrieben und Webseiten mit Bezug zu FreeBSD erstellt. Einige davon werden im CVS-Archiv verwaltet, sofern der Autor dem zugestimmt hat. In anderen Fällen hat sich der Autor entschlossen, seine Dokumentation außerhalb des zentralen FreeBSD-CVS-Archivs zu verwalten. Das FDP bemüht sich, so viele Verweise wie möglich auf solche Quellen bereitzustellen. Bevor es losgeht Zum Verständnis der folgenden Kapitel sollte folgendes bereits bekannt sein: Wie eine aktuelle Kopie der FreeBSD-Dokumentation entweder auf Basis des FreeBSD-CVS-Archivs mittels CVS, CTM oder CVSup angelegt und gepflegt wird, oder wie mit CVSup eine frische Kopie des CVS-Archivs heruntergeladen wird. Wie neue Programme mit Hilfe des FreeBSD-Portsystems oder mittels &man.pkg.add.1; heruntergeladen und installiert werden. Der Schnellstart Falls man einfach loslegen möchte und sich sicher genug fühlt, um alles weitere erst bei Bedarf nachzusehen, kann man einfach den folgenden Anweisungen folgen: Zuerst muß der Metaport textproc/docproj auf dem betreffenden Arbeitsrechner installiert werden. &prompt.root; cd /usr/ports/textproc/docproj &prompt.root; make JADETEX=no install Anschließend sollte eine lokale Kopie des FreeBSD-doc-Verzeichnisbaumes angelegt werden. Hierfür kann man entweder auf CVSup im checkout-Modus zurückgreifen oder mittels cvs eine komplette Kopie des CVS-Archivs anlegen. Wenn man lieber mit einer Kopie des CVS-Archivs arbeiten möchte, werden als Minimum die Verzeichnisse doc/share und doc/de_DE.ISO8859-1/share benötigt. &prompt.user; cvs checkout doc/share &prompt.user; cvs checkout doc/de_DE.ISO8859-1/share Für den Fall, dass ausreichend Platz auf der Festplatte vorhanden ist, kann auch eine eine vollständige Arbeitskopie des gesamten CVS-Baumes anlegt werden. &prompt.user; cvs checkout doc Sollte geplant sein, ein existierendes Buch oder einen existierenden Artikel zu ändern, muß natürlich noch zusätzlich das betreffende Verzeichnis aus dem CVS-Archiv geholt werden. Soll hingegen ein neues Buch oder ein neuer Artikel geschrieben werden, empfiehlt es sich, auf bestehende Bücher und Artikel zurückzugreifen und diese als Vorlage zu nutzen. Ein Artikel über die Konfiguration eines VPNs zwischen FreeBSD und Windows 2000 kann wie folgt erstellt werden: Zuerst wird das Verzeichnis articles aus dem FreeBSD-CVS-Archiv lokal angelegt: &prompt.user; cvs checkout doc/de_DE.ISO8859-1/articles Anschließend kopiert man einen bereits existierenden Artikel und nutzt ihn als Vorlage. In diesem Beispiel soll der neue Artikel im Verzeichnis vpn-w2k liegen: &prompt.user; cd doc/de_DE.ISO8859-1/articles &prompt.user; cp -R committers-guide vpn-w2k Bereits exisitierende Dokumente, die geändert werden sollen, können direkt aus dem CVS-Archiv geholt werden. Das folgende Beispiel zeigt das für die FAQ aus dem Verzeichnis doc/de_DE.ISO8859-1/books/faq: &prompt.user; cvs checkout doc/de_DE.ISO8859-1/books/faq Jetzt können die .sgml Dateien mit einem beliebigen Texteditor bearbeitet werden. Danach ist make mit dem Ziel lint aufzurufen, um das gesamte Dokument auf Auszeichnungsfehler hin zu untersuchen, ohne dass zeitaufwändige Transformationen vorgenommen werden. &prompt.user; make lint Soll anschließend das Zieldokument erstellt werden, kann mit Hilfe der Variable FORMATS bestimmt werden, welche Ausgabeformate erzeugt werden sollen. Unterstützt werden momentan html, html-split, txt, ps, pdf und rtf. Die aktuelle Liste der unterstützten Formate befindet sich am Anfang der Datei doc/share/mk/doc.docbook.mk. Bei der Verwendung dieser Variable ist es wichtig, darauf zu achten, dass die Angabe der gewünschten Formate in Anführungszeichen eingeschlossen wird, sofern mehr als nur ein Format gleichzeitig erstellt werden soll. Wenn das Dokument beispielsweise nach HTML konvertiert werden soll, kann dies so vorgenommen werden: &prompt.user; make FORMATS=html Soll es hingegen in den Formaten html und txt erzeugt werden, kann man entweder &man.make.1; zweimal hintereinander aufrufen: &prompt.user; make FORMATS=html &prompt.user; make FORMATS=txt oder beide Formate mit einem Aufruf von &man.make.1; erzeugen: &prompt.user; make FORMATS="html txt" Zum Schluß müssen die Änderungen an das FDP mittels &man.send-pr.1; eingesandt werden. diff --git a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml index d18e060b49..96848dbd2d 100644 --- a/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/kernelconfig/chapter.sgml @@ -1,1614 +1,1614 @@ Jim Mock Erweitert und neu strukturiert von Jake Hamby Ursprünglich veröffentlicht von Robert Altschaffel Übersetzt von Konfiguration des &os;-Kernels Übersicht Kernel Erstellen eines angepassten Kernels Der Kernel ist das Herz des &os; Betriebssystems. Er ist verantwortlich für die Speicherverwaltung, das Durchsetzen von Sicherheitsdirektiven, Netzwerkfähigkeit, Festplattenzugriffen und vieles mehr. Obwohl &os; es immer mehr ermöglicht, dynamisch konfiguriert zu werden, ist es ab und an notwendig, den Kernel neu zu konfigurieren und zu kompilieren. Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes wissen: Wieso Sie Ihren Kernel neu konfigurieren sollten. Wie Sie eine Kernelkonfigurationsdatei erstellen oder verändern. Wie Sie mit der Konfigurationsdatei einen neuen Kernel kompilieren. Wie Sie den neuen Kernel installieren. Was zu tun ist, falls etwas schiefgeht. Alle Kommandos, aus den Beispielen dieses Kapitels, müssen mit root-Rechten ausgeführt werden. Wieso einen eigenen Kernel bauen? Traditionell besaß &os; einen monolithischen Kernel. Das bedeutet, dass der Kernel ein einziges großes Programm war, das eine bestimmte Auswahl an Hardware unterstützte. Also musste man immer, wenn man das Kernelverhalten verändern wollte, zum Beispiel wenn man neue Hardware hinzufügen wollte, einen neuen Kernel kompilieren, installieren und das System neu starten. Heutzutage vertritt &os; immer mehr die Idee eines modularen Kernels, bei dem bestimmte Funktionen, je nach Bedarf, als Module geladen werden können. Ein bekanntes Beispiel dafür sind die Module für die PCMCIA-Karten in Laptops, die zum Starten nicht zwingend benötigt und erst bei Bedarf geladen werden. Trotzdem ist es noch immer nötig, einige statische Kernelkonfigurationen durchzuführen. In einigen Fällen ist die Funktion zu systemnah, um durch ein Modul zu realisiert werden. In anderen Fällen hat eventuell noch niemand ein ladbares Kernelmodul für diese Funktion geschrieben. Das Erstellen eines angepaßten Kernels ist eines der wichtigsten Rituale, das nahezu jeder BSD-Benutzer erdulden muss. Obwohl dieser Prozess recht viel Zeit in Anspruch nimmt, bringt er doch viele Vorteile für Ihr &os; System. Der GENERIC-Kernel muss eine Vielzahl unterschiedlicher Hardware unterstützen, im Gegensatz dazu unterstützt ein angepasster Kernel nur Ihre Hardware. Dies hat einige Vorteile: Schnellerer Bootvorgang. Da der Kernel nur nach der Hardware des Systems sucht, kann sich die Zeit für einen Systemstart erheblich verkürzen. Geringerer Speicherbedarf. Ein eigener Kernel benötigt in der Regel weniger Speicher als ein GENERIC-Kernel, was vorteilhaft ist, da der Kernel immer im RAM verweilt. Insbesondere profitieren Systeme mit wenig RAM davon. Zusätzliche Hardwareunterstützung. Ein angepasster Kernel kann Unterstützung für Geräte wie Soundkarten bieten, die im GENERIC-Kernel nicht enthalten sind. Tom Rhodes Geschrieben von Informationen über die vorhandene Hardware beschaffen Bevor Sie mit der Kernelkonfiguration beginnen, sollten Sie wissen, über welche Hardware Ihr System verfügt. Verwenden Sie derzeit noch ein anderes Betriebssystem, ist es meist sehr einfach, eine Liste der installierten Hardware zu erzeugen. Verwenden Sie beispielsweise µsoft.windows;, können Sie dafür den Gerätemanager verwenden, den Sie in der Systemsteuerung finden. Einige Versionen von µsoft.windows; verfügen über ein System-Icon auf dem Desktop, über das Sie den Gerätemanager direkt aufrufen können. Haben Sie außer &os; kein weiteres Betriebssystem, müssen Sie diese Informationen manuell zusammentragen. Eine Möglichkeit, an Informationen über die vorhandene Hardware zu gelangen, ist der Einsatz von &man.dmesg.8; in Kombination mit &man.man.1;. Die meisten &os;-Gerätetreiber haben eine eigene Manualpage, die Informationen über die unterstützte Hardware enthält. Während des Systemstarts werden Informationen über die vorhandene Hardware ausgegeben. Die folgenden Zeilen zeigen beispielsweise an, dass der psm-Treiber eine angeschlossene Maus gefunden hat: psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: [ITHREAD] psm0: model Generic PS/2 mouse, device ID 0 Dieser Treiber muss in Ihrer Kernelkonfigurationsdatei vorhanden sein oder durch das Werkzeug &man.loader.conf.5; geladen werden. Manchmal zeigt dmesg während des Systemstarts nur Systemmeldungen, aber keine Informationen zur gefundenen Hardware an. In diesem Fall können Sie diese Informationen durch das Studium der Datei /var/run/dmesg.boot herausfinden. Eine weitere Möglichkeit bietet das Werkzeug &man.pciconf.8;, das ausführliche Informationen bereitstellt. Dazu ein Beispiel: ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 vendor = 'Atheros Communications Inc.' device = 'AR5212 Atheros AR5212 802.11abg wireless' class = network subclass = ethernet Diese Zeilen, die Sie durch den Aufruf des Befehls pciconf erhalten, zeigen, dass der Treiber ath eine drahtlose Ethernetkarte gefunden hat. Durch Eingabe des Befehls man ath öffnet sich die Manualpage &man.ath.4;. Rufen Sie &man.man.1; mit der Option auf, können Sie die Datenbank der Manualpages auch durchsuchen. Für das angegebene Beispiel würde dieser Befehl beispielsweise so aussehen: &prompt.root; man -k Atheros Dadurch erhalten Sie eine Liste aller Manualpages, die das angegebene Suchkriterium enthalten: ath(4) - Atheros IEEE 802.11 wireless network driver ath_hal(4) - Atheros Hardware Access Layer (HAL) Mit diesen Informationen ausgestattet, sollte der Bau eines angepassten Kernel keine allzugroßen Probleme mehr bereiten. Erstellen und Installation eines angepassten Kernels Kernel Erstellen und Installation Zuerst erläutern wir die Verzeichnisstruktur, in der der Kernel gebaut wird. Die im Folgenden genannten Verzeichnisse sind relativ zum Verzeichnis /usr/src/sys angegeben, das Sie auch über den Pfad /sys erreichen können. Es existieren mehrere Unterverzeichnisse, die bestimmte Teile des Kernels darstellen, aber die für uns wichtigsten sind arch/conf, in dem Sie die Konfigurationsdatei für den angepassten Kernel erstellen werden, und compile, in dem der Kernel gebaut wird. arch kann entweder i386, alpha, amd64, ia64, powerpc, sparc64 oder pc98 (eine in Japan beliebte Architektur) sein. Alles in diesen Verzeichnissen ist nur für die jeweilige Architektur relevant. Der Rest des Codes ist maschinenunabhängig und für alle Plattformen, auf die &os; portiert werden kann, gleich. Beachten Sie die Verzeichnisstruktur, die jedem unterstützten Gerät, jedem Dateisystem und jeder Option ein eigenes Verzeichnis zuordnet. Die Beispiele in diesem Kapitel verwenden ein i386-System. Wenn Sie ein anderes System benutzen, passen Sie bitte die Pfade entsprechend der Architektur des Systems an. Falls Sie kein /usr/src/sys Verzeichnis vorfinden, so sind die Kernelquellen nicht installiert. Der einfachste Weg, dies nachzuholen, ist sysinstall als root auszuführen. Dort wählen Sie Configure, dann Distributions, dann src, danach base und sys. Wenn Sie eine Aversion gegen sysinstall haben und eine offizielle &os; CD-ROM besitzen, können Sie die Kernelquellen auch von der Kommandozeile installieren: &prompt.root; mount /cdrom &prompt.root; mkdir -p /usr/src/sys &prompt.root; ln -s /usr/src/sys /sys &prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf - &prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf - Als nächstes wechseln sie in das Verzeichnis arch/conf und kopieren die Konfigurationsdatei GENERIC in eine Datei, die den Namen Ihres Kernels trägt. Zum Beispiel: &prompt.root; cd /usr/src/sys/i386/conf -&prompt.root; cp GENERIC MYKERNEL +&prompt.root; cp GENERIC MYKERNEL Traditionell ist der Name des Kernels immer in Großbuchstaben. Wenn Sie mehrere &os; mit unterschiedlicher Hardware warten, ist es nützlich, wenn Sie Konfigurationsdatei nach dem Hostnamen der Maschinen benennen. Im Beispiel verwenden wir den Namen - MYKERNEL. + MYKERNEL. Es ist nicht zu empfehlen die Konfigurationsdatei direkt unterhalb von /usr/src abzuspeichern. Wenn Sie Probleme haben, könnten Sie der Versuchung erliegen, /usr/src einfach zu löschen und wieder von vorne anzufangen. Wenn Sie so vorgehen, werden Sie kurz darauf merken, dass Sie soeben Ihre Kernelkonfigurationsdatei gelöscht haben. Editieren Sie immer eine Kopie von GENERIC. Änderungen an GENERIC können verloren gehen, wenn der Quellbaum aktualisiert wird. Sie sollten die Konfigurationsdatei an anderer Stelle aufheben und im Verzeichnis i386 einen Link auf die Datei erstellen. Beispiel: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; mkdir /root/kernels &prompt.root; cp GENERIC /root/kernels/MYKERNEL &prompt.root; ln -s /root/kernels/MYKERNEL - Jetzt editieren Sie MYKERNEL mit einem + Jetzt editieren Sie + MYKERNEL mit einem Texteditor Ihres Vertrauens. Wenn Sie gerade neu anfangen, ist Ihnen vielleicht nur der vi Editor bekannt, der allerdings zu komplex ist, um hier erklärt zu werden. Er wird aber in vielen Büchern aus der Bibliographie gut erklärt. &os; bietet aber auch einen leichter zu benutzenden Editor, den ee an, den Sie, wenn Sie Anfänger sind, benutzen sollten. Sie können die Kommentare am Anfang der Konfigurationsdatei ändern, um die Änderungen gegenüber GENERIC zu dokumentieren. SunOS Falls Sie schon einmal einen Kernel unter &sunos; oder einem anderen BSD kompiliert haben, werden Sie diese Konfigurationsdatei bereits kennen. Wenn Sie mit einem anderen Betriebssystem wie DOS vertraut sind, könnte die GENERIC Konfigurationsdatei Sie verschrecken. In diesen Fall sollten Sie den Beschreibungen im Abschnitt über die Konfigurationsdatei langsam und vorsichtig folgen. Wenn Sie die &os; Quellen synchronisieren, sollten Sie immer, bevor Sie etwas verändern, /usr/src/UPDATING durchlesen. Diese Datei enthält alle wichtigen Informationen, die Sie beim Aktualisieren beachten müssen. Da /usr/src/UPDATING immer zu Ihrer Version der &os; Quellen passt, sind die Informationen dort genauer, als in diesem Handbuch. Nun müssen Sie die Kernelquellen kompilieren. Den Kernel bauen Wechseln Sie in das Verzeichnis /usr/src: &prompt.root; cd /usr/src Kompilieren Sie den neuen Kernel: &prompt.root; make buildkernel KERNCONF=MYKERNEL Installieren Sie den neuen Kernel: &prompt.root; make installkernel KERNCONF=MYKERNEL Sie benötigen den kompletten Quellcodebaum, um den Kernel zu bauen. In der Voreinstellung werden beim Bau eines angepassten Kernels stets alle Kernelmodule neu gebaut. Wollen Sie Ihren Kernel schneller bauen oder nur bestimmte Module bauen, sollten Sie /etc/make.conf anpassen, bevor Sie Ihren Kernel bauen: MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs Wenn Sie diese Variable setzen, werden ausschließlich die hier angegebenen Module gebaut (und keine anderen). WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs Durch das Setzen dieser Variable werden werden alle Module bis auf die angegebenen gebaut. Weitere Variablen, die beim Bau eines Kernels von Interesse sein könnten, finden Sie in &man.make.conf.5;. /boot/kernel.old Der neue Kernel wird im Verzeichnis /boot/kernel, genauer unter /boot/kernel/kernel abgelegt, während der alte Kernel nach /boot/kernel.old/kernel verschoben wird. Um den neuen Kernel zu benutzen, sollten Sie Ihren Rechner jetzt neu starten. Falls etwas schief geht, sehen Sie bitte in dem Abschnitt zur Fehlersuche am Ende dieses Kapitels nach. Dort sollten Sie auch unbedingt den Abschnitt lesen, der erklärt, was zu tun ist, wenn der neue Kernel nicht startet. Im Verzeichnis /boot werden andere Dateien, die zum Systemstart benötigt werden, wie der Boot-Loader (&man.loader.8;) und dessen Konfiguration, abgelegt. Module von Fremdherstellern oder angepasste Module werden in /boot/kernel abgelegt. Beachten Sie bitte, dass diese Module immer zu dem verwendeten Kernel passen müssen. Module, die nicht zu dem verwendeten Kernel passen, gefährden die Stabilität des Systems. Joel Dahl Für &os; 6.X aktualisiert von Die Kernelkonfigurationsdatei Kernel NOTES NOTES Kernel Konfigurationsdatei Das Format der Konfigurationsdatei ist recht einfach. Jede Zeile enthält ein Schlüsselwort und ein oder mehrere Argumente. Eine Zeile, die von einen # eingeleitet wird, gilt als Kommentar und wird ignoriert. Die folgenden Abschnitte beschreiben jedes Schlüsselwort in der Reihenfolge, in der es in GENERIC auftaucht. Eine ausführliche Liste aller Optionen mit detaillierten Erklärungen finden Sie in der Konfigurationsdatei NOTES, die sich in demselben Verzeichnis wie die Datei sGENERIC befindet. Von der Architektur unabhängige Optionen sind in der Datei /usr/src/sys/conf/NOTES aufgeführt. Um einen Kernel mit allen möglichen Optionen zu bauen beispielsweise für Testzwecke), führen Sie als root die folgenden Befehle aus: &prompt.root; cd /usr/src/sys/i386/conf && make LINT Kernel Konfigurationsdatei Das folgende Beispiel zeigt eine GENERIC Konfigurationsdatei, die, wo notwendig, zusätzliche Kommentare enthält. Sie sollte der Datei /usr/src/sys/i386/conf/GENERIC auf Ihrem System sehr ähnlich sein. Kerneloptionen machine machine i386 Gibt die Architektur der Maschine an und muss entweder alpha, amd64, i386, ia64, pc98, powerpc oder sparc64 sein. Kerneloptionen cpu cpu I486_CPU cpu I586_CPU cpu I686_CPU Die vorigen Zeilen geben den Typ der CPU Ihres Systems an. Sie können mehrere CPU Typen angeben, wenn Sie sich zum Beispiel nicht sicher sind, ob Sie I586_CPU oder I686_CPU benutzen sollen. Für einen angepassten Kernel ist es aber am besten, wenn Sie nur die CPU angeben, die sich in der Maschine befindet. Der CPU-Typ wird in den Boot-Meldungen ausgegeben, die in der Datei /var/run/dmesg.boot gespeichert sind. Kerneloptionen ident ident GENERIC Gibt den Namen Ihres Kernels an. Hier sollten Sie den Namen einsetzen, den Sie Ihrer Konfigurationsdatei gegeben haben. In unserem Beispiel ist das MYKERNEL. Der Wert, den Sie ident zuweisen, wird beim Booten des neuen Kernels ausgegeben. Wenn Sie den Kernel von Ihrem normal verwendeten Kernel unterscheiden wollen, weil Sie zum Beispiel einen Kernel zum Testen bauen, ist es nützlich, hier einen anderen Namen anzugeben. #To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. Unter &os; werden Geräte mit &man.device.hints.5; konfiguriert. In der Voreinstellung überprüft &man.loader.8; beim Systemstart die Datei /boot/device.hints. Die Option hints erlaubt es, die Gerätekonfiguration statisch in den Kernel einzubinden, sodass die Datei device.hints in /boot nicht benötigt wird. makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols Der normale Bauprozess von FreeBSD erstellt nur dann einen Kernel, der Debugging-Informationen enthält, wenn Sie die Option von &man.gcc.1; aktivieren. options SCHED_4BSD # 4BSD scheduler Der herkömmliche (und voreingestellte) Scheduler von &os;. Ändern Sie diesen Wert nicht! options PREEMPTION # Enable kernel thread preemption Erlaubt es Kernelthreads, vor Threads eigentlich höherer Prioritält ausgeführt zu werden. Die Interaktivitält des Systems wird dadurch erhölt. Interrupt-Threads werden dabei bevorzugt ausgeführt. options INET # InterNETworking Netzwerkunterstützung. Auch wenn Sie nicht planen, den Rechner mit einem Netzwerk zu verbinden, sollten Sie diese Option aktiviert lassen. Die meisten Programme sind mindestens auf die Loopback Unterstützung (Verbindungen mit sich selbst) angewiesen. Damit ist diese Option im Endeffekt notwendig. options INET6 # IPv6 communications protocols Aktiviert die Unterstützung für das IPv6 Protokoll. options FFS # Berkeley Fast Filesystem Das Dateisystem für Festplatten. Wenn Sie von einer Festplatte booten wollen, lassen Sie diese Option aktiviert. options SOFTUPDATES # Enable FFS Soft Updates support Mit dieser Option wird die Unterstützung für Soft Updates, die Schreibzugriffe beschleunigen, in den Kernel eingebunden. Auch wenn die Funktion im Kernel ist, muss sie für einzelne Dateisysteme explizit aktiviert werden. Überprüfen Sie mit &man.mount.8;, ob die Dateisysteme Soft Updates benutzen. Wenn die Option soft-updates nicht aktiviert ist, können Sie die Option nachträglich mit &man.tunefs.8; aktivieren. Für neue Dateisysteme können Sie Option beim Anlegen mit &man.newfs.8; aktivieren. options UFS_ACL # Support for access control lists Diese Option aktiviert die Unterstützung für Zugriffskontrolllisten (ACL). Die ACLs hängen von erweiterten Attributen und UFS2 ab, eine genaue Beschreibung finden Sie in . Die Zugriffskontrolllisten sind in der Voreinstellung aktiviert und sollten auch nicht deaktiviert werden, wenn Sie schon einmal auf einem Dateisystem verwendet wurden, da dies die Zugriffsrechte auf Dateien in unvorhersehbarer Art und Weise ändern kann. options UFS_DIRHASH # Improve performance on big directories Diese Option steigert die Geschwindigkeit von Plattenzugriffen auf großen Verzeichnissen. Dadurch verbraucht das System etwas mehr Speicher als vorher. Für stark beschäftigte Server oder Arbeitsplatzrechner sollten Sie diese Option aktiviert lassen. Auf kleineren Systemen, bei denen Speicher eine kostbare Ressource darstellt oder Systemen, auf denen die Geschwindigkeit der Plattenzugriffe nicht wichtig ist, wie Firewalls, können Sie diese Option abstellen. options MD_ROOT # MD is a potential root device Diese Option aktiviert die Unterstüztung für ein Root-Dateisystem auf einem speicherbasierten Laufwerk (RAM-Disk). Kerneloptionen NFS Kerneloptionen NFS_ROOT options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT Das Network Filesystem. Wenn Sie keine Partitionen von einem &unix; File-Server über TCP/IP einhängen wollen, können Sie diese Zeile auskommentieren. Kerneloptionen MSDOSFS options MSDOSFS # MSDOS Filesystem Das &ms-dos; Dateisystem. Sie können diese Zeile auskommentieren, wenn Sie nicht vorhaben, eine DOS-Partition beim Booten einzuhängen. Das nötige Modul wird ansonsten automatisch geladen, wenn Sie das erste Mal eine DOS-Partition einhängen. Außerdem können Sie mit den ausgezeichneten emulators/mtools aus der Ports-Sammlung auf DOS-Floppies zugreifen, ohne diese an- und abhängen zu müssen (MSDOSFS wird in diesem Fall nicht benötigt). options CD9660 # ISO 9660 Filesystem Das ISO 9660 Dateisystem für CD-ROMs. Sie können diese Zeile auskommentieren, wenn Sie kein CD-ROM-Laufwerk besitzen oder nur ab und an CDs einhängen. Das Modul wird automatisch geladen, sobald Sie das erste Mal eine CD einhängen. Für Audio-CDs benötigen Sie dieses Dateisystem nicht. options PROCFS # Process filesystem (requires PSEUDOFS) Das Prozessdateisystem. Dies ist ein Pseudo-Dateisystem, das auf /proc eingehangen wird und es Programmen wie &man.ps.1; erlaubt, mehr Informationen über laufende Prozesse auszugeben. PROCFS sollte von &os; nicht mehr benötigt werden, da die meisten Debug- und Überwachungs-Werkzeuge nicht mehr darauf angewiesen sind. Daher wird das Prozessdateisystem auch nicht mehr automatisch in das System eingebunden. options PSEUDOFS # Pseudo-filesystem framework 6.X-Kernel benötigen zusätzlich zur Option PROCFS auch die Option PSEUDOFS. options GEOM_GPT # GUID Partition Tables. Diese Option ermöglicht eine große Anzahl Partitionen auf einem einzelnen Laufwerk. options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] Stellt die Kompatibilität zu 4.3BSD sicher. Belassen Sie diese Option, da sich manche Programme recht sonderbar verhalten werden, wenn Sie diese auskommentieren. options COMPAT_FREEBSD4 # Compatible with FreeBSD4 Mit &os; 5.X stellt diese Option auf &i386;- und Alpha-Systemen sicher, dass Anwendungen, die auf älteren &os; Versionen übersetzt wurden und alte Systemaufrufe verwenden, noch lauffähig sind. Wir empfehlen, diese Option auf allen &i386;- und Alpha-Systemen zu verwenden, auf denen vielleicht noch ältere Anwendungen laufen sollen. Auf Plattformen, die erst ab &os; 5.0 unterstützt werden (wie ia64 und &sparc;), wird diese Option nicht benötigt. options COMPAT_FREEBSD5 # Compatible with &os;5 Diese Option wird ab &os; 6.X benötigt, um Programme, die unter &os; 5.X-Versionen mit &os; 5.X-Systemaufrufen kompiliert wurden, unter &os; 6.X ausführen zu können. options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI Dies weist den Kernel an, 5 Sekunden zu warten, bevor er anfängt nach SCSI-Geräten auf dem System zu suchen. Wenn Sie nur IDE-Geräte besitzen, können Sie die Anweisung ignorieren. Sie können versuchen, den Wert zu senken, um den Startvorgang zu beschleunigen. Wenn &os; dann Schwierigkeiten hat, Ihre SCSI-Geräte zu erkennen, sollten Sie den Wert natürlich wieder erhöhen. options KTRACE # ktrace(1) support Dies schaltet die Kernel-Prozessverfolgung (engl. kernel process tracing) ein, die sehr nützlich bei der Fehlersuche ist. options SYSVSHM # SYSV-style shared memory Diese Option aktiviert die Unterstützung für System V Shared-Memory. Die XSHM-Erweiterung von X benötigt diese Option und viele Graphik-Programme werden die Erweiterung automatisch benutzen und schneller laufen. Wenn Sie X benutzen, sollten Sie diese Option auf jeden Fall aktivieren. options SYSVMSG # SYSV-style message queues Unterstützung für System V Messages. Diese Option vergrößert den Kernel nur um einige hundert Bytes. options SYSVSEM # SYSV-style semaphores Unterstützung für System V Semaphoren. Dies wird selten gebraucht, vergrößert aber den Kernel nur um einige hundert Bytes. Die Option des Kommandos &man.ipcs.1; zeigt Programme an, die diese System V Erweiterungen benutzen. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions Echtzeit-Erweiterungen, die 1993 zu &posix; hinzugefügt wurden. Bestimmte Programme wie &staroffice; benutzen diese Erweiterungen. options KBD_INSTALL_CDEV # install a CDEV entry in /dev Diese Option erstellt für die Tastatur einen Eintrag im Verzeichnis /dev. options ADAPTIVE_GIANT # Giant mutex is adaptive. Giant ist der Name einer Sperre (Mutex) die viele Kernel-Ressourcen schützt. Heutzutage ist Giant ein unannehmbarer Engpass, der die Leistung eines Systems beeinträchtigt. Daher wird Giant durch Sperren ersetzt, die einzelne Ressourcen schützen. Die Option ADAPTIVE_GIANT fügt Giant zu den Sperren hinzu, auf die gewartet werden kann. Ein Thread, der die Sperre Giant von einem anderen Thread benutzt vorfindet, kann nun weiterlaufen und auf die Sperre Giant warten. Früher wäre der Prozess in den schlafenden Zustand (sleep) gewechselt und hätte darauf warten müssen, dass er wieder laufen kann. Wenn Sie sich nicht sicher sind, belassen Sie diese Option. Beachten Sie, dass ab &os; 8.0-CURRENT und neuer alle Mutexe in der Voreinstellung adaptiv sein werden, es sei denn, Sie werden durch das Setzen der Option NO_ADAPTIVE_MUTEXES explizit als nichtadaptiv deklariert. Als Folge dessen ist Giant nun in in der Voreinstellung ebenfalls adaptiv, daher ist in diesen Versionen die Kerneloption ADAPTIVE_GIANT nicht mehr in der Kernelkonfigurationsdatei enthalten. Kerneloptionen SMP device apic # I/O APIC Das apic-Gerält ermöglicht die Benutzung des I/O APIC für die Interrupt-Auslieferung. Das apic-Gerält kann mit Kerneln für Einprozessorsysteme und Mehrprozessorsysteme benutzt werden. Kernel für Mehrprozessorsysteme benötigen diese Option zwingend. Die Unterstützung für Mehrprozessorsysteme aktivieren Sie mit der Option options SMP. Das apic-Gerät existiert nur unter der i386-Architektur, daher ist es sinnlos, diese Zeile unter einer anderen Architektur in Ihre Kernelkonfigurationsdatei aufzunehmen. device eisa Fügen Sie diese Zeile ein, wenn Sie ein EISA-Motherboard besitzen. Dies aktiviert die Erkennung und Konfiguration von allen Geräten auf dem EISA Bus. device pci Wenn Sie ein PCI-Motherboard besitzen, fügen Sie diese Zeile ein. Dies aktiviert die Erkennung von PCI-Karten und die PCI-ISA bridge. # Floppy drives device fdc Der Floppy-Controller. # ATA and ATAPI devices device ata Dieser Treiber unterstützt alle ATA und ATAPI Geräte. Eine device ata Zeile reicht aus und der Kernel wird auf modernen Maschinen alle PCI ATA/ATAPI Geräte entdecken. device atadisk # ATA disk drives Für ATA-Plattenlaufwerke brauchen Sie diese Zeile zusammen mit device ata. device ataraid # ATA RAID drives Für ATA-RAID brauchen Sie diese Zeile zusammen mit device ata. device atapicd # ATAPI CDROM drives Zusammen mit device ata wird dies für ATAPI CD-ROM Laufwerke benötigt. device atapifd # ATAPI floppy drives Zusammen mit device ata wird dies für ATAPI Floppy Laufwerke benötigt. device atapist # ATAPI tape drives Zusammen mit device ata wird dies für ATAPI Bandlaufwerke benötigt. options ATA_STATIC_ID # Static device numbering Erzwingt eine statische Gerätenummer für den Controller; ohne diese Option werden die Nummern dynamisch zugeteilt. # SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. device ahd # AHA39320/29320 and onboard AIC79xx devices options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic family #device ispfw # Firmware for QLogic HBAs- normally a module device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')) device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aha # Adaptec 154x SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50 SCSI-Controller. Kommentieren Sie alle Controller aus, die sich nicht in Ihrem System befinden. Wenn Sie ein IDE-System besitzen, können Sie alle Einträge entfernen. Die Zeilen mit den *_REG_PRETTY_PRINT-Einträgen aktivieren Debugging-Optionen für die jeweiligen Treiber. # SCSI peripherals device scbus # SCSI bus (required for SCSI) device ch # SCSI media changers device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE) SCSI Peripheriegeräte. Kommentieren Sie wieder alle Geräte aus, die Sie nicht besitzen. Besitzer von IDE-Systemen können alle Einträge entfernen. Der USB-&man.umass.4;-Treiber und einige andere Treiber benutzen das SCSI-Subsystem obwohl sie keine SCSI-Geräte sind. Belassen Sie die SCSI-Unterstützung im Kernel, wenn Sie solche Treiber verwenden. # RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x device rr232x # Highpoint RocketRAID 232x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac # Adaptec FSA RAID device aacp # SCSI passthrough for aac (requires CAM) device ida # Compaq Smart RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID Unterstützte RAID Controller. Wenn Sie keinen der aufgeführten Controller besitzen, kommentieren Sie die Einträge aus oder entfernen sie. # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller Der Tastatur-Controller (atkbdc) ist für die Ein- und Ausgabe von AT-Tastaturen und PS/2 Zeigegeräten (z.B. einer Maus) verantwortlich. Dieser Controller wird vom Tastaturtreiber (atkbd) und dem PS/2 Gerätetreiber (psm) benötigt. device atkbd # AT keyboard Zusammen mit dem atkbdc Controller bietet der atkbd Treiber Zugriff auf AT-Tastaturen. device psm # PS/2 mouse Benutzen Sie dieses Gerät, wenn Sie eine Maus mit PS/2 Anschluss besitzen. device kbdmux # keyboard multiplexer Basisunterstützung für Tastaturmultiplexer. Verwenden Sie nur eine einzige Tastatur, können Sie diese Zeile aus Ihrer Kernelkonfigurationsdatei entfernen. device vga # VGA video card driver Der Grafikkartentreiber. device splash # Splash screen and screen saver support Zeigt einen Splash Screen beim Booten. Diese Zeile wird auch von den Bildschirmschonern benötigt. # syscons is the default console driver, resembling an SCO console device sc sc ist in der Voreinstellung der Treiber für die Konsole, die der SCO-Konsole ähnelt. Da die meisten bildschirmorientierten Programme auf die Konsole mit Hilfe einer Datenbank wie termcap zugreifen, sollte es keine Rolle spielen, ob Sie diesen Treiber oder vt, den VT220 kompatiblen Konsolentreiber einsetzen. Wenn Sie Probleme mit bildschirmorientierten Anwendungen unter dieser Konsole haben, setzen Sie beim Anmelden die Variable TERM auf den Wert VT220. # Enable this for the pcvt (VT220 compatible) console driver #device vt #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor Der VT220 kompatible Konsolentreiber ist kompatibel zu VT100/102. Auf einigen Laptops, die aufgrund der Hardware inkompatibel zum sc Treiber sind, funktioniert dieser Treiber gut. Beim Anmelden sollten Sie die Variable TERM auf den Wert vt100 setzen. Dieser Treiber kann sich als nützlich erweisen, wenn Sie sich über das Netzwerk auf vielen verschiedenen Maschinen anmelden, da dort oft Einträge in termcap oder terminfo für das sc Gerät fehlen. Dagegen sollte vt100 auf jeder Plattform unterstützt werden. device agp Fügen Sie diese Zeile ein, wenn Sie eine AGP-Karte besitzen. Damit werden Motherboards mit AGP und AGP GART unterstützt. APM # Power management support (see NOTES for more options) #device apm Unterstützung zur Energieverwaltung. Diese Option ist nützlich für Laptops, allerdings - ist sie in GENERIC ab &os; 5.X - deaktiviert. + ist sie in GENERIC deaktiviert. # Add suspend/resume support for the i8254. device pmtimer Zeitgeber für Ereignisse der Energieverwaltung (APM und ACPI). # PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus PCMCIA Unterstützung. Wenn Sie einen Laptop benutzen, brauchen Sie diese Zeile. # Serial (COM) ports device sio # 8250, 16[45]50 based serial ports Die seriellen Schnittstellen, die in der &ms-dos;- und &windows;-Welt COM genannt werden. Wenn Sie ein internes Modem, das COM4 benutzt, besitzen und eine serielle Schnittstelle haben, die auf COM2 liegt, müssen Sie den IRQ des Modems auf 2 setzen (wegen undurchsichtigen technischen Gründen ist IRQ2 gleich IRQ9). Wenn Sie eine serielle Multiport-Karte besitzen, entnehmen Sie bitte die Werte, die Sie in die Datei /boot/device.hints einfügen müssen, der Hilfeseite &man.sio.4;. Einige Graphikkarten, besonders die auf S3-Chips basierten, benutzen IO-Adressen der Form 0x*2e8 und manche billige serielle Karten dekodieren den 16-Bit IO-Adressraum nicht sauber. Dies führt zu Konflikten und blockiert dann die COM4-Schnittstelle. Jeder seriellen Schnittstelle muss ein eigener IRQ zugewiesen werden (wenn Sie eine Multiport-Karte verwenden, bei der das Teilen von Interrupts unterstützt wird, muss das nicht der Fall sein), daher können in der Voreinstellung COM3 und COM4 nicht benutzt werden. # Parallel port device ppc Die parallele Schnittstelle auf dem ISA Bus. device ppbus # Parallel port bus (required) Unterstützung für den Bus auf der parallelen Schnittstelle. device lpt # Printer Unterstützung für Drucker über die parallele Schnittstelle. Sie brauchen jede der drei Zeilen, um die Unterstützung für einen Drucker an der parallelen Schnittstelle zu aktivieren. device plip # TCP/IP over parallel Der Treiber für das Netzwerkinterface über die parallele Schnittstelle. device ppi # Parallel port interface device Allgemeine I/O (geek port) und IEEE1284 I/O Unterstützung. #device vpo # Requires scbus and da Zip Laufwerk Dies aktiviert den Treiber für ein Iomega Zip Laufwerk. Zusätzlich benötigen Sie noch die Unterstützung für scbus und da. Die beste Performance erzielen Sie, wenn Sie die Schnittstelle im EPP 1.9 Modus betreiben. #device puc Aktivieren Sie diesen Treiber, wenn Sie eine serielle oder parallele PCI-Karte besitzen, die vom Treiber &man.puc.4; unterstützt wird. # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (Tulip) device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (Typhoon) device vx # 3Com 3c590, 3c595 (Vortex) Verschiedene Treiber für PCI-Netzwerkkarten. Geräte, die sich nicht in Ihrem System befinden, können Sie entfernen oder auskommentieren. # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support Einige PCI 10/100 Ethernet Netzwerkkarten, besonders die, die MII-fähige Transceiver verwenden oder Transceiver-Steuerungen implementieren, die ähnlich wie MII funktionieren, benötigen die Unterstützung für den MII-Bus. Die Zeile device miibus fügt dem Kernel die Unterstützung für das allgemeine miibus API und allen PHY-Treibern hinzu. device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit ethernet device nve # nVidia nForce MCP on-board Ethernet Networking device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc') device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (Starfire) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device stge # Sundance/Tamarack TC9021 gigabit Ethernet device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 EPIC) device vge # VIA VT612x gigabit ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (Boomerang, Cyclone) Treiber, die den MII Bus Controller Code benutzen. # ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' requires 'device miibus' device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. device lnc # NE2100, NE32-VL Lance Ethernet cards device sn # SMC's 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # ISA devices that use the old ISA shims #device le Treiber für ISA Ethernet Karten. Schauen Sie in /usr/src/sys/i386/conf/NOTES nach, um zu sehen, welche Karte von welchem Treiber unterstützt wird. # Wireless NIC cards device wlan # 802.11 support Generische 802.11-Unterstützung. Diese Zeile wird unbedingt benötigt, wenn Sie WLAN nutzen wollen. device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support Krypto-Unterstützung für 802.11-Geräte. Sie benötigen diese Zeilen, wenn Sie Ihr drahtloses Netzwerk verschlüsseln und die 802.11-Sicherheitsprotokolle einsetzen wollen. device an # Aironet 4500/4800 802.11 wireless NICs device ath # Atheros pci/cardbus NIC's device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath device awi # BayStack 660 and others device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC. Treiber für drahtlose Netzwerkkarten (WLAN). # Pseudo devices device loop # Network loopback Das TCP/IP Loopback Device. Wenn Sie eine Telnet oder FTP Verbindung zu localhost (alias 127.0.0.1) aufbauen, erstellen Sie eine Verbindung zu sich selbst durch dieses Device. Die Angabe dieser Option ist verpflichtend. device random # Entropy device Kryptographisch sicherer Zufallszahlengenerator. device ether # Ethernet support ether brauchen Sie nur, wenn Sie eine Ethernet-Karte besitzen. Der Treiber unterstützt das Ethernet-Protokoll. device sl # Kernel SLIP sl aktiviert die SLIP-Unterstützung. SLIP ist fast vollständig von PPP verdrängt worden, da letzteres leichter zu konfigurieren, besser geeignet für Modem zu Modem Kommunikation und mächtiger ist. device ppp # Kernel PPP Dies ist Kernel Unterstützung für PPP-Wählverbindungen. Es existiert auch eine PPP-Version im Userland, die den tun Treiber benutzt. Die Userland-Version ist flexibler und bietet mehr Option wie die Wahl auf Anforderung. device tun # Packet tunnel. Dies wird vom der Userland PPP benutzt. Die Zahl hinter tun gibt die Anzahl der unterstützten gleichzeitigen Verbindungen an. Weitere Informationen erhalten Sie im Abschnitt PPP dieses Handbuchs. device pty # Pseudo-ttys (telnet etc) Dies ist ein Pseudo-Terminal oder simulierter Login-Terminal. Er wird von einkommenden telnet und rlogin Verbindungen, xterm und anderen Anwendungen wie Emacs benutzt. device md # Memory disks Pseudo-Gerät für Speicher-Laufwerke. device gif # IPv6 and IPv4 tunneling Dieses Gerät tunnelt IPv6 über IPv4, IPv4 über IPv6, IPv4 über IPv4 oder IPv6 über IPv6. Das Gerät gif kann die Anzahl der benötigten Geräte automatisch bestimmen (auto-cloning). device faith # IPv6-to-IPv4 relaying (translation) Dieses Pseudo-Gerät fängt zu ihm gesendete Pakete ab und leitet Sie zu einem Dæmon weiter, der Verkehr zwischen IPv4 und IPv6 vermittelt. # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter Das ist der Berkeley Paketfilter. Dieses Pseudo-Gerät kann Netzwerkkarten in den promiscuous Modus setzen und erlaubt es damit, Pakete auf einem Broadcast Netzwerk (z.B. einem Ethernet) einzufangen. Die Pakete können auf der Festplatte gespeichert und mit &man.tcpdump.1; untersucht werden. Das &man.bpf.4;-Gerät wird von &man.dhclient.8; genutzt, um die IP-Adresse des Default-Routers zu bekommen. Wenn Sie DHCP benutzen, lassen Sie diese Option bitte aktiviert. # USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices device ugen # Generic device uhid # Human Interface Devices device ukbd # Keyboard device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse device ural # Ralink Technology RT2500USB wireless NICs device urio # Diamond Rio 500 MP3 player device uscanner # Scanners # USB Ethernet, requires mii device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet device cdce # Generic USB over Ethernet device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet Unterstützung für verschiedene USB Geräte. # FireWire support device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!) Verschiedene Firewire-Geräte. Mehr Informationen und weitere von &os; unterstützte Geräte entnehmen Sie bitte /usr/src/sys/i386/conf/NOTES. Hohe Speicheranforderungen (<acronym>PAE</acronym>) Physical Address Extensions (PAE) hohe Speicheranforderungen Systeme mit hohen Speicheranforderungen benötigen mehr Speicher als den auf 4 Gigabyte beschränkten User- und Kernel-Adressraum (KVA). Mit dem &pentium; Pro und neueren CPUs hat Intel den Adressraum auf 36-Bit erweitert. Die Physical-Address-Extension (PAE) von &intel;s &pentium; Pro und neueren Prozessoren unterstützt bis zu 64 Gigabyte Speicher. &os; kann diesen Speicher mit der Option in der Kernelkonfiguration nutzen. Die Option gibt es in allen aktuellen &os;-Versionen. Wegen Beschräkungen der Intel-Speicherarchitektur wird keine Unterscheidung zwischen Speicher oberhalb oder unterhalb von 4 Gigabyte getroffen. Speicher über 4 Gigabyte wird einfach dem zur Verfügung stehenden Speicher zugeschlagen. Sie aktivieren PAE im Kernel, indem Sie die folgende Zeile in die Kernelkonfigurationsdatei einfügen: options PAE &os; unterstützt PAE nur auf IA-32 Prozessoren. Die PAE-Unterstützung wurde zudem noch nicht hinreichend getestet und befindet sich im Vergleich zu anderen Komponenten von &os; noch im Beta-Stadium. Die PAE-Unterstützung in &os; ist mit den nachstehenden Einschränkungen verbunden: Ein Prozess kann nicht mehr als 4 Gigabyte virtuellen Speicher benutzen. KLD-Module können nicht in einen PAE-Kernel geladen werden, da sich das Bausystem der Module vom Bausystem des Kernels unterscheidet. Gerätetreiber, die nicht die &man.bus.dma.9;-Schnittstelle benutzen, führen zusammen mit einem PAE-Kernel zu Datenverlusten. Diese Treiber sollen nicht mit einem PAE-Kernel verwendet werden. Daher gibt es unter &os; eine zusätzliche PAE-Kernelkonfigurationsdatei, die alle Treiber enthält, die mit einem PAE-Kernel funktionieren. Einige Systemvariablen werden abhängig von der Speichergröße eingestellt. In einem PAE-System mit viel Speicher können die Werte daher zu hoch eingestellt sein. Ein Beispiel ist die sysctl-Variable , die die maximale Anzahl von vnodes im Kernel bestimmt. Solche Variablen sollten auf einen angemessenen Wert eingestellt werden. Es kann erforderlich sein, den virtuellen Adressraum des Kernels (KVA) zu vergrößern oder, wie oben beschrieben, den Wert einer häufig gebrauchten Kernelvariablen zu verringern. Dies verhindert einen Überlauf des KVAs. Der Adressraum des Kernels kann mit der Kerneloption vergrößert werden. Hinweise zur Leistungssteigerung und Stabilität entnehmen Sie bitte der Hilfeseite &man.tuning.7;. Die PAE-Unterstützung von &os; wird in der Hilfeseite &man.pae.4; beschrieben. Wenn etwas schiefgeht - Es gibt fünf Hauptfehlerquellen beim Erstellen eines + Es gibt vier Hauptfehlerquellen beim Erstellen eines angepassten Kernels: config verursacht Fehler: Wenn &man.config.8; misslingt, liegen Fehler in der Kernelkonfigurationsdatei vor. Zum Glück gibt &man.config.8; die die Zeilennummer der Fehlerstelle an, sodass Sie den Fehler schnell finden können. Beispielsweise könnten Sie folgende Fehlermeldung sehen: config: line 17: syntax error Vergleichen Sie die angegebene Zeile mit GENERIC und stellen Sie sicher, dass das Schlüsselwort richtig geschrieben ist. make verursacht Fehler: Wenn make misslingt, liegen meistens Fehler in der Konfigurationsdatei vor, die aber nicht schwerwiegend genug für &man.config.8; waren. Überprüfen Sie wiederum Ihre Konfiguration und wenn Sie keinen Fehler entdecken können, schicken Sie eine E-Mail mit Ihrer Kernelkonfiguration an die Mailingliste &a.de.questions;. Sie sollten dann schnell Hilfe erhalten. Der Kernel bootet nicht: Wenn der Kernel nicht booten will, ist das noch lange kein Grund zur Panik. Denn &os; besitzt exzellente Mechanismen zur Wiederherstellung nach dem Einsatz inkompatibler Kernel. Den Kernel, mit dem Sie booten wollen, können Sie sich im &os; Boot-Loader aussuchen. Dazu wählen Sie im Bootmenü die Option Escape to a loader prompt. Danach geben Sie den Befehl unload kernel ein, um anschließend mit boot /boot/kernel.old den alten Kernel zu booten. Sie können hier natürlich auch den Dateinamen eines anderen Kernels, der sauber bootet angeben. Für alle Fälle sollten Sie immer einen Kernel, der garantiert bootet, bereit halten. Nun können Sie die Konfiguration noch einmal überprüfen und den Kernel neu kompilieren. Dazu ist /var/log/messages sehr nützlich, da hier sämtliche Kernelmeldungen von jedem erfolgreichen Bootvorgang gespeichert werden. &man.dmesg.8; gibt Ihnen die Kernelmeldungen vom letzten Bootvorgang aus. Für den Fall, dass Sie Probleme bei dem Kernelbau bekommen, heben Sie sich immer einen GENERIC oder einen anderen Kernel, der garantiert bootet, auf. Der Name dieses Kernels sollte so gewählt sein, dass er beim nächsten Bau nicht überschrieben wird. Sie können sich nicht auf kernel.old verlassen, da dieser Kernel durch den zuletzt installierten Kernel, der vielleicht schon kaputt war, während der Installation ersetzt wird. Kopieren Sie den funktionierenden Kernel so schnell wie möglich in das richtige Verzeichnis (/boot/kernel). Ansonsten funktionieren Kommandos wie &man.ps.1; nicht. Benennen Sie dazu einfach das Verzeichnis des funktionierenden Kernels um: - &prompt.root; mv /boot/kernel /boot/kernel.bad + &prompt.root; mv /boot/kernel /boot/kernel.bad &prompt.root; mv /boot/kernel.good /boot/kernel Der Kernel ist in Ordnung, aber ps geht nicht mehr: Wenn Sie eine andere Version des Kernels installiert haben als die, mit der Ihre Systemwerkzeuge gebaut wurden (beispielsweise einen -CURRENT-Kernel auf einem -RELEASE-System), werden Programme wie &man.ps.1; und &man.vmstat.8; nicht mehr funktionieren. Sie sollten nun das komplette System neu bauen und installieren. Achten Sie darauf, dass die Quellen, aus denen Sie das System bauen, zum installierten Kernel passen. Das ist ein Grund dafür, warum man nie einen Kernel, der nicht zur Systemversion passt, benutzen sollten. diff --git a/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml b/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml index ea07561a0b..e16606c8b1 100644 --- a/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/l10n/chapter.sgml @@ -1,1037 +1,1050 @@ Andrey Chernov Beigesteuert von Michael C. Wu Überarbeitet von Alexander Langer Übersetzt von Martin Heinen Lokalisierung – I18N/L10N einrichten und benutzen Übersicht FreeBSD 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 wissen wie 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 Sie wissen, wie Sie zusätzliche Anwendungen installieren (). Grundlagen Was ist I18N/L10N? Internationalisierung Lokalisierung Lokalisierung Entwickler 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 benutzen In 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. Locale Lokale 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.Codierung Sprach- und Ländercodes Sprachcodes Ländercodes - Um 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 + Um 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ändercode Beschreibung en_US Englisch - USA ru_RU Russisch für Russland zh_TW Traditionelles Chinesisch für Taiwan Codierungen Codierungen ASCII Einige 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ätze Mit C-char Zeichensätzen werden Zeichensätze bezeichnet, die zur Codierung den C-Datentyp char verwenden. (siehe &man.multibyte.3;), zum Beispiel ISO8859-1, ISO8859-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 &os; 4.5 werden X11-kompatible Codierungen verwendet. I18N-Anwendungen Im 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 Locale Zum 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: POSIX LANG für Funktionen der &posix; &man.setlocale.3; Familie MIME MM_CHARSET gibt den den MIME Zeichensatz von Anwendungen an Damit ist die Locale für die Shell, jede Anwendung und X11 eingestellt. Verfahren zum Einstellen der Locale Locale Login-Klasse Es 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-Klasse Wenn 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 Codierung Damit 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:\ :setenv=LC_ALL=zh_TW.Big:\ :setenv=LC_COLLATE=zh_TW.Big5:\ :setenv=LC_CTYPE=zh_TW.Big5:\ :setenv=LC_MESSAGES=zh_TW.Big5:\ :setenv=LC_MONETARY=zh_TW.Big5:\ :setenv=LC_NUMERIC=zh_TW.Big5:\ :setenv=LC_TIME=zh_TW.Big5:\ :charset=big5:\ :xmodifiers="@im=gcin": #Set gcin as the XIM Input Server Weitere Informationen entnehmen Sie bitte &man.login.conf.5;. Einrichten als Administrator Stellen 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: Bevor Sie die Login-Klasse eines Benutzers ändern, müssen Sie den folgenden Befehl ausführen: &prompt.root; cap_mkdb /etc/login.conf Erst danach werden Ihre Änderungen in /etc/login.conf im System sichtbar. Ändern der Login-Klasse mit &man.vipw.8; vipw Wenn 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; adduser Login-Klasse Wenn 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; pw Wenn Sie neue Accounts mit &man.pw.8; anlegen, benutzen Sie die folgende Kommandozeile: &prompt.root; pw useradd Account -L Sprache Lokalisierung in den Startdateien der Shells Da Sie jede Shell unterschiedlich einrichten müssen, sollten Sie diese Methode nicht verwenden. Benutzen Sie stattdessen bitte Login-Klassen. MIME Locale Um 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 LANG MM_CHARSET=ISO-8859-1; export MM_CHARSET Einstellungen in /etc/csh.login: setenv LANG de_DE.ISO8859-1 setenv MM_CHARSET ISO-8859-1 Alternativ 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 LANG Mit C-Shells verwenden Sie den nachstehenden Eintrag: setenv LANG de_DE.ISO8859-1 Einrichten der Konsole Wenn 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=Zeichensatz Dabei ist Zeichensatz der Name der passenden Datei aus /usr/share/syscons/fonts ohne die Endung .fnt. sysinstall keymap screenmap Stellen Sie sicher, dass Sie die richtige Tasten- und Bildschirmzuordnung (keymap und screenmap) verwenden. Dies können Sie in sysinstall (vor &os; 5.2 /stand/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" moused Der 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. Dazu fügen Sie die folgende Zeile in Ihre Kernelkonfigurationsdatei ein: mousechar_start=3 keymap_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: Zeichensatz Terminaltyp ISO8859-1 oder ISO8859-15 cons25l1 ISO8859-2 cons25l2 ISO8859-7 cons25l7 KOI8-R cons25r KOI8-U cons25u CP437 (VGA default) cons25 US-ASCII cons25w Mit 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: Sprache Port traditionelles Chinesisch (BIG-5) chinese/big5con Japanisch japanese/kon2-16dot oder japanese/mule-freewnn Koreanisch korean/han Einrichten von X11 Obwohl X11 nicht Teil des FreeBSD Projects ist, stellen wir hier einige Hinweise für FreeBSD-Benutzer zusammen. Weitere Details entnehmen Sie bitte der &xorg; Website oder der Dokumentation Ihres X11 Servers. Anwendungsspezifische I18N-Einstellungen (Zeichensätze, Menüs, usw.) können Sie in ~/.Xresources vornehmen. Zeichensätze X11 True Type Font-Server Installieren Sie den &xorg;-Server (x11-servers/xorg-server) oder den &xfree86;-Server (x11-servers/XFree86-4-Server) und die &truetype; Zeichensätze Ihrer Sprache. Wenn Sie die Locale gesetzt haben, sollten die Menüs in Ihrer Sprache erscheinen. Eingabe von nicht-englischen Zeichen X11 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 Druckers Drucker 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 Dateisysteme Das 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. DOS Unicode Das &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.msdosfs.8;. I18N-Programme übersetzen Viele FreeBSD-Ports besitzen I18N-Unterstützung, einige davon enthalten -I18N im Namen. Für diese und viele andere Programme ist keine spezielle Konfiguration notwendig. MySQL Einige Anwendungen wie MySQL - müssen allerdings speziell für einen Zeichensatz - konfiguriert werden. Normalerweise wird dazu das - Makefile angepasst oder + müssen allerdings speziell für einen Zeichensatz in ihrem + Makefile konfiguriert werden. Normalerweise wird + dazu das Makefile angepasst oder configure mit einem speziellen Parameter aufgerufen. Lokalisierung für einzelne Sprachen Andrey Chernov Beigetragen von Russisch (KOI8-R Codierung) Lokalisierung russisch Weitere Informationen über die KOI8-R Codierung erhalten Sie auf der Webseite KOI8-R References (Russian Net Character Set). Einrichten der Locale Fü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 Konsole Fügen Sie folgende Zeile in /etc/rc.conf ein: mousechar_start=3 Nehmen Sie zusätzlich die folgenden Einstellungen in /etc/rc.conf auf: keymap="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 Druckers Drucker Die 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 Dateinamen Russische 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 0 Die Option legt die Locale fest. Die Option legt die Zeichenumwandlung fest. Stellen Sie sicher, dass /usr eingehangen ist, bevor Sie die &ms-dos;-Partition einhängen, da die Tabellen zur Zeichenumwandlung in /usr/libdata/msdosfs liegen. Weitere Informationen erhalten Sie in der Hilfeseite &man.mount.msdosfs.8;. Einrichten von X11 Richten Sie zunächst die normale Lokalisierung ein. Wenn Sie &xorg; verwenden, installieren Sie den Port x11-fonts/xorg-fonts-cyrillic. Im Abschnitt "Files" von /etc/X11/xorg.conf 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. Zusätzliche kyrillische Schriftarten finden Sie in der Ports-Sammlung. Die Unterstützung für eine russische Tastatur aktivieren Sie im "Keyboard" Abschnitt von xorg.conf: Option "XkbLayout" "us,ru" Option "XkbOptions" "grp:toggle" Stellen Sie zudem sicher, dass XkbDisable deaktiviert (auskommentiert) ist. - Beim Einsatz von grp:caps_toggle + Beim Einsatz von grp:toggle können Sie mit Right Alt (Alt Gr) zwischen dem RUS- und LAT-Modus wechseln, verwenden Sie hingegen grp:ctrl_shift_toggle, so erfolgt der Wechsel mit Ctrl Shift . - Die alte Funktion von CapsLock steht nur + Für grp:caps_toggle ist zum Wechseln + des RUS/LAT-Modus CapsLock zuständig. + Die alte Funktion von CapsLock steht nur im LAT-Modus mit der Tastenkombination Shift CapsLock - zur Verfügung. Verwenden Sie hingegen - grp:toggle, wechseln Sie mit - Right Alt (Alt Gr)zwischen dem RUS- und - LAT-Modus, da grp:caps_toggle aus - unbekannten Gründen unter - &xorg; nicht funktioniert. + zur Verfügung. grp:caps_toggle + funktioniert aus unbekannten Gründen unter + &xorg; nicht. Wenn Ihre Tastatur &windows;-Tasten besitzt und nicht-alphanumerische Tasten im RUS-Modus nicht funktionieren, fügen Sie die folgende Zeile in xorg.conf ein: Option "XkbVariant" ",winkeys" Die russische XKB-Tastatur funktioniert vielleicht 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 Taiwan Lokalisierung traditionell chinesisch Das taiwanesische FreeBSD Project stellt ein Tutorium unter zur Verfügung, das viele chinesische Anwendungen benutzt. Der Editor des FreeBSD Chinese HOWTOs ist Shen Chuan-Hsing statue@freebsd.sinica.edu.tw. Chuan-Hsing Shen statue@freebsd.sinica.edu.tw hat mithilfe des Tutoriums die Chinese FreeBSD Collection (CFC) geschaffen. Die Pakete und Skripten stehen unter . Deutsche Lokalisierung (für alle ISO 8859-1 Sprachen) Lokalisierung deutsch Von 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 verfügbar. + + Griechische Lokalisierung + + Lokalisierung + griechisch + + Nikos Kokkalis nickkokkalis@gmail.com hat einen + ganzen Artikel über die Griechisch-Unterstützung in + &os; geschrieben. Er ist als Teil der offiziellen &os; Dokumentation + auf Griechisch erhältlich unter http://www.freebsd.org/doc/el_GR.ISO8859-7/articles/greek-language-support/index.html. Bitte beachten Sie, dass dies + nur für Griechisch gilt. + + Japanische und koreanische Lokalisierung Lokalisierung japanisch Lokalisierung koreanisch Informationen über die japanische Lokalisierung entnehmen Sie bitte , Informationen über die koreanische Lokalisierung erhalten Sie unter . Nicht-englische FreeBSD-Dokumentation - Teile von FreeBSD wurden in andere Sprachen übersetzt. - Folgen Sie bitte den Links auf der FreeBSD-Webseite oder + Teile vor FreeBSD Dokumentation 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/mail/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml index 019f2c8fd8..8172adee49 100644 --- a/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml @@ -1,2552 +1,2466 @@ Bill Lloyd Ursprüglicher Text von Jim Mock Neugeschrieben von Robert Drehmel Übersetzt von Elektronische Post (E-Mail) Terminologie E-Mail Terminologie Das Akronym MTA steht für Mail Transfer Agent was übersetzt Mailübertragungs-Agent bedeutet. Während die Bezeichnung Server-Dämon die Komponente eines MTA benennt, die für eingehende Verbindungen zuständig ist, wird mit dem Begriff Mailer öfters die Komponente des MTA bezeichnet, die E-Mails versendet. Übersicht E-Mail Elektronische Post, besser bekannt als E-Mail, ist eine der am weit verbreitetsten Formen der Kommunikation heutzutage. Dieses Kapitel bietet eine grundlegende Einführung in das Betreiben eines E-Mail-Servers unter &os;. Ebenfalls wird der Versand und Empfang von E-Mails unter &os; behandelt. Das Kapitel ist jedoch keine komplette Referenz und es werden viele wichtige Überlegungen außer Acht gelassen. Wenn Sie das Thema detaillierter betrachten möchten, werden Sie bei einem der exzellenten Bücher fündig, die in aufgelistet sind. Dieses Kapitel behandelt die folgenden Punkte: Welche Software-Komponenten beim Senden und Empfangen von elektronischer Post involviert sind. Wo sich grundlegende sendmail Konfigurationsdateien in FreeBSD befinden. Den Unterschied zwischen entfernten und lokalen Postfächern. Wie man Versender von Massennachrichten daran hindern kann, Ihren E-Mail-Server illegalerweise als Weiterleitung zu verwenden. Wie man den Standard-Mailer des Systems, sendmail, ersetzt. Wie man oft auftretende E-Mail-Server Probleme behebt. Wie E-Mails mit UUCP verschickt werden. Wie E-Mails über einen Relay verschickt werden. Wie E-Mails über eine Einwahlverbindung gehandhabt werden. Wie Sie die SMTP-Authentifizierung einrichten. Den Empfang und den Versand von E-Mails mithilfe von Programmen wie mutt. Wie E-Mails von einem entfernten Server mit POP oder IMAP abgeholt werden. Wie eingehende E-Mail automatisch gefiltert wird. Bevor Sie dieses Kapitel lesen, sollten Sie: Ihre Netzwerk-Verbindung richtig einrichten. (). Die DNS-Information für Ihren E-Mail-Server einstellen (). Wissen, wie man zusätzliche Dritthersteller-Software installiert (). Elektronische Post benutzen POP IMAP DNS Fünf größere Teile sind am E-Mail-Austausch beteiligt: Das Benutzerprogramm, der Server-Dämon, DNS, ein entferntes oder lokales Postfach und natürlich der E-Mail-Server selbst. Das Benutzerprogramm Das beinhaltet Kommandozeilenprogramme wie mutt, pine, elm, mail und Programme mit grafischer Benutzeroberfläche, wie balsa und xfmail um einige zu nennen, und aufwändigere, wie WWW-Browser. Diese Programme geben die E-Mail-Transaktionen an den lokalen E-Mail-Server, weiter, entweder über einen der verfügbaren Server-Dämonen oder eine TCP-Verbindung. E-Mail-Server Dämon E-Mail-Server Dämonen sendmail E-Mail-Server Dämonen postfix E-Mail-Server Dämonen qmail E-Mail-Server Dämonen exim &os; enthält standardmäßig sendmail; es lassen sich aber auch andere E-Mail-Server Dämonen betreiben, beispielsweise exim, postfix oder qmail. Der Server-Dämon hat üblicherweise zwei Funktionen: Er kümmert sich um das Empfangen von eingehenden E-Mails und stellt ausgehende E-Mails zu. Es ist nicht Aufgabe des Dämons, E-Mails über POP oder IMAP bereit zu stellen, noch Zugriffe auf das lokale Postfach mbox oder Verzeichnisse mit Postfächern zu gewähren. Dafür benötigen Sie einen zusätzlichen Dämon. Alte Versionen von sendmail enthalten schwerwiegende Sicherheitslöcher, die einem Angreifer Zugriff auf Ihren Rechner verschaffen können. Um Sicherheitsprobleme zu umgehen, sollten Sie eine aktuelle sendmail-Version benutzen. Sie können auch einen anderen MTA aus der &os; Ports-Sammlung benutzen. E-Mail und DNS Das Domain Name System (DNS) und sein Dämon named spielen eine große Rolle in der Auslieferung von E-Mails. Um E-Mails auszuliefern, fragt der Mail-Server-Dämon im DNS den Rechner ab, der E-Mails für das Zielsystem entgegennimmt. Der gleiche Vorgang läuft ab, wenn eine E-Mail von einem entfernten Server auf Ihrem Mail-Server zugestellt wird. MX-Eintrag Im DNS werden Rechnernamen auf IP-Adressen abgebildet. Daneben werden spezielle Informationen für das Mail-System gespeichert, die MX-Einträge (MX record) genannt werden. Der MX-Eintrag (von Mail eXchanger) gibt an, welcher Rechner oder welche Rechner E-Mails für eine Domain annehmen. Existiert kein MX-Record für einen Rechner oder dessen Domain, werden E-Mails direkt an den Rechner zugestellt, vorausgesetzt der Rechner besitzt einen A-Eintrag, der den Rechnernamen auf seine IP-Adresse abbildet. Mit dem Kommando &man.host.1; können Sie die MX-Einträge für eine Domain abfragen: &prompt.user; host -t mx FreeBSD.org FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org E-Mails empfangen E-Mail empfangen Der E-Mail-Server empfängt alle E-Mails für Ihre Domäne. Er speichert die E-Mails entweder im mbox-Format (die Vorgabe) oder im Maildir-Format. Die E-Mails können lokal mit Programmen wie &man.mail.1; oder mutt gelesen werden. Mithilfe von Protokollen wie POP oder IMAP können die E-Mails auch von entfernten Rechnern gelesen werden. Wenn Sie die E-Mails direkt auf dem E-Mail-Server lesen möchten, wird kein POP- oder IMAP-Server gebraucht. Auf entfernte Postfächer mit <acronym>POP</acronym> und <acronym>IMAP</acronym> zugreifen POP IMAP Wenn Sie auf entfernte Postfächer zugreifen wollen, benötigen Sie den Zugang zu einem POP- oder IMAP-Server. Beide Protokolle bieten einen einfachen Zugriff auf entfernte Postfächer. IMAP besitzt allerdings einige Vorteile, unter anderem: IMAP kann sowohl Nachrichten auf einem entfernten Server speichern als auch von dort abholen. IMAP unterstützt gleichzeitig ablaufende Aktualisierungen. Da es nicht gleich die komplette Nachricht herunterlädt, ist IMAP über langsame Verbindungen sehr nützlich. Weiterhin können E-Mails auf dem Server durchsucht werden, was den Datenverkehr zwischen Clients und dem Server minimiert. Wenn Sie einen POP- oder IMAP-Server installieren wollen, gehen Sie nach den folgenden Schritten vor: Wählen Sie einen IMAP- oder POP-Server aus, der Ihre Anforderungen erfüllt. Die nachstehenden Server sind sehr bekannt: qpopper teapop imap-uw courier-imap Installieren Sie den ausgewählten POP- oder IMAP-Daemon aus der Ports-Sammlung. Wenn erforderlich, passen Sie die Datei /etc/inetd.conf an, um den POP- oder IMAP-Server zu starten. Beachten Sie, dass sowohl POP als auch IMAP Daten, wie den Benutzernamen und das Passwort, im Klartext übertragen. Wenn Sie die mit diesen Protokollen übertragenen Daten schützen wollen, können Sie SSH-Tunnel (siehe ) verwenden. Auf lokale Postfächer zugreifen Auf Postfächer können Sie lokal mithilfe spezieller Benutzerprogramme, die Mail-User-Agents (MUAs) genannt werden, zugreifen. Beispiele für solche Programme sind mutt oder &man.mail.1;. Der E-Mail-Server E-Mail-Server E-Mail-Server wird der Rechner genannt, welcher für die Zustellung und das Empfangen von E-Mails auf Ihrem Rechner oder vielleicht Ihrem Netzwerk zuständig ist. Christopher Shumway Beigesteuert von <application>sendmail</application>-Konfiguration sendmail &man.sendmail.8; ist das standardmäßig in FreeBSD installierte Mailübertragungsprogramm (MTA). Die Aufgabe von sendmail ist es, E-Mails von E-Mail-Benutzerprogrammen (MUA) anzunehmen und diese zu den entsprechenden Mailern zu liefern, die in der Konfigurationsdatei definiert sind. sendmail kann auch Netzwerkverbindungen annehmen und E-Mails zu lokalen Mailboxen Mailbox = Post- beziehungsweise Briefkasten oder anderen Programmen liefern. sendmail benutzt folgende Konfigurationsdateien: /etc/mail/access /etc/mail/aliases /etc/mail/local-host-names /etc/mail/mailer.conf /etc/mail/mailertable /etc/mail/sendmail.cf /etc/mail/virtusertable Dateiname Funktion /etc/mail/access Datenbank, in der Zugriffsrechte auf sendmail verwaltet werden /etc/mail/aliases Mailbox Aliase /etc/mail/local-host-names Liste der Rechner für die sendmail E-Mails akzeptiert /etc/mail/mailer.conf Mailer Programmkonfiguration /etc/mail/mailertable Mailer Versand-Zuordnungstabelle /etc/mail/sendmail.cf Hauptkonfigurationsdatei für sendmail /etc/mail/virtusertable Virtuelle Benutzer und Domänen-Tabellen <filename>/etc/mail/access</filename> Die Zugriffsdatenbank bestimmt, welche(r) Rechner oder IP-Adresse(n) Zugriff auf den lokalen E-Mail-Server haben und welche Art von Zugriff ihnen gestattet wird. Rechner können als , oder eingetragen oder einfach an sendmails Fehlerbehandlungsroutine mit einem angegebenen Mailer-Fehler übergeben werden. Rechner, die als eingetragen sind, was die Grundeinstellung ist, sind berechtigt E-Mails zu diesem Rechner zu schicken, solange die endgültige Zieladresse der lokale Rechner ist. Verbindungen von Rechnern, die als aufgelistet sind, werden abgelehnt. Rechnern mit gesetzter -Option für ihren Rechnernamen wird erlaubt Post für jede Zieladresse durch diesen Mail-Server zu senden. Konfigurieren der <application>sendmail</application> Zugriffsdatenbank cyberspammer.com 550 We do not accept mail from spammers FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers another.source.of.spam REJECT okay.cyberspammer.com OK 128.32 RELAY In diesem Beispiel haben wir fünf Einträge. E-Mail-Versender, die mit der linken Spalte der Tabelle übereinstimmen, sind betroffen von der Aktion in der rechten Spalte. Die ersten beiden Beispiele übergeben einen Fehlercode an sendmails Fehlerbehandlungsroutine. Die Nachricht wird an den entfernten Rechner gesendet, wenn eine Nachricht mit der linken Spalte der Tabelle übereinstimmt. Der nächste Eintrag lehnt Post von einem bestimmten Rechner des Internets ab (another.source.of.spam). Der nächste Eintrag akzeptiert E-Mail-Verbindungen des Rechners okay.cyberspammer.com, der exakter angegeben wurde als cyberspammer.com in der Zeile darüber. Genauere Übereinstimmungen haben den Vorrang vor weniger genauen. Der letzte Eintrag erlaubt die Weiterleitung von elektronischer Post von Rechnern mit einer IP-Adresse die mit 128.32 beginnt. Diese Rechner würden E-Mails durch diesen E-Mail-Server senden können, die für andere E-Mail-Server bestimmt sind. Wenn diese Datei geändert wird, müssen Sie make in /etc/mail ausführen um die Datenbank zu aktualisieren. <filename>/etc/mail/aliases</filename> Die Alias-Datenbank enthält eine Liste der virtuellen Mailboxen, die in andere Benutzer, Dateien, Programme oder andere Aliase expandiert werden. Hier sind ein paar Beispiele, die in /etc/mail/aliases benutzt werden können: E-Mail Aliases root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail" Das Dateiformat ist simpel; Der Name der Mailbox auf der linken Seite des Doppelpunkts wird mit den Zielen auf der rechten Seite ersetzt. Das erste Beispiel ersetzt die Mailbox root mit der Mailbox localuser, die dann wieder in der Alias-Datenbank gesucht wird. Wird kein passender Eintrag gefunden, wird die Nachricht zum lokalen Benutzer localuser geliefert. Das nächste Beispiel zeigt eine E-Mail-Verteilerliste. E-Mails an die Mailbox ftp-bugs werden zu den drei lokalen Mailboxen joe, eric und paul gesendet. Eine lokale Mailbox kann auch als user@example.com angegeben werden. Das nächste Beispiel zeigt das Schreiben von E-Mails in eine Datei, in diesem Fall /dev/null. Das letzte Beispiel verdeutlicht das Senden von E-Mails an ein Programm, in diesem Fall wird die Nachricht in die Standardeingabe von /usr/local/bin/procmail mittels einer UNIX Pipe geschrieben. Wenn diese Datei geändert wird, müssen Sie make in /etc/mail ausführen um die Änderungen in die Datenbank zu übernehmen. <filename>/etc/mail/local-host-names</filename> Das ist die Liste der Rechnernamen, die &man.sendmail.8; als lokalen Rechnernamen akzeptiert. Setzen Sie alle Domänen oder Rechner, für die sendmail Mail empfangen soll, in diese Datei. Wenn dieser Mail-Server zum Beispiel E-Mails für die Domäne example.com und den Rechner mail.example.com annehmen soll, könnte seine local-host-names Datei so aussehen: example.com mail.example.com Wird diese Datei geändert, muss &man.sendmail.8; neu gestartet werden, damit es die Neuerungen einliest. <filename>/etc/mail/sendmail.cf</filename> Die Hauptkonfigurations-Datei von sendmail (sendmail.cf) kontrolliert das allgemeine Verhalten von sendmail, einschließlich allem vom Umschreiben von E-Mail Adressen bis hin zum Übertragen von Ablehnungsnachrichten an entfernte E-Mail-Server. Mit solch einer mannigfaltigen Rolle ist die Konfigurationsdatei natürlich ziemlich komplex und ihre Einzelheiten können in diesem Kapitel nicht besprochen werden. Glücklicherweise muss diese Datei selten für Standard E-Mail-Server geändert werden. Die sendmail Hauptkonfigurationsdatei kann mit &man.m4.1; Makros erstellt werden, die Eigenschaften und Verhalten von sendmail definieren. Einige der Details finden Sie in /usr/src/contrib/sendmail/cf/README. Wenn Änderungen an dieser Datei vorgenommen werden, muss sendmail neu gestartet werden, damit die Änderungen Wirkung zeigen. <filename>/etc/mail/virtusertable</filename> Die Datei virtusertable ordnet Adressen für virtuelle Domänen und Mailboxen reellen Mailboxen zu. Diese Mailboxen können lokal, auf entfernten Systemen, Aliase in /etc/mail/aliases oder eine Datei sein. Beispiel einer virtuellen Domänen Zuordnung root@example.com root postmaster@example.com postmaster@noc.example.net @example.com joe In dem obigen Beispiel haben wir einen Eintrag für die Domäne example.com. Diese Datei wird nach dem ersten übereinstimmenden Eintrag durchsucht. Die erste Zeile ordnet root@example.com der lokalen Mailbox root zu. Der nächste Eintrag ordnet postmaster@example.com der Mailbox postmaster auf dem Rechner noc.example.net zu. Zuletzt, wenn keine Übereinstimmung von example.com gefunden wurde, wird der letzte Eintrag verglichen, der mit jeder Mail-Nachricht übereinstimmt, die an jemanden bei example.com adressiert wurde. Diese werden der lokalen Mailbox joe zugeordnet. Andrew Boothman Geschrieben von Gregory Neil Shapiro Informationen entnommen aus E-Mails geschrieben von Wechseln des Mailübertragungs-Agenten E-Mail MTA, wechseln Wie bereits erwähnt, ist bei FreeBSD sendmail schon als Ihr Mailübertragungs-Agent installiert. Deswegen ist es standardmäßig für Ihre aus- und eingehenden E-Mails verantwortlich. Jedoch wollen einige Systemadministratoren den MTA ihres Systems wechseln, was eine Reihe von Gründen haben kann. Diese Gründe reichen von einfach einen anderen MTA ausprobieren wollen bis hin dazu eine bestimmte Besonderheit zu benötigen oder ein Paket, welches auf einen anderen Mailer angewiesen ist. Glücklicherweise macht FreeBSD das Wechseln einfach, egal aus welchem Grund. Installieren eines neuen MTA Sie haben eine große Auswahl an verfügbaren MTA-Programmen. Ein guter Startpunkt ist die FreeBSD-Ports-Sammlung, wo Sie viele finden werden. Selbstverständlich steht es Ihnen frei, jeden MTA von überall her zu verwenden, solange Sie ihn unter FreeBSD zum Laufen bekommen. Fangen Sie an, indem Sie Ihren neuen MTA installieren. Sobald er installiert ist, gibt er Ihnen die Chance zu entscheiden ob er wirklich Ihren Bedürfnissen genügt. Zusätzlich gibt er Ihnen die Möglichkeit die neue Software zu konfigurieren, bevor sie den Job von sendmail übernimmt. Dabei sollten Sie sicherstellen, dass beim Installieren der neuen Software keine Versuche unternommen werden, System-Programme wie /usr/bin/sendmail zu überschreiben. Ansonsten wurde Ihre neue E-Mail-Software in den Dienst gestellt, bevor Sie sie konfiguriert haben. Für Informationen über die Konfiguration des von Ihnen gewählten MTAs sehen Sie bitte in der dazugehörigen Dokumentation nach. Ausschalten von <application>sendmail</application> - Die Prozedur des Startens von sendmail - hat sich zwischen 4.5-RELEASE, 4.6-RELEASE sowie den folgenden - Versionen signifikant verändert. Daher beinhaltet auch die - Prozedur des Abschaltens subtile Unterschiede. - Wenn Sie die Sendefunktion von sendmail deaktivieren, müssen Sie für den E-Mail-Versand ein alternatives System installieren. Tun Sie dies nicht, sind Systemfunktionen wie &man.periodic.8; nicht mehr in der Lage, ihre Resulate und Meldungen als E-Mail zu versenden. Aber auch viele andere Teile Ihres Systems erwarten, dass Sie über ein sendmail-kompatibles System verfügen. Sind Programme auf (die von Ihnen deaktivierten) sendmail-Binärdateien angewiesen, landen deren E-Mails ansonsten in einer inaktiven sendmail-Warteschlange und können nicht ausgeliefert werden. - - FreeBSD 4.5-STABLE vor dem 4.4.2002 (inklusive 4.5-RELEASE und - frühere Versionen) - - Schreiben Sie - - sendmail_enable="NO" - - in /etc/rc.conf. Das schaltet die - Verarbeitung eingehender E-Mails durch - sendmail ab. Aber bis - /etc/mail/mailer.conf nicht geändert - ist, wird sendmail weiterhin zum - Senden von E-Mails verwendet. - - - - FreeBSD 4.5-STABLE nach dem 4.4.2002 (inklusive 4.6-RELEASE - und spätere Versionen) - - Um sendmail komplett (also - inklusive der Funktion zum Versenden von E-Mails) - abzuschalten, müssen Sie den Eintrag - - sendmail_enable="NONE" - - in Ihre /etc/rc.conf - aufnehmen. - - Wenn Sie lediglich die Funktion zum Empfang von E-Mails - durch sendmail deaktivieren - wollen, sollten Sie folgenden Eintrag in - /etc/rc.conf einfügen: - - sendmail_enable="NO" - - In diesem Fall ist die lokale Zustellung von E-Mails - weiterhin möglich. Weitere Informationen zu den - Startoptionen von sendmail - finden Sie in der Manualpage &man.rc.sendmail.8;. - - - - FreeBSD 5.0-STABLE und neuer + Um sendmail komplett zu + deaktivieren (also inklusive der Funktion zum Versand + von E-Mails), fügen Sie die Zeile - Um sendmail komplett zu - deaktivieren (also inklusive der Funktion zum Versand - von E-Mails), fügen Sie die Zeile - - sendmail_enable="NO" + sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" - in /etc/rc.conf ein. + in /etc/rc.conf ein. - Wenn Sie lediglich die Funktion zum Empfang von E-Mails - durch sendmail deaktivieren - wollen, sollten Sie folgenden Eintrag in - /etc/rc.conf einfügen: + Wenn Sie lediglich die Funktion zum Empfang von E-Mails + durch sendmail deaktivieren + wollen, sollten Sie folgenden Eintrag in + /etc/rc.conf einfügen: - sendmail_enable="NO" + sendmail_enable="NO" - Weitere Informationen zu den Startoptionen von - sendmail finden Sie in der - Manualpage &man.rc.sendmail.8;. - + Weitere Informationen zu den Startoptionen von + sendmail finden Sie in der + Manualpage &man.rc.sendmail.8;. Starten Ihres neuen MTA beim Hochfahren des Systems - Abhängig davon, welche FreeBSD-Version Sie verwenden, - haben Sie die Wahl zwischen zwei Methoden, um Ihren - neuen MTA beim Hochfahren des System zu starten. - - - FreeBSD 4.5-STABLE vor dem 11.4.2002 (inklusive 4.5-RELEASE - und frühere Versionen - - Fügen Sie ein Skript zu - /usr/local/etc/rc.d, dessen Dateiname mit - .sh endet und von root - ausführbar ist. Das Skript sollte start - und stop Parameter annehmen. Beim Hochfahren - des Systems werden die System-Skripte den Befehl - - /usr/local/etc/rc.d/supermailer.sh start - - ausführen, den Sie auch manuell zum Starten des Dienstes - verwenden können. Beim Herunterfahren des Systems werden die - System-Skripte die stop Option einsetzen, also - den Befehl - - /usr/local/etc/rc.d/supermailer.sh stop + Der neue MTA kann beim Hochfahren durch das Hinzufügen einer + Konfigurationszeile in der /etc/rc.conf gestartet + werden, wie das folgende Beispiel für Postfix zeigt: - ausführen, der ebenso manuell von Ihnen zum Stoppen des - Dienstes während das System läuft, verwendet werden kann. - - - - - FreeBSD 4.5-STABLE nach dem 11.4.2000 (inklusive 4.6-RELEASE - und spätere Versionen) - - Für neuere FreeBSD-Versionen, können Sie die oben - dargestellte Möglichkeit verwenden, oder Sie setzen - - mta_start_script="filename" - - in /etc/rc.conf, wobei - filename den Namen des Skripts darstellt, - das beim Hochfahren des Systems ausgeführt wird, um Ihren MTA - zu starten. - + &prompt.root; echo 'postfix_enable=YES' >> /etc/rc.conf + + Der MTA wird jetzt automatisch beim Hochfahren des Systems + gestartet. Ersetzen von <application>sendmail</application> als Standard-Mailer des Systems Das Programm sendmail ist so allgegenwärtig als Standard-Software auf &unix; Systemen, dass einige Programme einfach annehmen es sei bereits installiert und konfiguriert. Aus diesem Grund stellen viele alternative MTAs ihre eigenen kompatiblen Implementierung der sendmail Kommandozeilen-Schnittstelle zur Verfügung. Das vereinfacht ihre Verwendung als drop-in Ersatz für sendmail. Folglich werden Sie, wenn Sie einen alternativen Mailer benutzen, sicherstellen müssen, dass ein Programm, das versucht sendmails Standard-Dateien wie /usr/bin/sendmail auszuführen, stattdessen Ihr gewähltes Mailübertragungsprogramm ausführt. Zum Glück stellt FreeBSD das &man.mailwrapper.8;-System zur Verfügung, das diese Arbeit für Sie erledigt. Wenn sendmail arbeitet wie es installiert wurde, werden Sie in /etc/mail/mailer.conf etwas wie das Folgende vorfinden: sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail purgestat /usr/libexec/sendmail/sendmail Das bedeutet, dass wenn eines der gewöhnlichen Kommandos (wie zum Beispiel /usr/bin/sendmail selbst) ausgeführt wird, das System tatsächlich eine Kopie des mailwrapper mit dem Namen sendmail startet, die mailer.conf überprüft und /usr/libexec/sendmail/sendmail ausführt. Mit diesem System lassen sich die Programme, die für die sendmail-Funktionen gestartet werden, leicht ändern. Daher könnten Sie, wenn Sie wollten, dass /usr/local/supermailer/bin/sendmail-compat anstelle von sendmail ausgeführt wird, /etc/mailer.conf wie folgt abändern: sendmail /usr/local/supermailer/bin/sendmail-compat send-mail /usr/local/supermailer/bin/sendmail-compat mailq /usr/local/supermailer/bin/mailq-compat newaliases /usr/local/supermailer/bin/newaliases-compat hoststat /usr/local/supermailer/bin/hoststat-compat purgestat /usr/local/supermailer/bin/purgestat-compat Fertigstellen Sobald Sie alles Ihren Wünschen entsprechend konfiguriert haben, sollten Sie entweder die sendmail Prozesse beenden, die Sie nicht mehr benötigen, und die zu Ihrer neuen Software zugehörigen Prozesse starten, oder einfach das System neustarten. Das Neustarten des Systems gibt Ihnen auch die Gelegenheit sicherzustellen, dass Sie Ihr System korrekt konfiguriert haben, um Ihren neuen MTA automatisch beim Hochfahren zu starten. Fehlerbehebung Hier finden sich ein paar häufig gestellte Fragen und ihre Antworten, die von der FAQ übernommen wurden. Warum muss ich einen FQDN (fully-qualified domain name/ voll ausgeschriebenen Domänennamen) für meine Rechner verwenden? Vielleicht liegen die Rechner in einer unterschiedlichen Domäne; zum Beispiel, wenn Sie sich in foo.bar.edu befinden, und einen Rechner namens mumble in der bar.edu Domäne erreichen wollen, müssen Sie ihn mit dem voll ausgeschriebenen Domänennamen mumble.bar.edu kontaktieren, anstatt bloß mit mumble. Traditionell wurde das von dem BSD BIND Resolver erlaubt. Wie auch immer, die aktuelle Version von BIND, die mit FreeBSD ausgeliefert wird, bietet keine Standardabkürzungen für nicht komplett angegebene Domänennamen außerhalb der Domäne, in der Sie sich befinden. Daher muss ein nicht-qualifizierter Rechner mumble entweder als mumble.foo.bar.edu gefunden werden, oder er wird in der root Domäne gesucht. Damit unterscheidet es sich von vorherigem Verhalten, bei dem die Suche über mumble.bar.edu und mumble.edu lief. Schauen Sie sich RFC 1535 an, wenn Sie wissen möchten, warum das als schlecht und sogar als Sicherheitsloch angesehen wurde. Um das zu umgehen, können Sie die Linie search foo.bar.edu bar.edu anstatt der vorherigen domain foo.bar.edu in Ihre /etc/resolv.conf einsetzen. Aber stellen Sie sicher, dass die Suchordnung nicht die Begrenzung von lokaler und öffentlicher Administration, wie RFC 1535 sie nennt, überschreitet. MX-Eintrag Warum meldet Sendmail mail loops back to myself? Dies wird in der Sendmail-FAQ wie folgt beantwortet: Ich erhalte folgende Fehlermeldungen: 553 MX list for domain.net points back to relay.domain.net 554 <user@domain.net>... Local configuration error Wie kann ich dieses Problem lösen? Sie haben durch die Benutzung eines MX-Eintrags eingestellt, dass 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 [die Datei hieß vor der Version 8.10 /etc/sendmail.cw] (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. PPP Wie kann ich einen E-Mail-Server auf einem Anwahl-PPP Rechner betreiben? Sie wollen einen FreeBSD-Rechner in einem LAN an das Internet anbinden. Der FreeBSD-Rechner wird ein E-Mail Gateway für das LAN. Die PPP-Verbindung ist keine Standleitung. MX-Eintrag Es gibt mindestens zwei Wege um dies zu tun. Einer davon ist UUCP zu verwenden. Ein anderer Weg ist, von einem immer mit dem Internet verbundenen Server einen sekundären MX-Dienst für Ihre Domäne zur Verfügung gestellt zu bekommen. Wenn die Domäne Ihrer Firma example.com ist, und Ihr Internet-Dienstanbieter example.net so eingestellt hat, dass er Ihrer Domäne einen sekundären MX-Dienst zur Verfügung stellt: example.com. MX 10 bigco.com. MX 20 example.net. Nur ein Rechner sollte als Endempfänger angegeben sein (fügen Sie Cw example.com zu /etc/sendmail.cf auf example.com). Wenn das sendmail des Versenders versucht, die E-Mail zuzustellen, wird es versuchen, Sie über die Modem-Verbindung (example.com) zu erreichen. Wahrscheinlich wird es keine Verbindung zustande bringen können, da Sie nicht eingewählt sind. sendmail wird die E-Mail automatisch zu der sekundären MX-Stelle geliefert, zu Ihrem Internet-Provider (example.net). Die sekundäre MX-Stelle wird periodisch versuchen versuchen eine Verbindung zu Ihnen aufzubauen, um die E-Mail zu der primären MX-Stelle (example.com zu liefern. Eventuell wollen Sie etwas wie dies als Login-Skript: #!/bin/sh # Put me in /usr/local/bin/pppmyisp ( sleep 60 ; /usr/sbin/sendmail -q ) & /usr/sbin/ppp -direct pppmyisp Wenn Sie ein separates Login-Skript für einen Benutzer erstellen wollen, könnten Sie stattdessen sendmail -qRexample.com in dem oben gezeigten Skript verwenden. Das erzwingt die sofortige Verarbeitung der E-Mails in Ihrer Warteschlange für example.com Eine weitere Verfeinerung der Situation ist wie folgt: Die Nachricht wurde der &a.isp; entnommen. > wir stellen einem Kunden den sekundären MX zur Verfügung. > Der Kunde verbindet sich mit unseren Diensten mehrmals am Tag > automatisch um die E-Mails zu seinem primären MX zu holen > (wir wählen uns nicht bei ihm ein, wenn E-Mails für seine > Domäne eintreffen). Unser sendmail sendet den Inhalt der > E-Mail-Warteschlange alle 30 Minuten. Momentan muss er 30 Minuten > eingewählt bleiben um sicher zu sein, dass alle seine E-Mails > beim primären MX eingetroffen sind. > > Gibt es einen Befehl, der sendmail dazu bringt, alle E-Mails sofort > zu senden? Der Benutzer hat natürlich keine root-Rechte auf > unserer Maschine. In der privacy flags Sektion von sendmail.cf befindet sich die Definition Opgoaway,restrictqrun Entferne restrictqrun um nicht-root Benutzern zu erlauben, die Verarbeitung der Nachrichten-Warteschlangen zu starten. Möglicherweise willst du auch die MX neu sortieren. Wir sind der primäre MX für unsere Kunden mit diesen Wünschen und haben definiert: # Wenn wir der beste MX für einen Rechner sind, versuche es direkt # anstatt einen lokalen Konfigurationsfehler zu generieren. OwTrue Auf diesem Weg liefern Gegenstellen direkt zu dir, ohne die Kundenverbindung zu versuchen. Dann sendest du zu deinem Kunden. Das funktioniert nur für Rechner, du musst also deinen Kunden dazu bringen, ihre E-Mail Maschine customer.com zu nennen, sowie hostname.customer.com im DNS. Setze einfach einen A-Eintrag in den DNS für customer.com. Warum bekomme ich die Fehlermeldung Relaying Denied, wenn ich E-Mails von anderen Rechnern verschicke? In der standardmäßigen FreeBSD-Installation wird sendmail nur dazu konfiguriert, E-Mails von dem Rechner, auf dem es läuft, zu senden. Wenn zum Beispiel ein POP-Server installiert ist, können Benutzer ihre E-Mails von der Schule, von der Arbeit oder von anderen Orten überprüfen. Sie werden jedoch keine E-Mails von außen verschicken können. Typischerweise wird ein paar Sekunden nach dem Versuch eine E-Mail von MAILER-DAEMON mit einer 5.7 Relaying Denied Fehlermeldung versendet werden. Es sind mehrere Wege möglich, dies zu umgehen. Die geradlinigste Lösung ist die Adresse Ihres Internet-Dienstanbieters in die Datei für die Weiterleitungs-Domänen zu platzieren. Das lässt sich schnell erreichen mit: &prompt.root; echo "your.isp.example.com" > /etc/mail/relay-domains Nach Erstellen oder Editieren dieser Datei müssen Sie sendmail neu starten. Das funktioniert großartig wenn Sie ein Server-Administrator sind und E-Mails nicht lokal versenden, oder gerne ein Client/System mit grafischer Oberfläche auf einer anderen Maschine oder sogar über einen anderen Internet-Dienstanbieter verwenden wollen. Es ist auch sehr nützlich, wenn Sie nur ein oder zwei E-Mail Accounts eingerichtet haben. Soll eine größere Anzahl Adressen hinzugefügt werden, können Sie die Datei einfach in Ihrem favorisierten Editor öffnen und die Domänen anfügen, je eine pro Zeile: your.isp.example.com other.isp.example.net users-isp.example.org www.example.org Jetzt wird jede E-Mail, die durch Ihr System von einem der in diese Liste eingetragenen Rechner geschickt wurde, ihr Ziel erreichen (vorausgesetzt, der Benutzer hat einen Account auf Ihrem System). Dies ist ein sehr schöner Weg, um Benutzern das entfernte E-Mail Versenden von Ihrem System zu erlauben, ohne dem Massenversand (SPAM) die Tür zu öffnen. Weiterführende Themen Die folgenden Abschnitte behandeln kompliziertere Themen wie E-Mail-Konfiguration und das Einrichten von E-Mail für Ihre ganze Domäne. Grundlegende Konfiguration Mit der Software im Auslieferungszustand sollten Sie fähig sein, E-Mails an externe Rechner zu senden, solange Sie /etc/resolv.conf eingerichtet haben oder Ihren eigenen Name Server laufen lassen. Wenn Sie die E-Mails für Ihren Rechner zu einem anderen Rechner geliefert haben wollen, gibt es zwei Methoden: Betreiben Sie Ihren eigenen Name Server und haben Sie Ihre eigene Domäne, zum Beispiel FreeBSD.org. Lassen Sie sich E-Mails direkt zu Ihrem Rechner liefern. Dies geschieht indem E-Mails direkt zu dem aktuellen DNS Namen Ihrer Maschine geliefert werden. Zum Beispiel example.FreeBSD.org. Ungeachtet welche Methode Sie auswählen, um E-Mails direkt zu Ihrem Rechner geliefert zu bekommen, benötigen Sie eine permanente (statische) IP-Adresse (keine dynamische PPP-Anwahl). Wenn Sie sich hinter einer Firewall befinden, muss diese den SMTP-Verkehr an Sie weiterleiten. Wollen Sie E-Mails an Ihrem Rechner selbst empfangen, müssen Sie eines der folgenden Dinge sicherstellen: Vergewissern Sie sich, dass der MX-Eintrag in Ihrem DNS zu der IP-Adresse Ihres Rechners zeigt. Stellen Sie sicher, dass sich für Ihren Rechner kein MX-Eintrag im DNS befindet. Jede der erwähnten Konfigurationsmöglichkeiten erlaubt Ihnen, E-Mails direkt auf Ihrem Rechner zu empfangen. Versuchen Sie das: &prompt.root; hostname example.FreeBSD.org &prompt.root; host example.FreeBSD.org example.FreeBSD.org has address 204.216.27.XX Wenn Sie diese Ausgabe erhalten, sollten direkt an yourlogin@example.FreeBSD.org geschickte E-Mails ohne Probleme funktionieren. Sehen Sie stattdessen etwas wie dies: &prompt.root; host example.FreeBSD.org example.FreeBSD.org has address 204.216.27.XX example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org So wird jede an Ihren Rechner (example.FreeBSD.org) gesandte E-Mail auf hub unter dem gleichen Benutzernamen gesammelt anstatt direkt zu Ihrem Rechner geschickt zu werden. Die obige Information wird von Ihrem DNS-Server verwaltet. Der DNS-Eintrag, der die E-Mail Routen-Information enthält, ist der Mail eXchange Eintrag. Existiert kein MX-Eintrag, werden E-Mails direkt anhand der IP-Adresse geliefert. Der MX-Eintrag für freefall.FreeBSD.org sah einmal so aus: freefall MX 30 mail.crl.net freefall MX 40 agora.rdrop.com freefall MX 10 freefall.FreeBSD.org freefall MX 20 who.cdrom.com Wie Sie sehen können, hatte freefall viele MX-Einträge. Die kleinste MX-Nummer ist der Rechner, der die E-Mails letztendlich bekommt, wobei die anderen temporär E-Mails in Warteschlangen einreihen während freefall beschäftigt oder unerreichbar ist. Um besonders nützlich zu sein, sollten stellvertretende MX-Seiten nicht dieselben Internet-Verbindungen wie Ihre eigene verwenden. Für Ihren Internet-Dienstleister oder andere sollte es kein Problem darstellen, Ihnen diesen Dienst zur Verfügung zu stellen. E-Mails für Ihre Domäne Um einen E-Mail-Server (auch bekannt als Mail-Server) einzurichten, benötigen Sie eine Umlenkung jeglicher E-Mails zu Ihm, die an die verschiedenen Workstations gesendet werden. Im Grunde wollen Sie jede an Ihre Domäne gesendete E-Mail abfangen (in diesem Fall *.FreeBSD.org), damit Ihre Benutzer E-Mails mittels POP oder direkt auf dem Server überprüfen können. Am einfachsten ist es, wenn Accounts mit gleichen Benutzernamen auf beiden Maschinen existieren. Verwenden Sie &man.adduser.8;, um dies zu erreichen. Der E-Mail-Server, den Sie verwenden wollen, muss als für den E-Mail-Austausch zuständiger Rechner auf jeder Workstation im Netzwerk gekennzeichnet werden. Dies wird in der DNS-Konfiguration so ausgeführt: example.FreeBSD.org A 204.216.27.XX ; Workstation MX 10 hub.FreeBSD.org ; Mailhost Diese Einstellung wird E-Mail für die Workstations zu dem E-Mail-Server leiten, wo auch immer der A-Eintrag hinzeigt. Die E-Mails werden zum MX-Rechner gesandt. Sofern Sie nicht einen DNS-Server laufen haben, können Sie diese Einstellung nicht selbst vornehmen. Ist es Ihnen nicht möglich einen eigenen DNS-Server laufen zu lassen, reden Sie mit Ihren Internet-Dienstleister oder wer auch immer Ihre DNS-Verwaltung übernimmt. Wenn Sie ein virtuelles E-Mail System anbieten, werden die folgenden Informationen nützlich sein. Für ein Beispiel nehmen wir an, Sie haben einen Kunden mit einer eigenen Domäne, in diesem Fall customer1.org und Sie wollen jegliche E-Mails für customer1.org zu Ihrem E-Mail-Server gesendet haben, der mail.myhost.com heißt. Der Eintrag in Ihrem DNS sollte wie folgender aussehen: customer1.org MX 10 mail.myhost.com Sie benötigen keinen A-Eintrag, wenn Sie für die Domain nur E-Mails verwalten wollen. Bedenken Sie, dass das Pingen von customer1.org nicht möglich ist, solange kein A-Eintrag für diese Domäne existiert. Jetzt müssen Sie nur noch sendmail auf Ihrem Mailrechner mitteilen, für welche Domänen und/oder Rechnernamen es Mails akzeptieren soll. Es gibt einige Wege wie dies geschehen kann. Die Folgenden funktionieren alle gleichermaßen: Fügen Sie die Rechnernamen zu Ihrer /etc/sendmail.cw Datei hinzu, wenn Sie FEATURE(use_cw_file) verwenden. Ab sendmail 8.10 heißt diese Datei /etc/mail/local-host-names. Tragen Sie eine Zeile mit dem Inhalt Cwyour.host.com in Ihre /etc/sendmail.cf Datei (beziehungsweise /etc/mail/sendmail.cf ab sendmail 8.10) ein. SMTP über UUCP Die sendmail-Konfigurationsdatei, die mit FreeBSD ausgeliefert wird, ist für Systeme geeignet, die direkt ans Internet angeschlossen sind. Systeme, die ihre E-Mails per UUCP austauschen wollen, müssen eine andere 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. Die Datei README im Verzeichnis cf kann zur grundlegenden Einführung in die &man.m4.1;-Konfiguration dienen. Zur Zustellung über UUCP sind Sie am besten damit beraten, die mailertable-Datenbank zu benutzen. Mit dieser Datenbank ermittelt sendmail mit welchem Protokoll und wohin eine E-Mail zugestellt werden soll. Zunächst müssen Sie Ihre .mc-Datei erstellen. Das Verzeichnis /usr/share/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: &prompt.root; cd /etc/mail &prompt.root; make foo.cf &prompt.root; cp foo.cf /etc/mail/sendmail.cf Eine 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.UUCP Die 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.relay Ein 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: Die ersten drei Zeilen behandeln spezielle Fälle, in denen an Domänen adressierte E-Mails nicht über die Standard-Route versendet werden sollen, sondern zu einem UUCP-Nachbarn, um den Zustellweg abzukürzen. Die nächsten Zeilen behandeln E-Mails an Rechner in der lokalen Domain. 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, dass diese Datei in eine DBM-Datenbankdatei konvertiert werden muss, bevor sie benutzt werden kann, sollte der Befehl hierzu als Kommentar am Anfang der mailertable plaziert werden. Sie müssen den Befehl jedes Mal ausführen, wenn Sie die mailertable geändert haben. Abschließender Hinweis: Wenn Sie unsicher sind, ob bestimmte Zustellwege funktionieren, erinnern Sie sich an die Option von sendmail. Sie startet sendmail im Adress-Testmodus; geben Sie einfach 3,0, gefolgt von der Adresse, für die Sie den Zustellweg testen möchten, ein. Die letzte Zeile nennt Ihnen den benutzten Mailagenten, den Zielhost, mit dem dieser Agent aufgerufen wird und die (möglicherweise übersetzte) Adresse. Verlassen Sie diesen Modus, indem Sie Ctrl 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 . > > ^D Bill Moran Beigetragen von Ausgehende E-Mail über einen Relay versenden In vielen Fällen wollen Sie E-Mail nur über einen Relay verschicken. Zum Beispiel: Sie wollen von Ihrem Arbeitsplatz Programme wie &man.send-pr.1; benutzen. Dazu soll der Relay Ihres ISPs verwendet werden. Ein Server, der E-Mails nicht selbst verarbeitet, soll alle E-Mails zu einem Relay schicken. So ziemlich jeder MTA kann diese Aufgaben erfüllen. Leider ist es oft schwierig, einen vollwertigen MTA so zu konfigurieren, dass er lediglich ausgehende E-Mails weiterleitet. Es ist übertrieben, Programme wie sendmail und postfix nur für diesen Zweck einzusetzen. Weiterhin kann es sein, dass die Bestimmungen Ihres Internetzugangs es verbieten, einen eigenen Mail-Server zu betreiben. Um die hier beschriebenen Anforderungen zu erfüllen, installieren Sie einfach den Port mail/ssmtp. Führen Sie dazu als root die nachstehenden Befehle aus: &prompt.root; cd /usr/ports/mail/ssmtp &prompt.root; make install replace clean Nach der Installation konfigurieren Sie mail/ssmtp mit den folgenden vier Zeilen in /usr/local/etc/ssmtp/ssmtp.conf: root=yourrealemail@example.com mailhub=mail.example.com rewriteDomain=example.com hostname=_HOSTNAME_ Stellen Sie sicher, dass Sie eine gültige E-Mail-Adresse für root verwenden. Geben Sie für mail.example.com den Mail-Relay Ihres ISPs an (einige ISPs nennen den Relay Postausgangsserver oder SMTP-Server). Deaktivieren Sie sendmail indem Sie in /etc/rc.conf sendmail_enable="NONE" angeben. mail/ssmtp verfügt über weitere Optionen. Die Musterkonfiguration in /usr/local/etc/ssmtp oder die Hilfeseite von ssmtp enthalten weitere Beispiele. Wenn Sie ssmtp wie hier beschrieben eingerichtet haben, funktionieren Anwendungen, die E-Mails von Ihrem Rechner verschicken. Sie verstoßen damit auch nicht gegen Bestimmungen Ihres ISPs und laufen nicht in Gefahr, dass Ihr Rechner zum Versenden von Spams missbraucht wird. E-Mail über Einwahl-Verbindungen 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, besitzen Sie wahrscheinlich eine Mailbox auf dem Mailserver Ihres ISPs. Lassen Sie uns annehmen, die Domäne ihres ISPs sei example.net und Ihr Benutzername user; außerdem nehmen wir an, dass Sie Ihre Maschine bsd.home genannt haben und, dass Ihr ISP ihnen gesagt hat, dass Sie relay.example.net als Mail-Relayhost benutzen können. Um Mails aus Ihrer Mailbox abzuholen, müssen Sie ein gesondertes Programm installieren; fetchmail ist eine gute Wahl, weil es viele verschiedene Protokolle unterstützt. Das Programm können Sie als Paket oder von der Ports-Sammlung (mail/fetchmail) installieren. Für gewöhnlich wird von Ihrem ISP POP zur Verfügung gestellt. 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 veranlasst sendmail, Ihre ausgehenden Mails zu verarbeiten, sobald eine Verbindung zum Internet aufgebaut wird. Nehmen wir an, dass auf bsd.home ein Benutzer user existiert. Erstellen Sie auf bsd.home im Heimatverzeichnis von user die Datei .fetchmailrc: poll example.net protocol pop3 fetchall pass MySecret; Diese Datei sollte für niemandem außer user lesbar sein, weil sie das Passwort MySecret enthält. Um Mails mit dem richtigen from:-Header zu versenden, müssen Sie sendmail mitteilen, dass es user@example.net und nicht user@bsd.home benutzen soll. Eventuell möchten Sie auch, dass 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. James Gorham Geschrieben von SMTP-Authentifizierung Ein Mail-Server, der SMTP-Authentifizierung verwendet, bietet einige Vorteile. Die erforderliche Authentifizierung erhöht die Sicherheit von sendmail und Benutzer, die auf wechselnden entfernten Rechnern arbeiten, können denselben Mail-Server verwenden ohne Ihr Benutzerprogramm jedes Mal neu zu konfigurieren. Installieren Sie den Port security/cyrus-sasl2. Der Port verfügt über einige Optionen, die während der Übersetzung festgelegt werden. Für die in diesem Abschnitt beschriebene Methode zur SMTP-Authentifizierung muss die Option aktiviert werden. Editieren Sie nach der Installation von security/cyrus-sasl2 die Datei /usr/local/lib/sasl2/Sendmail.conf (erstellen Sie die Datei, wenn sie nicht existiert) und fügen Sie die folgende Zeile hinzu: pwcheck_method: saslauthd Danach installieren Sie den Port security/cyrus-sasl2-saslauthd, und fügen die folgende Zeile in /etc/rc.conf ein: saslauthd_enable="YES" Zuletzt müssen Sie noch den saslauthd-Daemon starten: &prompt.root; /usr/local/etc/rc.d/saslauthd start Dieser Daemon agiert als Broker zwischen sendmail und Ihrer FreeBSD-passwd-Datenbank. Dadurch müssen zum Versenden von E-Mails keine zusätzlichen Accounts und Passwörter angelegt werden. Die Benutzer verwenden dasselbe Passwort zum Anmelden wie zum Verschicken von E-Mails. Fügen Sie jetzt in /etc/make.conf die nachstehenden Zeilen hinzu: SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl2 Beim Übersetzen von sendmail werden damit die cyrus-sasl2-Bibliotheken benutzt. Stellen Sie daher vor dem Übersetzen von sendmail sicher, dass der Port cyrus-sasl2 installiert ist. Übersetzen Sie sendmail mit den nachstehenden Kommandos: &prompt.root; cd /usr/src/lib/libsmutil &prompt.root; make cleandir && make obj && make &prompt.root; cd /usr/src/lib/libsm &prompt.root; make cleandir && make obj && make &prompt.root; cd /usr/src/usr.sbin/sendmail &prompt.root; make cleandir && make obj && make && make install sendmail sollte sich ohne Probleme übersetzen lassen, wenn die Dateien in /usr/src nicht verändert wurden und die benötigten Bibliotheken installiert sind. Nachdem Sie sendmail installiert haben, editieren Sie /etc/mail/freebsd.mc beziehungsweise die verwendete .mc-Datei. Viele Administratoren verwenden die Ausgabe von &man.hostname.1;, um der .mc-Datei einen eindeutigen Namen zu geben. Fügen Sie die folgenden Zeilen in die .mc-Datei ein: dnl set SASL options TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl Diese Anweisungen konfigurieren die Methoden, die sendmail zur Authentifizierung verwendet. Lesen Sie die mitgelieferte Dokumentation, wenn Sie eine andere Methode als verwenden wollen. Abschließend rufen Sie &man.make.1; im Verzeichnis /etc/mail auf. Damit wird aus der .mc-Datei eine neue .cf-Datei (zum Beispiel freebsd.cf) erzeugt. Das Kommando make install restart installiert die Datei nach /etc/mail/sendmail.cf und startet sendmail neu. Weitere Informationen entnehmen Sie bitte /etc/mail/Makefile. Wenn alles funktioniert hat, tragen Sie in Ihrem Mail-Benutzerprogramm das Passwort für die Authentifizierung ein und versenden Sie zum Testen eine E-Mail. Wenn Sie Probleme haben, setzen Sie den von sendmail auf 13 und untersuchen die Fehlermeldungen in /var/log/maillog. Weitere Information erhalten Sie im WWW auf der Webseite von sendmail. Marc Silver Beigetragen von E-Mail-Programme Mail-User-Agents E-Mail-Programme Anwendungen, die E-Mails versenden und empfangen, werden als E-Mail-Programme oder Mail-User-Agents (MUA) bezeichnet. Mit der Entwicklung und Ausbreitung von E-Mail wachsen auch die E-Mail-Programme und bieten Benutzern mehr Funktionen und höhere Flexibilität. Unter &os; laufen zahlreiche E-Mail-Programme, die Sie alle mit der &os; Ports-Sammlung installieren können. Sie können wählen zwischen Programmen mit grafischer Benutzeroberfläche, wie evolution oder balsa, konsolenorientierten Programmen wie mutt, pine oder mail, oder auch Programmen mit Web-Schnittstellen, die von einigen großen Institutionen benutzt werden. mail Das standardmäßig unter &os; installierte E-Mail-Programm ist &man.mail.1;. Das Programm ist konsolenorientiert und enthält alle Funktionen, die zum Versand und Empfang textbasierter E-Mails erforderlich sind. Allerdings lassen sich Anhänge mit mail nur schwer bearbeiten und kann mail kann nur auf lokale Postfächer zugreifen. mail kann nicht direkt auf POP- oder IMAP-Server zugreifen. Entfernte Postfächer können aber mit einer Anwendung wie fetchmail in die lokale Datei mbox geladen werden. fetchmail wird später in diesem Kapitel besprochen (). Um E-Mails zu versenden oder zu empfangen, starten Sie einfach mail wie im nachstehenden Beispiel: &prompt.user; mail Das Werkzeug mail liest automatisch den Inhalt des Benutzer-Postfachs im Verzeichnis /var/mail. Sollte das Postfach leer sein, beendet sich mail mit der Nachricht, dass keine E-Mails vorhanden sind. Wenn das Postfach gelesen wurde, wird die Benutzeroberfläche gestartet und eine Liste der E-Mails angezeigt. Die E-Mails werden automatisch nummeriert wie im folgenden Beispiel gezeigt: Mail version 8.1 6/6/93. Type ? for help. "/var/mail/marcs": 3 messages 3 new >N 1 root@localhost Mon Mar 8 14:05 14/510 "test" N 2 root@localhost Mon Mar 8 14:05 14/509 "user account" N 3 root@localhost Mon Mar 8 14:05 14/509 "sample" Einzelne Nachrichten können Sie jetzt mit dem mail-Kommando t gefolgt von der Nummer der Nachricht lesen. Im nachstehenden Beispiel lesen wir die erste E-Mail: & t 1 Message 1: From root@localhost Mon Mar 8 14:05:52 2004 X-Original-To: marcs@localhost Delivered-To: marcs@localhost To: marcs@localhost Subject: test Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST) From: root@localhost (Charlie Root) Das ist eine Test-Nachricht. Antworte bitte! Die Taste t zeigt die Nachricht zusammen mit dem vollständigen Nachrichtenkopf an. Wenn Sie die Liste der E-Mails erneut sehen wollen, drücken Sie die Taste h. Um auf eine E-Mail zu antworten, benutzen Sie im Programm mail entweder die Taste R oder die Taste r. Mit der Taste R weisen Sie mail an, dem Versender der Nachricht zu antworten. Mit der Taste r antworten Sie nicht nur dem Versender sondern auch allen Empfängern der Nachricht. Sie können zusammen mit diesen Kommandos eine Zahl angeben, um die E-Mail, auf die Sie antworten wollen, auszusuchen. Wenn Sie den Befehl abgesetzt haben, schreiben Sie Ihre Antwort und beenden die Eingabe mit einem einzelnen Punkt (.) auf einer neuen Zeile. Den Vorgang zeigt das nachstehende Beispiel: & R 1 To: root@localhost Subject: Re: test Danke, ich habe deine E-Mail erhalten. . EOT Neue E-Mails können Sie mit der Taste m verschicken. Geben Sie dabei die E-Mail-Adresse des Empfängers an. Sie können auch mehrere durch Kommata (,) getrennte Empfänger angeben. Geben Sie dann den Betreff (subject) der Nachricht gefolgt von der Nachricht selbst ein. Schließen Sie die Nachricht mit einem einzelnen Punkt (.) auf einer neuen Zeile ab. & mail root@localhost Subject: Ich habe die E-Mails im Griff! Jetzt kann ich E-Mails versenden und empfangen ... :) . EOT Die Taste ? zeigt zu jeder Zeit einen Hilfetext an. Wenn Sie weitere Hilfe benötigen, lesen Sie bitte die Hilfeseite &man.mail.1;. Wie vorhin gesagt, wurde das Programm &man.mail.1; nicht für den Umgang mit Anhängen entworfen und kann daher sehr schlecht mit Anhängen umgehen. Neuere MUAs wie mutt gehen wesentlich besser mit Anhängen um. Sollten Sie dennoch das mail-Kommando benutzen wollen, werden Sie den Port converters/mpack sehr zu schätzen wissen. mutt mutt ist ein schlankes aber sehr leistungsfähiges E-Mail-Programm mit hervorrangenden Funktionen, unter anderem: mutt kann den Verlauf einer Diskussion (threading) darstellen. Durch die Integration von PGP können E-Mails signiert und verschlüsselt werden. MIME wird unterstützt. Postfächer können im Maildir-Format gespeichert werden. mutt lässt sich im höchsten Maße an lokale Bedürfnisse anpassen. Wegen des Funktionsumfangs ist mutt eins der ausgefeiltesten E-Mail-Programme. Mehr über mutt erfahren Sie auf der Seite . Der Port mail/mutt enthält die Produktionsversion von mutt, die aktuelle Entwicklerversion befindet sich im Port mail/mutt-devel. Wenn mutt installiert ist, wird das Programm mit dem nachstehenden Kommando gestartet: &prompt.user; mutt mutt liest automatisch den Inhalt des Benutzer-Postfachs im Verzeichnis /var/mail. Wenn E-Mails vorhanden sind, werden diese dargestellt. Sind keine E-Mails vorhanden, wartet mutt auf Benutzereingaben. Das folgende Beispiel zeigt, wie mutt eine Nachrichten-Liste darstellt: Wenn Sie eine Nachricht lesen wollen, wählen Sie die Nachricht einfach mit den Pfeiltasten aus und drücken Enter. mutt zeigt E-Mails wie folgt an: Wenn Sie auf eine E-Mail antworten, können Sie, wie in &man.mail.1;, aussuchen, ob Sie nur dem Versender oder auch allen Empfängern antworten wollen. Wenn Sie nur dem Versender antworten wollen, drücken Sie die Taste r. Wenn sie dem Versender und allen Empfängern antworten wollen, drücken Sie die Taste g. Zum Erstellen oder zum Beantworten von E-Mails ruft mutt den Editor &man.vi.1; auf. Wenn Sie den von mutt verwendeten Editor ändern möchten, erstellen oder editieren Sie in Ihrem Heimatverzeichnis die Datei .muttrc. Den Editor können Sie in .muttrc mit der Variablen editor festlegen. Alternativ können Sie auch die Umgebungsvariable EDITOR setzen. Weitere Informationen zur Konfiguration von mutt finden Sie unter . Drücken Sie die Taste m, wenn Sie eine neue Nachricht verfassen wollen. Nachdem Sie einen Betreff (subject) eingegeben haben, startet mutt den Editor &man.vi.1; und Sie können die Nachricht eingeben. Wenn Sie fertig sind, speichern Sie die Nachricht und verlassen den Editor. mutt wird dann wieder aktiv und zeigt eine Zusammenfassung der zu sendenden Nachricht an. Drücken Sie y, um die E-Mail zu versenden. Der nachstehende Bildschirmabzug zeigt die Zusammenfassung der E-Mail: mutt verfügt über eine umfangreiche Hilfestellung. Aus fast jedem Menü können Sie Hilfeseiten mit der Taste ? aufrufen. In der oberen Statuszeile werden zudem die verfügbaren Tastenkombinationen angezeigt. pine pine wendet sich an Anfänger bietet aber ebenfalls einige Funktionen für Profis. In der Vergangenheit wurden in pine mehrere Schwachstellen gefunden. Die Schwachstellen gestatteten entfernten Benutzern, durch das Versenden einer besonders verfassten E-Mail, Programme auf dem lokalen System laufen zu lassen. Alle bekannten Schwachstellen sind beseitigt worden, doch wird im Quellcode von pine ein sehr riskanter Programmierstil verwendet, sodass der &os;-Security-Officer von weiteren unbekannten Schwachstellen ausgeht. Sie installieren pine auf eigene Verantwortung! Der Port mail/pine4 enthält die aktuelle Version von pine. Nach der Installation können Sie pine mit dem nachstehenden Kommando starten: &prompt.user; pine Wenn Sie pine das erste Mal starten, zeigt das Programm eine Seite mit einer kurzen Einführung an. Um die pine-Benutzer zu zählen, bitten die Entwickler auf dieser Seite um eine anonyme E-Mail. Sie können diese anonyme E-Mail senden, indem Sie Enter drücken oder den Begrüßungsbildschirm mit der Taste E verlassen, ohne die anonyme E-Mail zu senden. Der Begrüßungsbildschirm sieht wie folgt aus: Nach dem Begrüßungsbildschirm wird das Hauptmenü dargestellt, das sich leicht mit den Pfeiltasten bedienen lässt. Mit Tastenkombinationen können Sie aus dem Hauptmenü neue E-Mails erstellen, Postfächer anzeigen und auch das Adressbuch verwalten. Unterhalb des Menüs werden die Tastenkombinationen für die verfügbaren Aktionen angezeigt. In der Voreinstellung öffnet pine das Verzeichnis inbox. Die Taste I oder der Menüpunkt MESSAGE INDEX führt zu einer Nachrichten-Liste: Die Liste zeigt die Nachrichten im Arbeitsverzeichnis. Sie können Nachrichten mit den Pfeiltasten markieren. Wenn Sie eine Nachricht lesen wollen, drücken Sie Enter. Im nächsten Bildschirmabzug sehen Sie, wie pine eine Nachricht darstellt. Die unteren Bildschirmzeilen zeigen die verfügbaren Tastenkombinationen. Mit der Taste r können Sie zum Beispiel auf die gerade angezeigte Nachricht antworten. Zum Antworten auf eine E-Mail wird in pine der Editor pico, der mit installiert wird, benutzt. pico ist leicht zu bedienen und gerade für Anfänger besser geeignet als &man.vi.1; oder &man.mail.1;. Die Antwort wird mit der Tastenkombination Ctrl X versendet. Vor dem Versand bittet pine noch um eine Bestätigung. Über den Menüpunkt SETUP des Hauptmenüs können Sie pine an Ihre Bedürfnisse anpassen. Erläuterungen dazu finden Sie auf der Seite . Marc Silver Beigetragen von E-Mails mit fetchmail abholen fetchmail fetchmail ist ein vollwertiger IMAP- und POP-Client. Mit fetchmail können Benutzer E-Mails von entfernten IMAP- und POP-Servern in leichter zugängliche lokale Postfächer laden. fetchmail wird aus dem Port mail/fetchmail installiert. Das Programm bietet unter anderem folgende Funktionen: fetchmail beherrscht die Protokolle POP3, APOP, KPOP, IMAP, ETRN und ODMR. E-Mails können mit SMTP weiterverarbeitet werden. Dadurch ist garantiert, dass Filter, Weiterleitungen und Aliase weiterhin funktionieren. Das Programm kann als Dienst laufen und periodisch neue Nachrichten abrufen. fetchmail kann mehrere Postfächer abfragen und je nach Konfiguration die E-Mails an verschiedene lokale Benutzer zustellen. Wegen des Funktionsumfangs von fetchmail können hier nur grundlegende Funktionen beschrieben werden. fetchmail benötigt die Konfigurationsdatei .fetchmailrc. In dieser Datei werden Informationen über Server wie auch Benutzerdaten und Passwörter hinterlegt. Wegen des kritischen Inhalts von .fetchmailrc sollte die Datei nur lesbar für den Benutzer sein: &prompt.user; chmod 600 .fetchmailrc Die folgende .fetchmailrc zeigt, wie das Postfach eines einzelnen Benutzers mit POP heruntergeladen wird. fetchmail wird angewiesen, eine Verbindung zu example.com herzustellen und sich dort als Benutzer joesoap mit dem Passwort XXX anzumelden. Das Beispiel setzt voraus, dass es der Benutzer joesoap auch auf dem lokalen System existiert. poll example.com protocol pop3 username "joesoap" password "XXX" Im folgenden Beispiel werden mehrere POP- und IMAP-Server benutzt. Wo notwendig, werden E-Mails auf andere lokale Konten umgeleitet: poll example.com proto pop3: user "joesoap", with password "XXX", is "jsoap" here; user "andrea", with password "XXXX"; poll example2.net proto imap: user "john", with password "XXXXX", is "myth" here; Sie können fetchmail als Dienst starten. Verwenden Sie dazu die Kommandozeilenoption gefolgt von einer Zeitspanne in Sekunden, die angibt, wie oft die Server aus der Datei .fetchmailrc abgefragt werden sollen. Mit dem nachstehenden Befehl fragt fetchmail die Server alle 600 Sekunden ab: &prompt.user; fetchmail -d 600 Mehr über fetchmail erfahren Sie auf der Seite . Marc Silver Beigetragen von E-Mails mit procmail filtern procmail Mit procmail lässt sich eingehende E-Mail sehr gut filtern. Benutzer können Regeln für eingehende E-Mails definieren, die E-Mails zu anderen Postfächern oder anderen E-Mail-Adressen umleiten. procmail befindet sich im Port mail/procmail. procmail kann leicht in die meisten MTAs integriert werden. Lesen Sie dazu bitte die Dokumentation des verwendeten MTAs. Alternativ kann procmail in das E-Mail-System eingebunden werden, indem die nachstehende Zeile in die Datei .forward im Heimatverzeichnis eines Benutzers eingefügt wird: "|exec /usr/local/bin/procmail || exit 75" Im Folgenden zeigen wir einige einfache procmail-Regeln und beschreiben kurz den Zweck der Zweck der Regeln. Die Regeln müssen in die Datei .procmailrc im Heimatverzeichnis des Benutzers eingefügt werden. Den Großteil dieser Regeln finden Sie auch in der Hilfeseite &man.procmailex.5;. Alle E-Mail von user@example.com an die externe Adresse goodmail@example2.com weiterleiten: :0 * ^From.*user@example.com ! goodmail@example2.com Alle Nachrichten, die kürzer als 1000 Bytes sind, an goodmail@example2.com weiterleiten: :0 * < 1000 ! goodmail@example2.com Jede E-Mail, die an alternate@example.com geschickt wurde, im Postfach alternate speichern: :0 * ^TOalternate@example.com alternate Jede E-Mail, die im Betreff Spam enthält, nach /dev/null schieben: :0 ^Subject:.*Spam /dev/null Zuletzt ein nützliches Rezept, das eingehende E-Mails von den &os;.org-Mailinglisten in ein separates Postfach für jede Liste einsortiert: :0 * ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG { LISTNAME=${MATCH} :0 * LISTNAME??^\/[^@]+ FreeBSD-${MATCH} } diff --git a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml index af6682daae..98b80ac557 100644 --- a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml @@ -1,1932 +1,1940 @@ Ross Lippert Überarbeitet von Multimedia Übersicht FreeBSD unterstützt viele unterschiedliche Soundkarten, die Ihnen den Genuss von Highfidelity-Klängen auf Ihrem Computer ermöglichen. Dazu gehört unter anderem die Möglichkeit, Tonquellen in den Formaten MPEG Audio Layer 3 (MP3), WAV, Ogg Vorbis und vielen weiteren Formaten aufzunehmen und wiederzugeben. Darüber hinaus enthält die FreeBSD Ports-Sammlung Anwendungen, die Ihnen das Bearbeiten Ihrer aufgenommenen Tonspuren, das Hinzufügen von Klangeffekten und die Kontrolle der angeschlossenen MIDI-Geräte erlauben. Wenn Sie etwas Zeit investieren, können Sie mit &os; auch Videos und DVDs abspielen. Im Vergleich zu Audio-Anwendungen gibt es weniger Anwendungen zum Kodieren, Konvertieren und Abspielen von Video-Formaten. Es gab, als dieses Kapitel geschrieben wurde, keine Anwendung, die einzelne Video-Formate ähnlich wie audio/sox konvertieren konnte. Allerdings ändert sich die Software in diesem Umfeld sehr schnell. In diesem Kapitel wird das Einrichten von Soundkarten besprochen. beschreibt die Installation und Konfiguration von X11 und das Einrichten von Videokarten. Hinweise zur Verbesserung der Wiedergabe finden sich in diesem Kapitel. Dieses Kapitel behandelt die folgenden Punkte: Die Konfiguration des Systems damit Ihre Soundkarte erkannt wird. Wie Sie die Funktion einer Soundkarte testen können. Wie Sie Fehler in den Einstellungen von Soundkarten finden. Wie Sie MP3s und andere Audio-Formate wiedergeben und erzeugen. Die Video-Unterstützung des X-Servers. Gute Anwendungen, die Videos abspielen und kodieren. Die Wiedergabe von DVDs, .mpg- und .avi-Dateien. Wie Sie CDs und DVDs in Dateien rippen. Die Konfiguration von TV-Karten. Das Einrichten von Scannern. Bevor Sie dieses Kapitel lesen, sollten Sie: Wissen, wie Sie einen neuen Kernel konfigurieren und installieren (). Der Versuch eine Audio-CD mit &man.mount.8; einzuhängen erzeugt mindestens einen Fehler; schlimmstenfalls kann es zu einer Kernel-Panic kommen. Die Medien besitzen eine andere Kodierung als normale ISO-Dateisysteme. Moses Moore Von Marc Fonvieille Aktualisiert für &os; 5.X von Benedikt Köhler Übersetzt von Uwe Pierau Soundkarten einrichten Den Soundtreiber einrichten PCI ISA Soundkarten Zunächst sollten Sie in Erfahrung bringen, welches Soundkartenmodell Sie besitzen, welchen Chip die Karte benutzt und ob es sich um eine PCI- oder ISA-Karte handelt. &os; unterstützt eine Reihe von PCI- als auch von ISA-Karten. Die Hardware-Notes zählen alle unterstützten Karten und deren Treiber auf. Kernel Konfiguration Um Ihre Soundkarte benutzen zu können, müssen Sie den richtigen Gerätetreiber laden. Sie haben zwei Möglichkeiten, den Treiber zu laden: Am einfachsten ist es, das Modul mit &man.kldload.8; zu laden. Sie können dazu die Kommandozeile verwenden: &prompt.root; kldload snd_emu10k1 Alternativ können Sie auch einen Eintrag in der Datei /boot/loader.conf erstellen: snd_emu10k1_load="YES" Beide Beispiele gelten für eine Creative &soundblaster; Live! Soundkarte. Weitere ladbare Soundmodule sind in der Datei /boot/defaults/loader.conf aufgeführt. Wenn Sie nicht sicher sind, welchen Gerätetreiber Sie laden müssen, laden Sie den Treiber snd_driver: &prompt.root; kldload snd_driver Der Treiber snd_driver ist ein Meta-Treiber, der alle gebräuchlichen Treiber lädt und die Suche nach dem richtigen Treiber vereinfacht. Weiterhin können alle Treiber über /boot/loader.conf geladen werden. Wollen Sie feststellen, welcher Treiber für Ihre Soundkarte vom Metatreiber snd_driver geladen wurde, sollten Sie sich mit cat /dev/sndstat den Inhalt der Datei /dev/sndstat ansehen. Alternativ können Sie die Unterstützung für die Soundkarte direkt in den Kernel einkompilieren. Diese Methode im nächsten Abschnitt beschrieben. Weiteres über den Bau eines Kernels erfahren Sie im Kapitel Kernelkonfiguration. Soundkarten in der Kernelkonfiguration einrichten Zuerst müssen Sie &man.sound.4;, den Treiber für das Audio-Framework in die Kernelkonfiguration aufnehmen. Fügen Sie dazu die folgende Zeile in die Kernelkonfigurationsdatei ein: device sound Als Nächstes müssen Sie den richtigen Treiber in die Kernelkonfiguration einfügen. Den Treiber entnehmen Sie bitte der Liste der unterstützen Soundkarten aus den Hardware-Notes. Zum Beispiel wird die Creative &soundblaster; Live! Soundkarte vom Treiber &man.snd.emu10k1.4; unterstützt. Für diese Karte verwenden Sie die nachstehende Zeile: device snd_emu10k1 Die richtige Syntax für die Zeile lesen Sie bitte in der Hilfeseite des entsprechenden Treibers nach. Die korrekte Syntax für alle unterstützten Treiber finden Sie außerdem in der Datei /usr/src/sys/conf/NOTES. Nicht PnP-fähige ISA-Soundkarten benötigen (wie alle anderen ISA-Karten auch) weiterhin Angaben zu den Karteneinstellungen (wie IRQ und I/O-Port). Die Karteneinstellungen tragen Sie in die Datei /boot/device.hints ein. Während des Systemstarts liest der &man.loader.8; diese Datei und reicht die Einstellungen an den Kernel weiter. Für eine alte Creative &soundblaster; 16 ISA-Karte, die sowohl den &man.snd.sbc.4;- als auch den snd_sb16-Treiber benötigt, fügen Sie folgende Zeilen in die Kernelkonfigurationsdatei ein: device snd_sbc device snd_sb16 In die Datei /boot/device.hints tragen Sie für diese Karte zusätzlich die folgenden Einstellungen ein: hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15" In diesem Beispiel benutzt die Karte den I/O-Port 0x220 und den IRQ 5. Die Manualpage &man.sound.4; sowie des jeweiligen Treibers beschreiben die Syntax der Einträge in der Datei /boot/device.hints. Das Beispiel verwendet die vorgegebenen Werte. Falls Ihre Karteneinstellungen andere Werte vorgeben, müssen Sie die Werte in der Kernelkonfiguration anpassen. Weitere Informationen zu dieser Soundkarte entnehmen Sie bitte der Manualpage &man.snd.sbc.4;. Die Soundkarte testen Nachdem Sie den neuen Kernel gestartet oder das erforderliche Modul geladen haben, sollte Ihre Soundkarte in den Systemmeldungen (&man.dmesg.8;) auftauchen. Zum Beispiel: pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 pcm0: [GIANT-LOCKED] pcm0: <Cirrus Logic CS4205 AC97 Codec> Den Status der Karte können Sie über die Datei /dev/sndstat prüfen: &prompt.root; cat /dev/sndstat FreeBSD Audio Driver (newpcm) Installed devices: pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 kld snd_ich (1p/2r/0v channels duplex default) Die Ausgaben können auf Ihrem System anders aussehen. Wenn das Gerät pcm nicht erscheint, prüfen Sie bitte Ihre Konfiguration. Stellen sie sicher, dass Sie den richtigen Treiber gewählt haben. beschreibt häufig auftretende Probleme. Wenn alles glatt lief, haben Sie nun eine funktionierende Soundkarte. Wenn ein CD-ROM oder DVD-ROM-Laufwerk an Ihrer Soundkarte angeschlossen ist, können Sie jetzt mit &man.cdcontrol.1; eine CD abspielen: &prompt.user; cdcontrol -f /dev/acd0 play 1 Es gibt viele Anwendungen, wie audio/workman, die eine bessere Benutzerschnittstelle besitzen. Um sich MP3-Audiodateien anzuhören, können Sie eine Anwendung wie audio/mpg123 installieren. Eine weitere schnelle Möglichkeit die Karte zu prüfen, ist es, Daten an das Gerät /dev/dsp zu senden: &prompt.user; cat Datei > /dev/dsp - Für Datei können + Für + Datei können Sie eine beliebige Datei verwenden. Wenn Sie einige Geräusche hören, funktioniert die Soundkarte. Die Einstellungen des Mixers können Sie mit dem Kommando &man.mixer.8; verändern. Weiteres lesen Sie bitte in der Hilfeseite &man.mixer.8; nach. Häufige Probleme Device Node Gerätedatei I/O port IRQ DSP Fehler Lösung sb_dspwr(XX) timed out Der I/O Port ist nicht korrekt angegeben. bad irq XX Der IRQ ist falsch angegeben. Stellen Sie sicher, dass der angegebene IRQ mit dem Sound IRQ übereinstimmt. xxx: gus pcm not attached, out of memory Es ist nicht genug Speicher verfügbar, um das Gerät zu betreiben. xxx: can't open /dev/dsp! Überprüfen Sie mit fstat | grep dsp ob eine andere Anwendung das Gerät geöffnet hat. Häufige Störenfriede sind esound oder die Sound-Unterstützung von KDE. Munish Chopra Beigetragen von Mehrere Tonquellen abspielen Oft sollen mehrere Tonquellen gleichzeitig abgespielt werden, auch wenn beispielsweise esound oder artsd das Audiogerät nicht mit einer anderen Anwendung teilen können. Unter FreeBSD können mit &man.sysctl.8; virtuelle Tonkanäle eingerichtet werden. Virtuelle Kanäle mischen die Tonquellen im Kernel (so können mehr Kanäle als von der Hardware unterstützt benutzt werden). Die Anzahl der virtuellen Kanäle können Sie als Benutzer root wie folgt einstellen: - &prompt.root; sysctl hw.snd.pcm0.vchans=4 + &prompt.root; sysctl dev.pcm.0.play.vchans=4 +&prompt.root; sysctl dev.pcm.0.rec.vchans=4 &prompt.root; sysctl hw.snd.maxautovchans=4 Im Beispiel werden vier virtuelle Kanäle eingerichtet, eine im Normalfall ausreichende Anzahl. - hw.snd.pcm0.vchans ist die Anzahl + Sowohl dev.pcm.0.play.vchans=4 und + dev.pcm.0.rec.vchans=4 sind die Anzahl der virtuellen Kanäle des Geräts - pcm0. Die Anzahl kann konfiguriert - werden, sobald das Gerät existiert. + pcm0, die fürs Abspielen und Aufnehmen + verwendet werden und sie können konfiguriert werden, sobald das + Gerät existiert. hw.snd.maxautovchans ist die Anzahl der virtuellen Kanäle, die einem Gerät zugewiesen werden, wenn es durch &man.kldload.8; eingerichtet wird. Da das Modul pcm unabhängig von den Hardware-Treibern geladen werden kann, gibt hw.snd.maxautovchans die Anzahl der virtuellen Kanäle an, die später eingerichtete - Geräte erhalten. + Geräte erhalten. Lesen Sie dazu &man.pcm.4; für weitere + Informationen. Sie können die Anzahl der virtuellen Kanäle nur ändern, wenn das Gerät nicht genutzt wird. Schließen Sie daher zuerst alle Programme (etwa Musikabspielprogramme oder Sound-Daemonen), die auf dieses Gerät zugreifen. Wenn Sie ein System ohne &man.devfs.5; einsetzen, müssen Anwendungen die Geräte /dev/dsp0.x - verwenden. Wenn hw.snd.pcm.0.vchans wie - oben auf 4 gesetzt wurde, läuft - x von 0 - bis 4. Auf Systemen mit + verwenden. Wenn dev.pcm.0.rec.vchans wie + oben auf 4 gesetzt wurde, läuft + x von 0 bis 3. Auf Systemen mit &man.devfs.5; werden die Geräte automatisch zugeteilt, wenn ein Programm das Gerät /dev/dsp0 anfordert. Josef El-Rayes Beigetragen von Den Mixer einstellen Die Voreinstellungen des Mixers sind im Treiber &man.pcm.4; fest kodiert. Es gibt zwar viele Anwendungen und Dienste, die den Mixer einstellen können und die eingestellten Werte bei jedem Start wieder setzen, am einfachsten ist es allerdings, die Standardwerte für den Mixer direkt im Treiber einzustellen. Der Mixer kann in der Datei /boot/device.hints eingestellt werden: hint.pcm.0.vol="50" Die Zeile setzt die Lautstärke des Mixers beim Laden des Moduls &man.pcm.4; auf den Wert 50. Chern Lee Ein Beitrag von Benedikt Köhler Übersetzt von MP3-Audio MP3 (MPEG Layer 3 Audio) ermöglicht eine Klangwiedergabe in CD-ähnlicher Qualität, was Sie sich auf Ihrem FreeBSD-Rechner nicht entgehen lassen sollten. MP3-Player XMMS (X Multimedia System) ist bei weitem der beliebteste MP3-Player für X11. WinAmp-Skins können auch mit XMMS genutzt werden, da die Benutzerschnittstelle fast identisch mit der von Nullsofts WinAmp ist. Daneben unterstützt XMMS auch eigene Plugins. XMMS kann als multimedia/xmms Port oder Package installiert werden. Die Benutzerschnittstelle von XMMS ist leicht zu erlernen und enthält eine Playlist, einen graphischen Equalizer und vieles mehr. Diejenigen, die mit WinAmp vertraut sind, werden XMMS sehr leicht zu benutzen finden. Der Port audio/mpg123 ist ein alternativer, kommandozeilenorientierter MP3-Player. mpg123 kann ausgeführt werden, indem man das zu benutzende Sound Device und die abzuspielende MP3-Datei auf der Kommandozeile wie unten angibt: &prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3. Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp. Uses code from various people. See 'README' for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! Playing MPEG stream from Foobar-GreatestHits.mp3 ... MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo - /dev/dsp1.0 sollten Sie dabei mit dem - dsp-Device Ihres Systems ersetzen. + /dev/dsp1.0 + sollten Sie dabei mit dem dsp-Device Ihres + Systems ersetzen. CD-Audio Tracks rippen Bevor man eine ganze CD oder einen CD-Track in das MP3-Format umwandeln kann, müssen die Audiodaten von der CD auf die Festplatte gerippt werden. Dabei werden die CDDA (CD Digital Audio) Rohdaten in WAV-Dateien kopiert. Die Anwendung cdda2wav die im sysutils/cdrtools Paket enthalten ist, kann zum Rippen der Audiodaten und anderen Informationen von CDs genutzt werden. Wenn die Audio CD in dem Laufwerk liegt, können Sie mit folgendem Befehl (als root) eine ganze CD in einzelne WAV-Dateien (eine Datei für jeden Track) rippen: &prompt.root; cdda2wav -D 0,1,0 -B cdda2wav unterstützt auch ATAPI (IDE) CD-ROM-Laufwerke. Um von einem IDE-Laufwerk zu rippen, übergeben Sie auf der Kommandozeile statt der SCSI-IDs den Gerätenamen. Das folgende Kommando rippt den 7. Track: &prompt.root; cdda2wav -D /dev/acd0 -t 7 Der Schalter bezieht sich auf das SCSI Device 0,1,0, das sich aus dem Ergebnis des Befehls cdrecord -scanbus ergibt. Um einzelne Tracks zu rippen, benutzen Sie den Schalter wie folgt: &prompt.root; cdda2wav -D 0,1,0 -t 7 Dieses Beispiel rippt den siebten Track der Audio CD-ROM. Um mehrere Tracks zu rippen, zum Beispiel die Tracks eins bis sieben, können Sie wie folgt einen Bereich angeben: &prompt.root; cdda2wav -D 0,1,0 -t 1+7 Mit &man.dd.1; können Sie ebenfalls Audio-Stücke von ATAPI-Laufwerken kopieren. Dies wird in erläutert. MP3-Dateien kodieren Gegenwärtig ist Lame der meistbenutzte MP3-Encoder. Lame finden Sie unter audio/lame im Ports-Verzeichnis. Benutzen Sie die WAV-Dateien, die sie von CD gerippt haben, und wandeln sie mit dem folgenden Befehl die Datei - audio01.wav in - audio01.mp3 um: + audio01.wav in + audio01.mp3 um: &prompt.root; lame -h -b 128 \ --tt "Foo Liedtitel" \ --ta "FooBar Künstler" \ --tl "FooBar Album" \ --ty "2001" \ --tc "Geripped und kodiert von Foo" \ --tg "Musikrichtung" \ audio01.wav audio01.mp3 128 kbits ist die gewöhnliche MP3-Bitrate. Viele bevorzugen mit 160 oder 192 kbits eine höhere Qualität. Je höher die Bitrate ist, desto mehr Speicherplatz benötigt die resultierende MP3-Datei, allerdings wird die Qualität dadurch auch besser. Der Schalter verwendet den higher quality but a little slower (höhere Qualität, aber etwas langsamer) Modus. Die Schalter, die mit beginnen, sind ID3-Tags, die in der Regel Informationen über das Lied enthalten und in die MP3-Datei eingebettet sind. Weitere Optionen können in der Manualpage von Lame nachgelesen werden. MP3-Dateien dekodieren Um aus MP3-Dateien eine Audio CD zu erstellen, müssen diese in ein nicht komprimiertes WAV-Format umgewandelt werden. Sowohl XMMS als auch mpg123 unterstützen die Ausgabe der MP3-Dateien in unkomprimierte Dateiformate. Dekodieren mit XMMS: Starten Sie XMMS. Klicken Sie mit der rechten Maustaste, um das XMMS-Menu zu öffnen. Wählen Sie Preference im Untermenü Options. Ändern Sie das Output-Plugin in Disk Writer Plugin. Drücken Sie Configure. Geben Sie ein Verzeichnis ein (oder wählen Sie browse), in das Sie die unkomprimierte Datei schreiben wollen. Laden Sie die MP3-Datei wie gewohnt in XMMS mit einer Lautstärke von 100% und einem abgeschalteten EQ. Drücken Sie Play und es wird so aussehen, als spiele XMMS die MP3-Datei ab, aber keine Musik ist zu hören. Der Player überspielt die MP3-Datei in eine Datei. Vergessen Sie nicht, das Output-Plugin wieder in den Ausgangszustand zurückzusetzen um wieder MP3-Dateien anhören zu können. Mit mpg123 nach stdout schreiben: - Geben Sie mpg123 -s - audio01.mp3 > audio01.pcm + Geben Sie mpg123 -s + audio01.mp3 > + audio01.pcm ein. XMMS schreibt die Datei im WAV-Format aus während mpg123 die MP3-Datei in rohe PCM-Audiodaten umwandelt. cdrecord kann mit beiden Formaten Audio-CDs erstellen, &man.burncd.8; kann nur rohe PCM-Audiodaten verarbeiten. Der Dateikopf von WAV-Dateien erzeugt am Anfang des Stücks ein Knacken. Sie können den Dateikopf mit dem Werkzeug SoX, das sich als Paket oder aus dem Port audio/sox installieren lässt, entfernen: &prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.raw Lesen Sie in diesem Handbuch, um mehr Informationen zur Benutzung von CD-Brennern mit FreeBSD zu erhalten. Ross Lippert Beigetragen von Videos wiedergeben Die Wiedergabe von Videos ist ein neues, sich schnell entwickelndes, Anwendungsgebiet. Seien Sie geduldig, es wird nicht alles so glatt laufen, wie bei den Audio-Anwendungen. Bevor Sie beginnen, sollten Sie das Modell Ihrer Videokarte und den benutzten Chip kennen. Obwohl &xorg; und - &xfree86; viele Vidiokarten + &xfree86; viele Videokarten unterstützt, können nur einige Karten Videos schnell genug wiedergeben. Eine Liste der Erweiterungen, die der X-Server für eine Videokarte unterstützt, erhalten Sie unter laufendem X11 mit dem Befehl &man.xdpyinfo.1;. Halten Sie eine kurze MPEG-Datei bereit, mit der Sie Wiedergabeprogramme und deren Optionen testen können. Da einige DVD-Spieler in der Voreinstellung das DVD-Gerät mit /dev/dvd ansprechen oder diesen Namen fest einkodiert haben, wollen Sie vielleicht symbolische Links auf die richtigen Geräte anlegen: &prompt.root; ln -sf /dev/acd0 /dev/dvd &prompt.root; ln -sf /dev/acd0 /dev/rdvd Wegen &man.devfs.5; gehen gesondert angelegte Links wie diese bei einem Neustart des Systems verloren. Damit die symbolischen Links automatisch beim Neustart des Systems angelegt werden, fügen Sie die folgenden Zeilen in /etc/devfs.conf ein: link acd0 dvd link acd0 rdvd Zum Entschlüsseln von DVDs müssen bestimmte DVD-ROM-Funktionen aufgerufen werden und schreibender Zugriff auf das DVD-Gerät erlaubt sein. X11 benutzt Shared-Memory und Sie sollten die nachstehenden &man.sysctl.8;-Variablen auf die gezeigten Werte erhöhen: kern.ipc.shmmax=67108864 kern.ipc.shmall=32768 Video-Schnittstellen XVideo SDL DGA Es gibt einige Möglichkeiten, Videos unter X11 abzuspielen. Welche Möglichkeit funktioniert, hängt stark von der verwendeten Hardware ab. Ebenso hängt die erzielte Qualität von der Hardware ab. Die Videowiedergabe unter X11 ist ein aktuelles Thema, sodass jede neue Version von &xorg; oder von &xfree86; wahrscheinlich erhebliche Verbesserung enthält. Gebräuchliche Video-Schnittstellen sind: X11: normale X11-Ausgabe über Shared-Memory. XVideo: Eine Erweiterung der X11-Schnittstelle, die Videos in jedem X11-Drawable anzeigen kann. SDL: Simple Directmedia Layer. DGA: Direct Graphics Access. SVGAlib: Eine Schnittstelle zur Grafikausgabe auf der Konsole. XVideo Die Erweiterung XVideo (auch Xvideo, Xv oder xv) von &xorg; und &xfree86; 4.X, erlaubt die beschleunigte Wiedergabe von Videos in jedem Drawable. Diese Erweiterung liefert auch auf weniger leistungsfähigen Systemen (beispielsweise einem PIII 400 MHz Laptop) eine gute Wiedergabe. Ob die Erweiterung läuft, entnehmen Sie der Ausgabe von xvinfo: &prompt.user; xvinfo XVideo wird untertsützt, wenn die Ausgabe wie folgt aussieht: X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 "XV_COLORKEY" (range 0 to 16777215) client settable attribute client gettable attribute (current value is 2110) "XV_BRIGHTNESS" (range -128 to 127) client settable attribute client gettable attribute (current value is 0) "XV_CONTRAST" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_SATURATION" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_HUE" (range -180 to 180) client settable attribute client gettable attribute (current value is 0) maximum XvImage size: 1024 x 1024 Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x30323449 (I420) guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x36315652 (RV16) guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 (RV15) guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 (Y211) guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV (packed) id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB (packed) depth: 1 red, green, blue masks: 0x0, 0x0, 0x0 Einige der aufgeführten Formate (wie YUV2 oder YUV12) existieren in machen XVideo-Implementierungen nicht. Dies kann zu Problemen mit einigen Spielern führen. XVideo wird wahrscheinlich von Ihrer Karte nicht unterstützt, wenn die die Ausgabe wie folgt aussieht: X-Video Extension version 2.2 screen #0 no adaptors present Wenn die XVideo-Erweiterung auf Ihrer Karte nicht läuft, wird es nur etwas schwieriger, die Anforderungen für die Wiedergabe von Videos zu erfüllen. Abhängig von Ihrer Videokarte und Ihrem Prozessor können Sie dennoch zufriedenstellende Ergebnisse erzielen. Sie sollten vielleicht die weiterführenden Quellen in zu Rate ziehen, um die Geschwindigkeit Ihres Systems zu steigern. Simple Directmedia Layer Die Simple Directmedia Layer, SDL, ist eine zwischen µsoft.windows;, BeOS und &unix; portable Schnittstelle. Mit dieser Schnittstelle können Anwendungen plattformunabhängig und effizient Ton und Grafik benutzen. SDL bietet eine hardwarenahe Schnittstelle, die manchmal schneller als die X11-Schnittstelle sein kann. SDL finden Sie in den Ports im Verzeichnis devel/sdl12. Direct Graphics Access Die X11-Erweiterung Direct Graphics Access (DGA) erlaubt es Anwendungen, am X-Server vorbei direkt in den Framebuffer zu schreiben. Da die Anwendung und der X-Server auf gemeinsame Speicherbereiche zugreifen, müssen die Anwendungen unter dem Benutzer root laufen. Die DGA-Erweiterung kann mit &man.dga.1; getestet werden. Das Kommando dga wechselt, jedes Mal wenn eine Taste gedrückt wird, die Farben der Anzeige. Sie können das Programm mit der Taste q verlassen. Video-Anwendungen Video-Anwendungen Dieser Abschnitt behandelt Anwendungen aus der &os;-Ports-Sammlung, die Videos abspielen. An der Videowiedergabe wird derzeit aktiv gearbeitet, sodass der Funktionsumfang der Anwendungen von dem hier beschriebenen abweichen kann. Viele unter &os; laufende Videoanwendungen wurden unter Linux entwickelt und befinden sich noch im Beta-Status. Der Betrieb dieser Anwendungen unter &os; stößt vielleicht auf einige der nachstehenden Probleme: Eine Anwendung kann eine Datei einer anderen Anwendung nicht abspielen. Eine Anwendung kann eine selbst produzierte Datei nicht abspielen. Wenn dieselbe Anwendung auf unterschiedlichen Maschinen gebaut wird, wird ein Video unterschiedlich wiedergegeben. Ein vergleichsweise einfacher Filter, wie die Skalierung eines Bildes, führt zu deutlichen Artefakten in der Darstellung. Eine Anwendung stürzt häufig ab. Die Dokumentation wird bei der Installation des Ports nicht installiert. Sie befindet sich entweder auf dem Internet oder im Verzeichnis work des Ports. Viele Anwendungen sind zudem sehr Linux-lastig. Probleme entstehen durch die Implementierung von Standard-Bibliotheken in Linux-Distributionen oder dadurch, dass die Anwendung bestimmte Linux-Kernelfunktionen voraussetzt. Diese Probleme werden nicht immer vom Betreuer eines Ports bemerkt und umgangen. In der Praxis entstehen dadurch folgende Probleme: Eigenschaften des Prozessors werden über /proc/cpuinfo ermittelt. Die falsche Anwendung von Threads führt dazu, dass sich ein Programm aufhängt statt sich zu beenden. Die Anwendung hängt von anderen Anwendungen ab, die sich noch nicht in der &os;-Ports-Sammlung befinden. Allerdings arbeiten die Anwendungsentwickler bislang mit den Betreuern der Ports zusammen, sodass zusätzlicher Portierungsaufwand minimiert wird. MPlayer MPlayer ist ein kürzlich entstandener und sich stark weiterentwickelnder Video-Spieler. Das Hauptaugenmerk des MPlayer-Teams liegt auf Geschwindigkeit und Flexibilität auf Linux und anderen &unix; Systemen. Das Projekt entstand weil der Gründer des Teams unzufrieden mit der Geschwindigkeit bestehender Video-Spieler war. Kritiker behaupten, dass die Benutzeroberfläche der einfachen Gestaltung zum Opfer fiel. Wenn Sie sich allerdings erstmal an die Kommandozeilenoptionen und die Tastensteuerung gewöhnt haben, funktioniert die Anwendung sehr gut. MPlayer bauen MPlayer bauen MPlayer finden Sie in der Ports-Sammlung unter multimedia/mplayer. Der Bau von MPlayer berücksichtigt die vorhandene Harware und erzeugt ein Programm, das nicht auf ein anderes System übertragbar ist. Es ist daher wichtig, dass Sie das Programm aus den Ports bauen und nicht das fertige Paket installieren. Zusätzlich können Sie auf der Kommandozeile von make noch einige Optionen angeben, die im Makefile beschrieben sind und am die Anfang des Baus ausgegeben werden: &prompt.root; cd /usr/ports/multimedia/mplayer &prompt.root; make N - O - T - E Take a careful look into the Makefile in order to learn how to tune mplayer towards you personal preferences! For example, make WITH_GTK1 builds MPlayer with GTK1-GUI support. If you want to use the GUI, you can either install /usr/ports/multimedia/mplayer-skins or download official skin collections from http://www.mplayerhq.hu/homepage/dload.html Für die meisten Benutzer sind die voreingestellten Option in Ordnung. Wenn Sie den XviD-Codec benötigen, müssen Sie auf der Kommandozeile die Option WITH_XVID angeben. Das DVD-Gerät können Sie mit der Option WITH_DVD_DEVICE angeben. Wenn Sie die Option nicht angeben, wird /dev/acd0 benutzt. Als dieser Abschnitt verfasst wurde, baute der MPlayer-Port die HTML-Dokumentation sowie die beiden Programme mplayer und mencoder. Mit mencoder können Sie Videodateien umwandeln. Die HTML-Dokumentation von MPlayer ist sehr lehrreich. Wenn Sie in diesem Kapitel Informationen über Video-Hardware oder Schnittstellen vermissen, ist die MPlayer-Dokumentation eine ausgezeichnete Quelle. Wenn Sie Informationen über die Video-Unterstützung unter &unix; benötigen, sollten Sie die MPlayer-Dokumentation auf jeden Fall lesen. MPlayer benutzen MPlayer benutzen Jeder Benutzer von MPlayer muss in seinem Heimatverzeichnis das Verzeichnis .mplayer anlegen. Dieses Verzeichnis können Sie wie folgt anlegen: &prompt.user; cd /usr/ports/multimedia/mplayer &prompt.user; make install-user Die Kommandozeilenoptionen von mplayer sind in der Hilfeseite aufgeführt. Eine genaue Beschreibung befindet sich in der HTML-Dokumentation. In diesem Abschnitt wird nur der normale Gebrauch von mplayer beschrieben. Um eine Datei, wie testfile.avi, unter verschiedenen Video-Schnittstellen abzuspielen, benutzen Sie die Option : - &prompt.user; mplayer -vo xv testfile.avi - &prompt.user; mplayer -vo sdl testfile.avi - &prompt.user; mplayer -vo x11 testfile.avi - &prompt.root; mplayer -vo dga testfile.avi - &prompt.root; mplayer -vo 'sdl:dga' testfile.avi + &prompt.user; mplayer -vo xv testfile.avi + &prompt.user; mplayer -vo sdl testfile.avi + &prompt.user; mplayer -vo x11 testfile.avi + &prompt.root; mplayer -vo dga testfile.avi + &prompt.root; mplayer -vo 'sdl:dga' testfile.avi Es lohnt sich, alle Option zu testen. Die erzielte Geschwindigkeit hängt von vielen Faktoren ab und variiert beträchtlich je nach eingesetzter Hardware. Wenn Sie eine DVD abspielen wollen, ersetzen Sie - testfile.avi durch + testfile.avi durch . N ist die Nummer des Stücks, das Sie abspielen wollen und Gerät gibt den Gerätenamen des DVD-ROMs an. Das nachstehende Kommando spielt das dritte Stück von /dev/dvd: &prompt.root; mplayer -vo dga -dvd://3 /dev/dvd Das standardmäßig verwendete DVD-Laufwerk kann beim Bau des MPlayer-Ports mit der Option WITH_DVD_DEVICE festgelegt werden. Die Voreinstellung verwendet das Gerät /dev/acd0. Genaueres finden Sie im Makefile des Ports. Die Tastenkombinationen zum Abbrechen, Anhalten und Weiterführen der Wiedergabe entnehmen Sie bitte der Ausgabe von mplayer -h oder der Hilfeseite. Weitere nützliche Optionen für die Wiedergabe sind zur Wiedergabe im Vollbild-Modus und zur Steigerung der Geschwindigkeit. Damit die Kommandozeile von mplayer kurz bleibt, kann ein Benutzer Vorgaben in der Datei .mplayer/config hinterlegen: vo=xv fs=yes zoom=yes Schließlich kann mplayer noch DVD-Stücke in .vob-Dateien rippen. Das zweite Stück einer DVD wandeln Sie wie folgt in eine Datei um: &prompt.root; mplayer -dumpstream -dumpfile out.vob -dvd://2 /dev/dvd Die Ausgabedatei out.vob wird im MPEG-Format abgespeichert und kann mit anderen Werkzeugen aus diesem Abschnitt bearbeitet werden. mencoder mencoder Sie sollten die HTML-Dokumentation lesen, bevor Sie mencoder benutzen. Es gibt zwar eine Hilfeseite, die aber ohne die HTML-Dokumentation nur eingeschräkt nützlich ist. Es gibt viele Möglichkeiten die Qualität zu verbessern, die Bitrate zu verringern und Formate zu konvertieren. Einige davon haben erhebliche Auswirkungen auf die Geschwindigkeit der Wiedergabe. Zum Start finden Sie im Folgenden einige Kommandozeilen. Die erste kopiert einfach eine Datei: - &prompt.user; mencoder input.avi -oac copy -ovc copy -o output.avi + &prompt.user; mencoder input.avi -oac copy -ovc copy -o output.avi Falsche Kombinationen von Kommandozeilenparametern ergeben eventuell Dateien, die selbst mplayer nicht mehr abspielen kann. Wenn Sie in eine Datei rippen, sollten Sie daher auf jeden Fall die Option von mplayer verwenden. Die nachstehende Kommandozeile wandelt die Datei - input.avi nach MPEG4 mit MPEG3 - für den Ton um (hierfür wird der Ports + input.avi nach + MPEG4 mit MPEG3 für den Ton um (hierfür wird der Ports audio/lame benötigt): - &prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \ - -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi + &prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \ + -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi Die Ausgabedatei lässt sowohl mit mplayer als auch xine abspielen. - Wenn Sie input.avi durch + Wenn Sie + input.avi durch ersetzen und das Kommando unter root laufen lassen, können Sie ein DVD-Stück direkt konvertieren. Da Sie wahrscheinlich beim ersten Mal unzufrieden mit den Ergebnissen sind, sollten Sie das Stück zuerst in eine Datei schreiben und anschließend die Datei weiterverarbeiten. Der Video-Spieler xine Der Video-Spieler xine ist ein Projekt mit großem Umfang. Das Projekt will nicht nur ein Programm für alle Video-Anwendungen bieten, sondern auch eine wiederverwendbare Bibliothek und ein Programm, das durch Plugins erweiterbar ist. Das Programm steht als fertiges Paket oder als Port unter multimedia/xine zur Verfügung. Der multimedia/xine-Spieler hat noch ein paar Ecken und Kanten, macht aber insgesamt einen guten Eindruck. Für einen reibungslosen Betrieb benötigt xine entweder eine schnelle CPU oder die XVideo-Erweiterung. Das GUI ist etwas schwerfällig. Zurzeit gibt es kein xine-Modul, das CSS-kodierte DVDs abspielen kann und sich in der &os; Ports-Sammlung befindet. xine ist benutzerfreundlicher als MPlayer, bietet allerdings nicht soviele Möglichkeiten. Am schnellsten läuft xine mit der XVideo-Erweiterung. In der Voreinstellung startet xine eine grafische Benutzeroberfläche. Über Menüs können Sie Dateien öffnen: &prompt.user; xine Alternativ können Sie das Programm auch ohne GUI aufrufen und Dateien direkt abspielen: - &prompt.user; xine -g -p mymovie.avi + &prompt.user; xine -g -p mymovie.avi Die transcode-Werkzeuge transcode ist kein Spieler, sondern eine Sammlung von Werkzeugen zur Umwandlung von Video- und Sounddateien. transcode mischt Video-Dateien und kann kaputte Video-Dateien reparieren. Die Werkzeuge werden als Filter verwendet, das heißt die Ein- und Ausgaben verwenden stdin/stdout. Beim Bau von transcode über den Port multimedia/transcode können zwar zahreiche Optionen angegeben werden. Empfehlenswert ist es aber, den Bau mit folgendem Befehl zu starten: &prompt.root; make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \ WITH_MJPEG=yes -DWITH_XVID=yes Diese Einstellungen sollen für die meisten Anwender ausreichend sein. Um die Fähigkeiten von transcode zu illustrieren, wird im folgenden Beispiel eine DivX-Datei in eine PAL MPEG-1-Datei konvertiert: - &prompt.user; transcode -i input.avi -V --export_prof vcd-pal -o output_vcd -&prompt.user; mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa + &prompt.user; transcode -i input.avi -V --export_prof vcd-pal -o output_vcd +&prompt.user; mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa Die daraus resultierende MPEG-Datei, - output_vcd.mpg, kann beispielsweise mit - MPlayer abgespielt werden. Sie - können sie sogar als Video-CD auf eine CD-R brennen. + output_vcd.mpg, + kann beispielsweise mit MPlayer abgespielt + werden. Sie können sie sogar als Video-CD auf eine CD-R brennen. Wenn Sie diese Funktion benötigen, müssen Sie zusätzlich die beiden Programme multimedia/vcdimager und sysutils/cdrdao installieren. Zwar gibt es eine Manualpage zu transcode, Sie sollen aber auf jeden Fall auch die Informationen und Beispiele im transcode-Wiki lesen. Weiterführende Quellen Die Video-Software für &os; entwickelt sich sehr schnell. Es ist wahrscheinlich, dass die hier angesprochenen Probleme bald gelöst sind. Bis dahin müssen Anwender, die das meiste aus den Audio- und Video-Fähigkeiten von &os; machen wollen, Informationen aus mehreren FAQs und Tutorien zusammensuchen und verschiedene Anwendungen nebeneinander betreiben. Dieser Abschnitt weist auf weitere Informationsquellen hin. Die MPlayer-Dokumentation ist sehr aufschlussreich. Die Dokumente sollten wahrscheinlich von jedem gelesen werden, der hohe Fachkenntnisse über Video auf &unix; Systemen erlangen will. Die MPlayer-Mailinglisten reagiert feindselig auf Personen, die es nicht für nötig halten, die Dokumentation zu lesen. Wenn Sie Fehlerberichte an die Liste schicken wollen, lesen Sie bitte vorher die ausgezeichnete Dokumentation (RTFM). Das xine HOWTO enthält allgemein gültige Hinweise zur Verbesserung der Wiedergabegeschwindigkeit. Schließlich gibt es noch weitere vielversprechende Anwendungen, die Sie vielleicht ausprobieren wollen: Avifile gibt es schon als Port multimedia/avifile. Ogle wurde ebenfalls schon portiert: multimedia/ogle. Xtheater. multimedia/dvdauthor, ist ein Open-Source-Paket, mit dem Sie DVDs erstellen können. Josef El-Rayes Beigetragen von Marc Fonvieille Überarbeitet von TV-Karten einrichten TV-Karten Einführung Mit TV-Karten können Sie mit Ihrem Rechner über Kabel oder Antenne fernsehen. Die meisten Karten besitzen einen RCA- oder S-Video-Eingang. Einige Karten haben auch einen FM-Radio-Empfänger. Der &man.bktr.4;-Treiber von &os; unterstützt PCI-TV-Karten mit einem Brooktree Bt848/849/878/879 oder einem Conexant CN-878/Fusion 878a Chip. Die Karte sollte einen der unterstützten Empfänger besitzen, die in der Hilfeseite &man.bktr.4; aufgeführt sind. Den Treiber einrichten Um Ihre Karte zu benutzen, müssen Sie den &man.bktr.4;-Treiber laden. Fügen Sie die nachstehende Zeile in die Datei /boot/loader.conf ein: bktr_load="YES" Sie können den Treiber für die TV-Karte auch fest in den Kernel compilieren. Erweitern Sie dazu Ihre Kernelkonfiguration um die folgenden Zeilen: device bktr device iicbus device iicbb device smbus Die zusätzlichen Treiber werden benötigt, da die Komponenten der Karte über einen I2C-Bus verbunden sind. Bauen und installieren Sie dann den neuen Kernel. Anschließend müssen Sie Ihr System neu starten. Während des Neustarts sollte Ihre TV-Karte erkannt werden: bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 iicbb0: <I2C bit-banging driver> on bti2c0 iicbus0: <Philips I2C bus> on iicbb0 master-only iicbus1: <Philips I2C bus> on iicbb0 master-only smbus0: <System Management Bus> on bti2c0 bktr0: Pinnacle/Miro TV, Philips SECAM tuner. Abhängig von Ihrer Hardware können die Meldungen natürlich anders aussehen. Sie sollten aber prüfen, dass der Empfänger richtig erkannt wird. Die entdeckten Geräte lassen sich mit &man.sysctl.8; oder in der Kernelkonfigurationsdatei überschreiben. Wenn Sie beispielsweise einen Philips-SECAM-Empfänger erzwingen wollen, fügen Sie die folgende Zeile zur Kernelkonfigurationsdatei hinzu: options OVERRIDE_TUNER=6 Alternativ können Sie direkt &man.sysctl.8; benutzen: &prompt.root; sysctl hw.bt848.tuner=6 Weitere Informationen zu den verschiedenen Optionen finden Sie in &man.bktr.4; sowie in der Datei /usr/src/sys/conf/NOTES. Nützliche Anwendungen Um die TV-Karte zu benutzen, müssen Sie eine der nachstehenden Anwendungen installieren: multimedia/fxtv lässt das Fernsehprogramm in einem Fenster laufen und kann Bilder, Audio und Video aufzeichnen. multimedia/xawtv eine weitere TV-Anwendung, mit den gleichen Funktionen wie fxtv. misc/alevt dekodiert und zeigt Videotext/Teletext an. Mit audio/xmradio lässt sich der FM-Radio-Empfänger, der sich auf einigen TV-Karten befindet, benutzen. audio/wmtune ein leicht zu bedienender Radio-Empfänger. Weitere Anwendungen finden Sie in der &os; Ports-Sammlung. Fehlersuche Wenn Sie Probleme mit Ihrer TV-Karte haben, prüfen Sie zuerst, ob der Video-Capture-Chip und der Empfänger auch wirklich vom &man.bktr.4;-Treiber unterstützt werden. Prüfen Sie dann, ob Sie die richtigen Optionen verwenden. Weitere Hilfe erhalten Sie auf der Mailingliste &a.multimedia.name; und in deren Archiven. Marc Fonvieille Beigetragen von Scanner Scanner Einführung Unter &os; stellt SANE (Scanner Access Now Easy) aus der Ports-Sammlung eine einheitliche Schnittstelle (API) für den Zugriff auf Scanner bereit. SANE wiederum greift auf Scanner mithilfe einiger &os;-Treiber zu. &os; unterstützt sowohl SCSI- als auch USB-Scanner. Prüfen Sie vor der Konfiguration mithilfe der Liste der unterstützten Geräte ob Ihr Scanner von SANE unterstützt wird. Die Hilfeseite &man.uscanner.4; zählt ebenfalls die unterstützten USB-Scanner auf. Den Kernel für Scanner einrichten Da sowohl SCSI- als auch USB-Scanner unterstützt werden, werden abhängig von der Schnittstelle unterschiedliche Treiber benötigt. USB-Scanner Im GENERIC-Kernel sind schon alle, für einen USB-Scanner notwendigen, Treiber enthalten. Wenn Sie einen angepassten Kernel benutzen, prüfen Sie, dass die Kernelkonfiguration die nachstehenden Zeilen enthält: device usb device uhci device ohci device uscanner Abhängig vom Chipsatz Ihrer Systemplatine benötigen Sie in der Kernelkonfiguration entweder die Option device uhci oder die Option device ohci. Die Kernelkonfiguration kann allerdings auch beide Optionen enthalten. Wenn Sie den Kernel nicht neu bauen wollen und einen angepassten Kernel verwenden, können Sie den Treiber &man.uscanner.4; direkt mit dem Kommando &man.kldload.8; laden: &prompt.root; kldload uscanner Wenn Sie das Modul bei jedem Systemstart laden wollen, fügen Sie in der Datei /boot/loader.conf die nachstehende Zeile hinzu: uscanner_load="YES" Nachdem Sie das System mit dem richtigen Kernel neu gestartet oder das Modul geladen haben, stecken Sie den USB-Scanner ein. Danach sollte in den Systemmeldungen (die Sie mit &man.dmesg.8; betrachten können) eine Zeile ähnlich der folgenden erscheinen: uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2 Diese Meldung besagt, dass der Scanner die Gerätedatei /dev/uscanner0 benutzt. SCSI-Scanner Wenn Ihr Scanner eine SCSI-Schnittstelle besitzt, ist die Kernelkonfiguration abhängig vom verwendeten SCSI-Controller. Der GENERIC-Kernel unterstützt die gebräuchlichen SCSI-Controller. Den richtigen Treiber finden Sie in der Datei NOTES. Neben dem Treiber muss Ihre Kernelkonfiguration noch die nachstehenden Zeilen enthalten: device scbus device pass Nachdem Sie einen Kernel gebaut und installiert haben, sollte der Scanner beim Neustart in den Systemmeldungen erscheinen: pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers Wenn der Scanner während des Systemstarts ausgeschaltet war, können Sie die Geräteerkennung erzwingen, indem Sie den SCSI-Bus erneut absuchen. Verwenden Sie dazu das Kommando &man.camcontrol.8;: &prompt.root; camcontrol rescan all Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful Der Scanner wird anschließend in der SCSI-Geräteliste angezeigt: &prompt.root; camcontrol devlist <IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0) Weiteres über SCSI-Geräte lesen Sie bitte in den Hilfeseiten &man.scsi.4; und &man.camcontrol.8; nach. SANE konfigurieren SANE besteht aus zwei Teilen, den Backends (graphics/sane-backends) und den Frontends (graphics/sane-frontends). Das Backend greift auf den Scanner zu. Welches Backend welchen Scanner unterstützt, entnehmen Sie der Liste der unterstützten Geräte.. Der Betrieb eines Scanners ist nur dem richtigen Backend möglich. Die Frontends sind die Anwendungen, mit denen gescannt wird (xscanimage). Installieren Sie zuerst den Port oder das Paket graphics/sane-backends. Anschließend können Sie mit dem Befehl sane-find-scanner prüfen, ob SANE Ihren Scanner erkennt: &prompt.root; sane-find-scanner -q found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3 Die Ausgabe zeigt die Schnittstelle und die verwendete Gerätedatei des Scanners. Der Hersteller und das Modell können in der Ausgabe fehlen. Bei einigen USB-Scannern müssen Sie die Firmware aktualisieren, dies wird in der Hilfeseite des Backends erklärt. Lesen Sie bitte auch die Hilfeseiten &man.sane-find-scanner.1; und &man.sane.7;. Als nächstes müssen Sie prüfen, ob der Scanner vom Frontend erkannt wird. Die SANE-Backends werden mit dem Kommandozeilenwerkzeug &man.scanimage.1; geliefert. Mit diesem Werkzeug können Sie sich Scanner anzeigen lassen und den Scan-Prozess von der Kommandozeile starten. Die Option zeigt die Scanner an: &prompt.root; scanimage -L device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner Erscheint die Meldung, dass kein Scanner gefunden wurde oder wird gar keine Ausgabe erzeugt, konnte &man.scanimage.1; keinen Scanner erkennen. In diesem Fall müssen Sie in der Konfigurationsdatei des Backends das zu benutzende Gerät eintragen. Die Konfigurationsdateien der Backends befinden sich im Verzeichnis /usr/local/etc/sane.d/. Erkennungsprobleme treten bei bestimmten USB-Scannern auf. Mit dem USB-Scanner aus zeigt sane-find-scanner die folgende Ausgabe: &prompt.root; sane-find-scanner -q found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0 Der Scanner wurde richtig erkennt, er benutzt eine USB-Schnittstelle und verwendet die Gerätedatei /dev/uscanner0. Ob der Scanner vom Frontend erkannt wird, zeigt das nachstehende Kommando: &prompt.root; scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages). Da der Scanner nicht erkannt wurde, muss die Datei /usr/local/etc/sane.d/epson.conf editiert werden. Der verwendete Scanner war ein &epson.perfection; 1650, daher wird das epson-Backend benutzt. Lesen Sie bitte alle Kommentare in der Konfigurationsdatei des Backends. Die durchzuführenden Änderungen sind einfach. Kommentieren Sie zunächst alle Zeilen mit der falschen Schnittstelle aus. Da der Scanner eine USB-Schnittstelle besitzt, wurden im Beispiel alle Zeilen, die mit scsi anfingen, auskommentiert. Fügen Sie dann die Schnittstelle und den Gerätenamen am Ende der Datei ein. In diesem Beispiel wurde die nachstehende Zeile eingefügt: usb /dev/uscanner0 Weitere Hinweise entnehmen Sie bitte der Hilfeseite des Backends. Jetzt können Sie prüfen, ob der Scanner richtig erkannt wird: &prompt.root; scanimage -L device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner Der Scanner wurde nun erkannt. Es ist nicht wichtig, ob der Hersteller oder das Modell Ihres Scanners korrekt angezeigt werden. Wichtig ist nur die Ausgabe `epson:/dev/uscanner0', die das richtige Backend und den richtigen Gerätenamen anzeigt. Wenn scanimage -L den Scanner erkannt hat, ist der Scanner eingerichtet und bereit, zu scannen. Obwohl wir mit &man.scanimage.1; von der Kommandozeile scannen können, ist eine graphische Anwendung zum Scannen besser geeignet. SANE bietet ein einfaches und effizientes Werkzeug: xscanimage (graphics/sane-frontends). Xsane (graphics/xsane) ist eine weitere beliebte graphische Anwendung. Dieses Frontend besitzt erweiterte Funktionen wie den Scan-Modus (beispielsweise Photo, Fax), eine Farbkorrektur und Batch-Scans. Beide Anwendungen lassen sich als GIMP-Plugin verwenden. Den Scanner für Benutzerkonten freigeben Vorher wurden alle Tätigkeiten mit root-Rechten ausgeführt. Wenn andere Benutzer den Scanner benutzen sollen, müssen sie Lese- und Schreibrechte auf die Gerätedatei des Scanners besitzen. Im Beispiel wird die Datei /dev/uscanner0 verwendet, die der Gruppe operator - gehört. Damit der Benutzer joe + gehört. Damit der Benutzer + joe auf den Scanner zugreifen kann, muss das Konto in die Gruppe operator aufgenommen werden: &prompt.root; pw groupmod operator -m joe Weiteres entnehmen Sie bitte der Hilfeseite &man.pw.8;. Da Mitglieder der Gruppe operator in der Voreinstellung nur Leserechte für die Gerätedatei /dev/uscanner0 besitzen, müssen Sie ebenfalls die Schreibbrechtigung (0660 oder 0664) vergeben. Dazu fügen Sie in die Datei /etc/devfs.rules die nachstehenden Zeilen ein: [system=5] add path uscanner0 mode 660 In die Datei /etc/rc.conf fügen Sie noch die folgende Zeile ein: devfs_system_ruleset="system" Starten Sie anschließend Ihr System neu. Weitere Informationen finden Sie in &man.devfs.8;. Aus Sicherheitsgründen sollten Sie genau darauf achten, wen Sie in eine Gruppe aufnehmen, besonders wenn es sich um die Gruppe operator handelt. diff --git a/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml b/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml index 2a1d3442db..3dd73042d9 100644 --- a/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml +++ b/de_DE.ISO8859-1/books/handbook/vinum/chapter.sgml @@ -1,1613 +1,1537 @@ Greg Lehey Ursprünglich geschrieben von Johann Kois Übersetzt von Kay Abendroth Der Vinum Volume Manager Übersicht Egal, über welche und wieviele Festplatten Ihr System auch verfügt, immer wieder werden Sie mit den folgenden Problemen konfrontiert: Ihre Platten sind zu klein. Sie sind zu langsam. Ihre Platten sind unzuverlässig. Um derartige Probleme zu lösen, wurden verschiedene Methoden entwickelt. Eine Möglichkeit bietet der Einsatz von mehreren, manchmal auch redundant ausgelegten Platten. Zusätzlich zur Unterstützung verschiedener Erweiterungskarten und Controller für Hardware-RAID-Systeme enthält das FreeBSD-Basissystem auch den Vinum Volume Manager, einen Blockgerätetreiber, der die Einrichtung virtueller Platten unterstützt. Bei Vinum handelt es sich um einen sogenannten Volume Manager, einen virtuellen Plattentreiber, der obige drei Probleme löst. Vinum bietet Ihnen größere Flexibilität, Leistung und Zuverlässigkeit als die klassische Datenspeicherung auf einzelne Festplatten. Dazu unterstützt Vinum RAID-0, RAID-1 und RAID-5 (sowohl einzeln als auch in Kombination). Dieses Kapitel bietet Ihnen einen Überblick über potentielle Probleme der klassischen Datenspeicherung auf Festplatten sowie eine Einführung in den Vinum Volume Manager. Für FreeBSD 5.X wurde Vinum überarbeitet und an die GEOM-Architektur () angepasst, wobei die ursprünglichen Ideeen und Begriffe sowie die auf der Platte benötigten Metadaten beibehalten wurden. Die überarbeitete Version wird als gvinum (für GEOM-Vinum) bezeichnet. Die folgenden Ausführungen verwenden den Begriff Vinum als abstrakten Namen, unabhängig davon, welche Variante implementiert wurde. Sämtliche Befehlsaufrufe erfolgen über gvinum, welches nun das Kernelmodul geom_vinum.ko (statt vinum.ko) benötigt. Analog finden sich alle Gerätedateien nun unter /dev/gvinum statt unter /dev/vinum. Seit FreeBSD 6.x ist die alte Vinum-Implementierung nicht mehr im Basissystem enthalten. Ihre Platten sind zu klein. Vinum RAID Software Festplatten werden zwar immer größer, parallel dazu steigt aber auch die Größe der zu speichernden Daten an. Es kann also nach wie vor vorkommen, dass Sie ein Dateisystem benötigen, welches die Größe Ihrer Platten übersteigt. Zwar ist dieses Problem nicht mehr so akut wie noch vor einigen Jahren, aber es existiert nach wie vor. Einige Systeme lösen dieses Problem durch die Erzeugung eines abstrakten Gerätes, das seine Daten auf mehreren Platten speichert. Mögliche Engpässe Moderne Systeme müssen häufig parallel auf Daten zugreifen. Große FTP- und HTTP-Server können beispielsweise Tausende von parallelen Sitzungen verwalten und haben mehrere 100 MBit/s-Verbindungen zur Außenwelt. Diese Bandbreite überschreitet die durchschnittliche Transferrate der meisten Platten bei weitem. Aktuelle Plattenlaufwerke können Daten mit bis zu 70 MB/s sequentiell übertragen, wobei dieser Wert in einer Umgebung, in der viele unabhängige Prozesse auf eine gemeinsame Platte zugreifen, die jeweils nur einen Bruchteil dieses Wertes erreichen, von geringer Aussagekraft ist. In solchen Fällen ist es interessanter, das Problem vom Blickwinkel des Platten-Subsystems aus zu betrachten. Der wichtigste Parameter ist dabei die Last, die eine Übertragung auf dem Subsystem verursacht. Unter Last versteht man dabei die Zeit, in der die Platte mit der Übertragung der Daten beschäftigt ist. Bei jedem Plattenzugriff muss das Laufwerk zuerst die Köpfe positionieren und auf den ersten Sektor warten, bis er den Lesekopf passiert. Dann wird die Übertragung gestartet. Diese Aktionen können als atomar betrachtet werden, da es keinen Sinn macht, diese zu unterbrechen. Nehmen wir beispielsweise an, dass wir 10 kB transferieren wollen. Aktuelle hochperformante Platten können die Köpfe im Durchschnitt in 3,5 ms positionieren und drehen sich mit maximal 15.000 U/min. Daher beträgt die durchschnittliche Rotationslatenz (eine halbe Umdrehung) 2 ms. Bei einer Transferrate von 70 MB/s dauert die eigentliche Übertragung von 10 kB etwa 150 μs, fast nichts im Vergleich zur Positionierungszeit. In einem solchen Fall beträgt die effektive Transferrate nur etwas mehr als 1 MB/s. Die Tranferrate ist also stark von der Größe der zu tranferierenden Daten abhängig. Die traditionelle und offensichtliche Lösung zur Beseitigung dieses Flaschenhalses sind mehr Spindeln. Statt einer einzigen großen Platte werden mehrere kleinere Platten mit demselben Gesamtspeicherplatz benutzt. Jede Platte ist in der Lage, unabhängig zu positionieren und zu transferieren, weshalb der effektive Durchsatz um einen Faktor nahe der Zahl der eingesetzten Platten steigt. Obwohl die Platten Daten parallel transferieren können, ist es nicht möglich, Anfragen gleichmäßig auf die einzelnen Platten zu verteilen. Daher wird die Last auf bestimmten Laufwerken immer höher sein als auf anderen Laufwerken. Daraus ergibt sich auch, dass die exakte Verbesserung des Datendurchsatzes immer kleiner ist als die Anzahl der involvierten Platten. Plattenkonkatenation Vinum Konkatenation Die gleichmäßige Verteilung der Last auf die einzelnen Platten ist stark abhängig von der Art, wie die Daten auf die Laufwerke aufgeteilt werden. In den folgenden Ausführungen wird eine Platte als eine große Anzahl von Datensektoren dargestellt, die durch Zahlen adressierbar sind (ähnlich den Seiten eines Buches). Die naheliegendste Methode ist es, die virtuelle Platte (wieder analog den Seiten eines Buches) in Gruppen aufeinanderfolgender Sektoren zu unterteilen, die jeweils der Größe der einzelnen physischen Platten entsprechen. Diese Vorgehensweise wird als Konkatenation bezeichnet und hat den Vorteil, dass die Platten keine spezielle Größenbeziehung haben müssen. Sie funktioniert gut, solange der Zugriff gleichmäßig auf den Adressraum der virtuellen Platte verteilt wird. Wenn sich der Zugriff allerdings auf einen kleinen Bereich konzentriert, ist die Verbesserung vernachlässigbar klein. verdeutlicht die Verteilung der Speichereinheiten in einer konkatenierten Anordnung.
Konkatenierte Anordnung
Striping von Platten Vinum Striping RAID Ein alternatives Mapping unterteilt den Adressraum in kleinere, gleich große Komponenten und speichert diese sequentiell auf verschiedenen Geräten. Zum Beispiel werden die ersten 256 Sektoren auf der ersten Platte, die nächsten 256 Sektoren auf der zweiten Platte gespeichert und so weiter. Nachdem die letzte Platte beschrieben wurde, wird dieser Vorgang solange wiederholt, bis die Platten voll sind. Dieses Mapping nennt man Striping oder RAID-0. RAID steht für Redundant Array of Inexpensive Disks und bietet verschiedene Formen der Fehlertorleranz, obwohl der letzte Begriff etwas irreführend ist, da RAID keine Redundanz bietet. Striping erfordert einen etwas größeren Aufwand, um die Daten zu lokalisieren, und kann zusätzliche E/A-Last verursachen, wenn eine Übertragung über mehrere Platten verteilt ist. Auf der anderen Seite erlaubt es aber eine gleichmäßigere Verteilung der Last auf die einzelnen Platten. veranschaulicht die Abfolge, in der Speichereinheiten in einer striped-Anordnung alloziert werden.
Striped-Anordnung
Datenintegrität Das dritte Problem, welches aktuelle Platten haben, ist ihre Unzuverlässigkeit. Obwohl sich die Zuverlässigkeit von Festplatten in den letzten Jahren stark verbessert hat, handelt es sich bei ihnen nach wie vor um die Komponente eines Servers, die am ehesten ausfällt. Fällt eine Festplatte aus, können die Folgen katastrophal sein: Es kann Tage dauern, bis eine Platte ersetzt und alle Daten wiederhergestellt sind. disk mirroring Vinum Spiegelung RAID-1 Die traditionelle Art, dieses Problem anzugehen, war es, Daten zu spiegeln, also zwei Kopien der Daten auf getrennten Platten zu verwahren. Diese Technik wird auch als RAID Level 1 oder RAID-1 bezeichnet. Jeder Schreibzugriff findet auf beiden Datenträgern statt. Ein Lesezugriff kann daher von beiden Laufwerken erfolgen, sodass beim Ausfall eines Laufwerks die Daten immer noch auf dem anderen Laufwerk verfügbar sind. Spiegeln verursacht allerdings zwei Probleme: Es verursacht höhere Kosten, da doppelt so viel Plattenspeicher wie bei einer nicht-redundanten Lösung benötigt wird. Die Gesamtleistung des Systems sinkt, da Schreibzugriffe auf beiden Laufwerken ausgeführt werden müssen, daher wird im Vergleich zu einem nicht gespiegelten Datenträger die doppelte Bandbreite benötigt. Lesezugriffe hingegen sind davon nicht betroffen, es sieht sogar so aus, als würden diese schneller ausgeführt. RAID-5 Eine alternative Lösung ist Parity, das in den RAID-Leveln 2, 3, 4 und 5 implementiert ist. Von diesen ist RAID-5 der interessanteste. So wie in VINUM implementiert, ist es eine Variante einer gestripten Anordung, welche einen Block jedes Stripes als Paritätsblock für die anderen Blöcke verwendet. Wie in RAID-5 vorgeschrieben, ist die Position dieses Paritätsblockes auf jedem Stripe unterschiedlich. Die Nummern in den Datenblöcken geben die relativen Blocknummern an.
RAID-5 Aufbau
Im Vergleich zur Spiegelung hat RAID-5 den Vorteil, dass es signifikant weniger Speicherplatz benötigt. Lesezugriffe sind vergleichbar schnell mit jenen bei einem Striped-Aufbau, aber Schreibzugriffe sind deutlich langsamer (etwa 25% der Lesegeschwindigkeit). Wenn eine Platte ausfällt, kann das Array in einem "schwachen" Modus weiterarbeiten: Ein Lesezugriff auf eine der übrigen erreichbaren Platten wird normal ausgeführt, ein Lesezugriff auf die ausgefallene Platte muss aber zunächst mit dem zugehörigen Block aller verbleibender Platten rückberechnet werden.
Vinum-Objekte Um die in den vorigen Abschnitte besprochenen Probleme zu lösen, verwendet Vinum eine vierstufige Objekthierarchie: Das auffälligste Objekt ist die virtuelle Platte, die Volume genannt wird. Volumes haben im Wesentlichen die gleichen Eigenschaften wie ein &unix;-Laufwerk, obwohl es ein paar kleine Unterschiede gibt. So existieren für Volumes beispielsweise keine Größenbeschränkungen. Volumes bestehen aus einem oder mehreren Plexus, von denen jeder den gesamten Adressraum eines Datenträgers repräsentiert. Diese Hierarchieebene ist für die benötigte Redundanz der Daten erforderlich. Stellen Sie sich die Plexus als eigenständige Platten in einem gespiegelten Array vor, von denen jede die gleichen Daten enthält. Da Vinum im &unix;-Plattenspeicher-Framework arbeitet, wäre es möglich, als Grundbaustein für Multiplatten-Plexus &unix;-Partitionen zu verwenden. In der Praxis ist dieser Ansatz aber zu unflexibel, da &unix;-Platten nur eine begrenzte Anzahl von Partitionen haben können. Daher unterteilt Vinum stattdessen eine einzige &unix;-Partition (die Platte) in zusammenhängende Bereiche, die als Subdisks bezeichnet werden und als Grundbausteine für einen Plexus benutzt werden. Subdisks befinden sich auf Vinum-Platten, eigentlich &unix;-Partitionen. Vinum-Platten können eine beliebige Anzahl von Subdisks haben und den gesamten Speicher der Platte mit Ausnahme eines kleinen Bereiches am Anfang der Platte (welcher zur Speicherung von Konfigurations- und Statusinformationen verwenden wird) verwenden. Der folgende Abschnitt beschreibt, wie diese Objekte die von Vinum benötigten Funktionen zur Verfügung stellen. Überlegungungen zur Größe eines Volumes Plexus können mehrere Subdisks beinhalten, die über alle Platten der Vinum-Konfiguration verteilt sind. Daraus folgt, dass die Größe einer Platte nicht die Größe eines Plexus (und damit eines Volumes) limitiert. Redundante Datenspeicherung Vinum implementiert die Datenspiegelung, indem es ein Volume auf mehrere Plexus verteilt. Jeder Plexus ist dabei die Repräsentation der Daten eines Volumes. Ein Volume kann aus bis zu acht Plexus bestehen. Obwohl ein Plexus die gesamten Daten eines Volumes repräsentiert, ist es möglich, dass Teile der Repräsentation physisch fehlen, entweder aufgrund des Designs (etwa durch nicht definierte Subdisks für Teile des Plexus) oder durch Zufall (als ein Ergebnis eines Plattenfehlers). Solange wenigstens ein Plexus die gesamten Daten für den kompletten Adressbereich des Volumes zur Verfügung stellen kann, ist das Volume voll funktionsfähig. Überlegungen zur Leistung Sowohl Konkatenation als auch Striping werden von Vinum auf der Plexus-Ebene realisiert: Ein konkatenierter Plexus benutzt abwechselnd den Adressraum jeder Subdisk. Ein gestripter Plexus striped die Daten über jede Subdisk. Die Subdisks müssen alle die gleiche Größe haben, und es muss mindestens zwei Subdisks in Reihenfolge geben, um ihn von einem konkatenierten Plexus unterscheiden zu können. Wie ist ein Plexus aufgebaut? Die Version von Vinum, welche von FreeBSD-&rel.current; bereitgestellt wird, implementiert zwei Arten von Plexus: Konkatenierte Plexus sind die flexibelsten: Sie können aus einer beliebigen Anzahl von Subdisks unterschiedlicher Größe bestehen. Der Plexus kann erweitert werden, indem man zusätzliche Subdisks hinzufügt. Sie brauchen weniger CPU-Zeit als gestripte Plexus, obwohl der Unterschied des CPU-Overheads nicht messbar ist. Auf der anderen Seite sind sie aber sehr anfällig für das Entstehen von "hot spots", wobei eine Platte sehr aktiv ist, andere hingegen nahezu ungenutzt sind. Der größte Vorteil eines gestripten Plexus (RAID-0) ist die Verringerung von "hot spots". Dies wird durch die Auswahl eines Stripes optimaler Größe (etwa 256 kB) erreicht, wodurch die Last gleichmäßig auf die Platten verteilt werden kann. Nachteile dieser Vorgehensweise sind ein (geringfügig) komplexerer Code sowie einige Restriktionen für die Subdisks: Diese müssen alle die gleiche Größe haben, und das Erweitern eines Plexus durch das Hinzufügen neuer Subdisks ist so kompliziert, dass es von Vinum derzeit nicht unterstützt wird. Vinum fordert noch eine weitere triviale Beschränkung: Ein gestripter Plexus muss aus mindestens zwei Subdisks bestehen, da er ansonsten nicht von einem konkatenierten Plexus unterscheidbar ist. fasst die Vor- und Nachteile jedes Plexus-Aufbaus zusammen. Vinum-Plexus - Aufbau Plexus-Typ Minimum an Subdisks? Kann Subdisks hinzufügen? Müssen die gleiche Größe haben Applikation konkateniert 1 ja nein Großer Datenspeicher mit maximaler Platzierungsflexibilität und moderater Leistung gestriped 2 nein ja Hohe Leistung in Kombination mit gleichzeitigem Zugriff
Einige Beispiele Vinum verwaltet eine Konfigurationsdatenbank für alle einem individuellen System bekannten Objekte. Zu Beginn erzeugt ein Benutzer mit &man.gvinum.8; eine Konfigurationsdatenbank aus einer oder mehreren Konfigurationsdateien. Vinum speichert danach eine Kopie der Konfigurationsdatenbank in jedem von ihm kontrollierten Slice (von Vinum als Device bezeichnet). Da die Datenbank bei jedem Statuswechsel aktualisiert wird, kann nach einem Neustart der Status jedes Vinum-Objekts exakt wiederhergestellt werden. Die Konfigurationsdatei Die Konfigurationsdatei beschreibt individuelle Vinum-Objekte. Die Beschreibung eines einfachen Volumes könnte beispielsweise so aussehen: drive a device /dev/da3h volume myvol plex org concat sd length 512m drive a Diese Datei beschreibt vier Vinum-Objekte: Die drive-Zeile beschreibt eine Plattenpartition (drive) sowie ihre Position in Bezug auf die darunter liegende Hardware. Die Partition hat dabei den symbolischen Namen a. Diese Trennung von symbolischen Namen und Gerätenamen erlaubt es, die Position von Platten zu ändern, ohne dass es zu Problemen kommt. Die volume-Zeile beschreibt ein Volume. Dafür wird nur ein einziges Attribut, der Name des Volumes, benötigt. In unserem Fall hat das Volume den Namen myvol. Die plex-Zeile definiert einen Plexus. Auch hier wird nur ein Parameter, und zwar die Art des Aufbau, benötigt (in unserem Fall concat). Es wird kein Name benötigt, das System generiert automatisch einen Namen aus dem Volume-Namen und dem Suffix .px wobei x die Nummer des Plexus innerhalb des Volumes angibt. So wird dieser Plexus den Namen myvol.p0 erhalten. Die sd-Zeile beschreibt eine Subdisk. Um eine Subdisk einzurichten, müssen Sie zumindest den Namen der Platte, auf der Sie die Subdisk anlegen wollen, sowie die Größe der Subdisk angeben. Analog zur Definition eines Plexus wird auch hier kein Name benötigt: Das System weist automatisch Namen zu, die aus dem Namen des Plexus und dem Suffix .sx gebildet werden, wobei x die Nummer der Subdisk innerhalb des Plexus ist. Folglich gibt Vinum dieser Subdisk den Namen myvol.p0.s0. Nach dem Verarbeiten dieser Datei erzeugt &man.gvinum.8; die folgende Ausgabe: &prompt.root; gvinum -> create config1 Configuration summary Drives: 1 (4 configured) Volumes: 1 (4 configured) Plexes: 1 (8 configured) Subdisks: 1 (16 configured) D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%) V myvol State: up Plexes: 1 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB Diese Ausgabe entspricht dem verkürzten Ausgabeformat von &man.gvinum.8; und wird in grafisch dargestellt.
Ein einfaches Vinum-Volume
Dieses und die folgenden Beispiele zeigen jeweils ein Volume, welches die Plexus enthält, die wiederum die Subdisk enthalten. In diesem trivialen Beispiel enthält das Volume nur einen Plexus, der wiederum nur aus einer Subdisk besteht. Eine solche Konfiguration hätte allerdings keinen Vorteil gegenüber einer konventionellen Plattenpartion. Das Volume enthält nur einen einzigen Plexus, daher gibt es keine redundante Datenspeicherung. Da der Plexus außerdem nur eine einzige Subdisk enthält, unterscheidet sich auch die Speicherzuweisung nicht von der einer konventionellen Plattenpartition. Die folgenden Abschnitte beschreiben daher verschiedene interessantere Konfigurationen.
Verbesserte Ausfallsicherheit durch Spiegelung Die Ausfallsicherheit eines Volumes kann durch Spiegelung der Daten erhöht werden. Beim Anlegen eines gespiegelten Volumes ist es wichtig, die Subdisks jedes Plexus auf verschiedene Platten zu verteilen, damit ein Plattenausfall nicht beide Plexus unbrauchbar macht. Die folgende Konfiguration spiegelt ein Volume: drive b device /dev/da4h volume mirror plex org concat sd length 512m drive a plex org concat sd length 512m drive b Bei diesem Beispiel war es nicht nötig, noch einmal eine Platte a zu spezifizieren, da Vinum die Übersicht über alle Objekte und seine Konfigurationsdatenbank behält. Nach dem Abarbeiten dieser Definition sieht die Konfiguration wie folgt aus: Drives: 2 (4 configured) Volumes: 2 (4 configured) Plexes: 3 (8 configured) Subdisks: 3 (16 configured) D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%) D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%) V myvol State: up Plexes: 1 Size: 512 MB V mirror State: up Plexes: 2 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB stellt diese Struktur grafisch dar.
Ein gespiegeltes Vinum Volume
In diesem Beispiel enthält jeder Plexus die vollen 512 MB des Adressraumes. Wie im vorangegangenen Beispiel enthält jeder Plexus nur eine Subdisk.
Die Leistung optimieren Das gespiegelte Volume des letzten Beispieles ist resistenter gegenüber Fehlern als ein ungespiegeltes Volume, seine Leistung ist hingegen schlechter, da jeder Schreibzugriff auf das Volume einen Schreibzugriff auf beide Platten erfordert und damit mehr der insgesamt verfügbaren Datentransferrate benötigt. Steht also die optimale Leistung im Vordergrund, muss anders vorgegangen werden: Statt alle Daten zu spiegeln, werden die Daten über so viele Platten wie möglich gestriped. Die folgende Konfiguration zeigt ein Volume mit einem über vier Platten hinwegreichenden Plexus: drive c device /dev/da5h drive d device /dev/da6h volume stripe plex org striped 512k sd length 128m drive a sd length 128m drive b sd length 128m drive c sd length 128m drive d Wie zuvor ist es nicht nötig, die Platten zu definieren, die Vinum schon bekannt sind. Nach dem Abarbeiten dieser Definition sieht die Konfiguration wie folgt aus: Drives: 4 (4 configured) Volumes: 3 (4 configured) Plexes: 4 (8 configured) Subdisks: 7 (16 configured) D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%) D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%) D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%) D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%) V myvol State: up Plexes: 1 Size: 512 MB V mirror State: up Plexes: 2 Size: 512 MB V striped State: up Plexes: 1 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB P striped.p1 State: up Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB S striped.p0.s0 State: up PO: 0 B Size: 128 MB S striped.p0.s1 State: up PO: 512 kB Size: 128 MB S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB S striped.p0.s3 State: up PO: 1536 kB Size: 128 MB
Ein Striped Vinum Volume
Dieses Volume wird in dargestellt. Die Schattierung der Stripes zeigt die Position innerhalb des Plexus-Adressraumes an. Die hellsten Stripes kommen zuerst, die dunkelsten zuletzt.
Ausfallsicherheit und Leistung Mit entsprechender Hardware ist es möglich, Volumes zu bauen, welche gegenüber Standard-&unix;-Partitionen beides, nämlich erhöhte Ausfallsicherheit und erhöhte Leistung, aufweisen können. Eine typische Konfigurationsdatei könnte etwa so aussehen: volume raid10 plex org striped 512k sd length 102480k drive a sd length 102480k drive b sd length 102480k drive c sd length 102480k drive d sd length 102480k drive e plex org striped 512k sd length 102480k drive c sd length 102480k drive d sd length 102480k drive e sd length 102480k drive a sd length 102480k drive b Die Subdisks des zweiten Plexus sind gegenüber denen des ersten Plexus um zwei Platten verschoben. Dadurch wird sichergestellt, dass Schreibzugriffe nicht auf den gleichen Subdisks auftreten, auch wenn eine Übertragung über zwei Platten geht. veranschaulicht die Struktur dieses Volumes.
Ein gespiegeltes, Striped Vinum Volume
Objektbenennung Wie oben beschrieben, weist Vinum den Plexus und Subdisks Standardnamen zu, wenngleich diese überschrieben werden können. Das Überschreiben dieser Standardnamen wird allerdings nicht empfohlen. Erfahrungen mit dem VERITAS Volume Manager (der eine willkürliche Benennung von Objekten erlaubt) haben gezeigt, dass diese Flexibilität keinen entscheidenden Vorteil bringt und zudem Verwirrung stiften kann. Namen dürfen zwar alle nichtleeren Zeichen enthalten, es ist aber sinnvoll, nur Buchstaben, Ziffern und den Unterstrich zu verwenden. Die Namen von Volumes, Plexus und Subdisks können bis zu 64 Zeichen lang sein, die Namen von Platten dürfen hingegen nur bis zu 32 Zeichen lang sein. Vinum-Objekten werden Gerätedateien in der /dev/gvinum-Hierarchie zugewiesen. Die weiter oben dargestellte Konfiguration würde Vinum dazu veranlassen, die folgenden Gerätedateien zu erstellen: Dies trifft nur für die veraltete Vinum-Implementierung zu. Die Kontrollgeräte /dev/vinum/control und /dev/vinum/controld, welche von &man.gvinum.8; beziehungsweise dem Vinum-Daemon verwendet werden. Geräte-Einträge für jedes Volume. Dieses sind die Hauptgeräte, die von Vinum benutzt werden. Somit würde die Konfiguration von oben folgende Geräte beinhalten: /dev/gvinum/myvol, /dev/gvinum/mirror, /dev/gvinum/striped, /dev/gvinum/raid5 sowie /dev/gvinum/raid10. Dies trifft nur für die veraltete Vinum-Implementierung zu. Ein Verzeichnis /dev/vinum/drive mit Einträgen für jede Platte. Diese Einträge sind tatsächlich symbolische Links auf die korrespondierenden Plattendateien. Alle Volumes bekommen direkte Einträge unter /dev/gvinum/. Die Verzeichnisse /dev/gvinum/plex und /dev/gvinum/sd, die Gerätedateien für jeden Plexus sowie jede Subdisk enthalten. Stellen Sie sich folgende Konfigurationsdatei vor: drive drive1 device /dev/sd1h drive drive2 device /dev/sd2h drive drive3 device /dev/sd3h drive drive4 device /dev/sd4h volume s64 setupstate plex org striped 64k sd length 100m drive drive1 sd length 100m drive drive2 sd length 100m drive drive3 sd length 100m drive drive4 Nach Abarbeitung dieser Datei erstellt &man.gvinum.8; die folgende Struktur unter /dev/gvinum: drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64 drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd /dev/vinum/plex: total 0 crwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0 /dev/vinum/sd: total 0 crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0 crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1 crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2 crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3 Es wird empfohlen, für Plexus und Subdisks keine eigenen Namen zu vergeben. Dies gilt aber nicht für Vinum-Platten. Durch die Benennung von Vinum-Platten wird es erst möglich, eine Platte an einen anderen Ort zu verschieben und sie trotzdem noch automatisch erkennen zu lassen. Plattennamen können bis zu 32 Zeichen lang sein. Dateisysteme erstellen Volumes erscheinen (mit einer Ausnahme) dem System nicht anders als Platten. Anders als &unix;-Platten partitioniert Vinum seine Volumes nicht, weshalb diese auch keine Partitionstabellen haben. Dies wiederum hat Modifikationen an einigen Platten-Tools, insbesondere &man.newfs.8;, nötig gemacht, welche bis dahin den letzten Buchstaben eines Vinum-Volume-Namen als Partitionsbezeichner identifiziert haben. Zum Beispiel könnte eine Platte einen Namen wie /dev/ad0a oder /dev/da2h haben. Diese Namen bedeuten, dass es sich um die erste Partition (a) der ersten (0) IDE-Platte (ad) und respektive die achte Partition (h) der dritten (2) SCSI-Platte (da) handelt. Im Vergleich dazu könnte ein Vinum-Volume beispielsweise /dev/gvinum/concat heißen, ein Name, der in keiner Beziehung mit einem Partitionsnamen steht. Normalerweise interpretiert &man.newfs.8; den Namen einer Platte und beschwert sich, wenn es ihn nicht versteht: &prompt.root; newfs /dev/gvinum/concat newfs: /dev/gvinum/concat: can't figure out file system partition Um nun ein Dateisystem auf diesem Volume anzulegen, benutzen Sie &man.newfs.8;: &prompt.root; newfs /dev/gvinum/concat Bei &os;-Versionen vor 5.0 benötigt &man.newfs.8; ein zusätzliches -v Flag und das alte Gerätenamen-Schema: &prompt.root; newfs -v /dev/vinum/concat Vinum konfigurieren Der GENERIC-Kernel enthät kein Vinum. Es ist zwar möglich, einen speziellen Kernel zu bauen, der Vinum beinhaltet, empfohlen wird aber, Vinum als ein Kernelmodul (über kld) zu laden. Dazu müssen Sie nicht einmal &man.kldload.8; benutzen, da beim Start von &man.gvinum.8; automatisch überprüft wird, ob das Modul bereits geladen wurde. Falls das Modul noch nicht geladen wurde, wird es daraufhin geladen. Inbetriebnahme Vinum speichert seine Konfigurationsinformationen auf den Platten-Slices im Wesentlichen genauso ab wie in den Konfigurationsdateien. Beim Lesen der Konfigurationsdatenbank erkennt Vinum eine Anzahl von Schlüsselwörtern, die in den Konfigurationsdateien nicht erlaubt sind. Zum Beispiel könnte eine Platten-Konfiguration den folgenden Text enthalten: volume myvol state up volume bigraid state down plex name myvol.p0 state up org concat vol myvol plex name myvol.p1 state up org concat vol myvol plex name myvol.p2 state init org striped 512b vol myvol plex name bigraid.p0 state initializing org raid5 512b vol bigraid sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b Die offensichtlichen Unterschiede sind hier die Anwesenheit von Informationen über explizite Speicherorte und Benennungen (beides ist zwar erlaubt, aber es wird dem Benutzer davon abgeraten, es zu benutzen) und Informationen über die Zustände (welche für den Benutzer nicht zur Verfügung stehen). Vinum speichert keine Informationen über Platten in den Konfigurationsinformationen, es findet die Platten durch Scannen nach Vinum-Markierungen auf den eingerichteten Laufwerken. Dies ermöglicht es, Vinum-Platten auch dann noch korrekt zu identifizieren, wenn sie schon andere &unix;-Platten-IDs zugewiesen bekommen haben. Automatische Inbetriebnahme Diese Information bezieht sich nur auf die veraltete Vinum-Implementierung. Gvinum unterstützt eine automatische Inbetriebnahme immer, - wenn das Kernelmodul geladen ist. - + wenn das Kernelmodul über &man.loader.conf.5; geladen ist. + Um das Gvinum Modul beim Hochfahren des + Systems zu laden, fügen Sie die Zeile + geom_vinum_load="YES" in + /boot/loader.conf ein. Um Vinum automatisch zu starten, wenn Sie Ihr System starten, müssen Sie sicherstellen, dass Ihre /etc/rc.conf (die in &man.rc.conf.5; ausführlich beschrieben wird) folgende Zeile enthält: start_vinum="YES" # set to YES to start vinum Durch diesen Eintrag wird das Vinum-kld geladen, das alle Objekte startet, die in der Konfiguration erwähnt werden. All dies wird vor dem Mounten der Dateisysteme getan, so dass ein automatisches &man.fsck.8; und Mounten der Dateisysteme auf Vinum-Volumes möglich ist. Beim starten von Vinum durch den Befehl vinum start liest Vinum die Konfigurationsdatenbank von einer der Vinum-Platten. Unter normalen Umständen enthält jede Platte eine identische Kopie der Konfigurationsdatenbank, so dass es keine Rolle spielt, von welcher der Platten diese eingelesen wird. Nach einem Plattencrash muss Vinum allerdings zunächst feststellen, welche der Platten zuletzt aktualisiert wurde und dann die Konfiguration von dieser Platte lesen. Danach werden (falls nötig) die Konfigurationen der "alten" Platten aktualisiert. Vinum für das Root-Dateisystem benutzen Auf einem System, das mit Hilfe von Vinum vollgespiegelte Dateisysteme hat, ist es wünschenswert, auch das Root-Dateisystem zu spiegeln. Solch eine Konfiguration ist allerdings weniger trivial als das Spiegeln eines gewöhnlichen Dateisystems, weil: Das Root-Dateisystem in einer sehr frühen Phase des Bootvorgangs verfügbar sein muss, und damit auch die Vinum-Infrastruktur. Das Volume, welches das Root-Dateisystem enthält, auch den Bootstrap und den Kernel enthält, die wiederum nur mit den systemeigenen Tools (zum Beispiel dem BIOS bei handelsüblichen PCs) gelesen werden können und meist nicht dazu gebracht werden können, Vinum zu verstehen. Im folgenden Abschnitt wird der Begriff Root-Volume benutzt, um das Vinum-Volume zu beschreiben, welches das Root-Dateisystem enthält. Es ist eine gute Idee, für dieses Volume den Namen "root" zu benutzen, aber es ist in keiner Weise technisch nötig (Das folgende Beispiel geht allerdings davon aus, dass dies der Fall ist.). Vinum für das Root-Dateisystem rechtzeitig starten Damit dies gelingt, müssen Sie folgende Aufgaben erledigen: Vinum muss zum Zeitpunkt des Bootvorganges im Kernel zur Verfügung stehen. Deswegen ist die Methode zum Start von Vinum, die in beschrieben wird, für diese Aufgabe nicht geeignet. Also muss auch der start_vinum-Parameter eigentlich nicht gesetzt werden, wenn man das folgende Setup einrichtet. Die erste Möglichkeit wäre es, Vinum statisch in den Kernel zu kompilieren, so dass es ständig verfügbar ist, was aber in der Regel nicht erwünscht ist. Ebenso gibt es die Möglichkeit /boot/loader () das Vinum-Kernelmodul früh genug laden zu lassen (und zwar noch bevor der Kernel gestartet wird). Dies kann bewerkstelligt werden, indem die Zeile geom_vinum_load="YES" in die Datei /boot/loader.conf eingetragen wird. Für Gvinum ist das oben beschriebene Prozedere alles, was Sie tun müssen, da der gesamte Startvorgang automatisch erledigt wird, sobald das Kernelmodul geladen wurde. Der folgende Text dokumentiert das Verhalten des ursprünglichen Vinum-Systems. Vinum muss früh initialisiert werden, weil es das Volume für das Root-Dateisystem bereitstellen muss. In der Voreinstellung sucht das Vinum-Kernelmodul nicht nach Laufwerken, die vielleicht Vinum-Volumeninformationen enthalten könnten, bis der Administrator (oder eines der Startskripte) den Befehl vinum start ausführt. Der folgende Absatz gibt einen Überblick - über die nötigen Schritte für FreeBSD 5.X - und neuer. Die Einrichtung unter FreeBSD 4.X - unterscheidet sich von dieser Vorgehensweise und wird in - beschrieben. + über die nötigen Schritte für FreeBSD. Durch Aufnahme der Zeile vinum.autostart="YES" in /boot/loader.confwird Vinum beim Starten des Kernels dazu veranlasst, automatisch alle Platten nach Vinuminformationen zu scannen. Beachten Sie, dass es nicht nötig ist, den Kernel davon zu unterrichten, wo er nach dem Root-Dateisystem suchen soll. /boot/loader holt sich den Namen des Root-Gerätes aus /etc/fstab und übergibt diesen dann dem Kernel. Sobald es Zeit wird, das Root-Dateisystem zu mounten, findet der Kernel anhand des Gerätenamens heraus, welchen Treiber er fragen muss, um den Namen in die interne Geräte-ID zu übersetzen (major/minor-Nummer). Ein Vinum-basiertes Root-Volume dem Bootstrap verfügbar machen Da der aktuelle FreeBSD-Bootstrap nur 7,5 KB Code enthält und schon ohne Vinum die Aufgabe hat, bestimmte Dateien (wie /boot/loader) von einem UFS-Dateisystem zu lesen, ist es schier unmöglich, ihm auch noch die Interna von Vinum beizubringen, damit er die Vinum-Konfigurationsdaten auslesen und die Elemente eines Boot-Volumes selbst herausfinden könnte. Daher sind ein paar Tricks nötig, um dem Bootstrap-Code die Illusion einer Standard-"a"-Partition mit einem Root-Dateisystem vorzugaukeln. Damit dies überhaupt möglich wird, müssen die folgenden Bedingungen für das Root-Dateisystem erfüllt sein: Das Root-Volume darf weder gestriped noch RAID-5 sein. Das Root-Volume darf nicht mehr als eine konkatenierte Subdisk pro Plexus enthalten. Beachten Sie, dass es möglich und wünschenswert ist, mehrere Plexus zu haben, von denen jeder eine Kopie des Root-Dateisystems enthält. Der Bootstrap-Prozess wird hingegen nur einen dieser Plexus benutzen, um den Bootstrap und alle Dateien zu finden, bis der Kernel letztendlich das Root-Dateisystem selbst laden wird. Jede einzelne Subdisk innerhalb dieser Plexus wird dann ihre eigene Illusion der Partition "a" brauchen, damit das entsprechende Gerät bootbar wird. Es ist nicht unbedingt notwendig, dass sich jede dieser gefälschten "a"-Partitionen auf seinem Gerät an einem Ort befindet, der um den selben Wert verschoben ist wie auf den anderen Geräten, die Plexus des Root-Dateisystems enthalten. Um Unklarheiten zu verhindern, ist es jedoch eine gute Idee, die Vinum-Volumes so zu erstellen, dass die gespiegelten Geräte symmetrisch sind. Damit diese "a"-Partitionen eingerichtet werden können, muss für alle Geräte, die Teil des Root-Dateisystems sind, folgendes getan werden: Der Ort (Verschiebung vom Beginn des Gerätes) und die Größe der Subdisk, die Teil des Root-Volumes ist, muss untersucht werden: &prompt.root; gvinum l -rv root Beachten Sie, dass Vinum-Verschiebungen und -Größen in Bytes gemessen werden. Sie müssen deshalb durch 512 geteilt werden, um die Blockanzahl zu erhalten, wie sie das bsdlabel-Kommando verwendet. Führen Sie den Befehl &prompt.root; bsdlabel -e devname für jedes Gerät, dass am Root-Volume beteiligt ist, aus. devname muss entweder der Name der Platte (wie da0), im Falle einer Platte ohne Slice-Tabelle oder der Name des Slices (wie ad0s1) sein. Wenn es schon eine "a"-Partition auf dem Gerät (in der Regel wahrscheinlich ein Prä-Vinum-Root-Dateisystem) gibt, sollte diese umbenannt werden, damit sie weiterhin verfügbar bleibt (nur für den Fall). Sie wird aber nicht länger benutzt, um das System zu starten. Beachten Sie aber, dass aktive Partitionen (wie ein gemountetes Root-Dateisystem) nicht umbenannt werden können, sodass Sie entweder von einem Fixit-Medium booten müssen, oder aber mittels eines zweistufigen Prozesses (sofern Sie in einer gespiegelten Umgebung arbeiten) zuerst die Platte ändern, von der gerade nicht gebootet wurde. Nun muss die Verschiebung der Vinum-Partition (sofern vorhanden) auf diesem Gerät mit der Veschiebung der entsprechenden Root-Volume-Subdisk addiert werden. Das Resultat wird der "offset"-Wert für die neue "a"-Partition. Der "size"-Wert für diese Partition kann entsprechend der Berechnung ermittelt werden. "fstype" sollte 4.2BSD sein. Die "fsize"-, "bsize"-, und "cpg"- Werte sollten entsprechend dem eigentlichen Dateisystem gewählt werden, obwohl sie in diesem Kontext ziemlich unwichtig sind. Auf diese Art und Weise wird eine neue Partition "a" etabliert, die die Vinum-Partition auf diesem Gerät überschneidet. Beachte Sie, dass das bsdlabel-Kommando diese Überschneidung nur erlaubt, wenn die Partition richtig mit dem "vinum"-fstype markiert ist. Das ist alles. Auf jedem Gerät befindet sich nun eine gefälschte "a"-Partition, die eine Kopie des Root-Volumes enthält. Es wird dringend empfohlen, das Resultat dieser Konfiguration zu überprüfen: &prompt.root; fsck -n /dev/devnamea Denken Sie stets daran, dass alle Dateien, die Kontrollinformationen enthalten, nun relativ zum Root-Dateisystem innerhalb des Vinum-Volumes sein müssen. Denn ein neu eingerichtetes Vinum-Root-Dateisystem ist möglicherweise inkompatibel zum gerade aktiven Root-Dateisystem. Deshalb müssen insbesondere die Dateien /etc/fstab und /boot/loader.conf überprüft werden. Beim nächsten Systemstart sollte der Bootstrap die adäquaten Kontrollinformationen des neuen Vinum-basierten Root-Dateisystems automatisch herausfinden und entsprechend handeln. Am Ende des Kernel-Initialisierungsprozesses (nachdem alle Geräte angezeigt wurden) erhalten Sie bei einer erfolgreichen Konfiguration eine Nachricht ähnlich der folgenden: Mounting root from ufs:/dev/gvinum/root Beispiel eines Vinum-basierten Root-Setups Nachdem das Vinum-Root-Volume eingerichtet wurde, könnte die Ausgabe von gvinum l -rv root bespielsweise so aussehen: ... Subdisk root.p0.s0: Size: 125829120 bytes (120 MB) State: up Plex root.p0 at offset 0 (0 B) Drive disk0 (/dev/da0h) at offset 135680 (132 kB) Subdisk root.p1.s0: Size: 125829120 bytes (120 MB) State: up Plex root.p1 at offset 0 (0 B) Drive disk1 (/dev/da1h) at offset 135680 (132 kB) Wichtig ist hier insbesondere ist der Wert 135680 für die Verschiebung (relativ zur Partition /dev/da0h). Das entspricht beim Einsatz von bsdlabel 265 512-Byte-Plattenblöcken. Dieses Root-Volume ist ebenso 245760 512-Byte-Blöcke groß. /dev/da1h enthält die zweite Kopie dieses Root-Volumes und ist symmetrisch aufgebaut. Das Bsdlabel für diese Geräte könnte so aussehen: ... 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 245760 281 4.2BSD 2048 16384 0 # (Cyl. 0*- 15*) c: 71771688 0 unused 0 0 # (Cyl. 0 - 4467*) h: 71771672 16 vinum # (Cyl. 0*- 4467*) Wie man leicht feststellen kann, entspricht der Parameter "size" der gefälschten "a"-Partition dem ausgewiesenen Wert von oben, während der Parameter "offset" gleich der Summe der Verschiebung innerhalb der Vinum-Partition "h" und der Verschiebung innerhalb des Geräts (oder Slice) ist. Dies ist ein typischer Aufbau, der nötig ist, um die in beschriebenen Probleme zu vermeiden. Die gesamte Partition "a" befindet sich in "h", die alle Vinum-Daten für dieses Gerät enthält. Beachten Sie, dass in dem oben beschriebenen Beispiel das gesamte Gerät Vinum gewidmet ist und keine Prä-Vinum-Partition zurückgelassen wurde, da es sich im Beispiel um eine neu eingerichtete Platte handelt, die nur für die Vinum-Konfiguration bestimmt war. Fehlerbehebung Der folgende Abschnitt beschreibt einige bekannte Probleme und Fallstricke bei der Vinum-Konfiguration sowie deren Behebung. Der System-Bootstrap lädt zwar, das System startet aber nicht. Wenn aus irgendeinem Grund das System nicht mit dem Booten fortfährt, kann man den Bootstrap während der 10-Sekunden-Warnung durch Drücken der Leertaste unterbrechen. Die loader-Variablen (wie vinum.autostart) können mittels des show-Kommandos untersucht, und mit set oder unset geändert werden. Wenn das einzige Problem das Fehlen des Vinum-Kernelmoduls in der Liste der automatisch zu ladenden Module ist, hilft ein einfaches load geom_vinum. Danach können Sie den Bootvorgang mit boot -as fortsetzen. Die Optionen fordern den Kernel auf, nach dem zu mountenden Root-Dateisystem zu fragen (), und den Bootvorgang im Single-User-Modus () zu beenden, in dem das Root-Dateisystem schon schreibgeschützt gemountet ist. Auf diese Weise wird keine Dateninkonsistenz zwischen den Plexus riskiert, auch wenn nur ein Plexus eines Multi-Plexus-Volumes gemountet wurde. Beim Prompt, das nach einem Root-Dateisystem fragt, kann jedes Gerät angegeben werden, dass ein gültiges Root-Dateisystem hat. Wenn /etc/fstab richtig konfiguriert wurde, sollte die Vorgabe etwas wie ufs:/dev/gvinum/root sein. Eine typische Alternative würde etwas wie ufs:da0d sein, welches eine hypothetische Partition sein könnte, die ein Pre-Vinum-Root-Dateisystem enthält. Vorsicht sollte walten, wenn eine der alias "a"-Partitionen hier eingegeben wird, die eigentlich Referenzen auf die Subdisks des Vinum-Root-Dateisystems sind, da so nur ein Stück eines gespiegelten Root-Gerätes gemountet werden würde. Wenn das Dateisystem später zum Lesen und Schreiben gemountet werden soll, ist es nötig, die anderen Plexus des Vinum-Root-Volumes zu entfernen, weil diese Plexus andernfalls inkonsistente Daten enthalten würden. Nur der primäre Bootstrap lädt Wenn das Laden von /boot/loader fehlschlägt, aber der primäre Bootstrap dennoch lädt (sichtbar an dem einzelnen Strich in der linken Spalte des Bildschirms gleich nachdem der Bootprozess startet), kann man versuchen, den primären Bootstrap an diesem Punkt durch Benutzen der Leertaste zu unterbrechen. Dies wird den Bootstrap in der zweiten Phase stoppen (siehe dazu auch ). Hier kann nun der Versuch unternommen werden, von einer anderen Partition zu booten, wie beispielsweise dem vorhergehenden Root-Dateisystem, das von "a" verschoben wurde. Nichts bootet, der Bootstrap hängt sich auf Diese Situation wird vorkommen, wenn der Bootstrap durch die Vinum-Installation zerstört worden ist. Unglücklicherweise lässt Vinum am Anfang seiner Partition nur 4 KB frei und schreibt dahinter seine Kopfinformationen. Allerdings benötigen Stufe-Eins- und -Zwei-Bootstraps plus dem dazwischen eingebetteten bsdlabel momentan 8 KB. Demzufolge wird die Vinum-Installation, wenn die Vinum-Partition mit der Verschiebung 0 (innerhalb eines Slice oder einer Platte, die zum Start bestimmt waren) eingerichtet wurde, den Bootstrap zerstören. Analog wird eine anschließende Reinstallation eines Bootstrap (zum Beispiel durch Booten eines Fixit-Mediums) mit bsdlabel -B, wie in beschrieben, den Vinum-Kopf zerstören und Vinum wird seine Platte(n) nicht mehr finden können. Obwohl keine eigentlichen Vinum-Konfigurationsdaten oder Daten in den Vinum-Volumes zerstört werden und es möglich wäre, alle Daten wiederherzustellen, indem die exakt gleichen Vinum-Konfigurationsdaten noch einmal eingegeben werden, bleibt die Situation schwer zu bereinigen, da es nötig ist, die gesamte Vinum-Partition um mindestens 4 KB nach hinten zu verschieben, damit Bootstrap und Vinum-Kopf nicht mehr kollidieren. - - - Vinum und FreeBSD 4.X - - Unter FreeBSD 4.X fehlen einige interne Funktionen, - daher ist Vinum hier nicht in der Lage, automatisch alle - Platten zu scannen. Außerdem ist der Code zur Bestimmung - der internen ID des Root-Geräts nicht intelligent genug, - um von sich aus mit einem Namen wie - /dev/vinum/root umzugehen. Dieser - Abschnitt beschreibt, wie Sie diese Einschränkungen - umgehen können. - - Sie müssen Vinum explizit mitteilen, welche - Laufwerke gescannt werden sollen. Dazu nehmen Sie eine Zeile - ähnlich der folgenden in - /boot/loader.conf auf: - - vinum.drives="/dev/da0 /dev/da1" - - Es ist wichtig, dass Sie alle Laufwerke angeben, die - Vinum-Daten enthalten könnten. Zwar schadet es nicht, - weitere Laufwerke anzugeben, dies ist - aber nicht nötig, da jedes Slice und/oder jede - Partition von Vinum automatisch auf gültige Vinum-Header - hin überprüft wird. - - Da die Routinen, die zum Parsen des - Root-Dateisystems-Namens und zum Herleiten der - Geräte-ID (major/minor - number) verwendet werden, nur - klassische Gerätenamen verstehen, - ist es nicht möglich, für das Root-Volume einen - Namen wie /dev/vinum/root zu - verwenden. Daher muss Vinum den internen - Kernelparameter, der die ID des Root-Gerätes bekommt, - während seiner eigenen Initialsierung selbst - festlegen und den Namen des Root-Volumes der - Loader-Variable vinum.root übergeben. - Dazu wird folgende Zeile in - /boot/loader.conf aufgenommen: - - vinum.root="root" - - Sobald jetzt die Kernelinitialisierung versucht, den - Namen des zu mountenden Root-Gerätes herauszufinden, sieht - sie, dass ein Kernelmodul den Kernelparameter schon - vorinitialisiert hat. Wenn dies der Fall ist - und das Gerät, dass sich als - Root-Gerät ausgibt, tatsächlich die Hauptnummer des - Treibers hat, wie sie mit Hilfe des übergebenen - Root-Geräte-Namens (in unserem Fall ist das - "vinum") ermittelt wurde, wird die - Kernelinitialisierung die vorbelegte Geräte-ID verwenden, - anstatt selbst eine herauszufinden. Auf diese Art kann es, - während des gewöhnlichen automatischen Hochfahrens, - mit dem Einhängen des Vinum-Root-Volumes als Root-Dateisystem - fortfahren. - - Obwohl boot -a zur manuellen Eingabe - des Root-Gerätes auffordert, muss dennoch beachtet - werden, dass die Routine noch nicht in der Lage - ist, einen Vinum-Namen zu parsen. Wenn ein Gerätename - eingegeben wird, der nicht auf ein Vinum-Gerät verweist, - wird der Unterschied zwischen den Hauptnummern des vorbelegten - Root-Parameters und des Treibers die Routine dazu veranlassen, - den normalen Parser zu benutzen. Demnach wird eine Zeichenkette - wie ufs:da0d erwartungsgemäß - funktionieren. Beachten Sie aber, dass es im Falle eines - Fehlschlags nicht mehr möglich ist, eine Zeichenkette wie - ufs:vinum/root noch einmal einzugeben, da - diese nicht geparsed werden kann. Der einzige Ausweg ist dann - ein Neustart des Systems. (Am askroot-Prompt kann - der Teil /dev/ des Namens der - Gerätedatei immer weggelassen werden.). -