<!-- The FreeBSD Documentation Project The FreeBSD German Documentation Project $FreeBSD$ $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.581 2006/05/14 10:38:28 jkois Exp $ basiert auf: 1.781 --> <!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [ <!ENTITY % books.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Books Entity Set//DE"> %books.ent; <!ENTITY bibliography SYSTEM "../../share/sgml/bibliography.sgml"> ]> <book id="faq" lang="de"> <bookinfo> <title>Häufig gestellte Fragen zu FreeBSD 4.X, 5.X und 6.X</title> <subtitle>Frequently Asked Questions für FreeBSD 4.X, 5.X und 6.X</subtitle> <authorgroup> <corpauthor>The FreeBSD German Documentation Project</corpauthor> <collab> <collabname>Deutsche Übersetzung von Robert S. F. Drehmel, Dirk Gouders und Udo Erdelhoff</collabname> </collab> </authorgroup> <pubdate>$FreeBSDde: de-docproj/books/faq/book.sgml,v 1.581 2006/05/14 10:38:28 jkois Exp $</pubdate> <copyright> <year>1995</year> <year>1996</year> <year>1997</year> <year>1998</year> <year>1999</year> <year>2000</year> <year>2001</year> <year>2002</year> <year>2003</year> <year>2004</year> <year>2005</year> <year>2006</year> <holder>The FreeBSD Documentation Project</holder> </copyright> <copyright> <year>2000</year> <year>2001</year> <year>2002</year> <year>2003</year> <year>2004</year> <year>2005</year> <year>2006</year> <holder>The FreeBSD German Documentation Project</holder> </copyright> &bookinfo.legalnotice; <legalnotice id="trademarks" role="trademarks"> &tm-attrib.freebsd; &tm-attrib.3com; &tm-attrib.adobe; &tm-attrib.creative; &tm-attrib.cvsup; &tm-attrib.ibm; &tm-attrib.ieee; &tm-attrib.intel; &tm-attrib.iomega; &tm-attrib.linux; &tm-attrib.microsoft; &tm-attrib.mips; &tm-attrib.netscape; &tm-attrib.opengroup; &tm-attrib.oracle; &tm-attrib.sgi; &tm-attrib.sparc; &tm-attrib.sun; &tm-attrib.usrobotics; &tm-attrib.xfree86; &tm-attrib.general; </legalnotice> <abstract> <para>Dies ist die FAQ für die FreeBSD-Versionen 4.X, 5.X und 6.X. Alle Einträge sollten für FreeBSD ab Version 4.0 relevant sein, andernfalls wird darauf explizit hingewiesen. Falls Sie daran interessiert sein sollten, an diesem Projekt mitzuhelfen, senden Sie eine Mail an die Mailingliste &a.de.translators;. Die aktuelle Version dieses Dokuments ist ständig auf dem <ulink url="http://www.FreeBSD.org/">FreeBSD World-Wide-Web-Server</ulink> verfügbar. Es kann auch per HTTP als eine große <ulink url="book.html">HTML</ulink>-Datei heruntergeladen werden oder als Textdatei, im &postscript;, PDF- und anderen Formaten vom <ulink url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD FTP-Server</ulink>. Sie können die FAQ auch <ulink url="&url.base;/search/search.html"> durchsuchen</ulink>.</para> </abstract> </bookinfo> <chapter id="introduction"> <title>Einleitung</title> <para>Willkommen zur FreeBSD 4.X-6.X FAQ!</para> <para>Wie auch bei den Usenet FAQs üblich, wird mit diesem Dokument beabsichtigt, die am häufigsten gestellten Fragen bezüglich des Betriebssystems FreeBSD zu erfassen und sie natürlich auch zu beantworten. Obwohl FAQs ursprünglich lediglich dazu dienen sollten, die Netzbelastung zu reduzieren und das ständige Wiederholen derselben Fragen zu vermeiden, haben sie sich als wertvolle Informationsquellen etabliert.</para> <para>Wir haben uns die größte Mühe gegeben, diese FAQ so lehrreich wie möglich zu gestalten; falls Sie irgendwelche Vorschläge haben, wie sie verbessert werden kann, senden Sie diese bitte an den &a.de.translators;.</para> <qandaset> <qandaentry> <question id="what-is-freebsd"> <para>Was ist FreeBSD?</para> </question> <answer> <para>FreeBSD ist, kurz gesagt, ein &unix; ähnliches Betriebssystem für die Plattformen Alpha/AXP, AMD64 sowie &intel; EM64T, &i386;, IA-64, PC-98 und &ultrasparc;, das auf der <quote>4.4BSD-Lite</quote>-Release der University of California at Berkeley (UCB) basiert; außerdem flossen einige Erweiterungen aus der <quote>4.4BSD-Lite2</quote>-Release mit ein. Es basiert außerdem indirekt auf der von William Jolitz unter dem Namen <quote>386BSD</quote> herausgebrachten Portierung der <quote>Net/2</quote>-Release der UCB auf die &i386;-Plattform - allerdings ist nur wenig vom 386BSD-Code übriggeblieben. Eine umfassendere Beschreibung darüber, was FreeBSD ist und wie Sie es für Ihre Zwecke verwenden können, finden Sie auf den Internetseiten des <ulink url="&url.base;/index.html"> FreeBSD Projects</ulink>.</para> <para>Unternehmen, Internet Service Provider, Forscher, Computerfachleute, Studenten und Privatnutzer auf der ganzen Welt benutzen FreeBSD für die Arbeit, die Ausbildung oder zur Freizeitgestaltung.</para> <para>Ausführlichere Informationen zu FreeBSD, finden Sie im <ulink url="&url.books.handbook;/index.html">FreeBSD Handbuch</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="FreeBSD-goals"> <para>Welches Ziel hat das FreeBSD-Projekt?</para> </question> <answer> <para>Die Ziel von FreeBSD ist es, Software zur Nutzung für beliebige Zwecke, bedingungslos zur Verfügung zu stellen. Viele von uns haben erheblich zur Erstellung des Codes (und zum Projekt) beigetragen und hätten jetzt oder in Zukunft sicherlich nichts gegen einen geringen finanziellen Ausgleich einzuwenden, aber wir beabsichtigen definitiv nicht, darauf zu bestehen. Wir sind der Meinung, dass unsere <quote>Mission</quote> zuerst und vorderst darin besteht, allen und jedem Kommenden Code für welchen Zweck auch immer zur Verfügung zu stellen, damit der Code möglichst weit eingesetzt wird und den größtmöglichen Nutzen liefert. Das ist, so glauben wir, eines der fundamentalsten Ziele von freier Software und eines, das wir enthusiastisch unterstützen.</para> <para>Der Code in unserem Quellbaum, der der <ulink url=" http://www.FreeBSD.org/copyright/COPYING">GNU General Public License (GPL)</ulink> oder der <ulink url="http://www.FreeBSD.org/copyright/COPYING.LIB">GNU Library General Public License (LGPL)</ulink> unterliegt, ist mit zusätzlichen, geringfügigen Bedingungen verknüpft, jedoch handelt es sich dabei lediglich um erzwungene Bereitstellung statt des sonst üblichen Gegenteils. Auf Grund der zusätzlichen Komplexität, die durch den kommerziellen Einsatz von GPL Software entstehen kann, bemühen wir uns jedoch, solche Software, wo möglich, durch solche, die der etwas lockereren <ulink url="http://www.FreeBSD.org/copyright/freebsd-license.html">FreeBSD Lizenz</ulink> unterliegt, zu ersetzen.</para> </answer> </qandaentry> <qandaentry> <question id="bsd-license-restrictions"> <para>Beinhaltet das FreeBSD-Copyright irgendwelche Einschränkungen?</para> </question> <answer> <para>Ja. Diese Einschränkungen regeln aber nicht, wie Sie mit dem Sourcecode umgehen, sondern betreffen nur den Umgang mit dem FreeBSD Project an sich. Wenn Sie sich ernsthaft damit auseinandersetzen wollen, lesen Sie einfach die <ulink url="http://www.FreeBSD.org/copyright/freebsd-license.html"> FreeBSD-Lizenz</ulink>. Wenn Sie einfach nur neugierig sind, sollte diese Zusammenfassung ausreichen:</para> <itemizedlist> <listitem> <para>Behaupten Sie nicht, Sie hätten es geschrieben.</para> </listitem> <listitem> <para>Verklagen Sie uns nicht, wenn irgend etwas nicht funktioniert.</para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="replace-current-OS"> <para>Kann FreeBSD mein bisher verwendetes Betriebssystem ersetzen?</para> </question> <answer> <para>In den meisten Fällen lautet die Antwort ja. Allerdings ist diese Frage nicht ganz so einfach, wie sie scheint.</para> <para>Die meisten Anwender benutzen kein Betriebssystem, sondern Anwendungen. Die Anwendungen sind es, die das Betriebssystem benutzen. FreeBSD ist dazu gedacht, eine stabile und vielfältige Umgebung für Anwendungen bereitzustellen. Es unterstützt viele unterschiedliche Web-Browser, Büroanwendungen, E-Mail-Programme, Grafik-Programme, Entwicklungsumgebungen, Netzwerk-Server, und so ziemlich alles andere, was Sie sich wünschen können. Die meisten dieser Anwendungen sind in der <ulink url="http://www.FreeBSD.org/ports/"> Ports-Sammlung</ulink> verfügbar.</para> <para>Wenn Sie Anwendung benutzen müssen, die es nur für ein bestimmtes Betriebssystem gibt, dann kommen Sie an diesem Betriebssystem nicht vorbei. Allerdings stehen die Chancen nicht schlecht, dass es eine vergleichbare Anwendung für FreeBSD gibt. Wenn Sie einen verläßlichen Server für ihr Büro oder das Internet brauchen, oder eine stabilen Arbeitsplatz, oder einfach nur die Fähigkeit, ihre Arbeit ohne dauernde Abstürze machen zu können, dann kann FreeBSD genau das sein. Viele Anwender auf der ganzen Welt, vom Anfänger bis zum erfahrenen Administrator, benutzen an Ihren Arbeitsplätzen ausschließlich FreeBSD.</para> <para>Wenn Sie von einem anderen &unix; System zu FreeBSD wechseln, dürfte Ihnen vieles bekannt vorkommen. Wenn Ihr Hintergrund ein Grafik-orientiertes Betriebssystem wie &windows; oder ein älteres &macos; ist, werden Sie zusätzliche Zeit investieren müssen, um den &unix; Stil zu verstehen. Dieser FAQ und das <ulink url="&url.books.handbook;/index.html">FreeBSD Handbuch</ulink> sind die besten Startpunkte.</para> </answer> </qandaentry> <qandaentry> <question id="why-called-FreeBSD"> <para>Warum heißt es FreeBSD?</para> </question> <answer> <itemizedlist> <listitem> <para>Es darf kostenlos genutzt werden - sogar von kommerziellen Benutzern.</para> </listitem> <listitem> <para>Der komplette Quellcode für das Betriebssystem ist frei verfügbar und die Benutzung, Verbreitung und Einbindung in andere (kommerzielle und nicht-kommerzielle) Arbeiten sind mit den geringstmöglichen Einschränkungen versehen worden.</para> </listitem> <listitem> <para>Jedem ist es freigestellt, Code für Verbesserungen oder die Behebung von Fehlern einzusenden und ihn zum Quellbaum hinzufügen zu lassen (dies ist natürlich Gegenstand von ein oder zwei offensichtlichen Klauseln).</para> </listitem> </itemizedlist> <para>Es wird darauf hingewiesen, dass das englische Wort <quote>free</quote> hier in den Bedeutungen <quote>umsonst</quote> und <quote>Sie können tun, was immer Sie möchten</quote> genutzt wird. Abgesehen von ein oder zwei Dingen, die Sie mit dem FreeBSD-Code <emphasis>nicht</emphasis> tun können (z.B. vorgeben, ihn geschrieben zu haben), können Sie damit tatsächlich tun, was auch immer Sie möchten.</para> </answer> </qandaentry> <qandaentry> <question id="differences-to-other-bsds"> <para>Wie unterschieden sich FreeBSD, NetBSD, OpenBSD und andere Open-Source BSD-Systeme?</para> </question> <answer> <para>James Howards Artikel <ulink url="http://ezine.daemonnews.org/200104/bsd_family.html">The BSD Family Tree</ulink>, der in <ulink url="http://www.daemonnews.org/">DaemonNews</ulink> erschienen ist, beschreibt sehr gut die Geschichte und die Unterschiede der BSD-Varianten.</para> </answer> </qandaentry> <qandaentry> <question id="latest-version"> <para>Welches ist die aktuelle FreeBSD-Version?</para> </question> <!-- This answer is a hack to deal with the fact that for now there are multiple "latest" versions of FreeBSD. --> <answer> <para>Momentan gibt es drei Entwicklungszweige, von den zwei für die Erstellung von Releases verwendet werden. Die 5.X-RELEASEs werden auf dem <emphasis>5-STABLE</emphasis>-Zweig erstellt, die 6.X-RELEASEs auf dem <emphasis>6-STABLE</emphasis>-Zweig.</para> <para>Bis zur Veröffentlichung von &os; 5.3 galt die 4.X-Serie als <emphasis>-STABLE</emphasis>. Seither gibt es für den Zweig 4.X nur mehr eine <quote>erweiterte Unterstützung</quote> in der Form von Korrekturen von größeren Problemen, wie neu entdeckten Sicherheitsheitslücken. Aus dem Zweig <emphasis>5-STABLE</emphasis> werden zwar noch RELEASEs erzeugt, er gilt aber als <quote>ausgereift</quote>. Aktive Weiterentwicklungen konzentrieren sich daher auf den Zweig <emphasis>6-STABLE</emphasis>. <para>Version <ulink url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;</ulink> ist das aktuelle Release des <emphasis>6-STABLE</emphasis>-Zweigs und ist im &rel.current.date; erschienen. Version <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;</ulink> ist das aktuelle Release aus dem <emphasis>5-STABLE</emphasis>-Zweig und ist im &rel2.current.date; erschienen.</para> <para>Kurz gesagt, <emphasis>-STABLE</emphasis> ist für ISPs und andere Benutzer gedacht, die mehr Wert auf Stabilität und eine niedrige Änderungsfrequenz als auf die neuesten und möglicherweise unstabilen Features im aktuellen <emphasis>-CURRENT</emphasis> Snapshot legen. Releases können aus jedem Zweig entstehen, Sie sollten <emphasis>-CURRENT</emphasis> allerdings nur dann benutzen, wenn Sie auf ein erhöhtes Fehlverhalten im Vergleich zu <emphasis>-STABLE</emphasis> auch vorbereitet sind.</para> <para>Releases entstehen nur <link linkend="release-freq">alle paar Monate</link>. Viele Leute halten ihre Systeme aktueller (lesen Sie die Fragen zu <link linkend="current">&os;-CURRENT</link> und <link linkend="stable">&os;-STABLE</link>), aber das erfordert ein erhöhtes Engagement, da die Sourcen sich ständig verändern.</para> <para>Weitere Informationen über Releases entnehmen Sie der Seite <ulink url="http://www.FreeBSD.org/releng/index.html">Release Engineering</ulink> des FreeBSD Webauftritts.</para> </answer> </qandaentry> <qandaentry> <question id="current"> <para>Was ist FreeBSD-CURRENT?</para> </question> <answer> <para><ulink url="&url.books.handbook;/cutting-edge.html#CURRENT"> &os;-CURRENT</ulink> ist die Entwicklungsversion des Betriebssystems, aus der zu gegebener Zeit &os.stable; werden wird. Als solche ist sie lediglich für Entwickler, die am System mitarbeiten und für unentwegte Bastler von Interesse. Details zum Betrieb von -CURRENT finden Sie im <ulink url="&url.books.handbook;/cutting-edge.html#CURRENT"> entsprechenden Abschnitt</ulink> des <ulink url="&url.books.handbook;/index.html">Handbuchs</ulink>.</para> <para>Falls Sie nicht mit dem Betriebssystem vertraut sind oder nicht in der Lage sein sollten, den Unterschied zwischen einen echten und einem temporären Problem zu erkennen, sollten Sie &os;-CURRENT nicht verwenden. Dieser Zweig entwickelt sich manchmal sehr schnell weiter und kann gelegentlich für mehrere Tage hintereinander nicht installierbar sein. Von Personen, die &os;-CURRENT verwenden, wird erwartet, dass Sie dazu in der Lage sind, Probleme zu analysieren und nur dann von ihnen berichten, wenn es sich um Fehler und nicht um <quote>kurzzeitige Störungen</quote> handelt. Fragen wie <quote>make world produziert Fehlermeldungen bezüglich Gruppen</quote> werden in der -CURRENT Mailingliste manchmal nicht beachtet.</para> <para>Jeden Tag wird der aktuelle Entwicklungsstand in den Zweigen -CURRENT und -STABLE in einer <ulink url="&url.base;/releases/snapshots.html">Snapshot</ulink> Release festgehalten. Mittlerweile werden sogar CDROM Distributionen dieser gelegentlichen Snapshots zur Verfügung gestellt. Die Ziele dieser Snapshot Releases sind:</para> <itemizedlist> <listitem> <para>Die aktuelle Version der Installationssoftware zu testen.</para> </listitem> <listitem> <para>Personen, die -CURRENT oder -STABLE benutzen möchten, aber nicht über die nötige Zeit oder Bandbreite verfügen, um tagesaktuell zu bleiben, soll eine bequeme Möglichkeit geboten werden, es auf ihr System zu bringen.</para> </listitem> <listitem> <para>Die Erhaltung von Referenzpunkten des fraglichen Codes, für den Fall, dass wir später einmal ernsthaften Schaden anrichten sollten (obwohl CVS verhindern sollte, dass solche Situationen entstehen :)</para> </listitem> <listitem> <para>Sicherzustellen, dass alle zu testenden, neuen Merkmale und Fehlerbehebungen zu möglichst vielen potentiellen Testern gelangen.</para> </listitem> </itemizedlist> <para>Von keinem -CURRENT Snapshot kann <quote>Produktionsqualität</quote> für beliebige Zwecke erwartet werden. Wenn Sie eine stabile und ausgetestete Version benötigen, sollten Sie eine vollständige Release oder einen -STABLE Snapshot verwenden.</para> <para>Snapshot-Releases sind unter <ulink url="ftp://current.FreeBSD.org/pub/FreeBSD/snapshots"> ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/</ulink> verfügbar.</para> <para>In der Regel wird jeden Tag ein Snapshot jedes zur Zeit aktiven Zweiges erstellt.</para> </answer> </qandaentry> <qandaentry> <question id="stable"> <para>Was ist das Konzept von FreeBSD-STABLE?</para> </question> <answer> <para>Zur der Zeit, als FreeBSD 2.0.5 herausgegeben wurde, wurde entschieden, die Entwicklung von FreeBSD zweizuteilen. Ein Zweig wurde <ulink url="&url.books.handbook;/current-stable.html#STABLE">-STABLE</ulink> der andere <ulink url="&url.books.handbook;/cutting-edge.html#CURRENT">-CURRENT</ulink> genannt. FreeBSD-STABLE ist für Anbieter von Internetdiensten und andere kommerzielle Unternehmen gedacht, für die plötzliche Veränderungen und experimentelle Features unerwünscht sind. In diesem Zweige werden nur ausgetestete Fehlerbehebungen und kleine, inkrementelle Änderungen aufgenommen. FreeBSD-CURRENT ist eine ununterbrochene Linie seitdem die Version 2.0 herausgegeben worden ist. Sie führt zu 6.0-RELEASE (und darüber hinaus). Unmittelbar vor der Veröffentlichung von 6.0-RELEASE wurde der 6-STABLE-Zweig erschaffen und &os.current; wurde zu 7-CURRENT. Weitere Informationen zu diesem Thema finden Sie unter <quote><ulink url="&url.articles.releng.en;/release-proc.html#REL-BRANCH"> FreeBSD Release Engineering: Creating the Release Branch</ulink></quote>.</para> <para>Der Zweig 2.2-STABLE wurde mit der Veröffentlichung der Version 2.2.8 eingestellt. Der Zweig 3-STABLE endete mit Version 3.5.1, der letzten 3.X-Version. Änderungen in diesen Zweigen beschränken sich im allgemeinen auf die Korrektur von sicherheitsrelevanten Fehlern. Die Zweige 4-STABLE und 5-STABLE werden zwar noch unterstützt, die Unterstützung beschränkt sich allerdings auf das Schließen von neu entdeckten Sicherheitslücken und die Behebung von anderen ernsten Problemen.</para> <para>&rel.current;-STABLE ist der Zweig, auf den sich die Entwicklung von -STABLE zurzeit konzentriert. Das neueste Release aus dem &rel.current;-STABLE-Zweig ist &rel.current;-RELEASE und ist im &rel.current.date; erschienen.</para> <para>Aus dem 7-CURRENT-Zweig entsteht die nächste &os;-Generation. Weitere Informationen über diesen Zweig finden Sie unter <link linkend="current">Was ist FreeBSD-CURRENT?</link>.</para> </answer> </qandaentry> <qandaentry> <question id="release-freq"> <para>Wann werden FreeBSD-Versionen erstellt?</para> </question> <answer> <para>Im Schnitt gibt das &a.re; alle vier Monate eine neue FreeBSD-Version frei. Das Erscheinungsdatum einer neuer Version wird frühzeitig bekanntgegeben, damit die am System arbeitenden Personen wissen, bis wann ihre Projekte abgeschlossen und ausgetestet sein müssen. Vor jedem Release gibt es eine Testperiode um sicherzustellen, dass die neu hinzugefügten Features nicht die Stabilität des Releases beeinträchtigen. Viele Benutzer halten dies für einen großen Vorteil von FreeBSD, obwohl es manchmal frustrierend sein kann, so lange auf die Verfügbarkeit der aktuellsten Leckerbissen zu warten.</para> <para>Weitere Informationen über die Entwicklung von Releases, sowie eine Übersicht über kommende Releases, erhlaten Sie auf den <ulink url="http://www.FreeBSD.org/releng/index.html">release engineering</ulink> Seiten der FreeBSD Webseite.</para> <para>Für diejenigen, die ein wenig mehr Spannung brauchen (oder möchten), werden täglich Snapshots herausgegeben, wie oben beschrieben.</para> </answer> </qandaentry> <qandaentry> <question id="responsible"> <para>Wer ist für FreeBSD verantwortlich?</para> </question> <answer> <para>Schlüsseldiskussionen, die das FreeBSD-Projekt betreffen, wie z.B. über die generelle Ausrichtung des Projekts und darüber, wem es erlaubt sein soll, Code zum Quellbaum hinzuzufügen, werden innerhalb eines <ulink url="&url.articles.contributors.en;/article.html#STAFF-CORE">Core Team</ulink> von 9 Personen geführt. Es gibt ein weitaus größeres Team von über 300 <ulink url="&url.articles.contributors.en;/article.html#STAFF-COMMITTERS">Committern</ulink>, die dazu autorisiert sind, Änderungen am FreeBSD Quellbaum durchzuführen.</para> <para>Jedoch werden die meisten nicht-trivialen Änderungen zuvor in den <link linkend="mailing">Mailinglisten</link> diskutiert und es bestehen keinerlei Einschränkungen darüber, wer sich an diesen Diskussionen beteiligen darf.</para> </answer> </qandaentry> <qandaentry> <question id="where-get"> <para>Wie kann ich FreeBSD beziehen?</para> </question> <answer> <para>Jede bedeutende Ausgabe von FreeBSD ist per Anonymous-FTP vom <ulink url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/">FreeBSD FTP Server</ulink> erhältlich:</para> <itemizedlist> <listitem> <para>Das aktuelle 6-STABLE-Release, &rel.current;-RELEASE, finden Sie im Verzeichnis <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;-RELEASE</ulink>.</para> </listitem> <listitem> <para><ulink url="ftp://current.FreeBSD.org/pub/FreeBSD/"> Snapshots</ulink>-Releases werden täglich aus dem <link linkend="current">-CURRENT</link>-Zweig erzeugt. Sie sollten aber nur von Entwicklern und sehr erfahrenen Testern verwendet werden.</para> </listitem> <listitem> <para>Das aktuelle Release von 5-STABLE, &rel2.current;-RELEASE finden Sie im Verzeichnis <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;-RELEASE</ulink>.</para> </listitem> <listitem> <para><ulink url="ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/">5.X Snapshots</ulink> werden in der Regel täglich erstellt.</para> </listitem> </itemizedlist> <para>Wo und wie Sie FreeBSD auf CD, DVD, und anderen Medien beziehen können, erfahren Sie im <ulink url="&url.books.handbook;/mirrors.html">Handbuch</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="access-pr"> <para>Wie greife ich auf die Datenbank mit Problemberichten zu?</para> </question> <answer> <para>Die Datenbank mit Problemberichten (PR, <foreignphrase>problem report</foreignphrase>) und Änderungsanfragen von Benutzern kann über die webbasierte <ulink url="http://www.de.FreeBSD.org/cgi/query-pr-summary.cgi?query"> PR-Abfrage</ulink>-Schnittstelle abgefragt werden.</para> <para>Mit dem Programm &man.send-pr.1; können Sie Problemberichte oder Änderungsanträge per E-Mail einsenden. Alternativ können Sie Problemberichte auch über Ihren Browser und die <ulink url="http://www.freebsd.org/send-pr.html">webbasierte PR-Eingabe</ulink>-Schnittstelle erstellen.</para> <para>Bevor Sie einen Fehler melden, sollten Sie sich zuerst den Artikel <ulink url="&url.articles.problem-reports.en;/article.html">Writing FreeBSD Problem Reports</ulink> durchlesen, damit Sie wissen, wie Sie eine gute Fehlermeldung verfassen.</para> </answer> </qandaentry> <qandaentry> <question id="other-info-sources"> <para>Gibt es weitere Informationsquellen?</para> </question> <answer> <para>Sie finden eine umfassende Liste unter <ulink url="http://www.FreeBSD.org/docs.html">Documentation</ulink> auf der <ulink url="http://www.FreeBSD.org">FreeBSD-Webseite</ulink>.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="support"> <title>Dokumentation und Support</title> <qandaset> <qandaentry> <question id="books"> <para>Gibt es gute Bücher über FreeBSD?</para> </question> <answer> <para>Im Zuge des FreeBSD Projekts sind diverse gute Dokumente entstanden, die unter der folgenden URL abgerufen werden können: <ulink url="http://www.FreeBSD.org/docs.html"></ulink>. Die Dokumente stehen auch als Pakete, die Sie leicht installieren können, zur Verfügung. In den nächsten Abschnitten erfahren Sie mehr über diese Pakete.</para> <para>Zusätzlich enthalten die Bibliographien am Ende dieser FAQ und im Handbuch Verweise auf weitere empfohlene Bücher.</para> </answer> </qandaentry> <qandaentry> <question id="doc-formats"> <para>Ist die Dokumentation auch in anderen Formaten verfügbar? Zum Beispiel als einfacher Text (ASCII) oder als &postscript;?</para> </question> <answer> <para>Ja. Werfen Sie einen Blick auf das Verzeichnis <ulink url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/doc/</ulink> auf dem FreeBSD FTP-Server. Dort finden sie Dokumentation in vielen verschiedenen Format.</para> <para>Die Dokumentation wurde nach vielen verschiedenen Kriterien sortiert. Die Kriterien sind:</para> <itemizedlist> <listitem> <para>Der Name des Dokumentes, z.B. <literal>FAQ</literal> oder <literal>Handbuch</literal>.</para> </listitem> <listitem> <para>Die Sprache und der Zeichensatz, die in dem Dokument verwendet werden. Diese entsprechen den Anpassungen, die Sie auf Ihrem FreeBSD-System im Verzeichnis <filename>/usr/share/locale</filename> finden. Zurzeit werden die folgenden Sprachen und Zeichensätze benutzt:</para> <informaltable frame="none" pgwide="1"> <tgroup cols="2"> <thead> <row> <entry>Name</entry> <entry>Bedeutung</entry> </row> </thead> <tbody> <row> <entry><literal>en_US.ISO8859-1</literal></entry> <entry>US Englisch</entry> </row> <row> <entry><literal>es_ES.ISO8859-1</literal></entry> <entry>Spanisch</entry> </row> <row> <entry><literal>fr_FR.ISO8859-1</literal></entry> <entry>Französisch</entry> </row> <row> <entry><literal>de_DE.ISO8859-1</literal></entry> <entry>Deutsch</entry> </row> <row> <entry><literal>it_IT.ISO8859-15</literal></entry> <entry>Italienisch</entry> </row> <row> <entry><literal>ja_JP.eucJP</literal></entry> <entry>Japanisch (EUC kodiert)</entry> </row> <row> <entry><literal>ru_RU.KOI8-R</literal></entry> <entry>Russisch (KOI8-R kodiert)</entry> </row> <row> <entry><literal>zh_TW.Big5</literal></entry> <entry>Chinesisch (Big5 kodiert)</entry> </row> </tbody> </tgroup> </informaltable> <note> <para>Einige Dokumente sind nicht in allen Sprachen verfügbar.</para> </note> </listitem> <listitem> <para>Das Format des Dokumentes. Die Dokumentation wird in verschiedenen Formaten erzeugt, von denen jedes seine eigenen Vor- und Nachteile hat. Einige Formate lassen sich gut an einem Bildschirm lesen, während andere Formate dafür gedacht sind, ein ansprechendes Druckbild zu erzeugen. Das die Dokumentation in verschiedenen Formaten verfügbar ist, stellt sicher, dass unsere Leser die für sie relevanten Teile unabhängig vom Ausgabemedium (Bildschirm oder Papier) lesen können. Derzeit werden die folgenden Formate unterstützt:</para> <informaltable frame="none" pgwide="1"> <tgroup cols="2"> <thead> <row> <entry>Format</entry> <entry>Erklärung</entry> </row> </thead> <tbody> <row> <entry><literal>html-split</literal></entry> <entry>Viele kleine HTML-Dateien, die sich gegenseitig referenzieren.</entry> </row> <row> <entry><literal>html</literal></entry> <entry>Eine große HTML-Datei, die das komplette Dokument enthält.</entry> </row> <row> <entry><literal>pdb</literal></entry> <entry>Palm Pilot Datenbank für das Programm <ulink url="http://www.iSilo.com/">iSilo</ulink>.</entry> </row> <row> <entry><literal>pdf</literal></entry> <entry>Adobe's Portable Document Format</entry> </row> <row> <entry><literal>ps</literal></entry> <entry>&postscript;</entry> </row> <row> <entry><literal>rtf</literal></entry> <entry>Microsoft's Rich Text Format <footnote> <para>Die Seitennummern werden nicht automatisch aktualisiert, wenn Sie diese Datei in Word laden. Wenn Sie das Dokument geladen haben, müssen Sie Sie <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>A</keycap> </keycombo>, <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>End</keycap> </keycombo>, <keycap>F9</keycap> eingeben, um die Seitennummern aktualisieren zu lassen.</para> </footnote> </entry> </row> <row> <entry><literal>txt</literal></entry> <entry>Ganz normaler Text</entry> </row> </tbody> </tgroup> </informaltable> </listitem> <listitem> <para>Das zur Komprimierung verwendete Programm. Zur Zeit werden drei verschiedene Methoden benutzt.</para> <orderedlist> <listitem> <para>Wenn die Dokumentation im Format <literal>html-split</literal> vorliegt, werden die Dateien mit &man.tar.1; zusammengefasst. Die so entstandene <filename>.tar</filename> Datei wird dann mit einer der unten genannten Methoden komprimiert.</para> </listitem> <listitem> <para>Bei allen anderen Formaten existiert nur eine Datei mit dem Namen <filename>book.<replaceable>format</replaceable></filename> (z.B., <filename>book.pdb</filename>, <filename>book.html</filename>, und so weiter).</para> <para>Diese Dateien werden mit zwei verschiedenen Programmen komprimiert.</para> <informaltable frame="none" pgwide="1"> <tgroup cols="2"> <thead> <row> <entry>Programm</entry> <entry>Beschreibung</entry> </row> </thead> <tbody> <row> <entry><literal>zip</literal></entry> <entry>Das Zip-Format. Wenn Sie diese Dateien unter FreeBSD auspacken wollen, müssen sie vorher den Port <filename role="package">archivers/unzip</filename> installieren.</entry> </row> <row> <entry><literal>bz2</literal></entry> <entry>Das BZip2-Format. Es wird seltener als das Zip-Format benutzt, erzeugt aber normalerweise kleinere Archive. Sie müssen den Port <filename role="package">archivers/bzip2</filename> installieren, um diese Dateien entpacken zu können.</entry> </row> </tbody> </tgroup> </informaltable> <para>Ein Beispiel: Die mit BZip2 gepackte Version des Handbuchs im &postscript;-Format hat den Namen <filename>book.ps.bz2</filename> und ist im Verzeichnis <filename>handbook/</filename> zu finden.</para> </listitem> </orderedlist> </listitem> </itemizedlist> <para>Nachdem Sie das Format und das Kompressionsverfahren ausgewählt haben, müssen Sie sich entscheiden, ob Sie das Dokument in Form eines FreeBSD <emphasis>Package</emphasis> herunterladen möchten.</para> <para>Der Vorteil dieser Variante, dass Sie die Dokumentation mit normalen Tools wie &man.pkg.add.1; und &man.pkg.delete.1; verwalten können.</para> <para>Wenn Sie das Package herunterladen und installieren wollen, müssen Sie den richtigen Dateinamen kennen. Die Dateien liegen in einem separaten Verzeichnis mit dem Namen <filename>packages</filename> und werden nach dem Schema <filename><replaceable>Dokument-Name</replaceable>.<replaceable>Sprache</replaceable>.<replaceable>Zeichensatz</replaceable>.<replaceable>Format</replaceable>.tgz</filename> benannt.</para> <para>Ein Beispiel: Die englische Version der FAQ im PDF-Format ist in dem Package mit dem Namen <filename>faq.en_US.ISO8859-1.pdf.tgz</filename> enthalten.</para> <para>Sie können daher das englische PDF FAQ Package mit den folgenden Befehlen installieren.</para> <screen>&prompt.root; <userinput>pkg_add ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz</userinput></screen> <para>Danach können Sie mit &man.pkg.info.1; nachsehen, wo die Datei installiert wurde.</para> <screen>&prompt.root; <userinput>pkg_info -f faq.en_US.ISO8859-1.pdf</userinput> Information for faq.en_US.ISO8859-1.pdf: Packing list: Package name: faq.en_US.ISO8859-1.pdf CWD to /usr/share/doc/en_US.ISO8859-1/books/faq File: book.pdf CWD to . File: +COMMENT (ignored) File: +DESC (ignored)</screen> <para>Wie Sie sehen können, wurde die Datei <filename>book.pdf</filename> im Verzeichnis <filename>/usr/share/doc/en_US.ISO8859-1/books/faq</filename> installiert.</para> <para>Wenn sie die Packages nicht benutzen, müssen Sie die komprimierten selber herunterladen, auspacken und die richtigen Stellen kopieren.</para> <para>Wenn Sie zum Beispiel die mit &man.bzip2.1; gepackte <quote>split HTML</quote>Version der englischen FAQ herunterladen und installieren wollten, bräuchten Sie die Datei <filename>doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2</filename>. Um diese Datei herunterzuladen und auszupacken, wären die folgenden Schritte notwendig.</para> <screen>&prompt.root; <userinput>fetch ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2</userinput> &prompt.root; <userinput>gzip -d book.html-split.tar.bz2</userinput> &prompt.root; <userinput>tar xvf book.html-split.tar</userinput></screen> <para>Danach haben Sie eine Sammlung vieler kleiner <filename>.html</filename> Datei. Die wichtigste Datei hat Namen <filename>index.html</filename> und enthält das Inhaltsverzeichnis, eine Einleitung und Verweise auf die anderen Teile des Dokumentes. Falls notwendig, können Sie die diversen Dateien jetzt an ihren endgültigen Bestimmungsort verschieben oder kopieren.</para> </answer> </qandaentry> <qandaentry> <question id="mailing"> <para>Woher bekomme ich Informationen zu den FreeBSD Mailinglisten?</para> </question> <answer> <para>Vollständige Informationen finden Sie im <ulink url="&url.books.handbook;/eresources.html#ERESOURCES-MAIL">Handbucheintrag über Mailinglisten</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="newsgroups"> <para>Welche Newsgruppen existieren zu FreeBSD?</para> </question> <answer> <para>Sie finden alle Informationen hierzu im <ulink url="&url.books.handbook;/eresources-news.html">Handbucheintrag zu Newsgruppen</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="irc"> <para>Gibt es FreeBSD IRC (Internet Relay Chat) Kanäle?</para> </question> <answer> <para>Ja, die meisten großen IRC Netze bieten einen FreeBSD Chat-Channel:</para> <itemizedlist> <listitem> <para>Channel <literal>FreeBSD</literal> im <ulink url="http://www.efnet.org/index.php">EFNet</ulink> ist ein FreeBSD-Forum, aber gehen Sie nicht dorthin, um technische Unterstützung zu suchen, oder, um zu versuchen, die Leute dort dazu zu bringen, Ihnen dabei zu helfen, das mühselige Lesen von Manuals zu ersparen oder eigene Nachforschungen zu betreiben. Es ist in erster Linie ein Chat-Channel und die Themen dort umfassen Sex, Sport oder Kernwaffen ebensogut, wie FreeBSD. Sie wurden gewarnt! Der Channel ist auf dem Server <hostid>irc.chat.org</hostid> verfügbar.</para> </listitem> <listitem> <para>Der Channel <literal>#FreeBSDhelp</literal> im <ulink url="http://www.efnet.org/index.php">EFNet</ulink> hat sich dagegen auf die Unterstützung der Benutzer von FreeBSD spezialisiert. In diesem Channel sind Fragen deutlich willkommener als im Channel <literal>#FreeBSD</literal>.</para> </listitem> <listitem> <para>Der Channel <literal>#FreeBSD</literal> im <ulink url="http://www.dal.net/">DALNET</ulink> ist in den USA unter <hostid>irc.dal.net</hostid> und in Europa unter <hostid>irc.eu.dal.net</hostid> verfügbar.</para> </listitem> <listitem> <para>Der Channel <literal>#FreeBSDHelp</literal> im <ulink url="http://www.dal.net/">DALNET</ulink> ist in den USA unter <hostid>irc.dal.net</hostid> sowie in Europa unter <hostid>irc.eu.dal.net</hostid> verfügbar.</para> </listitem> <listitem> <para>Der Channel <literal>#FreeBSD</literal> im <ulink url="http://www.undernet.org/">UNDERNET</ulink> ist in den USA unter <hostid>us.undernet.org</hostid> und in Europa unter <hostid>eu.undernet.org</hostid> verfügbar. Es handelt sich hierbei um einen Hilfe-Channel, man wird Sie daher auf Dokumente verweisen, die Sie selbst lesen müssen.</para> </listitem> <listitem> <para>Der Channel <literal>#FreeBSD</literal> im <ulink url="http://www.rusnet.org.ru/">RUSNET</ulink> ist ein russischsprachiger Channel, der sich der Unterstützung von &os;-Anwendern verschrieben hat. Er ist auch ein guter Startpunkt für nichttechnische Diskussionen.</para> </listitem> </itemizedlist> <para>Alle diese Kanäle unterscheiden sich voneinander und sind nicht miteinander verbunden. Ebenso unterscheiden sich Ihre Chat-Stile, weshalb es sein kann, dass Sie zunächst alle Kanäle ausprobieren müssen, um den zu Ihrem Chat-Stil passenden zu finden. Hier gilt, was für <emphasis>jeden</emphasis> IRC-Verkehr gilt: falls sie sich leicht angegriffen fühlen oder nicht mit vielen jungen (und einigen älteren) Leuten, verbunden mit dem nutzlosen Gezanke umgehen können, dann ziehen Sie es gar nicht erst in Erwägung.</para> </answer> </qandaentry> <qandaentry> <question id="training"> <para>Gibt es Firmen, die Training und Support für FreeBSD anbieten?</para> </question> <answer> <para>DaemonNews bietet Training und Support für FreeBSD an. Weitergehende Informationen finden Sie in der <ulink url="http://www.bsdmall.com/">BSD Mall</ulink>.</para> <para>Die FreeBSD Mall bietet ebenfalls professionellen FreeBSD support an. Weitergehende Informationen finden Sie auf ihrer <ulink url="http://www.freebsdmall.com/">Webseite</ulink>.</para> <para>Wenn Ihre Firma oder Organisation ebenfalls Training und Support anbietet und hier genannt werden möchte, wenden Sie sich bitte an das FreeBSD Project.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="install"> <chapterinfo> <author> <firstname>Nik</firstname> <surname>Clayton</surname> <affiliation> <address><email>nik@FreeBSD.org</email></address> </affiliation> </author> </chapterinfo> <title>Installation</title> <qandaset> <qandaentry> <question id="floppy-download"> <para>Welche Dateien muss ich herunterladen, um FreeBSD zu bekommen?</para> </question> <answer> <para>Für 4.X werden zwei Floppy-Images benötigt: <filename>floppies/kernel.flp</filename> und <filename>floppies/mfsroot.flp</filename>. Diese Images müssen mit Hilfe von Werkzeugen wie <command>fdimage</command> oder &man.dd.1; auf Disketten kopiert werden. Seit &os; 5.3 weisen die Bootdisketten eine neue Struktur auf. Sie benötigen nun das Image <filename>floppies/boot.flp</filename> sowie alle Dateien mit den Namen <filename>floppies/kern<replaceable>X</replaceable></filename> (von denen es derzeit zwei gibt).</para> <para>Falls Sie selbst die einzelnen Distributionen herunterladen müssen (um z.B. von einem DOS-Dateisystem aus zu installieren), empfehlen wir, sich die folgenden Distributionen zu besorgen:</para> <itemizedlist> <listitem> <para>base/ (bin/ unter 4.X)</para> </listitem> <listitem> <para>manpages</para> </listitem> <listitem> <para>compat*</para> </listitem> <listitem> <para>doc</para> </listitem> <listitem> <para>src/ssys.*</para> </listitem> </itemizedlist> <para>Vollständige Instruktionen für dieses Vorgehen und ein wenig mehr zur Installation generell finden Sie im <ulink url="&url.books.handbook;/install.html">Handbucheintrag zur Installation von FreeBSD</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="floppy-image-too-large"> <para>Was soll ich tun, wenn das Floppy-Image nicht auf eine Diskette passt?</para> </question> <answer> <para>Eine 3,5-Zoll (1,44MB) Diskette kann 1474560 Byte an Daten fassen und das Boot-Image ist exakt 1474560 Byte groß.</para> <para>Häufige Fehler bei der Erstellung der Boot-Diskette sind:</para> <itemizedlist> <listitem> <para>Bei der Benutzung von <acronym>FTP</acronym> das Floppy-Image nicht im <emphasis>Binär</emphasis>-Modus herunterzuladen.</para> <para>Einige FTP-Clients benutzen als Voreinstellung den <emphasis>ASCII</emphasis>-Modus und versuchen, alle Zeilenendezeichen an das Zielsystem anzupassen. Dadurch wird das Boot-Image in jedem Fall unbrauchbar. Überprüfen Sie die Größe des heruntergeladenen Boot-Images: falls sie nicht <emphasis>exakt</emphasis> mit der auf dem Server übereinstimmt, hat das Herunterladen nicht richtig funktioniert.</para> <para>Abhilfe: geben Sie <emphasis>binary</emphasis> an der FTP-Eingabeaufforderung ein, nach dem Sie mit dem Server verbunden sind und bevor Sie das Image herunterladen.</para> </listitem> <listitem> <para>Die Benutzung des DOS-Befehls <command>copy</command> (oder eines entsprechendes Werkzeugs der grafischen Benutzeroberfläche), um das Boot-Image auf die Diskette zu übertragen.</para> <para>Programme wie <command>copy</command> sind hier unbrauchbar, weil das Image zur direkten Übertragung erstellt wurde. Das Image stellt den gesamten Disketteninhalt dar, Spur für Spur, und nicht eine gewöhnliche Datei. Sie müssen es <quote>roh</quote> mit speziellen Werkzeugen (z.B. <command>fdimage</command> oder <command>rawrite</command>) übertragen, wie es in der <ulink url="&url.books.handbook;/install.html">Installationsanleitung zu FreeBSD</ulink> beschrieben ist.</para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="install-instructions-location"> <para>Wo befinden sich die Instruktionen zur Installation von FreeBSD?</para> </question> <answer> <para>Installationsanleitungen finden Sie im <ulink url="&url.books.handbook;/install.html">Handbucheintrag zur Installation von FreeBSD</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="need-to-run"> <para>Was benötige ich zum Betrieb von FreeBSD?</para> </question> <answer> <para>Für &os;-Versionen vor 5.X benötigen Sie mindestens einen 386er Prozessor mit mindestens 5 MB Hauptspeicher und mindestens 60 MB Festplattenspeicher. Für die Installation von &os; ist dabei mehr Hauptspeicher als für den eigentlichen Betrieb nötig, daher sollten 16 RAM als Minimum für ein Standardsystem ausreichen.</para> <para>Der Betrieb von &os; 5.X und neuer erfordert mindestens einen 486er Prozessor mit mindestens 24 MB RAM sowie mindestens 150 MB an Festplattenspeicher.</para> <para>Alle &os;-Versionen laufen mit einer einfachen MDA-Grafikkarte, für X11R6 benötigen Sie allerdings eine VGA- oder eine bessere Videokarte.</para> <para>Lesen Sie auch den <link linkend="hardware">Abschnitt Hardwarekompatibilität</link>.</para> </answer> </qandaentry> <qandaentry> <question id="four-meg-ram-install"> <para>Ich besitze nur 4 MB Hauptspeicher. Kann ich FreeBSD installieren?</para> </question> <answer> <para>Für die Installation von FreeBSD 4.X benötigen Sie mindestens 5MB RAM, seit &os; 5.X mindestens 8 MB für die Installation eines neuen Systems.</para> <para>Alle FreeBSD-Versionen vor 5.X <emphasis>laufen</emphasis> zwar mit 4MB Hauptspeicher, lediglich ihr Installationsprogramm läuft nicht mit 4MB. Wenn Sie möchten, können Sie für den Installationsvorgang zusätzlichen Hauptspeicher hinzufügen, den Sie nach der Installation wieder entfernen. Alternativ können Sie Ihre Platte in ein System mit genügend Hauptspeicher transferieren und die Platte nach erfolgreicher Installation wieder in Ihr System einbauen.</para> <para>Wenn Sie nur über 4 MB Hauptspeicher verfügen, müssen Sie einen angepassten Kernel erzeugen. Irgend jemand hat es sogar geschafft, mit 2 MB RAM zu booten, allerdings war dieses System nahezu unbrauchbar.</para> </answer> </qandaentry> <qandaentry> <question id="custom-boot-floppy"> <para>Wie kann ich eine angepasste Installationsdiskette erstellen?</para> </question> <answer> <para>Zurzeit gibt es keine Möglichkeit, <emphasis>nur</emphasis> die angepassten Installationsdisketten zu erstellen. Sie müssen sich eine ganz neues Release erstellen, das Ihre Installationsdiskette enthält.</para> <para>Wenn Sie eine modifizierte Ausgabe erstellen wollen, finden Sie eine Anleitung im Artikel <ulink url="&url.articles.releng.en;/article.html"> FreeBSD Release Engineering</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="multiboot"> <para>Kann ich mehr als ein Betriebssystem auf meinem PC unterbringen?</para> </question> <answer> <para>Sehen Sie sich <ulink url="&url.articles.multi-os.en;/article.html">Die Multi-OS-Seite</ulink> an.</para> </answer> </qandaentry> <qandaentry> <question id="windows-coexist"> <para>Kann &windows; neben FreeBSD existieren?</para> </question> <answer> <para>Installieren Sie zuerst &windows;, dann FreeBSD. Der Bootmanager von FreeBSD kann dann entweder &windows; oder FreeBSD booten. Falls Sie &windows; nach FreeBSD installieren, wird es, ohne zu fragen, Ihren Bootmanager überschreiben. Lesen Sie den nächsten Abschnitt, falls das passieren sollte.</para> </answer> </qandaentry> <qandaentry> <question id="win95-damaged-boot-manager"> <para>&windows; hat meinen Bootmanager zerstört! Wie stelle ich ihn wieder her?</para> </question> <answer> <para>Es gibt drei Möglichkeiten, den FreeBSD-Bootmanager neu zu installieren:</para> <itemizedlist> <listitem> <para>Unter DOS wechseln Sie in das Verzeichnis tools/ Ihrer FreeBSD-Distribution und suchen nach <filename>bootinst.exe</filename>. Rufen sie es so auf:</para> <screen><prompt>...\TOOLS></prompt> <userinput>bootinst.exe boot.bin</userinput></screen> <para>und der Bootmanager wird neu installiert.</para> </listitem> <listitem> <para>Booten Sie FreeBSD wieder mit der Bootdiskette und wählen Sie den Menüeintrag Custom Installation. Wählen Sie Partition. Wählen Sie das Laufwerk, auf dem sich der Bootmanager befand (wahrscheinlich der erste Eintrag) und wenn Sie in den Partitioneditor gelangen, wählen Sie als aller erstes (nehmen Sie z.B. keine Änderungen vor) (W)rite. Sie werden nach einer Bestätigung gefragt, antworten ja und vergessen Sie nicht, in der Bootmanager-Auswahl <quote>Boot Manager</quote> auszuwählen. Hierdurch wird der Bootmanager wieder auf die Festplatte geschrieben. Verlassen Sie nun das Installationsmenü und rebooten wie gewöhnlich von der Festplatte.</para> </listitem> <listitem> <para>Booten Sie FreeBSD wieder mit der Bootdiskette (oder der CDROM) und wählen Sie den Menüpunkt <quote>Fixit</quote>. Wählen Sie die für Sie passende Option, entweder die Fixit-Diskette oder die CD Nummer 2 (die Option <quote>live</quote> Filesystem). Wechseln Sie zur Fixit-Shell und geben Sie den folgenden Befehl ein:</para> <screen><prompt>Fixit#</prompt> <userinput>fdisk -B -b /boot/boot0 <replaceable>bootdevice</replaceable></userinput></screen> <para>Als <replaceable>bootdevice</replaceable> müssen Sie das von Ihrem System verwendete Gerät angeben, z.B. <devicename>ad0</devicename> (erste IDE-Platte), <devicename>ad4</devicename> (erste IDE-Platte an einem zusätzlichen Controller), <devicename>da0</devicename> (erste SCSI-Platte), usw.</para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="boot-on-thinkpad"> <para>Mein IBM Thinkpad Modell A, T oder X, hängt sich auf, wenn ich FreeBSD zum ersten Mal starte. Was soll ich machen?</para> </question> <answer> <para>Ein Fehler in den ersten BIOS-Versionen dieser Geräte führt dazu, dass sie die von FreeBSD genutzte Partition für eine Suspend-To-Disk-Partition halten. Wenn das BIOS dann versucht, diese Partition auszuwerten, hängt sich das System auf.</para> <para>Laut IBM <footnote> <para>In einer Mail von Keith Frechette <email>kfrechet@us.ibm.com</email>.</para> </footnote> wurde der Fehler wurde in den folgenden BIOS-Versionen behoben:</para> <informaltable frame="none" pgwide="1"> <tgroup cols="2"> <thead> <row> <entry>Gerät</entry> <entry>BIOS Version</entry> </row> </thead> <tbody> <row> <entry>T20</entry> <entry>IYET49WW oder neuer</entry> </row> <row> <entry>T21</entry> <entry>KZET22WW oder neuer</entry> </row> <row> <entry>A20p</entry> <entry>IVET62WW oder neuer</entry> </row> <row> <entry>A20m</entry> <entry>IWET54WW oder neuer</entry> </row> <row> <entry>A21p</entry> <entry>KYET27WW oder neuer</entry> </row> <row> <entry>A21m</entry> <entry>KXET24WW oder neuer</entry> </row> <row> <entry>A21e</entry> <entry>KUET30WW</entry> </row> </tbody> </tgroup> </informaltable> <para>Es ist möglich, dass neuere Version des IBM BIOS den Fehler wieder enthalten. <ulink url="http://docs.freebsd.org/cgi/mid.cgi?20010427133759.A71732"> Dieser Beitrag</ulink> von Jacques Vidrine auf der Mailingliste &a.mobile; beschreibt eine Technik, die Ihnen weiterhelfen könnte, wenn Ihr IBM Laptop mit FreeBSD nicht bootet und Sie eine neuere oder ältere BIOS-Version einspielen können.</para> <para>Wenn Ihr Thinkpad über eine ältere BIOS-Version verfügt und Sie das BIOS nicht aktualisieren können, ist eine der möglichen Lösungen, FreeBSD zu installieren, die Partitions-ID zu ändern und danach neue Bootblocks zu installieren, die mit der geänderten ID umgehen können.</para> <para>Zunächst müssen Sie die Maschine so weit wiederherstellen, dass sie über den Selbst-Test hinauskommt. Dazu ist es erforderlich, dass das System beim Start keine Partitions-ID auf seiner primären Festplatte findet. Eine Variante ist, die Platte auszubauen und vorübergehend in einem älteren Thinkpad (z.B. dem Thinkpad 600) oder (mit einem passenden Adapter) in einen normalen PC einzubauen. Sobald dies erfolgt ist, können Sie die FreeBSD-Partition löschen und die Festplatte wieder in das Thinkpad einbauen. Das Thinkpad sollte jetzt wieder starten können.</para> <para>Danach können Sie mit der nachfolgend beschriebenen Anleitung eine funktionsfähige FreeBSD-Installation erhalten.</para> <procedure> <step> <para>Beschaffen Sie sich <filename>boot1</filename> und <filename>boot2</filename> von <ulink url="http://people.FreeBSD.org/~bmah/ThinkPad/"></ulink>. Legen Sie diese Dateien so ab, dass Sie während der Installation darauf zugreifen können.</para> </step> <step> <para>Installieren Sie ganz wie gewohnt FreeBSD auf dem Thinkpad. Allerdings dürfen Sie den <quote>Dangerously Dedicated</quote>-Modus <emphasis>nicht benutzen</emphasis>. Nach dem Abschluss der Installation dürfen Sie die Maschine <emphasis>nicht neu starten</emphasis>.</para> </step> <step> <para>Wechseln Sie zur <quote>Emergency Holographic Shell</quote> ( <keycombo action="simul"> <keycap>Alt</keycap> <keycap>F4</keycap> </keycombo>) oder starten Sie eine <quote>fixit</quote> Shell.</para> </step> <step> <para>Benutzen Sie &man.fdisk.8;, um die Partitions-ID von FreeBSD von <literal>165</literal> in <literal>166</literal> zu ändern (dieser Wert wird von OpenBSD benutzt).</para> </step> <step> <para>Kopieren Sie die Dateien <filename>boot1</filename> und <filename>boot2</filename> auf die lokale Festplatte.</para> </step> <step> <para>Installieren Sie <filename>boot1</filename> und <filename>boot2</filename> mit &man.disklabel.8; auf die FreeBSD-Slice.</para> <screen>&prompt.root; <userinput>disklabel -B -b boot1 -s boot2 ad0s<replaceable>n</replaceable></userinput></screen> <para>Setzen Sie für <replaceable>n</replaceable> die Nummer der Slice ein, auf der sie FreeBSD installiert haben.</para> </step> <step> <para>Starten Sie das System neu. Am Boot-Prompt sollten Sie die Auswahl <literal>OpenBSD</literal> erhalten. Damit wird in Wirklichkeit FreeBSD gestartet.</para> </step> </procedure> <para>Was Sie machen müssen, wenn Sie FreeBSD und OpenBSD parallel installieren wollen, sollten Sie zu Übungszwecken einfach einmal selbst herausfinden.</para> </answer> </qandaentry> <qandaentry> <question id="install-bad-blocks"> <para>Kann ich FreeBSD auf einer Festplatte mit beschädigten Blöcken installieren?</para> </question> <answer> <para>Prinzipiell ja. Allerdings ist das keine gute Idee.</para> <para>Wenn Ihnen bei einer modernen IDE-Platte defekte Sektoren gemeldet werden, wird die Platte mit großer Wahrscheinlichkeit innerhalb kurzer Zeit vollständig ausfallen, da die Meldung ein Zeichen dafür ist, dass die für die Korrektur reservierten Sektoren bereits verbraucht wurden. Wir raten Ihnen, die Platte auszutauschen.</para> <para>Falls Sie ein SCSI-Laufwerk mit beschädigten Blöcken besitzen, lesen Sie <link linkend="awre">diese Antwort</link>.</para> </answer> </qandaentry> <qandaentry> <question id="boot-floppy-strangeness"> <para>Wenn ich von der Installationsdiskette boote, geschehen merkwürdige Dinge! Was sollte ich tun?</para> </question> <answer> <para>Falls Sie beobachten, dass ihr Rechner sich bis zum Stillstand abmüht oder spontan rebootet, während Sie versuchen, von der Installationsdiskette zu booten, sollten Sie sich drei Fragen stellen:</para> <orderedlist> <listitem> <para>Haben Sie eine brandneue, frisch formatierte, fehlerfreie Diskette benutzt (günstigerweise eine brandneue, direkt aus dem Karton und nicht eine Diskette aus einem Magazin, das schon seit drei Jahren unter Ihrem Bett lag)?</para> </listitem> <listitem> <para>Haben Sie das Floppy-Image im Binär- (oder Image) Modus heruntergeladen? (Schämen Sie sich nicht. Sogar die besten unter uns haben wenigstens einmal Binärdateien versehentlich im ASCII-Modus heruntergeladen!)</para> </listitem> <listitem> <para>Falls Sie &windows; 95 oder &windows; 98 benutzen, haben Sie es heruntergefahren und <command>fdimage</command> bzw. <command>rawrite</command> in einfachem, reinem DOS neu gestartet? Es scheint, dass diese Betriebssysteme Programme stören, die direkt auf Hardware schreiben, wie es das Erstellungsprogramm für die Diskette tut; selbst bei der Ausführung des Programms in einem DOS-Fenster in der grafischen Benutzeroberfläche kann dieses Problem auftreten.</para> </listitem> </orderedlist> <para>Es wurde auch darüber berichtet, dass &netscape; Probleme beim Herunterladen der Bootdisketten verursacht. Es ist also wahrscheinlich besser, einen anderen FTP-Client zu benutzen.</para> </answer> </qandaentry> <qandaentry> <question id="no-install-cdrom"> <para>Ich habe zur Installation von meinem ATAPI CDROM gebootet, aber das Installationsprogramm sagt mir, dass es kein CDROM gefunden hat. Was geht hier ab?</para> </question> <answer> <para>Dieses Problem wird üblicherweise durch ein falsch konfiguriertes CDROM verursacht. Bei vielen PCs ist das CDROM der Slave am zweiten IDE-Controller, ein Master ist nicht vorhanden. Laut Spezifikation ist diese Konfiguration illegal, aber &windows; verletzt die Spezifikation und das BIOS ignoriert sie, wenn es von einem CDROM booten soll. Daher konnten Sie zwar vom CDROM booten, während FreeBSD es nicht für die Installation benutzen kann.</para> <para>Um dieses Problem zu lösen, müssen Sie entweder das CDROM als Master an den IDE-Controller anschließen oder dafür sorgen, dass an dem vom CDROM genutzten IDE-Controller das CD-ROM als Slave und ein anderes Gerät als Master angeschlossen ist.</para> </answer> </qandaentry> <qandaentry> <question id="install-PLIP"> <para>Kann ich auf meinem Laptop per PLIP (Parallel Line IP) installieren?</para> </question> <answer> <para>Ja, Sie brauchen dazu nur ein ganz normales Laplink-Kabel. Weitere Informationen zum Thema Netzwerke am Druckerport finden sie im Kapitel <ulink url="&url.books.handbook;/network-plip.html">PLIP</ulink> des Handbuchs.</para> </answer> </qandaentry> <qandaentry> <question id="geometry"> <para>Welche Geometrie sollte ich für ein Festplattenlaufwerk verwenden?</para> </question> <answer> <note> <para>Unter der <quote>Geometrie</quote> einer Festplatte verstehen wir die Anzahl Zylinder, Schreib-/Leseköpfen und Sektoren/Spur auf einer Festplatte. Im folgenden wird dafür der Übersichtlichkeit halber der Begriff C/H/S verwendet. Das BIOS des PCs berechnet mit diesen Angaben, auf welche Bereiche der Festplatte es für Schreib-/Lesezugriffe zugreifen muss).</para> </note> <para>Aus einigen Gründen scheint dies gerade bei frischgebackenen Systemadministratoren für sehr viel Verwirrung zu sorgen. Zunächst einmal ist die <emphasis>physikalische</emphasis> Geometrie eines SCSI-Laufwerks vollkommen irrelevant, da FreeBSD mit Blöcken arbeitet. Tatsächlich gibt es <quote>die</quote> physikalische Geometrie nicht, da die Sektordichte auf einer Festplatte variiert. Was die Hersteller als die <quote>wahre</quote> physikalische Geometrie bezeichnen, ist im allgemeinen die Geometrie, die aufgrund ihrer Ergebnisse im geringsten ungenutzten Speicher resultiert. Bei IDE-Platten arbeitet FreeBSD mit C/H/S-Angaben, aber alle modernen Laufwerke wandeln diese intern ebenfalls in Blocknummern um.</para> <para>Wichtig ist nur die <emphasis>logische</emphasis> Geometrie. Das BIOS kann die logische Geometrie der Festplatte abfragen; die erhaltenen Daten werden dann vom BIOS bei Zugriffen auf die Festplatte genutzt. Da FreeBSD das BIOS benutzt, während es bootet, ist es sehr wichtig, dass diese Angaben richtig sind. Insbesondere müssen alle Betriebssysteme mit derselben Geometrie arbeiten, falls Sie mehr als ein Betriebssystem auf einer Festplatte haben. Andernfalls werden Sie ernsthafte Bootprobleme bekommen!</para> <para>Bei SCSI-Festplatten hängt die zu verwendende Geometrie davon ab, ob der Extended Translation Support auf Ihrem Controller eingeschaltet ist (oft auch als <quote>Unterstützung für DOS-Platten >1GB</quote> oder ähnlich bezeichnet). Falls sie ausgeschaltet ist, benutzen Sie <replaceable>N</replaceable> Zylinder, 64 Köpfe und 32 Sektoren/Spur, wobei <replaceable>N</replaceable> die Kapazität der Festplatte in MB ist. Zum Beispiel sollten für eine 2GB Festplatte 2048 Zylinder, 64 Köpfe und 32 Sektoren/Spur angegeben werden.</para> <para>Falls sie <emphasis>eingeschaltet</emphasis> ist (was oft der Fall ist, um bestimmte Einschränkungen von &ms-dos; zu umgehen) und die Plattenkapazität mehr als 1GB beträgt, benutzen Sie M Zylinder, 63 Sektoren/Spur (<emphasis>nicht</emphasis> 64) und 255 Köpfe, wobei <literal>M</literal> der Plattenkapazität in MB, dividiert durch 7,844238 entspricht (!). Also würde unsere 2GB Beispielplatte 261 Zylinder, 63 Sektoren/Spur und 255 Köpfe haben.</para> <para>Falls Sie sich hier nicht sicher sind oder FreeBSD während der Installation die Geometrie nicht richtig erkennt, hilft es normalerweise, eine kleine DOS-Partition auf der Festplatte anzulegen. Das BIOS sollte dann in der Lage sein, die richtige Geometrie zu erkennen. Sie können die Partition jederzeit im Partitioneditor entfernen, falls Sie sie nicht behalten möchten. Allerdings kann Sie ganz nützlich sein, um Netzwerkkarten zu programmieren und ähnliches.</para> <para>Alternativ können Sie das frei verfügbare Programm <filename>pfdisk.exe</filename> verwenden. Sie finden es im Unterverzeichnis <filename>tools</filename> auf der FreeBSD-CDROM und allen FreeBSD FTP-Servern). Mit diesem Programm können Sie herausfinden, welche Geometrie die anderen Betriebssysteme auf der Festplatte verwenden. Diese Geometrie können Sie im Partitioneditor eingeben.</para> </answer> </qandaentry> <qandaentry> <question id="disk-divide-restrictions"> <para>Gibt es irgendwelche Einschränkungen, wie ich die Festplatte aufteilen darf?</para> </question> <answer> <para>Ja. Sie müssen sicherstellen, dass Ihre Rootpartition innerhalb der ersten 1024 Zylinder liegt, damit das BIOS den Kernel von Ihr booten kann. (Beachten Sie, dass es sich um eine Einschränkung durch das BIOS des PCs handelt und nicht durch FreeBSD).</para> <para>Für ein SCSI-Laufwerk bedeutet dies normalerweise, dass sich die Rootpartition in den ersten 1024MB befindet (oder in den ersten 4096MB, falls die Extended Translation eingeschaltet ist - siehe die vorherige Frage). Der entsprechende Wert für IDE ist 504MB.</para> </answer> </qandaentry> <qandaentry> <question id="disk-manager"> <para>Verträgt sich FreeBSD mit Plattenmanagern?</para> </question> <answer> <para>FreeBSD erkennt den Ontrack Plattenmanager und berücksichtigt ihn. Andere Plattenmanager werden nicht unterstützt.</para> <para>Falls Sie die Festplatte nur mit FreeBSD benutzen wollen, brauchen Sie keinen Plattenmanager. Wenn Sie Sie die Platte einfach in der vom BIOS maximal unterstützten Größe (normalerweise 504 Megabyte) konfigurieren, sollte FreeBSD erkennen, wie viel Platz Sie tatsächlich haben. Falls Sie eine alte Festplatte mit einem MFM-Controller verwenden, könnte es sein, dass Sie FreeBSD explizit angeben müssen, wie viele Zylinder es benutzen soll.</para> <para>Falls Sie die Festplatte mit FreeBSD und einem anderen Betriebssystem benutzen wollen, sollten Sie auch in der Lage sein, ohne einen Plattenmanager auszukommen: stellen sie einfach sicher, dass sich die Bootpartition von FreeBSD und der Bereich für das andere Betriebssystem in den ersten 1024 Zylindern befinden. Eine 20 Megabyte Bootpartition sollte völlig genügen, wenn Sie einigermaßen sorgfältig arbeiten.</para> </answer> </qandaentry> <qandaentry> <question id="missing-os"> <para>Beim ersten Booten von FreeBSD erscheint <errorname>Missing Operating System</errorname>. Was ist passiert?</para> </question> <answer> <para>Dies ist ein klassischer Fall von Konflikten bei den verwendeten <link linkend="geometry">Plattengeometrien</link> von FreeBSD und DOS oder anderen Betriebssystemen. Sie werden FreeBSD neu installieren müssen. Bei Beachtung obiger Instruktionen wird in den meisten Fällen alles funktionieren.</para> </answer> </qandaentry> <qandaentry> <question id="stop-at-boot-manager"> <para>Wieso komme ich nicht weiter als bis zum <literal>F?</literal>-Prompt des Bootmanagers?</para> </question> <answer> <para>Dies ist ein weiteres Symptom für das bereits in der vorherigen Frage beschriebene Problem. Ihre Einstellungen zur Geometrie im BIOS und in FreeBSD stimmen nicht überein! Falls Ihr Controller oder BIOS Zylinderumsetzung (oft als <quote>>1GB drive support</quote> bezeichnet), probieren Sie eine Umsetzung dieser Einstellung und Neuinstallation von FreeBSD.</para> </answer> </qandaentry> <qandaentry> <question id="need-complete-sources"> <para>Muss ich den vollständigen Quellcode installieren?</para> </question> <answer> <para>Im allgemeinen nicht. Wir empfehlen jedoch dringend die Installation des <literal>base</literal> Source-Kit, das viele der hier erwähnten Dateien enthält und des <literal>sys</literal> (Kernel) Source-Kit, das den Quellcode für den Kernel enthält. Außer dem Programm zur Konfiguration des Kernels (&man.config.8;) gibt es im System nichts, zu dessen Funktion der Quellcode erforderlich ist. Mit Ausnahme der Kernelquellen ist unsere Build-Struktur so aufgebaut, dass Sie den Quellcode von überall her per NFS read-only mounten und dennoch neue Binaries erstellen können. (Wegen der Einschränkung bezüglich der Kernelquellen empfehlen wir, diese nicht direkt nach <filename>/usr/src</filename> zu mounten, sondern irgendwoanders hin mit passenden symbolischen Links, um die Toplevel-Struktur des Quellbaumes zu duplizieren.)</para> <para>Die Quellen verfügbar zu haben und zu wissen, wie man ein System mit ihnen erstellt, wird es Ihnen wesentlich einfacher machen, zu zukünftigen Ausgaben von FreeBSD zu wechseln.</para> <para>Um einen Teil der Quellen auszuwählen, verwenden Sie den Menüpunkt Custom, wenn Sie sich im Menü Distributions des Systeminstallationstools befinden.</para> </answer> </qandaentry> <qandaentry> <question id="need-kernel"> <para>Muss ich einen Kernel erstellen?</para> </question> <answer> <para>Ursprünglich war die Erstellung eines neuen Kernels bei fast jeder Installation von FreeBSD erforderlich, aber neuere Ausgaben haben von der Einführung weitaus benutzerfreundlicherer Kernelkonfigurationswerkzeuge profitiert. Unter 4.X und älter geben Sie am FreeBSD Boot-Prompt (boot:) <option>-c</option> ein, um in ein visuelles Konfigurationsmenü zu gelangen. Dieses Programm ermöglicht Ihnen die Konfiguration der Kerneleinstellungen für die gebräuchlichsten ISA-Karten. Ab &os; 5.X wurde dieses Konzept durch die deutlich flexibleren <quote>hints</quote> ersetzt, die am Loader-Prompt eingegeben werden können.</para> <para>Es kann dennoch sinnvoll sein, einen neuen Kernel zu erstellen, der nur die benötigten Treiber enthält, um ein wenig Hauptspeicher zu sparen, für die meisten Systeme ist dies aber nicht mehr länger erforderlich.</para> </answer> </qandaentry> <qandaentry> <question id="password-encryption"> <para>Soll ich DES, Blowfisch oder MD5 zur Verschlüsselung der Passwörter benutzen?</para> </question> <answer> <para>FreeBSD benutzt standardmäßig <emphasis>MD5</emphasis> zur Verschlüsselung der Passwörter. Es wird angenommen, dass diese Methode sicherer ist als das traditionell benutzte Verfahren, das auf dem <emphasis>DES</emphasis> Algorithmus basierte. Es ist immer noch möglich, DES-Passwörter zu benutzen, wenn Sie die Datei mit den Passwörtern mit älteren System austauschen müssen. Ältere System verstehen meist nur das unsichere Verfahren, dieses steht Ihnen zur Verfügung, wenn Sie mit sysinstall die <quote>crypto</quote> Distribution installieren. Sie können auch die crypto Sourcecodes installieren, wenn Sie Ihr System über die Sourcen aktualisieren. Die crypto Bibliotheken erlauben es Ihnen das sichere Blowfisch Verfahren für die Verschlüsselung der Passwörter einzusetzen. Das für neue Passwörter benutzte Verschlüsselungsverfahren wird über die Einstellung <quote>passwd_format</quote> in <filename>/etc/login</filename> festgelegt. Die möglichen Werte sind entweder <quote>des</quote>, <quote>blf</quote> (falls sie zur Verfügung stehen) oder <quote>md5</quote>. Weitere Informationen über die Einstellungen für den Login erhalten Sie in &man.login.conf.5;.</para> </answer> </qandaentry> <qandaentry> <question id="boot-floppy-hangs"> <para>Woran kann es liegen, dass ich zwar von der Diskette booten kann, aber nicht weiter als bis zur Meldung <literal>Probing Devices...</literal> komme?</para> </question> <answer> <para>Falls Sie ein IDE &iomegazip;- oder &jaz;-Laufwerk eingebaut haben, entfernen Sie es und versuchen Sie es erneut. Solche Laufwerke könnten dem Bootvorgang stören. Nach der Installation des Systems können Sie das Laufwerk wieder einbauen. Dieser Fehler wird hoffentlich in einer späteren Version behoben werden.</para> </answer> </qandaentry> <qandaentry> <question id="panic-on-install-reboot"> <para>Wieso wird mit der Fehler <errorname>panic: cant mount root</errorname> gemeldet, wenn ich das System nach der Installation reboote?</para> </question> <answer> <para>Dieser Fehler beruht auf Unstimmigkeiten zwischen den Festplatteninformationen im Bootblock und denen im Kernel. Der Fehler tritt normalerweise auf IDE-Systemen mit zwei Festplatten auf, bei denen die Festplatten als Master- oder Single-Device auf separaten IDE-Controllern angeschlossen sind und FreeBSD auf der Platte am zweiten Controller installiert wurde. Der Bootblock vermutet, dass das System auf ad0 (der zweiten BIOS-Platte) installiert ist, während der Kernel der ersten Platte auf dem zweiten Controller die Gerätekennung ad2 zuteilt. Der Kernel versucht nach der Geräteüberprüfung die vom Bootblock angenommene Bootdisk ad0 zu mounten, obwohl sie in Wirklichkeit ad2 heißt - und scheitert.</para> <para>Tun Sie folgendes, um dieses Problem zu beheben:</para> <orderedlist> <listitem> <para>Rebooten Sie das System und drücken Sie <keycap>Enter</keycap>, wenn die Meldung <literal>Booting kernel in 10 seconds; hit [Enter] to interrupt</literal> erscheint. Dadurch gelangen Sie in den Boot Loader.</para> <para>Geben Sie nun <literal>root_disk_unit="<replaceable>disk_number</replaceable>"</literal> ein. <literal>disk_number</literal> hat den Wert <literal>0</literal>, wenn FreeBSD auf dem Master des ersten IDE-Controllers installiert wurde; <literal>1</literal>, wenn FreeBSD auf dem Slave des ersten IDE-Controllers installiert wurde; <literal>2</literal>, wenn FreeBSD auf dem Master des zweiten IDE-Controllers installiert wurde; und <literal>3</literal>, wenn FreeBSD auf dem Slave des zweiten IDE-Controllers installiert wurde.</para> <para>Nach der Eingabe von <literal>boot</literal> sollte Ihr System jetzt korrekt starten.</para> <para>Damit Sie dieses Ritual nicht bei jedem Start des Systems durchführen müssen, sollten Sie die Zeile <literal>root_disk_unit="<replaceable>disk_number</replaceable>"</literal> in die Datei <filename>/boot/loader.conf.local</filename> eintragen.</para> </listitem> <listitem> <para>Stellen Sie eine ununterbrochene Folge der Festplatten her, indem Sie die FreeBSD-Platte am ersten IDE-Controller anschließen.</para> </listitem> </orderedlist> </answer> </qandaentry> <qandaentry> <question id="memory-limits"> <para>Gibt es eine Hauptspeicherbegrenzung?</para> </question> <answer> <para>Bei einer &i386;-Standardinstallation werden maximal 4 Gigabyte Hauptspeicher unterstützt. Seit &os; 4.9 und 5.1 wird auch ein größerer Hauptspeicher unterstützt. Dazu müssen Sie die zusätzliche Option PAE (&man.pae.4;) in Ihren Kernel kompilieren:</para> <programlisting>options PAE</programlisting> <para>&os;/pc98 unterstützt maximal 4 GB Hauptspeicher, daher kann PAE auf diesen Systemen nicht verwendet werden. Unter &os;/alpha hängt dieses Limit von der verwendeten Hardware ab - lesen Sie daher die Alpha Hardware Release Notes für weitere Informationen. Sonstige von &os; unterstützte Architekturen haben ein sehr viel höheres theoretisches Speicherlimit (viele Terabytes).</para> </answer> </qandaentry> <qandaentry> <question id="ffs-limits"> <para>Wo liegen die Grenzen für ffs-Dateisysteme?</para> </question> <answer> <para>Theoretisch liegt das Limit für ffs-Dateisysteme bei 8 Terabyte (2G-Blöcke) oder 16TB für die Standard-Blockgröße von 8k. In der Praxis setzt die Software das Limit auf 1 Terabyte herab, aber durch Modifikationen sind auch Dateisysteme mit 4 Terabyte möglich (und existieren auch).</para> <para>Die maximale Größe einer einzelnen ffs-Datei liegt bei ungefähr 1G Blöcken (4TB, falls die Blockgröße 4k beträgt).</para> <table> <title>Maximale Dateigröße</title> <tgroup cols="3"> <thead> <row> <entry>Blockgröße</entry> <entry>geht</entry> <entry>sollte gehen</entry> </row> </thead> <tbody> <row> <entry>4K</entry> <entry>4T-1</entry> <entry>>4T</entry> </row> <row> <entry>8K</entry> <entry>>32G</entry> <entry>32T-1</entry> </row> <row> <entry>16K</entry> <entry>>128G</entry> <entry>32T-1</entry> </row> <row> <entry>32K</entry> <entry>>512G</entry> <entry>64T-1</entry> </row> <row> <entry>64K</entry> <entry>>2048G</entry> <entry>128T-1</entry> </row> </tbody> </tgroup> </table> <para>Wenn die im Dateisystem verwendete Blockgröße 4k beträgt, wird mit dreifacher Indirektion gearbeitet und die Limitierung sollte durch die höchste Blocknummer erfolgen, die mit dreifacher Indirektion dargestellt werden kann (ungefähr 1k^3 + 1k^2 + 1k). In Wirklichkeit liegt das Limit aber bei der (falschen) Anzahl von 1G-1 Blocknummern im Dateisystem. Die maximale Anzahl der Blocknummern müsste 2G-1 sein. Es gibt einige Fehler für Blocknummern nahe 2G-1, aber solche Blocknummern sind bei einer Blockgröße von 4k unerreichbar.</para> <para>Bei Blocknummern von 8k und größer sollte das Limit bei 2G-1 Blocknummern liegen, tatsächlich liegt es aber bei 1G-1 Blocknummern. Die Verwendung der korrekten Grenze von 2G-1 verursacht Probleme.</para> </answer> </qandaentry> <qandaentry> <question id="archsw-readin-failed-error"> <para>Wieso erhalte ich die Fehlermeldung <errorname>archsw.readin.failed</errorname> beim Start des Systems, nachdem ich einen neuen Kernel erstellt habe?</para> </question> <answer> <para>Ihr System und Ihr Kernel sind nicht synchron - dies ist nicht erlaubt. Sie müssen Ihren Kernel mit <command>make buildworld</command> und <command>make buildkernel</command> aktualisieren.</para> <para>Sie können den zu bootenden Kernel direkt im zweiten Schritt angeben, indem Sie eine beliebige Taste drücken, wenn das | erscheint und bevor der Loader startet.</para> </answer> </qandaentry> <qandaentry> <question id="security-profiles"> <para>Was sind die <quote>Sicherheits-Profile</quote>?</para> </question> <answer> <para>In einem <quote>Sicherheits-Profil</quote> werden verschiedene Einstellungen zusammengefasst, mit denen das gewünschte Verhältnis zwischen Sicherheit und Benutzerfreundlichkeit hergestellt werden soll. Um dies zu erreichen, werden bestimmte Dienste und Features entweder aktiviert oder deaktiviert. Die Details sind im Abschnitt <ulink url="&url.books.handbook;/install-post.html#SECURITYPROFILE">Security Profile</ulink> des Handbuch-Kapitels <ulink url="&url.books.handbook;/install-post.html"> Post-Installation</ulink> enthalten.</para> </answer> </qandaentry> <qandaentry> <question id="boot-acpi"> <para>Mein System stürzt beim Booten ab! Was kann ich tun?</para> </question> <answer> <para>Deaktivieren Sie die ACPI-Unterstützung. Dazu drücken Sie beim Start des Bootloaders die Leertaste. Das System antwortet darauf mit <screen>OK</screen> Geben Sie nun <screen><userinput>unset acpi_load</userinput></screen> und danach <screen><userinput>boot</userinput></screen> ein.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="hardware"> <title>Hardware-Kompatibilität</title> <sect1 id="compatibility-general"> <title>Allgemeines</title> <qandaset> <qandaentry> <question id="which-hardware-to-get"> <para>Ich will mir neue Hardware für mein FreeBSD-System zulegen, was soll ich kaufen? </para> </question> <answer> <para>Diese Frage wird ständig auf den FreeBSD-Mailinglisten diskutiert. Da sich die Hardware ständig ändert, ist das allerdings keine Überraschung. <emphasis>Trotzdem</emphasis> sollten Sie unbedingt die Hardware-Informationen von &os; (<ulink url="&rel.current.hardware;">&rel.current;</ulink> oder <ulink url="&rel2.current.hardware;">&rel2.current;</ulink>) und die <ulink url="http://www.FreeBSD.org/search/#mailinglists"> Archive</ulink> der Mailinglisten durchsehen, bevor Sie nach der neuesten/besten Hardware fragen. Normalerweise gab es kurz zuvor eine Diskussion über genau die Hardware, die Sie sich zulegen wollen.</para> <para>Wenn Sie sich einen Laptop zulegen wollen, sollten Sie einen Blick in das Archiv der Mailingliste FreeBSD-mobile werfen. Ansonsten empfiehlt sich ein Blick in das Archiv von FreeBSD-questions oder auch einer spezialisierte Mailingliste für diese Art von Hardware.</para> </answer> </qandaentry> </qandaset> </sect1> <sect1 id="compatibility-processors"> <title>Architekturen und Prozessoren</title> <qandaset> <qandaentry> <question id="architectures"> <para>Unterstützt FreeBSD neben x86 auch andere Architekturen?</para> </question> <answer> <para>Ja. FreeBSD ist zurzeit für die Intel x86 und DEC (jetzt Compaq) Alpha Architekturen verfügbar. Seit FreeBSD 5.0 werden auch AMD64 sowie Intel EM64T, IA-64 und &sparc64; unterstützt. Die Neuzugänge auf der Liste der in Zukunft unterstützten Plattformen sind &mips; und &powerpc;. Abonnieren Sie die Mailinglisten &a.ppc; oder &a.mips; wenn Sie mehr über den Stand der Entwicklung erfahren wollen. Schließen Sie sich der Mailingliste &a.platforms; an, wenn Sie an grundsätzlichen Diskussionen über neue Architekturen interessiert sind.</para> <para>Falls Ihre Maschine eine andere Architektur aufweist und Sie unbedingt sofort etwas benötigen, schlagen wir vor, dass Sie sich einmal <ulink url="http://www.netbsd.org/">NetBSD</ulink> oder <ulink url="http://www.openbsd.org/">OpenBSD</ulink> ansehen.</para> </answer> </qandaentry> <qandaentry> <question id="smp-support"> <para>Unterstützt FreeBSD Symmetric-Multiproccessing (SMP)?</para> </question> <answer> <para>Ja, seit &os;-Version 5.2 wurde SMP bereits im <filename>GENERIC</filename>-Kernel aktiviert.</para> <para>Dies sollte eigentlich auch für &os; 5.3 gelten. Allerdings traten bei der Entwicklung des Kernels auf einigen Rechnern Probleme auf. Daher entschloss man sich, SMP in der Voreinstellung zu deaktivieren, bis diese Probleme behoben sind. Dies ist eine der vordringlichen Aufgaben für &os; 5.4.</para> <para>Unter &os; 4.X ist SMP im Standardkernel nicht aktiviert. Sie müssen daher einen neuen Kernel mit SMP-Unterstützung bauen. Die dazu nötigen Optionen entnehmen Sie bitte der Datei <filename>/sys/i386/conf/LINT</filename>.</para> </answer> </qandaentry> </qandaset> </sect1> <sect1 id="compatibility-drives"> <title>Festplatten, Bandlaufwerke, sowie CD- und DVD-Laufwerke</title> <qandaset> <qandaentry> <question id="supported-hard-drives"> <para>Welche Arten von Festplatten werden von FreeBSD unterstützt?</para> </question> <answer> <para>FreeBSD unterstützt EIDE- und SCSI-Laufwerke (mit kompatiblen Controllern - siehe folgenden Abschnitt), sowie alle Laufwerke, die die original <quote>Western Digital</quote>-Schnittstelle (MFM, RLL, ESDI und natürlich IDE) benutzen. Ein paar Controller mit proprietären Schnittstellen könnten nicht laufen: halten Sie sich an WD1002/3/6/7-Schnittstellen und Clones.</para> </answer> </qandaentry> <qandaentry> <question id="supported-scsi-controllers"> <para>Welche SCSI-Controller werden unterstützt?</para> </question> <answer> <para>Sie finden eine vollständige und aktuelle Liste in den Hardware-Informationen zu &os; (<ulink url="&rel.current.hardware;">&rel.current;</ulink> oder <ulink url="&rel2.current.hardware;">&rel2.current;</ulink>).</para> </answer> </qandaentry> <qandaentry> <question id="tape-support"> <para>Welche Arten von Bandlaufwerken werden unterstützt?</para> </question> <answer> <para>FreeBSD unterstützt SCSI-, QIC-36- (mit QIC-02-Schnittstelle) und QIC-40/80-Bandlaufwerke (diskettenbasiert). Hierzu gehören auch 8-mm (aka Exabyte) und DAT-Laufwerke. Die QIC-40/80-Laufwerke sind bekanntlich sehr langsam.</para> <para>Einige der frühen 8-mm-Laufwerke sind nicht besonders kompatibel zu SCSI-2 und könnten unter FreeBSD nicht einwandfrei funktionieren.</para> </answer> </qandaentry> <qandaentry> <question id="tape-changer-support"> <para>Unterstützt FreeBSD Bandwechsler?</para> </question> <answer> <para>Das Gerät &man.ch.4; und das Kommando <command>chio</command> unterstützen Bandwechsler. Details zum Betrieb des Wechslers finden Sie in der Hilfeseite &man.chio.1;.</para> <para>Falls Sie nicht <application>AMANDA</application> oder ein anderes Produkt benutzen, das den Wechsler bereits kennt, bedenken Sie, dass die Programme nur wissen, wie sie ein Band von einem Punkt zu einem anderen bewegen müssen. Sie selbst müssen sich also merken, in welchem Einschub sich ein Band befindet und zu welchem Einschub das Band, das sich gerade im Laufwerk befindet, zurück muss.</para> </answer> </qandaentry> <qandaentry> <question id="supported-cdrom-drives"> <para>Welche CDROM-Laufwerke werden von FreeBSD unterstützt?</para> </question> <answer> <para>Jedes an einem unterstützten Controller angeschlossene SCSI-Laufwerk wird unterstützt.</para> <para>Die folgenden proprietären CDROM-Schnittstellen werden ebenfalls unterstützt:</para> <itemizedlist> <listitem> <para>Mitsumi LU002 (8bit), LU005 (16bit) und FX001D (16bit 2x Speed).</para> </listitem> <listitem> <para>Sony CDU 31/33A</para> </listitem> <listitem> <para>Sound Blaster Non-SCSI CDROM</para> </listitem> <listitem> <para>Matsushita/Panasonic CDROM</para> </listitem> <listitem> <para>ATAPI compatible IDE CDROMs</para> </listitem> </itemizedlist> <para>Von allen Nicht-SCSI-Laufwerken ist bekannt, dass sie im Vergleich zu SCSI-Laufwerken extrem langsam sind. Einige ATAPI-CDROMs könnten nicht funktionieren.</para> <para>FreeBSD kann direkt von der offiziellen &os; CD-ROM, sowie den CD-ROMs von Daemon News und &os; Mall, gebootet werden.</para> </answer> </qandaentry> <qandaentry> <question id="supported-cdrw-drives"> <para>Welche CD-Brenner werden von FreeBSD unterstützt?</para> </question> <answer> <para>FreeBSD unterstützt alle ATAPI-kompatiblen IDE CD-R und CD-RW Brenner. Lesen Sie dazu auch &man.burncd.8;.</para> <para>FreeBSD unterstützt ebenfalls SCSI CD-R und CD-RW Brenner. Installieren und benutzen Sie das Paket <command>cdrecord</command> aus der Ports-Sammlung. Dazu müssen Sie allerdings das Gerät <devicename>pass</devicename> mit in Ihren Kernel aufnehmen.</para> </answer> </qandaentry> <qandaentry> <question id="zip-support"> <para>Unterstützt FreeBSD &iomegazip;-Laufwerke?</para> </question> <answer> <para>FreeBSD unterstützt alle gängigen SCSI- und ATAPI-&iomegazip;-Laufwerke. Ihr SCSI-ZIP-Laufwerk darf nur mit den SCSI-Ziel-IDs 5 oder 6 laufen, aber Sie können sogar davon booten, falls das BIOS Ihres Hostadapters dies unterstützt. Es ist nicht bekannt, welche Hostadapter das Booten von anderen Zielen als 0 oder 1 erlauben; daher werden Sie in ihren Handbüchern nachsehen müssen, wenn Sie dieses Merkmal benutzen möchten.</para> <para>FreeBSD unterstützt ZIP-Laufwerke, die an der parallelen Schnittstelle angeschlossen sind. Der Kernel sollte die folgenden Treiber enthalten: <devicename>scbus0</devicename>, <devicename>da0</devicename>, <devicename>ppbus0</devicename> und <devicename>vp0</devicename> (der GENERIC-Kernel enthält alle, außer <devicename>vp0</devicename>). Wenn diese Treiber vorhanden sind, sollte das Laufwerk an der parallelen Schnittstelle als <devicename>/dev/da0s4</devicename> verfügbar sein. Zip-Datenträger können mit <command>mount /dev/da0s4 /mnt</command> ODER (DOS-formatierte) <command>mount_msdos /dev/da0s4 /mnt</command> gemountet werden.</para> <para>Lesen Sie auch <link linkend="media-change">den FAQ-Eintrag zu Wechseldatenträgern</link> und <link linkend="removable-drives">die Anmerkungen zum Thema <quote>Formatierung</quote></link> im Kapitel Administration.</para> </answer> </qandaentry> <qandaentry> <question id="jaz-zip-removable-support"> <para>Unterstützt FreeBSD &jaz;, EZ und andere Wechsellaufwerke?</para> </question> <answer> <para>Ja. Bei den meisten dieser Geräte handelt es sich um SCSI-Geräte, die von FreeBSD auch als solche angesprochen werden. Lediglich das IDE-EZ-Laufwerk wird als IDE-Laufwerk angesprochen.</para> <para>Schalten Sie die Laufwerke ein, bevor Sie Ihr System booten.</para> <para><anchor id="media-change">Müssen Sie Medien im laufenden Betrieb wechseln, sollten Sie zuvor &man.mount.8;, &man.umount.8;, sowie &man.camcontrol.8; (für SCSI-Laufwerke) oder &man.atacontrol.8; (für IDE-Laufwerke), sowie den Abschnitt zur <link linkend="removable-drives">Nutzung von Wechsellaufwerken</link> dieser FAQ lesen.</para> </answer> </qandaentry> </qandaset> </sect1> <sect1 id="compatibility-kbd-mice"> <title>Tastaturen und Mäuse</title> <qandaset> <qandaentry> <question id="usbkbd"> <para>Unterstützt FreeBSD meine Tastatur mit USB-Anschluss?</para> </question> <answer> <para>Ja. FreeBSD unterstützt USB-Tastaturen, wenn Sie die USB-Unterstützung in <filename>/etc/rc.conf</filename> aktivieren.</para> <para>Wenn Sie die Unterstützung für USB-Tastaturen konfiguriert haben, ist die AT-Tastatur als <devicename>/dev/kbd0</devicename> und die USB-Tastatur als <devicename>/dev/kbd1</devicename> verfügbar. Dies gilt natürlich nur, wenn beide Tastaturen angeschlossen sind; falls nur die USB-Tastatur angeschlossen ist, ist diese als <devicename>/dev/ukbd0</devicename> verfügbar.</para> <para>Wenn Sie die USB-Tastatur an der Systemkonsole benutzen wollen, müssen Sie dies dem System explizit mitteilen. Dazu muss das folgende Kommando während des Systemstarts ausgeführt werden:</para> <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null</userinput></screen> <para>Wenn Sie nur die USB-Tastatur angeschlossen haben, ist diese als <devicename>/dev/kbd0</devicename> verfügbar; daher muss in diesem Fall das folgende Kommando benutzt werden:</para> <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/null</userinput></screen> <para>Tragen Sie dieses Kommando in Datei <filename>/etc/rc.i386</filename> ein.</para> <para>Sobald Sie diese Schritte durchgeführt haben, sollte die USB-Tastatur ohne weitere Änderungen auch unter X benutzbar sei.</para> <para>Zurzeit kann es noch Probleme geben, wenn Sie eine USB-Tastatur im laufenden Betrieb einstecken oder abziehen. Um Probleme zu vermeiden, sollten Sie die Tastatur anschließen, bevor Sie das System anschalten und die Tastatur nicht abziehen, solange das System noch läuft.</para> <para>Weitere Informationen erhalten Sie in &man.ukbd.4;.</para> </answer> </qandaentry> <qandaentry> <question id="busmouse"> <para>Ich habe eine unübliche Busmaus. Wie muss ich sie konfigurieren?</para> </question> <answer> <para>FreeBSD unterstützt die Busmaus und InPort-Busmaus von Herstellern wie Microsoft, Logitech und ATI. Der Gerätetreiber ist im GENERIC-Kernel allerdings nicht eingebunden. Wenn Sie den Bus-Gerätetreiber benötigen, müssen Sie daher einen angepassten Kernel erstellen. Dazu fügen Sie die folgende Zeile in Ihre Kernelkonfigurationsdatei ein:</para> <programlisting>device mse0 at isa? port 0x23c irq5</programlisting> <para>Die Busmaus wird üblicherweise zusammen mit einer speziellen Karte ausgeliefert. Sie könnte es Ihnen ermöglichen, andere Werte für die Port-Adresse und den Interrupt zu setzen. Weitere Informationen finden Sie in Handbuch zu Ihrer Maus und in der &man.mse.4; Manualpage.</para> </answer> </qandaentry> <qandaentry> <question id="ps2mouse"> <para>Wie benutze ich meine PS/2 (<quote>Mouse-Port</quote> oder <quote>Tastatur</quote>)-Maus?</para> </question> <answer> <para>PS/2 Mäuse werden von FreeBSD unterstützt. Der notwendige Gerätetreiber, <devicename>psm</devicename>, ist bereits im <filename>GENERIC</filename>-Kernel enthalten.</para> <para>Wenn Sie einen angepassten Kernel ohne diesen Treiber benutzen, müssen Sie folgende Zeile in Ihre Kernelkonfigurationsdatei einfügen und den Kernel neu kompilieren:</para> <programlisting>device psm0 at atkbdc? irq 12</programlisting> <para>Wenn der Kernel das Gerät <devicename>psm0</devicename> beim Booten korrekt erkennt, stellen Sie sicher, dass sich im Verzeichnis <filename>/dev</filename> ein Eintrag für <devicename>psm0</devicename> befindet. Durch die Eingabe von</para> <screen>&prompt.root; <userinput>cd /dev; sh MAKEDEV psm0</userinput></screen> <para>können Sie diesen Eintrag auch selbst erstellen. Dazu müssen Sie allerdings als <username>root</username> angemeldet sind.</para> <note> <para>Lassen Sie diesen Schritt aus, wenn Sie FreeBSD 5.0-RELEASE oder eine neuere Version mit &man.devfs.5; verwenden. Die Gerätedateien werden in diesem Fall automatisch in <filename>/dev</filename> erstellt.</para> </note> </answer> </qandaentry> <qandaentry> <question id="moused"> <para>Kann man die Maus irgendwie außerhalb des X Window Systems benutzen?</para> </question> <answer> <para>Falls Sie den normalen Konsoltreiber &man.syscons.4; benutzen, können Sie den Mauszeiger auf Textkonsolen zum Kopieren und Einfügen von Text verwenden. Starten Sie den Mausdämon &man.moused.8; und schalten Sie den Mauszeiger auf der virtuellen Konsole ein:</para> <screen>&prompt.root; <userinput>moused -p /dev/<replaceable>xxxx</replaceable> -t <replaceable>yyyy</replaceable></userinput> &prompt.root; <userinput>vidcontrol -m on</userinput></screen> <para><replaceable>xxxx</replaceable> ist der Gerätename der Maus und <replaceable>yyyy</replaceable> ist das Protokoll. Der Mausdämon erkennt die Protokolle der meisten Mäuse (mit Ausnahme alter serieller Mäuse) automatisch, wenn Sie <literal>auto</literal> für das Protokoll angeben. Falls das Protokoll nicht automatisch erkannt wird, finden Sie die unterstützten Protokolle in der &man.moused.8; Manualpage.</para> <para>Wenn Sie eine PS/2-Maus besitzen und diese beim Systemstart aktivieren wollen, tragen Sie die Zeile <literal>moused_enable="YES"</literal> in die Datei <filename>/etc/rc.conf</filename> ein. Falls Sie den Mausdämon auf allen virtuellen Bildschirmen anstatt nur auf der Konsole benutzen wollen, tragen Sie außerdem <literal>allscreens_flags="-m on"</literal> in <filename>/etc/rc.conf</filename> ein.</para> <para>Während der Mausdämon läuft, muss der Zugriff auf die Maus zwischen dem Mausdämon und anderen Programmen, wie X Windows, koordiniert werden. Die FAQ <link linkend="x-and-moused">Warum funktioniert meine meine Maus unter X nicht?</link> enthält weitere Details.</para> </answer> </qandaentry> <qandaentry> <question id="text-mode-cut-paste"> <para>Wie funktioniert das Kopieren und Einfügen von Text mit der Maus auf einer Textkonsole?</para> </question> <answer> <para>Wenn Sie es geschafft haben, den Mausdämon zu starten (wie im <link linkend="moused">vorherigen Abschnitt</link> gezeigt), halten Sie die linke Maustaste gedrückt und bewegen Sie die Maus, um einen Textabschnitt zu markieren. Dann drücken Sie die mittlere Maustaste, um den Text an der Cursorposition einzufügen.</para> <para>Wenn Sie keine 3-Tasten-Maus besitzen, können Sie die mittlere Maustaste mit einer Tastenkombination emulieren oder die Funktion der mittleren Taste auf eine andere Taste legen. Einzelheiten dazu enthält die Hilfeseite &man.moused.8;.</para> </answer> </qandaentry> <qandaentry> <question id="mouse-wheel-buttons"> <para>Meine Maus hat ein neumodisches Rad und mehr Knöpfe. Kann ich sie in FreeBSD benutzen?</para> </question> <answer> <para>Unglücklicherweise lautet die Antwort: <quote>Vielleicht</quote>. Solche Mäuse mit zusätzlichen Extras erfordern in den meisten Fällen spezielle Treiber. Wenn der Gerätetreiber für die Maus oder das Anwendungsprogramm keine spezielle Unterstützung für die Maus bietet, wird sie sich wie eine gewöhnliche Maus mit zwei oder drei Knöpfen verhalten.</para> <para>Ob und wie Sie das Rad unter X benutzen können, können Sie im <link linkend="x-and-wheel">passenden Abschnitt</link> der FAQ erfahren.</para> </answer> </qandaentry> <qandaentry> <question id="laptop-mouse-trackball"> <para>Wie benutze ich Maus/Trackball/Touchpad auf meinem Laptop?</para> </question> <answer> <para>Bitte lesen Sie <link linkend="ps2mouse">die Antwort zur vorherigen Frage</link>.</para> </answer> </qandaentry> </qandaset> </sect1> <sect1 id="compatibility-networking"> <title>Netzkarten und serielle Geräte</title> <qandaset> <qandaentry> <question id="network-cards"> <para>Welche Netzwerkkarten unterstützt FreeBSD?</para> </question> <answer> <para>In den Hardware Informationen zu jedem FreeBSD Release werden die unterstützten Karten aufgezählt.</para> </answer> </qandaentry> <qandaentry> <question id="internal-plugnplay-modem"> <para>Wieso erkennt FreeBSD mein internes Plug & Play-Modem nicht?</para> </question> <answer> <para>Sie werden die PnP-ID Ihres Modems in die PnP-ID-Liste des seriellen Treibers aufnehmen müssen. Erstellen Sie einen neuen Kernel mit dem Eintrag <literal>controller pnp0</literal> in der Konfigurationsdatei und rebooten Sie Ihr System, um die Plug & Play-Unterstützung zu aktivieren. Der Kernel wird nun alle PnP-IDs der gefundenen Geräte ausgeben. In der Datei <filename>/sys/i386/isa/sio.c</filename> finden Sie ab Zeile 2777 (ca.) eine Tabelle, in der Sie die PnP-ID des Modems eintragen müssen. Suchen Sie die Zeichenfolge <literal>SUP1310</literal> in der Struktur <literal>siopnp_ids[]</literal>, um die Tabelle zu finden. Erstellen Sie den Kernel nochmals, installieren Sie ihn, rebooten Sie, und Ihr Modem sollte erkannt werden.</para> <para>Möglicherweise müssen Sie in der boot-time-Konfiguration die PnP-Geräte manuell mit einem <literal>pnp</literal>-Befehl ähnlich</para> <programlisting>pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8</programlisting> <para>konfigurieren, damit das Modem erkannt wird.</para> </answer> </qandaentry> <qandaentry> <question id="support-winmodem"> <para>Unterstützt FreeBSD Software Modems, wie die Winmodems?</para> </question> <answer> <para>FreeBSD unterstützt viele Software-Modems, wenn Sie zusätzliche Software installieren. Der Port <filename role="package">comms/ltmdm</filename> bietet Unterstützung für Modems, die auf dem oft verwendeten Lucent LT Chipsatz basieren. Der Port <filename role="package">comms/mwavem</filename> bietet Unterstützung für die Modems im IBM Thinkpad 600 und 700.</para> <para>Sie können FreeBSD nicht über ein Software-Modem installieren, diese Software kann nur installiert werden, nachdem das Betriebssystem installiert wurde.</para> </answer> </qandaentry> <qandaentry> <question id="support-broadcom"> <para>Gibt es einen FreeBSD-Treiber für die Karten der Serie 43xx von Broadcom?</para> </question> <answer> <para>Nein, und es wird wohl auch nie einen geben.</para> <para>Broadcom weigert sich, Informationen zu ihren drahtlosen Chipsätzen zu veröffentlichen. Wahrscheinlich liegt dies daran, dass Broadcom auch softwaregesteuerte Radios herstellt. Damit ihre Produkte von der FCC zugelassen werden, muss sichergestellt sein, dass Benutzer nicht in der Lage sind, Betriebsfrequenzen, Modulationsparameter, Ausgangsleistung und andere Werte nach Belieben einzustellen. Ohne solche Informationen ist es aber nahezu unmöglich, einen Treiber zu programmieren.</para> </answer> </qandaentry> <qandaentry> <question id="multiport-serial-support"> <para>Welche seriellen Multi-Port-Karten werden von FreeBSD unterstützt?</para> </question> <answer> <para>Es existiert eine Liste der unterstützten Karten im Abschnitt <ulink url="&url.books.handbook;/install.html#INSTALL-MISC">Verschiedene Geräte</ulink> des Handbuchs.</para> <para>Von einigen nicht NoName-Nachbauten ist ebenfalls bekannt, dass sie funktionieren, speziell von den AST-kompatiblen.</para> <para>In &man.sio.4; finden Sie weitere Informationen zur Konfiguration solcher Karten.</para> </answer> </qandaentry> <qandaentry> <question id="serial-console-prompt"> <para>Wie kann ich den boot:-Prompt auf einer seriellen Konsole erscheinen lassen?</para> </question> <answer> <orderedlist> <listitem> <para>Erstellen Sie einen Kernel mit <literal>options COMCONSOLE</literal>.</para> </listitem> <listitem> <para>Erstellen Sie /boot.config mit <option>-P</option> als einzigem Text in der Datei.</para> </listitem> <listitem> <para>Ziehen Sie das Tastaturkabel aus dem Rechner.</para> </listitem> </orderedlist> <para>Lesen Sie <filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename> zur Information.</para> </answer> </qandaentry> </qandaset> </sect1> <sect1 id="compatibility-sound"> <title>Soundkarten</title> <qandaset> <qandaentry> <question id="sound-card-support"> <para>Welche Soundkarten werden von FreeBSD unterstützt?</para> </question> <answer> <para>&os; unterstützt verschiedene Soundkarten wie &soundblaster;, &soundblaster; Pro, &soundblaster; 16, Pro Audio Spectrum 16, AdLib und Gravis UltraSound. Lesen Sie die <ulink url="&url.base;/releases/"> &os; Release Informationen</ulink> sowie &man.snd.4;, wenn Sie genauere Informationen benötigen. MPU-401 und kompatible MIDI-Karten werden begrenzt unterstützt. Ebenso unterstützt werden Karten, die der µsoft; Sound System-Spezifikation entsprechen.</para> <note> <para>Das gilt nur für Sound! Dieser Treiber unterstützt keine CDROMs, SCSI oder Joysticks auf diesen Karten, außer der &soundblaster;. Die &soundblaster;-SCSI-Schnittstelle und einige Nicht-SCSI-CDROMs werden unterstützt, Sie können von diesen Geräten aber nicht booten.</para> </note> </answer> </qandaentry> <qandaentry> <question id="es1370-silent-pcm"> <para>Abhilfen für fehlenden Sound bei Verwendung des &man.pcm.4;-Treibers?</para> </question> <answer> <para>Einige Soundkarten, darunter solche mit es1370-Chip, setzen die Lautstärke bei jedem Systemstart auf 0. In diesem Fall müssen Sie nach jedem Bootvorgang den folgenden Befehl ausführen:</para> <screen>&prompt.root; <userinput>mixer pcm 100 vol 100 cd 100</userinput></screen> </answer> </qandaentry> </qandaset> </sect1> <sect1 id="compatibility-other"> <title>Sonstige Hardware</title> <qandaset> <qandaentry> <question id="other-device-support"> <para>Welche Geräte werden noch von FreeBSD unterstützt?</para> </question> <answer> <para>Im <ulink url="&url.books.handbook;/install.html#INSTALL-MISC">Handbuch</ulink> finden Sie eine Liste von anderen unterstützten Geräten.</para> </answer> </qandaentry> <qandaentry> <question id="power-management-support"> <para>Unterstützt FreeBSD Power-Management auf meinem Laptop?</para> </question> <answer> <para>FreeBSD 4.X unterstützt <acronym>APM</acronym> auf einigen Systemen. Lesen Sie dazu auch &man.apm.4;.</para> <para>FreeBSD 5.X und neuer unterstützen einen Großteil der <acronym>ACPI</acronym>-Funktionen moderner Hardware. Lesen Sie dazu auch &man.acpi.4;. Unterstützt Ihr System sowohl <acronym>APM</acronym> als auch <acronym>ACPI</acronym>, können Sie beide Systeme testen und sich für das System entscheiden, das Ihren Anforderungen am besten entspricht.</para> </answer> </qandaentry> <qandaentry> <question id="disable-acpi"> <para>Wie kann ich ACPI deaktivieren?</para> </question> <answer> <para>Fügen Sie die Zeile <screen>hint.acpi.0.disabled="1"</screen> in die Datei <filename>/boot/device.hints</filename> ein.</para> </answer> </qandaentry> <qandaentry> <question id="micron-hang-boot"> <para>Wieso hängt sich mein Micron-System beim Booten auf?</para> </question> <answer> <para>Einige Micron Motherboards besitzen eine nicht-konforme PCI-BIOS-Implementierung. Sie bereitet Kummer, wenn FreeBSD bootet, weil PCI-Geräte nicht an der angegebenen Adresse konfiguriert werden.</para> <para>Deaktivieren Sie <quote>Plug and Play Operating System</quote> im BIOS, um dieses Problem zu beheben.</para> </answer> </qandaentry> <qandaentry> <question id="asusk7v-boot-failure"> <para>Wenn ich ein System mit einem ASUS K7V Mainboard von der Bootdiskette starte, hängt sich das System auf. Wie kann ich dieses Problem lösen?</para> </question> <answer> <para>Schalten Sie im BIOS die Option <quote>boot virus protection</quote> aus.</para> </answer> </qandaentry> <qandaentry> <question id="micron-3comnic-failure"> <para>Warum arbeitet meine &tm.3com; PCI-Netzwerkkarte in meinem Micron-Computer nicht?</para> </question> <answer> <para>Einige Micron Motherboards besitzen eine nicht-konforme PCI-BIOS-Implementierung, die die PCI-Geräte nicht an den angegebenen Adressen konfiguriert. Hierdurch entstehen Probleme, wenn FreeBSD bootet.</para> <para>Deaktivieren Sie die Option <quote>Plug and Play Operating System</quote> im BIOS, um das Problem zu umgehen.</para> </answer> </qandaentry> <qandaentry> <question id="newcard-does-not-work"> <para>Meine PCMCIA-Karte funktioniert nicht und ich erhalte die Meldung: <quote>cbb0: unsupported card type detected.</quote>. Was kann ich tun?</para> </question> <answer> <para>Sie können die ursprüngliche OLDCARD-Implementierung verwenden. Dazu entfernen Sie die folgenden Zeilen aus Ihrer Kernelkonfigurationsdatei:</para> <programlisting>device cbb device pccard device cardbus</programlisting> <para>Danach fügen Sie die folgenden Zeilen ein:</para> <programlisting>device pcic device card 1</programlisting> <para>Um die Änderungen zu aktivieren, müssen Sie den neuen Kernel noch wie im Abschnitt <ulink url="&url.books.handbook;/kernelconfig.html"> Konfiguration des FreeBSD-Kernels</ulink> des Handbuchs beschrieben bauen und installieren.</para> </answer> </qandaentry> </qandaset> </sect1> </chapter> <chapter id="troubleshoot"> <title>Fehlerbehebung</title> <qandaset> <qandaentry> <question id="pae"> <para>Warum zeigt &os; eine falsche Speichergröße an?</para> </question> <answer> <para>Das liegt an den Unterschieden zwischen physikalischen und virtuellen Speicheraddressen.</para> <para>Bei moderner PC-Hardware ist es üblich, den Speicherbereich zwischen 3,5 und 4 Gigabyte für spezielle Aufgaben (normalerweise für PCI) zu reservieren. Dieser Adressbereich wird dabei dazu verwendet, um auf PCI-Hardware zuzugreifen. Dadurch kann in diesem Speicherbereich kein physikalischer Speicher existieren.</para> <para>Was mit dem in diesen Bereich gehörenden physikalischen Speicher passiert, hängt von der von Ihnen eingesetzten Hardware ab. Unglücklicherweise gibt es noch immer Hardware, die hier gar nichts macht. In diesem Fall ist Ihr System nicht in der Lage, auf diese 500 Megabyte des RAMs zuzugreifen.</para> <para>Ein Großteil der heute existierenden Hardware ist aber inzwischen in der Lage, diesen Speicherbereich in einen höheren Speicherbereich umzulenken, damit Sie weiterhin darauf zugreifen können. Allerdings kann es durch dieses Umlenken zu verwirrende Meldungen während des Systemstarts kommen.</para> <para>Unter 32-Bit-Versionen von &os; scheint dieser Speicherbereich nicht verfügbar zu sein, da er in einen Bereich oberhalb von 4 Gigabyte übertragen wurde, auf den ein 32-Bit-Kernel allerdings nicht zugreifen kann. Ist dies bei Ihnen der Fall, müssen Sie die PAE-Unterstützung in Ihren Kernel kompilieren. Lesen Sie dazu auch den entsprechenden <link linkend="memory-limits">FAQ-Eintrag</link>.</para> <para>Verwenden Sie hingegen eine 64-Bit-Version von &os; oder einen 32-Bit-Kernel mit aktivierter PAE-Unterstützung, ist &os; in der Lage, diesen Speicherbereich korrekt zu erkennen und umzulenken, damit Sie weiterhin darauf zugreifen können. Allerdings wird in diesem Fall beim Systemstart mehr Speicher angezeigt, als tatsächlich auf Ihrem System vorhanden ist. Dies ist aber normal und wird nach dem Ende des Systemstarts automatisch korrigiert.<para> </answer> </qandaentry> <qandaentry> <question id="awre"> <para>Was sollte ich tun, wenn auf meiner Festplatte fehlerhafte Blöcke sind?</para> </question> <answer> <para>SCSI-Laufwerke sollten in der Lage sein, diese automatisch zu verlagern. Bei einigen Laufwerken ist diese Eigenschaft jedoch aus unerfindlichen Gründen bei der Auslieferung ausgeschaltet...</para> <para>Um sie einzuschalten, müssen Sie den Page-Mode des ersten Gerätes editieren. Unter FreeBSD können Sie das (als <username>root</username>) mit folgendem Befehl tun</para> <screen>&prompt.root; <userinput>camcontrol modepage sd0 -m 1 -e -P 3</userinput></screen> <para>und die Werte für AWRE und ARRE von 0 auf 1 ändern:-</para> <programlisting> AWRE (Auto Write Reallocation Enbld): 1 ARRE (Auto Read Reallocation Enbld): 1 </programlisting> <para>Moderne IDE-Controller sind in der Lage, fehlerhafte Blöcke automatisch zu verlagern. Diese Funktionen sind bereits ab Werk aktiviert.</para> <para>Werden dennoch fehlerhafte Blöcke gemeldet (egal auf welchem Laufwerk), sollten Sie über den Kauf einer neuen Platte nachdenken. Zwar könnte es Ihnen mit Diagnoseprogrammen des Plattenherstellers gelingen, diese fehlerhaften Blöcke zu sperren. Allerdings können Sie damit den endgültigen Ausfall der Platte bestenfalls hinauszögern.</para> </answer> </qandaentry> <qandaentry> <question id="hpnetserver-scsi-failure"> <para>Wieso wird der SCSI-Controller meines HP Netserver nicht erkannt?</para> </question> <answer> <para>Hierbei handelt es sich um ein bekanntes Problem. Der auf dem Board befindliche EISA-SCSI-Controller auf dem HP Netserver belegt die EISA-Slotnummer 11, wodurch sich alle <quote>wirklichen</quote> EISA-Slots vor ihm befinden. Leider kollidiert der Adressraum von EISA-Slots >=10 mit dem Adressraum, der PCI zugeordnet ist und die Autokonfiguration von FreeBSD kann mit dieser Situation derzeit nicht besonders gut umgehen.</para> <para>Die einfachste Alternative ist, diese Kollision einfach zu leugnen. Setzen Sie dazu die Kerneloption <literal>EISA_SLOTS</literal> auf den Wert 12. Konfigurieren und kompilieren Sie den Kernel, wie im <ulink url="&url.books.handbook;/kernelconfig.html">Handbucheintrag zur Kernelkonfiguration</ulink> beschrieben.</para> <para>Dies bringt Ihnen natürlich das klassische Huhn-Ei-Problem, wenn Sie auf einer solchen Maschine installieren wollen. Um dieses Problem zu umgehen, existiert ein spezieller Hack in <emphasis>UserConfig</emphasis>. Benutzen Sie nicht die <quote>visuelle</quote> Schnittstelle, sondern die rohe Kommandozeilenschnittstelle. Geben Sie einfach</para> <programlisting> eisa 12 quit </programlisting> <para>am Prompt ein und Sie können Ihr System ganz normal installieren. Sie sollten auf jeden Fall einen angepassten Kernel zu kompilieren und installieren.</para> <para>Zukünftige Versionen werden hoffentlich eine passende Lösung für dieses Problem beinhalten.</para> <note> <para>Sie können keine <literal>dangerously dedicated</literal> Platte auf einem HP Netserver verwenden. Lesen Sie weitere Informationen finden Sie in <link linkend="dedicate">diesem Hinweis</link>.</para> </note> </answer> </qandaentry> <qandaentry> <question id="ed1-timeout"> <para>Was bedeuten die ständigen Meldungen <literal>ed1: timeout</literal>?</para> </question> <answer> <para>Dies wird meistens durch einen Interruptkonflikt verursacht (z.B., wenn zwei Karten den selben Interrupt benutzen). Booten Sie mit der Option -c und ändern Sie die Einträge zu ed0/de0/... Ihrem Board entsprechend.</para> <para>Wenn Sie den BNC-Anschluss Ihrer Netzwerkkarte benutzen, könnte es auch sein, dass es sich Geräte-Timeouts aufgrund fehlerhafter Terminierung handelt. Um dies zu überprüfen, verbinden Sie einen Terminator direkt mit der Netzwerkkarte (ohne Kabel) und beobachten Sie, ob die Fehlermeldungen verschwinden.</para> <para>Einige NE2000 kompatible Karten melden diesen Fehler, wenn keine Verbindung am UTP-Eingang existiert oder wenn das Kabel nicht eingesteckt ist.</para> </answer> </qandaentry> <qandaentry> <question id="bad-3c509"> <para>Warum funktioniert meine &tm.3com; 3C509 plötzlich nicht mehr?</para> </question> <answer> <para>Diese Karte ist dafür berüchtigt, ihre Konfiguration zu vergessen. Sie müssen die Karte mit dem DOS-Programm <command>3c5x9.exe</command> neu konfigurieren.</para> </answer> </qandaentry> <qandaentry> <question id="printer-slow"> <para>Mein an der parallel Schnittstelle angeschlossener Drucker ist unglaublich langsam. Was kann ich tun?</para> </question> <answer> <para>Falls das einzige Problem ist, dass er schrecklich langsam ist, dann sollte Sie versuchen, die <ulink url="&url.books.handbook;/printing-intro-setup.html#PRINTING-PARALLEL-PORT-MODE"> Kommunikationseinstellungen der parallelen Schnittstellen</ulink> zu ändern, wie es im Kapitel <ulink url="&url.books.handbook;/printing.html">Drucken</ulink> des Handbuchs beschrieben ist.</para> </answer> </qandaentry> <qandaentry> <question id="signal11"> <para>Wieso brechen meine Programme gelegentlich mit <errorname>Signal 11</errorname>-Fehlern ab?</para> </question> <answer> <para>Das Signal 11 wird generiert, wenn ein Prozess versucht, auf Speicher zuzugreifen, obwohl er vom Betriebssystem dazu nicht befugt wurde. Wenn Ihnen das scheinbar zufällig immer wieder passiert, sollten Sie der Sache einmal auf der Grund gehen.</para> <para>Das Problem hat in der Regel eine der folgenden Ursachen:</para> <orderedlist> <listitem> <para>Wenn das Problem nur in einer bestimmten Anwendung auftritt, die Sie selbst entwickeln, dann ist es wahrscheinlich ein Fehler in Ihren Sourcen.</para> </listitem> <listitem> <para>Wenn das Problem in einem Teil von FreeBSD auftritt, könnte es natürlich auch ein Fehler sein; aber in den meisten Fällen werden diese Probleme gefunden und behoben, bevor die typischen Leser der FAQ (wir) diese Teile der Sourcen benutzen können (dafür gibt es schließlich -CURRENT).</para> </listitem> </orderedlist> <para>Wenn der Fehler auftritt, wenn Sie ein Programm compilieren aber dabei immer wieder an anderer Stelle auftritt, dann ist das ein ganz eindeutiger Hinweis, dass das Problem <emphasis>nicht</emphasis> bei FreeBSD liegt.</para> <para>Nehmen wir zum Beispiel an, dass Sie <quote>make buildworld</quote> ausführen und die Compilierung von <filename>ls.c</filename> in <filename>ls.o</filename> abbricht. Wenn Sie nochmal "make buildworld" durchführen und die Compilierung an der gleichen Stelle abbricht, handelt es sich um einen Fehler in den Sourcen. Aktualisieren Sie Ihre Sourcen und versuchen Sie es noch einmal. Wenn der Fehler jedoch an einer anderen Stelle auftritt, liegt das Problem mit an Sicherheit grenzender Wahrscheinlichkeit bei Ihrer Hardware.</para> <para>Was Sie tun sollten:</para> <para>Im ersten Fall können Sie einen Debugger wie z.B. gdb benutzen, um die Stelle im Programm zu finden, an der auf eine falsche Adresse zugegriffen wird und danach den Fehler beheben.</para> <para>Im zweiten Fall müssen Sie sicherstellen, dass das Problem nicht von Ihrer Hardware verursacht wird.</para> <para>Typische Ursachen dafür sind unter anderem:</para> <orderedlist> <listitem> <para>Es könnte sein, dass Ihren Festplatten zu warm werden: Überprüfen Sie, ob die Lüfter in Ihrem Gehäuse noch funktionieren, damit Ihre Festplatten (und andere Hardware) nicht heißlaufen.</para> </listitem> <listitem> <para>Der Prozessor überhitzt, weil Sie Ihn übertaktet haben oder der CPU-Kühler ausgefallen ist. Sie müssen sicherstellen, dass Sie Ihre Hardware unter den Bedingungen betreiben, für die sie spezifiziert ist, zumindestens während Sie versuchen, das Problem zu lösen. Mit anderen Worten: Betreiben Sie Ihre CPU mit der normalen Taktfrequenz.</para> <para>Wenn Sie übertakten, sollten Sie daran denken, dass ein langsames System deutlich billiger ist als ein defektes System. Die große Masse hat nicht sehr häufig Mitgefühl mit Problemen bei übertakteten System, auch wenn Sie es für ungefährlich halten.</para> </listitem> <listitem> <para>Unzuverlässiger Speicher: Wenn Sie mehr als ein SIMM/DIMM installiert haben, sollten Sie sie alle ausbauen und die Maschine testweise mit jedem SIMM oder DIMM einzeln betreiben. So können Sie feststellen, ob die Ursache ein einzelnes SIMM/DIMM oder auch eine Kombination von Modulen ist.</para> </listitem> <listitem> <para>Zu optimistische Einstellung des Mainboards: In Ihrem BIOS und mit den Jumpern auf dem Mainboard können Sie diverse Timings ändern. In den meisten Fällen reichen die Defaults aus, aber manchmal kann es durch zu wenig wait states, die Einstellung <quote>RAM Speed: Turbo</quote> oder ähnliches zu merkwürdigen Problemen kommen. Ein möglicher Ansatz ist, die BIOS defaults zu laden, allerdings könnte es sinnvoll sein, die aktuellen Einstellungen vorher zu notieren.</para> </listitem> <listitem> <para>Schlechte oder fehlerhafte Stromversorgung des Mainboards: Wenn Sie unbenutzte Steckkarten, Platten oder CDROMs in Ihrem System haben, sollten Sie sie testweise ausbauen oder die Stromversorgung abziehen. Dadurch können Sie prüfen, ob Ihr Netzteil eventuell mit einer geringeren Last besser zurechtkommt. Sie können auch testweise ein anderes, am besten ein leistungsfähigeres, Netzteil ausprobieren. Wenn Sie zurzeit ein 250W-Netzteil benutzen, sollten Sie testweise ein 300W-Netzteil einbauen.</para> </listitem> </orderedlist> <para>Die sollten ebenfalls die SIG11 FAQ (unten aufgeführt) lesen, da sie gute Erklärungen für alle diese Probleme enthält (allerdings aus &linux;-Sicht). Sie erklärt ebenfalls, warum sowohl Programme als auch Geräte zur Speicherprüfung fehlerhaften Speicher teilweise nicht erkennen.</para> <para>Wenn alle diese Schritte nicht helfen, ist es möglich, dass Sie einen Fehler in FreeBSD gefunden haben. Folgen Sie einfach den Anweisungen für die Erstellung eines Problem Reports.</para> <para>Es existiert eine ausführliche FAQ hierzu unter <ulink url="http://www.bitwizard.nl/sig11/">der SIG11-Problem-FAQ</ulink></para> </answer> </qandaentry> <qandaentry> <question id="trap-12-panic"> <para>Mein System stürzt mit der Meldung <errorname>Fatal trap 12: page fault in kernel mode</errorname> oder <errorname>panic:</errorname> ab und gibt eine Menge zusätzlicher Informationen aus. Was kann ich tun?</para> </question> <answer> <para>Die Entwickler von FreeBSD interessieren sich für solchen Meldungen, allerdings brauchen Sie deutlich mehr Informationen als die, die Ihnen angezeigt werden. Kopieren Sie die komplette Meldungen und lesen Sie nun den FAQ-Eintrag über <link linkend= "KERNEL-PANIC-TROUBLESHOOTING">kernel panics</link>. Erzeugen sie einen Kernel mit den zusätzlichen Daten zur Fehlersuche, und dann einen backtrace. Das hört sich komplizierter an, als es ist. Sie brauchen keine Programmier-Erfahrung, Sie müssen einfach nur den Anweisungen folgen.</para> </answer> </qandaentry> <qandaentry> <question id="screen-loses-sync"> <para>Wieso wird beim Booten der Bildschirm schwarz und reagiert nicht mehr?</para> </question> <answer> <para>Dies ist ein bekanntes Problem mit der ATI Mach 64 Videokarte. Das Problem besteht darin, dass diese Karte die Adresse <literal>2e8</literal> benutzt und die vierte serielle Schnittstelle ebenfalls. Aufgrund eines Fehlers (einer Besonderheit?) im &man.sio.4;-Treiber wird diese Schnittstelle angesprochen, auch wenn Sie gar keine vierte serielle Schnittstelle besitzen und <emphasis>sogar</emphasis>, wenn sie sio3 (die vierte Schnittstelle), die normalerweise diese Adresse verwendet, deaktivieren.</para> <para>Bis der Fehler behoben ist, können Sie folgende Abhilfe verwenden:</para> <orderedlist> <listitem> <para>Geben Sie am Bootprompt <option>-c</option> ein. (Dies bringt den Kernel in den Konfigurationsmodus).</para> </listitem> <listitem> <para>Deaktivieren Sie <devicename>sio0</devicename>, <devicename>sio1</devicename>, <devicename>sio2</devicename> und <devicename>sio3</devicename> (alle). Auf diese Weise wird der sio-Treiber nicht aktiviert und das Problem tritt nicht mehr auf.</para> </listitem> <listitem> <para>Geben Sie exit ein, um den Bootvorgang fortzusetzen.</para> </listitem> </orderedlist> <para>Falls sie in der Lage sein wollen Ihre seriellen Schnittstellen zu benutzen, müssen Sie einen neuen Kernel mit folgenden Modifikationen erstellen: suchen Sie in <filename>/usr/src/sys/i386/isa/sio.c</filename> nach der Zeichenkette <literal>0x2e8</literal> und löschen Sie sie und das vorhergehende Komma (nicht das folgende Komma). Nun folgen Sie der normalen Prozedur zur Erstellung eines neuen Kernels.</para> <para>Auch nach Anwendung dieser Maßnahmen könnte es sein, dass Ihr X Windows-System nicht einwandfrei funktioniert. Wenn dies der Fall ist, stellen Sie sicher, dass es sich bei der von Ihnen benutzten X Windows-Version mindestens um &xfree86; 3.3.3 oder höher handelt. Diese Version und höhere besitzen eine integrierte Unterstützung für Mach64-Karten und sogar einen dedizierten X-Server für sie.</para> </answer> </qandaentry> <qandaentry> <question id="reallybigram"> <para>Wieso verwendet FreeBSD nur 64 MB Hauptspeicher, obwohl in meinem Rechner 128 MB sind?</para> </question> <answer> <para>Aufgrund der Art und Weise, wie FreeBSD die Hauptspeichergröße vom BIOS mitgeteilt bekommt, kann es lediglich 16-Bit Werte in kByte-Größe (65535 kByte = 64MB) erkennen (oder weniger... einige BIOSe setzen die Hauptspeichergröße auf 16MB). Falls Sie mehr als 64MB besitzen, wird FreeBSD versuchen, das zu erkennen, was aber nicht immer funktioniert.</para> <para>Um dieses Problem zu umgehen, müssen Sie die untenstehende Kerneloption verwenden. Es gibt einen Weg, vollständige Hauptspeicherinformationen vom BIOS zu erhalten, aber in den Bootblöcken ist nicht genügend Platz dafür vorhanden. Wenn der Platzmangel in den Bootblöcken eins Tages behoben ist, werden wir die erweiterten BIOS-Funktionen dazu nutzen, die vollständigen Hauptspeicherinformationen zu erhalten... aber zurzeit sind wir auf die Kerneloption angewiesen.</para> <para><literal>options "MAXMEM=<replaceable>n</replaceable>"</literal></para> <para>Hierbei ist <literal>n</literal> Ihre Hauptspeichergröße in Kilobyte. Bei einer 128 MB-Maschine müßten Sie <literal>131072</literal> benutzen.</para> </answer> </qandaentry> <qandaentry> <question id="kmem-map-too-small"> <para>Ich habe mehr als 1 GB RAM. Trotzdem stürzt mein System mit der Meldung <quote>kmem_map too small</quote> ab. Was läuft hier schief?</para> </question> <answer> <para>Im Normalfall bestimmt FreeBSD einige Kernelparameter, darunter die maximale Anzahl der Dateien, die gleichzeitig geöffnet sein können, aus der Größe des im System installierten Hauptspeichers. Auf Systemen mit mindestens 1 GB Hauptspeicher kann dieser <quote>auto sizing</quote>-Mechanismus diese Werte fälschlicherweise zu hoch ansetzen: Beim Systemstart fordert der Kernel dann verschiedene Tabellen und andere Strukturen an, die den Großteil des verfügbaren Kernelspeichers verbrauchen. Dies führt dazu, dass der Kernel während des Betriebs keine dynamischen Speicheranforderungen mehr ausführen kann und mit einer Kernelpanik abstürzt.</para> <para>Bauen Sie in diesem Fall Ihren eigenen Kernel. Dazu setzen Sie <option>VM_KMEM_SIZE_MAX</option> in Ihrer Kernelkonfigurationsdatei auf 400 MB (<option>options VM_KMEM_SIZE_MAX=419430400</option>). 400 MB sollten für Maschinen bis 6 GB Hauptspeicher ausreichend sein.</para> </answer> </qandaentry> <qandaentry> <question id="panic-kmemmap-too-small"> <para>Ich habe weniger als 1 GB Hauptspeicher. Dennoch stürzt mein System mit der Meldung <errorname>kmem_map too small!</errorname> ab?</para> </question> <answer> <para>Diese Meldung zeigt an, dass der virtuelle Speicher für Netzwerkpuffer (spezieller mbuf-Cluster) aufgebraucht ist. Sie können die für mbuf verfügbare Größe an VM erhöhen, indem Sie den Anweisungen des Abschnitts <ulink url="&url.books.handbook;/configtuning-kernel-limits.html#NMBCLUSTERS"> Netzwerk-Limits</ulink> des Handbuchs folgen.</para> </answer> </qandaentry> <qandaentry> <question id="proc-table-full"> <para>Wieso erhalte ich die Meldung <errorname>/kernel: proc: table is full</errorname>?</para> </question> <answer> <para>Der FreeBSD-Kernel beschränkt die Anzahl der gleichzeitig laufenden Prozesse. Die Anzahl errechnet sich aus dem Wert der Variablen <literal>MAXUSERS</literal> in der Konfigurationsdatei des Kernels. Auch andere Einstellungen wie die Anzahl der Puffer für Netzwerkoperationen (Details dazu finden Sie in <link linkend="panic-kmemmap-too-small">diesem Abschnitt</link>). werden durch <literal>MAXUSERS</literal> beeinflusst. Wenn Ihr System stark belastet ist, sollten Sie den Wert von <literal>MAXUSERS</literal> erhöhen. Dadurch werden diverse Einstellung des Systems angepasst und die maximale Anzahl gleichzeitig laufender Prozesse erhöht.</para> <para>Um den Wert von <literal>MAXUSERS</literal> anzupassen, folgen Sie den Anweisungen des Abschnitts <ulink url="&url.books.handbook;/configtuning-kernel-limits.html#KERN-MAXFILES"> Datei- und Prozesslimits</ulink> des Handbuchs. Dieser Abschnitt spricht zwar nur von Dateien, für Prozesse gelten aber die gleichen Beschränkungen.</para> <para>Wenn Ihr System nicht besonders stark ausgelastet ist und Sie einfach nur mehr gleichzeitig laufende Prozesse erlauben wollen, können Sie den Wert der Variable <varname>kern.maxproc</varname> in der Datei <filename>/boot/loader.conf</filename> anpassen. Um die Änderung zu aktivieren, müssen Sie Ihr System neu starten. Wollen Sie Ihr System zusätzlich optimieren, sollten Sie &man.loader.conf.5; und &man.sysctl.conf.5; lesen. Wenn diese Prozesse von einem einzigen Benutzer ausgeführt werden, müssen Sie den Wert von <varname>kern.maxprocperuid</varname> ebenfalls erhöhen. Dieser Wert muss immer mindestens um eins geringer sein als der Wert von <varname>kern.maxproc</varname> value. (Der Grund für diese Einschränkung ist, dass ein Systemprogramm, &man.init.8;, immer ausgeführt werden muss.)</para> <para>Damit Änderungen einer sysctl-Variable dauerhaft erhalten bleiben, nehmen Sie diese in <filename>/etc/sysctl.conf</filename> auf. Weitere Informationen zur Optimierung Ihres Systems finden Sie im Abschnitt <ulink url="&url.books.handbook;/configtuning-sysctl.html"> Einstellungen mit sysctl</ulink> des Handbuchs.</para> </answer> </qandaentry> <qandaentry> <question id="cmap-busy-panic"> <para>Wieso erhalte ich die Meldung <errorname>CMAP busy panic</errorname>, wenn ich mein System mit einem neuen Kernel starte?</para> </question> <answer> <para>Die Logik, die versucht, veraltete <filename>/var/db/kvm_*.db</filename>-Dateien zu erkennen, versagt manchmal und die Benutzung einer unpassenden Datei kann zu Paniksituationen führen.</para> <para>Falls das passiert, rebooten Sie im Single-User-Modus und löschen Sie die Dateien:</para> <screen>&prompt.root; <userinput>rm /var/db/kvm_*.db</userinput></screen> </answer> </qandaentry> <qandaentry> <question id="brkadrint-illegal-host-access"> <para>Was soll mir die Meldung <errorname>ahc0: brkadrint, Illegal Host Access at seqaddr 0x0</errorname> sagen?</para> </question> <answer> <para>Dies ist ein Konflikt mit einem Ultrastor SCSI Hostadapter.</para> <para>Rufen Sie während des Bootprozesses das Kernelkonfigurationsmenü auf und deaktivieren Sie <devicename>uha0</devicename>, welches das Problem verursacht.</para> </answer> </qandaentry> <qandaentry> <question id="aci0-illegal-cable"> <para>Wenn ich mein System starte, erhalte ich die Meldung <errorname>ahc0: illegal cable configuration</errorname>, obwohl die Verkabelung korrekt ist. Woran liegt das?</para> </question> <answer> <para>Auf Ihrem Mainboard fehlen ein paar Logikbausteinen, die für die Unterstützung der automatischen Terminierung notwendig sind. Stellen Sie in Ihrem SCSI-BIOS manuell die korrekte Terminierung für Ihr System ein, anstatt sich auf die automatische Terminierung zu verlassen. Der Treiber für den AIC7XXX kann nicht erkennen, ob die externen Logikbausteine für die Erkennung der Kabel (und damit automatische Terminierung) vorhanden sind. Der Treiber muss sich darauf verlassen, dass diese vorhanden sind, wenn in der Konfiguration <quote>automatische Terminierung</quote> eingestellt ist. Ohne die externen Bausteine ist es sehr wahrscheinlich, dass der Treiber die Terminierung falsch einstellt, was die Zuverlässigkeit des SCSI-Busses herabsetzen kann.</para> </answer> </qandaentry> <qandaentry> <question id="mail-loopback"> <para>Wieso meldet Sendmail <errorname>mail loops back to myself</errorname>?</para> </question> <answer> <para>Dies wird in der Sendmail-FAQ wie folgt beantwortet:-</para> <literallayout> * Ich erhalte "Local configuration error" Meldungen, wie: 553 relay.domain.net config error: mail loops back to myself 554 <user@domain.net>... Local configuration error Wie kann ich dieses Problem lösen? Sie haben durch die Benutzung einer MX-Zeile eingestellt, 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 (falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net" in /etc/mail/sendmail.cf ein. </literallayout> <para>Die aktuelle Version der <ulink url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">Sendmail-FAQ</ulink> wird nicht mehr mit dem Sendmail-Release verwaltet. Sie wird jedoch regelmäßig nach <ulink url="news:comp.mail.sendmail">comp.mail.sendmail</ulink>, <ulink url="news:comp.mail.misc">comp.mail.misc</ulink>, <ulink url="news:comp.mail.smail">comp.mail.smail</ulink>, <ulink url="news:comp.answers">comp.answers</ulink> und <ulink url="news:news.answers">news.answers</ulink> gepostet. Sie können auch eine Kopie per E-Mail bekommen, indem Sie eine Mail mit dem Inhalt <literal>send usenet/news.answers/mail/sendmail-faq</literal> an <email>mail-server@rtfm.mit.edu</email> schicken.</para> </answer> </qandaentry> <qandaentry> <question id="remote-fullscreen"> <para>Wieso funktionieren bildschirmorientierte Anwendungen beim Zugriff über ein Netzwerk nicht richtig?</para> </question> <answer> <para>Die entfernte Maschine scheint den Terminaltyp auf etwas anderes als den Typ <literal>cons25</literal>, der von FreeBSD verlangt wird, zu setzen.</para> <para>Es gibt mehrere mögliche Abhilfen für dieses Problem:</para> <itemizedlist> <listitem> <para>Setzen Sie die Shell-Variable TERM nach dem Einloggen auf der entfernten Maschine auf <literal>ansi</literal> oder <literal>sco</literal>, sofern die entfernte Maschine diese Terminaltypen kennt.</para> </listitem> <listitem> <para>Benutzen Sie einen VT100-Emulator wie <application>screen</application> auf der FreeBSD-Console. <application>screen</application> bietet Ihnen die Möglichkeit, mehrere gleichzeitige Sitzungen von einem Bildschirm aus laufen zu lassen. Es ist ein sehr nettes Programm. Jedes <application>screen</application>-Fenster verhält sich, wie ein VT100-Terminal, weshalb die Variable TERM am entfernten Ende auf <literal>vt100</literal> gesetzt werden sollte.</para> </listitem> <listitem> <para>Installieren Sie den Eintrag <literal>cons25</literal> in der Bildschirmdatenbank der entfernten Maschine. Wie das zu geschehen hat, hängt vom Betriebssystem der entfernten Maschine ab. Das Systemadministrationshandbuch für das entfernte System sollte Ihnen hierbei helfen können.</para> </listitem> <listitem> <para>Starten Sie einen X-Server auf der FreeBSD-Seite und benutzen Sie einen X-basierten Terminalemulator wie <command>xterm</command> oder <command>rxvt</command>, um sich auf der entfernten Maschine einzuloggen. Die Variable TERM auf dem entfernten Host sollte auf <literal>xterm</literal> oder <literal>vt100</literal> gesetzt werden.</para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="calcru-negative"> <para>Wieso meldet mein Rechner <errorname>calcru: negative time...</errorname>?</para> </question> <answer> <para>Dies kann durch verschiedene Hardware- oder Softwareprobleme in Verbindung mit Interrupts verursacht werden. Das kann aufgrund von Fehlern sein, aber es kann auch durch die Eigenarten bestimmter Geräte passieren. TCP/IP über die parallele Schnittstelle mit einer großen MTU laufen zu lassen, ist ein sicherer Weg, um dieses Problem hervorzurufen. Grafikbeschleuniger können es auch verursachen. In diesem Fall sollten Sie zunächst die Interrupteinstellungen der Karte überprüfen.</para> <para>Ein Seiteneffekt dieses Problems sind Prozesse, die mit der Meldung <quote>SIGXCPU exceeded cpu time limit</quote> abbrechen.</para> <para>Falls das Problem nicht anders gelöst werden kann, besteht die Lösung darin, diese sysctl-Variable zu setzen:</para> <screen>&prompt.root; <userinput>sysctl -w kern.timecounter.method=1</userinput></screen> <note> <para>Die Option <option>-w</option> von &man.sysctl.8; sollte nicht mehr benutzt werden. Ab FreeBSD 4.4 wird die Option ignoriert. Sie können die Option auch weglassen, wenn Sie mit <command>sysctl</command> Variablen setzen.</para> </note> <para>Das bedeutet zwar Performanceeinbußen, aber in Anbetracht der Ursache für dieses Problem werden Sie das wahrscheinlich nicht bemerken. Fall das Problem weiter bestehen bleibt, lassen sie die sysctl-Variable auf 1 stehen und setzen Sie die Option <literal>NTIMECOUNTER</literal> im Kernel auf immer höhere Werte. Wenn Sie irgendwann <literal>NTIMECOUNTER=20</literal> erreicht haben sollten, ist das Problem nicht gelöst. Die Interrupts auf Ihrer Maschine sind für eine verlässliche Zeiterhaltung nicht zu gebrauchen.</para> </answer> </qandaentry> <qandaentry> <question id="pnp-not-found"> <para>Warum wird meine PnP-Karte nicht mehr (oder nur noch als <literal>unknown</literal>) erkannt, seit ich FreeBSD 4.X benutze?</para> </question> <answer> <para>FreeBSD 4.X ist deutlich <emphasis>PnP-orientierter</emphasis> und das führt leider dazu, dass einige PnP-Geräte (wie z.B. Soundkarten und interne Modems) nicht mehr funktionieren, obwohl Sie von FreeBSD 3.X noch erkannt wurden.</para> <para>Die Gründe für dieses Verhalten werden in der unten zitierten Mail von Mail von Peter Wemm erklärt. Diese Mail stammt von der Mailingliste freebsd-questions und war eine Antwort auf eine Frage bezüglich eines internen Modem, das nach dem Update auf FreeBSD 4.X nicht mehr erkannt wurde.</para> <note> <para>Die mit <literal>[]</literal> gekennzeichneten Kommentare wurden eingefügt, um an einigen Stellen die Bezüge klarstellen.</para> </note> <blockquote> <para>Das PnP-BIOS hat es [das Modem] vorkonfiguriert und es dann im Adressraum liegenlassen, daher haben es die alten ISA-Erkennungsroutinen [in 3.X] <quote>gefunden</quote>.</para> <para>In 4.0 sind die ISA-Routinen deutlich PnP-orientierter. Es war möglich [in 3.X], dass eine ISA-Erkennungsroutinen ein <quote>zugelaufenes</quote> Gerät fand; während die PnP-Treiber zwar die ID erkannten, das Gerät aber wegen des Ressourcekonfliktes nicht benutzen konnten. Daher werden die programmierbaren Karten zunächst einmal abgeschaltet, um diese doppelte Erkennung vermeiden zu können. Das bedeutet allerdings auch, dass die Treiber die PnP-ID kennen muss, um PnP-Hardware unterstützen zu können. Wir haben uns vorgenommen, den Benutzern eine einfachere Möglichkeit zur Manipulation dieser Informationen zur Verfügung zu stellen.</para> </blockquote> <para>Damit Ihr Gerät wieder funktioniert, müssen Sie seine PnP-ID herausfinden und die ID in die Listen eintragen, die zur Erkennung von PnP-Geräten genutzten werden. Zu diesem Zweck wird das Gerät mit &man.pnpinfo.8; analysiert. Das Beispiel zeigt die Ausgaben von &man.pnpinfo.8; für ein internes Modem:</para> <screen>&prompt.root; <userinput>pnpinfo</userinput> Checking for Plug-n-Play devices... Card assigned CSN #1 Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff PnP Version 1.0, Vendor Version 0 Device Description: Pace 56 Voice Internal Plug & Play Modem Logical Device ID: PMC2430 0x3024a341 #0 Device supports I/O Range Check TAG Start DF I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8 [16-bit addr] IRQ: 4 - only one type (true/edge)</screen> <para>[weitere TAG Zeilen gestrichen]</para> <screen>TAG End DF End Tag Successfully got 31 resources, 1 logical fdevs -- card select # 0x0001 CSN PMC2430 (0x3024a341), Serial Number 0xffffffff Logical device #0 IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 IRQ 5 0 DMA 4 0 IO range check 0x00 activate 0x01</screen> <para>Sie benötigen die Information aus der Zeile <quote>Vendor ID</quote> ganz im Anfang. Die in Klammern ausgegebene hexadezimale Zahl (0x3024a341 in diesem Beispiel) ist die PnP ID und die unmittelbar davor stehende Zeichenkette (PMC2430) ist eine eindeutige Herstellerkennung.</para> <para>Benutzen Sie &man.pciconf.8; wenn &man.pnpinfo.8; die Karte nicht anzeigt. Der Teil der Ausgabe von <command>pciconf -vl</command> für eine auf dem Motherboard integrierte Soundkarte sieht zum Beispiel so aus:</para> <screen>&prompt.root; <userinput>pciconf -vl</userinput> chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00 vendor = 'Intel Corporation' device = '82801AA 8xx Chipset AC'97 Audio Controller' class = multimedia subclass = audio</screen> <para>Sie benötigen die Chip-ID <quote>0x24158086</quote>, die hinter <varname>chip</varname> aufgeführt ist.</para> <para>Die Herstellerkennung oder die Chip-ID müssen in die Datei <filename>/usr/src/sys/isa/sio.c</filename> eingetragen werden.</para> <para>Sie sollten zunächst ein Backup von <filename>sio.c</filename> anlegen, falls etwas schief gehen sollte. Sie werden auch einen Patch erzeugen müssen, um ihn zusammen mit Ihrem PR einzusenden. (Sie wollten doch einen PR schreiben, oder etwa nicht?) Öffnen Sie nun <filename>sio.c</filename> mit einem Editor und suchen Sie nach der Zeile</para> <programlisting>static struct isa_pnp_id sio_ids[] = {</programlisting> <para>und blättern Sie dann nach unten, um die passende Stelle für Ihr Gerät zu finden. Unten finden Sie Beispiel für die Einträge, diese sind nach der Herstellerkennung sortiert. Diese sollte in dem Kommentar auf der rechten Seite aufgenommen werden, dazu kommt die Gerätebeschreibung (<emphasis>Device Description</emphasis>) aus der Ausgabe von &man.pnpinfo.8;:</para> <programlisting> {0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */ {0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */ {0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */ {0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */ {0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */ </programlisting> <para>Fügen Sie die hexadezimale Gerätekennung an der richtigen Stelle ein, speichern Sie die Datei ab, erzeugen Sie einen neuen Kernel und starten Sie Ihr System neu. Ihr Gerät sollte nun wie bei FreeBSD 3.X als <literal>sio</literal> Gerät erkannt werden.</para> </answer> </qandaentry> <qandaentry> <question id="nlist-failed"> <para>Warum erhalte ich die Meldung <errorname>nlist failed</errorname>, wenn ich Programme wie <command>top</command> oder <command>systat</command> benutze?</para> </question> <answer> <para>Das Programm sucht nach einem speziellen Symbol im Kernel, kann es aber aus irgendeinem Grunde nicht finden. Dieser Fehler wird von einem dieser Probleme verursacht:</para> <itemizedlist> <listitem> <para>Ihr Kernel und die sonstigen Programme (das <quote>Userland</quote>) sind nicht mehr auf dem gleichen Stand. Mit anderen Worten, Sie haben zwar einen neuen Kernel erzeugt, aber kein <maketarget>installworld</maketarget> (oder umgekehrt); darum weicht die Symboltabelle von dem ab, was die Anwendung erwartet. Wenn dies der Fall ist, müssen Sie lediglich die noch fehlenden Schritte des Upgrades durchführen. Die richtige Vorgehensweise kann <filename>/usr/src/UPDATING</filename> entnommen werden.</para> </listitem> <listitem> <para>Um Ihren Kernel zu laden, benutzen Sie nicht <command>/boot/loader</command>, sondern laden ihn direkt mit boot2 (siehe &man.boot.8;). Es ist zwar nicht immer ein Fehler, <command>/boot/loader</command> zu umgehen; allerdings ist er in der Regel besser dazu geeignet, die Symbole des Kernels für normale Anwendungen verfügbar zu machen.</para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="connection-delay"> <para>Wieso dauert es so lange, bis eine Verbindung (&man.ssh.1; oder &man.telnet.1;) aufgebaut wird?</para> </question> <answer> <para>Das Symptom: Nach dem Aufbau des TCP-Verbindung vergeht einige Zeit, bis endlich die Abfrage des Passwortes (bzw. der Login-Prompt bei Telnet) erscheint.</para> <para>Das Problem: In den meisten Fällen versucht der Server in der Zwischenzeit, die IP-Adresse des Clients in einen Rechnernamen zu übersetzen. Viele Server (darunter die Telnet und SSH Server von FreeBSD) machen das, um den Hostnamen z.B. für spätere Verwendung durch den Systemadministrator in eine Protokolldatei schreiben zu können.</para> <para>Die Lösung: wenn das Problem bei jedem Server auftritt, den Sie von Ihrem Computer (dem Client) ansprechen, dann wird das Problem vom Client verursacht. Wenn das Problem aber nur auftritt, wenn jemand Ihren Rechner (den Server) anspricht, dann liegt die Ursache beim Server.</para> <para>Wenn das Problem vom Client verursacht wird, müsssen Sie die Einträge im DNS korrigieren, damit der Server Ihre IP-Adresse übersetzen kann. Wenn das Problem in Ihrem lokalen Netzwerk auftritt, sollten Sie es als Problem des Servers behandeln und weiterlesen; wenn es allerdings im Internet auftritt, werden Sie sich wahrscheinlich an Ihrem ISP wenden müssen, damit dieser das Problem für Sie korrigiert.</para> <para>Wenn das Problem vom Server verursacht wird und Sie sich in einem lokalen Netzwerk befinden, dann müssen Sie Ihren Server so konfigurieren, dass er die lokal genutzten IP-Adressen in Rechnernamen übersetzen kann. Weitere Informationen erhalten Sie in den Onlinehilfen zu &man.hosts.5; und &man.named.8;. Wenn dieses Problem im Internet auftritt, könnte die Ursache auch darin liegen, dass die Namensauflösung auf dem Server nicht funktioniert. Versuchen Sie, einen anderen Hostnamen wie z.B. <hostid>www.yahoo.com</hostid> aufzulösen. Wenn das nicht funktioniert, liegt das Problem bei Ihrem System.</para> <para>Haben Sie &os; gerade erst installiert, kann es auch sein, dass die Domänen- und Nameserverinformationen noch nicht in <filename>/etc/resolv.conf</filename> vorhanden sind. Dadurch kommt es häufig zu Verzögerungen beim Einsatz von <application>SSH</application>, weil die Option <quote>UseDNS</quote> in der Voreinstellung auf <quote>yes</quote> gesetzt ist (in der Datei <filename>sshd_config</filename> im Verzeichnis <filename>/etc/ssh</filename>). Ist dies bei Ihnen der Fall, müssen Sie entweder die fehlenden Informationen in <filename>/etc/resolv.conf</filename> eintragen oder als temporäre Maßnahme <quote>UseDNS</quote> auf <quote>no</quote> setzen.</para> </answer> </qandaentry> <qandaentry> <question id="stray-irq"> <para>Was bedeutet <errorname>stray IRQ</errorname>?</para> </question> <answer> <para>Stray IRQs sind ein Zeichen für Probleme bei der Behandlung von Hardware-IRQs. Sie werden meistens von Geräten verursacht, die ihren Interrupt Request zurückziehen, obwohl gerade der interrupt request acknowledge-Zyklus läuft.</para> <para>Sie können drei Dinge tun:</para> <itemizedlist> <listitem> <para>Ertragen Sie die Warnungen. Sie erhalten nur die ersten 5 für jeden IRQ, alle anderen werden unterdrückt.</para> </listitem> <listitem> <para>Eliminieren Sie die Meldungen, indem Sie in <function>isa_strayintr()</function> den Wert 5 auf 0 ändern, um alle Meldungen zu unterdrücken.</para> </listitem> <listitem> <para>Eliminieren Sie die Meldungen, indem Sie Hardware für den Parallelport installieren, die IRQ 7 nutzt und vom PPP Treiber verwendet wird (das passiert auf den meisten Systemen), und installieren Sie eine IDE-Platte oder andere Hardware sowie einen dazu passenden Treiber, um IRQ 15 zu nutzen.</para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="file-table-full"> <para>Warum sehe ich in der Ausgabe von dmesg häufig die Meldung <errorname>file: table is full</errorname>?</para> </question> <answer> <para>Diese Fehlermeldung besagt, dass Sie die zur Verfügung stehenden File-Handles des Systems verbraucht haben. Was das genau bedeutet und wie Sie dieses Problem lösen können, steht im Abschnitt <ulink url="&url.books.handbook;/configtuning-kernel-limits.html#KERN-MAXFILES"> kern.maxfiles</ulink> im Kapitel <ulink url="&url.books.handbook;/configtuning-kernel-limits.html">Anpassung der Kernelkonfiguration</ulink> des Handbuchs.</para> </answer> </qandaentry> <qandaentry> <question id="laptop-clock-skew"> <para>Warum ist die Uhrzeit auf meinem Laptop immer falsch?</para> </question> <answer> <para>Ihr Laptop verfügt über mehr als eine Uhr und FreeBSD benutzt leider die falsche.</para> <para>Starten Sie &man.dmesg.8; und achten Sie auf die Zeilen, in denen das Wort <literal>Timecounter</literal> vorkommt. Die von FreeBSD benutzte Uhr steht in der letzten Zeile, mit an Sicherheit grenzender Wahrscheinlichkeit wird es <literal>TSC</literal> sein.</para> <screen>&prompt.root; <userinput>dmesg | grep Timecounter</userinput> Timecounter "i8254" frequency 1193182 Hz Timecounter "TSC" frequency 595573479 Hz</screen> <para>Sie können das überprüfen, indem Sie den Wert der Systemvariablen <varname>kern.timecounter.hardware</varname> abfragen.</para> <screen>&prompt.root; <userinput>sysctl kern.timecounter.hardware</userinput> kern.timecounter.hardware: TSC</screen> <para>Es ist durchaus möglich, dass das BIOS die TSC Uhr ändert, um beispielsweise den CPU-Takt zu während des Batteriebetrieb zu ändern, oder im Stromsparmodus; leider bemerkt FreeBSD diese Änderungen nicht und daher scheint die Uhr falsch zu gehen.</para> <para>In diesem Beispiel ist die Uhr <literal>i8254</literal> ebenfalls verfügbar; um sie auszuwählen, muss ihr Name in die Systemvariable <varname>kern.timecounter.hardware</varname> geschrieben werden.</para> <screen>&prompt.root; <userinput>sysctl -w kern.timecounter.hardware=i8254</userinput> kern.timecounter.hardware: TSC -> i8254</screen> <para>Die Uhrzeit Ihres Laptops sollte nun genauer funktionieren.</para> <para>Damit diese Änderung automatisch beim Start des Systems durchgeführt wird, müssen Sie die folgende Zeile in die <filename>/etc/sysctl.conf</filename> eintragen.</para> <programlisting>kern.timecounter.hardware=i8254</programlisting> </answer> </qandaentry> <qandaentry> <question id="null-null"> <para>Warum erkennt mein Laptop PC-Cards nicht?</para> </question> <answer> <para>Dieses Problem tritt häufig auf Laptops mit mehreren Betriebssystemen auf. Einige nicht-BSD Betriebssysteme lassen die Hardware in einem inkonsistenten Zustand. Die Karte wird dann von <command>pccardd</command> als <errorname>"(null)""(null)"</errorname> anstelle des tatsächlichen Modells gefunden.</para> <para>Um dies zu beheben, müssen Sie die Hardware zurücksetzen, das heißt der PC-Card Einschub muss stromlos sein. Gehen Sie dazu nicht in den Standby- oder Suspend-Modus und stellen Sie sicher, dass der Laptop wirklich ausgeschaltet ist. Warten Sie einen Moment und booten dann, Ihre PC-Card sollte jetzt funktionieren.</para> <para>Einige Laptops schalten sich nicht wirklich aus. Wenn der obige Vorschlag nichts genutzt hat, entfernen Sie bitte die Batterie, warten einen Moment und booten erneut.</para> </answer> </qandaentry> <qandaentry> <question id="boot-read-error"> <para>Wieso hängt sich FreeBSD nach dem BIOS-Bildschirm mit der Meldung <errorname>Read error</errorname> auf?</para> </question> <answer> <para>Der Bootloader von FreeBSD erkennt die Geometrie Ihrer Festplatte nicht richtig. Sie müssen die Geometrie manuell festlegen, wenn sie mit fdisk FreeBSD-Bereiche erzeugen oder ändern.</para> <para>Die richtigen Werte für die Geometrie können Sie im BIOS des Rechners ablesen. Achten Sie auf die Anzahl der Zylinder, Köpfe und Sektoren für Ihre Festplatte.</para> <para>Im fdisk von &man.sysinstall.8; müssen Sie <keycap>G</keycap> eingeben, um die Geometrie zu definieren.</para> <para>Sie erhalten eine Dialogbox, in der Sie die Anzahl der Zylinder, Köpfe und Sektoren eingeben können. Verwenden Sie die Angaben des BIOS und setzen Sie Schrägstriche zwischen die Zahlen. 5000 Zylinder, 250 Köpfe und 60 Sektoren würden also als <userinput>5000/250/60</userinput> eingegeben.</para> <para>Schließen Sie die Eingabe mit <keycap>Enter</keycap> ab und drücken Sie <userinput>W</userinput>, um die neue Partitionstabelle auf die Festplatte schreiben zu lassen.</para> </answer> </qandaentry> <qandaentry> <question id="bootmanager-restore"> <para>Ein anderes Betriebssystem hat meinen Bootmanager zerstört. Wie kann ich ihn wiederherstellen?</para> </question> <answer> <para>Starten Sie &man.sysinstall.8; und wählen Sie Configure, dann Fdisk. Wählen Sie die Platte, auf der sich der Boot Manager befand, mit der <keycap>Leertaste</keycap> aus. Drücken Sie <keycap>W</keycap>, um die Änderungen auf die Platten schreiben zu lassen. Nun erscheint eine Abfrage, welcher Bootmanager installiert werden soll. Wählen Sie diesen an und er wird wieder installiert.</para> </answer> </qandaentry> <qandaentry> <question id="indefinite-wait-buffer"> <para>Was soll mir die Meldung <errorname>swap_pager: indefinite wait buffer:</errorname> sagen?</para> </question> <answer> <para>Ein Programm wollte Speicher auf Platte auslagern, und dieser Vorgang konnte nicht innerhalb von 20 Sekunden durchgeführt werden. Mögliche Gründe sind defekte Blöcke auf der Platte, falsche oder fehlerhafte Verkabelung sowie Probleme mit anderen Komponenten, die am Zugriff auf die Festplatte beteiligt sind. Wenn die Festplatte selbst fehlerhaft sind, sollten Sie entsprechende Meldungen in <filename>/var/log/messages</filename> und den Ausgaben von <command>dmesg</command> finden. Andernfalls sollten Sie die Kabel und Verbindungen überprüfen.</para> </answer> </qandaentry> <qandaentry> <question id="udma-icrc"> <para>Was sind <quote>UDMA ICRC</quote> Fehler und wie behebe ich sie?</para> </question> <answer> <para>Der &man.ata.4;-Treiber meldet <quote>UDMA ICRC</quote> Fehler wenn eine DMA-Übertragung zu oder von einem Laufwerk fehlgeschlagen ist. Der Treiber versucht die Übertragung mehrmals durchzuführen und schaltet, wenn die Versuche fehlschlagen, vom DMA-Modus auf den langsameren PIO-Modus um.</para> <para>Der Fehler kann viele Ursachen haben, häufig ist ein Kabel kaputt oder die Geräte sind falsch verkabelt. Prüfen Sie, ob die ATA-Kabel unbeschädigt sind und für den verwendeten Ultra-DMA-Modus tauglich sind. Ebenso müssen Wechselrahmen für den verwendeten Modus geeignet sein. Stellen Sie sicher, dass alle Kabel fest angeschlossen sind. Es gab auch schon Probleme, wenn ein altes Laufwerk zusammen mit einem Ultra-DMA-66 oder einem schnelleren Laufwerk auf einem Kanal betrieben wurde. Es kann aber auch sein, dass das Laufwerk kaputt ist. Die meisten Hersteller stellen Test-Programme für ihre Laufwerke zur Verfügung. Überprüfen Sie damit Ihr Laufwerk und wenn nötig, sichern Sie Ihre Daten und ersetzen das Laufwerk.</para> <para>&man.atacontrol.8; zeigt für jedes ATA-Gerät den verwendeten DMA- oder PIO-Modus an. Das Kommando <command>atacontrol mode <replaceable>Kanal</replaceable></command> zeigt die auf einem Kanal verwendeten Modi (die Kanäle werden von <literal>0</literal> an nummeriert).</para> </answer> </qandaentry> <qandaentry> <question id="lock-order-reversal"> <para>Was ist ein <errorname>lock order reversal</errorname>?</para> </question> <answer> <para>&a.rwatson; hat diese Frage auf der Mailingliste freebsd-current ausführlich beantwortet. Das Original seiner Antwort finden Sie über den Thread <quote><ulink url="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=65165+0+/usr/local/www/db/text/2003/freebsd-current/20031221.freebsd-current"> lock order reversals - what do they mean?</ulink></quote>. </para> <blockquote> <attribution>&a.rwatson; am 14. Dezember 2003 auf freebsd-current</attribution> <para>Diese Warnungen werden von Witness, einem Diagnosesystem, das Verklemmungen (<foreignphrase>deadlocks</foreignphrase>) zur Laufzeit erkennen kann, ausgegeben. Dieses System ist in FreeBSD -CURRENT-Kerneln vorhanden (aber nicht in Release-Kerneln) und wird in &man.witness.4; beschrieben. Unter anderem ist Witness in der Lage, die korrekte Reihenfolge von bekannten sowie zur Laufzeit entdeckten Ressource-Locks zu überprüfen, und eine Warnung auszugeben, wenn diese Reihenfolge verletzt wird. Dadurch wird es möglich, potentielle Verklemmungen (<foreignphrase>deadlocks</foreignphrase>) zu entdecken. Beachten Sie, dass Witness sehr vorsichtig ist und daher Falschmeldungen ausgeben kann. Falls Witness ein Verklemmungsproblem meldet, bedeutet dies: <quote>Wenn Sie Pech gehabt hätten, wäre es jetzt zu einer Verklemmung gekommen.</quote> Es sind einige falsch positive Meldungen bekannt, die noch besser dokumentiert werden müssten, um unnötige Problemmeldungen zu vermeiden. Neu auftretende Meldungen beruhen in der Regel auf Bugs in neu hinzugefügten Ressource-Locks, und werden meist rasch behoben, weil Witness laufend Fehlermeldungen produziert. :-).</para> </blockquote> <note> <para>Lesen Sie auch die <ulink url="http://sources.zabbadoz.net/freebsd/lor.html">lock order reversal page</ulink> von Bjoern Zeeb, um sich über den Status bekannter <foreignphrase>lock order reversals</foreignphrase> zu informieren.</para> </note> </answer> </qandaentry> <qandaentry> <question id="called-with-non-sleepable-locks-held"> <para>Warum erhalte ich die Meldung <errorname>Called ... with the following non-sleepable locks held</errorname>?</para> </question> <answer> <para>Diese Meldung erscheint, wenn eine Funktion, die sich im Ruhemodus befindet, aufgerufen wird, während ein Mutex oder eine andere (nicht in den Ruhemodus versetzbare) Sperre aktiv war.</para> <para>Der Grund dafür ist, dass ein Mutex nicht für längere Zeitspannen aktiv sein soll, sondern nur für die Synchronisation von Gerätetreibern mit dem Rest des Kernels während eines Interrupts. Unter FreeBSD dürfen Interrupts nicht in den Ruhemodus versetzt werden. Daher ist es von entscheidender Bedeutung, dass während des Bestehens eines Mutex kein Kernelsubsystem für einen längeren Zeitraum blockiert ist.</para> <para>Um solche Fehler abzufangen, können Sicherungen (<foreignphrase>Assertions</foreignphrase>) in den Kernel eingebaut werden, die danach mit dem Witness-Subsystem interagieren. Dadurch wird (in Abhängigkeit von Ihrer Systemkonfiguration) eine Warnung oder eine Fehlermeldung ausgegeben, falls der Aufruf einer Funktion während des Bestehens eines Mutex zu einer Blockierung führen kann.</para> <para>Zusammenfassend kann man sagen, dass diese Warnungen in der Regel zwar nicht bedrohlich sind. Unter bestimmten Umständen kann es aber dennoch zu unerwünschten Nebenwirkungen, angefangen von einer Erhöhung der Reaktionszeit bis hin zu einem kompletten Einfrieren des Systems kommen.</para> </answer> </qandaentry> <qandaentry> <question id="touch-not-found"> <para>Warum bricht buildworld/installworld mit der Meldung <errorname>touch: not found</errorname> ab?</para> </question> <answer> <para>Dieser Fehler bedeutet nicht, dass &man.touch.1; nicht auf Ihrem System vorhanden ist. Vielmehr sind Dateien die Ursache, deren Erzeugungsdatum in der Zukunft liegt. Wenn Ihre CMOS-Uhr auf Ihre lokale Zeit eingestellt ist, müssen Sie <command>adjkerntz -i</command> verwenden, um die Kerneluhr anzupassen, wenn Sie in den Single-User-Modus booten.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="commercial"> <title>Kommerzielle Anwendungen</title> <note> <para>Dieser Abschnitt ist immer noch sehr dürftig, aber wir hoffen natürlich, dass Unternehmen einen Beitrag leisten werden! :) Die FreeBSD-Gruppe hat keinerlei finanzielle Interessen an einem der hier aufgelisteten Unternehmen, sondern listet sie lediglich als öffentlichen Service auf (und ist der Meinung, dass ein kommerzielles Interesse an FreeBSD sehr positiven Einfluss auf ein langfristiges Bestehen von FreeBSD haben kann). Wir möchten Anbieter kommerzieller Software dazu aufrufen, ihren Eintrag hier aufnehmen zu lassen. Auf der <ulink url="&url.base;/commercial/commercial.html"> Anbieter-Seite</ulink> finden Sie eine längere Liste.</para> </note> <qandaset> <qandaentry> <question id="officesuite"> <para>Wo bekomme ich FreeBSD-Versionen der klassischen Büro-Anwendungen?</para> </question> <answer> <para>Das als Open Source verfügbare Office-Paket <ulink url="http://www.openoffice.org">OpenOffice</ulink> läuft nativ unter FreeBSD. Die um zusätzliche Funktionen erweiterte kommerzielle OpenOffice-Version <ulink url="http://www.sun.com/staroffice/">StarOffice</ulink> läuft in der &linux;-Version ebenfalls problemlos unter FreeBSD.</para> <para>In der Ports-Sammlung sind weitere Textbearbeitungsprogramme, Tabellenkalkulationen und Zeichenprogramme enthalten.</para> </answer> </qandaentry> <qandaentry> <question id="motif"> <para>Woher kann ich &motif; für FreeBSD bekommen?</para> </question> <answer> <para>Der Quelltext für &motif; 2.2.2 wurde von der <quote>Open Group</quote> herausgegeben. Sie können entweder das Package <literal>open-motif</literal> installieren oder es mit dem entsprechenden Port selbst compilieren. Weitere Informationen über die Benutzung der Ports erhalten Sie im <ulink url="&url.books.handbook;/ports.html">Kapitel Ports des Handbuchs</ulink>.</para> <note> <para>Die Open &motif; Distribution darf nur weitergegeben werden, wenn sie auf einem <ulink url="http://www.opensource.org">Open Source</ulink> Betriebssystem benutzt wird.</para> </note> <para>Weiterhin gibt es auch kommerzielle &motif;-Paket, die zwar nicht kostenlos sind, aber dafür auch mit <quote>closed source</quote> Software benutzt werden dürfen. Um die günstigste ELF-&motif; 2.1.20 Distribution für FreeBSD (entweder &i386; oder Alpha) zu bekommen, wenden Sie sich bitte an <link linkend="apps2go">Apps2go</link>.<anchor id="apps2go"></para> <para>Es gibt zwei Distributionen, die <quote>development edition</quote> und die <quote>runtime edition</quote> (wesentlich günstiger). Diese Distributionen enthalten:</para> <itemizedlist> <listitem> <para>OSF/&motif; manager, xmbind, panner, wsm.</para> </listitem> <listitem> <para>Development-Kit mit uil, mrm, xm, xmcxx, Include- und Imake-Dateien.</para> </listitem> <listitem> <para>Statische und dynamische ELF-Bibliotheken.</para> </listitem> <listitem> <para>Demonstrations-Applets.</para> </listitem> </itemizedlist> <para>Achten Sie darauf, dass Sie bei der Bestellung angeben, dass Sie die FreeBSD-Version von &motif; möchten (vergessen Sie auch nicht, die Architektur anzugeben)! Von <emphasis>Apps2go</emphasis> werden auch Versionen für NetBSD und OpenBSD verkauft. Dieses Produkt ist zurzeit nur zum Download per FTP verfügbar.</para> <variablelist> <varlistentry> <term>Weitere Informationen</term> <listitem> <para><ulink url="http://www.apps2go.com/">Apps2go Web-Seite</ulink></para> </listitem> </varlistentry> <varlistentry> <term>oder</term> <listitem> <para><email>sales@apps2go.com</email> oder <email>support@apps2go.com</email></para> </listitem> </varlistentry> <varlistentry> <term>oder</term> <listitem> <para>Telefon (817) 431 8775 oder +1 817 431-8775</para> </listitem> </varlistentry> </variablelist> <para>Eine &motif; 2.0 Distribution für FreeBSD im a.out-Format gibt es bei <link linkend="xig">Xi Graphics</link>.</para> <para>Diese Distribution enthält:/</para> <itemizedlist> <listitem> <para>OSF/&motif; manager, xmbind, panner, wsm.</para> </listitem> <listitem> <para>Development-Kit mit uil, mrm, xm, xmcxx, Include- und Imake-Dateien.</para> </listitem> <listitem> <para>Statische und dynamische Bibliotheken (zur Verwendung unter FreeBSD 2.2.8 und frühere).</para> </listitem> <listitem> <para>Demonstrations-Applets.</para> </listitem> <listitem> <para>Vorformatierte Manualpages.</para> </listitem> </itemizedlist> <para>Achten Sie darauf, bei der Bestellung anzugeben, dass Sie die FreeBSD-Version von &motif; möchten! <emphasis>Xi Graphics</emphasis> verkauft auch Versionen für BSDI und &linux;. Dieses Produkt ist derzeit ein Satz von vier Disketten... zukünftig wird es eine einheitliche CD-Distribution geben, wie beim CDE.</para> </answer> </qandaentry> <qandaentry> <question id="cde"> <para>Woher kann ich CDE für FreeBSD bekommen?</para> </question> <answer> <para><link linkend="xig">Xi Graphics</link> hat einmal CDE für FreeBSD verkauft, tut es aber nicht mehr.</para> <para><ulink url="http://www.kde.org/">KDE</ulink> ist ein Open-Source X11-Desktop, der CDE in vielen Punkten ähnelt. Eventuell gefällt Ihnen auch das "Look and Feel" von <ulink url="http://www.xfce.org/">xfce</ulink>. KDE und xfce sind über die <ulink url="&url.base;/ports/index.html">Ports-Sammlung</ulink> von FreeBSD verfügbar.</para> </answer> </qandaentry> <qandaentry> <question id="commercial-xserver"> <para>Gibt es irgendwelche kommerzielle leistungsfähige X-Server?</para> </question> <answer> <para>Ja, <ulink url="http://www.xig.com/">Xi Graphics</ulink> vertreibt beschleunigte X-Produkte für FreeBSD und andere Intel-basierte Systeme.</para> <para>Das Angebot von Xi Graphics besteht aus einem leistungsfähigen X-Server, der einfache Konfiguration und Unterstützung für den parallelen Einsatz mehrerer Videokarten bietet. Es wird in binärer Form in einer einheitlichen Diskettendistribution für FreeBSD und Linux vertrieben. XI Graphics bietet auch leistungsfähige X-Server, die auf die Unterstützung von Laptops zugeschnitten sind. <anchor id="xig"></para> <para>Es gibt ein kostenloses <quote>Kompatibilitäts-Demo</quote> der Version 5.0.</para> <para>Xi Graphics vertreibt auch &motif; und CDE für FreeBSD (siehe oben).</para> <variablelist> <varlistentry> <term>Weitere Informationen</term> <listitem> <para><ulink url="http://www.xig.com/">Xi Graphics Web-Seite</ulink></para> </listitem> </varlistentry> <varlistentry> <term>oder</term> <listitem> <para><email>sales@xig.com</email> oder <email>support@xig.com</email></para> </listitem> </varlistentry> <varlistentry> <term>oder</term> <listitem> <para>Telefon (800) 946 7433 oder +1 303 298-7478.</para> </listitem> </varlistentry> </variablelist> </answer> </qandaentry> <qandaentry> <question id="database-systems"> <para>Gibt es irgendwelche Datenbanksysteme für FreeBSD?</para> </question> <answer> <para>Ja! Lesen Sie den Abschnitt <ulink url="&url.base;/commercial/software_bycat.html#CATEGORY_DATABASE"> kommerzielle Anbieter</ulink> auf der FreeBSD-Web-Seite.</para> <para>Schauen Sie auch im Abschnitt <ulink url="&url.base;/ports/databases.html">Datenbanken</ulink> der Ports-Sammlung nach.</para> </answer> </qandaentry> <qandaentry> <question id="oracle-support"> <para>Kann ich &oracle; unter FreeBSD laufen lassen?</para> </question> <answer> <para>Ja. Die folgenden Seiten beschreiben genau, wie sich &linux;-&oracle; unter FreeBSD installieren lässt:</para> <itemizedlist> <listitem> <para><ulink url="http://www.scc.nl/~marcel/howto-oracle.html"></ulink></para> </listitem> <listitem> <para><ulink url="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd"></ulink></para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="commercial-webbrowsers"> <para>Gibt es für &os; auch kommerzielle Webbrowser?</para> </question> <answer> <para>Ja. Opera ist für verschiedene Plattformen, darunter auch &os;, verfügbar. Informieren Sie sich bitte auf <ulink url="http://www.opera.com/">www.opera.com</ulink>. Eine werbefinanzierte Version von Opera ist in der Portssammlung enthalten.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="applications"> <title>Benutzerprogramme</title> <qandaset> <qandaentry> <question id="user-apps"> <para>Nun, wo sind die ganzen Benutzerprogramme?</para> </question> <answer> <para>Werfen Sie bitte einen Blick auf <ulink url="&url.base;/ports/index.html">die Ports-Seite</ulink>, um Informationen über die nach FreeBSD portierten Softwarepakete zu erhalten. Die Liste enthält zurzeit &os.numports; Einträge und wächst täglich. Schauen Sie hier also öfter nach oder melden Sie sich bei der <link linkend="mailing">Mailingliste</link><literal>freebsd-announce</literal> an, um sich regelmäßig über Änderungen zu informieren.</para> <para>Die meisten Ports sollten auf den 4.X, 5.X und 6.X-Systemen laufen. Jedes Mal, wenn ein FreeBSD-Release erstellt wird, wird auch ein Snapshot des Port-Baumes vom Zeitpunkt des Releases in das Verzeichnis <filename>ports/</filename> eingefügt.</para> <para>Wir unterstützen auch das Konzept von <quote>Packages</quote> - im Grunde genommen nicht mehr als komprimierte Binärdistributionen mit ein wenig zusätzlicher Intelligenz zur Ermöglichung angepasster Installationen. Ein Package kann leicht installiert und wieder deinstalliert werden, ohne, dass man etwas über wissen muss, welche Dateien es enthält.</para> <para>Benutzen Sie das Paketinstallationsmenü in <filename>/stand/sysinstall</filename> (unter dem Menüpunkt post-configuration) oder führen Sie den Befehl &man.pkg.add.1; mit den speziellen Paketdateien aus, die Sie installieren möchten. Paketdateien können für gewöhnlich an der Endung <filename>.tgz</filename> oder <filename>.tbz</filename> erkannt werden und diejenigen, die über eine CDROM-Distribution verfügen, haben auf ihrer CD ein Verzeichnis <filename>packages/All</filename>, das solche Dateien enthält. Für verschiedene FreeBSD-Versionen können sie von folgenden Adressen auch über das Netz heruntergeladen werden:</para> <variablelist> <varlistentry> <term>für 4.X-RELEASE/4-STABLE</term> <listitem> <para><ulink url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/"> ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable</ulink></para> </listitem> </varlistentry> <varlistentry> <term>für 5.X-RELEASE/5-STABLE</term> <listitem> <para><ulink url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable/"> ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable</ulink></para> </listitem> </varlistentry> <varlistentry> <term>für 6.X-RELEASE/6-STABLE</term> <listitem> <para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable/"> ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable</ulink></para> </listitem> </varlistentry> <varlistentry> <term>für 7-CURRENT</term> <listitem> <para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current/"> ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current</ulink></para> </listitem> </varlistentry> </variablelist> <para>oder von Ihrem nächstgelegenen Mirror.</para> <para>Beachten Sie, dass nicht alle Ports als Package verfügbar sind, da ständig neue hinzugefügt werden. Es ist immer eine gute Idee, sich regelmäßig auf der <ulink url="ftp://ftp.de.FreeBSD.org/pub/FreeBSD/">ftp.de.FreeBSD.org</ulink> Masterseite darüber zu informieren, welche Packages verfügbar sind.</para> </answer> </qandaentry> <qandaentry> <question id="configure-inn"> <para>Wie konfiguriere ich INN (Internet News) für meine Maschine?</para> </question> <answer> <para>Ein idealer Startpunkt nach der Installation des Packages oder Ports <filename role="package">news/inn</filename> ist <ulink url="http://www.visi.com/~barr/INN.html">Dave Barr's INN-Seite</ulink>, wo Sie die INN-FAQ finden.</para> </answer> </qandaentry> <qandaentry> <question id="java"> <para>Unterstützt FreeBSD &java;?</para> </question> <answer> <para>Ja. Informieren Sie sich bitte unter <ulink url="&url.base;/java/">http://www.de.FreeBSD.org/java/</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="ports-4x"> <para>Warum kann ich manche Ports auf meiner 4.X-STABLE-Maschine nicht erstellen?</para> </question> <answer> <para>Wenn Sie eine FreeBSD-Version benutzen, die deutlich älter als das aktuelle -CURRENT oder -STABLE ist, könnte es sein, dass Sie vorher Ihre Ports-Sammlung aktualisieren müssen. Lesen Sie dazu den Abschnitt <ulink url="&url.books.porters-handbook.en;/keeping-up.html"> Keeping Up</ulink> des Porters-Handbuch. Ist Ihre Ports-Sammlung aktuell, könnte es sein, dass jemand eine Änderung am Port durchgeführt hat, die für -CURRENT funktioniert, den Port für -STABLE aber unbrauchbar gemacht hat. Bitte senden Sie einen Fehlerbericht mit dem Befehl &man.send-pr.1;. Von der Ports-Sammlung wird nämlich erwartet, dass sie sowohl auf -CURRENT als auch auf -STABLE funktioniert.</para> </answer> </qandaentry> <qandaentry> <question id="make-index"> <para>Ich habe gerade versucht, <filename>INDEX</filename> mit <command>make index</command> zu bauen, und es hat nicht geklappt. Woran liegt das?</para> </question> <answer> <para>Stellen Sie zuerst sicher, dass Ihre Ports-Sammlung aktuell ist. Fehler, die einen Bau von <filename>INDEX</filename> aus einer aktuellen Ports-Sammlung verhindern, sind sofort sichtbar und werden daher fast immer umgehend behoben.</para> <para>Ist Ihre Ports-Sammlung jedoch aktuell, haben Sie vielleicht ein anderes Problem. <command>make index</command> hat einen Bug im Umgang mit unvollständigen Kopien der Ports-Sammlung. Es nimmt an, dass Sie über eine lokale Kopie aller Ports verfügen, von denen jeder lokale Port abhängt. Wenn Sie also beispielsweise eine Kopie von <filename>foo/bar</filename> auf Ihrem System haben, und <filename>foo/bar</filename> ist von <filename>baz/quux</filename> abhängig, dann muss auch eine Kopie von <filename>baz/quux</filename> auf Ihrem System vorhanden sein, sowie eine Kopie aller Ports, von denen <filename>baz/quux</filename> abhängt. Anderenfalls ist <command>make index</command> aufgrund fehlender Informationen nicht in der Lage, den Abhängigkeitsbaum zu erzeugen.</para> <para>Dieses Problem tritt vor allem dann auf, wenn &os;-Benutzer &man.cvsup.1; verwenden, um die Ports-Sammlung zu aktualisieren und dabei verschiedene Kategorien durch die Datei <filename>refuse</filename> von der Aktualisierung ausschließen. Theoretisch ist es zwar möglich, Kategorien auszuschließen, in der Praxis gibt es aber zu viele Ports, die von Ports in anderen Kategorien abhängen. Wenn Sie also <filename>INDEX</filename> bauen wollen, <emphasis>müssen</emphasis> Sie über eine komplette Kopie der Ports-Sammlung verfügen.</para> <para>Es gibt seltene Fälle, in denen <filename>INDEX</filename> nicht gebaut werden kann, wenn bestimmte <makevar>WITH_<replaceable>*</replaceable></makevar> oder <makevar>WITHOUT_<replaceable>*</replaceable></makevar> Variablen in <filename>make.conf</filename> gesetzt sind. Wenn Sie dieses Problem haben, sollten Sie diese make-Variablen deaktivieren und <filename>INDEX</filename> erneut bauen, bevor Sie das Problem an &a.ports; melden.</para> </answer> </qandaentry> <qandaentry> <question id="cvsup-in-base"> <para>Warum ist CVSup nicht im FreeBSD-Basisquellbaum enthalten?</para> </question> <answer> <para>Das Basissystem von FreeBSD soll <quote>selbstverwaltend</quote> sein. Es soll also möglich sein, das komplette Betriebssystem mit einer beschränkten Anzahl von Werkzeugen zu starten. Daher werden die zum Bau von FreeBSD nötigen Werkzeuge mit dem Quelltext gekoppelt. Zu diesen Werkzeugen gehören ein C-Compiler (&man.gcc.1;), &man.make.1;, &man.awk.1; und andere.</para> <para>Da CVSup in Modula-3 geschrieben wurde, müsste ein Modula-3-Compiler ins Basissystem aufgenommen und auch gewartet werden. Dies würde einen gestiegenen Speicherbedarf für die FreeBSD-Quellen sowie einen erhöhten Wartungsaufwand verursachen. Daher ist es sowohl für Entwickler als auch Benutzer einfacher, CVSup bei Bedarf als Port oder als Paket von einer Installations-CD zu installieren.</para> </answer> </qandaentry> <qandaentry> <question id="ports-update"> <para>Ich habe die Sourcen aktualisiert, wie aktualisiere ich jetzt die installierten Ports?</para> </question> <answer> <para>FreeBSD enthält zwar kein Programm, das die installierten Ports aktualisiert, allerdings existieren diverse Programme, die diesen Prozess etwas vereinfachen. Weiterhin können Sie zusätzliche Programme installieren, die Sie dabei unterstützen.</para> <para>Sie können mit &man.pkg.version.1; ein Script erzeugen, das die installieren Ports mit einer neueren Version aus der Ports-Sammlung ersetzt:</para> <screen>&prompt.root; <userinput>pkg_version -c > <replaceable>/tmp/myscript</replaceable></userinput></screen> <para>Das so erzeugte Script <emphasis>muss</emphasis> manuell geändert werden, bevor es benutzt wird. Neuere Versionen von &man.pkg.version.1; erzwingen dies, indem sie ein &man.exit.1; an den Anfang des Scripts setzen.</para> <para>Sie sollten die Ausgaben des Scripts abspeichern, da sie Ihnen melden werden, welche Ports von den dem gerade aktualisierten Port abhängen. Es ist möglich, dass diese auch aktualisiert werden müssen. Der typische Fall, in dem ein Update erforderlich ist, ist eine Änderung der Versionsnummer einer shared library; in diesem Fall müssen die abhängigen Ports neu übersetzt werden, damit sie die neue Library benutzen.</para> <note> <para>Ab FreeBSD 5.0 steht die Option <option>-c</option> in &man.pkg.version.1; nicht mehr zur Verfügung.</para> </note> <para>Falls Sie über genügend freien Plattenplatz verfügen, können Sie diesen Prozess mit <command>portupgrade</command> automatisieren. <command>portupgrade</command> umfasst diverse Programme, die die Arbeit mit Packages erleichtern und ist als <filename role="package">sysutils/portupgrade</filename> verfügbar. Da <command>portupgrade</command> in Ruby geschrieben wurde, wird es wahrscheinlich nie ein Bestandteil von FreeBSD werden. Allerdings sollte das niemanden davon abhalten, es trotzdem zu benutzen.</para> <para>Wenn Ihr System rund um die Uhr läuft, kann es jede Woche automatisch eine Liste der Ports erzeugen, die wahrscheinlich aktualisiert werden müssen. Fügen Sie dazu <literal>weekly_status_pkg_enable="YES"</literal> in <filename>/etc/periodic.conf</filename> ein.</para> </answer> </qandaentry> <qandaentry> <question id="minimal-sh"> <para>Warum ist <command>/bin/sh</command> so spartanisch? Warum benutzt FreeBSD nicht die <command>bash</command> oder eine ähnliche Shell?</para> </question> <answer> <para>Weil der &posix;-Standard definiert, dass es so eine Shell geben muss.</para> <para>Die ausführlichere Antwort: Viele Leute müssen Shell-Programme schreiben, die auf vielen verschiedenen Systemen nutzbar sein müssen. Aus diesem Grund enthält der &posix;-Standard eine sehr detaillierte Definition der Shell und der Hilfsprogramme. Die meisten Programme werden für die Bourne Shell geschrieben; außerdem nutzen mehrere wichtige Schnittstellen (&man.make.1;, &man.system.3;, &man.popen.3; und ihre Entsprechungen in höheren Programmiersprachen wie Perl und Tcl) die Bourne Shell, um Befehle auszuführen. Da die Bourne Shell an so vielen Stellen und so häufig genutzt wird, muss sie die folgenden Anforderungen erfüllen: Schneller Start, ein klar definiertes Verhalten und ein möglichst geringer Speicherverbrauch.</para> <para>Wir haben bei der vorliegenden Implementierung versucht, möglichst viele dieser Anforderungen zu erfüllen. Um <command>/bin/sh</command> nicht zu groß werden zu lasen, haben wir viele der Annehmlichkeiten der anderen Shells weggelassen. Aus diesem Grund gibt es in den Ports die luxuriöseren Shells wie bash, scsh, tcsh und zsh. Vergleichen Sie einfach mal den Speicherverbrauch der verschiedenen Shells, indem Sie <command>ps -u</command> aufrufen und sich die Angaben in den Spalten <quote>VSZ</quote> und <quote>RSS</quote> ansehen.</para> </answer> </qandaentry> <qandaentry> <question id="netscape-slow-startup"> <para>Wieso dauert es so lange, bis &netscape; und Opera starten?</para> </question> <answer> <para>In den meisten Fällen liegt es daran, dass Ihre DNS-Einstellungen fehlerhaft sind. Sowohl &netscape; als auch Opera stellen Anfragen an DNS, wenn Sie gestartet werden. Das Fenster des Browsers erscheint erst, wenn das Programm eine Antwort erhalten hat oder es festgestellt hat, dass Ihr System nicht an ein Netzwerk angeschlossen ist.</para> </answer> </qandaentry> <qandaentry> <question id="ports-base-update"> <para>Ich habe die Ports-Sammlung mit <application>CVSup</application> aktualisiert. Viele Ports lassen sich danach nicht mehr bauen und geben seltsame Fehlermeldungen aus. Was ist passiert? Ist die Ports-Sammlung kaputt?</para> </question> <answer> <para>Sie sollten <emphasis>immer</emphasis> die Teilsammlung <literal>ports-base</literal> aktualisieren, wenn Sie nur Teile der Ports-Sammlung mit Hilfe der <application>CVSup</application>-Teilsammlungen aktualisieren. Die Erklärung dazu finden Sie im <ulink url="&url.books.handbook;/cvsup.html#CVSUP-COLLEC-PBASE-WARN"> Handbuch</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="midi-sound-files"> <para>Wie erzeuge ich Audio-CDs aus MIDI-Dateien?</para> </question> <answer> <para>Installieren Sie zuerst den Port <filename role="package">audio/timidity++</filename>. Danach müssen Sie manuell die GUS-Patche von Eric A. Welsh von <ulink url="http://www.stardate.bc.ca/eawpatches/html/default.htm"></ulink> installieren. Wenn <application>timidity++</application> richtig installiert wurde, können Sie mit dem folgenden Kommando MIDI-Dateien in das WAV-Format konvertieren:</para> <screen>&prompt.user; <userinput>timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid</userinput></screen> <para>Die WAV-Dateien können dann in andere Formate konvertiert werden oder auf Audio-CDs, wie im FreeBSD-Handbuch beschrieben, gebrannt werden.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="kernelconfig"> <title>Kernelkonfiguration</title> <qandaset> <qandaentry> <question id="make-kernel"> <para>Ich möchte meinen Kernel anpassen. Ist das schwierig?</para> </question> <answer> <para>Überhaupt nicht! Lesen Sie den <ulink url="&url.books.handbook;/kernelconfig.html">Abschnitt zur Kernelkonfiguration im Handbuch</ulink>.</para> <note> <para>Sie sollten einen datierten Snapshot Ihres Kernels als <filename>kernel.YYMMDD</filename> zu erstellen, nachdem Sie alles zum Laufen gebracht haben. Außerdem sollten Sie eine Kopie des Verzeichnisses <filename>/modules</filename> erstellen, die den Namen <filename>/modules.YYMMDD</filename> hat. Auf diese Weise können Sie diesen Kernel hochfahren, anstatt den ganzen Weg zurück zu <filename>kernel.GENERIC</filename> gehen zu müssen, wenn Sie das nächste Mal mit Ihrer Konfiguration herumexperimentieren und dabei etwas falsch machen sollten. Das ist besonders wichtig, wenn Sie nun von einem Controller booten, der vom GENERIC-Kernel nicht unterstützt wird.</para> </note> </answer> </qandaentry> <qandaentry> <question id="missing-hw-float"> <para>Was kann ich machen, wenn meine Kernel-Kompilierungen fehlschlagen, weil <literal>_hw_float</literal> fehlt?</para> </question> <answer> <para>Sie haben wahrscheinlich <devicename>npx0</devicename> aus Ihrer Kernelkonfigurationsdatei entfernt, weil Sie keinen mathematischen Co-Prozessor besitzen. Die Gerätedatei <devicename>npx0</devicename> ist allerdings <emphasis>VERPFLICHTEND</emphasis>. Ihre Hardware unterstützt Gleitkommaoperationen, selbst wenn dafür kein eigenes Bauteil (wie bei den 386er-Prozessoren) mehr verwendet wird. Daher <emphasis>müssen</emphasis> Sie die Gerätedatei <devicename>npx0</devicename> einbinden. Selbst wenn es Ihnen gelingen sollte, einen Kernel ohne <devicename>npx0</devicename>-Unterstützung zu bauen, werden Sie diesen nicht booten können.</para> </answer> </qandaentry> <qandaentry> <question id="why-kernel-big"> <para>Warum ist mein Kernel so groß (über 10 MByte)?</para> </question> <answer> <para>Sie haben Ihren Kernel wahrscheinlich im <emphasis>Debug Modus</emphasis> erstellt. Ein Debug-Kernel enthält viele zusätzliche Informationen für die Fehlersuche, daher ist er so groß. Bitte beachten Sie, dass die Verwendung eines Debug-Kernels die Performance des Systems nicht oder nur minimal reduziert; außerdem ist es für den Fall einer system panic sehr praktisch, einen Debug-Kernel zur Hand zu haben.</para> <para>Wenn Ihnen allerdings der Plattenplatz ausgeht oder Sie einfach rein prinzipiell keinen Debug-Kernel benutzen wollen, müssen die beiden folgenden Bedingungen erfüllt sein:</para> <itemizedlist> <listitem> <para>Die Konfigurationsdatei für Ihren Kernel darf die folgende Zeile nicht enthalten:</para> <programlisting>makeoptions DEBUG=-g</programlisting> </listitem> <listitem> <para>Sie dürfen &man.config.8; nicht mit dem Parameter <option>-g</option> starten.</para> </listitem> </itemizedlist> <para>Sollten Sie sich nicht an diese Einschränkungen halten, wird Ihr Kernel im Debug-Modus erstellt. Solange Sie sich an diese Einschränkungen halten, können Sie Ihren Kernel ganz normal erstellen und die Größe des Kernels sollte deutlich sinken. Ein normaler Kernel ist nur 1.5 MByte bis 2 MByte groß.</para> </answer> </qandaentry> <qandaentry> <question id="multiport-serial-interrupts"> <para>Wieso erhalte ich Meldungen über Interrupt-Konflikte, wenn ich eine Karte mit mehreren seriellen Schnittstellen einsetzen will?</para> </question> <answer> <para>Wenn ich einen Kernel mit Unterstützung für serielle Multi-Port-Schnittstellen kompiliere, bekomme ich den Hinweis, dass nur der erste Port geprüft wird und die restlichen auf Grund von Interrupt-Konflikten übersprungen werden. Wie kann ich das Beheben?</para> <para>Das Problem besteht darin, dass in FreeBSD Code integriert ist, um den Kernel vor Abstürzen aufgrund von Hardware- oder Software-Konflikten zu bewahren. Behoben wird es, indem die IRQ-Angaben für alle Ports, bis auf einen ausgelassen werden. Hier ist ein Beispiel:</para> <programlisting> # # Multiport high-speed serial line - 16550 UARTS # device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr </programlisting> </answer> </qandaentry> <qandaentry> <question id="generic-kernel-build-failure"> <para>Wieso kann ich nicht einmal den Standard-Kernel (GENERIC) bauen?</para> </question> <answer> <para>Es gibt eine Reihe von möglichen Ursachen für dieses Problem:</para> <itemizedlist> <listitem> <para>Sie benutzen die neuen Kommandos <command>make buildkernel</command> und <command>make installkernel</command> nicht, obwohl die Sourcen auf Ihrem System nicht zum laufenden System passen (z.B. benutzen Sie die Sourcen von 4.3-RELEASE auf einem System mit 4.0-RELEASE). Wenn Sie ein Upgrade durchführen wollen, sollten Sie <filename>/usr/src/UPDATING</filename> lesen, beachten Sie insbesondere den Abschnitt <quote>COMMON ITEMS</quote> gegen Ende des Dokuments.</para> </listitem> <listitem> <para>Sie benutzen zwar <command>make buildkernel</command> und <command>make installkernel</command>, aber Sie haben nicht darauf geachtet, dass vorher ein komplettes <command>make buildworld</command> durchgelaufen sein muss. Um seine Arbeit erledigen zu können, benötigt <command>make buildkernel</command> Dateien, die von <command>make buildworld</command> erzeugt werden.</para> </listitem> <listitem> <para>Auch wenn Sie <link linkend="stable">FreeBSD-STABLE</link> verwenden, ist es durchaus möglich, dass Sie die Sourcen genau zum falschen Zeitpunkt aktualisiert haben: Während Sie gerade modifiziert wurden oder kurzzeitig fehlerhaft waren. Eine absolute und vollständige Garantie, dass Sie die Sourcen compilieren können, gibt es nur für die Releases, bei <link linkend="stable">FreeBSD-STABLE</link> ist das nicht immer so. Wenn Sie es noch nicht versucht haben, sollten Sie ihre Source nochmals aktualisieren. Es ist denkbar, dass der von Ihnen genutzte Server zurzeit Probleme hat, benutzten Sie daher testweise auch einmal einen anderen Server.</para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="scheduler-in-use"> <para>Wie kann ich prüfen, welchen Scheduler das System benutzt?</para> </question> <answer> <para>Wenn Sie &os; 5.2.1 oder älter verwenden, überprüfen Sie dazu, ob auf Ihrem System die sysctl-Variable <literal>kern.quantum</literal> existiert. Ist dies bei Ihnen der Fall, werden Sie eine Ausgabe ähnlich der folgenden sehen:</para> <screen>&prompt.user; sysctl <replaceable>kern.quantum</replaceable> kern.sched.quantum: 99960</screen> <para>Wenn die sysctl-Variable <literal>kern.quantum</literal> existiert, dann verwenden Sie den 4BSD-Scheduler. Existiert sie nicht, erzeugt &man.sysctl.8; eine Fehlermeldung (die Sie aber ignorieren können):</para> <screen>&prompt.user; sysctl <replaceable>kern.sched.quantum</replaceable> sysctl: unknown oid 'kern.sched.quantum'</screen> <para>Seit &os; 5.3-RELEASE wird der Name des verwendeten Schedulers direkt als Wert der sysctl-Variable <literal>kern.sched.name</literal> ausgegeben:</para> <screen>&prompt.user; sysctl <replaceable>kern.sched.name</replaceable> kern.sched.name: 4BSD</screen> </answer> </qandaentry> <qandaentry> <question id="scheduler-kern-quantum"> <para>Was bedeutet <literal>kern.quantum</literal>?</para> </question> <answer> <para><literal>kern.quantum</literal> ist die maximale Anzahl Ticks, die ein Prozess ununterbrochen laufen kann. Die Variable ist charakteristisch für den 4BSD Scheduler, somit kann der verwendete Scheduler über die Existenz dieser Variablen bestimmt werden. Seit &os; 5.X wird <literal>kern.quantum</literal> als <literal>kern.sched.quantum</literal> bezeichnet.</para> </answer> </qandaentry> <qandaentry> <question id="scheduler-kern-sched-quantum"> <para>Was ist <literal>kern.sched.quantum</literal>?</para> </question> <answer> <para>Lesen Sie den Abschnitt <xref linkend="scheduler-kern-quantum"></para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="disks"> <title>Platten, Dateisysteme und Boot Loader</title> <qandaset> <qandaentry> <question id="adding-disks"> <para>Wie kann ich meine neue Festplatte in mein FreeBSD-System einbinden?</para> </question> <answer> <para>Lesen Sie das Tutorial zur Festplattenformatierung unter <ulink url="&url.articles.formatting-media.en;/article.html">www.de.FreeBSD.org</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="new-huge-disk"> <para>Wie verschiebe ich mein System auf meine neue, große Platte?</para> </question> <answer> <para>Die beste Methode ist, das Betriebssystem auf der neuen Platte neu zu installieren und danach die Daten zu verschieben. Wenn Sie -STABLE über eine Release hinaus genutzt haben oder eine Release aktualisiert haben, ist das sehr empfehlenswert. Sie können auf beiden Platten &man.boot0cfg.8; installieren und die beiden Versionen so lange parallel betreiben, bis Ihnen die neue Konfiguration gefällt. Wenn Sie dies tun wollen, können Sie im übernächsten Absatz erfahren, wie sie Ihre Daten verschieben können.</para> <para>Falls Sie sich entscheiden, das nicht zu tun, müssen Sie Ihre neue Platte partitionieren und labeln. Benutzen Sie dafür entweder <filename>/stand/sysinstall</filename> oder &man.fdisk.8; und &man.disklabel.8;. Weiterhin sollten Sie mit &man.boot0cfg.8; auf beiden Platten booteasy installieren, damit Sie in der Lage sind, das alte und das neue System abwechselnd zu starten, nachdem der Kopiervorgang abgeschlossen ist. Im <ulink url="&url.articles.formatting-media.en;/article.html">Formatting-Media Tutorial</ulink> finden Sie weitere Informationen zu diesen Schritten.</para> <para>Nachdem Sie die neue Platte eingerichtet haben, können Sie Ihre Daten verschieben. Dummerweise können Sie die Daten nicht einfach kopieren. Dinge wie Gerätedateien (in <filename>/dev</filename>), erweiterte Dateiattribute und symbolische Links führen dazu, dass das in die Hose geht. Sie müssen ein Programm benutzen, das damit umgehen kann, und das ist &man.dump.8;. Es wird oft empfohlen, die Daten im Single-User Modus zu verschieben, aber das ist nicht unbedingt notwendig.</para> <para>Sie sollten auf gar keinen Fall etwas anderes als &man.dump.8; und &man.restore.8; benutzen, um Ihr Root-Filesystem zu verschieben. Es könnte auch mit &man.tar.1; funktionieren - oder auch nicht. Sie sollten ebenfalls &man.dump.8; und &man.restore.8; benutzen, wenn Sie eine komplette Partition auf eine andere, leere Partition verschieben wollen. Um die Daten einer Partition mit dump auf eine andere Partition zu verschieben, müssen Sie die folgenden Schritte ausführen:</para> <procedure> <step> <para>Richten Sie in der neuen Partition mit newfs ein Dateisystem ein.</para> </step> <step> <para>Mounten Sie die Partition temporär an einer geeigneten Stelle.</para> </step> <step> <para>Wechseln Sie mit cd in dieses Verzeichnis.</para> </step> <step> <para>Lesen Sie die alte Partition mit dump aus und lenken Sie die Ausgabe auf die neue Partition um.</para> </step> </procedure> <para>Wenn Sie zum Beispiel <username>root</username> auf <devicename>/dev/ad1s1a</devicename> verschieben wollen und diese derzeit auf <filename>/mnt</filename> gemountet ist, bedeutet das:</para> <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput> &prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput> &prompt.root; <userinput>cd /mnt</userinput> &prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen> <para>Wenn Sie Ihre Partitionen mit &man.dump.8; umorganisieren wollen, steht Ihnen etwas mehr Arbeit bevor. Wenn Sie eine Partition wie <filename>/var</filename> in die übergeordnete Partition verschieben wollen, müssen Sie zunächst eine neue Partition erzeugen, die die beiden alten Partitionen aufnehmen kann. Der zweite Schritt ist, wie oben beschrieben die übergeordnete Partition in die neue Partition zu verschieben. Im dritten und letzten Schritt verschieben Sie dann die untergeordnete Partition in das leere Verzeichnis, das im zweiten Schritt entstanden ist:</para> <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput> &prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput> &prompt.root; <userinput>cd /mnt</userinput> &prompt.root; <userinput>dump 0af - / | restore xf -</userinput> &prompt.root; <userinput>cd var</userinput> &prompt.root; <userinput>dump 0af - /var | restore xf -</userinput></screen> <para>Wenn Sie ein Verzeichnis aus einer Partition herauslösen wollen, also z.B. <filename>/var</filename> auf eine eigene Partition verlegen wollen, dann müssen Sie zunächst beide Partitionen anlegen. Danach müssen Sie die untergeordnete Partition im passenden Verzeichnis unterhalb des temporären mount points mounten und zum Abschluß die alte Partition verschieben:</para> <screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput> &prompt.root; <userinput>newfs /dev/ad1s1d</userinput> &prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput> &prompt.root; <userinput>mkdir /mnt/var</userinput> &prompt.root; <userinput>mount /dev/ad1s1d /mnt/var</userinput> &prompt.root; <userinput>cd /mnt</userinput> &prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen> <para>Eventuell sagen Ihnen für Benutzerdaten &man.cpio.1;, &man.pax.1; oder &man.tar.1; eher zu als &man.dump.8;. Allerdings haben alle diese Programme den Nachteil, dass sie die erweiterten Dateiattribute nicht verstehen, daher sollten Sie bei ihrem Einsatz aufpassen.</para> </answer> </qandaentry> <qandaentry> <question id="dangerously-dedicated"> <para>Gefährdet eine <quote>dangerously dedicated</quote> Festplatte meine Gesundheit?</para> </question> <answer> <para><anchor id="dedicate">Die Installationsprozedur bietet Ihnen zwei verschiedene Methoden, Ihre Festplatte(n) zu partitionieren. Die Standardmethode macht sie kompatibel zu anderen Betriebssystemen auf derselben Maschine, indem fdisk-Tabelleneinträge (unter FreeBSD <quote>slices</quote> genannt) mit einem FreeBSD-Eintrag, in dem eigene Partitionen untergebracht werden, benutzt werden. Optional kann ausgewählt werden, ob ein Boot-Selektor installiert werden soll, um zwischen den möglichen Betriebssystemen auf der/den Platte(n) wechseln zu können. Bei der zweiten Methode wird die gesamte Platte für FreeBSD genutzt und nicht versucht, kompatibel zu anderen Betriebssystemen zu sein.</para> <para>Nun, warum wird es <quote>gefährlich</quote> genannt? Eine Platte in diesem Modus enthält nichts, was von normalen PC-Hilfsprogrammen als gültige fdisk-Tabelle betrachtet werden würde. Abhängig von der Qualität ihres Designs werden sie sich bei Ihnen beschweren, sobald sie mit einer solchen Platte in Kontakt kommen, oder noch schlimmer, sie könnten den Bootstrap von FreeBSD beschädigen, ohne Sie zu fragen oder darauf hinzuweisen. Hinzu kommt, dass vom Layout von <quote>dangerously dedicated</quote> Platten bekannt ist, dass es viele BIOSe verwirrt, einschließlich solcher von AWARD (wie es z.B. im HP Netserver oder Micronics-Systemen, sowie vielen anderen zu finden ist) und Symbios/NCR (für die bekannte 53C8xx-Reihe von SCSI-Controllern). Dies ist keine vollständige Liste - es gibt weitere. Symptome für diese Verwirrung sind <errorname>read error</errorname>-Meldungen, die vom FreeBSD-Bootstrap ausgegeben werden, wenn es sich selbst nicht finden kann, sowie Systemabstürze beim Booten.</para> <para>Warum gibt es diesen Modus dann überhaupt? Es spart ein paar kByte an Plattenplatz und kann echte Probleme verursachen, die zu einer Neuinstallation führen. Die Ursprünge des <quote>Dangerously dedicated</quote> Modus liegen in der Absicht, eines der häufigsten Probleme, das Erstinstallierer von FreeBSD plagt, zu verhindern - die BIOS-Werte für die <quote>Geometrie</quote> einer Festplatte auf der Festplatte selbst anzupassen.</para> <para><quote>Geometrie</quote> ist ein veraltetes Konzept, das aber immer noch die Grundlage für die Interaktion zwischen dem PC-BIOS und den Festplatten ist. Wenn das Installationsprogramm von FreeBSD Slices erstellt, muss es sich die Lage dieser Slices auf der Festplatte in einer Art merken, die damit übereinstimmt, wie das BIOS erwartet, sie zu finden. Wenn das falsch geschieht, werden Sie nicht in der Lage sein, zu booten.</para> <para>Durch den <quote>Dangerously dedicated</quote> Modus wird versucht, dies zu umgehen, indem das Problem vereinfacht wird. In einigen Fällen klappt das zwar, aber er ist eher als allerletzter Ausweg gedacht - in 99 von 100 Fällen gibt es bessere Möglichkeiten, das Problem zu lösen.</para> <para>Wie vermeiden Sie also die Notwendigkeit zum <quote>DD</quote> Modus, wenn Sie installieren? Beginnen Sie, indem Sie sich notieren, welche Geometrie das BIOS für Ihre Platten benutzt. Sie können erreichen, dass der Kernel sie beim Booten ausgibt, indem Sie <option>-v</option> an der Eingabeaufforderung <literal>boot:</literal> angeben, oder <command>boot -v</command> im Loader verwenden. Kurz bevor das Installationsprogramm startet, wird der Kernel eine Liste mit den BIOS-Geometrien ausgeben. Keine Panik - warten Sie, bis das Installationsprogramm gestartet wurde und benutzen Sie Scrollback, um die Zahlen zu lesen. Typischerweise befinden sich die BIOS-Platten in derselben Reihenfolge, wie FreeBSD Ihre Platten auflistet - zuerst IDE, dann SCSI.</para> <para>Wenn Sie Ihre Festplatte in Slices unterteilen, überprüfen Sie, ob die Plattengeometrie, die im FDISK-Menü angegeben ist, korrekt ist (das heißt mit den Einstellungen im BIOS übereinstimmen). Falls die Werte nicht stimmen, benutzen Sie <keycap>g</keycap>, um sie zu korrigieren. Diese Schritte sind nötig, wenn sich absolut nichts auf der Festplatte befindet, oder, wenn die Festplatte vorher in einem anderen System benutzt worden ist. Beachten Sie, dass dies nur für die Festplatte nötig ist, von der Sie booten wollen. Mit weiteren vorhandenen Platten wird FreeBSD sich problemlos zurechtfinden.</para> <para>Wenn Sie es geschafft haben, dass das BIOS und FreeBSD in der Festplattengeometrie übereinstimmen, dann sind Ihre Probleme ziemlich sicher vorüber - ohne, dass es nötig gewesen wäre, den <quote>DD</quote>-Modus zu benutzen. Falls sie jedoch immer noch mit der gefürchteten <errorname>read error</errorname>-Meldung begrüßt werden sollten, wenn Sie versuchen, zu booten, wird es Zeit, dass Sie Ihre Finger kreuzen und es einfach versuchen - es gibt nichts mehr zu verlieren.</para> <para>Um eine <quote>dangerously dedicated</quote> Festplatte wieder für einen normalen PC brauchbar zu machen, gibt es zwei Möglichkeiten. Die erste ist, ausreichend viele NULL-Bytes in den MBR zu schreiben, um irgendwelche nachfolgenden Installation glauben zu machen, dass es sich um eine leere Festplatte handelt. Sie können das zum Beispiel so tun:</para> <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda0 count=15</userinput></screen> <para>Alternativ installiert der undokumentierte DOS-Befehl</para> <screen><prompt>C:\></prompt> <userinput>fdisk /mbr</userinput></screen> <para>einen neuen Master-Boot-Record, das heißt der BSD-Bootstrap wird zerstört.</para> </answer> </qandaentry> <qandaentry> <question id="safe-softupdates"> <para>Auf welchen Partitionen kann ich problemlos Soft Updates einsetzen? Ich habe gehört, das der Einsatz von Soft Updates auf <filename>/</filename> Probleme verursachen kann.</para> </question> <answer> <para>Die schnelle Antwort: Sie können Soft Updates bedenkenlos auf alle Partitionen benutzen.</para> <para>Die ausführliche Antwort: Es gab lange Zeit Bedenken, was den Einsatz von Soft Updates auf der root-Partition betrifft. Der Grund sind zwei Charakteristika der Soft Updates: Zum einen kann es bei einem Absturz des System auf einer Partition mit Soft Updates zum Datenverlust kommen. Die Partition ist zwar noch brauchbar, aber einige Daten können verloren gehen. Weiterhin kann es durch Soft Updates zu einem zeitweisen Mangel an Plattenplatz kommen.</para> <para>Bei der Benutzung von Soft Updates kann es bis zu dreißig Sekunden dauern, bis der Kernel Änderungen auf das physikalische Speichermedium schreibt. Wenn Sie eine große Datei löschen, ist diese Datei noch auf der Platte vorhanden, bis der Kernel die Löschoperation tatsächlich durchführt. Das kann zu einem sehr einfachen Problem führen: Stellen Sie sich vor, Sie löschen eine große Datei und legen gleich darauf eine andere große Datei an. Da die erste Datei noch nicht wirklich gelöscht wurde, ist eventuell nicht genug Platz für die zweite große Datei. Sie erhalten die Fehlermeldung, dass nicht genug freier Platz vorhanden ist, obwohl Sie ganz genau wissen, dass Sie gerade eben Platz geschaffen haben. Wenn Sie die Operation ein paar Sekunden später wiederholen, funktioniert alles wie von Geisterhand. Dieser Effekt hat mehr als einen Benutzer verwirrt und Zweifel an seiner geistigen Stabilität oder dem FreeBSD-Dateisystem aufkommen lassen.</para> <para>Wenn der Kernel ein Datenpaket annimmt und das System abstürzt, bevor er dies Daten auf die Platte geschrieben hat, kann es zum Verlust oder zur Zerstörung von Daten kommen. Dieses Risiko ist nur sehr gering und normalerweise tragbar. Wenn Sie allerdings einen IDE-Write-Cache verwenden, steigt das Risiko; daher wird normalerweise empfohlen, auf den Einsatz dieser Technik zu verzichten, wenn Sie Soft Updates benutzen.</para> <para>Diese beiden Probleme betreffen alle Partitionen, die Soft Updates verwenden. Was bedeutet das für die Root-Partition?</para> <para>Die wichtigen Daten auf der Root-Partition ändern sich nur sehr selten. Dateien wie <filename>/kernel</filename> und der Inhalt <filename>/etc</filename> werden nur bei der Wartung des Systems geändert, oder wenn Benutzer ihre Passwörter ändern. Wenn das System in den 30 Sekunden nach einer solchen Änderung abstürzt, ist es möglich, das Daten verloren gehen. Dieses Risiko ist in den meisten Fällen unerheblich, aber es ist vorhanden. Wenn das zu viel Risiko ist, dann sollten Sie Soft Updates nicht auf der Root-Partition einsetzen.</para> <para><filename>/</filename> war schon immer eine der kleinsten Partitionen. Standardmäßig legt FreeBSD das Verzeichnis <filename>/tmp</filename> direkt auf <filename>/</filename>. Wenn in Ihrem <filename>/tmp</filename> viel Betrieb ist, kann es gelegentlich zu den oben beschriebenen Platzproblemen kommen. Um das Problem zu lösen, sollten sie einen symbolischen Link von <filename>/tmp</filename> nach <filename>/var/tmp</filename> legen.</para> </answer> </qandaentry> <qandaentry> <question id="inappropriate-ccd"> <para>Was stimmt mit meinem ccd nicht?</para> </question> <answer> <para>Das Symptom hierfür ist:</para> <screen>&prompt.root; <userinput>ccdconfig -C</userinput> ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format</screen> <para>Das geschieht für gewöhnlich, wenn Sie versuchen, die <literal>c</literal> Partitionen, die standardmäßig vom Typ <literal>unbenutzt</literal> sind, zu verbinden. Der ccd-Treiber verlangt Partitionen vom Typ FS_BSDFFS. Editieren Sie den Plattenlabel der Platten, die Sie zu verknüpfen versuchen und ändern Sie die Typen der Partitionen in <literal>4.2BSD</literal>.</para> </answer> </qandaentry> <qandaentry> <question id="ccd-disklabel"> <para>Warum kann ich den Plattenlabel meines ccd nicht editieren?</para> </question> <answer> <para>Das Symptom hierfür ist:</para> <screen>&prompt.root; <userinput>disklabel ccd0</userinput> (hier wird etwas vernünftiges ausgegeben; versuchen wir nun, es zu editieren) &prompt.root; <userinput>disklabel -e ccd0</userinput> (editiern, speichern, beenden) disklabel: ioctl DIOCWDINFO: No disk label on disk; use "disklabel -r" to install initial label</screen> <para>Der Grund ist, dass der von ccd zurückgelieferte Plattenlabel ein <quote>vorgetäuschter</quote> ist, der sich nicht wirklich auf der Platte befindet. Sie können das Problem beheben, indem Sie ihn explizit zurückschreiben, wie z.B. hier:</para> <screen>&prompt.root; <userinput>disklabel ccd0 > /tmp/disklabel.tmp</userinput> &prompt.root; <userinput>disklabel -Rr ccd0 /tmp/disklabel.tmp</userinput> &prompt.root; <userinput>disklabel -e ccd0</userinput> (nun wird es funktionieren)</screen> </answer> </qandaentry> <qandaentry> <question id="mount-foreign-fs"> <para>Kann ich andere fremde Dateisysteme unter FreeBSD mounten?</para> </question> <answer> <para>FreeBSD unterstützt verschiedene fremde Dateisysteme.</para> <variablelist> <varlistentry> <term>Digital UNIX</term> <listitem> <para>UFS-CDROMs können unter FreeBSD direkt gemountet werden. Das Mounten von Partitionen von Digital &unix; und anderen Systemen, die UFS unterstützen, könnte schwieriger sein, abhängig von den Details der Plattenpartitionierung des betreffenden Betriebssystems.</para> </listitem> </varlistentry> <varlistentry> <term>&linux;</term> <listitem> <para>FreeBSD unterstützt <literal>ext2fs</literal>-Partitionen. Unter &man.mount.ext2fs.8; finden Sie weitere Informationen.</para> </listitem> </varlistentry> <varlistentry> <term>&windowsnt;</term> <listitem> <para>Ein NTFS-Treiber, der nur Lesezugriffe gestattet, ist Teil von &os;. Weitere Informationen entnehmen Sie bitte der Hilfeseite &man.mount.ntfs.8;.</para> </listitem> </varlistentry> <varlistentry> <term>FAT</term> <listitem> <para>FreeBSD enthält ein FAT-Treiber, der Lese- und Schreibzugriffe ermöglicht. Weitere Informationen entnehmen Sie bitte der Hilfeseite &man.mount.msdosfs.8;.</para> </listitem> </varlistentry> </variablelist> <para>FreeBSD unterstützt auch verschiedene Netzwerk-Dateisysteme, wie NFS (&man.mount.nfs.8;), NetWare (&man.mount.nwfs.8;), sowie die SMB-Dateisysteme von Microsoft (&man.mount.smbfs.8;).</para> </answer> </qandaentry> <qandaentry> <question id="mount-dos"> <para>Wie mounte ich eine erweiterte DOS-Partition?</para> </question> <answer> <para>Die erweiterten DOS-Partitionen befinden sich hinter ALLEN primären Partitionen. Wenn sich zum Beispiel eine Partition <quote>E</quote> als sekundäre DOS-Partition auf Ihrem zweiten SCSI-Laufwerk befindet, müssen Sie die speziellen Dateien für <quote>Slice 5</quote> im Verzeichnis <filename>/dev</filename> erstellen und dann <filename>/dev/da1s5</filename> mounten:</para> <screen>&prompt.root; <userinput>cd /dev</userinput> &prompt.root; <userinput>./MAKEDEV da1s5</userinput> &prompt.root; <userinput>mount -t msdos /dev/da1s5 /dos/e</userinput></screen> <note> <para>Lassen Sie diesen Schritt aus, wenn Sie FreeBSD 5.0-RELEASE oder eine neuere Version mit &man.devfs.5; verwenden. Die Gerätedateien werden in diesem Fall automatisch in <filename>/dev</filename> erstellt.</para> </note> </answer> </qandaentry> <qandaentry> <question id="crypto-filesystem"> <para>Gibt es ein verschlüsselndes Dateisystem für &os;?</para> </question> <answer> <para>Verwenden Sie FreeBSD 5.0 oder neuer, sollten Sie &man.gbde.8; lesen. Für ältere Versionen gibt es den Port <filename role="package">security/cfs</filename>.</para> </answer> </qandaentry> <qandaentry> <question id="nt-bootloader"> <para>Wie kann ich den &windowsnt;-Loader zum Booten von FreeBSD verwenden?</para> </question> <answer> <para>Das grundsätzliche Vorgehen besteht darin, dass Sie den ersten Sektor Ihrer eigentlichen FreeBSD-Rootpartition in eine Datei auf der DOS/&windowsnt;-Partition kopieren. Angenommen, sie nennen die Datei etwa <filename>c:\bootsect.bsd</filename> (durch <filename>c:\bootsect.dos</filename> inspiriert), dann können Sie die Datei <filename>c:\boot.ini</filename> etwa wie folgt editieren:</para> <programlisting> [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" C:\BOOTSECT.BSD="FreeBSD" C:\="DOS" </programlisting> <para>Falls FreeBSD auf derselben Platte, wie die &windowsnt;-Bootpartition installiert ist, kopieren Sie einfach <filename>/boot/boot1</filename> nach <filename>C:\BOOTSECT.BSD</filename>. Falls FreeBSD auf einer anderen Platte installiert ist, wird <filename>/boot/boot1</filename> nicht funktionieren; Sie brauchen in diesem Fall <filename>/boot/boot0</filename>.</para> <para><filename>/boot/boot0</filename> muss mit sysinstall installiert werden. Wählen Sie dazu den FreeBSD-Bootmanager aus, wenn Sie gefragt werden, ob sie einen Bootmanager installieren wollen. Dieser Schritt ist notwendig, weil <filename>/boot/boot0</filename> eine leere Partitionstabelle enthält, die von sysinstall ausgefüllt wird, bevor <filename>/boot/boot0</filename> in den MBR kopiert wird.</para> <warning> <para><emphasis>Sie dürfen auf gar keinen Fall einfach <filename>/boot/boot0</filename> statt <filename>/boot/boot1</filename> kopieren. Wenn Sie das doch tun sollten, wird Ihre Partitionstabelle überschrieben und Ihr Rechner wird nicht mehr starten!</emphasis></para> </warning> <para>Wenn der Bootmanager von FreeBSD gestartet wird, merkt er sich das zuletzt gestartet Betriebssystem, indem er dessen Partition als aktiv markiert. Danach kopiert er sich selbst (alle 512 Bytes) in den MBR. Wenn Sie also einfach <filename>/boot/boot0</filename> nach <filename>C:\BOOTSECT.BSD</filename> kopieren, würde der Bootmanager eine leere Partitionstabelle (mit einem als aktiv markiertem Eintrag) in den MBR kopieren.</para> </answer> </qandaentry> <qandaentry> <question id="lilo-bootloader"> <para>Wie boote ich FreeBSD und &linux; mit LILO?</para> </question> <answer> <para>Falls sich FreeBSD und &linux; auf derselben Platte befinden, folgen Sie einfach den Installationsanweisungen von LILO zum Booten eines Nicht-&linux;-Betriebssystems. Ganz knapp sind dies:</para> <para>Booten Sie &linux; und fügen Sie die folgenden Zeilen in die Datei <filename>/etc/lilo.conf</filename> ein:</para> <programlisting>other=/dev/hda2 table=/dev/hda label=FreeBSD</programlisting> <para>(hierbei wird angenommen, dass Ihre FreeBSD-Partition &linux; unter <devicename>/dev/hda2</devicename> bekannt ist; ändern Sie dies entsprechend Ihren Einstellungen). Führen Sie nun als <username>root</username> den Befehl <command>lilo</command> aus und Sie sind fertig.</para> <para>Falls FreeBSD sich auf einer anderen Platte befindet, müssen Sie <literal>loader=/boot/chain.b</literal> zu den LILO-Angaben hinzufügen. Zum Beispiel:</para> <programlisting>other=/dev/dab4 table=/dev/dab loader=/boot/chain.b label=FreeBSD</programlisting> <para>In einigen Fällen könnte es sein, dass Sie beim FreeBSD-Bootloader die BIOS-Laufwerksnummer angeben müssen, um von der zweiten Platte booten zu können. Wenn Ihre FreeBSD-SCSI-Platte vom BIOS zum Beispiel als BIOS-Platte 1 erkannt wird, müssen Sie am Prompt des FreeBSD-Bootloaders eingeben:</para> <screen>Boot: <userinput>1:da(0,a)/kernel</userinput></screen> <para>Seit Version 2.2.5 können Sie &man.boot.8; so konfigurieren, dass das beim Booten automatisch geschieht.</para> <para>Das <ulink url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html"> &linux;+FreeBSD mini-HOWTO</ulink> ist ein guter Ratgeber bei Fragen zur Interaktion von FreeBSD und &linux;.</para> </answer> </qandaentry> <qandaentry> <question id="booteasy-loader"> <para>Wie boote ich FreeBSD und &linux; mit BootEasy?</para> </question> <answer> <para>Installieren Sie LILO am Anfang Ihrer &linux;-Bootpartition, anstatt im Master Boot Record. Sie können LILO dann von BootEasy aus booten.</para> <para>Wenn Sie &windows; 95 und &linux; benutzen, wird das ohnehin empfohlen, um es einfacher zu machen, &linux; wieder zu booten, wenn es nötig werden sollte, dass Sie &windows; 95 neu installieren (&windows; 95 ist ein eifersüchtiges Betriebssystem, das kein anderes Betriebssystem im Master Boot Sektor duldet).</para> </answer> </qandaentry> <qandaentry> <question id="changing-bootprompt"> <para>Wie kann ich das <literal>???</literal> des Boot-Managers durch etwas Sinnvolles ersetzen?</para> </question> <answer> <para>Solange Sie den Boot-Manager nicht komplett neu schreiben, gar nicht. Allerdings gibt es in der Kategorie <filename>sysutils</filename> der Ports diverse Boot-Manager, die diese Funktionalität bieten.</para> </answer> </qandaentry> <qandaentry> <question id="removable-drives"> <para>Ich habe ein Wechsellaufwerk. Wie benutze ich es?</para> </question> <answer> <para>Ob es sich um ein Wechsellaufwerk handelt, um ein &iomegazip; oder ein EZ-Laufwerk (oder sogar ein Diskettenlaufwerk, wenn Sie es auf diese Weise benutzen möchten), oder um eine neue Festplatte - wenn es einmal installiert und vom System erkannt ist und Sie Ihre Kassette/Diskette/was_auch_immer eingelegt haben, ist das Vorgehen bei allen Geräten ziemlich ähnlich.</para> <para>(dieser Abschnitt basiert auf <ulink url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">Mark Mayo's ZIP-FAQ</ulink>)</para> <para>Wenn es sich um ein ZIP- oder Diskettenlaufwerk handelt, und sich bereits ein DOS-Dateisystem darauf befindet, können Sie einen Befehl wie diesen für eine Diskette benutzen:</para> <screen>&prompt.root; <userinput>mount -t msdos /dev/fd0c /floppy</userinput></screen> <para>oder diesen:</para> <screen>&prompt.root; <userinput>mount -t msdos /dev/da2s4 /zip</userinput></screen> <para>für eine ZIP-Disk mit der Herstellerkonfiguration.</para> <para>Benutzen Sie bei anderen Platten &man.fdisk.8; oder &man.sysinstall.8;, um herauszufinden, wie sie konfiguriert sind.</para> <para>Die restlichen Beispiele sind für ein ZIP-Laufwerk unter da2, der dritten SCSI-Platte.</para> <para>Wenn es sich nicht um eine Diskette oder eine Wechselplatte handelt, die Sie mit anderen Leuten austauschen wollen, ist es wahrscheinlich besser, ein BSD-Dateisystem darauf zu installieren. Hierdurch bekommen Sie Unterstützung für lange Dateinamen, eine mindestens doppelt so hohe Leistungsausnutzung und wesentlich höhere Stabilität. Zunächst müssen Sie die Partitionen/Dateisysteme auf DOS-Ebene nochmals erstellen. Sie können entweder &man.fdisk.8; oder <command>/stand/sysinstall</command> benutzen, oder, bei einem kleinen Laufwerk, dem Sie eine Unterstützung für mehrere Betriebssysteme nicht zumuten wollen, entfernen Sie einfach die komplette FAT Partitionstabelle (Slices) und benutzen Sie einfach die BSD-Partitionierung:</para> <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda2 count=2</userinput> &prompt.root; <userinput>disklabel -Brw da2 auto</userinput></screen> <para>Sie können disklabel oder <command>/stand/sysinstall</command> benutzen, um mehrere BSD-Partitionen zu erstellen. Dies werden Sie sicherlich bei einer fest eingebauten Platte wollen, aber bei einem Wechsellaufwerk wie einem ZIP ist das wahrscheinlich irrelevant.</para> <para>Zum Schluß erstellen Sie ein neues Dateisystem - dieses befindet sich auf unserem ZIP-Laufwerk und belegt die gesamte Platte:</para> <screen>&prompt.root; <userinput>newfs /dev/rda2c</userinput></screen> <para>anschließend mounten Sie es:</para> <screen>&prompt.root; <userinput>mount /dev/da2c /zip</userinput></screen> <para>Und sicherlich ist es keine schlechte Idee, eine Zeile ähnlich der folgenden in die Datei <filename>/etc/fstab</filename> einzufügen, damit Sie in Zukunft nur <command>mount /zip</command> einzugeben brauchen:</para> <programlisting>/dev/da2c /zip ffs rw,noauto 0 0</programlisting> </answer> </qandaentry> <qandaentry> <question id="mount-cd-superblock"> <para>Wieso erhalte ich die Meldung <errorname>Incorrect super block</errorname> beim Mounten einer CDROM?</para> </question> <answer> <para>Sie müssen &man.mount.8; mitteilen, was für ein Gerät Sie mounten wollen. Genauere Informationen dazu finden Sie im Kapitel <ulink url="&url.books.handbook;/creating-cds.html">Optische Speichermedien</ulink> des Handbuch, genauer gesagt im Abschnitt <ulink url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Benutzung von Daten-CDs</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="cdrom-not-configured"> <para>Wieso erhalte ich die Meldung <errorname>Device not configured</errorname>, wenn ich eine CDROM mounte?</para> </question> <answer> <para>Das bedeutet im allgemeinen, dass sich keine CDROM im Laufwerk befindet, oder, dass das Laufwerk auf dem Bus nicht sichtbar ist. Dieses Problem wird im Kapitel <ulink url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Benutzung von Daten-CDs</ulink> des Handbuchs ausführlich diskutiert.</para> </answer> </qandaentry> <qandaentry> <question id="cdrom-unicode-filenames"> <para>Wieso werden alle Sonderzeichen in den Dateinamen auf meinen CDs durch <quote>?</quote> ersetzt, wenn ich die CD unter FreeBSD benutze?</para> </question> <answer> <para>Wahrscheinlich werden auf der CDROM die <quote>Joliet</quote> Erweiterungen für die Speicherung von Datei- und Verzeichnisnamen benutzt. Werfen Sie einen Blick in das Kapitel <ulink url="&url.books.handbook;/creating-cds.html">Erzeugung von CD-ROMs</ulink> im Handbuch, speziell in den Abschnitt über <ulink url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Benutzung von Daten-CDs</ulink>.</para> <para>[Anmerkung des Übersetzers: Es geht hier nicht um die deutschen Sonderzeichen, da diese schon im normalen ISO8859-1 enthalten sind. Die Probleme treten auf, wenn man z.B. russische CDs (ISO8859-5) verwendet.]</para> </answer> </qandaentry> <qandaentry> <question id="burncd-isofs"> <para>Ich habe eine CD mit FreeBSD gebrannt und kann sie nicht mit anderen Betriebssystemen lesen. Warum?</para> </question> <answer> <para>Sie haben wahrscheinlichste eine Datei direkt auf CD geschrieben, statt ein ISO 9660-Dateisystems erzeugt zu haben. Werfen Sie einen Blick in das Kapitel <ulink url="&url.books.handbook;/creating-cds.html">Erzeugung von CD-ROMs</ulink> im Handbuch, speziell in den Abschnitt über <ulink url="&url.books.handbook;/creating-cds.html#RAWDATA-CD">reine Daten-CDs</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="copy-cd"> <para>Wie kann ich ein Image einer Daten-CD erzeugen?</para> </question> <answer> <para>Diese Information finden Sie im Abschnitt <ulink url="&url.books.handbook;/creating-cds.html#IMAGING-CD">Kopieren von CD-ROMs</ulink> des Handbuchs. Weitere Informationen über die Arbeit mit CD-ROMs finden Sie im Abschnitt <ulink url="&url.books.handbook;/creating-cds.html">Erzeugen von CD-ROMs</ulink> im Kapitel Speichermedien des Handbuchs.</para> </answer> </qandaentry> <qandaentry> <question id="mount-audio-CD"> <para>Wieso kommt <command>mount</command> nicht meiner Audio-CD zurecht?</para> </question> <answer> <para>Wenn Sie versuchen sollten, eine Audio-CD zu mounten, erhalten Sie die Meldung <errorname>cd9660: /dev/acd0c: Invalid argument</errorname>. Der Grund dafür ist, dass <command>mount</command> nur für Dateisysteme vorgehen ist. Audio CDs habe kein Dateisystem, sondern nur Daten. Wenn Sie eine Audio CD auslesen wollen, brauchen Sie ein entsprechendes Programm wie z.B. <filename role="package">audio/xmcd</filename> aus den Ports.</para> </answer> </qandaentry> <qandaentry> <question id="multi-session-CD"> <para>Wie nutze ich <command>mount</command> für eine Multi-Session CD?</para> </question> <answer> <para>Standardmäßig benutzt &man.mount.8; den letzten (aktuellsten) Daten-Track der CD. Wenn Sie eine ältere Session benutzen wollen, müssen Sie diese mit der Option <option>-s</option> definieren. Weitere Informationen finden Sie in der Onlinehilfe zu &man.mount.cd9660.8;</para> </answer> </qandaentry> <qandaentry> <question id="user-floppymount"> <para>Wie lasse ich normale Benutzer Disketten, CDROMs und andere Wechseldatenträger mounten?</para> </question> <answer> <para>Normale Benutzer können dazu berechtigt werden, Geräte zu mounten. Das geht so:</para> <procedure> <step> <para>Setzen Sie als <username>root</username> die sysctl-Variable <varname>vfs.usermount</varname> auf <literal>1</literal>:</para> <screen>&prompt.root; <userinput>sysctl -w vfs.usermount=1</userinput></screen> </step> <step> <para>Ordnen Sie als <username>root</username> den Block-Geräten, die den Wechsellaufwerken zugeordnet sind, die entsprechenden Zugriffsrechte zu.</para> <para>Wenn Sie zum Beispiel den Benutzer den Zugriff auf das erste Diskettenlaufwerk zu erlauben wollen:</para> <screen>&prompt.root; <userinput>chmod 666 /dev/fd0</userinput></screen> <para>Um den Mitgliedern der Gruppe <groupname>operator</groupname> den Zugriff auf das CDROM zu gestatten:</para> <screen>&prompt.root; <userinput>chgrp operator /dev/acd0c</userinput> &prompt.root; <userinput>chmod 640 /dev/acd0c</userinput></screen> </step> <step> <para>Ab &os; 5.X müssen Sie zusätzlich <filename>/etc/devfs.conf</filename> anpassen, weil diese Einstellungen ansonsten beim Systemneustart verloren gehen.</para> <para>Damit normale Benutzer bespielsweise das erste Diskettenlaufwerk mounten können, fügen Sie als <username>root</username> folgende Zeilen in <filename>/etc/devfs.conf</filename> ein:</para> <programlisting># Allen Benutzern erlauben, das erste Diskettenlaufwerk zu mounten. own /dev/fd0 root:operator perm /dev/fd0 0666</programlisting> <para>Damit alle Mitglieder der Gruppe <groupname>operator</groupname> das CD-ROM-Laufwerk mounten können, die folgenden Zeilen:</para> <programlisting># Alle Mitglieder der Gruppe operator dürfen CD-ROMs mounten. own /dev/acd0 root:operator perm /dev/acd0 0660</programlisting> </step> <step> <para>Fügen Sie zum Abschluss die Zeile <literal><varname>vfs.usermount=</varname>1</literal> in die Datei <filename>/etc/sysctl.conf</filename> ein, damit die Einstellung bei einem Neustart des Systems automatisch erhalten bleibt.</para> </step> </procedure> <para>Alle Benutzer können nun <devicename>/dev/fd0</devicename> auf ein Verzeichnis, das ihnen gehört, mounten:</para> <screen>&prompt.user; <userinput> mkdir ~/my-mount-point</userinput> &prompt.user; <userinput> mount -t msdos /dev/fd0 ~/my-mount-point</userinput></screen> <para>Die zur Gruppe <groupname>operator</groupname> gehörenden Benutzer können nun <devicename>/dev/acd0c</devicename> auf ein Verzeichnis, das ihnen gehört, mounten:</para> <screen>&prompt.user; <userinput> mkdir ~/my-mount-point</userinput> &prompt.user; <userinput> mount -t cd9660 /dev/acd0c ~/my-mount-point</userinput></screen> <para>Das Unmounten des Gerätes ist simpel:</para> <screen>&prompt.user; <userinput>umount ~/my-mount-point</userinput></screen> <para>Die Aktivierung von <varname>vfs.usermount</varname> hat jedoch negative Auswirkungen auf Sicherheitsaspekte. Ein besserer Weg, um auf &ms-dos;-formatierte Datenträger zuzugreifen, ist die Benutzung des Packages <filename role="package">emulators/mtools</filename>.</para> <note> <para>Denken Sie daran, dass Sie die Gerätenamen in diesen Beispielen an Ihre Konfiguration anpassen müssen.</para> </note> </answer> </qandaentry> <qandaentry> <question id="du-vs-df"> <para>Wieso geben die Befehle <command>du</command> und <command>df</command> unterschiedliche Werte für den freien Plattenplatz aus?</para> </question> <answer> <para>Der Grund ist die Funktionsweise von <command>du</command> und <command>df</command>. <command>du</command> geht durch einen Dateibaum, ermittelt die Größe jeder einzelnen Datei, und gibt die Summe aus. <command>df</command> fragt lediglich das Dateisystem wie viel Platz noch frei ist. Das scheint zwar auf den ersten Blick sehr ähnlich zu sein; allerdings wird sich ein leeres Verzeichnis auf die Ausgabe von <command>df</command> auswirken, während es auf das Ergebnis von <command>du</command> keinen Einfluss hat.</para> <para>Wenn Sie eine Datei löschen, während sie von einem Programm genutzt wird, wird diese Datei erst gelöscht, wenn sie vom Programm freigegeben wird. Allerdings wird die Datei sofort aus dem Verzeichnis entfernt. Sie können dieses Verhalten mit einem Programm wie <command>more</command> sehr einfach nachvollziehen. Dazu brauchen Sie nur eine Datei, die groß genug ist, um die Ausgabe von <command>du</command> und <command>df</command> zu beeinflussen. Bei der Größe aktueller Platten muss diese Datei schon <emphasis>sehr</emphasis> groß sein! Wenn Sie diese Datei löschen, während Sie sie sich in <command>more</command> anzeigen lassen, hat <command>more</command> kein Problem. Der Eintrag für die Datei wird lediglich aus dem Verzeichnis entfernt, damit kein anderes Programm mehr darauf zugreifen kann. Laut <command>du</command> ist die Datei verschwunden – es hat das Verzeichnis untersucht und die Datei nicht gefunden. Laut <command>df</command> ist die Datei aber vorhanden, da sie im Dateisystem immer noch Platz belegt. Sobald Sie <command>more</command> beenden, werden die Ergebnisse von <command>du</command> und <command>df</command> wieder übereinstimmen.</para> <para>Bitte beachten Sie, dass die Freigabe des Plattenplatzes durch die Soft Updates um bis zu 30 Sekunden verzögert werden kann.</para> <para>Die oben beschriebene Situation tritt sehr häufig auf Web-Servern auf. Viele Anwender installieren einen FreeBSD Web-Server und vergessen die Rotation der Logfiles, bis irgendwann die Partition <filename>/var</filename> überläuft. Der Administrator löscht die Datei, aber das System beschwert sich immer noch über fehlenden Plattenplatz. Die Datei wird erst freigegeben, wenn der Web-Server beendet und neu gestartet wird; dadurch kann das System den Plattenplatz freigeben. Um solche und ähnliche Unfälle zu verhindern, sollten Sie &man.newsyslog.8; einsetzen.</para> </answer> </qandaentry> <qandaentry> <question id="add-swap-space"> <para>Wie kann ich den Swap-Bereich vergrößern?</para> </question> <answer> <para>Im Kapitel <ulink url="&url.books.handbook;/config-tuning.html">Konfiguration und Tuning</ulink> des Handbuches gibt es einen <ulink url="&url.books.handbook;/adding-swap-space.html">Abschnitt</ulink> mit einer Schritt-für-Schritt Anleitung.</para> </answer> </qandaentry> <qandaentry> <question id="manufacturer-disk-size"> <para>Warum ist meine Festplatte unter &os; kleiner, als sie laut Hersteller sein soll?</para> </question> <answer> <para>Festplattenhersteller definieren ein Gigabyte als eine Milliarde Bytes, für &os; ist ein Gigabyte hingegen 1.073.741.824 Bytes groß. Aus diesem Grund wird für eine Platte, die laut Herstellerangaben 80 GB groß ist, während des Bootvorgangs eine Größe von 76.319 MB angezeigt.</para> <para>Beachten Sie auch, dass &os; (in der Voreinstellung) 8 % des Plattenplatzes für sich <link linkend="disk-more-than-full">reserviert</link>.</para> </answer> </qandaentry> <qandaentry> <question id="disk-more-than-full"> <para>Warum kann eine Partition zu mehr als 100% gefüllt sein?</para> </question> <answer> <para>Ein Teil jeder UFS Partition, in der Vorgabe sind das 8%, ist für das Betriebssystem und den Benutzer <username>root</username> reserviert. &man.df.1; rechnet diesen Teil bei der Ausgabe der <literal>Capacity</literal> Spalte nicht ein, so dass dort Werte über 100% angezeigt werden können. Die Anzahl der Blöcke in der <literal>blocks</literal> Spalte ist ebenfalls um 8% größer als die Summe der benutzten und verfügbaren Blöcke (die Spalten <literal>Used</literal> und <literal>Avail</literal>).</para> <para>Wie viel Platz reserviert wird, können Sie mit der <option>-m</option> Option von &man.tunefs.8; einstellen.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="admin"> <title>Systemadministration</title> <qandaset> <qandaentry> <question id="startup-config-files"> <para>Wo befinden sich die Konfigurationsdateien für den Systemstart?</para> </question> <answer> <para><filename>/etc/defaults/rc.conf</filename> (siehe &man.rc.conf.5;) ist die primäre Konfigurationsdatei. Die Startskripten des Systems, wie <filename>/etc/rc</filename> und <filename>/etc/rc.d</filename> (siehe &man.rc.8;) inkludieren diese Datei. <emphasis>Ändern Sie diese Datei nicht!</emphasis> Wenn Sie den Wert einer der in <filename>/etc/defaults/rc.conf</filename> gesetzten Variablen ändern wollen, fügen Sie die entsprechende Zeile in die Datei <filename>/etc/rc.conf</filename> ein und ändern die Zeile dort.</para> <para>Wenn Sie zum Beispiel den mitgelieferten DNS-Server <application>named</application> aktivieren wollen, müssen Sie lediglich das folgende Kommando eingeben:</para> <screen>&prompt.root; <userinput>echo named_enable="YES" >> /etc/rc.conf</userinput></screen> <para>Wenn Sie lokale Server starten wollen, müssen Sie passende Shellskripten im Verzeichnis <filename>/usr/local/etc/rc.d/</filename> ablegen. Die Dateien müssen als ausführbar markiert sein und die Endung .sh haben.</para> </answer> </qandaentry> <qandaentry> <question id="adding-users"> <para>Wie kann ich am Einfachsten einen Benutzer hinzufügen?</para> </question> <answer> <para>Benutzen Sie den Befehl &man.adduser.8; und für kompliziertere Fälle den Befehl &man.pw.8;.</para> <para>Benutzen Sie den Befehl &man.rmuser.8;, um einen Benutzer wieder zu löschen. Sie können, wenn nötig. auch &man.pw.8; benutzen.</para> </answer> </qandaentry> <qandaentry> <question id="root-not-found-cron-errors"> <para>Warum erhalte ich Meldungen wie <errorname>root: not found</errorname>, nachdem ich meine crontab geändert habe?</para> </question> <answer> <para>Die übliche Ursache dieses Problems ist, dass Sie die crontab des Systems (<filename>/etc/crontab</filename>) geändert und dann mit &man.crontab.1; installiert haben:</para> <screen>&prompt.root; <userinput>crontab /etc/crontab</userinput></screen> <para>Diese Vorgehensweise ist falsch. Die crontab des Systems hat ein anderes Format als die crontabs für die einzelnen Benutzer, die mit &man.crontab.1; aktualisiert werden (genauere Informationen über die Unterschiede erhalten Sie in &man.crontab.5;).</para> <para>Wenn Sie so vorgegangen sind, ist die zweite crontab einfach nur eine Kopie von <filename>/etc/crontab</filename>, allerdings im falschen Format. Löschen Sie sie mit dem folgenden Befehl:</para> <screen>&prompt.root; <userinput>crontab -r</userinput></screen> <para>Wenn Sie <filename>/etc/crontab</filename> wieder ändern müssen, sollten Sie einfach gar nichts tun, um &man.cron.8; über die Änderung zu informieren, er erkennt die Änderung automatisch.</para> <para>Wenn Sie ein Kommando jeden Tag, jede Woche oder jeden Monat ausführen lassen wollen, ist es wahrscheinlich einfacher, wenn Sie entsprechende Shell-Scripte in <filename>/usr/local/etc/periodic</filename> ablegen. Diese werden dann von &man.periodic.8; zusammen mit den anderen regelmäßigen Tätigkeiten ausgeführt.</para> <para>Der eigentliche Grund für den Fehler ist die Tatsache, dass die crontab des Systems ein zusätzliches Feld enthält; dieses Feld gibt an, mit welcher Benutzerkennung der Befehl ausgeführt werden soll. In der mitgelieferten crontab ist das bei allen Einträgen die Benutzerkennung <username>root</username>. Wenn diese Datei als die crontab des Benutzers <username>username</username> (die <emphasis>nicht</emphasis> mit der crontab des Systems identisch ist) verwendet wird, hält &man.cron.8; die Zeichenkette <literal>root</literal> für den Namen des zu startenden Programmes, aber dieses Programm gibt es nicht.</para> </answer> </qandaentry> <qandaentry> <question id="su-wheel-group"> <para>Wieso meldet mir &man.su.1; <errorname>you are not in the correct group to su root</errorname>, wenn ich mit &man.su.1; <username>root</username> werden will?</para> </question> <answer> <para>Das ist ein Sicherheits-Feature. Wenn Sie mit &man.su.1; zum Account <username>root</username> (oder jedem anderen Account mit Super-User-Privilegien) wechseln wollen, müssen Sie ein Mitglied der Gruppe <groupname>wheel</groupname> sein. Wenn es dieses Feature nicht gäbe, könnte jeder, der einen Account auf dem System hat und zufällig das Passwort für <username>root</username> erfährt, mit Super-User-Rechten auf das System zugreifen. Durch dieses Feature ist die Lage anders, wenn Sie nicht Mitglied von <groupname>wheel</groupname> sind, können Sie nicht einmal versuchen, dass Passwort einzugeben.</para> <para>Um einem Benutzer zu erlauben, mit &man.su.1; <username>root</username> zu werden, müssen Sie ihn nur in die Gruppe <groupname>wheel</groupname> eintragen.</para> </answer> </qandaentry> <qandaentry> <question id="rcconf-readonly"> <para>Ich habe einen Fehler in der <filename>rc.conf</filename> oder einer der anderen Dateien für den Systemstart und jetzt kann ich sie nicht ändern, weil das Dateisystem <quote>read-only</quote> ist. Was kann ich tun?</para> </question> <answer> <para>Wenn Sie aufgefordert werden, den Pfadnamen der Shell einzugeben, drücken Sie einfach <literal>ENTER</literal>. Geben Sie danach <command>mount /</command> ein, um das Root-Dateisystem im Schreib/Lese-Modus zu mounten. Sie werden wahrscheinlich auch <command>mount -a -t ufs</command> ausführen müssen, um das Dateisystem mit Ihrem Lieblingseditor zu mounten. Wenn Ihr Lieblingseditor auf einem Netzwerklaufwerk liegt, müssen Sie entweder das Netzwerk von Hand konfigurieren oder einen Editor benutzen, der auf einem lokalen Laufwerk vorhanden ist, z.B. &man.ed.1;.</para> <para>Wenn Sie einen bildschirmorientierten Editor wie zum Beispiel &man.vi.1; oder &man.emacs.1; benutzen wollen, werden Sie auch den Befehl <command>export TERM=cons25</command> ausführen müssen, damit diese Editoren die richtigen Einstellungen aus der Datenbank &man.termcap.5; übernehmen.</para> <para>Sobald Sie diese Schritte ausgeführt, können Sie den Fehler in der <filename>/etc/rc.conf</filename> ganz normal beheben. Die Fehlermeldungen, die Ihnen unmittelbar nach den Startmeldungen des Kernels angezeigt wurden, sollten Ihnen die Nummer der Zeile mit dem Fehler melden.</para> </answer> </qandaentry> <qandaentry> <question id="printer-setup"> <para>Wieso habe ich habe Probleme, meinen Drucker einzurichten?</para> </question> <answer> <para>Bitte sehen Sie im Handbucheintrag über Drucker nach. Es sollte die meisten Ihrer Probleme behandeln. Lesen sie den <ulink url="&url.books.handbook;/printing.html">Handbucheintrag über Drucker</ulink>.</para> <para>Einige Drucker benötigen einen auf dem Rechner laufenden Treiber, um drucken zu können. Diese so genannten <quote>WinPrinter</quote> oder <quote>GDI-Drucker</quote> werden von FreeBSD nicht unterstützt und an diesem Zustand wird sich wohl auch nichts ändern. Wenn Ihr Drucker nicht unter DOS oder &windowsnt; 4.0 verwendet werden kann, handelt es sich um einen <quote>WinPrinter</quote> und wird in der Regel auch nicht unter FreeBSD funktionieren. Ihre einzige Chance, einen dieser Drucker benutzen können, ist der Port <filename role="package">ports/print/pnm2ppa</filename>.</para> </answer> </qandaentry> <qandaentry> <question id="keyboard-mappings"> <para>Wie kann ich die Tastaturbelegung meines Systems korrigieren?</para> </question> <answer> <para>Informationen dazu finden Sie im Kapitel <ulink url="&url.books.handbook;/using-localization.html">länderspezifische Einstellungen</ulink> des Handbuchs, insbesondere im Abschnitt <ulink url="&url.books.handbook;/using-localization.html#SETTING-CONSOLE">Konfiguration der Konsole</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="pnp-resources"> <para>Wieso erhalte ich beim Start des Systems Meldungen wie <errorname>unknown: <PNP0303> can't assign resources</errorname>?</para> </question> <answer> <para>Die nachfolgende Erklärung stammt aus einer Mail auf der Mailingliste freebsd-current.</para> <blockquote> <attribution>&a.wollman;, 24 April 2001</attribution> <para>Die Geräte, für die <quote>can't assign resources</quote>-Meldungen ausgegeben werden, sind <quote>Legacy ISA</quote>Geräte, für die ein nicht PNP-fähiger Treiber in den Kernel eingebunden wurde. Dabei handelt es sich um Geräte wie den Tastaturkontroller, den programmierbaren Interrupt-Kontroller und diverse andere Standardkomponenten. Die Ressourcen können nicht zugewiesen werden, weil es schon einen Treiber gibt, der diese Ressourcen benutzt.</para> </blockquote> </answer> </qandaentry> <qandaentry> <question id="user-quotas"> <para>Wieso funktionieren die Benutzer-Quotas nicht richtig?</para> </question> <!-- XXX This may be the worst answer in the entire document. --> <answer> <orderedlist> <listitem> <para>Es kann sein, dass Ihr Kernel nicht für den Einsatz von Quotas konfiguriert ist. Damit Sie mit Quotas arbeiten können, müssen Sie folgende Zeile in Ihre Kernelkonfigurationsdatei aufnehmen und den Kernel neu bauen:</para> <programlisting>options QUOTA</programlisting> <para>Weitere Informationen zum Einsatz von Quotas finden Sie im entsprechenden <ulink url="&url.books.handbook;/quotas.html">Abschnitt</ulink> des Handbuchs.</para> </listitem> <listitem> <para>Benutzen Sie keine Quotas für <filename>/</filename>.</para> </listitem> <listitem> <para>Erstellen Sie die Quotas-Datei in dem Dateisystem, für das die Quotas gelten sollen, z.B.:</para> <informaltable frame="none" pgwide="1"> <tgroup cols="2"> <thead> <row> <entry>Filesystem</entry> <entry>Quota file</entry> </row> </thead> <tbody> <row> <entry><filename>/usr</filename></entry> <entry><filename>/usr/admin/quotas</filename></entry> </row> <row> <entry><filename>/home</filename></entry> <entry><filename>/home/admin/quotas</filename></entry> </row> <row> <entry>…</entry> <entry>…</entry> </row> </tbody> </tgroup> </informaltable> </listitem> </orderedlist> </answer> </qandaentry> <qandaentry> <question id="sysv-ipc"> <para>Unterstützt FreeBSD IPC-Grundfunktionen von System V?</para> </question> <answer> <para>Ja, FreeBSD unterstützt IPC im Stil von System V einschließlich gemeinsamen Speicher, Nachrichten und Semaphoren bereits mit dem <filename>GENERIC</filename>-Kernel. Wenn Sie einen angepassten Kernel verwenden, müssen Sie die folgenden Zeilen in Ihre Kernelkonfigurationsdatei einfügen:</para> <programlisting> options SYSVSHM options SYSVSHM # enable shared memory options SYSVSEM # enable for semaphores options SYSVMSG # enable for messaging </programlisting> <para>Danach kompilieren und installieren Sie den neuen Kernel.</para> </answer> </qandaentry> <qandaentry> <question id="sendmail-alternative"> <para>Welchen Mail-Server kann ich an Stelle von Sendmail benutzen?</para> </question> <answer> <para><ulink url="http://www.sendmail.org/">Sendmail</ulink> ist zwar der Mail-Server, der bei FreeBSD standardmäßig installiert wird, aber Sie können Ihn problemlos durch einen anderen MTA (z.B. aus den Ports) ersetzen.</para> <para>In der Port-Sammlung gibt es bereits viele verschiedene MTAs, <filename role="package">mail/exim</filename>, <filename role="package">mail/postfix</filename>, <filename role="package">mail/qmail</filename>, sowie <filename role="package">mail/zmailer</filename> sind einige der beliebteren Alternativen.</para> <para>Konkurrenz belebt das Geschäft und die Tatsache, dass Sie die Qual der Wahl haben, ist ein Vorteil. Daher sollten Sie Fragen wie <quote>Ist Sendmail besser als Qmail?</quote> besser nicht auf den Mailinglisten stellen. Wenn Sie dieses Thema interessiert, sollten sie zunächst die Archive durchsehen. Die Vorteile und Nachteile jedes einzelnen der verfügbaren MTAs sind schon mehrere Male bis zur Erschöpfung diskutiert worden.</para> </answer> </qandaentry> <qandaentry> <question id="forgot-root-pw"> <para>Was kann ich machen, wenn ich das Rootpasswort vergessen habe?</para> </question> <answer> <para>Keine Panik! Starten Sie Ihr System neu und geben Sie <userinput>boot -s</userinput> an der Eingabeaufforderung Boot: ein, um in den Einzelbenutzermodus zu gelangen. Bei der Frage danach, welche Shell benutzt werden soll, drücken Sie einfach ENTER. Nun erscheint die Eingabeaufforderung &prompt.root;. Geben Sie <command>mount -u /</command> ein, um Ihr Root-Dateisystem für Lese- und Schreibzugriffe zu remounten und dann <command>mount -a</command>, um alle Dateisysteme zu remounten. Mit <command>passwd root</command> können Sie das Rootpasswort ändern und mit &man.exit.1; können Sie mit dem Booten fortfahren.</para> </answer> </qandaentry> <qandaentry> <question id="CAD-reboot"> <para>Wie verhindere ich, dass das System mit <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>Alt</keycap> <keycap>Delete</keycap> </keycombo> rebootet werden kann?</para> </question> <answer> <para>Falls Sie syscons (den Standard-Treiber für die Konsole) benutzen, fügen Sie folgende Zeile in Ihre Kernelkonfigurationsdatei ein:</para> <programlisting>options SC_DISABLE_REBOOT</programlisting> <para>Falls Sie den Konsolen-Treiber PCVT verwenden, benutzen Sie stattdessen die folgende Zeile:</para> <programlisting>options PCVT_CTRL_ALT_DEL</programlisting> </answer> </qandaentry> <qandaentry> <question id="dos-to-unix-txt"> <para>Wie kann ich Textdateien von DOS Systemen auf &unix; Systemen verwenden?</para> </question> <answer> <para>Benutzen Sie diesen Perl-Befehl:</para> <screen>&prompt.user; <userinput>perl -i.bak -npe 's/\r\n/\n/g' file ...</userinput></screen> <para>file ist/sind die zu verarbeitende(n) Datei(en). Die Änderungen erfolgen in der Originaldatei, die zuvor mit der Erweiterung .bak gesichert wird.</para> <para>Alternativ können Sie den Befehl &man.tr.1; benutzen:</para> <screen>&prompt.user; <userinput>tr -d '\r' < <replaceable>dos-text-file</replaceable> > <replaceable>unix-file</replaceable></userinput></screen> <para><replaceable>dos-text-file</replaceable> ist die Datei, die den Text im DOS-Format enthält und <replaceable>unix-file</replaceable> wird die konvertierte Ausgabe enthalten. Diese Möglichkeit könnte etwas schneller sein, als die Benutzung von Perl.</para> </answer> </qandaentry> <qandaentry> <question id="kill-by-name"> <para>Wie beende ich Prozesse namentlich?</para> </question> <answer> <para>Benutzen Sie &man.killall.1;.</para> </answer> </qandaentry> <qandaentry> <question id="root-acl"> <para>Warum nervt su mich damit, dass ich nicht in der ACL von <username>root</username> bin?</para> </question> <answer> <para>Der Fehler stammt vom verteilten Authentifizierungssystem Kerberos. Das Problem ist nicht ernsthaft, aber störend. Sie können entweder su mit der Option -K benutzen, oder Kerberos deinstallieren, wie in der nächsten Frage beschrieben.</para> </answer> </qandaentry> <qandaentry> <question id="uninstall-kerberos"> <para>Wie deinstalliere ich Kerberos?</para> </question> <answer> <para>Um Kerberos aus dem System zu entfernen, müssen Sie die bin-Distribution der von Ihnen benutzen RELEASE neu installieren. Wenn Sie die CDROM besitzen, können Sie sie mounten (wir nehmen an, unter /cdrom) und folgende Schritte ausführen:</para> <screen>&prompt.root; <userinput>cd /cdrom/bin</userinput> &prompt.root; <userinput>./install.sh</userinput></screen> <para>Alternativ können Sie alle Zeilen mit <makevar>MAKE_KERBEROS</makevar> aus der <filename>/etc/make.conf</filename> entfernen und dann ein make world durchführen.</para> </answer> </qandaentry> <qandaentry> <question id="where-is-makedev"> <para>Wo ist <filename>/dev/MAKEDEV</filename> hin?</para> </question> <answer> <para>Ab FreeBSD 5.X werden Geräte automatisch von &man.devfs.8; zur Verfügung gestellt. Die Gerätetreiber erstellen die Gerätedateien, wenn diese benötigt werden. Das Skript <filename>/dev/MAKEDEV</filename> wird nicht mehr gebraucht.</para> <para>Wenn Sie FreeBSD 4.X oder eine frühere Version benutzen und <filename>/dev/MAKEDEV</filename> fehlt, dann haben Sie ein Problem. Kopieren Sie das Skript aus den Systemquellen. Es liegt wahrscheinlich unter <filename>/usr/src/etc/MAKEDEV</filename>.</para> </answer> </qandaentry> <qandaentry> <question id="add-pty"> <para>Wie füge ich Pseudo-Terminals zum System hinzu?</para> </question> <answer> <para>Wenn Sie viele Benutzer von telnet, ssh, X oder screens haben, könnte es sein, dass Ihnen die Pseudo-Terminals ausgehen. So fügen Sie weitere hinzu:</para> <procedure> <step> <para>Erstellen und installieren Sie einen neuen Kernel mit der Zeile</para> <programlisting>pseudo-device pty 256</programlisting> <para>in der Konfigurationsdatei.</para> </step> <step> <para>Führen Sie die Befehle</para> <screen>&prompt.root; <userinput>cd /dev</userinput> &prompt.root; <userinput>./MAKEDEV pty{1,2,3,4,5,6,7}</userinput></screen> <para>aus, um 256 Geräteeinträge für die neuen Terminals zu erstellen.</para> </step> <step> <para>Editieren Sie die Datei <filename>/etc/ttys</filename> und fügen Sie Zeilen für jeden der 256 Terminals ein. Sie sollten so aussehen, wie die existierenden Einträge, also etwa so:</para> <programlisting>ttyqc none network</programlisting> <para>Die Reihenfolge der Buchstabenzuordnung lautet mit einem regulären Ausdruck <literal>tty[pqrsPQRS][0-9a-v]</literal>.</para> </step> <step> <para>Starten Sie das System mit dem neuen Kernel erneut, wenn Sie bereit sind.</para> </step> </procedure> </answer> </qandaentry> <qandaentry> <question id="create-snd0"> <para>Warum kann ich das Gerät snd0 nicht erstellen?</para> </question> <answer> <para>Es gibt kein Gerät <devicename>snd</devicename>. Diese Bezeichnung ist nur ein Sammelbegriff für die diversen Geräte, die zusammen das Soundsystem von FreeBSD bilden, wie zum Beispiel <devicename>mixer</devicename>, <devicename>sequencer</devicename>, und <devicename>dsp</devicename>.</para> <para>So erzeugen Sie diese Geräte:</para> <screen>&prompt.root; <userinput>cd /dev</userinput> &prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen> <note> <para>Lassen Sie diesen Schritt aus, wenn Sie FreeBSD 5.0-RELEASE oder eine neuere Version mit &man.devfs.5; verwenden. Die Gerätedateien werden in diesem Fall automatisch in <filename>/dev</filename> erstellt.</para> </note> </answer> </qandaentry> <qandaentry> <question id="reread-rc"> <para>Wie lade ich <filename>/etc/rc.conf</filename> und starte <filename>/etc/rc</filename> neu, ohne zu rebooten?</para> </question> <answer> <para>Gehen Sie in den Einzelbenutzermodus und dann zurück in den Mehrbenutzermodus.</para> <para>Geben Sie auf der Konsole folgendes ein:</para> <screen>&prompt.root; <userinput>shutdown now</userinput> (Hinweis: ohne -r oder -h) &prompt.root; <userinput>return</userinput> &prompt.root; <userinput>exit</userinput></screen> </answer> </qandaentry> <qandaentry> <question id="release-candidate"> <para>Ich wollte auf das aktuelle -STABLE updaten, und plötzlich läuft hier ein -BETAx, -RC oder -PRERELEASE. Was ist passiert?</para> </question> <answer> <para>Kurze Antwort: Das ist nur ein anderer Name. RC ist die Abkürzung für <quote>Release Candidate</quote>. Es bedeutet, dass eine neue Release bevorsteht. Und -PRERELEASE bedeutet bei FreeBSD normalerweise, dass die Sourcen zur Vorbereitung auf eine Release <quote>eingefroren</quote> wurden (in einigen Releases wurde -BETA anstelle von -PRERELEASE verwendet).</para> <para>Ausführliche Antwort: Bei FreeBSD gibt es zwei Quellen für Releases. Die Major Releases wie 4.0-RELEASE und 5.0-RELEASE werden aus dem aktuellen Stand des Hauptzweiges der Entwicklung (besser und kürzer als <link linkend="current">-CURRENT</link> bekannt) erzeugt. Minor Releases wie 4.1-RELEASE or 5.2-RELEASE stammen aus dem aktiven <link linkend="stable">-STABLE</link> Zweig. Seit 4.3-RELEASE gibt es es nun auch einen eigenen Zweig für jede Release, der für die Leute gedacht ist, die ein sehr konservativ weiterentwickeltes System benötigen (im Normalfall also nur Updates aus dem Bereich Sicherheit).</para> <para>Bevor in einem Zweig eine Release erfolgt, muss in diesem Zweig ein bestimmter Prozess ablaufen. Ein Teil dieses Prozesses ist der <quote>code freeze</quote>, der Stop der Weiterentwicklung. Sobald dieser Schritt erfolgt ist, wird der Name des Zweiges geändert, um anzuzeigen, dass demnächst eine Release erfolgen wird. Wenn der Zweig zum Beispiel 4.5-STABLE genannt wurde, wird der Name in 4.6-PRERELEASE geändert, um dies zu verdeutlichen. Weiterhin ist das ein Zeichen, dass jetzt besonders intensiv getestet werden sollte. In dieser Phase können Fehler im Sourcecode noch korrigiert werden. Wenn der Sourcecode so weit <quote>gereift</quote> ist, dass eine Release erstellt werden kann, wird der Name in 4.6-RC geändert, um genau dies anzuzeigen. In dieser Phase können nur noch extrem wichtige Korrekturen aufgenommen werden. Sobald die Release (in diesem Beispiel 4.6-RELEASE) erfolgt ist, wird der Zweig in 4.6-STABLE umbenannt.</para> <para>Weitere Informationen über Versionsnummern und die verschiedenen Entwicklungszweige enthält der Artikel <ulink url="&url.articles.releng.en;/article.html">Release Engineering</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="kernel-chflag-failure"> <para>Als ich versucht habe, einen neuen Kernel zu installieren, ist das chflags fehlgeschlagen. Was mache ich jetzt?</para> </question> <answer> <para>Kurze Antwort: Ihre Sicherheitseinstellung (der securelevel) ist wahrscheinlich größer als 0. Sie müssen das System neu starten und den Kernel im Single-User Modus installierten.</para> <para>Ausführliche Antwort: Wenn die Sicherheitseinstellung größer als 0 ist, erlaubt Ihnen FreeBSD nicht, die Systemflags zu ändern. Um den aktuellen Securelevel zu ermitteln, können Sie das folgende Kommando benutzen:</para> <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen> <para>Sie können die Sicherheitseinstellung nicht verringern, Sie müssen das System neu starten und den Kernel im Single-User Mode installieren oder die Sicherheitseinstellung in <filename>/etc/rc.conf</filename> ändern und dann das System neu starten. Weitere Detail zur Sicherheitseinstellung erhalten Sie in &man.init.8;, weitere Informationen zur rc.conf erhalten Sie in <filename>/etc/defaults/rc.conf</filename> und &man.rc.conf.5;.</para> </answer> </qandaentry> <qandaentry> <question id="kernel-securelevel-time"> <para>Ich kann die Systemzeit nicht um mehr als eine Sekunde verstellen. Was mache ich jetzt?</para> </question> <answer> <para>Kurze Antwort: Ihre Sicherheitseinstellung (der securelevel) ist wahrscheinlich größer als 1. Sie müssen das System neu starten und die Systemzeit im Single-User Modus verstellen.</para> <para>Ausführliche Antwort: Wenn die Sicherheitseinstellung größer als 1 ist, erlaubt Ihnen FreeBSD nicht, die Systemzeit zu ändern. Um den aktuellen Securelevel zu ermitteln, können Sie das folgende Kommando benutzen:</para> <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen> <para>Sie können die Sicherheitseinstellung nicht verringern, Sie müssen das System neu starten und die Systemzeit im Single-User Mode ändern oder die Sicherheitseinstellung in <filename>/etc/rc.conf</filename> ändern und dann das System neu starten. Weitere Detail zur Sicherheitseinstellung erhalten Sie in &man.init.8;, weitere Informationen zur rc.conf erhalten Sie in <filename>/etc/defaults/rc.conf</filename> und &man.rc.conf.5;.</para> </answer> </qandaentry> <qandaentry> <question id="statd-mem-leak"> <para>Warum braucht &man.rpc.statd.8; 256 MByte Speicher?</para> </question> <answer> <para>Nein, das Programm hat keinen Fehler und es verbraucht auch nicht 256 MByte Speicher. <command>rpc.statd</command> projiziert nur einen übertrieben großen Speicherbereich in seinen eigenen Adressraum. Von einem rein technischen Standpunkt aus ist das nichts verwerfliches, allerdings verwirrt es Programme wie &man.top.1; und &man.ps.1;.</para> <para>&man.rpc.statd.8; projiziert seine Statusdatei (die in <filename>/var</filename> liegt) in seinen Adressraum. Um die Probleme zu vermeiden, die bei einer Vergrößerung dieser Projektion entstehen könnten, wird gleich ein möglichst großer Speicherbereich benutzt. Dies kann man sehr schön im Sourcecode sehen: Die Längenangabe beim Aufruf von &man.mmap.2; ist <literal>0x10000000</literal>, ein sechzehntel des Adressraums bei IA32, oder genau 256 MByte.</para> </answer> </qandaentry> <qandaentry> <question id="unsetting-schg"> <para>Warum kann ich das Dateiattribut <literal>schg</literal> nicht löschen?</para> </question> <answer> <para>Sie betreiben Ihr System mit einer erhöhten Sicherheitsstufe. Senken Sie die Sicherheitsstufe und versuchen Sie es dann noch einmal. Weitere Informationen erhalten Sie im <link linkend="securelevel">FAQ Eintrag über Sicherheitsstufen</link> und in der Online-Hilfe &man.init.8;.</para> </answer> </qandaentry> <qandaentry> <question id="ssh-shosts"> <para>Warum funktioniert die <filename>.shosts</filename> Authentifizierung von SSH in neueren Version von FreeBSD nicht mehr?</para> </question> <answer> <para>Die <filename>.shosts</filename> Authentifizierung funktioniert nicht mehr, weil &man.ssh.1; in neueren Versionen von FreeBSD nicht mehr SUID-<username>root</username> installiert wird. Um dieses Problem zu <quote>lösen</quote>, gibt es die folgenden Möglichkeiten:</para> <itemizedlist> <listitem> <para>Um das Problem für immer zu lösen, müssen Sie in <filename>/etc/make.conf</filename> die Variable <makevar>ENABLE_SUID_SSH</makevar> auf <literal>true</literal> setzen und ssh neu übersetzen (oder <command>make world</command> ausführen.</para> </listitem> <listitem> <para>Übergangsweise können Sie auch die Dateirechte von <filename>/usr/bin/ssh</filename> auf <literal>4555</literal> setzen, indem Sie den Befehl <command>chmod 4555 /usr/bin/ssh</command> als <username>root</username> ausführen. Fügen Sie anschließend <makevar>ENABLE_SUID_SSH= true</makevar> in die Datei <filename>/etc/make.conf</filename> ein, damit diese Änderung erhalten bleibt, wenn Sie das nächste Mal <command>make world</command> ausführen.</para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="vnlru"> <para>Was ist <literal>vnlru</literal>?</para> </question> <answer> <para><literal>vnlru</literal> schreibt vnodes auf Platte und gibt sie wieder frei, falls das System die Grenzwert <varname>kern.maxvnodes</varname> erreicht. Dieser Thread des Kernel tut meistens gar nichts und wird nur aktiv, wenn Sie extrem viel RAM haben und gleichzeitig auf viele zehntausende kleine Dateien zugreifen.</para> </answer> </qandaentry> <qandaentry> <question id="top-memory-states"> <para>Was bedeuten die Zustände, die <command>top</command> für Speicherseiten ausgibt?</para> </question> <!-- Provided by John Dyson via Usenet --> <answer> <para>Speicherseiten werden vom Kernel in verschiedenen Listen verwaltet:</para> <itemizedlist> <listitem><para><literal>Active</literal>: Seiten, die vor Kurzem benutzt wurden.</para></listitem> <listitem><para><literal>Inactive</literal>: Seiten, die länger nicht benutzt wurden.</para></listitem> <listitem><para><literal>Cache</literal>: Meistens Seiten, die vorher im Zustand <literal>Inactive</literal> waren und noch gültige Daten enthalten. Diese Seiten können sofort in ihrem alten Kontext oder in einem neuen Kontext verwendet werden. Wenn eine Seite unverändert (<literal>clean</literal>) ist, kann ein Zustandswechsel direkt von <literal>Active</literal> nach <literal>Cache</literal> erfolgen. Ob dieser Zustandswechsel möglich ist, wird durch die Seitenersetzungsstrategie bestimmt, die der Entwickler des VM-Systems festgelegt hat.</para></listitem> <listitem><para><literal>Free</literal>: Seiten, die keine Daten enthalten. Diese Seiten können sofort benutzt werden, wenn Seiten im Zustand <literal>Cache</literal> nicht benutzt werden können. Seiten im Zustand <literal>Free</literal> können auch während eines Interrupts angefordert werden.</para></listitem> <listitem><para><literal>Wired</literal>: Seiten, die fest im Speicher liegen und nicht ausgelagert werden können. Normalerweise werden solche Seiten vom Kernel benutzt, manchmal werden Sie aber auch für spezielle Zwecke von Prozessen verwendet.</para></listitem> </itemizedlist> <para>Seiten im Zustand <literal>Inactive</literal> werden oft auf Plattenspeicher geschrieben (sozusagen ein <command>sync</command> des VM-Systems). Wenn die CPU erkennen kann, das eine Seite unmodifiziert (<literal>clean</literal>) ist, kann auch eine <literal>Active</literal>-Seite auf den Plattenspeicher ausgeschrieben werden. In bestimmten Situationen ist es von Vorteil, wenn ein Block von VM-Seiten, unabhängig von seinem Zustand, ausgeschrieben werden kann. Die <literal>Inactive</literal>-Liste enthält wenig benutzte Seiten, die ausgeschrieben werden könnten. Seiten im Zustand <literal>Cached</literal> sind schon ausgeschrieben und stehen Prozessen für die Verwendung im alten oder in einem neuen Kontext zur Verfügung. Seiten im Zustand <literal>Cache</literal> sind nicht ausreichend geschützt und können während Unterbrechungen nicht benutzt werden.</para> <para>Die eben beschriebene Behandlung von Speicherseiten kann durch weitere Zustände (wie das das Busy-Flag) verändert werden.</para> </answer> </qandaentry> <qandaentry> <question id="free-memory-amount"> <para>Wie viel freien Speicher hat mein System?</para> </question> <!-- Provided by John Dyson via Usenet --> <answer> <para>Es gibt verschiedene Arten von <quote>freiem Speicher</quote>. Eine Art ist die Speichermenge, die sofort, ohne etwas auszulagern, zur Verfügung steht. Der gesamte <acronym>VM</acronym>-Bereich ist eine weitere Art des <quote>freien Speichers</quote>. Die Betrachtung ist komplex, hängt aber von der Größe des Swap-Bereichs und der Größe des Arbeitsspeichers ab. Es gibt weitere Definitionen für <quote>freien Speicher</quote>, die aber alle relativ nutzlos sind. Wichtig ist hingegen, dass wenig Seiten ausgelagert werden (<foreignphrase>paging</foreignphrase>) und der Swap-Bereich ausreichend groß ist.</para> </answer> </qandaentry> <qandaentry> <question id="var-empty"> <para>Ich kann <filename>/var/empty</filename> nicht löschen!</para> </question> <answer> <para>Das Verzeichnis <filename>/var/empty</filename> wird von &man.sshd.8; benötigt, wenn es mit <quote>Privilege Separation</quote> läuft. Das Verzeichnis <filename>/var/empty</filename> ist leer, gehört <username>root</username> und ist durch das Dateiattribut <literal>schg</literal> geschützt.</para> <para>Wir empfehlen Ihnen, das Verzeichnis zu belassen. Sollten Sie es aber trotzdem löschen wollen, müssen Sie zuerst das <literal>schg</literal>-Attribut entfernen. Schauen Sie sich dazu die Hilfeseite &man.chflags.1; an und beachten Sie die Antwort auf die Frage <link linkend="unsetting-schg">wie das <literal>schg</literal>-Attribut entfernt wird.</link></para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="x"> <title>Das X Window System und virtuelle Konsolen</title> <qandaset> <qandaentry> <question id="whatis-X"> <para>Was ist das X Window System?</para> </question> <answer> <para>Das X Window System ist das am häufigsten verwendete Window System für &unix; oder ähnliche Systeme, zu denen auch &os; gehört. Der <ulink url="http://www.x.org/X11_protocol.html">X Protokollstandard</ulink> wird von der <ulink url= "http://www.x.org">X.org Foundation</ulink> definiert. Die aktuelle Version 11.6 dieser Spezifikation wird als <literal>X11R6</literal> oder auch nur als <literal>X11</literal> bezeichnet.</para> <para>Das X Window System wurde für viele verschiedene Architekturen und Betriebssysteme implementiert. Eine serverseitige Implementierung wird dabei als <literal>X-Server</literal> bezeichnet.</para> </answer> </qandaentry> <qandaentry> <question id="which-X"> <para>Welche X-Implementierungen sind für &os; verfügbar?</para> </question> <answer> <para>Früher war &xfree86;, die X-Implementierung des <ulink url="http://www.xfree86.org">XFree86 Projects, Inc.</ulink>, der Standard unter &os;. Dieser X-Server wurde bis einschließlich &os; Version 4.10 und 5.2 als Standard-X-Server installiert. Die von &xorg; veröffentlichte Implementierung diente nur als Referenzplattform, weil der verwendete Code über die Jahre sehr ineffizient geworden war.</para> <para>Anfang 2004 verließen einige Entwickler das XFree86 Project, um fortan &xorg; direkt zu unterstützen. Der Grund dafür waren Meinungsverschiedenheiten über die Geschwindigkeit der Weiterentwicklung, die zukünftige Ausrichtung des Projekts sowie persönliche Differenzen. Zur gleichen Zeit aktualisierte &xorg; ihren Quellcodebaum auf die <application>&xfree86;-Version 4.3.99.903</application>, brachte viele Änderungen, die bisher getrennt verwaltet worden waren, in das Projekt ein und veröffentlichte das Paket als <application>X11R6.7.0</application>, bevor &xfree86; die Lizenz änderte. Ein seperates, aber mit &xorg; verbundenes Projekt, <ulink url="http://www.freedesktop.org">freedesktop.org</ulink> (oder <literal>fd.o</literal>), arbeitet an einer Überarbeitung des ursprünglichen &xfree86;-Codes, um einerseits mehr Rechenarbeit an die Grafikkarten zu übertragen (mit dem Ziel einer deutlich erhöhten Geschwindigkeit) und andererseits den Code zu modularisieren (mit dem Ziel einer verbesserten Wartung, einer schnelleren Entwicklung sowie einer vereinfachten Konfiguration). &xorg; plant, die Weiterentwicklungen von freedesktop.org in seine zukünftigen Versionen zu integrieren.</para> <para>Seit Juli 2004 ist &xorg; der Standard-X-Server für &os.current;. Die &xfree86;-Ports (<filename role="package">x11/XFree86-4</filename>) verbleiben in der Ports-Sammlung und sind nach wie der Standard für &os.stable;.</para> <note> <para>Der letzte Absatz beschreibt nur die Standardeinstellung. Es ist nach wie vor möglich, beide Implementierung unter &os; zu verwenden. Lesen Sie dazu die Anweisungen im Eintrag vom 23.07.2004 in der Datei <filename>/usr/ports/UPDATING</filename>.</para> </note> <warning> <para>Beachten Sie, dass es derzeit nicht möglich ist, Teile aus beiden Implementierungen parallel zu verwenden. Sie müssen sich also für eine der beiden Implementierungen entscheiden.</para> </warning> <note> <para>Die folgenden Abschnitte beziehen sich zwar auf die &xfree86;-Implementierung, sie sollten aber auch für die &xorg;-Implementierung anwendbar sein. Die Standardkonfigurationsdatei von &xorg; heißt <filename>xorg.conf</filename>. Ist diese nicht vorhanden, wird die Datei <filename>XF86Config</filename> verwendet.</para> </note> </answer> </qandaentry> <qandaentry> <question id="xorg-compatibility"> <para>Funktionieren meine Programme auch mit der &xorg;-Implementierung noch?</para> </question> <answer> <para>Der &xorg;-Server basiert auf der gleichen X11R6-Spezifikation, die auch &xfree86; verwendet, daher sollte ein Großteil der Anwendungen problemlos funktionieren. Einige selten verwendete Protokolle werden allerdings nicht mehr unterstützt (<literal>XIE</literal>, <literal>PEX</literal>, sowie <literal>lbxproxy</literal>). Die beiden ersten Protokolle wurden allerdings auch vom &xfree86;-Port nicht unterstützt.</para> </answer> </qandaentry> <qandaentry> <question id="xfree86-split"> <para>Warum hat sich das X Project überhaupt aufgespalten?</para> </question> <answer> <para>Diese Frage ist nicht &os;-spezifisch. Es gibt zu diesem Thema umfangreiche Postings in diversen Mailinglist-Archiven. Suchen Sie daher über eine Suchmaschine danach, statt diese Frage auf einer &os;-Mailingliste zu stellen.</para> </answer> </qandaentry> <qandaentry> <question id="why-choose-xorg"> <para>Warum hat sich &os; für &xorg; als Standard-X-Server entschieden?</para> </question> <answer> <para>Die Entwickler von &xorg; geben an, dass sie neue Versionen rascher veröffentlichen und neue Eigenschaften schneller implementieren wollen. Außerdem verwenden sie nach wie vor die traditionelle X-Lizenz, während &xfree86; nun eine veränderte Version benutzt.</para> <note> <para>Diese Entscheidung wird nach wie vor heftig diskutiert. Nur die Zeit wird zeigen, welche Implementierung technisch überlegen ist. Jeder &os;-Benutzer hat aber die freie Wahl zwischen den beiden Implementierungen.</para> </note> </answer> </qandaentry> <qandaentry> <question id="running-X"> <para>Ich möchte X benutzen, was muss ich tun?</para> </question> <answer> <para>Der einfachste Weg ist der, dass Sie während der Installation angeben, dass Sie X benutzen möchten.</para> <para>Wenn Sie X auf einem existierenden System installieren wollen, sollten Sie den Meta-Port <filename role="package">x11/xorg</filename> verwenden, der alle benötigen Komponenten baut und installiert.</para> <para>Lesen Sie danach die Dokumentation zu &man.xorgconfig.1;, das Sie bei der Konfiguration des X-Servers für Ihre Grafikkarte, Maus usw. unterstützt. Bevorzugen Sie eine grafische Konfigurationsoberfläche, sollten Sie sich &man.xorgcfg.1; ansehen.</para> <para>Weitere Informationen finden sich im Abschnitt <ulink url="&url.books.handbook;/x11.html">X11</ulink> des FreeBSD-Handbuchs.</para> <para>Evtentuell möchten Sie sich auch den Xaccel-Server ansehen. Nähere Details finden Sie im Abschnitt über <link linkend="xig">Xi Graphics</link>.</para> </answer> </qandaentry> <qandaentry> <question id="running-X-securelevels"> <para>Ich habe <emphasis>versucht</emphasis>, X zu starten, aber wenn ich <command>startx</command> eingebe, erhalte ich die Fehlermeldung <errorname>KDENABIO failed (Operation not permitted)</errorname>. Was soll ich jetzt machen?</para> </question> <answer> <para>Das System läuft auf einer erhöhten Sicherheitsstufe (<foreignphrase>securelevel</foreignphrase>). X kann auf einer erhöhten Sicherheitsstufe nicht gestartet werden, weil X dazu Schreibzugriff auf <devicename>/dev/io</devicename> benötigt. Lesen Sie dazu auch &man.init.8;.</para> <para>Die Frage ist also eigentlich, was Sie anders machen sollten. Sie haben zwei Möglichkeiten: Setzen Sie die Sicherheitsstufe wieder zurück auf 0 (die Einstellung erfolgt in der Regel in <filename>/etc/rc.conf</filename>) oder starten Sie &man.xdm.1; während des Starts des Systems, bevor die Sicherheitsstufe erhöht wird.</para> <para>Der Abschnitt <xref linkend="xdm-boot"> enthält Informationen darüber, wie Sie &man.xdm.1; beim Start des Systems starten können.</para> </answer> </qandaentry> <qandaentry> <question id="x-and-moused"> <para>Warum funktioniert meine Maus unter X nicht?</para> </question> <answer> <para>Wenn Sie syscons (den Standard-Konsoltreiber) benutzen, können Sie FreeBSD so konfigurieren, dass auf jedem virtuellen Bildschirm ein Mauszeiger unterstützt wird. Um Konflikte mit X zu vermeiden, unterstützt syscons ein virtuelles Gerät mit dem Namen <devicename>/dev/sysmouse</devicename>. Über dieses virtuelle Gerät können andere Programme alle Mausbewegungen und Mausclicks im MouseSystems-Format mitlesen. Falls Sie Ihre Maus auf einer oder mehreren virtuellen Konsolen <emphasis>und</emphasis> X benutzen wollen, sollten Sie zunächst <xref linkend="moused" remap="diesen Abschnitt"> lesen und dann moused installieren.</para> <para>Die Datei <filename>/etc/X11/XF86Config</filename> sollte die folgenden Einträge enthalten:</para> <programlisting>Section Pointer Protocol "SysMouse" Device "/dev/sysmouse" ..... </programlisting> <para>Diese Variante kann für &xfree86; 3.3.2 und neuer sowie für &xorg; 6.7.0 benutzt werden. Wenn Sie eine ältere Versionen verwenden, muss als <emphasis>Protocol</emphasis> hingegen <emphasis>MouseSystems</emphasis> benutzt werden.</para> <para>Verwenden Sie &xorg;, sollten Sie allerdings die Datei <filename>/etc/X11/xorg.conf</filename> anpassen. Obwohl aus Kompatibilitätsgründen auch das eben beschriebene <emphasis>Section Pointer</emphasis> erlaubt ist, sollte besser ein <emphasis>Section <quote>InputDevice</quote></emphasis> ähnlich dem folgenden verwendet werden:</para> <programlisting>Section "InputDevice" Option "Protocol" "SysMouse" Option "Device" "/dev/sysmouse" .....</programlisting> <para>Einige Leute ziehen es vor, unter X <devicename>/dev/mouse</devicename> zu benutzen. Hierzu sollte <devicename>/dev/mouse</devicename> nach <devicename>/dev/sysmouse</devicename> gelinkt werden:</para> <screen>&prompt.root; <userinput>cd /dev</userinput> &prompt.root; <userinput>rm -f mouse</userinput> &prompt.root; <userinput>ln -s sysmouse mouse</userinput></screen> </answer> </qandaentry> <qandaentry> <question id="x-and-wheel"> <para>Kann ich meine Rad-Maus auch unter X benutzen?</para> </question> <answer> <para>Ja.</para> <para>Dazu müssen Sie X nur mitteilen, dass Sie eine Maus mit 5 Tasten haben. Dazu fügen Sie die Zeilen <literal>Buttons 5</literal> sowie <literal>ZAxisMapping 4 5</literal> in den Abschnitt <quote>InputDevice</quote> der Datei <filename>/etc/XF86Config</filename> ein. Das Beispiel zeigt, wie ein solcher Abschnitt aussehen könnte.</para> <example> <title>Abschnitt <quote>InputDevice</quote> für Rad-Mäuse in den Konfigurationsdateien von &xfree86; 4.X und &xorg;</title> <programlisting>Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection </programlisting> </example> <example> <title><quote>.emacs</quote> Beispiel für seitenweises Blättern mit einer Rad-Maus (optional)</title> <programlisting>;; wheel mouse (global-set-key [mouse-4] 'scroll-down) (global-set-key [mouse-5] 'scroll-up)</programlisting> </example> </answer> </qandaentry> <qandaentry> <question id="no-remote-x11"> <para>X verbietet Verbindungen von entfernten Systemen!</para> </question> <answer> <para>Aus Sicherheitsgründen verbietet der X-Server in der Voreinstellung Verbindungen von entfernten Systemen.</para> <para>Starten Sie den X-Server mit der Option <option>-listen_tcp</option>, wenn Sie Verbindungen von entfernten Systemen erlauben wollen:</para> <screen>&prompt.user; <userinput>startx -listen_tcp</userinput></screen> </answer> </qandaentry> <qandaentry> <question id="window-menu-weird"> <para>Wieso funktionieren Menüs und Dialoge in X nicht richtig?</para> </question> <answer> <para>Versuchen Sie, die <keycap>Num Lock</keycap>-Taste auszustellen.</para> <para>Falls Ihre <keycap>Num Lock</keycap>-Taste beim Booten standardmäßig eingeschaltet ist, sollten Sie die folgende Zeile in den Abschnitt <literal>Keyboard</literal> der Datei <filename>XF86Config</filename> einfügen:</para> <programlisting> # Let the server do the NumLock processing. This should only be # required when using pre-R6 clients ServerNumLock </programlisting> </answer> </qandaentry> <qandaentry> <question id="virtual-console"> <para>Was ist eine virtuelle Konsole und wie erstelle ich mehr?</para> </question> <answer> <para>Mit virtuellen Konsolen können Sie mehrere simultane Sitzungen auf einer Maschine laufen lassen, ohne so komplizierte Dinge wie die Einrichtung eines Netzwerkes oder die Benutzung von X zu benötigen.</para> <para>Wenn das System startet, wird es nach der Anzeige aller Bootmeldungen eine Eingabeaufforderung auf dem Bildschirm anzeigen. Sie können dann auf der ersten virtuellen Konsole Ihren Benutzernamen und das Passwort eingeben und anfangen, zu arbeiten (oder zu spielen!).</para> <para>Gelegentlich möchten Sie möglicherweise eine weitere Sitzung starten wollen, vielleicht, um die Dokumentation zu einem Programm, das Sie gerade benutzen, einzusehen, oder, um Ihre Mails zu lesen, während Sie auf das Ende einer FTP-Übertragung warten. Drücken Sie einfach <keycombo action="simul"> <keycap>Alt</keycap> <keycap>F2</keycap> </keycombo> (halten Sie die <keycap>Alt</keycap>-Taste gedrückt und drücken Sie die Taste <keycap>F2</keycap>) und Sie gelangen zur Anmelde-Aufforderung auf der zweiten <quote>virtuellen Konsole</quote>! Wenn Sie zurück zur ersten Sitzung möchten, drücken Sie <keycombo action="simul"> <keycap>Alt</keycap> <keycap>F1</keycap> </keycombo>.</para> <para>Die Standardinstallation von FreeBSD bietet acht aktivierte virtuelle Konsolen. Mit <keycombo action="simul"> <keycap>Alt</keycap> <keycap>F1</keycap> </keycombo>, <keycombo action="simul"> <keycap>Alt</keycap> <keycap>F2</keycap> </keycombo>, <keycombo action="simul"> <keycap>Alt</keycap> <keycap>F3</keycap> </keycombo> und so weiter wechseln Sie zwischen diesen virtuellen Konsolen.</para> <para>Um mehr von ihnen zu aktivieren, editieren Sie <filename>/etc/ttys</filename> und fügen Einträge für <devicename>ttyv4</devicename> bis zu <devicename>ttyvc</devicename> nach dem Kommentar zu <quote>virtuellen Terminals</quote> ein:</para> <programlisting> # Edit the existing entry for ttyv3 in /etc/ttys and change # "off" to "on". ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/libexec/getty Pc" cons25 on secure ttyv9 "/usr/libexec/getty Pc" cons25 on secure ttyva "/usr/libexec/getty Pc" cons25 on secure ttyvb "/usr/libexec/getty Pc" cons25 on secure </programlisting> <para>Benutzen Sie so wenig oder soviele, wie Sie möchten. Je mehr virtuelle Terminals Sie benutzen, desto mehr Ressourcen werden gebraucht; das kann wichtig sein, wenn Sie 8MB RAM oder weniger besitzen. Sie können auch <literal>secure</literal> in <literal>insecure</literal> ändern.</para> <important> <para>Wenn Sie einen X-Server benutzen möchten, <emphasis>müssen</emphasis> Sie mindestens ein virtuelles Terminal unbenutzt (oder ausgeschaltet) lassen damit der Server es benutzen kann. Das heißt, dass Sie Pech haben, wenn Sie für jede Ihrer 12 Alt-Funktionstasten eine Anmeldeaufforderung haben möchten - Sie können das nur für elf von ihnen tun, wenn Sie einen X-Server auf derselben Maschine laufen lassen möchten.</para> </important> <para>Der einfachste Weg, eine Konsole zu deaktivieren, ist, sie auszuschalten. Wenn Sie zum Beispiel die oben erwähnte volle Zuordnung aller 12 Terminals hätten, müssten Sie die Einstellung für das virtuelle Terminal 12 von:</para> <programlisting>ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting> <para>in:</para> <programlisting>ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting> <para>ändern.</para> <para>Wenn Ihre Tastatur nur über zehn Funktionstasten verfügt, bedeutet das:</para> <programlisting> ttyv9 "/usr/libexec/getty Pc" cons25 off secure ttyva "/usr/libexec/getty Pc" cons25 off secure ttyvb "/usr/libexec/getty Pc" cons25 off secure </programlisting> <para>(Sie können diese Zeilen auch einfach löschen.)</para> <para>Nachdem Sie die Datei <filename>/etc/ttys</filename> geändert haben, besteht der nächste Schritt darin, sicherzustellen, dass Sie genügend Geräte für virtuelle Terminal haben. Der einfachste Weg, dies zu tun, ist:</para> <screen>&prompt.root; <userinput>cd /dev</userinput> &prompt.root; <userinput>sh MAKEDEV vty12</userinput></screen> <note> <para>Wenn Sie FreeBSD 5.X oder neuer mit <literal>DEVFS</literal> benutzen, brauchen Sie die Gerätedateien nicht manuell anzulegen, da sie automatisch in <filename class="directory">/dev</filename> erstellt werden.</para> </note> <para>Die einfachste (und sauberste) Möglichkeit, die virtuellen Konsolen zu aktivieren, ist, zu rebooten. Wenn Sie jedoch auf keinen Fall rebooten möchten, können Sie auch einfach das X Window System herunterfahren und als <username>root</username></para> <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen> <para>ausführen.</para> <para>Es ist unbedingt erforderlich, dass Sie das X Window System vollständig herunterfahren, falls es läuft. Falls Sie es nicht tun, könnte es sein, dass sich ihr System nach der Eingabe des kill-Befehls aufhängt.</para> </answer> </qandaentry> <qandaentry> <question id="vty-from-x"> <para>Wie greife ich von X aus auf virtuelle Konsolen zu?</para> </question> <answer> <para>Benutzen Sie <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>Alt</keycap> <keycap>F<replaceable>n</replaceable></keycap> </keycombo> um auf eine virtuelle Konsole umzuschalten. Mit <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>Alt</keycap> <keycap>F1</keycap> </keycombo> würden Sie zur ersten virtuellen Konsole umschalten.</para> <para>Sobald Sie auf eine virtuelle Konsole umgeschaltet haben, können Sie ganz normal <keycombo action="simul"> <keycap>Alt</keycap> <keycap>F<replaceable>n</replaceable></keycap> </keycombo> benutzen, um zwischen den einzelnen virtuellen Konsolen umzuschalten.</para> <para>Um zu Ihrer X-Sitzung zurückzukehren, müssen Sie auf die virtuelle Konsole umschalten, auf der X läuft. Wenn Sie X über der Eingabeaufforderung gestartet haben (z.B. mit <command>startx</command>), benutzt X die nächste freie virtuelle Konsole und nicht die Konsole, von der es gestartet wurde. Wenn Sie acht aktive virtuelle Konsole haben, dann wird X die neunte benutzen und Sie können mit <keycombo action="simul"><keycap>Alt</keycap><keycap>F9</keycap></keycombo> umschalten.</para> </answer> </qandaentry> <qandaentry> <question id="xdm-boot"> <para>Wie starte ich XDM beim Booten?</para> </question> <answer> <para>Es gibt zwei Denkansätze, wie &man.xdm.1; zu starten ist. Bei dem einen wird <command>xdm</command> unter Nutzung des mitgelieferten Beispiels über <filename>/etc/ttys</filename> (&man.ttys.5;) gestartet, während beim zweiten Ansatz <filename>rc.local</filename> (&man.rc.8;) oder das Skript <filename>X.sh</filename> im Verzeichnis <filename>/usr/local/etc/rc.d</filename> verwendet wird. Beide Ansätze sind gleichwertig und der eine wird in Situationen funktionieren, in denen der andere es nicht tut. In beiden Fällen ist das Ergebnis das gleiche: X liefert eine graphische Anmeldeaufforderung.</para> <para>Die ttys-Methode hat den Vorteil, dass dokumentiert ist, auf welchem vty X gestartet wird und der Neustart des X-Servers beim Abmelden an init übergeben wird. Die rc.local-Methode erleichtert ein Killen von xdm, falls Probleme beim Start des X-Servers auftreten sollten.</para> <para>Beim Laden von rc.local sollte <command>xdm</command> ohne irgendwelche Argumente (das heißt als Daemon) gestartet werden. xdm muss gestartet werden NACHDEM getty läuft, andernfalls entsteht ein Konflikt zwischen getty und xdm und die Konsole bleibt gesperrt. Der beste Weg, um dies zu vermeiden, ist, das Skript für etwa zehn Sekunden anzuhalten und dann xdm zu starten.</para> <para>Wenn Sie <command>xdm</command> durch einen Eintrag in <filename>/etc/ttys</filename> starten lassen, kann es zu einem Konflikt zwischen <command>xdm</command> und &man.getty.8; kommen. Um dieses Problem zu vermeiden, sollten Sie die Nummer des <literal>vt</literal> in die Datei <filename>/usr/X11R6/lib/X11/xdm/Xservers</filename> eintragen.</para> <programlisting>:0 local /usr/X11R6/bin/X vt4</programlisting> <para>Diese Zeile führt dazu, dass der X Server <devicename>/dev/ttyv3</devicename> nutzt. Die beiden Zahlen weichen voneinander ab: Der X-Server beginnt die Zählung der vty bei 1, während der FreeBSD-Kernel bei 0 beginnt.</para> </answer> </qandaentry> <qandaentry> <question id="xconsole-failure"> <para>Wieso erhalte ich die Meldung <errorname>Couldn't open console</errorname>, wenn ich xconsole benutze?</para> </question> <answer> <para>Wenn Sie <application>X</application> mit <command>startx</command> starten, werden die Zugriffsrechte für <devicename>/dev/console</devicename> leider <emphasis>nicht</emphasis> geändert, was dazu führt, dass Dinge wie <command>xterm -C</command> und <command>xconsole</command> nicht funktionieren.</para> <para>Das hängt damit zusammen, wie die Zugriffsrechte für die Konsole standardmäßig gesetzt sind. Auf einem Mehrbenutzersystem möchte man nicht unbedingt, dass jeder Benutzer einfach auf die Systemkonsole schreiben kann. Für Benutzer, die sich auf einer Maschine direkt mit einem VTY anmelden, existiert die Datei &man.fbtab.5;, um derartige Probleme zu lösen.</para> <para>In Kürze: sorgen Sie dafür, dass sich eine nicht auskommentierte Zeile der Form</para> <programlisting>/dev/ttyv0 0600 /dev/console</programlisting> <para>in der Datei <filename>/etc/fbtab</filename> befindet. Das sorgt dafür, dass wer auch immer sich auf <devicename>/dev/ttyv0</devicename> anmeldet, auch die Konsole besitzt.</para> </answer> </qandaentry> <qandaentry> <question id="xfree86-root"> <para>Früher konnte ich &xfree86; als normaler User starten. Warum sagt mir das System jetzt, dass ich <username>root</username> sein muss?</para> </question> <answer> <para>Alle X-Server müssen mit der ID <username>root</username> laufen, um direkt auf die Videohardware zuzugreifen. Die älteren Versionen von &xfree86; (bis einschließlich 3.3.6) installierten alle mitgelieferten Server so, dass sie automatisch unter ID <username>root</username> ausgeführt werden (setuid to <username>root</username>). Dies stellt natürlich eine Gefahrenquelle dar, da die X-Server große, komplexe Programme sind. Alle neueren Versionen von &xfree86; installieren die Server aus genau diesem Grund nicht mehr "setuid <username>root</username>".</para> <para>Es ist natürlich nicht tragbar, den X-Server immer mit der ID <username>root</username> laufen zu lassen; auch aus Gründen der Sicherheit ist es keine gute Idee. Es gibt zwei Möglichkeiten, um X auch als normaler Benutzer starten zu können. Die erste ist die Verwendung von <command>xdm</command> oder eines ähnlichen Programms; die zweite ist die Benutzer von <command>Xwrapper</command>.</para> <para><command>xdm</command> ist ein ständig laufendes Programm, mit dem Logins über eine graphische Benutzeroberfläche sind. Es wird normalerweise beim Systemstart initialisiert und für die Authentifizierung der Benutzer und den Start ihrer Sitzungen verantwortlich. Es ist also die graphische Entsprechung von &man.getty.8; und &man.login.1;. Weitere Informationen zum Thema <command>xdm</command> finden Sie in der <ulink url="http://www.xfree86.org/support.html">&xfree86; Dokumentation</ulink> und dem entsprechenden <link linkend="xdm-boot">FAQ-Eintrag</link>.</para> <para><command>Xwrapper</command> ist eine <quote>Hülle</quote> für den X-Server. Mit diesem kleinen Utility ist es möglich, manuell den X-Server zu starten und weiterhin eine annehmbare Sicherheit zu haben. Das Tools prüft, ob die per Kommandozeile übergebenen Argumente halbwegs sinnvoll sind. Wenn dies der Fall ist, startet es den entsprechenden X-Server. Wenn Sie (aus welchem Grund auch immer) keine graphische Anmeldung wollen, ist <command>Xwrapper</command> die optimale Lösung. Wenn Sie die vollständige Ports-Sammlung installiert haben, finden Sie das Tool im Verzeichnis <filename>/usr/ports/x11/wrapper</filename>.</para> </answer> </qandaentry> <qandaentry> <question id="ps2-x"> <para>Warum funktioniert meine PS/2-Maus nicht richtig?</para> </question> <answer> <para>Ihre Maus und der Maustreiber sind etwas aus der Synchronisation geraten.</para> <para>In seltenen Fällen kann es jedoch sein, dass der Treiber fälschlicherweise Synchronisationsprobleme meldet und Sie in den Kernelmeldungen folgendes sehen:</para> <programlisting>psmintr: out of sync (xxxx != yyyy)</programlisting> <para>und Ihre Maus nicht richtig zu funktionieren scheint.</para> <para>Falls das passiert, deaktivieren Sie den Code zur Überprüfung der Synchronisation, indem Sie die Treiberangaben für den PS/2-Maustreiber auf 0x100 setzen. Rufen Sie <emphasis>UserConfig</emphasis> durch Angabe der Option <option>-c</option> am Boot-Prompt auf:</para> <screen>boot: <userinput>-c</userinput></screen> <para>Geben sie dann in der Kommandozeile von <emphasis>UserConfig</emphasis> folgendes ein:</para> <screen>UserConfig> <userinput>flags psm0 0x100</userinput> UserConfig> <userinput>quit</userinput></screen> </answer> </qandaentry> <qandaentry> <question id="ps2-mousesystems"> <para>Meine PS/2-Maus von MouseSystems scheint nicht zu funktionieren.</para> </question> <answer> <para>Es wurde berichtet, dass einige Modelle der PS/2-Mäuse von MouseSystems nur funktionieren, wenn sie im <quote>hochauflösenden</quote> Modus betrieben werden. Andernfalls springt der Mauszeiger sehr oft in die linke obere Ecke des Bildschirms.</para> <para>Das Flag 0x04 des Maustreibers bringt die Maus in den hochauflösenden Modus. Rufen Sie <emphasis>UserConfig</emphasis> durch Angabe der Option <option>-c</option> am Boot-Prompt auf:</para> <screen>boot: <userinput>-c</userinput></screen> <para>Geben sie dann in der Kommandozeile von <emphasis>UserConfig</emphasis> folgendes ein:</para> <screen>UserConfig> <userinput>flags psm0 0x04</userinput> UserConfig> <userinput>quit</userinput></screen> <para>Lesen Sie den vorigen Abschnitt über eine andere mögliche Ursache für Probleme mit der Maus.</para> </answer> </qandaentry> <qandaentry> <question id="imake-tmpl"> <para>Wenn ich eine X-Anwendung erstellen will, kann <command>imake</command> die Datei <filename>Imake.tmpl</filename> nicht finden. Wo befindet sie sich?</para> </question> <answer> <para><filename>Imake.tmpl</filename> ist Teil des Imake-Paketes, ein Standardwerkzeug zur Erstellung von X-Anwendungen. <filename>Imake.tmpl</filename> ist ebenso, wie viele Header-Dateien, die zur Erstellung von X-Anwendungen benötigt werden, in der Distribution <literal>xprog</literal> enthalten. Sie können Sie per sysinstall oder aber manuell mit den X Distributionsdateien installieren.</para> </answer> </qandaentry> <qandaentry> <question id="xfree86-version"> <para>Wie kann ich einen anderen X-Server installieren?</para> </question> <answer> <para>&os;-Versionen vor 5.3 verwendeten <application>&xfree86; 4.X</application> als Standard-X-Server. Seither wird <application>&xorg;</application> als Standard-X-Server verwendet. Wenn Sie einen anderen X-Server installieren wollen, müssen Sie die folgende Zeile in Ihre <filename>/etc/make.conf</filename> einfügen. (Existiert die Datei nicht, müssen Sie sie zuvor anlegen.)</para> <programlisting>X_WINDOW_SYSTEM= xorg</programlisting> <para>Diese Variable kann die Werte <literal>xorg</literal>, <literal>xfree86-4</literal>, oder <literal>xfree86-3</literal> annehmen.</para> </answer> </qandaentry> <qandaentry> <question id="mouse-button-reverse"> <para>Wie vertausche ich die Maustasten?</para> </question> <answer> <para>Benutzen Sie den Befehl <command>xmodmap -e "pointer = 3 2 1"</command> in Ihrer <filename>.xinitrc</filename> oder <filename>.xsession</filename>.</para> </answer> </qandaentry> <qandaentry> <question id="install-splash"> <para>Wie installiere ich einen Splash-Screen und wo finde ich sie?</para> </question> <answer> <para>&os; erlaubt die Anzeige von <quote>Splash-Screens</quote> während des Bootvorganges. Die Splash-Screens dürfen Bitmaps mit 256 Farben (<filename>*.BMP</filename>) oder ZSoft-PCX-Dateien <filename>*.PCX</filename>) sein. Damit sie mit normalen VGA-Karten dargestellt werden können, darf die Größe 320x200 Bildpunkte nicht überschreiten. Wenn Sie in ihrem Kernel die VESA-Unterstützung eingebunden haben, beträgt die maximale Größe 1024x768 Pixel. Die derzeitige VESA-Unterstützung kann entweder direkt durch die Kernelkonfigurationsoption <literal>VESA</literal> in den Kernel eingebunden werden, oder durch das Laden des VESA-kld-Moduls während des Bootens.</para> <para>Um einen Splash-Screen zu benutzen, müssen Sie die Startdateien, die den Bootprozess von &os; kontrollieren, modifizieren.</para> <para>Dazu müssen Sie die Datei <filename>/boot/loader.rc</filename> erstellen, die die folgenden Zeilen enthält:</para> <programlisting>include /boot/loader.4th start</programlisting> <para>Außerdem benötigen Sie die Datei <filename>/boot/loader.conf</filename>, die die folgenden Zeilen enthält:</para> <programlisting>splash_bmp_load="YES" bitmap_load="YES"</programlisting> <para>Dies setzt voraus, dass Sie <filename>/boot/splash.bmp</filename> als Ihren Splash-Screen benutzen. Wenn Sie lieber eine PCX-Datei benutzen wollen, dann kopieren Sie sie nach <filename>/boot/splash.pcx</filename>, erstellen Sie eine Datei <filename>/boot/loader.rc</filename>, wie oben beschrieben und eine Datei <filename>/boot/loader.conf</filename>, die folgendes enthält:</para> <programlisting>splash_pcx_load="YES" bitmap_load="YES" bitmap_name="/boot/splash.pcx"</programlisting> <para>Alles, was Sie nun brauchen, ist ein Splash-Screen. Hierzu können Sie durch die Gallerie bei <ulink url="http://www.baldwin.cx/splash/"></ulink> surfen.</para> </answer> </qandaentry> <qandaentry> <question id="windows-keys"> <para>Kann ich die &windows;-Tasten unter X benutzen?</para> </question> <answer> <para>Ja, Sie müssen lediglich mit &man.xmodmap.1; festlegen, welche Aktion diese Tasten auslösen sollen.</para> <para>Unter der Annahme, dass alle <quote>&windows;</quote> Tastaturen dem Standard entsprechen, lauten die Keycodes für die drei Tasten</para> <itemizedlist> <listitem> <para>115 - &windows;-Taste zwischen den <keycap>Alt</keycap>- und <keycap>Strg</keycap>-Tasten auf der linken Seite</para> </listitem> <listitem> <para>116 - &windows;-Taste rechts von der <keycap>AltGr</keycap>-Taste</para> </listitem> <listitem> <para>117 - <keycap>Menü</keycap>-Taste, links von der rechten <keycap>Strg</keycap>-Taste</para> </listitem> </itemizedlist> <para>Nach der folgenden Anweisung erzeugt die linke &windows;-Taste ein Komma.</para> <screen>&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput></screen> <para>Sie werden Ihren Window Manager wahrscheinlich neu starten müssen, damit diese Einstellung wirksam wird.</para> <para>Um die neue Belegung der &windows;-Tasten automatisch beim Start von X zu erhalten, könnten Sie entsprechende <command>xmodmap</command> Anweisungen in ihre <filename>~/.xinitrc</filename> einfügen. Die bevorzugte Variante ist aber, eine Datei mit dem Namen <filename>~/.xmodmaprc</filename> zu erzeugen, die nur die Parameter für den Aufruf von <command>xmodmap</command> enthält. Wenn Sie mehrere Tasten umdefinieren wollen, muss jede Definition in eine eigene Zeile gesetzt werden. Weiterhin müssen Sie in Ihrer <filename>~/.xinitrc</filename> noch die folgende Zeile einfügen:</para> <programlisting>xmodmap $HOME/.xmodmaprc</programlisting> <para>Sie könnten die drei Tasten zum Beispiel mit den Funktionen <keycap>F13</keycap>, <keycap>F14</keycap> und <keycap>F15</keycap> belegen. Dadurch ist es sehr einfach, diese Tasten mit nützlichen Funktionen eines Programmes oder Desktops zu verknüpfen.</para> <para>Falls Sie das auch tun wollen, sollten in Ihrer <filename>~/.xmodmaprc</filename> die folgenden Anweisungen stehen.</para> <programlisting> keycode 115 = F13 keycode 116 = F14 keycode 117 = F15 </programlisting> <para>Falls Sie zum Beispiel <command>fvwm2</command> benutzen, können Sie ihn so einstellen, dass <keycap>F13</keycap> das Fenster unter dem Mauszeiger minimiert bzw. maximiert. <keycap>F14</keycap> holt das Fenster unter dem Mauszeiger in den Vordergrund bzw. ganz nach hinten, wenn es bereits im Vordergrund ist. <keycap>F15</keycap> öffnet das Arbeitsplatz (Programme) Menü, auch wenn der Cursor nicht auf den Hintergrund zeigt. Dies ist extrem praktisch, wenn der gesamte Bildschirm von Fenster belegt wird; als kleiner Bonus gibt es sogar einen Zusammenhang zwischen dem Symbol auf der Taste und der durchgeführten Aktion.</para> <para>Dieses Verhalten kann man mit den folgenden Einträgen in der Datei <filename>~/.fvwmrc</filename> erhalten:</para> <programlisting> Key F13 FTIWS A Iconify Key F14 FTIWS A RaiseLower Key F15 A A Menu Workplace Nop </programlisting> </answer> </qandaentry> <qandaentry> <question id="x-3d-acceleration"> <para>Wird 3D Hardware Beschleunigung für &opengl; unterstützt?</para> </question> <answer> <para>Dies hängt davon ab, welche Version von &xfree86; oder &xorg; und welche Grafikkarte Sie verwenden. Wenn Sie eine Karte mit NVIDIA-Chipsatz besitzen, benutzen Sie die binären Treiber für FreeBSD, die Sie auf der <ulink url="http://www.nvidia.com/content/drivers/drivers.asp"> Drivers-Seite</ulink> von NVIDEA finden. Wenn Sie &xfree86;-4 oder &xorg; mit Grafikkarten wie der Matrox G200/G400, ATI Rage 128/Radeon, oder 3dfx Voodoo 3, 4, 5, und Banshee einsetzen, erhalten Sie weitere Informationen auf der Webseite <ulink url="http://people.FreeBSD.org/~anholt/dri/">&xfree86;-4 Direct Rendering on FreeBSD</ulink>. Wenn Sie &xfree86; in der Version 3.3 einsetzen, erhalten Sie eingeschränkte Unterstützung von die Hardware-Beschleunigung bei &opengl; für die Matrox Gx00, ATI Rage Pro, SiS 6326, i810, Savage, und Karten, die auf älteren NVIDIA Chipsätzen beruhen, wenn Sie den Port <filename role="package">graphics/utah-glx</filename> installieren.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="networking"> <title>Netzwerke</title> <qandaset> <qandaentry> <question id="diskless-booting"> <para>Woher kann ich Informationen über <quote>Diskless Booting</quote> bekommen?</para> </question> <answer> <para><quote>Diskless Booting</quote> bedeutet, dass die FreeBSD-Maschine über ein Netzwerk gebootet wird und die notwendigen Dateien von einem Server anstatt von der Festplatte liest. Vollständige Details finden Sie im <ulink url="&url.books.handbook;/network-diskless.html">Handbucheintrag über den plattenlosen Betrieb</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="router"> <para>Kann eine FreeBSD-Maschine als Netzwerkrouter genutzt werden?</para> </question> <answer> <para>Ja. Genaue Informationen zu diesem Thema finden Sie im Abschnitt <ulink url="&url.books.handbook;/network-routing.html"> Gateways und Routen</ulink> des Handbuchkapitels <ulink url="&url.books.handbook;/advanced-networking.html"> Weiterführende Netzwerkthemen</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="win95-connection"> <para>Kann ich meine &windows;-Maschine über FreeBSD ans Internet anbinden?</para> </question> <answer> <para>Personen, die diese Frage stellen, haben typischerweise zwei PCs zu Hause: einen mit FreeBSD und einen mit einer &windows;-Variante. Die Idee ist, die FreeBSD-Maschine an das Internet anzubinden, um in der Lage zu sein, von der &windows;-Maschine über die FreeBSD-Maschine auf das Internet zuzugreifen. Das ist tatsächlich nur ein Spezialfall der vorherigen Frage.</para> <para>Das User-Mode &man.ppp.8; von &os; kennt die Option <option>-nat</option>. Wenn Sie &man.ppp.8; mit der Option <option>-nat</option> starten, in <filename>/etc/rc.conf</filename> die Variable <literal>gateway_enable</literal> auf <literal>YES</literal> setzen und Ihre &windows;-Maschine korrekt konfigurieren, sollte das hervorragend funktionieren. Weitere Informationen erhalten Sie in der Hilfeseite &man.ppp.8; oder im <ulink url="&url.books.handbook;/userppp.html">Abschnitt User-PPP des Handbuchs</ulink>.</para> <para>Wenn Sie Kernel-Mode PPP verwenden oder ihre Verbindung zum Internet über Ethernet erstellt wurde, müssen Sie &man.natd.8; verwenden. Weitere Informationen dazu finden Sie im <ulink url="&url.books.handbook;/network-natd.html">natd-Abschnitt</ulink> des Handbuchs.</para> </answer> </qandaentry> <qandaentry> <question id="slip-ppp-support"> <para>Unterstützt FreeBSD SLIP und PPP?</para> </question> <answer> <para>Ja. Lesen Sie die Manualpages &man.slattach.8;, &man.sliplogin.8;, &man.pppd.8; und &man.ppp.8;. &man.ppp.8; und &man.pppd.8; liefern Unterstützung sowohl für eingehende, als auch ausgehende Verbindungen. &man.sliplogin.8; behandelt ausschließlich eingehende Verbindungen und &man.slattach.8; behandelt ausschließlich ausgehende Verbindungen.</para> <para>Diese Programme werden im Abschnitt <ulink url="&url.books.handbook;/ppp-and-slip.html">PPP und SLIP</ulink> des Handbuchs beschrieben.</para> <para>Falls Sie nur durch einen <quote>Shell-Account</quote> Zugang zum Internet haben, sehen Sie sich einmal das Package <filename role="package">net/slirp</filename> an. Es kann Ihnen (eingeschränkten) Zugang zu Diensten wie ftp und http direkt von Ihrer lokalen Maschine aus ermöglichen.</para> </answer> </qandaentry> <qandaentry> <question id="natd"> <para>Unterstützt FreeBSD NAT oder Masquerading?</para> </question> <answer> <para>Ja. Wenn Sie NAT über eine User-PPP-Verbindung einsetzen wollen, lesen Sie bitte den <ulink url="&url.books.handbook;/userppp.html">User-PPP Abschnitt</ulink> des Handbuchs. Wollen Sie NAT über eine andere Verbindung einsetzen, lesen Sie bitte den <ulink url="&url.books.handbook;/network-natd.html">NATD Abschnit</ulink> des Handbuchs.</para> </answer> </qandaentry> <qandaentry> <question id="parallel-connect"> <para>Wie verbinde ich zwei FreeBSD-Maschinen mit PLIP über die parallele Schnittstelle?</para> </question> <answer> <para>Dieses Thema wird im Handbuch-Kapitel <ulink url="&url.books.handbook;/network-plip.html">PLIP</ulink> behandelt.</para> </answer> </qandaentry> <qandaentry> <question id="create-dev-net"> <para>Wieso kann ich das Gerät <devicename>/dev/ed0</devicename> nicht erstellen?</para> </question> <answer> <para>Weil das nicht notwendig ist. Bei Berkeley-basierten Netzwerkimplementationen kann nur vom Kernel-Code aus direkt auf Netzwerkkarten zugegriffen werden. Zur weiteren Information lesen Sie bitte die Datei <filename>/etc/rc.network</filename> und die Manualpages zu den unterschiedlichen Netzwerkprogrammen, die dort erwähnt werden. Falls Sie danach total verwirrt sind, sollten Sie sich ein Buch besorgen, das die Netzwerkadministration auf einem anderen BSD-ähnlichen Betriebssystem beschreibt; mit wenigen signifikanten Ausnahmen gleicht die Netzwerkadministration auf FreeBSD im Grunde der auf &sunos; 4.0 oder Ultrix.</para> </answer> </qandaentry> <qandaentry> <question id="ethernet-aliases"> <para>Wie kann ich Ethernet-Aliase einrichten?</para> </question> <answer> <para>Wenn sich die zweite Adresse im gleichen Subnetz befindet wie eine der Adressen, die bereits auf dem Interface konfiguriert sind, benutzen Sie <literal>netmask 0xffffffff</literal> in Ihrer &man.ifconfig.8; Befehlszeile, wie z.B.:</para> <screen>&prompt.root; <userinput>ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff</userinput></screen> <para>Andernfalls geben sie die Adresse und die Netzmaske so an, wie sie es bei einem normalen Interface auch tun würden:</para> <screen>&prompt.root; <userinput>ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00</userinput></screen> </answer> </qandaentry> <qandaentry> <question id="port-3c503"> <para>Wie bringe ich meine 3C503 dazu, den anderen Anschluss zu benutzen?</para> </question> <answer> <para>Wenn Sie die anderen Anschlüsse benutzen möchten, müssen Sie einen zusätzlichen Parameter in der &man.ifconfig.8;-Befehlszeile spezifizieren. Der Standard-Anschluss ist <literal>link0</literal>. Um den AUI-Anschluss anstelle des BNC-Anschlusses zu verwenden, benutzen Sie <literal>link2</literal>. Diese Angaben sollten durch Benutzung der Variablen ifconfig_* in der Datei <filename>/etc/rc.conf</filename> spezifiziert werden.</para> </answer> </qandaentry> <qandaentry> <question id="nfs"> <para>Warum habe ich Probleme mit NFS und FreeBSD?</para> </question> <answer> <para>Gewisse PC-Netzwerkkarten sind (um es gelinde auszudrücken) besser als andere und können manchmal Probleme mit netzwerkintensiven Anwendungen wie NFS verursachen.</para> <para>Weitere Informationen zu diesem Thema finden Sie <ulink url="&url.books.handbook;/network-nfs.html">im Handbucheintrag zu NFS</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="nfs-linux"> <para>Warum kann ich per NFS nicht von einer &linux;-Maschine mounten?</para> </question> <answer> <para>Einige Versionen des NFS-Codes von &linux; akzeptieren Mount-Requests nur von einem privilegierten Port. Versuchen Sie</para> <screen>&prompt.root; <userinput>mount -o -P linuxbox:/blah /mnt</userinput></screen> </answer> </qandaentry> <qandaentry> <question id="nfs-sun"> <para>Warum kann ich per NFS nicht von einer Sun-Maschine mounten?</para> </question> <answer> <para>Sun Workstations mit &sunos; 4.X akzeptieren Mount-Requests nur von einem privilegierten Port. Versuchen Sie</para> <screen>&prompt.root; <userinput>mount -o -P sunbox:/blah /mnt</userinput></screen> </answer> </qandaentry> <qandaentry> <question id="exports-errors"> <para>Warum meldet mir <command>mountd</command> auf meinem FreeBSD NFS-Server ständig <errorname>can't change attributes</errorname> und <errorname>bad exports list</errorname>?</para> </question> <answer> <para>Die häufigste Ursache für dieses Problem ist, dass Sie den Aufbau der &man.exports.5; nicht oder nicht richtig verstanden haben. Überprüfen Sie Ihre &man.exports.5; und lesen das Kapitel <ulink url="&url.books.handbook;/network-nfs.html">NFS</ulink> im Handbuch, speziell den Abschnitt <ulink url="&url.books.handbook;/network-nfs.html#CONFIGURING-NFS"> Konfiguration</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-nextstep"> <para>Warum habe ich Probleme, per PPP mit NeXTStep-Maschinen zu kommunizieren?</para> </question> <answer> <para>Versuchen Sie, die TCP-Erweiterung in <filename>/etc/rc.conf</filename> zu deaktivieren, indem Sie die folgende Variable auf NO setzen:</para> <programlisting>tcp_extensions=NO</programlisting> <para>Xylogic's Annex-Maschinen arbeiten hier auch fehlerhaft und Sie müssen die obige Änderung benutzen, um über Sie Verbindungen herzustellen.</para> </answer> </qandaentry> <qandaentry> <question id="ip-multicast"> <para>Wie aktiviere ich die Unterstützung für IP-Multicast?</para> </question> <answer> <para>Multicast-Host-Funktionen werden standardmäßig unterstützt. Wenn Sie Ihre Maschine als Multicast-Router betreiben wollen, müssen Sie Ihren Kernel mit der Option <literal>MROUTING</literal> neu kompilieren und &man.mrouted.8; starten. Wenn Sie die Variable <literal>mrouted_enable</literal> in der Datei <filename>/etc/rc.conf</filename> auf <literal>"YES"</literal> setzen, wird &man.mrouted.8; während des Systemstart automatisch gestartet.</para> <para>MBONE-Tools sind in ihrer eigenen Ports-Kategorie <ulink url="http://www.FreeBSD.org/ports/mbone.html">mbone</ulink> verfügbar. Schauen Sie dort nach, wenn Sie die Konferenztools <command>vic</command> und <command>vat</command> suchen!</para> </answer> </qandaentry> <qandaentry> <question id="dec-pci-chipset"> <para>Welche Netzwerkkarten basieren auf dem DEC-PCI-Chipsatz?</para> </question> <answer> <para>Hier ist eine von Glen Foster <email>gfoster@driver.nsta.org</email> zusammengetragene Liste mit einigen aktuellen Ergänzungen:</para> <table> <title>Netzwerkkarten mit DEC-PCI-Chipsatz</title> <tgroup cols=2> <thead> <row> <entry>Vendor</entry> <entry>Model</entry> </row> </thead> <tbody> <row> <entry>ASUS</entry> <entry>PCI-L101-TB</entry> </row> <row> <entry>Accton</entry> <entry>ENI1203</entry> </row> <row> <entry>Cogent</entry> <entry>EM960PCI</entry> </row> <row> <entry>Compex</entry> <entry>ENET32-PCI</entry> </row> <row> <entry>D-Link</entry> <entry>DE-530</entry> </row> <row> <entry>Dayna</entry> <entry>DP1203, DP2100</entry> </row> <row> <entry>DEC</entry> <entry>DE435, DE450</entry> </row> <row> <entry>Danpex</entry> <entry>EN-9400P3</entry> </row> <row> <entry>JCIS</entry> <entry>Condor JC1260</entry> </row> <row> <entry>Linksys</entry> <entry>EtherPCI</entry> </row> <row> <entry>Mylex</entry> <entry>LNP101</entry> </row> <row> <entry>SMC</entry> <entry>EtherPower 10/100 (Modell 9332)</entry> </row> <row> <entry>SMC</entry> <entry>EtherPower (Model 8432)</entry> </row> <row> <entry>TopWare</entry> <entry>TE-3500P</entry> </row> <row> <entry>Znyx (2.2.X)</entry> <entry>ZX312, ZX314, ZX342, ZX345, ZX346, ZX348</entry> </row> <row> <entry>Znyx (3.X)</entry> <entry>ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd)</entry> </row> </tbody> </tgroup> </table> </answer> </qandaentry> <qandaentry> <question id="fqdn-hosts"> <para>Warum muss ich für Hosts auf meiner Site den FQDN benutzen?</para> </question> <answer> <para>Sie werden wahrscheinlich feststellen, dass der Host sich tatsächlich in einer anderen Domäne befindet; wenn Sie sich zum Beispiel in foo.example.org befinden und einen Host namens <hostid>mumble</hostid> in der Domäne <hostid role="domainname">example.org</hostid> erreichen wollen, werden Sie den fully-qualified Domainnamen <hostid role="fqdn">mumble.example.org</hostid>, anstatt nur <hostid>mumble</hostid> benutzen müssen.</para> <para>Traditionell war dies bei BSD-BIND-Resolvern erlaubt. Die aktuelle Version von <application>bind</application>, die mit FreeBSD ausgeliefert wird, ermöglicht jedoch nicht mehr die standardmäßige Abkürzung von nicht-fully-qualified Domainnamen für andere als ihre eigene Domäne. Ein nicht-qualifizierter Host <hostid>mumble</hostid> muss also entweder als <hostid role="fqdn">mumble.foo.example.org</hostid> gefunden werden, oder er wird in der Hauptdomäne gesucht.</para> <para>Dies unterscheidet sich vom vorherigen Verhalten, wo die Suche über <hostid role="domainname">mumble.example.org</hostid> und <hostid role="domainname">mumble.edu</hostid> fortgesetzt wurde. Werfen Sie einen Blick in RFC 1535, um zu erfahren, warum dies als schlechter Stil oder sogar als eine Sicherheitslücke betrachtet wurde.</para> <para>Als Abhilfe können Sie die Zeile</para> <programlisting>search foo.example.org example.org</programlisting> <para>anstelle der vorherigen</para> <programlisting>domain foo.example.org</programlisting> <para>in Ihre Datei <filename>/etc/resolv.conf</filename> einfügen. Stellen Sie jedoch sicher, dass die Suchreihenfolge nicht über die <quote>Grenze zwischen lokaler und öffentlicher Administration</quote>, wie RFC 1535 sie nennt, hinausreicht.</para> </answer> </qandaentry> <qandaentry> <question id="network-permission-denied"> <para>Wieso erhalte ich bei allen Netzwerkoperationen die Meldung <errorname>Permission denied</errorname>?</para> </question> <answer> <para>Dieses Problem kann auftreten, wenn Sie einen Kernel mit der Option <literal>IPFIREWALL</literal> erstellt haben. In der Voreinstellung werden alle Pakete, die nicht explizit erlaubt wurden, blockiert.</para> <para>Falls sie Ihr System unbeabsichtigt als Firewall konfiguriert haben, können Sie die Netzwerkfunktionalität wiederherstellen, indem Sie als <username>root</username> folgendes eingeben:</para> <screen>&prompt.root; <userinput>ipfw add 65534 allow all from any to any</userinput></screen> <para>Sie können in <filename>/etc/rc.conf</filename> auch <literal>firewall_type="open"</literal> setzen.</para> <para>Weitere Informationen über die Konfiguration einer FreeBSD-Firewall finden Sie im Kapitel <ulink url="&url.books.handbook;/firewalls.html">Firewalls</ulink> des Handbuchs.</para> </answer> </qandaentry> <qandaentry> <question id="ipfw-overhead"> <para>Wie viele Einbußen zieht IPFW nach sich?</para> </question> <answer> <para>Diese Frage wird im Handbuch-Kapitel <ulink url="&url.books.handbook;/firewalls.html">Firewalls</ulink> im Abschnitt <ulink url="&url.books.handbook;/firewalls.html#IPFW-OVERHEAD">IPFW Overhead und Optimierung</ulink> ausführlich behandelt.</para> </answer> </qandaentry> <qandaentry> <question id="ipfw-fwd"> <para>Warum kann ich bei &man.ipfw.8; einen Dienst nicht mit <quote>fwd</quote> auf eine andere Maschine umlenken?</para> </question> <answer> <para>Der wahrscheinlichste Grund ist, dass Sie Network Address Translation (NAT) brauchen und nicht die einfache Weiterleitung von Pakete. Die <quote>fwd</quote> Anweisung macht genau das, was da steht: Sie leitet Pakete weiter; die Daten in den Paketen werden aber nicht verändert. Ein Beispiel:</para> <screen>01000 fwd <replaceable>10.0.0.1</replaceable> from any to <replaceable>foo 21</replaceable></screen> <para>Wenn ein Paket mit dem Ziel <replaceable>foo</replaceable> die Maschine mit dieser Regel erreicht, wird das Paket an <replaceable>10.0.0.1</replaceable> weitergeleitet; die Zieladresse im Paket lautet aber immer noch <replaceable>foo</replaceable>! Die Zieladresse wird <emphasis>nicht</emphasis> in <replaceable>10.0.0.1</replaceable> geändert. Die meisten Rechner werden allerdings Pakete verwerfen, wenn die Zieladresse des Paketes nicht mit der Adresse des Rechners übereinstimmt. Das ist der Grund, warum eine <quote>fwd</quote> Regel oft nicht den Effekt hat, den der Benutzer wollte. Dieses Verhalten ist aber kein Fehler, sondern erwünscht.</para> <para>Wenn Sie einen Dienst auf eine andere Maschine umleiten wollen, sollten Sie sich den <link linkend="service-redirect">FAQ-Eintrag über die Umleitung von Diensten</link> oder die Online-Hilfe zu &man.natd.8; durchlesen. Auch in der <ulink url="&url.base;/ports/index.html">Ports Sammlung</ulink> sind diverse Hilfsprogramme für diesen Zweck enthalten.</para> </answer> </qandaentry> <qandaentry> <question id="service-redirect"> <para>Wie kann ich Service-Requests von einer Maschine auf eine andere umleiten?</para> </question> <answer> <para>Sie können FTP-Requests (und andere Dienste) mit dem Package <literal>socket</literal> umleiten, das im Ports-Tree in der Kategorie <quote>sysutils</quote> verfügbar ist. Ersetzen sie die Befehlszeile für den Dienst einfach so, dass stattdessen socket aufgerufen wird, zum Beispiel so:</para> <programlisting>ftp stream tcp nowait nobody /usr/local/bin/socket socket <replaceable>ftp.example.com</replaceable> <replaceable>ftp</replaceable></programlisting> <para>wobei <replaceable>ftp.example.com</replaceable> und <replaceable>ftp</replaceable> entsprechend der Host und der Port sind, wohin umgeleitet werden soll.</para> </answer> </qandaentry> <qandaentry> <question id="bandwidth-mgr-tool"> <para>Woher kann ich ein Bandbreiten-Managementtool bekommen?</para> </question> <answer> <para>Für FreeBSD gibt es drei Bandbreiten-Managementtools. &man.dummynet.4; ist als Teil von &man.ipfw.4; in FreeBSD integriert. <ulink url="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</ulink> ist für FreeBSD 4.X kostenlos verfügbar und seit FreeBSD 5.X als Bestandteil von &man.pf.4; im Basissystem enthalten. Bei Bandwidth Manager von <ulink url="http://www.etinc.com/">Emerging Technologies</ulink> handelt es sich hingegen um ein kommerzielles Produkt.</para> </answer> </qandaentry> <qandaentry> <question id="bpf-not-configured"> <para>Warum erhalte ich die Meldung <errorname>/dev/bpf0: device not configured</errorname>?</para> </question> <answer> <para>Der Berkeley-Paket-Filter (&man.bpf.4;) muss in den Kernel eingebunden werden, bevor er von einem Programme aus genutzt werden kann. Fügen Sie folgendes zu Ihrer Kernelkonfigurationsdatei hinzu und erstellen Sie einen neuen Kernel:</para> <programlisting>pseudo-device bpf # Berkeley Packet Filter</programlisting> <para>Unter FreeBSD 4.X und früheren Versionen müssen Sie noch die Gerätedateien erstellen. Wechseln Sie dazu nach dem Neustart in das Verzeichnis <filename>/dev</filename> und führen Sie den folgenden Befehl aus:</para> <screen>&prompt.root; <userinput>sh MAKEDEV bpf0</userinput></screen> <para>Weitere Informationen über den Umgang mit Geräten finden Sie im <ulink url="&url.books.handbook;/kernelconfig-nodes.html">Handbucheintrag über Device Nodes</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="mount-smb-share"> <para>Habe ich, analog zum smbmount von &linux;, eine Möglichkeit, auf ein freigegebenes Laufwerk einer &windows;-Maschine in meinem Netzwerk zuzugreifen?</para> </question> <answer> <para>Benutzen Sie die Kernel-Erweiterungen und Benutzerprogramme aus dem Programmpaket <application>SMBFS</application>. Das Paket und weitergehende Informationen sind unter <filename role="package">net/smbfs</filename> in den Ports verfügbar; ab der Version 4.5 ist <application>SMBFS</application> Bestandteil des Basissystems.</para> </answer> </qandaentry> <qandaentry> <question id="icmp-response-bw-limit"> <para>Was bedeutet die Meldung <quote>icmp-response bandwidth limit 300/200 pps</quote> in meinen Logfiles?</para> </question> <answer> <para>Mit dieser Meldung teilt Ihnen der Kernel mit, dass irgend jemand versucht, ihn zur Generierung von zu vielen ICMP oder TCP reset (RST) Antworten zu provozieren. ICMP Antworten sind oft das Ergebnis von Verbindungsversuchen zu unbenutzten UDP Ports. TCP Resets werden generiert, wenn jemand versucht, eine Verbindung zu einem ungenutzten TCP Port aufzubauen. Die Meldungen können unter anderem durch die folgenden Ereignisse ausgelöst werden:</para> <itemizedlist> <listitem> <para>Denial of Service (DoS) Angriffe mit der Brechstange (und nicht durch Angriffe mit einzelnen Paketen, die gezielt eine Schwachstelle des Systems ausnutzen sollen).</para> </listitem> <listitem> <para>Port Scans, bei denen versucht wird, Verbindungen zu einer großen Anzahl von Ports (und nicht nur einigen bekannten Ports) herzustellen.</para> </listitem> </itemizedlist> <para>Die erste Zahl gibt an, wie viele Pakete vom Kernel ohne das Limit versendet worden wären; die zweite Zahl gibt das Limit an. Sie können das Limit mit Hilfe der sysctl-Variable <varname>net.inet.icmp.icmplim</varname> einstellen. Im Beispiel wird das Limit auf <literal>300</literal> Pakete pro Sekunde gesetzt:</para> <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim=300</userinput></screen> <para>Wenn Sie zwar die Begrenzung benutzen möchten, aber die Meldungen nicht in Ihren Logfiles sehen möchten, können Sie die Meldungen mit der sysctl-Variable <varname>net.inet.icmp.icmplim_output</varname> abschalten:</para> <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim_output=0</userinput></screen> <para>Falls Sie die Begrenzung ganz abschalten wollen, können Sie die Sysctl-Variable <varname>net.inet.icmp.icmplim</varname> auf <literal>0</literal>. Wir raten Ihnen aus den oben genannten Gründen dringend von diesem Schritt ab.</para> </answer> </qandaentry> <qandaentry> <question id="unknown-hw-addr-format"> <para>Was bedeutet die Meldung <errorname>arp: unknown hardware address format</errorname>?</para> </question> <answer> <para>Ein Gerät im lokalen Ethernet verwendet eine MAC-Adresse in einem Format, das FreeBSD nicht kennt. Der wahrscheinlichste Grund ist, dass jemand Experimente mit einer Ethernet-Karte anstellt. Die Meldung tritt sehr häufig in Netzwerken mit Cable Modems auf. Die Meldung ist harmlos und sollte die Performance Ihres Systems nicht negativ beeinflussen.</para> </answer> </qandaentry> <qandaentry> <question id="cvsup-missing-libs"> <para>Ich habe gerade CVSup installiert, aber das Programm bricht mit Fehlermeldungen ab. Was ist da schief gelaufen?</para> </question> <answer> <para>Schauen Sie bitte zuerst nach, ob Sie eine Fehlermeldung wie die unten gezeigte erhalten.</para> <programlisting>/usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found</programlisting> <para>Solche Fehlermeldungen erhalten Sie, wenn Sie den <filename role="package">net/cvsup</filename> Port auf einer Maschine installieren, die kein <application>&xfree86;</application>-System besitzt. Wenn Sie das <acronym>GUI</acronym> von <application>CVSup</application> benutzen wollen, müssen Sie <application>&xfree86;</application> installieren. Wenn Sie <application>CVSup</application> nur auf der Kommandozeile benutzen wollen, entfernen Sie bitte den Port, den Sie gerade installiert haben. Installieren Sie stattdessen den Port <filename role="package">net/cvsup-without-gui</filename>. Genauere Informationen finden Sie im <ulink url="&url.books.handbook;/cvsup.html">CVSup Abschnitt</ulink> des Handbuchs.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="security"> <title>Sicherheit</title> <qandaset> <qandaentry> <question id="sandbox"> <para>Was ist ein Sandkasten (sandbox)?</para> </question> <answer> <para><quote>Sandkasten</quote> (sandbox) ist ein Ausdruck aus dem Bereich Sicherheit. Er hat zwei Bedeutungen:</para> <itemizedlist> <listitem> <para>Ein Programm, das innerhalb virtueller Wände ausgeführt wird. Wenn ein Angreifer über eine Sicherheitslücke in diesen Programm einbricht, verhindern diese Wände ein tieferes Vordringen in das System.</para> <para>Man sagt: Der Prozess kann innerhalb der Wände <quote>spielen</quote>, das heißt nichts, was der Prozess in Bezug auf die Ausführung von Code tut, kann die Wände durchbrechen. Es ist also keine detailierte Revision des Codes erforderlich, um gewisse Aussagen über seine Sicherheit machen zu können.</para> <para>Die Wände könnten z.B. eine Benutzerkennung sein. Dies ist die Definition, die in den Hilfeseiten &man.security.7; und &man.named.8; benutzt wird.</para> <para>Nehmen Sie zum Beispiel den Dienst <literal>ntalk</literal> (siehe auch /etc/inetd.conf). Dieser Dienst ist früher mit der Benutzerkennung <username>root</username> gelaufen; nun läuft er mit der Benutzerkennung tty. Der Benutzer tty ist ein Sandkasten, der dazu gedacht ist, es jemandem, der über ntalk erfolgreich in das System eingebrochen ist, schwer zu machen, über diese Benutzerkennung hinaus vorzudringen.</para> </listitem> <listitem> <para>Ein Prozess, der sich innerhalb einer simulierten Maschine befindet. Dies ist etwas fortgeschrittener; grundsätzlich bedeutet es, dass jemand, der in der Lage ist, in einen Prozess einzudringen, annehmen könnte, er könnte weiter in die Maschine eindringen, tatsächlich aber nur in eine Simulation der Maschine einbricht und keine echten Daten verändert.</para> <para>Der gängigste Weg, dies zu erreichen, ist, in einem Unterverzeichnis eine simulierte Umgebung zu erstellen und den Prozess in diesem Verzeichnis mit chroot auszuführen (für diesen Prozess ist <filename>/</filename> dieses Verzeichnis und nicht das echte <filename>/</filename> des Systems).</para> <para>Eine weitere gebräuchliche Anwendung ist, ein untergeordnetes Dateisystem nur mit Leserechten zu mounten, und dann darüber eine Dateisystemebene zu erstellen, die einem Prozess einen scheinbar schreibberechtigten Blick in das Dateisystem gibt. Der Prozess mag glauben, dass er in der Lage ist, diese Dateien zu verändern, aber nur der Prozess sieht diesen Effekt - andere Prozess im System natürlich nicht.</para> <para>Es wird versucht, diese Art von Sandkasten so transparent zu gestalten, dass der Benutzer (oder Hacker) nicht merkt, dass er sich in ihm befindet.</para> </listitem> </itemizedlist> <para>Ein &unix; System implementiert zwei Arten von Sandkästen - eine auf Prozessebene und die andere auf der Ebene der Benutzerkennung.</para> <para>Jeder Prozess auf einem &unix; System ist komplett von allen anderen Prozessen abgeschirmt. Ein Prozess kann den Adressraum eines anderen Prozesses nicht modifizieren. Das ist anders als bei &windows;, wo ein Prozess leicht den Adressraum eines anderen überschreiben kann, was zu einem Absturz führt.</para> <para>Ein Prozess gehört einer bestimmten Benutzerkennung. Falls die Benutzerkennung nicht die von <username>root</username> ist, dient sie dazu, den Prozess von Prozessen anderer Benutzer abzuschirmen. Die Benutzerkennung wird außerdem dazu genutzt, Daten auf der Festplatte abzuschirmen.</para> </answer> </qandaentry> <qandaentry> <question id="securelevel"> <para>Was sind die Sicherheitsstufen?</para> </question> <answer> <para>Die Sicherheitsstufen sind ein Sicherheitsmechanismus, der im Kernel angesiedelt ist. Wenn die Sicherheitsstufe einen positiven Wert hat, verhindert der Kernel die Ausführung bestimmter Tätigkeiten; nicht einmal der Super-User (also <username>root</username>) darf sie durchführen. Zurzeit können über die Sicherheitsstufen unter anderem die folgenden Tätigkeiten geblockt werden:</para> <itemizedlist> <listitem> <para>Änderungen bestimmter Dateiattribute, wie zum Beispiel <literal>schg</literal> (das "system immutable" Attribut)</para> </listitem> <listitem> <para>Schreibender Zugriff auf die Speicherbereiche des Kernels mittels <devicename>/dev/mem</devicename> und <devicename>/dev/kmem</devicename>.</para> </listitem> <listitem> <para>Laden von Kernel-Modulen.</para> </listitem> <listitem> <para>Änderungen an den Firewall-Regeln.</para> </listitem> </itemizedlist> <para>Um die eingestellte Sicherheitsstufe eines aktiven Systems abzufragen, reicht das folgende einfache Kommando:</para> <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen> <para>Die Ausgaben wird den Namen der &man.sysctl.8;-Variablen (in diesem Fall <varname>kern.securelevel</varname>) und eine Zahl enthalten. Die Zahl ist der aktuelle Wert der Sicherheitsstufe. Wenn die Zahl positiv (größer als Null) ist, sind zumindestens einige der Schutzmaßnahmen aktiviert.</para> <para>Sie können die Sicherheitsstufe eines laufenden Systems nicht verringern, da dies den Mechanismus wertlos machen würden. Wenn Sie eine Tätigkeit ausführen müssen, bei der die Sicherheitsstufe nicht-positiv sein muss (z.B. ein <maketarget>installworld</maketarget> oder eine Änderung der Systemzeit), dann müssen Sie die entsprechende Einstellung in <filename>/etc/rc.conf</filename> ändern (suchen Sie nach den Variablen <varname>kern_securelevel</varname> und <varname>kern_securelevel_enable</varname>) und das System rebooten.</para> <para>Weitere Informationen über die Sicherheitsstufen und genaue Informationen, was die Einstellungen bewirken, können Sie der Online-Hilfe &man.init.8; entnehmen.</para> <warning> <para>Die Sicherheitsstufen sind kein magischer Zauberstab, der alle Ihre Problem löst; es gibt viele bekannte Probleme. Und in der Mehrzahl der Fälle vermitteln sie ein falsches Gefühl der Sicherheit.</para> <para>Eines der größten Probleme ist, dass alle für den Start des Systems benötigten Dateien geschützt sein müssen, damit die Sicherheitsstufe effektiv sein können. Wenn es ein Angreifer schafft, seine eigenen Programme ausführen zu lassen, bevor die Sicherheitsstufe gesetzt wird (was leider erst gegen Ende des Startvorgangs erfolgen kann, da viele der notwendigen Tätigkeiten für den Systemstart nicht mit einer gesetzten Sicherheitsstufe möglich wären), werden die Schutzmechanismen ausgehebelt. Es ist zwar nicht technisch unmöglich, alle beim Systemstart genutzten Dateien zu schützen; allerdings würde in einem so geschützten System die Administration zu einem Alptraum, da man das System neu starten oder in den Single-User Modus bringen müsste, um eine Konfigurationsdatei ändern zu können.</para> <para>Dieses und andere Probleme werden häufig auf den Mailinglisten diskutiert, speziell auf auf der Mailingliste &a.security;. Das <ulink url="&url.base;/search/index.html"> verfügbare Archiv</ulink> enthält ausgiebige Diskussionen. Einige Benutzer sind guter Hoffnung, dass das System der Sicherheitsstufen bald durch ein besser konfigurierbares System ersetzt wird, aber es gibt noch keine definitiven Aussagen.</para> <para>Fühlen Sie sich gewarnt.</para> </warning> </answer> </qandaentry> <qandaentry> <question id="extra-named-port"> <para>Wieso wartet BIND (<command>named</command>) sowohl auf Port 53 als auch auf einem hohen Port auf Anfragen?</para> </question> <answer> <para>FreeBSD benutzt eine Version von BIND, die einen Port mit einer hohen, zufälligen Nummer für den Versand von Anfragen nutzt. Wenn Sie Port 53 für abgehende Anfragen benutzen wollen, um durch eine Firewall zu kommen oder sich einfach nur besser zu fühlen, können die folgenden Zeilen in <filename>/etc/namedb/named.conf</filename> eintragen.</para> <programlisting>options { query-source address * port * 53; }; </programlisting> <para>Wenn Sie möchten, können Sie statt <literal>*</literal> auch eine einzelne IP-Adresse eintragen, um die Dinge noch weiter einzuschränken.</para> <para>Ach übrigens, herzlichen Glückwunsch. Es ist eine sehr gute Angewohnheit, die Ausgaben von &man.sockstat.1; durchzusehen und auf merkwürdige Dinge zu achten.</para> </answer> </qandaentry> <qandaentry> <question id="sendmail-port-587"> <para>Wieso wartet Sendmail neuerdings sowohl auf Port 587 als auch auf dem Standard-Port 25 auf Anfragen?</para> </question> <answer> <para>Aktuelle Sendmail-Versionen unterstützen eine neue Technik zur Einlieferung von Mails, die Port 587 nutzt. Diese Technik wird zwar noch nicht oft angewendet, erfreut sich aber ständig steigenden Popularität,</para> </answer> </qandaentry> <qandaentry> <question id="toor-account"> <para>Woher kommt dieser Benutzer <username>toor</username> mit UID 0? Ist mein System gehackt worden?</para> </question> <answer> <para>Keine Panik. <username>toor</username> ist ein <quote>alternativer</quote> Account für den Super-User (wenn man root rückwärts schreibt, erhält man toor). Früher wurde er nur erzeugt, wenn die Shell &man.bash.1; installiert wurde, heute wird er auf jeden Fall erzeugt. Dieser Account ist für die Verwendung mit einer alternativen Shell vorgesehen; damit ist es nicht mehr erforderlich, die Shell von <username>root</username> zu ändern. Dies ist wichtig, wenn eine Shell verwendet wird, die nicht zum Lieferumfang von FreeBSD gehört, zum Beispiel aus einem Port oder einem Package. Diese Shells werden in der Regel in <filename>/usr/local/bin</filename> installiert und dieses Verzeichnis liegt standardmäßig auf einem anderem Filesystem. Wenn die Shell von <username>root</username> in <filename>/usr/local/bin</filename> liegt und <filename>/usr</filename> (oder das Filesystem, auf dem <filename>/usr/local/bin</filename> liegt) nicht gemountet werden kann, kann sich <username>root</username> nicht mehr einloggen, um das Problem zu beheben. Es ist allerdings möglich, das System zu rebooten und das Problem im Single-User Modus zu lösen, da man hier gefragt wird, welche Shell benutzt werden soll.</para> <para>Einige Anwender benutzen <username>toor</username> mit einer alternativen Shell für die tägliche Arbeit und benutzen <username>root</username> (mit der Standard-Shell) für den Single-User Modus und für Notfälle. Standardmäßig kann man sich nicht als <username>toor</username> anmelden, da der Account kein gültiges Passwort hat; Sie müssen sich also als <username>root</username> anmelden und ein Passwort für <username>toor</username> setzen, wenn Sie diesen Account benutzen wollen.</para> </answer> </qandaentry> <qandaentry> <question id="suidperl"> <para>Warum funktioniert <command>suidperl</command> nicht richtig?</para> </question> <answer> <para>Aus Sicherheitsgründen wird <command>suidperl</command> standardmäßig ohne das SUID-Bit installiert. Der Systemadministrator kann das normale Verhalten mit dem folgenden Befehl herstellen:</para> <screen>&prompt.root; <userinput>chmod u+s /usr/bin/suidperl</userinput></screen> <para>Wenn Sie wollen, dass <command>suidperl</command> auch beim Update via Sourcecode das SUID-Bit erhält, müssen Sie in <filename>/etc/make.conf</filename> die Zeile <varname>ENABLE_SUIDPERL=true</varname> einfügen, bevor Sie <command>make buildworld</command> starten.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="ppp"> <title>PPP</title> <qandaset> <qandaentry> <question id="userppp"> <para>Ich bekomme &man.ppp.8; nicht zum Laufen. Was mache ich falsch?</para> </question> <answer> <para>Sie sollten zuerst &man.ppp.8; (die Manualpage zu ppp) und den <ulink url="&url.books.handbook;/ppp-and-slip.html#USERPPP">Abschnitt zu PPP im Handbuch</ulink> lesen. Aktivieren Sie das Logging mit folgendem Befehl:</para> <programlisting>set log Phase Chat Connect Carrier lcp ipcp ccp command</programlisting> <para>Dieser Befehl kann an der Eingabeaufforderung von &man.ppp.8; eingegeben oder in die Konfigurationsdatei <filename>/etc/ppp/ppp.conf</filename> eingetragen werden (der beste Ort hierfür ist der Anfang des Abschnitts <literal>default</literal>. Stellen Sie sicher, dass die Datei <filename>/etc/syslog.conf</filename> die folgenden Zeilen enthält:</para> <programlisting> !ppp *.* /var/log/ppp.log </programlisting> <para>und, dass die Datei <filename>/var/log/ppp.log</filename> existiert. Sie können nun über die Logfiles eine Menge darüber herausfinden, was geschieht. Es macht nichts, wenn die Einträge in den Logfiles Ihnen gar nichts sagen. Wenn Sie jemandem um Hilfe bitten müssen, könnten sie für ihn von Nutzen sein.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-hangs"> <para>Warum hängt sich ppp auf, wenn ich es benutze?</para> </question> <answer> <para>Das liegt meistens daran, dass Ihr Rechnername nicht aufgelöst werden kann. Um dieses Problem zu lösen, müssen Sie sicherstellen, dass die Datei <filename>/etc/hosts</filename> von Ihrem Resolver zuerst genutzt wird. Dazu muss in der Datei <filename>/etc/host.conf</filename> der Eintrag <literal>hosts</literal> an die erste Stelle gesetzt werden. Erstellen Sie dann einfach für Ihren lokalen Rechner einen Eintrag in der Datei <filename>/etc/hosts</filename>. Falls Sie kein lokales Netzwerk besitzen, ändern Sie die <hostid>localhost</hostid>-Zeile:</para> <programlisting>127.0.0.1 foo.example.com foo localhost</programlisting> <para>Andernfalls fügen Sie einfach einen weiteren Eintrag für Ihren lokalen Rechner hinzu. Weitere Details finden Sie in den betreffenden Manualpages.</para> <para>Wenn Sie fertig sind sollten Sie <command>ping -c1 `hostname`</command> erfolgreich ausführen können.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-nodial-auto"> <para>Warum wählt &man.ppp.8; im <literal>-auto</literal>-Modus nicht?</para> </question> <answer> <para>Überprüfen Sie zunächst, ob Sie einen Standard-Gateway eingestellt haben. Wenn Sie <command>netstat -rn</command> ausführen, sollten Sie zwei Einträge ähnlich den folgenden sehen:</para> <programlisting> Destination Gateway Flags Refs Use Netif Expire default 10.0.0.2 UGSc 0 0 tun0 10.0.0.2 10.0.0.1 UH 0 0 tun0 </programlisting> <para>Hier wird angenommen, dass Sie die Adressen aus dem Handbuch, der Manualpage oder aus der Datei ppp.conf.sample benutzt haben. Falls Sie keine Standardroute haben, kann es daran liegen, dass Sie eine alte Version von &man.ppp.8; benutzen, die das Wort <literal>HISADDR</literal> in der Datei ppp.conf nicht versteht.</para> <para>Ein weiterer Grund dafür, dass die Zeile für die Standardroute fehlt, könnte der sein, dass Sie fälschlicherweise eine Standardroute in der Datei <filename>/etc/rc.conf</filename> eingetragen und die folgende Zeile in <filename>ppp.conf</filename> ausgelassen haben:</para> <programlisting>delete ALL</programlisting> <para>Lesen Sie in diesem Fall den Abschnitt <ulink url="&url.books.handbook;/ppp-and-slip.html#USERPPP-FINAL"> Abschließende Systemkonfiguration</ulink> des Handbuchs.</para> </answer> </qandaentry> <qandaentry> <question id="no-route-to-host"> <para>Was bedeutet <errorname>No route to host</errorname>?</para> </question> <answer> <para>Dieser Fehler beruht für gewöhnlich auf einem fehlenden Abschnitt</para> <programlisting> MYADDR: delete ALL add 0 0 HISADDR </programlisting> <para>in Ihrer Datei <filename>/etc/ppp/ppp.linkup</filename>. Er ist nur notwendig, wenn Sie eine dynamische IP-Adresse besitzen oder die Adresse Ihres Gateways nicht kennen. Wenn Sie den interaktiven Modus benutzen, können Sie folgendes eingeben, nachdem Sie in den <literal>packet mode</literal> gelangt sind (den Paket Modus erkennen Sie an <acronym>PPP</acronym> im Prompt):</para> <programlisting> delete ALL add 0 0 HISADDR </programlisting> <para>Weitere Details finden Sie im Abschnitt <ulink url="&url.books.handbook;/ppp-and-slip.html#USERPPP-DYNAMICIP">PPP und Dynamische IP-Adressen</ulink> des Handbuchs.</para> </answer> </qandaentry> <qandaentry> <question id="connection-threeminutedrop"> <para>Wieso werden meine Verbindungen nach ca. drei Minuten beendet?</para> </question> <answer> <para>Der Standardtimeout für &man.ppp.8; beträgt drei Minuten. Er kann durch die Zeile</para> <programlisting>set timeout <replaceable>NNN</replaceable></programlisting> <para>eingestellt werden, wobei <replaceable>NNN</replaceable> die Inaktivität in Sekunden, bevor die Verbindung geschlossen wird, angibt. Falls <replaceable>NNN</replaceable> Null ist, wird die Verbindung niemals aufgrund eines Timeouts geschlossen. Es ist möglich, diesen Befehl in die Datei <filename>ppp.conf</filename> einzubinden, oder ihn an der Eingabeaufforderung im interaktiven Modus einzugeben. Durch eine Verbindung zum Server-Socket von <application>ppp</application> über &man.telnet.1; oder &man.pppctl.8; ist es auch möglich, den Timeout bei aktiver Verbindung anzupassen. Weitere Details finden Sie in der Manualpage &man.ppp.8;.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-drop-heavy-load"> <para>Wieso bricht meine Verbindung bei hoher Auslastung ab?</para> </question> <answer> <para>Falls Sie Link-Quality-Reporting (LQR) konfiguriert haben, ist es möglich, dass zu viele LQR-Pakete zwischen Ihrer Maschine und dem verbundenen Rechner verloren gehen. ppp folgert daraus, dass die Verbindung nicht in Ordnung ist und schließt sie. Vor FreeBSD Version 2.2.5 war LQR standardmäßig aktiviert; nun ist es standardmäßig deaktiviert. Es kann durch folgende Zeile deaktiviert werden:</para> <programlisting>disable lqr</programlisting> </answer> </qandaentry> <qandaentry> <question id="ppp-drop-random"> <para>Warum brechen meine Verbindungen nach unbestimmter Zeit zusammen?</para> </question> <answer> <para>Wenn die Qualität Ihrer Telefonleitung zu schlecht oder bei Ihrem Anschluss die Option (Telekomdeutsch: das Leistungsmerkmal) Anklopfen aktiviert ist, kann es manchmal vorkommen, dass Ihr Modem auflegt, weil es (fälschlicherweise) annimmt, dass es das Trägersignal verloren hat.</para> <para>Bei den meisten Modems gibt es eine Einstellmöglichkeit, um anzugeben, wie tolerant es gegenüber vorübergehenden Verlusten des Trägersignals sein soll. Bei einem USR &sportster; wird dies zum Beispiel im Register S10 in Zehntelsekunden angegeben. Um Ihr Modem toleranter zu machen, können Sie zu Ihrem Wählbefehl die folgende Sende-Empfangs-Sequenz hinzufügen:</para> <programlisting>set dial "...... ATS10=10 OK ......"</programlisting> <para>Weitere Information sollten Sie dem Handbuch Ihres Modems entnehmen können.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-hangs-random"> <para>Warum hängen meine Verbindung nach einer unbestimmten Zeit?</para> </question> <answer> <para>Viele Leute machen Erfahrungen mit hängenden Verbindungen ohne erkennbaren Grund. Als erstes muss festgestellt werden, welche Seite der Verbindung hängt.</para> <para>Wenn Sie ein externes Modem benutzen, können Sie einfach versuchen, &man.ping.8; zu benutzen, um zu sehen, ob die <acronym>TD</acronym>-Anzeige aufleuchtet, wenn Sie Daten übertragen. Falls sie aufleuchtet (und die <acronym>RD</acronym>-Anzeige nicht), liegt das Problem am anderen Ende. Falls <acronym>TD</acronym> nicht aufleuchtet, handelt es sich um ein lokales Problem. Bei einem internen Modem müssen Sie den Befehl <literal>set server</literal> in Ihrer Datei <filename>ppp.conf</filename> benutzen. Stellen Sie über &man.pppctl.8; eine Verbindung zu &man.ppp.8; her, wenn die Verbindung hängt. Falls Ihre Netzwerkverbindung plötzlich wieder funktioniert (ppp wurde durch die Aktivität auf dem Diagnose-Socket wiederbelebt) oder Sie keine Verbindung bekommen (vorausgesetzt, der Befehl <literal>set socket</literal> wurde beim Start erfolgreich ausgeführt), handelt es sich um ein lokales Problem. Falls Sie eine Verbindung bekommen und die externe Verbindung weiterhin hängt, aktivieren Sie lokales asynchrones Logging mit <literal>set log local async</literal> und benutzen Sie &man.ping.8; von einem anderen Fenster oder Bildschirm aus, um die externe Verbindung zu benutzen. Das asynchrone Logging zeigt Ihnen, welche Daten über die Verbindung gesendet und empfangen werden. Falls Daten hinausgehen, aber nicht zurückkommen, handelt es sich um ein externes Problem.</para> <para>Wenn Sie festgestellt haben, ob es sich um ein lokales oder um ein externes Problem handelt, haben Sie zwei Möglichkeiten:</para> <itemizedlist> <listitem> <para>Wenn es ein externes Problem ist, lesen Sie bitte bei <xref linkend="ppp-remote-not-responding"> weiter.</para> </listitem> <listitem> <para>Handelt es sich um ein lokales Problem, lesen Sie bitte <xref linkend="ppp-hung">.</para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="ppp-remote-not-responding"> <para>Was kann ich machen, wenn die Gegenstelle nicht antwortet?</para> </question> <answer> <para>Hier können Sie wenig tun. Die meisten ISPs werden ablehnen, Ihnen zu helfen, wenn Sie kein Betriebssystem von Microsoft benutzen. Sie können <literal>enable lqr</literal> in Ihrer Datei <filename>ppp.conf</filename> angeben, wodurch &man.ppp.8; ermöglicht wird, ein externes Versagen zu erkennen und aufzulegen, aber diese Erkennung ist relativ langsam und deshalb nicht besonders nützlich. Evtl. sagen Sie Ihrem ISP nicht, dass Sie user-PPP benutzen...</para> <para>Versuchen Sie zunächst, jegliche Datenkompression auszuschalten, indem Sie folgendes zu Ihrer Konfiguration hinzufügen:</para> <programlisting> disable pred1 deflate deflate24 protocomp acfcomp shortseq vj deny pred1 deflate deflate24 protocomp acfcomp shortseq vj </programlisting> <para>Stellen Sie nun wieder eine Verbindung her, um festzustellen, ob sich etwas geändert hat. Falls es nun besser läuft oder falls das Problem vollständig behoben ist, versuchen Sie durch schrittweises Ändern der Einstellungen festzustellen, welche Einstellung den Unterschied bewirkt. Hierdurch erhalten Sie schlüssige Fakten für ein Gespräch mit Ihrem ISP (andererseits wird hierdurch offensichtlich, dass Sie kein Microsoft-Produkt benutzen).</para> <para>Aktivieren Sie asynchrones Logging und warten Sie, bis die Verbindung wieder hängt, bevor Sie sich an Ihren ISP wenden. Hierzu kann einiges an Plattenplatz nötig sein. Die Daten, die als letztes von dem Port gelesen wurden, könnten von Interesse sein. Für gewöhnlich handelt es sich um ASCII-Text, der sogar den Fehler beschreiben kann (<quote>Memory fault, core dumped</quote>).</para> <para>Falls Ihr ISP hilfsbereit ist, sollte er in der Lage sein, an seinem Ende das Logging zu aktivieren und wenn das nächste Mal die Verbindung abbricht, könnte er Ihnen mitteilen, worin das Problem auf seiner Seite besteht. Gerne können Sie Details auch an &a.brian; schicken, oder Ihren ISP bitten, sich direkt an ihn zu wenden.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-hung"> <para>Was kann ich tun, wenn sich &man.ppp.8; aufhängt?</para> </question> <answer> <para>In diesem Fall erstellen Sie am besten &man.ppp.8; neu, indem Sie <literal>CFLAGS+=-g</literal> und <literal>STRIP=</literal> am Ende des Makefiles einfügen und dann <command>make clean && make && make install</command> ausführen. Suchen Sie die Prozessnummer von &man.ppp.8; mit <command>ps ajxww | fgrep ppp</command>, wenn &man.ppp.8; sich aufhängt und führen Sie <command> gdb ppp <replaceable>PID</replaceable></command> aus. Am gdb-Prompt können Sie <command>bt</command> benutzen, um einen Auszug von Stack zu erhalten.</para> <para>Senden Sie die Ergebnisse an &a.brian;.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-loginok-thennothing"> <para>Warum passiert nach der Nachricht <quote>Login OK!</quote> nichts?</para> </question> <answer> <para>Bei Freebsd-Versionen vor 2.2.5 wartete &man.ppp.8; darauf, dass der Partner das Line Control Protocol (LCP) initiiert. Viele ISPs starten nicht mit der Initiierung, sondern erwarten dies vom Client. Benutzen Sie die folgende Zeile, um &man.ppp.8; zu veranlassen, LCP zu initiieren:</para> <programlisting>set openmode active</programlisting> <note> <para>Für gewöhnlich schadet es nicht, wenn beide Seiten versuchen, Verhandlungen einzuleiten. Deshalb ist openmode nun standardmäßig aktiv. Im nächsten Abschnitt wird allerdings erklärt, in welchen Fällen es <emphasis>doch</emphasis> schadet.</para> </note> </answer> </qandaentry> <qandaentry> <question id="ppp-same-magic"> <para>Ich sehe ständig Fehlermeldungen über gleiche <quote>Magic Numbers</quote> Was heißt das?</para> </question> <answer> <para>Nach dem Aufbau einer Verbindung kann es sein, dass Sie in der Logdatei gelegentlich Meldungen mit dem Hinweis <quote>magic is the same</quote> sehen. Manchmal sind diese Meldungen harmlos und manchmal bricht die eine oder andere Seite die Verbindung ab. Die meisten Implementationen von PPP können dieses Problem nicht handhaben und Sie werden wiederholte Konfigurationsanforderungen und -bestätigungen in der Logdatei finden, bis &man.ppp.8; schließlich aufgibt und die Verbindung beendet.</para> <para>Dies geschieht normalerweise auf Servern mit langsamen Festplatten, bei denen ein getty auf dem Port ausgeführt und &man.ppp.8; nach dem Einloggen von einem Login-Skript oder einem Programm aus gestartet wird. Ich habe auch davon gehört, dass dies bei der Benutzung von slirp regelmäßig auftritt. Der Grund hierfür ist, dass das ppp auf der Client-Seite in der Zeit, die benötigt wird, getty zu beenden und ppp zu starten, bereits beginnt, Line Control Protocol (LCP) Pakete zu senden. Da ECHO auf dem Serverport weiterhin eingeschaltet ist, werden diese Pakete zum &man.ppp.8; auf der Client-Seite <quote>reflektiert</quote>.</para> <para>Ein Teil der LCP-Verhandlungen ist die Einrichtung einer <quote>Magic Number</quote> für jede Seite der Verbindung, damit <quote>Echos</quote> erkannt werden können. Das Protokoll besagt, dass, wenn der Partner versucht, die gleiche <quote>Magic Number</quote> auszuhandeln, ein NAK zurückgesendet und eine neue "Magic Number" gewählt werden soll. Während der Server das ECHO eingeschaltet hat, sendet der Client LCP Pakete, sieht die gleiche <quote>Magic Number</quote> im reflektierten Paket und erzeugt ein NAK. Er sieht auch das reflektierte NAK (was bedeutet, dass &man.ppp.8; seine "Magic Number" ändern muss). Hierdurch wird eine Vielzahl von Änderungen der <quote>Magic Number</quote> hervorgerufen, die sich allesamt im tty-Puffer des Servers ansammeln. Sobald &man.ppp.8; auf dem Server startet, wird es mit Änderungen der <quote>Magic Number</quote> überflutet und entscheidet, dass es sich zur Genüge mit den LCP-Verhandlungen beschäftigt hat und gibt auf. Und während sich der Client noch darüber freut, dass er keine weiteren Reflexionen sieht, wird ihm gemeldet, dass der Server auflegt.</para> <para>Dies kann verhindert werden, indem dem Partner durch die folgende Zeile in der Datei <filename>ppp.conf</filename> erlaubt wird, mit der Verhandlung zu beginnen:</para> <programlisting>set openmode passive</programlisting> <para>Hierdurch wird &man.ppp.8; mitgeteilt, darauf zu warten, dass der Server mit den LCP-Verhandlungen beginnt. Einige Server starten jedoch nie mit der Verhandlungen; falls dies der Fall ist, können Sie folgendes tun:</para> <programlisting>set openmode active 3</programlisting> <para>Hierdurch bleibt &man.ppp.8; für drei Sekunden passiv und fängt dann erst an, LCP-Anforderungen zu senden. Falls der Partner während dieser Zeit beginnt, Anforderungen zu senden, wird &man.ppp.8; direkt antworten und nicht erst, nachdem die drei Sekunden abgelaufen sind.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-lcp-constant"> <para>Die LCP-Verhandlungen dauern an, bis die Verbindung geschlossen wird. Was mache ich falsch?</para> </question> <answer> <para>Es gibt eine Fehlfunktion in der Implementierung von &man.ppp.8;, die darin besteht, dass LCP-, CCP- & IPCP-Antworten nicht mit den ursprünglichen Anforderungen assoziiert werden. Für den Fall, dass eine Implementation von PPP mehr als sechs Sekunden langsamer ist, als die andere Seite, resultiert das darin, dass die andere Seite zwei weitere LCP-Konfigurationsanforderungen sendet, was fatale Auswirkungen hat.</para> <para>Stellen Sie sich vor, wir hätten es mit zwei Implementierungen <hostid>A</hostid> und <hostid>B</hostid> zu tun. <hostid>A</hostid> beginnt unmittelbar nach der Verbindung, LCP-Anforderungen zu senden und <hostid>B</hostid> benötigt sieben Sekunden, zu starten. Wenn <hostid>B</hostid> startet, hat <hostid>A</hostid> bereits drei LCP-Anforderungen gesendet. Wir nehmen an, dass ECHO ausgeschaltet ist; andernfalls würden wir Probleme mit der "Magic Number" beobachten, wie bereits im vorherigen Abschnitt beschrieben. <hostid>B</hostid> sendet eine Anforderung und anschließend eine Bestätigung der ersten Anforderung von <hostid>A</hostid>. Dies führt dazu, dass <hostid>A</hostid> in den Zustand <acronym>OPENED</acronym> übergeht und eine Bestätigung (die erste) zurück an <hostid>B</hostid> sendet. In der Zwischenzeit sendet <hostid>B</hostid> zwei weitere Bestätigungen als Antwort auf die zusätzlichen Anforderungen, die von <hostid>A</hostid> gesendet worden sind, bevor <hostid>B</hostid> gestartet ist. <hostid>B</hostid> empfängt dann die erste Bestätigung von <hostid>A</hostid> und geht in den Zustand <acronym>OPENED</acronym> über. <hostid>A</hostid> empfängt die zweite Bestätigung von <hostid>B</hostid>, geht zurück in den Zustand <acronym>REQ-SENT</acronym> und sendet eine weitere (vierte) Anforderung entsprechend dem RFC. <hostid>A</hostid> empfängt dann die dritte Bestätigung und geht in den Zustand <acronym>OPENED</acronym> über. In der Zwischenzeit empfängt <hostid>B</hostid> die vierte Anforderung von <hostid>A</hostid>, wechselt in den Zustand <acronym>ACK-SENT</acronym> und sendet eine weitere (zweite) Anforderung und (vierte) Bestätigung entsprechend dem RFC. <hostid>A</hostid> erhält die Anforderung, geht in den Zustand <acronym>REQ-SENT</acronym> über, sendet eine weitere Anforderung, erhält unverzüglich die nächste Bestätigung und geht in <acronym>OPENED</acronym> über.</para> <para>Das geht so weiter, bis eine Seite erkennt, dass man zu keinem Ergebnis gelangt und aufgibt.</para> <para>Am besten verhindert man solche Situationen, indem man eine Seite als <literal>passiv</literal> konfiguriert, also dafür sorgt, dass eine Seite darauf wartet, dass die andere mit den Verhandlungen beginnt. Das kann durch den Befehl</para> <programlisting>set openmode passive</programlisting> <para>geschehen. Diese Option sollten Sie mit Vorsicht genießen. Folgenden Befehl sollten Sie benutzen, um die Wartezeit auf den Beginn der Verhandlungen des Partners von &man.ppp.8; zu begrenzen:</para> <programlisting>set stopped N</programlisting> <para>Alternativ kann der Befehl</para> <programlisting>set openmode active <replaceable>N</replaceable></programlisting> <para>(wobei <replaceable>N</replaceable> die Wartezeit in Sekunden vor Beginn der Verhandlungen angibt) benutzt werden. Weitere Details finden Sie in den Manualpages.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-shell-test-lockup"> <para>Warum reagiert &man.ppp.8; nicht mehr, wenn ich es mit shell verlassen habe?</para> </question> <answer> <para>Wenn Sie den Befehl <command>shell</command> oder <command>!</command> benutzen, führt &man.ppp.8; eine Shell aus (falls Sie Argumente übergeben haben, führt &man.ppp.8; diese Argumente aus). &man.ppp.8; wartet auf die Beendigung des Befehls, bevor es seine Arbeit fortsetzt. Falls Sie versuchen, die PPP-Verbindung während der Programmausführung zu benutzen, wird es so aussehen, als wäre die Verbindung eingefroren. Das liegt daran, dass &man.ppp.8; auf die Beendigung des Befehls wartet.</para> <para>Falls Sie solche Befehle verwenden möchten, benutzen Sie stattdessen den Befehl <command>!bg</command>. Hierdurch wird der angegebene Befehl im Hintergrund ausgeführt und &man.ppp.8; kann fortfahren, die Verbindung zu bedienen.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-nullmodem"> <para>Warum wird &man.ppp.8; niemals beendet, wenn ich es über ein Nullmodem-Kabel benutze?</para> </question> <answer> <para>Es gibt keine Möglichkeit für &man.ppp.8;, automatisch festzustellen, ob eine direkte Verbindung beendet worden ist. Das liegt an den Leitungen, die bei einem seriellen Nullmodem-Kabel benutzt werden. Wenn Sie diese Art der Verbindung verwenden, sollte LQR immer aktiviert werden:</para> <programlisting>enable lqr</programlisting> <para>LQR wird standardmäßig akzeptiert, wenn es vom Partner ausgehandelt wird.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-auto-noreasondial"> <para>Warum wählt &man.ppp.8; im Modus -auto ohne Grund?</para> </question> <answer> <para>Falls &man.ppp.8; unerwarteterweise wählt, müssen Sie den Grund herausfinden und Wählfilter (dfilters) einsetzen, um dies zu verhindern.</para> <para>Benutzen Sie die folgende Zeile, um den Grund herauszufinden:</para> <programlisting>set log +tcp/ip</programlisting> <para>Dadurch wird jeglicher Verkehr über die Verbindung geloggt. Wenn das nächste mal unerwartet eine Verbindung hergestellt wird, werden Sie den Grund zusammen mit einer hilfreichen Zeitangabe in der Logdatei finden.</para> <para>Sie können nun das Wählen aufgrund dieser Bedingungen verhindern. Normalerweise wird diese Art von Problemen durch Anfragen an den DNS verursacht. Um zu verhindern, dass DNS-Anfragen den Aufbau der Verbindung hervorrufen (das verhindert <emphasis>nicht</emphasis>, dass Pakete über eine bestehende Verbindung gesendet werden), benutzen Sie die folgenden Zeilen:</para> <programlisting> set dfilter 1 deny udp src eq 53 set dfilter 2 deny udp dst eq 53 set dfilter 3 permit 0/0 0/0 </programlisting> <para>Dies ist nicht immer brauchbar, weil es effektiv Ihre Fähigkeit, auf Anforderung wählen zu können einschränkt - die meisten Programme müssen eine DNS-Anfrage durchführen, bevor Sie andere, das Netzwerk betreffenden Dinge tun können.</para> <para>Im Fall von DNS sollten Sie versuchen, herauszufinden, welches Programm tatsächlich versucht, einen Hostnamen aufzulösen. Sehr oft handelt es sich hier um &man.sendmail.8;. Sie sollten sicherstellen, dass Sie sendmail in der Konfigurationsdatei sagen, dass keine DNS-Anfragen durchführen soll. Weitere Details enthält der Abschnitt <ulink url="&url.books.handbook;/smtp-dialup.html">E-Mail über Einwahl-Verbindungen</ulink> des Handbuchs. Sie könnten z.B. die folgende Zeile in Ihre <filename>.mc</filename>-Datei einfügen:</para> <programlisting>define(`confDELIVERY_MODE', `d')dnl</programlisting> <para>Das veranlasst sendmail dazu, alles in eine Warteschlange einzureihen, bis die Warteschlange verarbeitet wird (normalerweise wird sendmail mit <option>-bd -q30m</option> aufgerufen, was besagt, dass die Warteschlange alle 30 Minuten abgearbeitet wird) oder, bis ein <command>sendmail -q</command> ausgeführt wird (z.B. aus Ihrer Datei ppp.linkup heraus).</para> </answer> </qandaentry> <qandaentry> <question id="ccp-errors"> <para>Was bedeuten diese CCP-Fehler?</para> </question> <answer> <para>Ich sehe ständig folgende Fehler in meiner Logdatei:</para> <programlisting> CCP: CcpSendConfigReq CCP: Received Terminate Ack (1) state = Req-Sent (6) </programlisting> <para>Das liegt daran, dass &man.ppp.8; versucht, die Komprimierung Predictor1 auszuhandeln und der Partner über keinerlei Komprimierung verhandeln will. Die Meldungen sind harmlos, aber wenn Sie sie beseitigen möchten, können Sie die Komprimierung Predictor1 auch lokal ausschalten:</para> <programlisting>disable pred1</programlisting> </answer> </qandaentry> <qandaentry> <question id="ppp-connectionspeed"> <para>Warum loggt ppp die Geschwindigkeit meiner Verbindung nicht?</para> </question> <answer> <para>Um alle Zeilen Ihrer <quote>Modemkonversation</quote> mitzuloggen, müssen Sie folgendes einstellen:</para> <programlisting>set log +connect</programlisting> <para>Dies veranlasst &man.ppp.8; dazu, alles bis zur letzten angeforderten <quote>expext</quote>-Zeile mitzuloggen.</para> <para>Falls Sie die Geschwindigkeit Ihrer Verbindung erfahren möchten und PAP oder CHAP (und deshalb nach dem CONNECT im Wählskript nichts mehr zu <quote>chatten</quote> haben - kein <literal>set login</literal>-Skript), müssen Sie sicherstellen, dass Sie &man.ppp.8; anweisen, die gesamte CONNECT-Zeile zu <quote>erwarten</quote>, etwa so:</para> <programlisting>set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"</programlisting> <para>Hier bekommen wir unser CONNECT, senden nichts, erwarten dann einen Line-Feed, der &man.ppp.8; zwingt, die gesamte CONNECT-Antwort zu lesen.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-ignores-backslash"> <para>Warum ignoriert &man.ppp.8; das Zeichen <literal>\</literal> in meinem Chat-Skript?</para> </question> <answer> <para>ppp analysiert jede Zeile in Ihrer Konfigurationsdatei, damit es Zeichenketten wie z.B. <literal>set phone "123 456 789"</literal> korrekt interpretieren kann (und erkennen, dass es sich bei der Nummer tatsächlich nur um <emphasis>ein</emphasis> Argument handelt). Um das Zeichen <literal>"</literal> anzugeben, müssen Sie ihm einen Backslash (<literal>\</literal>) voranstellen.</para> <para>Wenn der Chat-Interpreter jedes Argument analysiert, reinterpretiert er die Argumente, um irgendwelche speziellen Escape-Sequenzen wie z.B. <literal>\P</literal> oder <literal>\T</literal> (sehen Sie in die Manualpage) zu finden. Das Ergebnis dieser Doppelanalyse ist, dass Sie daran denken müssen, die richtige Anzahl an Escape-Zeichen zu verwenden.</para> <para>Falls Sie tatsächlich das Zeichen <literal>\</literal> z.B. zu Ihrem Modem senden möchten, brauchen Sie etwas ähnliches, wie:</para> <programlisting>set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"</programlisting> <para>woraus sich folgende Zeichen ergeben:</para> <programlisting> ATZ OK AT\X OK </programlisting> <para>oder</para> <programlisting> set phone 1234567 set dial "\"\" ATZ OK ATDT\\T" </programlisting> <para>was folgende Zeichen ergibt:</para> <programlisting> ATZ OK ATDT1234567 </programlisting> </answer> </qandaentry> <qandaentry> <question id="ppp-segfault-nocore"> <para>Warum gibt es die Datei <filename>ppp.core</filename> nicht, wenn &man.ppp.8; einen Segmentation Fault erzeugt hat?</para> </question> <answer> <para>Weder &man.ppp.8; noch andere Programme sollten Core-Dumps erzeugen. Da &man.ppp.8; mit der effektiven Benutzerkennung 0 ausgeführt wird, wird das Betriebssystem &man.ppp.8;'s Coreimage nicht auf die Festplatte schreiben, bevor es &man.ppp.8; beendet hat. Falls &man.ppp.8; jedoch tatsächlich aufgrund einer Speicherverletzung abbricht <emphasis>und</emphasis> Sie die aktuellste Version (siehe Anfang dieses Kapitels) benutzen, dann sollten Sie folgendes tun:</para> <screen>&prompt.user; <userinput>tar xfz ppp-*.src.tar.gz</userinput> &prompt.user; <userinput>cd ppp*/ppp</userinput> &prompt.user; <userinput>echo STRIP= >>Makefile</userinput> &prompt.user; <userinput>echo CFLAGS+=-g >>Makefile</userinput> &prompt.user; <userinput>make clean all</userinput> &prompt.user; <userinput>su</userinput> &prompt.root; <userinput>make install</userinput> &prompt.root; <userinput>chmod 555 /usr/sbin/ppp</userinput></screen> <para>Nun ist die installierte Version von &man.ppp.8; mit einem Debugger ausführbar. Sie können &man.ppp.8; nun nur noch als <username>root</username> ausführen, da alle vorherigen Zugriffsrechte aufgehoben worden sind. Achten Sie darauf, in welchem Verzeichnis Sie sich gerade befinden, wenn Sie &man.ppp.8; starten.</para> <para>Wenn nun wieder eine Speicherverletzung auftreten sollte, wird &man.ppp.8; einen Speicherauszug erzeugen, den Sie in der Datei <filename>ppp.core</filename> finden. Sie sollten dann folgendes tun:</para> <screen>&prompt.user; <userinput>su</userinput> &prompt.root; <userinput>gdb /usr/sbin/ppp ppp.core</userinput> <prompt>(gdb)</prompt> <userinput>bt</userinput> ..... <prompt>(gdb)</prompt> <userinput>f 0</userinput> .... <prompt>(gdb)</prompt> <userinput>i args</userinput> .... <prompt>(gdb)</prompt> <userinput>l</userinput> .....</screen> <para>Mit Hilfe all dieser Informationen sollte es möglich sein, das Problem zu diagnostizieren.</para> <para>Falls Sie mit dem Umgang mit gdb vertraut sind, könnten Sie weitere Einzelheiten herausfinden, z.B. wodurch der Fehler tatsächlich hervorgerufen wurde und die Adressen & Werte der betreffenden Variablen.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-autodialprocess-noconnect"> <para>Warum bekommt das Programm, das eine automatische Anwahl ausgelöst hat, keine Verbindung?</para> </question> <answer> <para>Dies war ein bekanntes Problem bei &man.ppp.8;-Konfigurationen, bei denen automatisch dynamische, lokale IP-Adressen mit dem Partner ausgehandelt werden. In der aktuellsten Version ist das Problem behoben - suchen Sie in den Manualpages nach <literal>iface</literal>.</para> <para>Das Problem bestand darin, dass, wenn das erste Programm &man.connect.2; aufruft, die IP-Adresse der tun-Schnittstelle dem Socketendpunkt zugeordnet wird. Der Kernel erstellt das erste ausgehende Paket und schreibt es in das tun-Gerät. &man.ppp.8; liest dann das Paket und baut eine Verbindung auf. Falls die Schnittstellenadresse sich nun aufgrund &man.ppp.8;s dynamischer Adresszuordnung ändert, wird der originale Socketendpunkt ungültig. Alle weiteren Pakete, die zum Partner gesendet werden, werden für gewöhnlich verworfen. Selbst wenn sie nicht verworfen werden würden, würden alle Antworten nicht an den betreffenden Rechner gelangen, weil die IP-Adresse nicht mehr zu diesem Rechner gehört.</para> <para>Theoretisch gibt es mehrere Möglichkeiten, dieses Problem anzugehen. Am schönsten wäre es, wenn der Partner die gleiche IP-Adresse wieder zuordnen würde, wenn möglich <literal>:-)</literal> Die derzeitige Version von &man.ppp.8; tut das, aber die meisten anderen Implementierungen nicht.</para> <para>Die einfachste Maßnahme von unserer Seite wäre die, niemals die IP-Adresse der tun-Schnittstelle zu ändern, sondern stattdessen alle ausgehenden Pakete so zu ändern, dass als Absender-IP-Adresse anstelle der IP-Adresse der Schnittstelle die ausgehandelte IP-Adresse gesetzt wird. Das ist im wesentlichen das, was durch die Option <literal>iface-alias</literal> in der aktuellsten Version von &man.ppp.8; bewirkt wird (mit Unterstützung von &man.libalias.3; und &man.ppp.8;'s <option>-nat</option> Schalter) - alle Schnittstellenadressen werden beibehalten und auf die letzte ausgehandelte Adresse umgesetzt.</para> <para>Eine andere Alternative (und wahrscheinlich die zuverlässigste) wäre die, einen Systemaufruf zu implementieren der die IP-Adressen aller verbundenen Sockets von einer Adresse in eine andere ändert. &man.ppp.8; würde diesen Aufruf benutzen, um die Sockets aller laufenden Programme zu ändern, nachdem eine neue IP-Adresse ausgehandelt worden ist. Der gleiche Systemaufruf könnte von DHCP-Clients benutzt werden, wenn sie gezwungen werden, einen re-bind() auf ihren Sockets auszuführen.</para> <para>Noch eine andere Möglichkeit wäre die, das Aktivieren von Schnittstellen ohne IP-Adresse zu erlauben. Ausgehende Paketen würde die IP-Adresse 255.255.255.255 gegeben, bis der erste ioctl() mit SIOCAIFADDR erfolgt. Dies würde in der vollständigen Verbindung des Sockets resultieren. Es wäre die Aufgabe von &man.ppp.8;, die Absender-IP-Adresse zu ändern, allerdings nur dann, wenn sie 255.255.255.255 lautet und nur die IP-Adresse und IP-Prüfsumme müssten geändert werden. Dies wäre allerdings keine besonders elegante Lösung, da der Kernel fehlerhafte Pakete an eine unzureichend konfigurierte Schnittstelle senden würde, in der Annahme, dass andere Mechanismen in der Lage sind, diese Dinge rückwirkend zu beheben.</para> </answer> </qandaentry> <qandaentry> <question id="ppp-nat-games"> <para>Warum laufen die meisten Spiele mit dem <option>-nat</option> Schalter nicht?</para> </question> <answer> <para>Der Grund dafür, dass Spiele und andere Programme nicht funktionieren, wenn libalias benutzt wird, ist der, dass der Rechner außerhalb des lokalen Netzes versucht, eine Verbindung aufzubauen und (unaufgefordert) UDP-Pakete an den Rechner innerhalb des lokalen Netzes zu senden. Die Software, die für die NAT zuständig ist, weiß nicht, dass sie diese Pakete an den internen Rechner weiterleiten soll.</para> <para>Um dies zu beheben, stellen Sie zunächst sicher, dass die Software, mit der Sie Probleme haben, die einzige ist, die gerade läuft. Benutzen Sie dann entweder tcpdump auf der tun-Schnittstelle des Gateways oder aktivieren Sie auf dem Gateway das Logging von TCP/IP (<literal>set log +tcp/ip</literal>) unter &man.ppp.8;.</para> <para>Wenn Sie nun das betreffende Programm starten, sollten Sie sehen, wie Pakete den Gateway-Rechner passieren. Wenn von außen etwas zurückkommt, wird es ignoriert (das ist das Problem). Merken Sie sich die Portnummer dieser Pakete und beenden Sie das betreffende Programm. Wiederholen Sie diesen Schritt einige Male, um festzustellen, ob die Portnummern konsistent sind. Falls dem so ist, wird die folgende Zeile im entsprechenden Abschnitt von <filename>/etc/ppp/ppp.conf</filename> dafür sorgen, dass das Programm funktioniert:</para> <programlisting>nat port <replaceable>proto</replaceable> <replaceable>internalmachine</replaceable>:<replaceable>port</replaceable> <replaceable>port</replaceable></programlisting> <para>wobei für <replaceable>proto</replaceable> entweder <literal>tcp</literal> oder <literal>udp</literal> zu setzen ist, <replaceable>internalmachine</replaceable> den Rechner bezeichnet, an den die Pakete geschickt werden sollen und <replaceable>port</replaceable> die betreffende Portnummer.</para> <para>Sie können das Programm nicht auf einem anderen Rechner benutzen, ohne die obige Zeile abzuändern und die Benutzung des Programms auf zwei internen Rechnern steht außer Frage - schließlich sieht die Außenwelt Ihr gesamtes internes Netz so, als wäre es ein einzelner Rechner.</para> <para>Falls die Portnummern nicht konsistent sind, gibt es drei weitere Optionen:</para> <orderedlist> <listitem> <para>Ermöglichen Sie die Unterstützung durch libalias. Beispiele für <quote>spezielle Fälle</quote> finden Sie in <filename>/usr/src/lib/libalias/alias_*.c</filename> (<filename>alias_ftp.c</filename> ist ein schöner Prototyp). Hierzu gehört für gewöhnlich das Lesen bestimmter, erkannter, ausgehender Pakete, die Identifizierung der Instruktion, die den entfernten Rechner dazu veranlasst, auf einem bestimmten (wahlfreien) Port eine Verbindung zurück zum lokalen Rechner herzustellen, sowie das Erstellen einer <quote>Route</quote> in der Aliastabelle, so dass nachfolgende Pakete wissen, wohin sie gehören.</para> <para>Dieses ist zwar die komplizierteste Lösung, aber die beste, die auch dafür sorgt, dass die Software auf mehreren Rechnern funktioniert.</para> </listitem> <listitem> <para>Benutzen Sie einen Proxy. Die Anwendung könnte z.B. socks5 unterstützen, oder (wie im Fall von <quote>cvsup</quote>) eine Option <quote>passiv</quote> besitzen, die stets verhindert, dass verlangt wird, dass der Partner eine Verbindung zurück zur lokalen Maschine aufbaut.</para> </listitem> <listitem> <para>Leiten Sie mit <literal>nat addr</literal> alles zur lokalen Maschine um. Dieses Vorgehen ähnelt dem mit einem Vorschlaghammer.</para> </listitem> </orderedlist> </answer> </qandaentry> <qandaentry> <question id="useful-port-numbers"> <para>Hat jemand eine Liste mit nützlichen Portnummern erstellt?</para> </question> <answer> <para>Noch nicht, aber hieraus könnte eine solche entstehen (falls Interesse besteht). In jedem Beispiel sollte <replaceable>internal</replaceable> durch die IP-Adresse der Maschine ersetzt werden, auf der das Spiel laufen soll.</para> <itemizedlist> <listitem> <para><application>Asheron's Call</application></para> <para><literal>nat port udp <replaceable>internal</replaceable>:65000 65000</literal></para> <para>Konfigurieren Sie das Spiel manuell auf Port 65000 um. Wenn Sie von mehreren Rechner aus spielen wollen, weisen Sie jedem eine eindeutige Portnummer zu (also 65001, 65002, u.s.w.) und fügen Sie für jede Maschine eine eigene <literal>nat port</literal> Zeile ein.</para> </listitem> <listitem> <para><application>Half Life</application></para> <para><literal>nat port udp <replaceable>internal</replaceable>:27005 27015</literal></para> </listitem> <listitem> <para><application>PCAnywhere 8.0</application></para> <para><literal>nat port udp <replaceable>internal</replaceable>:5632 5632</literal></para> <para><literal>nat port tcp <replaceable>internal</replaceable>:5631 5631</literal></para> </listitem> <listitem> <para><application>Quake</application></para> <para><literal>nat port udp <replaceable>internal</replaceable>:6112 6112</literal></para> <para>Alternativ können sie wegen Proxyunterstützung für Quake unter <ulink url="http://www.battle.net/support/proxy/">www.battle.net</ulink> nachsehen.</para> </listitem> <listitem> <para><application>Quake 2</application></para> <para><literal>nat port udp <replaceable>internal</replaceable>:27901 27910</literal></para> <para><literal>nat port udp <replaceable>internal</replaceable>:60021 60021</literal></para> <para><literal>nat port udp <replaceable>internal</replaceable>:60040 60040</literal></para> </listitem> <listitem> <para><application>Red Alert</application></para> <para><literal>nat port udp <replaceable>internal</replaceable>:8675 8675</literal></para> <para><literal>nat port udp <replaceable>internal</replaceable>:5009 5009</literal></para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="fcs-errors"> <para>Was sind FCS-Fehler?</para> </question> <answer> <para>FCS steht für <literal>F</literal>rame <literal>C</literal>heck <literal>S</literal>equence. Jedes PPP-Paket besitzt eine Checksumme, um sicherzustellen, dass die empfangenen Daten dieselben sind, wie die versendeten. Falls die FCS eines ankommenden Paketes fehlerhaft ist, wird das Paket verworfen und der Zähler HDLC FCS wird erhöht. Der HDLC-Fehlerwert kann durch den Befehl <literal>show hdlc</literal> angezeigt werden.</para> <para>Falls Ihre Leitung schlecht ist (oder falls Ihr serieller Treiber Pakete verwirft), werden sie gelegentliche FCS-Fehler sehen. Normalerweise lohnt es sich nicht, sich hierüber Gedanken zu machen, obwohl das Kompressionsprotokoll hierdurch wesentlich langsamer wird. Wenn Sie ein externes Modem besitzen, stellen Sie sicher, dass Ihr Kabel ausreichend gegen Interferenzen abgeschirmt ist - das könnte das Problem beseitigen.</para> <para>Falls Ihre Leitung einfriert, sobald die Verbindung steht, und viele FCS-Fehler auftreten, könnte das daran liegen, dass Ihre Leitung nicht 8-Bit-rein ist. Stellen Sie sicher, dass Ihr Modem keinen Software-Flow-Control (XON/XOFF) verwendet. Falls Ihre Datenschnittstelle Software-Flow-Control verwenden <emphasis>muss</emphasis>, benutzen Sie den Befehl <literal>set accmap 0x000a0000</literal>, um &man.ppp.8; zu sagen, dass es die Zeichen <literal>^Q</literal> und <literal>^S</literal> maskieren soll.</para> <para>Ein weiterer Grund dafür, dass zu viele FCS-Fehler auftreten, könnte der sein, dass das andere Ende aufgehört hat, <acronym>ppp</acronym> zu sprechen. Aktivieren Sie <literal>async</literal> Logging, um festzustellen, ob es sich bei den eingehenden Daten tatsächlich um einen login- oder Shell-Prompt handelt. Wenn Sie am anderen Ende einen Shell-Prompt haben, ist es möglich, durch den Befehl <literal>close lcp</literal> &man.ppp.8; zu beenden, ohne die Verbindung zu beenden (ein folgender <literal>term</literal>-Befehl wird Sie wieder mit der Shell auf dem entfernten Rechner verbinden.</para> <para>Falls nichts in Ihrer Logdatei darauf hindeutet, warum die Verbindung beendet wurde, sollten Sie den Administrator des externen Rechners (Ihren ISP?) fragen, warum die Sitzung beendet worden ist.</para> </answer> </qandaentry> <qandaentry id=PPPoEwithNAT> <question id="macos-win98-pppoe-freeze"> <para>Wieso hängen die Verbindungen meiner &macos;- und &windows; 98-Maschinen (und eventuell auch andere µsoft; Betriebssysteme), wenn auf meinem Gateway PPPoE läuft?</para> </question> <answer> <para>Vielen Dank an Michael Wozniak <email>mwozniak@netcom.ca</email> für die Erklärung und an Dan Flemming <email>danflemming@mac.com</email> für die Lösung für &macos;.</para> <para>Die Ursache des Problems ist ein so genannter <quote>Black Hole Router</quote>. &macos; und &windows; 98 (und wahrscheinlich auch die anderen Betriebssysteme von Microsoft) senden TCP Pakete, bei denen zum einen die angeforderte Segmentgröße zu groß für einen PPPoE-Rahmen ist (die Default-MTU für Ethernet beträgt 1500 Byte) <emphasis>und</emphasis> bei denen das <quote>don't fragment</quote> Bit gesetzt ist (das ist bei TCP allerdings Standard). Außerdem sendet der Router beim Provider nicht die eigentlich notwendigen <quote>must fragment</quote>-Meldungen zu dem Webserver, von dem Sie gerade eine Seite laden wollen. Es ist auch möglich, dass diese Meldung zwar erzeugt, aber danach von einem Firewall vor dem Webserver abgefangen wird. Wenn Ihnen dieser Webserver nun ein Paket schickt, das nicht in einen PPPoE-Rahmen passt, dann verwirft der Router dieses Paket und die Seite wird nicht geladen (einige Seiten/Grafiken werden geladen, weil ihre Größe kleiner ist als die MSS). Dies scheint leider der Normalfall zu sein (wenn die Leute doch nur wüssten, wie man einen Router konfiguriert... stöhn...)</para> <para>Eine der möglichen Lösungen für dieses Problem ist die Erzeugung des folgenden Schlüssels in der Registry des Windows-Clients:</para> <programlisting>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU</programlisting> <para>Der Schlüssels sollte vom Typ String sein und den Wert <quote>1436</quote> haben, da einige ADSL-Router nicht mit größeren Paketen umgehen können. Wenn Sie &windows; 2000 verwenden, müssen Sie hingegen den Schlüssel <literal>Tcpip\Parameters\Interfaces\<replaceable>ID der Netzwerkkarte</replaceable>\MTU</literal> benutzen, außerdem müssen Sie als Typ DWORD verwenden.</para> <para>Die Knowledge Base von µsoft; enthält weitere Informationen darüber, wie sie die MTU einer &windows;-Maschine ändern, damit diese mit einem NAT-Router korrekt zusammenarbeitet. Vom besonderen Interesse sind die Artikel <ulink url="http://support.microsoft.com/support/kb/articles/Q158/4/74.asp">Q158474 - &windows; TCPIP Registry Entries</ulink> und <ulink url="http://support.microsoft.com/support/kb/articles/Q120/6/42.asp">Q120642 - TCPIP & NBT Configuration Parameters for &windowsnt;</ulink>.</para> <para>Bei &windows; 2000 können Sie alternativ auch, wie im Artikel 120642 beschrieben, mit regedit das DWORD <literal>Tcpip\Parameters\Interfaces\<replaceable>ID der Netzwerkkarte</replaceable>\EnablePMTUBHDetect</literal> auf 1 setzen.</para> <para>Mit den Bordmitteln von &macos; ist es leider nicht möglich, die TCP/IP-Einstellungen zu verändern. Es gibt jedoch kommerzielle Lösungen wie zum Beispiel OTAdvancedTuner (OT steht für OpenTransport, den TCP/IP-Stack von &macos;) von <ulink url="http://www.softworks.com/">Sustainable Softworks</ulink>, mit denen man die TCP/IP-Einstellungen bearbeiten kann. Wenn Sie als &macos;-Anwender NAT benutzen, sollten Sie im entsprechenden drop-down Menü den Punkt <literal>ip_interface_MTU</literal> auswählen und in der Dialogbox <literal>1450</literal> statt <literal>1500</literal> eingeben. Aktivieren Sie den Punkt <literal>Save as Auto Configure</literal> und klicken Sie danach auf <literal>Make Active</literal>.</para> <para>&man.ppp.8; kennt seit Version 2.3 den Befehl <command>enable tcpmssfixup</command>, mit dem die MSS automatisch korrigiert wird. Wenn Sie einen ältere Version von &man.ppp.8; benutzen müssen, könnte der Port <application>tcpmssd</application> für Sie interessant sein.</para> </answer> </qandaentry> <qandaentry> <question id="desperation"> <para>Nichts von alledem hilft - ich bin verzweifelt! Was soll ich machen?</para> </question> <answer> <para>Falls alles andere fehlschlägt, senden Sie möglichst umfangreiche Informationen, einschließlich Ihrer Konfigurationsdateien, wie Sie &man.ppp.8; starten, die relevanten Teile Ihrer Logdateien und die Ausgabe des Befehls <command>netstat -rn</command> (vor und nach Aufbau der Verbindung) an die Mailingliste &a.de.questions; oder die Newsgroup <ulink url="news:de.comp.os.unix.bsd">de.comp.os.unix.bsd</ulink>. Irgend jemand sollte Ihnen dann weiterhelfen.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="serial"> <!-- The FreeBSD German Documentation Project FAQ - serial communications, Uebersetzer: Robert S. F. Drehmel Original revision 1.54 --> <title>Serielle Verbindungen</title> <para>Dieses Kapitel beantwortet häufig gestellte Fragen zu seriellen Verbindungen mit FreeBSD. PPP und SLIP werden im <link linkend="networking">Abschnitt Netzwerke</link> behandelt.</para> <qandaset> <qandaentry> <question id="found-serial"> <para>Wie kann ich feststellen, ob FreeBSD meine seriellen Schnittstellen gefunden hat?</para> </question> <answer> <para>Wenn der FreeBSD Kernel bootet, testet er die seriellen Schnittstellen, für die er konfiguriert wurde. Sie können entweder Ihrem System aufmerksam beim Booten zusehen und die angezeigten Nachrichten lesen, oder Sie führen den Befehl</para> <screen>&prompt.user; <userinput>dmesg | grep sio</userinput></screen> <para>aus, nachdem Ihr System hochgefahren ist und läuft.</para> <para>Hier ist ein Beispiel einer Ausgabe nach dem oben genannten Befehl:</para> <programlisting> sio0: at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1: at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A </programlisting> <para>Es zeigt zwei serielle Schnittstellen. Die erste verwendet Port-Adresse <literal>0x3f8</literal>, IRQ 4 und hat einen 16550A UART Chip. Die zweite benutzt ebenfalls einen 16550A UART, jedoch Port-Adresse <literal>0x2f8</literal> und IRQ 3. Modemkarten werden wie serielle Schnittstellen behandelt. Der einzige Unterschied ist, dass an diesen Schnittstellen immer ein Modem <quote>angeschlossen</quote> ist.</para> <para>Der <filename>GENERIC</filename> Kernel beinhaltet Unterstützung für zwei serielle Schnittstellen, die den im Beispiel genannten Port und IRQ verwenden. Wenn diese Einstellungen nicht richtig für Ihr System sind, Sie Modemkarten hinzugefügt oder mehr serielle Schnittstellen haben als Ihre Kernelkonfiguration zulässt, konfigurieren Sie Ihren Kernel einfach neu. In dem Kapitel über die <link linkend="make-kernel">Kernelkonfiguration</link> finden Sie mehr Details.</para> </answer> </qandaentry> <qandaentry> <question id="found-modem"> <para>Wie kann ich feststellen, ob FreeBSD meine Modemkarten gefunden hat?</para> </question> <answer> <para>Die vorherige Frage sollte darauf eine Antwort geben.</para> </answer> </qandaentry> <qandaentry> <question id="access-serial-ports"> <para>Wie kann ich auf die seriellen Schnittstellen in FreeBSD zugreifen?</para> </question> <answer> <para>Die in &man.sio.4; beschriebene serielle Schnittstelle <devicename>sio2</devicename> (<devicename>COM3</devicename> unter &ms-dos;/&windows;), ist <devicename>/dev/cuaa2</devicename> für Geräte mit abgehenden Verbindungen und <devicename>/dev/ttyd2</devicename> für Geräte mit eingehenden Verbindungen. Was ist der Unterschied zwischen den beiden Geräteklassen?</para> <para>Sie benutzen <devicename>ttyd<replaceable>X</replaceable></devicename> für eingehende Verbindungen. Wird <devicename>/dev/ttyd<replaceable>X</replaceable></devicename> im blockierenden Modus geöffnet, wartet ein Prozess darauf, dass das entsprechende <devicename>cuaa<replaceable>X</replaceable></devicename> Gerät inaktiv und der Empfangssignalpegel <footnote> <para>Mit <quote>Empfangssignalpegel</quote> oder <quote>Trägersignalerkennung</quote> wird hier die <foreignphrase>carrier detect</foreignphrase> Leitung bezeichnet.</para> </footnote> aktiv ist. Wird das <devicename>cuaa<replaceable>X</replaceable></devicename> Gerät geöffnet, vergewissert es sich, dass die serielle Schnittstelle nicht bereits von dem <filename>ttyd<replaceable>X</replaceable></filename> Gerät in Gebrauch ist. Sollte die Schnittstelle verfügbar sein, <quote>stiehlt</quote> es sie von dem <devicename>ttyd<replaceable>X</replaceable></devicename> Gerät. Das <devicename>cuaa<replaceable>X</replaceable></devicename> Gerät kümmert sich nicht um Trägersignalerkennung. Mit diesem Schema und einem automatisch antwortenden Modem, können sich Benutzer von aussen einloggen, Sie können weiterhin mit demselben Modem wählen und das System kümmert sich um die Konflikte.</para> </answer> </qandaentry> <qandaentry> <question id="enable-multiport-serial"> <para>Wie kann ich die Unterstützung für eine Karte mit mehreren seriellen Schnittstellen aktivieren?</para> </question> <answer> <para>Die Sektion über die Kernelkonfiguration bietet Informationen darüber, wie Sie Ihren Kernel konfigurieren. Für eine Karte mit mehreren seriellen Schnittstellen, schreiben Sie eine &man.sio.4; Zeile für jede serielle Schnittstelle auf der Karte in die Kernelkonfigurationsdatei. Aber achten Sie darauf, den IRQ und die Vektorbezeichnung nur in einem der Einträge zu plazieren. Alle seriellen Schnittstellen auf der Karte sollten sich einen IRQ teilen. Daher sollten Sie den IRQ nur beim letzten Eintrag angeben. Aktivieren Sie auch die <literal>COM_MULTIPORT</literal> Option.</para> <para>Das folgende Beispiel ist geeignet für eine AST Karte mit 4 seriellen Schnittstellen, die IRQ 7 benutzt:</para> <programlisting> options "COM_MULTIPORT" device sio4 at isa? port 0x2a0 tty flags 0x781 device sio5 at isa? port 0x2a8 tty flags 0x781 device sio6 at isa? port 0x2b0 tty flags 0x781 device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr </programlisting> <para>Die Flags zeigen an, dass die Master-Schnittstelle die Minor-Nummer 7 (<literal>0x700</literal>) hat, Diagnosen während des Bootens ermöglicht sind (<literal>0x080</literal>), und dass sich alle Schnittstellen einen IRQ teilen (<literal>0x001</literal>).</para> </answer> </qandaentry> <qandaentry> <question id="multiport-serial-share-irq"> <para>Kann FreeBSD mehrere Karten mit mehreren seriellen Schnittstellen mit den gleichen IRQs verwalten?</para> </question> <answer> <para>Noch nicht. Sie müssen für jede Karte einen anderen IRQ verwenden.</para> </answer> </qandaentry> <qandaentry> <question id="default-serial-params"> <para>Kann ich die vorgegebenen seriellen Parameter für eine Schnittstelle einstellen?</para> </question> <answer> <para>Das <devicename>ttyd<replaceable>X</replaceable></devicename> (oder <devicename>cuaa<replaceable>X</replaceable></devicename>) Gerät ist das reguläre Gerät, das man in Anwendungen öffnet. Wenn ein Prozess es öffnet, hat es die voreingestellten Terminal Eingabe/Ausgabe-Einstellungen. Sie können diese Einstellungen mit dem Befehl</para> <screen>&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput></screen> <para>ansehen. Wenn Sie die Einstellungen für dieses Gerät ändern, sind die Einstellungen gültig, bis das Gerät geschlossen wird. Wird es danach geöffnet, hat es wieder die vorgegebenen Einstellungen. Um Änderungen an den vorgegebenen Einstellungen vorzunehmen, können Sie das Anfangsstatus-Gerät öffnen und dessen Einstellungen anpassen. Um zum Beispiel den <acronym>CLOCAL</acronym> Modus, 8 Bits und <acronym>XON/XOFF</acronym> Datenflusskontrolle als Standard für ttyd5 einzustellen, geben Sie</para> <screen>&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput></screen> <para>ein. Eine gute Stelle um dies zu tun ist in <filename>/etc/rc.serial</filename>. Jetzt hat eine Anwendung diese Einstellungen als Standardwerte, wenn sie <devicename>ttyd5</devicename> öffnet. Die Anwendung kann die Einstellungen jedoch immer noch nach Belieben verändern.</para> <para>Man aber kann auch bestimme Einstellungen davor schützen, von einer Anwendung verändert zu werden, indem man Veränderungen am <quote>lock state</quote> Gerät vornimmt. Um beispielsweise die Geschwindigkeit von <devicename>ttyd5</devicename> auf 57600 bps festzusetzen:</para> <screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen> <para>Wenn jetzt eine Anwendung <devicename>ttyd5</devicename> öffnet und versucht die Geschwindigkeit zu verändern, wird diese bei 57600 bps bleiben.</para> <para>Natürlich sollten Sie das Schreiben auf die Anfangsstatus- und lock state-Geräte nur <username>root</username> erlauben. Das &man.MAKEDEV.8; Skript tut dies <emphasis>nicht</emphasis>, wenn es die Geräte-Einträge erstellt.</para> </answer> </qandaentry> <qandaentry> <question id="enable-dialup"> <para>Wie kann ich Einwahl-Logins über mein Modem aktivieren?</para> </question> <answer> <para>Also Sie wollen ein Internet Service Provider werden, ja? Als erstes brauchen Sie eines oder mehrere Modems, die automatisches Antworten beherrschen. Ihr Modem sollte auf Trägersignalerkennung reagieren und nicht fortlaufend die Leitung offen halten. Es muss auflegen und sich neu initialisieren können, wenn die <quote>Data Terminal Ready</quote> (<acronym>DTR</acronym>) Leitung ausgeschaltet wird. Es sollte wahrscheinlich <acronym>RTS/CTS</acronym> oder gar keine lokale Datenflusskontrolle benutzen. Zuletzt muss es eine konstante Geschwindigkeit zwischen dem Computer und sich selbst verwenden, aber es sollte (um die Anrufer freundlich zu behandeln) eine Geschwindigkeit zwischen sich und dem entfernten Modem aushandeln können.</para> <para>Für viele Modems, die mit dem Hayes Befehlssatz kompatibel sind, erzeugt der folgende Befehl diese Einstellungen und legt sie im nicht-flüchtigen Speicher ab:</para> <programlisting>AT &C1 &D3 &K3 &Q6 S0=1 &W</programlisting> <para>Die Sektion <link linkend="direct-at">über das Senden von AT-Befehlen</link> bietet weitere Informationen, wie man diese Einstellungen vornimmt, ohne zu einem &ms-dos; Terminalprogramm zu flüchten.</para> <para>Als nächstes erstellen Sie einen Eintrag in <filename>/etc/ttys</filename> für das Modem. Diese Datei listet alle Schnittstellen auf, auf denen das Betriebssystem Einlogversuche erwartet. Fügen Sie eine solche Zeile hinzu:</para> <programlisting>ttyd1 "/usr/libexec/getty std 57600" dialup on insecure</programlisting> <para>Diese Zeile bedeutet, dass an der zweiten seriellen Schnittstelle (<devicename>/dev/ttyd1</devicename>) ein Modem angeschlossen ist, das mit 57600 bps läuft und keine Parität besitzt (<literal>std.57600</literal> aus <filename>/etc/gettytab</filename>). Der Terminal-Typ für diese Schnittstelle ist <quote>dialup</quote> (<literal>Einwahl</literal>). Die Schnittstelle ist eingeschaltet (<literal>on</literal>) und <quote>unsicher</quote> (<literal>insecure</literal>) – das bedeutet, man kann sich über diese Schnittstelle nicht als <username>root</username> einloggen. Für Einwahlanschlüsse wie diesen, benutzen Sie den <literal>ttyd<replaceable>X</replaceable></literal> Eintrag.</para> <para>Es ist relativ geläufig, <literal>dialup</literal> als Terminal-Typ zu verwenden. Viele Benutzer richten in ihren <filename>.profile</filename> oder <filename>.login</filename> Dateien eine Abfrage für das eigentliche Terminal ein, wenn der Start-Typ <literal>dialup</literal> ist. Das Beispiel zeigt die Schnittstelle als unsicher und um über diese Schnittstelle <username>root</username> zu werden, müssen Sie sich als normaler Benutzer einloggen und &man.su.1;. Wenn sie <literal>secure</literal> (<quote>sicher</quote>) als Einstellung verwenden, kann sich <username>root</username> direkt einloggen.</para> <para>Nachdem Sie Modifikationen in <filename>/etc/ttys</filename> vorgenommen haben, müssen Sie ein <acronym>hangup</acronym> oder <acronym>HUP</acronym> Signal an &man.init.8; senden:</para> <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen> <para>Das bringt &man.init.8; dazu, die Datei <filename>/etc/ttys</filename> neu einzulesen. <command>init</command> startet dann an allen als eingeschaltet (<literal>on</literal>) markierten Schnittstellen die getty-Prozesse. Sie können herausfinden ob noch Logins für Ihre Schnittstelle verfügbar sind, wenn Sie folgendes eingeben:</para> <screen>&prompt.user; <userinput>ps -ax | grep '[t]tyd1'</userinput></screen> <para>Sie sollten etwas sehen, das so ähnlich aussieht wie:</para> <programlisting>747 ?? I 0:00:04 /usr/libexec/getty std.57600 ttyd1</programlisting> </answer> </qandaentry> <qandaentry> <question id="dumb-terminal"> <para>Wie kann ich ein Hardware-Terminal mit meiner FreeBSD Box verbinden?</para> </question> <answer> <para>Wenn Sie einen anderen Computer als Terminal für Ihr FreeBSD System verwenden wollen, verbinden Sie die beiden seriellen Schnittstellen mit einem Nullmodem-Kabel. Wenn Sie ein <quote>echtes</quote> (Hardware-)Terminal benutzen, lesen Sie die Begleitinformationen.</para> <para>Ändern Sie <filename>/etc/ttys</filename> wie oben angegeben. Wenn Sie zum Beispiel ein WYSE-50 Terminal mit der fünften seriellen Schnittstelle verbinden wollen, schreiben Sie einen Eintrag wie diesen:</para> <programlisting>ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure</programlisting> <para>Das Beispiel zeigt, dass die Schnittstelle an <devicename>/dev/ttyd4</devicename> mit einem wyse50 Terminal mit 38400 bps und ohne Parität (<literal>std.38400</literal> aus <filename>/etc/gettytab</filename>) verbunden ist und <username>root</username> Logins möglich sind (<literal>secure</literal>).</para> </answer> </qandaentry> <qandaentry> <question id="cannot-tip"> <para>Warum kann ich <command>tip</command> oder <command>cu</command> nicht laufen lassen?</para> </question> <answer> <para>Vielleicht sind auf Ihrem System die Programme &man.tip.1; und &man.cu.1; nur von <username>uucp</username> und der Gruppe <groupname>dialer</groupname> ausführbar. Sie können die Gruppe <groupname>dialer</groupname> verwenden, um zu kontrollieren wer Zugriff auf Ihr Modem oder entfernte Systeme hat. Fügen Sie sich einfach selbst zur Gruppe <groupname>dialer</groupname> hinzu.</para> <para>Als Alternative können Sie jeden Benutzer auf Ihrem System &man.tip.1; und &man.cu.1; verwenden lassen, dazu müssen Sie das folgende eingeben:</para> <screen>&prompt.root; <userinput>chmod 4511 /usr/bin/cu</userinput> &prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen> </answer> </qandaentry> <qandaentry> <question id="hayes-unsupported"> <para>Mein Hayes Modem wird nicht unterstützt – was kann ich tun?</para> </question> <answer> <para>Eigentlich ist die Onlinehilfe für &man.tip.1; nicht mehr aktuell. Es gibt einen eingebauten, allgemeinen Hayes Wähler. Verwenden Sie einfach <literal>at=hayes</literal> in <filename>/etc/remote</filename>.</para> <para>Der Hayes Treiber ist nicht schlau genug, um ein paar der erweiterten Merkmale von neueren Modems zu erkennen – Nachrichten wie <literal>BUSY</literal>, <literal>NO DIALTONE</literal> oder <literal>CONNECT 115200</literal> verwirren ihn nur. Sie sollten diese Nachrichten mit Hilfe von <literal>ATX0&W</literal> abschalten, wenn Sie <command>tip</command> benutzen.</para> <para>Das Anwahl-Timeout von &man.tip.1; beträgt 60 Sekunden. Ihr Modem sollte weniger verwenden, oder <command>tip</command> denkt, dass ein Kommunikationsfehler vorliegt. Versuchen Sie es mit <literal>ATS7=45&W</literal>.</para> <para>Tatsächlich unterstützt die ausgelieferte Version von &man.tip.1; es noch nicht vollständig. Die Lösung ist, <filename>tipconf.h</filename> im Verzeichnis <filename>/usr/src/usr.bin/tip/tip</filename> zu editieren. Dafür benötigen Sie natürlich die Quellcode Distribution.</para> <para>Editieren Sie die Zeile <literal>#define HAYES 0</literal> in <literal>#define HAYES 1</literal> um. Dann führen Sie <command>make</command> und <command>make install</command> aus. Es sollte jetzt funktionieren.</para> </answer> </qandaentry> <qandaentry> <question id="direct-at"> <para>Wie soll ich die AT Befehle eingeben?</para> </question> <answer> <para>Erstellen Sie einen so genannten <literal>direct</literal> Eintrag in <filename>/etc/remote</filename>. Wenn Ihr Modem zum Beispiel an der ersten seriellen Schnittstelle, <devicename>/dev/cuaa0</devicename>, angeschlossen ist, dann fügen Sie die folgende Zeile hinzu:</para> <programlisting>cuaa0:dv=/dev/cuaa0:br#19200:pa=none</programlisting> <para>Verwenden Sie die höchste bps Rate, die Ihr Modem in der br Fähigkeit unterstützt. Geben Sie dann <command>tip <devicename>cuaa0</devicename></command> ein und Sie sind mit Ihrem Modem verbunden.</para> <para>Wenn auf Ihrem System keine <devicename>/dev/cuaa0</devicename> Datei existiert, geben Sie folgendes ein:</para> <screen>&prompt.root; <userinput>cd /dev</userinput> &prompt.root; <userinput>sh MAKEDEV cuaa0</userinput></screen> <para>Oder benutzen Sie <command>cu</command> als <username>root</username> mit dem folgenden Befehl:</para> <screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen> <para><replaceable>line</replaceable> steht für die serielle Schnittstelle (<devicename>/dev/cuaa0</devicename>) und <replaceable>speed</replaceable> für die Geschwindigkeit (<literal>57600</literal>). Wenn Sie mit dem Eingeben der AT Befehle fertig sind, beenden Sie mit <literal>~.</literal>.</para> </answer> </qandaentry> <qandaentry> <question id="gt-failure"> <para>Wieso funktioniert das <literal><@></literal> Zeichen für die pn Fähigkeit nicht?</para> </question> <answer> <para>Das <literal><@></literal> Zeichen in der Telefonnummerfähigkeit sagt tip, dass es in der Datei <filename>/etc/phones</filename> nach einer Nummer suchen soll. Aber <literal><@></literal> ist auch ein spezielles Zeichen in den Dateien, in denen Fähigkeiten beschrieben werden, wie <filename>/etc/remote</filename>. Schreiben Sie es mit einem '\' (backslash):</para> <programlisting>pn=\@</programlisting> </answer> </qandaentry> <qandaentry> <question id="dial-command-line"> <para>Wie kann ich von der Kommandozeile eine Telefonnummer wählen?</para> </question> <answer> <para>Stellen Sie einen <quote>allgemeinen</quote> Eintrag in <filename>/etc/remote</filename>. Zum Beispiel:</para> <programlisting> tip115200|Dial any phone number at 115200 bps:\ :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: tip57600|Dial any phone number at 57600 bps:\ :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: </programlisting> <para>Mit einem Befehl wie <command>tip -115200 5551234</command> können Sie dann wählen. Sollten Sie &man.cu.1; im Gegensatz zu &man.tip.1; bevorzugen, verwenden Sie einen allgemeinen cu-Eintrag:</para> <programlisting> cu115200|Use cu to dial any number at 115200bps:\ :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: </programlisting> <para>Zum Wählen können Sie dann <command>cu 5551234 -s 115200</command> eingeben.</para> </answer> </qandaentry> <qandaentry> <question id="set-bps"> <para>Muss ich dabei jedes Mal die bps Rate angeben?</para> </question> <answer> <para>Schreiben Sie einen <literal>tip1200</literal> oder einen <literal>cu1200</literal> Eintrag, aber geben Sie auch die bps Rate an, die Ihr Modem wirklich unterstützt. Leider denkt &man.tip.1;, dass 1200 bps ein guter Standardwert ist und deswegen sucht es nach einem <literal>tip1200</literal>-Eintrag. Natürlich müssen Sie nicht wirklich 1200 bps benutzen.</para> </answer> </qandaentry> <qandaentry> <question id="terminal-server"> <para>Wie kann ich möglichst komfortabel über einen Terminal-Server auf verschiedene Rechner zugreifen?</para> </question> <answer> <para>Sie müssen nicht warten bis Sie verbunden sind, und jedes Mal <command>CONNECT <replaceable>Rechner</replaceable></command> eingeben, benutzen Sie tip's <literal>cm</literal> Fähigkeit. Sie können diese Einträge in <filename>/etc/remote</filename> verwenden:</para> <programlisting> pain|pain.deep13.com|Forrester's machine:\ :cm=CONNECT pain\n:tc=deep13: muffin|muffin.deep13.com|Frank's machine:\ :cm=CONNECT muffin\n:tc=deep13: deep13:Gizmonics Institute terminal server:\ :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234: </programlisting> <para>Mit den Befehlen <command>tip pain</command> oder <command>tip muffin</command> können Sie eine Verbindungen zu den Rechnern <hostid>pain</hostid> oder <hostid>muffin</hostid> herstellen; mit <command>tip deep13</command> verbinden Sie sich mit dem Terminal Server.</para> </answer> </qandaentry> <qandaentry> <question id="tip-multiline"> <para>Kann tip mehr als eine Verbindung für jede Seite ausprobieren?</para> </question> <answer> <para>Das ist oft ein Problem, wenn eine Universität mehrere Telefonleitungen hat und viele tausend Studenten diese benutzen wollen.</para> <para>Erstellen Sie einen Eintrag für Ihre Universität in <filename>/etc/remote</filename> und benutzen Sie <literal><\@></literal> für die <literal>pn</literal> Fähigkeit:</para> <programlisting> big-university:\ :pn=\@:tc=dialout dialout:\ :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: </programlisting> <para>Listen Sie die Telefonnummern der Universität in <filename>/etc/phones</filename> auf:</para> <programlisting> big-university 5551111 big-university 5551112 big-university 5551113 big-university 5551114 </programlisting> <para>&man.tip.1; probiert jede der Nummern in der aufgelisteten Reihenfolge und gibt dann auf. Möchten Sie, dass <command>tip</command> beim Versuchen eine Verbindung herzustellen nicht aufgibt, lassen Sie es in einer while-Schleife laufen.</para> </answer> </qandaentry> <qandaentry> <question id="multi-controlp"> <para>Warum muss ich zweimal <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>P</keycap> </keycombo> tippen, um ein <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>P</keycap> </keycombo> zu senden?</para> </question> <answer> <para><keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>P</keycap> </keycombo> ist das voreingestellte Zeichen, mit dem eine Übertragung erzwungen werden kann und wird benutzt, um &man.tip.1; zu sagen, dass das nächste Zeichen direkt gesendet werden soll und nicht als Fluchtzeichen interpretiert werden soll. Mit Hilfe der <literal>~s</literal> Fluchtsequenz, mit der man Variablen setzen kann, können Sie jedes andere Zeichen als <quote>force</quote>-Zeichen definieren.</para> <para>Geben Sie <literal>~sforce=<replaceable>zeichen</replaceable></literal> ein und drücken Sie <keycap>Enter</keycap>. Für <replaceable>zeichen</replaceable> können Sie ein beliebiges einzelnes Zeichen einsetzen. Wenn Sie <replaceable>zeichen</replaceable> weglassen, ist das <quote>force</quote>-Zeichen <quote>nul</quote>, das Sie mit <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>2</keycap> </keycombo> oder <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>SPACE</keycap> </keycombo> eingeben können. Ein guter Wert für <replaceable>zeichen</replaceable> ist <keycombo action="simul"> <keycap>Shift</keycap> <keycap>Ctrl</keycap> <keycap>6</keycap> </keycombo>, welches ich erst auf ein paar Terminal-Servern in Benutzung gesehen habe.</para> <para>Sie können das <quote>force</quote>-Zeichen auch bestimmen, indem Sie in <filename>$HOME/.tiprc</filename> das folgende einstellen:</para> <programlisting>force=<replaceable>single-char</replaceable></programlisting> </answer> </qandaentry> <qandaentry> <question id="uppercase"> <para>Warum ist auf einmal alles was ich schreibe in GROSSBUCHSTABEN??</para> </question> <answer> <para>Sie müssen <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>A</keycap> </keycombo> eingegeben haben, das <quote>raise</quote>-Zeichen von &man.tip.1; das speziell für Leute mit defekten <keycap>Caps Lock</keycap> Tasten eingerichtet wurde. Benutzen Sie <literal>~s</literal> wie oben und setzen Sie die Variable <quote>raisechar</quote> auf etwas, das Ihnen angemessen erscheint. Tatsächlich kann die Variable auf das gleiche Zeichen wie das <quote>force</quote>-Zeichen gesetzt werden, wenn Sie diese Fähigkeiten niemals benutzen wollen.</para> <para>Hier ist ein Muster der <filename>.tiprc</filename> Datei, perfekt für <application>Emacs</application> Benutzer, die oft <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>2</keycap> </keycombo> und <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>A</keycap> </keycombo> tippen müssen:</para> <programlisting> force=^^ raisechar=^^ </programlisting> <para>Das ^^ steht für <keycombo action="simul"> <keycap>Shift</keycap> <keycap>Ctrl</keycap> <keycap>6</keycap> </keycombo>.</para> </answer> </qandaentry> <qandaentry> <question id="tip-filetransfer"> <para>Wie kann ich Dateien mit <command>tip</command> übertragen?</para> </question> <answer> <para>Wenn Sie mit einem anderen &unix; System kommunizieren, können Sie Dateien senden und empfangen – mit <literal>~p</literal> (put) und <literal>~t</literal> (take). Diese Befehle lassen &man.cat.1; und &man.echo.1; auf dem entfernten System laufen, um Dateien zu akzeptieren und zu senden. Die Syntax ist:</para> <programlisting> ~p <local-file> [<remote-file>] ~t <remote-file> [<local-file>] </programlisting> <para>Es gibt keine Fehlerkontrolle, deshalb sollten Sie besser ein anderes Protokoll benutzen, wie zmodem.</para> </answer> </qandaentry> <qandaentry> <question id="zmodem-tip"> <para>Wie kann ich zmodem mit <application>tip</application> laufen lassen?</para> </question> <answer> <para>Zuerst installieren Sie ein zmodem Programm aus der Ports-Sammlung (eines der beiden aus der comms-Kategorie, <application>lrzsz</application> oder <application>rzsz</application>).</para> <para>Um Dateien zu empfangen, starten Sie das Programm zum Senden auf dem entfernten Computer. Drücken Sie dann <keycap>Enter</keycap> gefolgt von <literal>~C rz</literal> (oder <literal>~C lrz</literal>, wenn Sie lrzsz installiert haben), um diese lokal zu empfangen.</para> <para>Um Dateien zu senden, starten Sie das Programm zum Empfangen auf dem entfernten Computer. Drücken Sie dann <keycap>Enter</keycap> gefolgt von <literal>~C sz <replaceable>Dateien</replaceable></literal> (oder <literal>~C lsz <replaceable>Dateien</replaceable></literal>), um sie zum entfernten System zu senden.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="misc"> <title>Verschiedene Fragen</title> <qandaset> <qandaentry> <question id="more-swap"> <para>FreeBSD benutzt viel mehr Swap-Speicher als &linux;. Warum?</para> </question> <answer> <para>Es sieht nur so aus, als ob FreeBSD mehr Swap benutzt, als &linux;. Tatsächlich ist dies nicht der Fall. In dieser Hinsicht besteht der Hauptunterschied zwischen FreeBSD und &linux; darin, dass FreeBSD vorbeugend vollkommen untätige, unbenutzte Seiten aus dem Hauptspeicher in den Swap-Bereich auslagert, um mehr Hauptspeicher für die aktive Nutzung zur Verfügung zu stellen. &linux; tendiert dazu, nur als letzten Ausweg Seiten in den Swap-Bereich auszulagern. Die spürbar höhere Nutzung des Swap-Speichers wird durch die effizientere Nutzung des Hauptspeichers wieder ausgeglichen.</para> <para>Beachten Sie, dass FreeBSD in dieser Hinsicht zwar vorbeugend arbeitet, es entscheidet jedoch nicht willkürlich, Seiten auszulagern, wenn das System vollkommen untätig ist. Deshalb werden Sie feststellen, dass nicht alle Seiten Ihres Systems ausgelagert wurden, wenn Sie morgens aufstehen, nachdem das System eine Nacht lang nicht benutzt worden ist.</para> </answer> </qandaentry> <qandaentry> <question id="top-freemem"> <para>Warum zeigt mir &man.top.1; so wenig freien Speicher an, obwohl nur wenige Programme laufen?</para> </question> <answer> <para>Die Antwort ist ganz einfach: Freier Speicher ist verschwendeter Speicher. Der FreeBSD Kernel verwendet den von den Programmen nicht genutzten Speicher automatisch für den Plattencache. Die in &man.top.1; für <literal>Inact</literal>, <literal>Cache</literal> und <literal>Buf</literal> gemeldeten Werte stehen alle für zwischengespeicherte Daten mit unterschiedlichem Alter. Wenn das System wiederholt auf Daten zugreifen muss, braucht es nicht auf die langsame Platte zuzugreifen, da die Daten noch zwischengespeichert sind. Dadurch erhöht sich die Performance. Ganz generell ist es ein gutes Zeichen, wenn &man.top.1; einen kleinen Wert bei <literal>Free</literal> anzeigt, solange der Wert nicht <emphasis>extrem</emphasis> klein ist.</para> <para>Anmerkung des Übersetzers: Mit <quote>extrem klein</quote> sind hier Werte unterhalb 512 KByte gemeint.</para> </answer> </qandaentry> <qandaentry> <question id="chmod-symlinks"> <para>Warum ändert <command>chmod</command> die Zugriffsrechte auf symbolische Links nicht?</para> </question> <answer> <para>Für symbolische Links gibt es keine separaten Zugriffsrechte und standardmäßig folgt &man.chmod.1; dem Link nicht; die Zugriffsrechte für die Datei, auf die der symbolische Link zeigt, werden also nicht verändert. Wenn Sie eine Datei mit dem Namen <filename>foo</filename> und einen auf diese Datei zeigenden symbolischen Link mit dem Namen <filename>bar</filename> haben, wird das folgende Kommando niemals einen Fehler melden.</para> <screen>&prompt.user; <userinput>chmod g-w bar</userinput></screen> <para>Trotzdem werden die Zugriffsrechte für <filename>foo</filename> nicht geändert.</para> <para>Hierzu müssen Sie entweder <option>-H</option> oder <option>-L</option> zusammen mit der Option <option>-R</option> benutzen. Weitere Informationen finden Sie in den Manualpages &man.chmod.1; und &man.symlink.7;.</para> <warning> <para>Die Option <option>-R</option> bewirkt ein <emphasis>rekursives</emphasis> &man.chmod.1;. Seien Sie vorsichtig, wenn Sie bei &man.chmod.1; Verzeichnisse oder symbolische Links zu Verzeichnissen angeben. Wenn Sie die Zugriffsrechte eines Verzeichnisses ändern möchten, das durch einen symbolischen Link referenziert wird, benutzen Sie &man.chmod.1; ohne irgendwelche Optionen und folgen dem symbolischen Link durch einen abschließenden Schrägstrich (<filename>/</filename>). Falls z.B. <filename>foo</filename> ein symbolischer Link zum Verzeichnis <filename>bar</filename> ist und Sie die Zugriffsrechte von <filename>foo</filename> (tatsächlich <filename>bar</filename>) ändern möchten, dann benutzen Sie etwas ähnliches wie:</para> <screen>&prompt.user; <userinput>chmod 555 foo/</userinput></screen> <para>Durch den abschließenden Schrägstrich folgt &man.chmod.1; dem symbolischen Link <filename>foo</filename>, um die Zugriffsrechte für das Verzeichnis <filename>bar</filename> zu ändern.</para> </warning> </answer> </qandaentry> <qandaentry> <question id="dos-binaries"> <para>Kann ich DOS-Programme unter FreeBSD ausführen?</para> </question> <answer> <para>Ja. Sie können <filename role="package">emulators/doscmd</filename> verwenden, das über die Ports-Sammlung verfügbar ist.</para> <note> <para><application>doscmd</application> war früher Teil des Basissystems von &os;, es wurde aber vor der Veröffentlichung von &os; 5.3 daraus entfernt.</para> </note> <para>Falls <application>doscmd</application> nicht ausreicht, können Sie den Port <filename role="package">emulators/pcemu</filename> verwenden, der einen 8088 und genug BIOS-Funktionen emuliert, um DOS-Textanwendungen laufen zu lassen. Der Port benötigt das X-Window-System.</para> </answer> </qandaentry> <qandaentry> <question id="translation"> <para>Was muss ich tun, um die FreeBSD-Dokumentation in meine Muttersprache zu übersetzen?</para> </question> <answer> <para>Informationen zu diesem Thema finden Sie in der <ulink url="http://www.de.FreeBSD.org/de/uebersetzung.html">FAQ</ulink> des FreeBSD German Documentation Project.</para> </answer> </qandaentry> <qandaentry> <question id="freebsd-mail-bounces"> <para>Warum kommen alle meine Mails, die ich an @FreeBSD.org schicke, wieder zurück?</para> </question> <answer> <para>Das Mailsystem von FreeBSD.org verwendet einige der strengeren Überprüfungen von <application>Postfix</application> für eingehende Mails. Mails, bei denen es Anzeichen für Konfigurationsprobleme oder Spam gibt, werden nicht akzeptiert. Dies kann aus einem der folgenden Gründe geschehen:</para> <itemizedlist> <listitem> <para>Die Mail kommt von einem System oder Netzwerk, dass für Spam-Aktivitäten bekannt ist.</para> <para>Die Mailserver von FreeBSD akzeptierten keine Mails von bekannten Spam-Quellen. Wenn Sie eine Firma oder Domain benutzen, die Spam erzeugt oder verteilt, sollten Sie sich einen anderen ISP suchen.</para> </listitem> <listitem> <para>Der Mailtext enthält HTML.</para> <para>Mail sollte immer im Klartext gesendet werden, Sie sollten ihr Mailprogramm entsprechend einstellen.</para> </listitem> <listitem> <para>Das Mailsystem kann die IP-Adresse des einliefernden Systems nicht in einen symbolischen Namen umwandeln.</para> <para>Funktionierendes reverse DNS ist eine Vorbedingung, damit ihre Mails angenommen wird. Sorgen Sie dafür, dass der reverse DNS für Ihren Mailserver korrekt konfiguriert wird. Viele Anbieter für Privatkunden geben Ihnen diese Möglichkeit nicht. In diesem Fall sollten Sie Ihre Mails über den Mailserver Ihres Providers versenden.</para> </listitem> <listitem> <para>Der Rechnername, der im EHLO/HELO Teil der SMTP Kommunikation übergeben wird, kann nicht zu einer IP-Adresse aufgelöst werden.</para> <para>Damit die E-Mail akzeptiert wird, brauchen Sie einen voll qualifizierten Rechnernamen, der im DNS eingetragen ist. Wenn Sie diesen nicht besitzen, benutzen Sie bitte den Mailserver Ihres Providers, um E-Mails zu verschicken.</para> </listitem> <listitem> <para>Die Message-ID Ihrer Mail endet in <literal>localhost</literal>.</para> <para>Einige Mail-Clients generieren eine Message-ID, die nicht akzeptiert wird. Sie müssen Ihren Mail-Client so konfigurieren, dass er eine gültige Message-ID generiert. Alternativ können Sie die Message-ID von Ihrem Mailserver umschreiben lassen.</para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question id="free-account"> <para>Wo kann ich einen freien FreeBSD-Account bekommen?</para> </question> <answer> <para>Das FreeBSD-Projekt bietet zwar keinen freien Zugang zu seinen Servern an; andere Firmen bieten jedoch frei zugängliche &unix; Systeme. Die Kosten variieren und es kann sein, dass nicht alle Dienste zur Verfügung stehen.</para> <para><ulink url="http://www.arbornet.org/">Arbornet, Inc</ulink>, auch als M-Net bekannt, bietet seit 1983 uneingeschränkten Zugang zu &unix; Systemen. Zunächst wurde eine Altos-Maschine mit System III benutzt, 1991 erfolgte dann der Wechsel zu BSD/OS. Im Juni 2000 erfolgte ein erneuter Wechsel, diesmal zu FreeBSD. M-Net bietet Zugang mit Telnet und SSH und den Zugang zur gesamten Software von FreeBSD. Allerdings ist der Zugriff auf das Netzwerk auf Mitglieder und Gönner beschränkt, die eine Spende an die nicht-kommerzielle Organisation geleistet haben. M-Net stellt zusätzlich ein Mailbox-System und einen interaktiven Chat zur Verfügung.</para> <para><ulink url="http://www.grex.org/">Grex</ulink> bietet ein ganz ähnlichen Dienst wie M-Net an, dazu gehören auch das Mailbox-System und der interaktive Chat. Allerdings wird eine SUN4M mit &sunos; benutzt.</para> </answer> </qandaentry> <qandaentry> <question id="sup-define"> <para>Was ist <command>sup</command> und wie benutze ich es?</para> </question> <answer> <para>Der Name <acronym>SUP</acronym> steht für Software Update Protocol und wurde von der CMU (Carnegie Mellon University) entwickelt, um ihre Entwicklungszweige zu synchronisieren. Wir haben es benutzt, um entfernte Sites mit unseren zentralen Quellcodeentwicklungen zu synchronisieren.</para> <para>SUP ist nicht sehr bandbreitenfreundlich und wurde abgelöst. Die derzeit empfohlene Methode, um Ihren Quellcode auf dem neuesten Stand zu halten ist <ulink url="&url.books.handbook;/synching.html#CVSUP"> CVSup</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="daemon-name"> <para>Wie heißt das niedliche rote Kerlchen?</para> </question> <answer> <para>Er ist namenlos, es ist einfach der <quote>der BSD Daemon</quote>. Wenn Sie ihm unbedingt einen Namen geben wollen, rufen Sie ihn <quote>beastie</quote>. Beachten Sie aber, dass <quote>beastie</quote> wie <quote>BSD</quote> ausgesprochen wird.</para> <para>Weitere Informationen über den BSD daemon finden Sie auf <ulink url="http://www.mckusick.com/beastie/index.html">seiner Homepage</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="use-beastie"> <para>Kann ich Bilder des BSD Daemon verwenden?</para> </question> <answer> <para>Eventuell. Der BSD Daemon unterliegt dem Copyright von Marshall Kirk McKusick. Wenn Sie genaue Informationen über die Einschränkungen bei der Nutzung brauchen, sollten Sie sein <ulink url="http://www.mckusick.com/beastie/mainpage/copyright.html">Statement on the Use of the BSD Daemon Figure</ulink> lesen.</para> <para>Kurz gesagt, können Sie den BSD Daemon benutzen, solange es für einen privaten Zweck ist und die Nutzung geschmackvoll bleibt. Für den kommerziellen Einsatz brauchen Sie die Zustimmung von Kirk McKusick. Weitere Informationen erhalten Sie auf der Webseite <ulink url="http://www.mckusick.com/beastie/index.html">BSD Daemon's home page</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="daemon-images"> <para>Woher kann ich Bilder des BSD Daemon bekommen?</para> </question> <answer> <para>Einige Bilder in den Format xfig und eps sind unter <filename>/usr/share/examples/BSD_daemon/</filename> zu finden.</para> </answer> </qandaentry> <qandaentry> <question id="glossary"> <para>Ich habe in den Mailinglisten eine Abkürzung oder einen Begriff gesehen, den ich nicht kenne. Wo erhalte ich eine Erklärung dazu?</para> </question> <answer> <para>Sehen Sie bitte im <ulink url="&url.books.handbook;/freebsd-glossary.html"> FreeBSD-Glossar</ulink> nach.</para> </answer> </qandaentry> <qandaentry> <question id="bikeshed-painting"> <para>Warum sollte mich die Farbe des Fahrradschuppens interessieren?</para> </question> <answer> <para>Die ganz, ganz kurze Antwort ist: Überhaupt nicht. Die etwas längere Antwort lautet: Nur weil Sie in der Lage sind, einen Fahrradschuppen zu bauen, müssen Sie noch lange nicht andere davon abhalten, nur weil Ihnen die Farbe nicht gefällt. Dies ist natürlich eine Metapher dafür, dass Sie nicht eine Diskussion über jede kleine Änderung beginnen sollen, nur weil Sie das können. Einige Leute behaupten sogar, dass die Anzahl der (nutzlosen) Kommentare über eine Änderung umgekehrt proportional zur Komplexität der Änderung ist.</para> <para>Die noch längere und vollständigere Antwort ist, dass &a.phk; nach einen langen Diskussion über das Thema "Soll &man.sleep.1; Sekundenbruchteile als Parameter akzeptieren?" eine lange Mail mit dem Titel <quote><ulink url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">A bike shed (any colour will do) on greener grass...</ulink></quote> schrieb. Die einschlägigen Teile der Nachricht lauteten:</para> <blockquote> <attribution>&a.phk; in freebsd-hackers, 2.10.1999</attribution> <para>Einige von Euch haben mich gefragt, <quote>Was meinst Du mit dem Fahrradschuppen?</quote></para> <para>Es ist eine lange oder eigentlich eher eine sehr alte und doch sehr kurze Geschichte. C. Northcote Parkinson schrieb in den frühen Sechzigern ein Buch mit dem Namen <quote>Parkinson's Law</quote>, das viele Einblick in die Beziehungen innerhalb des Managements gibt.</para> <para>[ein paar Kommentare zum Buch gestrichen]</para> <para>In dem Beispiel mit dem Fahrradschuppen ist die andere wichtige Komponente ein Kernkraftwerk. Ich glaube, dass zeigt schon, wie alt dieses Buch ist.</para> <para>Parkinson zeigte, dass man zum Vorstand gehen kann und die Genehmigung für ein mehrere Millionen oder sogar Milliarden Dollar teures Kernkraftwerk bekommt; wenn man aber einen Fahrradschuppen bauen will, wird man in endlose Diskussionen verwickelt.</para> <para>Laut Parkinson liegt das daran, dass ein Kernkraftwerk so groß, so teuer und so kompliziert ist, dass die Leute es nicht verstehen. Und bevor sie versuchen, es zu verstehen, verlassen Sie sich lieber darauf, dass irgend jemand sicherlich die ganzen Details geprüft hat, bevor das Projekt bis zum Vorstand gekommen ist. Im Buch von Richard P. Feynmann finden sich einige interessante und sehr passende Beispiele aus dem Gebiet von Los Alamos.</para> <para>Ein Fahrradschuppen ist was anderes. Jeder kann an seinem freien Wochenende einen bauen und hat trotzdem noch genug Zeit für die Sportschau. Daher ist es unwichtig, wie gut man sich vorbereitet und wie sinnvoll der eigene Vorschlag ist. Irgend jemand wird die Möglichkeit nutzen und zeigen, dass er seine Arbeit tut, dass er aufmerksam ist, dass er <emphasis>da ist</emphasis>.</para> <para>In Dänemark nennen wir dieses Verhalten <quote>Seine Fingerabdrücke hinterlassen</quote>. Es geht um persönlichen Stolz und Prestige; die Chance, auf irgend etwas zu zeigen und zu sagen zu können: <quote>Da! Das habe <emphasis>Ich</emphasis> getan.</quote> Politiker leiden sehr stark darunter, aber viele Leute verhalten sich so, wenn sie die Chance haben. Denkt einfach mal an Fußabdrücke in feuchtem Zement.</para> </blockquote> </answer> </qandaentry> </qandaset> </chapter> <chapter id="funnies"> <title>Nicht ganz ernstgemeinte Fragen</title> <qandaset> <qandaentry> <question id="very-very-cool"> <para>Wie cool ist FreeBSD?</para> </question> <answer> <para>Q. Hat irgend jemand Temperaturmessungen durchgeführt, während FreeBSD läuft? Ich weiss, dass &linux; cooler läuft, als DOS, habe aber niemals gesehen, dass FreeBSD erwähnt wurde. Es scheint sehr heiß zu laufen.</para> <para>A. Nein, aber wir haben zahlreiche Geschmackstests mit verblendeten Freiwilligen durchgeführt, denen außerdem zuvor 250 Mikrogramm LSD-25 verabreicht wurden. 35% der Freiwilligen sagte, dass FreeBSD nach Orange schmeckte, &linux; hingegen schmecke wie <quote>purple haze</quote> (Anm. d. Übersetzers: Song von Jimmy Hendrix und LSD-Marke). Keine der Gruppen hat besondere Abweichungen der Temperatur erwähnt. Eventuell hätten wir sämtliche Ergebnisse dieser Untersuchung fortwerfen sollen, als wir festgestellt haben, dass zu viele der Freiwilligen den Raum während der Tests verlassen haben und dadurch die Ergebnisse verfälscht haben. Wir glauben, dass die meisten der Freiwilligen nun bei Apple sind und an ihrer neuen <quote>scratch and sniff</quote> Oberfläche arbeiten. Es ist ein lustiges, altes Geschäft, in dem wir uns befinden!</para> <para>Ernsthaft, FreeBSD und &linux; benutzen beide die Instruktion <acronym>HLT</acronym> (halt), wenn das System untätig ist, wodurch der Energieverbrauch und dadurch die produzierte Wärme reduziert wird. Falls Sie auch noch APM (Advanced Power Management) konfiguriert haben, kann FreeBSD Ihre CPU auch in einen Low-Power-Modus bringen.</para> </answer> </qandaentry> <qandaentry> <question id="letmeoutofhere"> <para>Wer kratzt in meinen Speicherbänken??</para> </question> <answer> <para>Q. Gibt es irgend etwas <quote>seltsames</quote>, das FreeBSD tut, wenn ich den Kernel kompiliere, das dazu führt, dass der Speicher ein kratzendes Geräusch macht? Bei der Kompilierung (und auch für einen kurzen Moment nach der Erkennung des Floppy-Laufwerks beim Hochfahren), kommt ein seltsames kratzendes Geräusch von etwas das die Speicherbänke zu sein scheinen.</para> <para>A. Ja! In der BSD-Dokumentation finden Sie häufige Verweise auf <quote>Daemons</quote> und was die meisten Leute nicht wissen, ist, dass diese sich auf echte, nicht-körperlichen Wesen beziehen, die Besitz von Ihrem Computer ergriffen haben. Das kratzende Geräusch, das von Ihrem Speicher kommt, ist in Wirklichkeit hochtöniges Flüstern, das unter den Daemons ausgetauscht wird, während Sie entscheiden, wie Sie die verschiedenen Systemadministrationsaufgaben, am besten erledigen.</para> <para>Wenn Sie das Geräusch stört, wird ein <command>fdisk /mbr</command> sie vertreiben, aber wundern Sie sich nicht, wenn sie feindlich reagieren und versuchen, Sie aufzuhalten. Wenn Sie während der Ausführung zu irgendeinem Zeitpunkt die teuflische Stimme von Bill Gates aus dem eingebauten Lautsprecher kommen hören, laufen Sie weg und sehen Sie sich auf keinen Fall um! Befreit von dem ausgleichenden Einfluss der BSD Dämonen sind die beiden Dämonen von DOS und &windows; oft dazu in der Lage, die totale Kontrolle über Ihre Maschine für die ewige Verdammung Ihrer Seele zurückzuerlangen. Da Sie jetzt die Wahrheit kennen, würden Sie es vorziehen, sich an die Geräusche zu gewöhnen, wenn Sie die Wahl hätten.</para> </answer> </qandaentry> <qandaentry> <question id="changing-lightbulbs"> <para>Wie viele FreeBSD-Hacker braucht man, um eine Glühbirne auszuwechseln?</para> </question> <answer> <para>Eintausendeinhundertundneunundsechzig:</para> <para>Dreiundzwanzig, die sich bei -CURRENT beschweren, dass das Licht aus ist;</para> <para>Vier, die behaupten, dass es sich um ein Konfigurationsproblem handelt und dass solche Dinge wirklich nach -questions gehören;</para> <para>Drei, die PRs hierzu einreichen, einer von ihnen wird falsch unter DOC abgelegt und fristet sein Dasein im Dunkeln;</para> <para>Einen, der eine ungetestete Glühbirne einreicht, wonach buildworld nicht mehr funktioniert, und sie dann fünf Minuten später wieder herausnimmt;</para> <para>Acht, die die PR-Erzeuger beschimpfen, weil sie zu ihren PRs keine Patche hinzugefügt haben;</para> <para>Fünf, die sich darüber beschweren, dass buildworld nicht mehr funktioniert;</para> <para>Einunddreißig, die antworten, dass es bei ihnen funktioniert und dass sie cvsup wohl zu einigem ungünstigen Zeitpunkt durchgeführt haben;</para> <para>Einen, der einen Patch für eine neue Glühbirne an -hackers schickt;</para> <para>Einen, der sich beschwert, dass es vor drei Jahren Patches hierfür hatte, aber als er sie nach -CURRENT schickte, sind sie einfach ignoriert worden und er hatte schlechte Erfahrungen mit dem PR-System; nebenbei ist die vorgeschlagene Glühbirne nicht reflexiv;</para> <para>Siebenunddreißig, die schreien, dass Glühbirnen nicht in das Basissystem gehören, dass Committer nicht das Recht haben, solche Dinge durchzuführen, ohne die Gemeinschaft zu konsultieren und WAS GEDENKT -CORE HIER ZU TUN!?</para> <para>Zweihundert, die sich über die Farbe des Fahrradschuppens beschweren;</para> <para>Drei, die darauf hinweisen, dass der Patch nicht mit &man.style.9; übereinstimmt;</para> <para>Siebzehn, die sich beschweren, dass die vorgeschlagene neue Glühbirne der GPL unterliegt;</para> <para>Fünfhundertundsechsundachtzig, die sich in einen Streit über die vergleichbaren Vorteile der GPL, der BSD-Lizenz, der MIT-Lizenz, der NPL und der persönlichen Hygiene nichtgenannter FSF-Gründer verwickeln;</para> <para>Sieben, die unterschiedliche Teile des Threads nach -chat und -advocacy weiterleiten;</para> <para>Einer, der die vorgeschlagene Glühbirne einbaut, obwohl sie dunkler leuchtet, als die alte;</para> <para>Zwei, die sie wieder ausbauen, und in einer wütenden Nachricht argumentieren, dass FreeBSD besser ganz im Dunkeln dasteht, als mit einer dämmerigen Glühbirne;</para> <para>Sechsundvierzig, die sich lärmend wegen des Wiederausbaus der dämmerigen Glühbirne streiten und eine Erklärung von -core verlangen;</para> <para>Elf, die eine kleinere Glühbirne beantragen, damit sie in ihr Tamagotchi passt, falls wir irgendwann beschließen, FreeBSD auf diese Plattform zu portieren;</para> <para>Dreiundsiebzig, die sich über die SNR auf -hackers und -chat beschweren und aus Protest abmelden;</para> <para>Dreizehn, die <quote>unsubscribe</quote>, <quote>How do I unsubscribe?</quote> oder <quote>Please remove me from the list</quote> gefolgt von der üblichen Fußzeile abschicken;</para> <para>Einen, der eine funktionierende Glühbirne einbaut, während alle zu beschäftigt damit sind, mit jedem zu streiten, um es zu bemerken;</para> <para>Einunddreißig, die herausstellen, dass die neue Glühbirne 0,364% heller leuchten würde, wenn sie mit TenDRA kompiliert werden würde (obwohl sie in einen Würfel umgeformt werden müsste) und dass FreeBSD deshalb nach TenDRA, anstatt nach GCC wechseln sollte;</para> <para>Einen, der sich beschwert, dass bei der neuen Glühbirne die Verkleidung fehlt;</para> <para>Neun (einschließlich der PR-Ersteller), die fragen <quote>Was ist MFC?</quote></para> <para>Siebenundfünfzig, die sich zwei Wochen, nachdem die Birne gewechselt worden ist, darüber beschweren, dass das Licht aus war.</para> <para><emphasis>&a.nik; hat hinzugefügt:</emphasis></para> <para><emphasis>Ich habe ziemlich hierüber gelacht.</emphasis></para> <para><emphasis>Und dann dachte ich: "Halt, sollte in dieser Liste nicht irgendwo 'Einer, der es dokumentiert' sein?"</emphasis></para> <para><emphasis>Und dann wurde ich erleuchtet :-)</emphasis></para> </answer> </qandaentry> <qandaentry> <question id="dev-null"> <para>Was passiert mit den Daten, die nach <filename>/dev/null</filename> geschrieben werden?</para> </question> <answer> <para>Sie werden in einer speziellen Datensenke der CPU in Wärme umgewandelt, die dann über den Kühlkörper und den Lüfter abgeführt wird. Dies ist einer der Gründe für die Kühlung von CPUs; die Anwender gewöhnen sich an die schnelleren Prozessoren, gehen nicht mehr so sorgfältig mit Ihren Daten um und so landen immer mehr Daten in <filename>/dev/null</filename>, was zur Überhitzung der CPU führt. Wenn Sie <filename>/dev/null</filename> löschen (was die Datensenke ziemlich sicher abschaltet), wird Ihre CPU zwar nicht mehr so heiß, dafür wird Ihr System aber sehr schnell von den überzähligen Daten überladen und merkwürdige Effekte zeigen. Wenn Sie eine sehr schnell Netzwerkverbindung haben, können Sie Ihre CPU kühlen, indem sie Daten aus <filename>/dev/random</filename> lesen und in die Weite des Netzwerkes schicken; allerdings besteht hier die Gefahr der Überhitzung von Netzwerk und <filename>/</filename>. Außerdem dürfte Ihr ISP ziemlich wütend werden, da der größte Teil der Daten von seinen Geräten in Hitze umgewandelt werden wird; da ISPs aber über Klimaanlagen verfügen, sollte das kein großes Problem sein, solange Sie es nicht übertreiben.</para> <para><emphasis>Nachtrag Paul Robinson:</emphasis></para> <para>Es gibt andere Mittel und Wege. Wie jeder gute Systemadministrator weiss, gehört es zum guten Ton, einigen Daten zum Bildschirm zu senden, damit die Leuchtkäferchen, die das Bild anzeigen, glücklich sind. Die Leuchtkäferchen werden nach der Farbe Ihrer Hüte (Rot, Grün, oder Blau) unterschieden und sie verstecken bzw. zeigen sich (wobei man die Farbe ihrer Hüte erkennen kann) bei jeder Nahrungsaufnahme. Grafikkarten wandeln Daten in Leuchkäfer-Nahrung um und schicken sie dann zu den Leuchtkäfern - teure Karten erzeugen bessere Nahrung und sorgen so für besseres Verhalten der Leuchtkäfer. Diese brauchen allerdings einen konstanten Stimulus - darum gibt es Bildschirmschoner.</para> <para>Darum lautet mein Vorschlag, die zufälligen Daten einfach zum Bildschirm zu schicken, damit sie von den Leuchtkäfern verzehrt werden. Dabei entsteht keine Hitze, die Leuchtkäfer bleiben glücklich und man wird seine überflüssigen Daten sehr schnell los, auch wenn der Bildschirm etwas merkwürdig aussieht.</para> <para>Übrigens: Als Ex-Admin eines großen ISPs, der so seine Probleme mit der Kühlung seines Rechenzentrums hatte, kann ich nur davon abraten, überflüssige Daten einfach in das Netzwerk zu schicken. Die Heinzelmännchen, die die Pakete verteilen und versenden, regen sich darüber ganz furchtbar auf.</para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="advanced"> <title>Weiterführende Themen</title> <qandaset> <qandaentry> <question id="learn-advanced"> <para>Wie kann ich mehr über die Interna von FreeBSD erfahren?</para> </question> <answer> <para>Zurzeit gibt es nur ein Buch über die Interna von FreeBSD, <quote>The Design and Implementation of the FreeBSD Operating System</quote> von Marshall Kirk McKusick und George V. Neville-Neil, ISBN 0-201-70245-2, das sich auf FreeBSD 5.X konzentriert.</para> <para>Allgemeines Wissen über &unix; kann allerdings in den meisten Fällen auf FreeBSD angewendet werden.</para> <para>Eine Liste finden Sie im entsprechenden Abschnitt der <ulink url="&url.books.handbook;/bibliography-osinternals.html"> Bibliographie</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="how-to-contribute"> <para>Wie kann ich bei der Entwicklung von FreeBSD mitarbeiten?</para> </question> <answer> <para>Genauere Informationen finden Sie im Artikel <ulink url="&url.articles.contributing;/article.html">FreeBSD unterstützen</ulink>. Wir können Hilfe immer gut gebrauchen!</para> </answer> </qandaentry> <qandaentry> <question id="define-snap-release"> <para>Was sind SNAPs und RELEASEs?</para> </question> <answer> <para>Derzeit existieren drei aktive/halbaktive Zweige im <ulink url="http://www.de.FreeBSD.org/cgi/cvsweb.cgi"> FreeBSD-CVS-Repository</ulink>. In früheren Zweigen ändert sich wenig, daher gibt es nur drei aktive Entwicklungszweige:</para> <itemizedlist> <listitem> <para><literal>RELENG_5</literal> bzw. <emphasis>5.X-STABLE</emphasis></para> </listitem> <listitem> <para><literal>RELENG_6</literal> bzw. <emphasis>6-STABLE</emphasis></para> </listitem> <listitem> <para><literal>HEAD</literal> bzw. <emphasis>-CURRENT</emphasis> oder <emphasis>7.X-CURRENT</emphasis></para> </listitem> </itemizedlist> <para><literal>HEAD</literal> ist keine wirkliche Bezeichnung für einen Zweig, wie die anderen beiden. Es ist lediglich eine symbolische Konstante für <quote><emphasis>den aktuellen, nicht verzweigten Entwicklungsstrom</emphasis></quote>, auf den wir uns einfach als <quote>-CURRENT</quote> beziehen.</para> <para>Derzeit steht <quote>-CURRENT</quote> für den 7.X-Entwicklungsstrom, der <literal>5-STABLE</literal>-Zweig (<symbol>RELENG_5</symbol>) wurde im Oktober 2004, der <literal>6-STABLE</literal>-Zweig (<symbol>RELENG_6</symbol>) im November 2005 von <quote>-CURRENT</quote> abgespalten.</para> </answer> </qandaentry> <qandaentry> <question id="custrel"> <para>Wie kann ich meine eigene, angepasstes Release erstellen?</para> </question> <answer> <para>Eine Anleitung dazu finden Sie im Artikel <ulink url="&url.articles.releng.en;/article.html"> FreeBSD Release Engineering</ulink>.</para> </answer> </qandaentry> <qandaentry> <question id="makeworld-clobbers"> <para>Wieso überschreibt <command>make world</command> das installierte System?</para> </question> <answer> <para>Das ist beabsichtigt. Wie der Name schon andeutet, erstellt <command>make world</command> alle Systemdateien von Grund auf neu. Sie können also sicher sein, am Ende eine saubere, konsistente Umgebung zu haben (das ist der Grund, warum es so lange dauert).</para> <para>Falls die Umgebungsvariable <literal>DESTDIR</literal> während der Ausführung von <command>make world</command> oder <command>make install</command> definiert ist, werden die neu erstellten Binaries unter <literal>${DESTDIR}</literal> in einem zum installierten identischen Verzeichnisbaum abgelegt. Einige zufällige Kombinationen von Änderungen von Shared Libraries und Neuerstellungen von Programmen können hierbei jedoch ein Scheitern von <command>make world</command> verursachen.</para> </answer> </qandaentry> <qandaentry> <question id="cvsup-round-robin"> <para>Warum ist <hostid>cvsup.FreeBSD.org</hostid> kein Round-Robin-Eintrag im DNS, so dass Anfragen auf alle CVsup-Server verteilt werden?</para> </question> <answer> <para>Die CVsup-Server gleichen sich stündlich mit dem Hauptserver ab. Allerdings findet der Abgleich nicht zur gleichen Zeit statt, daher können einige Server neuere Quellen bereitstellen als andere Server. Alle Server stellen jedoch Quellen bereit, die maximal eine Stunde alt sind. Wäre <hostid role="fqdn">cvsup.FreeBSD.org</hostid> ein Round-Robin-Eintrag im DNS, der Benutzern einen zufälligen Server zuteilt, könnten beim zweiten Lauf von CVsup ältere Quellen als beim ersten Lauf heruntergeladen werden.</para> </answer> </qandaentry> <qandaentry> <question id="bus-speed-defaulted"> <para>Warum meldet mein System <quote>(bus speed defaulted)</quote> beim Start?</para> </question> <answer> <para>Die Adaptec 1542 SCSI Hostadapter erlauben dem Benutzer die Buszugriffsgeschwindigkeit per Software zu konfigurieren. Ältere Versionen des 1542-Treibers versuchten, die schnellstmögliche Geschwindigkeit herauszufinden und konfigurierten den Adapter entsprechend. Wir haben festgestellt, dass dies auf einigen Systemen nicht funktioniert, weshalb Sie nun die Kernelkonfigurationsoption <symbol>TUNE_1542</symbol> definieren müssen, um es zu aktivieren. Die Benutzung auf Systemen, auf denen es funktioniert, könnte Ihre Platten schneller machen, aber auf den Systemen, auf denen es nicht funktioniert, könnten Ihre Daten beschädigt werden.</para> </answer> </qandaentry> <qandaentry> <question id="ctm"> <para>Kann ich -CURRENT mit begrenztem Internetzugang folgen?</para> </question> <answer> <para>Ja, Sie können das tun, <emphasis>ohne</emphasis> den gesamten Quellbaum herunterzuladen, indem Sie die Einrichtung <ulink url="&url.books.handbook;/synching.html#CTM">CTM</ulink> benutzen.</para> </answer> </qandaentry> <qandaentry> <question id="split-240k"> <para>Wie haben Sie die Distribution in 240k-Dateien aufgespalten?</para> </question> <answer> <para>Bei neueren BSD-basierten Systemen gibt es eine Option <option>-b</option> zu &man.split.1;, die das Splitten von Dateien an willkürlichen Bytegrenzen erlaubt.</para> <para>Hier ist ein Beispiel aus <filename>/usr/src/Makefile</filename>.</para> <programlisting> bin-tarball: (cd ${DISTDIR}; \ tar cf - . \ gzip --no-name -9 -c | \ split -b 240640 - \ ${RELEASEDIR}/tarballs/bindist/bin_tgz.) </programlisting> </answer> </qandaentry> <qandaentry> <question id="submitting-kernel-extensions"> <para>Ich habe eine Kernelerweiterung geschrieben. An wen sende ich sie?</para> </question> <answer> <para>Lesen Sie bitte den Artikel <ulink url="&url.articles.contributing;/article.html"> FreeBSD unterstützen</ulink>.</para> <para>Und Danke, dass Sie darüber nachdenken!</para> </answer> </qandaentry> <qandaentry> <question id="pnp-initialize"> <para>Wie werden Plug&Play ISA-Karten erkannt und initialisiert?</para> </question> <answer> <para>Von: Frank Durda IV <email>uhclem@nemesis.lonestar.org</email></para> <para>Kurz gesagt gibt es nur wenige I/O-Ports über die PnP-Karten antworten, wenn der Host fragt, ob jemand da ist. Wenn die PnP-Erkennungsroutine startet, fragt sie, ob irgendwelche PnP-Karten vorhanden sind und alle PnP-Karten antworten mit ihrer Modellnummer auf demselben Port, von dem sie auch gelesen haben. Die Erkennungsroutine erhält also ein geodertes <quote>Ja</quote> auf diese Frage. Mindestens ein Bit wird bei dieser Antwort gesetzt sein. Die Erkennungsroutine ist dann in der Lage, dafür zu sorgen, dass Karten mit Modellnummern (zugeordnet von Microsoft/Intel) kleiner als X <quote>off-line</quote> gesetzt werden. Sie prüft dann, ob immer noch Karten da sind, die auf die Frage antworten. Falls die Antwort <literal>0</literal> war, sind keine Karten mit IDs größer X vorhanden. Nun prüft die Erkennungsroutine, ob Karten unterhalb <literal>X</literal> vorhanden sind. Dann setzt die Erkennungsroutine alle Karten größer als X-(limit/4) off-line und wiederholt die Frage. Wenn diese halbbinäre Suche nach IDs in Folge genügend oft wiederholt worden ist, wird die Erkennungsroutine schließlich alle in einem Rechner befindlichen PnP-Karten identifiziert haben und das mit einer Iterationszahl sehr viel kleiner als 2^64.</para> <para>Die IDs bestehen aus zwei 32-Bit-Feldern (daher 2^64) + acht Bit Prüfsumme. Die ersten 32 Bit sind die Herstellerkennung. Es wurde zwar nicht bestätigt, aber es wird angenommen, dass unterschiedliche Kartentypen desselben Herstellers unterschiedliche 32-Bit Herstellerkennungen besitzen können. 32 Bit nur für eindeutige Hersteller zu benötigen, scheint etwas übertrieben.</para> <para>Die niedrigen 32 Bit sind eine Seriennummer, Ethernetadresse - etwas, das die betreffende Karte einzigartig macht. Die Hersteller dürfen niemals eine zweite Karte mit denselben niedrigen 32 Bit herstellen, es sei denn, die höheren 32 Bit sind unterschiedlich. Sie können also mehrere Karten des selben Typs im Rechner haben und die gesamten 64 Bit bleiben stets eindeutig.</para> <para>Die 32-Bit-Gruppen können niemals nur aus Nullen bestehen. Das erlaubt es, bei der binären Suche zu Beginn nur auf von Null verschiedene Bits zu achten.</para> <para>Wenn das System alle vorhandenen Karten-IDs identifiziert hat, reaktiviert es jede Karte - eine nach der anderen (über dieselben I/O-Ports) und ermittelt, welche Ressourcen von der jeweiligen Karte benötigt werden, welche Wahlmöglichkeiten für Interrupts bestehen usw. Alle Karten werden abgefragt, um diese Informationen zusammenzustellen.</para> <para>Diese Informationen werden dann mit Informationen aus allen ECU-Dateien auf der Festplatte oder mit im MLB-BIOS verdrahteten Informationen verknüpft. Die ECU- und BIOS-PnP-Unterstützung für Hardware auf dem MLB ist für gewöhnlich künstlich und was die Peripheriegeräte tun ist nicht wirklich echtes PnP. Durch die Untersuchung der BIOS-Informationen und der ECU-Informationen können die Erkennungsroutinen jedoch die von PnP-Geräten benutzten Ressourcen so ändern, dass vermieden wird, dass bereits von anderen Geräten benutzte Ressourcen verwendet werden.</para> <para>Dann werden die PnP-Geräte nochmals besucht und ihre I/O, DMA, IRQ und Memory-Map-Adressen werden zugeordnet. Die Geräte werden an diesen Stellen sichtbar werden und dort bis zum nächsten Reboot verbleiben. Allerdings hindert Sie auch nichts daran, sie zu verschieben, wohin Sie wollen.</para> <para>Im obigen Teil wurde sehr viel vereinfacht, aber die grundlegende Idee sollte klar geworden sein.</para> <para>Microsoft hat einige der primären Druckerstatusports für PnP übernommen, da keine Karte diese Adressen für die entgegengesetzten I/O-Zyklen decodiert. Ich habe während der frühen Überprüfungsperiode des PnP-Vorschlags eine echte IBM Druckerkarte gefunden, die Schreibzugriffe auf dem Statusport decodiert hat, aber MS hat nur <quote>tough</quote> gesagt. Also schreiben sie auf den Druckerstatusport, um Adressen zu setzen, benutzen zusätzlich diese Adresse + <literal>0x800</literal> und einen dritten I/O-Port zum Lesen, der irgendwo zwischen <literal>0x200</literal> und <literal>0x3ff</literal> liegen kann.</para> </answer> </qandaentry> <qandaentry> <question id="major-numbers"> <para>Wie bekomme ich eine Major-Number für einen Gerätetreiber, den ich geschrieben habe?</para> </question> <answer> <para>&os.current; stellt seit Februar 2003 Major-Numbers für Geräte zur Laufzeit automatisch bereit. Nach Möglichkeit sollte diese neue Funktion benutzt werden, anstatt eine Major-Number statisch festzulegen. Weitere Hinweise finden Sie in <filename>src/sys/conf/majors</filename>.</para> <para>Wenn Sie eine statisch festgelegte Major-Number benötigen, hängt das weitere Verfahren davon ab, ob Sie den Treiber frei verfügbar machen wollen. Falls dem so ist, senden Sie uns bitte eine Kopie der Treiber-Sourcen und zusätzlich die entsprechenden Änderungen der Datei <filename>files.i386</filename>, ein Beispiel für einen Eintrag in der Konfigurationsdatei und den entsprechenden Code für &man.MAKEDEV.8;, der die Gerätedateien für Ihr Gerät erzeugt. Falls Sie nicht beabsichtigen, den Treiber frei verfügbar zu machen, oder es aufgrund von Lizenzbeschränkungen nicht können, dann ist die Major-Number 32 für zeichenorientierte und die Major-Number 8 für blockorientierte Geräte speziell für diesen Zweck reserviert. In jedem Fall würden wir uns freuen, auf der Mailingliste &a.hackers; etwas über Ihren neuen Treiber zu hören.</para> </answer> </qandaentry> <qandaentry> <question id="alternate-directory-layout"> <para>Gibt es alternative Layoutverfahren für Verzeichnisse?</para> </question> <answer> <para>Als Antwort auf die Frage nach alternativen Layoutverfahren für Verzeichnisse ist das Schema, das derzeit benutzt wird, unverändert von dem, das ich 1983 geschrieben habe. Ich habe das Vorgehen für das originale Fast-Filesystem geschrieben und es niemals überarbeitet. Es funktioniert gut, wenn es darum geht, zu verhindern, dass Zylindergruppen volllaufen. Wie viele von Ihnen angemerkt haben, funktioniert es schlecht für find. Die meisten Dateisysteme werden von Archiven erstellt, die mit einer Tiefensuche (also ftw) erstellt wurden. Diese Verzeichnisse werden über die Zylindergruppen hinweg entfaltet und erzeugen denkbar ungünstigste Voraussetzungen für zukünftige Tiefensuchen. Falls man die Gesamtzahl der zu erstellenden Verzeichnisse wüsste, wäre die Lösung die, (gesamt / fs_ncg) pro Zylindergruppe zu erstellen, bevor fortgefahren wird. Offensichtlich müsste man eine Heuristik erstellen, um die Zahl zu schätzen. Sogar die Benutzung einer kleinen, fixen Zahl, z.B. 10, würde eine Verbesserung um Größenordnungen ausmachen. Um Wiederherstellungen von normalem Betrieb (wo der derzeitige Algorithmus vermutlich sinnvoller ist) zu unterscheiden, könnten Sie die Clusterung von bis zu 10 benutzen, wenn sie alle innerhalb eines 10-Sekunden-Fensters durchgeführt würden. Jedenfalls ist mein Schluss, dass dies ein fruchtbares Gebiet für Experimente ist.</para> <para>Kirk McKusick, September 1998</para> </answer> </qandaentry> <qandaentry> <question id="kernel-panic-troubleshooting"> <para>Wie kann ich optimalen Nutzen aus einer kernel panic ziehen?</para> </question> <answer> <para><emphasis>[Dieser Abschnitt wurde von &a.des;, der einige Tippfehler korrigiert und die Kommentare in eckigen Klammern hinzugefügt hat, aus einer Mail von &a.wpaul; in der <link linkend="mailing">Mailingliste</link> freebsd-current entnommen.]</emphasis></para> <programlisting> From: Bill Paul <wpaul@skynet.ctr.columbia.edu> Subject: Re: the fs fun never stops To: Ben Rosengart Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT) Cc: current@FreeBSD.org </programlisting> <para><emphasis>[<Ben Rosengart> sendete die folgende Panik-Meldung]</emphasis></para> <programlisting> > Fatal trap 12: page fault while in kernel mode > fault virtual address = 0x40 > fault code = supervisor read, page not present > instruction pointer = 0x8:0xf014a7e5 ^^^^^^^^^^ > stack pointer = 0x10:0xf4ed6f24 > frame pointer = 0x10:0xf4ed6f28 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, def32 1, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 80 (mount) > interrupt mask = > trap number = 12 > panic: page fault </programlisting> <para>[Wenn] Sie eine Meldung wie diese sehen, reicht es nicht, sie einfach zu reproduzieren und sie einzusenden. Der Wert des Instruktionszeigers, den ich oben hervorgehoben habe, ist wichtig; leider ist er auch konfigurationsabhängig. Mit anderen Worten variieren die Werte abhängig von dem Kernel-Image, das Sie tatsächlich benutzen. Wenn Sie ein GENERIC Kernelimage von einem der Snapshots benutzen, dann ist es für jemand anderen möglich, die fehlerhafte Instruktion herauszufinden, aber wenn Sie einen angepassten Kernel benutzen, können nur <emphasis>Sie</emphasis> uns sagen, wo der Fehler auftrat.</para> <para>Was Sie tun sollten, ist folgendes:</para> <procedure> <step> <para>Notieren Sie sich den Wert des Instruktionszeigers. Beachten Sie, dass der Teil <literal>0x8:</literal> am Anfang in diesem Fall nicht von Bedeutung ist; der Teil <literal>0xf0xxxxxx</literal> ist der, den wir wollen.</para> </step> <step> <para>Tun Sie folgendes, wenn das System rebootet:</para> <screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxxx</userinput></screen> <para>wobei <literal>0xf0xxxxxx</literal> der Wert des Instruktionszeigers ist. Es besteht die Möglichkeit, dass Sie keinen exakten Treffer erzielen, weil die Symbole in der Symboltabelle des Kernels Funktionseinstiegspunkte sind und die Adresse des Instruktionszeiger irgendwo innerhalb einer Funktion liegen wird und nicht am Anfang. Falls sie keinen exakten Treffer erzielen, lassen Sie den letzten Teil des Werts des Instruktionszeigers weg und versuchen es nocheinmal, z.B.:</para> <screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxx</userinput></screen> <para>Falls das kein Ergebnis liefert, hacken Sie eine weitere Ziffer ab. Wiederholen Sie die Schritte, bis Sie irgendeine Ausgabe erhalten. Das Ergebnis wird eine Liste möglicher Funktionen sein, die die Panik verursacht haben. Das ist zwar kein absolut genauer Mechanismus, um die Fehlerursache ausfindig zu machen, aber es ist besser als gar nichts.</para> </step> </procedure> <para>Ich sehe ständig Leute, die Panik-Meldungen wie diese zeigen, aber ich sehe kaum jemanden, der sich die Zeit nimmt, den Instruktionszeiger einer Funktion aus der Symboltabelle des Kernel zuzuordnen.</para> <para>Der beste Weg, den Grund für eine Panik herauszufinden, ist der, einen Crash-Dump festzuhalten und dann &man.gdb.1; zu benutzen, um den Stack im Crash-Dump zurückzuverfolgen.</para> <para>Jedenfalls ist die Methode, die ich normalerweise benutze, folgende:</para> <procedure> <step> <para>Richten Sie eine Kernelkonfigurationsdatei ein, fügen Sie optional <literal>options DDB</literal> hinzu, falls Sie glauben, dass Sie den Kerneldebugger benötigen. (Ich benutze ihn hauptsächlich zum Setzen von Haltepunkten, wenn ich eine Endlosschleife irgendeiner Art vermute.)</para> </step> <step> <para>Benutzen Sie <command>config -g <replaceable>KERNELCONFIG</replaceable></command>, um das Erstellungsverzeichnis einzurichten.</para> </step> <step> <para><command>cd /sys/compile/<replaceable>KERNELCONFIG</replaceable>; make</command></para> </step> <step> <para>Warten Sie, bis der Kernel fertig kompiliert ist.</para> </step> <step> <para><command>make install</command></para> </step> <step> <para>reboot</para> </step> </procedure> <para>Der &man.make.1;-Prozess wird zwei Kernel erstellt haben: <filename>kernel</filename> und <filename>kernel.debug</filename>. <filename>kernel</filename> wurde als <filename>/kernel</filename> installiert, während <filename>kernel.debug</filename> als Quelle für Debuggersymbole für &man.gdb.1; benutzt werden kann.</para> <para>Um sicherzustellen, dass ein Crash-Dump erhalten bleibt, müssen Sie <filename>/etc/rc.config</filename> editieren und <literal>dumpdev</literal> so setzen, dass es auf Ihre Swap-Partition zeigt. Das bewirkt, dass die &man.rc.8;-Skripte den Befehl &man.dumpon.8; benutzen, um Crash-Dumps zu ermöglichen. Sie können &man.dumpon.8; auch manuell ausführen. Nach einer Panik kann der Crash-Dump mit &man.savecore.8; wiederhergestellt werden; wenn <literal>dumpdev</literal> in <filename>/etc/rc.conf</filename> gesetzt ist, werden die &man.rc.8;-Skripte &man.savecore.8; automatisch ausführen und den Crash-Dump unter <filename>/var/crash</filename> ablegen.</para> <note> <para>Crash-Dumps von FreeBSD sind für gewöhnlich genauso groß wie der physikalische Hauptspeicher Ihres Rechners. Das heißt, wenn Sie 64MB RAM haben, werden sie einen 64MB Crash-Dump erhalten. Deshalb müssen Sie dafür sorgen, dass genügend Speicherplatz in <filename>/var/crash</filename> zur Verfügung steht, um den Dump aufnehmen zu können. Alternativ führen Sie &man.savecore.8; manuell aus und lassen es den Crash-Dump in einem anderen Verzeichnis wiederherstellen, in dem Sie mehr Platz haben. Es ist möglich, die Größe des Crash-Dumps zu begrenzen, indem <literal>options MAXMEM=(foo)</literal> benutzt wird, um den Speicher, den der Kernel benutzt, auf einen etwas vernünftigeren Wert zu setzen. Wenn Sie z.B. 128MB RAM haben, können Sie die Speicherbenutzung des Kernels auf 16MB begrenzen, so dass die Größe Ihres Crash-Dumps 16MB anstatt 128MB beträgen wird.</para> </note> <para>Wenn Sie den Crash-Dump wiederhergestellt haben, können Sie den Stack mit &man.gdb.1; so zurückverfolgen:</para> <screen>&prompt.user; <userinput>gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0</userinput> <prompt>(gdb)</prompt> <userinput>where</userinput></screen> <para>Beachten Sie, dass es mehrere Seiten mit wertvollen Informationen geben könnte; idealerweise sollten Sie &man.script.1; benutzen, um sie alle festzuhalten. Wenn Sie das vollständige Kernelimage mit allen Debugginginformationen benutzen, müssten Sie exakt die Zeile des Kernel-Sourcecodes finden, wo die Panik aufgetreten ist. Für gewöhnlich müssen Sie den Stack von unten an zurückverfolgen, um die genaue Ereignisabfolge, die zum Crash führte, zurückzuverfolgen. Sie können &man.gdb.1; auch zum Ausdrucken der Inhalte verschiedener Variablen oder Strukturen benutzen, um den Systemstatus zum Zeitpunkt des Absturzes zu untersuchen.</para> <para>Wenn Sie nun wirklich verrückt sind und einen zweiten Computer haben, können Sie &man.gdb.1; auch für entferntes Debugging konfigurieren, so dass Sie &man.gdb.1; auf einem System benutzen können, um den Kernel auf einem anderen System zu debuggen, einschließlich dem Setzen von Haltepunkten und dem Bewegen in Einzelschritten durch den Kernelcode, genauso, wie Sie es mit einem normalen Benutzerprogramm tun können. Ich habe noch nicht damit gespielt weil ich nicht oft Gelegenheit habe, zwei Rechner nebeneinander für Debuggingzwecke einzurichten.</para> <para><emphasis>[Bill hat hinzugefügt: "Ich vergaß, etwas zu erwähnen: wenn Sie DDB aktiviert haben und der Kernel im Debugger landet, können Sie eine Panik (und einen Crash-Dump) erzwingen, indem Sie einfach 'panic' am ddb-Prompt eingeben. Er könnte während der Panikphase wieder im Debugger stoppen. Falls er das tut, geben Sie 'continue' ein, dann wird er den Crash-Dump beenden." -ed]</emphasis></para> </answer> </qandaentry> <qandaentry> <question id="dlsym-failure"> <para>Wieso funktioniert dlsym() nicht mehr für ELF-Executables?</para> </question> <answer> <para>Die ELF-Werkzeuge machen die in einem Executable definierten Symbole dem dynamischen Linker nicht standardmäßig sichtbar. Konsequenterweise werden <function>dlsym()</function>-Suchen nach Handlern aus Aufrufen von <function>dlopen(NULL, flags)</function> diese Symbole nicht finden können.</para> <para>Wenn Sie mit <function>dlsym()</function> nach im Hauptexecutable eines Prozesses vorhandenen Symbolen suchen wollen, müssen Sie das Executable mit der Option <option>-export-dynamic</option> von &man.ld.1; linken.</para> </answer> </qandaentry> <qandaentry> <question id="change-kernel-address-space"> <para>Wie kann ich den Adressraum des Kernels vergrössern oder verkleinern?</para> </question> <answer> <para>Standardmäßig beträgt der Adressraum des Kernels 256MB (FreeBSD 3.X) bzw. 1 GB (FreeBSD 4.X). Wenn Sie einen netzwerkintensiven Server (z.B. einen großen FTP- oder HTTP-Server) betreiben, kann es sein, dass Sie der Meinung sind, dass 256MB nicht ausreichen.</para> <para>Wie also erhöhen Sie den Adressraum? Hier gibt es zwei Aspekte. Erstens müssen Sie dem Kernel sagen, dass er einen größeren Anteil des Adressraums für sich selbst reservieren soll. Da der Kernel am oberen Ende des Adressraums geladen wird, müssen Sie zweitens die Ladeadresse verringern, damit er mit dem Kopf nicht gegen die Obergrenze stößt.</para> <para>Das erste Ziel erreicht man, indem man den Wert von <literal>NKPDE</literal> in <filename>src/sys/i386/include/pmap.h</filename> erhöht. Für einen Adressraum von 1 GB sieht das so aus:</para> <programlisting> #ifndef NKPDE #ifdef SMP #define NKPDE 254 /* addressable number of page tables/pde's */ #else #define NKPDE 255 /* addressable number of page tables/pde's */ #endif /* SMP */ #endif </programlisting> <para>Dividieren Sie die gewünschte Adressraumgröße (in Megabyte) durch vier und subtrahieren Sie dann eins für UP und zwei für SMP, um den korrekten Wert für <literal>NKPDE</literal> zu finden.</para> <para>Um das zweite Ziel zu erreichen müssen Sie die korrekte Ladeadresse berechnen: subtrahieren Sie einfach die Größe des Adressraums (in Byte) von 0x100100000; für einen Adressraum von 1 GB lautet das Ergebnis 0xc0100000. Setzen Sie <symbol>LOAD_ADDRESS</symbol> in <filename>src/sys/i386/conf/Makefile.i386</filename> auf diesen Wert; setzen Sie dann den Location-Counter am Anfang der Abschnittsliste in <filename>src/sys/i386/conf/kernel.script</filename> auf denselben Wert:</para> <programlisting> OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(btext) SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0xc0100000 + SIZEOF_HEADERS; .interp : { *(.interp) } </programlisting> <para>Konfigurieren und erstellen Sie Ihren Kernel dann neu. Sie werden vermutlich Probleme mit &man.ps.1;, &man.top.1; und ähnlichen Programmen haben. Ein <command>make world</command> sollte diese beheben; alternativ können Sie die gepatchte <filename>pmap.h</filename> in das Verzeichnis <filename>/usr/include/vm</filename> kopieren und danach <filename>libkvm</filename>, &man.ps.1; und &man.top.1; neu erzeugen.</para> <para>Hinweis: die Größe des Kernel-Adressraums muss ein Vielfaches von vier Megabyte betragen.</para> <para>[&a.dg; fügt hinzu: <emphasis>Ich glaube, der Kerneladressraum muss eine Zweierpotenz sein, aber ich bin mir dessen nicht sicher. Der alte (ältere) Bootcode pflegte die oberen Adressbits zu mißbrauchen und ich glaube, er erwartete mindestens 256MB Granularität.]</emphasis></para> </answer> </qandaentry> </qandaset> </chapter> <chapter id="acknowledgments"> <title>Danksagung</title> <para>Dieses kleine unschuldige Dokument mit Häufig gestellten Fragen wurde in den letzten 10 Jahren von Hunderten, wenn nicht Tausenden, geschrieben, neu geschrieben, überarbeitet, gefaltet, verdreht, durcheinander gebracht, wieder aufgebaut, verstümmelt, seziert, durchgekaut, überdacht, und wiederbelebt. Und das nicht nur einmal.</para> <para>Wir möchten allen dafür Verantwortlichen danken und wir fordern auch Sie auf, dieser Gruppe <ulink url="&url.articles.contributing;/article.html">beizutreten</ulink>, um diese FAQ noch besser zu machen.</para> <para>Folgende Personen haben durch die Beantwortung von Fragen, sowie durch Hinweise und Kommentare an der Entstehung der deutschen Übersetzung mitgewirkt:</para> <itemizedlist> <listitem> <para>Ross Alexander</para> </listitem> <listitem> <para>&a.jhb;</para> </listitem> <listitem> <para>&a.nik;</para> </listitem> <listitem> <para>Glen Foster</para> </listitem> <listitem> <para>Oliver Fromme</para> </listitem> <listitem> <para>Frank Gruender</para> </listitem> <listitem> <para>Chris Hill</para> </listitem> <listitem> <para>James Howard</para> </listitem> <listitem> <para>&a.jkh;</para> </listitem> <listitem> <para>&a.alex;</para> </listitem> <listitem> <para>&a.jmas;</para> </listitem> <listitem> <para>Mike Meyer</para> </listitem> <listitem> <para>Dan O'Connor</para> </listitem> <listitem> <para>Eric Ogren</para> </listitem> <listitem> <para>&a.de.pierau;</para> </listitem> <listitem> <para>Oliver Schneider</para> </listitem> <listitem> <para>Christoph Sold</para> </listitem> </itemizedlist> <para>Und an alle anderen, an die wir nicht gedacht haben. Entschuldigung und herzlichen Dank!</para> </chapter> &bibliography; </book>