diff --git a/de_DE.ISO8859-1/books/faq/book.sgml b/de_DE.ISO8859-1/books/faq/book.sgml index 8ca0f86883..5dade40671 100644 --- a/de_DE.ISO8859-1/books/faq/book.sgml +++ b/de_DE.ISO8859-1/books/faq/book.sgml @@ -1,14777 +1,14567 @@ + + %man; %freebsd; %teams; %authors; + +%teams; %translators; %bookinfo; %mailing-lists; + ]> - - Häufig gestellte Fragen zu FreeBSD 2.X, 3.X und 4.X Frequently Asked Questions für FreeBSD 2.X, 3.X und 4.X The FreeBSD German Documentation Project Deutsche Übersetzung von Robert S. F. Drehmel, Dirk Gouders und Udo Erdelhoff - $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.190 2001/10/06 19:03:19 ue Exp $ + $FreeBSDde: de-docproj/books/faq/book.sgml,v 1.296 2002/03/05 14:19:22 mheinen Exp $ 1995 1996 1997 1998 1999 2000 2001 + 2002 + The FreeBSD Documentation Project 2000 2001 + 2002 + The FreeBSD German Documentation Project &bookinfo.legalnotice; Dies ist die FAQ für die FreeBSD-Versionen 2.X, 3.X und 4.X. Alle Einträge sollten für FreeBSD ab Version 2.0.5 relevant sein, andernfalls wird darauf explizit hingewiesen. Alle mit <XXX> gekennzeichneten Einträge befinden sich in Arbeit. Falls Sie daran interessiert sein sollten, an diesem Projekt mitzuhelfen, senden Sie eine Mail an &a.de.translators;. Die aktuelle Version dieses Dokuments ist ständig auf dem FreeBSD World-Wide-Web-Server verfügbar. Es kann auch per HTTP als eine große HTML-Datei heruntergeladen werden oder als Textdatei, im PostScript-, PDF- und anderen Formaten vom FreeBSD FTP-Server. Sie können die FAQ auch durchsuchen. Einleitung Willkommen zur FreeBSD 2.X-4.X FAQ! Wie auch bei den Usenet FAQs üblich, wird mit diesem Dokument beabsichtigt, die am häufigsten gestellten Fragen bezüglich des Betriebssystems FreeBSD zu erfassen und sie natürlich auch zu beantworten. Obwohl FAQs ursprünglich lediglich dazu dienen sollten, die Netzbelastung zu reduzieren und das ständige Wiederholen derselben Fragen zu vermeiden, haben sie sich als wertvolle Informationsquellen etabliert. Wir haben uns die größte Mühe gegeben, diese FAQ so lehrreich wie möglich zu gestalten; falls Sie irgendwelche Vorschläge haben, wie sie verbessert werden kann, senden Sie diese bitte an den &a.faq;. Was ist FreeBSD? FreeBSD ist, kurz gesagt, ein UN*X-ähnliches Betriebssystem für die Plattformen i386 und Alpha/AXP, das auf der 4.4BSD-Lite-Release der University of California at Berkeley (UCB) basiert; außerdem flossen einige Erweiterungen aus der 4.4BSD-Lite2-Release mit ein. Es basiert außerdem indirekt auf der von William Jolitz unter dem Namen 386BSD herausgebrachten Portierung der Net/2-Release der UCB auf die i386-Plattform - allerdings ist nur wenig vom 386BSD-Code übriggeblieben. Eine umfassendere Beschreibung darüber, was FreeBSD ist und wie Sie es für Ihre Zwecke verwenden können, finden Sie auf der FreeBSD home page. Unternehmen, Internet Service Provider, Forscher, Computerfachleute, Studenten und Privatnutzer auf der ganzen Welt nutzen FreeBSD für die Arbeit, die Ausbildung oder zur Freizeitgestaltung. Sie finden einige von ihnen in der FreeBSD Gallerie. Ausführlichere Informationen zu FreeBSD, finden Sie im FreeBSD Handbuch. - Welches sind die Ziele von FreeBSD? + Welches ist das Ziel des Projektes FreeBSD? - Die Ziele von FreeBSD sind es, Software zur Nutzung + Die Ziel von FreeBSD ist es, Software zur Nutzung für beliebige Zwecke, bedingungslos zur Verfügung zu stellen. Viele von uns haben entscheidend zur Erstellung des Codes (und zum Projekt) beigetragen und hätten jetzt oder in Zukunft sicherlich nichts gegen einen geringen finanziellen Ausgleich einzuwenden, aber wir beabsichtigen definitiv nicht, darauf zu bestehen. Wir sind der Meinung, daß unsere Mission zuerst und vorderst darin besteht, allen und jedem Kommenden Code für welchen Zweck auch immer zur Verfügung zu stellen, damit der Code möglichst weit eingesetzt wird und den größtmöglichen Nutzen liefert. Das ist, so glauben wir, eines der fundamentalsten Ziele von freier Software und eines, das wir enthusiastisch unterstützen. Der Code in unserem Quellbaum, der der GNU General Public License (GPL) oder der GNU Library General Public License (LGPL) unterliegt, ist mit zusätzlichen, geringfügigen Bedingungen verknüpft, jedoch handelt es sich dabei lediglich um erzwungene Bereitstellung statt des sonst üblichen Gegenteils. Auf Grund der zusätzlichen Komplexität, die durch den kommerziellen Einsatz von GPL Software entstehen kann, bemühen wir uns jedoch, solche Software, wo möglich, durch solche, die dem etwas lockereren FreeBSD Copyright unterliegt, zu ersetzen. + + + Beinhaltet das FreeBSD-Copyright irgendwelche + Einschränkungen? + + + + Ja. Diese Einschränkungen regeln aber nicht, wie + Sie mit dem Sourcecode umgehen, sondern betreffen nur den + Umgang mit dem FreeBSD Project an sich. Wenn Sie sich + ernsthaft damit auseinandersetzen wollen, lesen Sie + einfach das + FreeBSD-Copyright. Wenn Sie einfach nur neugierig + sind, sollte diese Zusammenfassung ausreichen: + + + + Behaupten Sie nicht, Sie hätten es + geschrieben. + + + + Verklagen Sie uns nicht, wenn irgend etwas nicht + funktioniert. + + + + + + + + Kann FreeBSD mein bisher verwendetes Betriebssystem + ersetzen? + + + + In den meisten Fällen lautet die Antwort ja. + Allerdings ist diese Frage nicht ganz so einfach, wie sie + scheint. + + Die meisten Anwender benutzen kein Betriebssystem, + sondern Anwendungen. Die Anwendungen sind es, die das + Betriebssystem benutzen. FreeBSD ist dazu gedacht, eine + stabile und vielfältige Umgebung für Anwendungen + bereitzustellen. Es untersützt viele + unterschiedliche Web-Browser, Büroanwendungen, + EMail-Programme, Grafik-Programme, Entwicklungsumgebungen, + Netwerk-Server, und so ziemlich alles andere, was Sie sich + wünschen können. Die meisten dieser Anwendungen + sind in der Ports + Kollektion verfügbar. + + Wenn Sie Anwendung benutzen müssen, die es nur + für ein bestimmtes Betriebssystem gibt, dann kommen + Sie an diesem Betriebssystem nicht vorbei. Allerdings + stehen die Chancen nicht schlecht, daß es eine + vergleichbare Anwendung für FreeBSD gibt. Wenn Sie + einen verläßlichen Server für ihr + Büro oder das Internet brauchen, oder eine stabilen + Arbeitsplatz, oder einfach nur die Fähigkeit, ihre + Arbeit ohne dauernde Abstürze machen zu können, + dann kann FreeBSD genau das sein. Viele Anwender auf der + ganzen Welt, vom Anfänger bis zum erfahrenen + Administrator, benutzen an Ihren Arbeitsplätzen + ausschließlich FreeBSD. + + Wenn Sie von einem anderen Unix-System zu FreeBSD + wechseln, dürfte Ihnen vieles bekannt vorkommen. + Wenn Ihr Hintergrund ein Grafik-orientiertes + Betriebssystem wie Windows oder ein älteres Mac OS + ist, werden Sie zusätzliche Zeit investieren + müssen, um den Unix-Stil zu verstehen. Dieser FAQ + und das FreeBSD + Handbuch sind die besten Startpunkte. + + + Warum heißt es FreeBSD? Es darf kostenlos genutzt werden - sogar von kommerziellen Benutzern. Der komplette Quellcode für das Betriebssystem ist frei verfügbar und die Benutzung, Verbreitung und Einbindung in andere (kommerzielle und nicht-kommerzielle) Arbeiten sind mit den geringstmöglichen Einschränkungen versehen worden. Jedem ist es freigestellt, Code für Verbesserungen und/oder die Behebung von Fehlern einzusenden und ihn zum Quellbaum hinzufügen zu lassen (dies ist natürlich Gegenstand von ein oder zwei offensichtlichen Klauseln). Es wird darauf hingewiesen, daß das englische Wort free hier in den Bedeutungen umsonst und Sie können tun, was immer Sie möchten genutzt wird. Abgesehen von ein oder zwei Dingen, die Sie mit dem FreeBSD-Code nicht tun können (z.B. vorgeben, ihn geschrieben zu haben), können Sie damit tatsächlich tun, was auch immer Sie möchten. Welches ist die aktuelle FreeBSD-Version? Version &rel.current; - ist die aktuelle, STABLE Version; sie + ist die aktuelle, RELEASE Version; sie ist im &rel.current.date; erschienen. Gleichzeitig ist sie auch die aktuelle - RELEASE-Version. + STABLE-Version. Kurz erläutert, -STABLE ist für ISPs und andere Benutzer gedacht, die mehr Wert auf Stabilität und eine niedrige Änderungsfrequenz als auf die neuesten Features im aktuellen -CURRENT Snapshot legen. Releases können aus jedem Zweig entstehen, Sie sollten -CURRENT allerdings nur dann benutzen, wenn Sie auf ein erhöhtes Fehlverhalten im Vergleich zu -STABLE auch vorbereitet sind. Releases entstehen nur alle paar Monate. Viele Leute halten ihre Systeme aktueller (lesen Sie die Fragen zu FreeBSD-CURRENT und FreeBSD-STABLE), aber das erfordert ein erhöhtes Engagement, da die Sourcen sich ständig verändern. Was ist FreeBSD-CURRENT? FreeBSD-CURRENT ist die Entwicklungsversion des Betriebssystems, die zu gegebener Zeit zu 5.0-RELEASE werden wird. Als solche ist sie lediglich für Entwickler, die am System mitarbeiten und für unentwegte Bastler von Interesse. Details zum Betrieb von -CURRENT finden Sie im entsprechenden Abschnitt des Handbuchs. Falls Sie nicht mit dem Betriebssystem vertraut sind oder nicht in der Lage sein sollten, den Unterschied zwischen einen echten und einem temporären Problem zu erkennen, sollten Sie FreeBSD-CURRENT nicht verwenden. Dieser Zweig entwickelt sich manchmal sehr schnell weiter und kann gelegentlich für mehrere Tage hintereinander nicht installierbar sein. Von Personen, die FreeBSD-CURRENT verwenden, wird erwartet, daß Sie dazu in der Lage sind, Probleme zu analysieren und nur dann von ihnen berichten, wenn es sich um Fehler und nicht um kurzzeitige Störungen handelt. Fragen wie make world produziert Fehlermeldungen bezüglich Gruppen werden in der -CURRENT Mailingliste manchmal nicht beachtet. Jeden Tag wird der aktuelle Entwicklungsstand in den Zweigen -CURRENT und -STABLE in einer Snapshot Releases festgehalten. Mittlerweile werden sogar CDROM Distributionen dieser gelegentlichen Snapshots zur Verfügung gestellt. Die Ziele dieser Snapshot Releases sind: Die aktuelle Version der Installationssoftware zu testen. Personen, die -CURRENT oder -STABLE benutzen möchten, aber nicht über die nötige Zeit und/oder Bandbreite verfügen, um tagesaktuell zu bleiben, soll eine bequeme Möglichkeit geboten werden, es auf ihr System zu bringen. Die Erhaltung von Referenzpunkten des fraglichen Codes, für den Fall, daß wir später einmal ernsthaften Schaden anrichten sollten (obwohl CVS verhindern sollte, daß solche Situationen entstehen :) Sicherzustellen, daß zu testende, neue Merkmale an eine möglichst großen Zahl potentieller Tester gelangen. Von keinem -CURRENT Snapshot kann Produktionsqualität für beliebige Zwecke erwartet werden. Wenn Sie eine stabile und ausgetestete Version benötigen, sollten Sie eine vollständige Release oder einen -STABLE Snapshot verwenden. Snapshot Releases von 5.0-CURRENT sind unter ftp://current.FreeBSD.org/pub/FreeBSD/ verfügbar; wenn Sie einen Snapshot von 4-STABLE erhalten möchten, lautet die Adresse releng4.FreeBSD.org. Zur Zeit (Mai 2000) werden keine Snapshots von 3-STABLE erstellt. In der Regel wird jeden Tag ein Snapshot jedes zur Zeit aktiven Zweiges erstellt. Was ist das Konzept von FreeBSD-STABLE? Zur Zeit, als FreeBSD 2.0.5 herausgegeben wurde, haben wir entschieden, die Entwicklung von FreeBSD zweizuteilen. Ein Zweig wurde -STABLE genannt. In - diesem Zweige werden nur ausgetestete Fehlerbehebungen und - kleine, inkrementelle Änderungen aufgenommen. Dieser - Zweig ist für Anbieter von Internetdiensten und - andere kommerzielle Unternehmen gedacht, für die - plötzliche Veränderungen und experimentelle - Features unerwünscht sind. Der andere Zweig war - -STABLE + genannt. In diesem Zweige werden nur ausgetestete + Fehlerbehebungen und kleine, inkrementelle Änderungen + aufgenommen. Dieser Zweig ist für Anbieter von + Internetdiensten und andere kommerzielle Unternehmen + gedacht, für die plötzliche Veränderungen + und experimentelle Features unerwünscht sind. Der + andere Zweig war -CURRENT. Im wesentlichen stellt eine ununterbrochene Linie zum 4.0-RELEASE (und darüber hinaus) dar, seit 2.0 herausgegeben worden ist. Die folgende ASCII-Zeichnung soll verdeutlichen, wie das aussieht: 2.0 | | | [2.1-STABLE] *ZWEIG* 2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1 [2.1-STABLE endet] | (März 1997) | | | [2.2-STABLE] *ZWEIG* 2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [Ende] | (März 1997) (Okt 97) (Apr 98) (Jul 98) (Dez 98) | | 3.0-SNAPs (begonnen im 1. Quartal 1997) | | 3.0-RELEASE (Okt 1998) | | [3.0-STABLE] *ZWEIG* 3.1-RELEASE (Feb 1999) -> 3.2 -> 3.3 -> 3.4 -> 3.5 -> 3.5.1 | (Mai 1999) (Sep 1999) (Dec 1999) (Jun 2000) (Juli 2000) | | [4.0-STABLE] *ZWEIG* 4.0 (März 2000) -> 4.1 -> 4.1.1 -> 4.2 -> 4.3 -> 4.4 -> ... zukünftige 4.x Releases ... | (Jul 2000) (Sep 2000) (Nov 2000) (Apr 2001) | | \|/ + [5.0-CURRENT wird fortgesetzt] Der Zweig 2.2-STABLE wurde mit der - Vero¨ffentlichung der Version 2.2.8 eingestellt. Der + Veröffentlichung der Version 2.2.8 eingestellt. Der Zweig 3-STABLE endete mit Version 3.5.1, der letzten 3.X-Version. Änderungen in diesen Zweigen beschränken sich im allgemeinen auf die Korrektur von Sicherheits-relevanten Fehlern. 4-STABLE ist der Zweig, auf den sich die Entwicklung von -STABLE zur Zeit konzentriert. Die aktuelle Version ist das im &rel.current.date; erschienene &rel.current;-RELEASE. Der -CURRENT-Zweig entwickelt sich langsam in Richtung 5.0 und darüber hinaus weiter. Weitere Informationen über diesen Zweig finden Sie bei Was ist FreeBSD-CURRENT?. Wann werden FreeBSD-Versionen erstellt? Prinzipiell gibt das FreeBSD Core Team nur dann neue FreeBSD-Versionen heraus, wenn es der Meinung ist, daß genügend neue Bestandteile und/oder Fehlerkorrekturen vorliegen, die dies rechtfertigen. Außerdem muß es davon überzeugt sind, - daß die durchgeführten Änderungen derart - ins System integriert sind, daß eine - Beeinträchtigung der Stabilität der Version - ausgeschlossen ist. Viele Benutzer halten dies für - einen großen Vorteil von FreeBSD, obwohl es manchmal + daß die Neuerungen so weit ausgetestet sind, + daß eine Beeinträchtigung der Stabilität + der Version ausgeschlossen ist. 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. 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... + warten. Neue Versionen werden durchschnittlich alle vier Monate erstellt. Für diejenigen, die ein wenig mehr Spannung brauchen (oder möchten), werden täglich - Snapshots herausgegeben... siehe oben. + Snapshots herausgegeben, wie oben beschrieben. Wer ist für FreeBSD verantwortlich? Schlüsseldiskussionen, die das FreeBSD-Projekt betreffen, wie z.B. über die generelle Ausrichtung des Projekts und darüber, wem es erlaubt sein soll, Code zum Quellbaum hinzuzufügen, werden innerhalb - eines Core + eines Core Team von etwa 9 Personen geführt. Es gibt ein weitaus größeres Team von über 200 Committers, + url="../../articles/contributors/article.html#STAFF-COMMITTERS">Committers, die dazu autorisiert sind, Änderungen am FreeBSD Quellbaum durchzuführen. Jedoch werden die meisten nicht-trivialen Änderungen zuvor in den Mailinglisten diskutiert und es bestehen keinerlei Einschränkungen darüber, wer sich an diesen Diskussionen beteiligen darf. Wie kann ich FreeBSD beziehen? Jede bedeutende Ausgabe von FreeBSD ist per Anonymous-FTP vom FreeBSD FTP Server erhältlich: Die aktuelle Ausgabe von 3.X-STABLE, 3.5.1-RELEASE, finden Sie im Verzeichnis 3.5.1-RELEASE. Die aktuelle Ausgabe von 4-STABLE, &rel.current;-RELEASE, finden Sie im Verzeichnis &rel.current;-RELEASE. 4.X Snapshots werden in der Regel einmal täglich erstellt. Einmal täglich werden 5.0 Snapshot Ausgaben vom -CURRENT-Zweig erstellt, die allerdings nur den Testern und Entwicklern an vorderster Front dienen. Wo und wie Sie FreeBSD auf CD, DVD, und anderen Medien beziehen können, erfahren Sie im Handbuch. - - Woher bekomme ich Informationen zu den FreeBSD - Mailinglisten? - - - - Vollständige Informationen finden Sie im Handbucheintrag - über Mailinglisten. - - - - - - Wo finde ich die FreeBSD-spezifischen Informationen - zum Jahr-2000-Problem? + + Wie greife ich auf die Datenbank mit Problemberichten + zu? - Vollständige Informationen finden Sie auf der - FreeBSD - Jahr-2000-Seite. - - - - - - Welche Newsgruppen existieren zu FreeBSD? - + Die Datenbank mit Problemberichten (PR - Problem + Report) Änderungsanfragen von Benutzern kann + über die Web-basierte PR- Abfrage-Schnittstelle + abgefragt und über das PR-Einsende-Interface + können Einsendungen vorgenommen werden. Das + Programm &man.send-pr.1; kann auch dazu + genutzt werden, Problemberichte oder + Änderungsanträge per Email einzusenden. - - Sie finden alle Informationen hierzu im Handbucheintrag zu - Newsgruppen. + Bitte lesen Sie sich zuerst this + article durch, bevor Sie einen Fehler + melden. - - Gibt es FreeBSD IRC (Internet Relay Chat) - Kanäle? + + Was muß ich tun, um einen FreeBSD-Web-Mirror + betreiben zu können? - Ja, die meisten großen IRC Netze bieten einen - FreeBSD Chat-Channel: + Es gibt mehrere Möglichkeiten, die Web-Seiten zu + spiegeln. - Channel FreeBSD im EFNet ist - ein FreeBSD-Forum, aber gehen Sie nicht dorthin, um - technische Unterstützung zu suchen, oder, um zu - versuchen, die Leute dort dazu zu bringen, Ihnen dabei - zu Helfen, das mühselige Lesen von Manuals zu - ersparen oder eigene Nachforschungen zu betreiben. Es - ist in erster Linie ein Chat-Channel und die Themen - dort umfassen Sex, Sport oder Kernwaffen ebensogut, - wie FreeBSD. Sie wurden gewarnt! Der Channel ist auf - dem Server irc.chat.org - verfügbar. - - - - Der Channel #FreeBSDhelp im - EFNet hat - sich dagegen auf die Unterstützung der Benutzer - von FreeBSD spezialisiert. In diesem Channel sind - Fragen deutlich willkommener als im Channel - #FreeBSD. - - - - Der Channel #FreeBSD im DALNET ist in den - USA unter irc.dal.net und in Europa - unter irc.eu.dal.net - verfügbar. - - - - Der Channel #FreeBSD im UNDERNET ist in - den USA unter us.undernet.org und in - Europa unter eu.undernet.org - verfügbar. Es handelt sich hierbei um einen - Hilfe-Channel, man wird Sie daher auf Dokumente - verweisen, die Sie selbst lesen müssen. + Sie können die formatierten Dateien von einem + FreeBSD CVSUP-Server mit net/cvsup + beziehen. Die Datei + /usr/share/examples/cvsup/www-supfile + enthält ein Beispiel für die Konfiguration, + die für einen Web-Mirror notwendig ist. - Der Channel #FreeBSD im HybNet. Dieser - Channel ist ein Hilfe-Channel. - Eine Liste der möglichen Server finden Sie auf - der Webseite von - HybNet. + Sie können sich die Quelldateien für die + Web-Seiten von jeden FreeBSD FTP-Server mit einem + FTP-Spiegelwerkzeug Ihrer Wahl herunterladen. + Allerdings müssen Sie diese Quelldateien erst + übersetzen, bevor Sie sie verwenden können. + Starten Sie einfach bei ftp://ftp.de.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www. + + - Alle diese Kanäle unterscheiden sich voneinander - und sind nicht miteinander verbunden. Ebenso - unterscheiden sich Ihre Chat-Stile, weshalb es sein kann, - daß Sie zunächst alle Kanäle ausprobieren - müssen, um den zu Ihrem Chat-Stil passenden zu - finden. Hier gilt, was für - jeden IRC-Verkehr gilt: falls sie - sich leicht angegriffen fühlen oder nicht mit vielen - jungen (und einigen älteren) Leuten, verbunden mit - dem nutzlosen Gezanke umgehen können, dann ziehen Sie - es gar nicht erst in Erwägung. + + + Gibt es weitere Informationsquellen? + + + + Sie finden eine umfassende Liste unter Documentation + auf der FreeBSD-Webseite. + + + + Documentation and Support + + - - Wie greife ich auf die Datenbank mit Problemberichten - zu? + + Gibt es gute Bücher über FreeBSD? - Die Datenbank mit Problemberichten (PR - Problem - Report) Änderungsanfragen von Benutzern kann - über die Web-basierte PR- Abfrage-Schnittstelle - abgefragt und über das PR-Einsende-Interface - können Einsendungen vorgenommen werden. Das - Programm &man.send-pr.1; kann auch dazu - genutzt werden, Problemberichte oder - Änderungsanträge per Email einzusenden. + Im Zuge des Projektes FreeBSD sind diverse gute + Bücher und Artikel entstanden, die unter der + folgenden URL abgerufen werden können: http://www.FreeBSD.org/docs.html. + Zusätzlich enthalten die Bibliographien am Ende + dieser FAQ und im Handbuch Verweise auf weitere empfohlene + Bücher. Ist die Dokumentation auch in anderen Formaten verfügbar? Zum Beispiel als einfacher Text (ASCII) oder als Postscript? Ja. Werfen Sie einen Blick auf das Verzeichnis /pub/FreeBSD/doc/ auf dem FreeBSD FTP-Server. Dort finden sie Dokumentation in vielen verschiedenen Format. Die Dokumentation wurde nach vielen verschiedenen Kriterien sortiert. Die Kriterien sind: Der Name des Dokumentes, z.B. FAQ oder Handbuch. Die Sprache und der Zeichensatz, die in dem Dokument verwendet werden. Diese entsprechen den Anpassungen, die Sie auf Ihrem FreeBSD-System im Verzeichnis /usr/share/locale finden. Zur Zeit werden die folgenden Sprachen und Zeichensätze benutzt: Name Bedeutung en_US.ISO8859-1 US Englisch es_ES.ISO8859-1 Spanisch fr_FR.ISO8859-1 Französisch de_DE.ISO8859-1 Deutsch ja_JP.eucJP Japanisch (EUC kodiert) ru_RU.KOI8-R Russisch (KOI8-R kodiert) zh_TW.Big5 Chinesisch (Big5 kodiert) Einige Dokumente sind nicht in allen Sprachen verfügbar. Das Format des Dokumentes. Die Dokumentation wird in verschiedenen Formaten erzeugt, um eine möglichst große Flexibilität zu erreichen. Zur Zeit werden die folgenden Formate unterstützt. Format Erklärung html-split Viele kleine HTML-Dateien, die sich gegenseitig referenzieren. html Eine große HTML-Datei, die das komplette Dokument enthält. pdb Palm Pilot Datenbank für das Programm iSilo. pdf Adobe's Portable Document Format ps Postscript rtf Microsoft's Rich Text Format Die Seitennummern werden nicht automatisch aktualisiert, wenn Sie diese Datei in Word laden. Wenn Sie das Dokument geladen haben, müssen Sie Sie CTRLA, CTRLEND, F9 eingeben, um die - Seitennummern akualisieren zu + Seitennummern aktualisieren zu lassen. txt Ganz normaler Text Das zur Komprimierung verwendete Programm. Zur Zeit werden drei verschiedene Methoden benutzt. Wenn die Dokumentation im Format html-split vorliegt, werden die Dateien mit &man.tar.1; zusammengefaßt. Die so entstandene .tar Datei wird dann mit einer der unten genannten Methoden komprimiert. Bei allen anderen Formaten existiert nur eine Datei mit dem Namen book.format (z.B., book.pdb, book.html, und so weiter). Diese Dateien werden mit drei verschiedenen Programmen komprimiert. Programm Beschreibung zip Das Zip Format. Wenn Sie diese Dateien unter FreeBSD auspacken wollen, müssen sie vorher den Port - archivers/unzip + archivers/unzip installieren. gz Das GNU Zip format. Sie können diese Dateien mit &man.gunzip.1; entpacken, dieses Programm ist Bestandteil von FreeBSD. bz2 Das BZip2 Format. Es wird selten benutzt, erzeugt aber normalerweise kleinere Archive. Sie müssen den - Port archivers/bzip2 + Port archivers/bzip2 installieren, um diese Dateien entpacken zu können. Ein Beispiel: Die mit BZip2 gepackte Version des Handbuchs im Postscript-Format hat den Namen book.ps.bz2 und ist im Verzeichnis handbook/ zu finden. Die formatierte Dokumentation ist auch als Package verfügbar, siehe unten. Nachdem Sie das Format und das Kompressionsverfahren ausgewählt haben, müssen Sie sich entscheiden, ob Sie das Dokument in Form eines FreeBSD Package herunterladen möchten. Der Vorteil dieser Variante, daß Sie die Dokumentation mit normalen Tools wie &man.pkg.add.1; und &man.pkg.delete.1; verwalten können. Wenn Sie das Package herunterladen und installieren wollen, müssen Sie den richtigen Dateinamen kennen. Die Datei liegen in einem separaten Verzeichnis mit dem Namen packages. Die Dateinamen nutzen das Schema Dokument-Name.Sprache.Zeichensatz.Format.tgz. Ein Beispiel: Die englische Version der FAQ im PDF-Format ist in dem Package mit dem Namen faq.en_US.ISO8859-1.pdf.tgz enthalten. Sie können daher das englische PDF FAQ Package mit den folgenden Befehlen installieren. &prompt.root; pkg_add ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz Danach können Sie mit &man.pkg.info.1; nachsehen, - wno die Datei installiert wurde. + wo die Datei installiert wurde. &prompt.root; pkg_info -f faq.en_US.ISO8859-1.pdf Information for faq.en_US.ISO8859-1.pdf: Packing list: Package name: faq.en_US.ISO8859-1.pdf CWD to /usr/share/doc/en_US.ISO8859-1/books/faq File: book.pdf CWD to . File: +COMMENT (ignored) File: +DESC (ignored) - Wie sie sehen können, wurde die Datei + Wie Sie sehen können, wurde die Datei book.pdf im Verzeichnis /usr/share/doc/en_US.ISO8859-1/books/faq installiert. Wenn sie die Packages nicht benutzen, müssen Sie die komprimierten selber herunterladen, auspacken und die richtigen Stellen kopieren. Wenn Sie zum Beispiel die mit &man.gzip.1; gepackte "split HTML"-Version der englischen FAQ herunterladen und installieren wollten, bräuchten Sie die Datei - en_US.ISO8859-1/books/faq/book.html-split.tar.gz. + doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz. Um diese Datei herunterzuladen und auszupacken, wären die folgenden Schritte notwendig. &prompt.root; fetch ftp://ftp.de.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz &prompt.root; gzip -d book.html-split.tar.gz &prompt.root; tar xvf book.html-split.tar Danach haben Sie eine Sammlung vieler kleiner .html Datei. Die wichtigste Datei hat Namen index.html und enthält das Inhaltsverzeichnis, eine Einleitung und Verweise auf die anderen Teile des Dokumentes. Falls notwendig, können Sie die diversen Dateien jetzt an ihren endgültigen Bestimmungsort verschieben oder kopieren. - - Was muß ich tun, um einen FreeBSD-Web-Mirror - betreiben zu kö:nnen? + + Woher bekomme ich Informationen zu den FreeBSD + Mailinglisten? - Sicherlich! Es gibt mehrere Möglichkeiten, die - Web-Seiten zu spiegeln. + Vollständige Informationen finden Sie im Handbucheintrag + über Mailinglisten. + + - - - Mit CVSUP: Sie - können die formatierten Dateien per - CVSUP von einem - entsprechenden Server bekommen. + + + Wo finde ich die FreeBSD-spezifischen Informationen + zum Jahr-2000-Problem? + - Wie Sie die Webseiten erhalten können, - können Sie der entsprechender Beispieldatei - entnehmen, die auf Ihrem System als - /usr/share/examples/cvsup/www-supfile - verfübar sein sollte. - + + Vollständige Informationen finden Sie auf der + FreeBSD + Jahr-2000-Seite. + + - - Mit einem FTP-Spiegel: Sie können sich die - eine Kopie der Quelldateien für den Web-Server - mit einem FTP-Spiegelwerkzeug Ihrer Wahl - herunterladen. Allerdings müssen Sie diese - Quelldateien erst übersetzen, bevor Sie sie - verwenden können. Starten Sie einfach bei ftp://ftp.de.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www. - - + + + Welche Newsgruppen existieren zu FreeBSD? + + + + Sie finden alle Informationen hierzu im Handbucheintrag zu + Newsgruppen. - - Gibt es weitere Informationsquellen? + + Gibt es FreeBSD IRC (Internet Relay Chat) + Kanäle? - In den folgenden Newsgruppen werden nützliche - Diskussionen für FreeBSD-Benutzer - geführt: + Ja, die meisten großen IRC Netze bieten einen + FreeBSD Chat-Channel: - comp.unix.bsd.freebsd.announce - (moderiert) + Channel FreeBSD im EFNet ist + ein FreeBSD-Forum, aber gehen Sie nicht dorthin, um + technische Unterstützung zu suchen, oder, um zu + versuchen, die Leute dort dazu zu bringen, Ihnen dabei + zu Helfen, das mühselige Lesen von Manuals zu + ersparen oder eigene Nachforschungen zu betreiben. Es + ist in erster Linie ein Chat-Channel und die Themen + dort umfassen Sex, Sport oder Kernwaffen ebensogut, + wie FreeBSD. Sie wurden gewarnt! Der Channel ist auf + dem Server irc.chat.org + verfügbar. - comp.unix.bsd.freebsd.misc + Der Channel #FreeBSDhelp im + EFNet hat + sich dagegen auf die Unterstützung der Benutzer + von FreeBSD spezialisiert. In diesem Channel sind + Fragen deutlich willkommener als im Channel + #FreeBSD. - comp.unix.bsd.misc + Der Channel #FreeBSD im DALNET ist in den + USA unter irc.dal.net und in Europa + unter irc.eu.dal.net + verfügbar. - - Webseiten: - - - Die FreeBSD Home - Page. + Der Channel #FreeBSD im UNDERNET ist in + den USA unter us.undernet.org und in + Europa unter eu.undernet.org + verfügbar. Es handelt sich hierbei um einen + Hilfe-Channel, man wird Sie daher auf Dokumente + verweisen, die Sie selbst lesen müssen. - Falls Sie einen Laptop besitzen, - dann besuchen Sie auf alle Fälle Tatsumi - Hosokawa's Mobile Computing Page in - Japan. + Der Channel #FreeBSD im HybNet. Dieser + Channel ist ein Hilfe-Channel. + Eine Liste der möglichen Server finden Sie auf + der Webseite von + HybNet. + - - Informationen zu SMP (Symmetric - MultiProcessing) finden Sie auf der SMP - support page. - + Alle diese Kanäle unterscheiden sich voneinander + und sind nicht miteinander verbunden. Ebenso + unterscheiden sich Ihre Chat-Stile, weshalb es sein kann, + daß Sie zunächst alle Kanäle ausprobieren + müssen, um den zu Ihrem Chat-Stil passenden zu + finden. Hier gilt, was für + jeden IRC-Verkehr gilt: falls sie + sich leicht angegriffen fühlen oder nicht mit vielen + jungen (und einigen älteren) Leuten, verbunden mit + dem nutzlosen Gezanke umgehen können, dann ziehen Sie + es gar nicht erst in Erwägung. + + - - Informationen zu - FreeBSD-Multimedia-Anwendungen finden Sie auf der - Multimedia-Seite. - Falls Sie speziell am Bt848 - video capture chip interessiert sind, dann folgen Sie - dem Link. - - + + + Gibt es Firmen, die Training und Support für + FreeBSD anbieten? + + + + DaemonNews bietet Training und Support für + FreeBSD an. Weitergehende Informationen finden Sie in der + BSD + Mall. - Das FreeBSD-Handbuch enthält außerdem eine - ziemlich umfangreiche Bibliographie, - die es sich lohnt, anzusehen, falls Sie Bücher - suchen, die Sie sich kaufen möchten. + Die FreeBSD Mall bietet ebenfalls professionellen + FreeBSD support an. Weitergehende Informationen finden + Sie auf Ihrer Webseite. + + Wenn Ihre Firma oder Organisation ebenfalls Training + und Support anbietet und hier genannt werden möchte, + wenden Sie sich bitte an das FreeBSD Project. Nik Clayton -
nik@freebsd.org
+
nik@FreeBSD.org
Installation Welche Dateien muß ich herunterladen, um FreeBSD zu bekommen? Vor dem 3.1-RELEASE benötigte man nur ein Floppy-Image, floppies/boot.flp, um FreeBSD zu installieren. Seit dem 3.1-RELEASE haben wir - jedoch Unterstützung für eine Vielfalt von - Hardware hinzugefügt, weshalb man nun für 3.x- - und 4.x-RELEASE zwei Floppy-Images + jedoch im initialen System Unterstützung für + eine Vielfalt von Hardware hinzugefügt, und + dafür wird mehr Platz benötigt. Aus diesem + Grund braucht man ab 3.x zwei Floppy-Images: floppies/kernel.flp und - floppies/mfsroot.flp benötigt. - Diese Images müssen mit Hilfe von Werkzeugen wie + floppies/mfsroot.flp. Diese Images + müssen mit Hilfe von Werkzeugen wie fdimage oder &man.dd.1; auf Disketten kopiert werden. Falls Sie selbst die einzelnen Distributionen herunterladen müssen (um z.B. von einem DOS-Dateisystem aus zu installieren), empfehlen wir, sich die folgenden Distributionen zu besorgen: bin manpages compat* doc src/ssys.* Vollständige Instruktionen für dieses Vorgehen und ein wenig mehr zur Installation generell finden Sie im Handbucheintrag zur Installation von FreeBSD. Was soll ich tun, wenn das Floppy-Image nicht auf eine Diskette paßt? Eine 3,5-Zoll (1,44MB) Diskette kann 1474560 Byte an Daten fassen und das Boot-Image ist exakt 1474560 Byte groß. Häufige Fehler bei der Erstellung der Boot-Diskette sind: Bei der Benutzung von FTP das Floppy-Image nicht im Binär-Modus herunterzuladen. Einige FTP-Clients benutzen als Voreinstellung den ASCII-Modus und versuchen, alle Zeilenendezeichen an das Zielsystem anzupassen. Dadurch wird das Boot-Image in jedem Fall unbrauchbar. Überprüfen Sie die Größe des heruntergeladenen Boot-Images: falls sie nicht exakt mit der auf dem Server übereinstimmt, hat das Herunterladen nicht richtig funktioniert. Abhilfe: geben Sie binary an der FTP-Eingabeaufforderung ein, nach dem Sie mit dem Server verbunden sind und bevor Sie das Image herunterladen. Die Benutzung des DOS-Befehls copy (oder eines entsprechendes Werkzeugs der grafischen Benutzeroberfläche), um das Boot-Image auf die Diskette zu übertragen. Programme wie copy sind hier unbrauchbar, weil das Image zur direkten Übertragung erstellt wurde. Das Image stellt den gesamten Disketteninhalt dar, Spur für Spur, und nicht eine gewöhnliche Datei. Sie müssen es roh mit speziellen Werkzeugen (z.B. fdimage oder rawrite) übertragen, wie es in der Installationsanleitung zu FreeBSD beschrieben ist. Wo befinden sich die Instruktionen zur Installation von FreeBSD? Installationsanleitungen finden Sie im Handbucheintrag zur Installation von FreeBSD. Was benötige ich zum Betrieb von FreeBSD? Sie werden einen 386er oder besseren PC mit 5MB oder mehr Hauptspeicher und mindestens 60MB Festplattenspeicher benötigen. Es läuft mit einer einfachen MDA Grafikkarte, aber um X11R6 zu benutzen, benötigen Sie eine VGA- oder bessere Videokarte. Lesen Sie auch den Abschnitt Ich besitze nur 4 MB Hauptspeicher. Kann ich FreeBSD installieren? FreeBSD 2.1.7 war die letzte FreeBSD-Version, die auf - einem 4MB-System installiert werden konnte. Neuere - FreeBSD-Versionen, wie 2.2, benötigen mindestens 5MB - zur Installation auf einem neuen System. - - Alle FreeBSD-Versionen, einschließlich 3.0, - laufen zwar mit 4MB Hauptspeicher, - lediglich ihr Installationsprogramm läuft nicht mit - 4MB. Wenn Sie möchten, können Sie für den + einem 4MB-System installiert werden konnte. Seit FreeBSD + 2.2 benötigen Sie mindestens 5MB zur Installation auf + einem neuen System. + + Alle FreeBSD-Versionen laufen + zwar mit 4MB Hauptspeicher, lediglich ihr + Installationsprogramm läuft nicht mit 4MB. Wenn Sie + möchten, können Sie für den Installationsvorgang zusätzlichen Hauptspeicher hinzufügen, und nachdem das System installiert ist, wieder auf 4MB zurückgehen. Sie können Ihre - Festplatte auch jederzeit in ein System mit >4MB - einbauen, dort installieren und sie dann wieder - umbauen. + Festplatte auch in ein System mit >4MB einbauen, dort + installieren und sie dann wieder umbauen. - Es gibt auch Situationen, in denen FreeBSD 2.1.7 nicht - mit 4 MB zu installieren ist. Um genau zu sein: man kann - es nicht mit 640 kB Basis- + 3MB erweitertem Speicher + FreeBSD 2.1.7 läßt sich nicht installieren, + wenn Ihr System 640 kB Basis- + 3MB erweitertem Speicher installieren. Falls ihr Motherboard einiges vom verlorenen Speicher aus der 640kB - 1MB Region verschieben kann, könnten Sie trotzdem in der - Lage sein, FreeBSD 2.1.7 zu installieren. - - Versuchen Sie in Ihr BIOS-Setup zu gelangen und suchen - Sie nach einer remap Option. Aktivieren - Sie sie. Sie sollten das ROM shadowing ebenfalls - ausschalten. - - Es könnte einfacher sein, 4 weitere MB nur - für die Installation zu benutzen, einen - benutzerdefinierten Kernel nur mit den benötigten - Optionen zu generieren und dann die 4 MB wieder - auszubauen. - - Sie können auch 2.0.5 installieren und - anschließend Ihr System mit der - upgrade Option des 2.1.7 + Lage sein, FreeBSD 2.1.7 zu installieren. Versuchen Sie + in Ihr BIOS-Setup zu gelangen und suchen Sie nach einer + remap Option. Aktivieren Sie sie. Sie + sollten das ROM shadowing ebenfalls ausschalten. Es + könnte einfacher sein, 4 weitere MB nur für die + Installation zu benutzen, einen benutzerdefinierten Kernel + nur mit den benötigten Optionen zu generieren und + dann die 4 MB wieder auszubauen. Sie können auch + 2.0.5 installieren und anschließend Ihr System mit + der upgrade Option des 2.1.7 Installationsprogramms nach 2.1.7 migrieren. Wenn Sie nach der Installation einen benutzerdefinierten Kernel generieren, wird er mit 4 MB laufen. Irgend jemand hat es geschafft, mit 2 MB zu - booten (allerdings war das System nahezu unbrauchbar - :-)) + booten, allerdings war das System nahezu + unbrauchbar. Wie kann ich eine angepaßte Installationsdiskette erstellen? Zur Zeit gibt es keine Möglichkeit, nur die angepaßten Installationsdisketten zu erstellen. Sie müssen sich eine ganz neues Release erstellen, das Ihre Installationsdiskette enthält. - Befolgen Sie diese - Instruktionen, um sich eine angepaßte Ausgabe zu - erstellen. + Wenn Sie eine modifizierte Ausgabe erstellen wollen, + finden Sie eine Anleitung im Kapitel Erzeugung einer + eigenen Release des Handbuchs. Kann ich mehr als ein Betriebssystem auf meinem PC unterbringen? Sehen Sie sich Die Multi-OS-Seite an. Kann Windows 95/98 neben FreeBSD existieren? Installieren Sie zuerst Windows 95/98, dann FreeBSD. Der Bootmanager von FreeBSD kann dann entweder Win95/98 oder FreeBSD booten. Falls Sie Windows 95/98 nach FreeBSD installieren, wird es, ohne zu fragen, Ihren Bootmanager überschreiben. Lesen Sie den nächsten Abschnitt, falls das passieren sollte. Windows 95/98 hat meinen Bootmanager zerstört! Wie stelle ich ihn wieder her? Es gibt drei Möglichkeiten, den FreeBSD-Bootmanager neu zu installieren: Unter DOS wechseln Sie in das Verzeichnis tools/ Ihrer FreeBSD-Distribution und suchen nach bootinst.exe. Rufen sie es so auf: ...\TOOLS> bootinst.exe boot.bin und der Bootmanager wird neu installiert. Booten Sie FreeBSD wieder mit der Bootdiskette und - wählen Sie den Menueeintrag Custom Installation. + wählen Sie den Menüeintrag Custom Installation. Wählen Sie Partition. Wählen Sie das Laufwerk, auf dem sich der Bootmanager befand (wahrscheinlich der erste Eintrag) und wenn Sie in den Partitioneditor gelangen, wählen Sie als aller erstes (nehmen Sie z.B. keine Änderungen vor) (W)rite. Sie werden nach einer Bestätigung gefragt, antworten ja und vergessen Sie nicht, in der Bootmanager-Auswahl Boot Manager auszuwählen. Hierdurch wird der Bootmanager wieder auf die Festplatte geschrieben. Verlassen Sie - nun das Installationsmenue und rebooten wie + nun das Installationsmenü und rebooten wie gewöhnlich von der Festplatte. Booten Sie FreeBSD wieder mit der Bootdiskette (oder der CDROM) und wählen Sie den Menüpunkt Fixit. Wählen Sie die für Sie passende Option, entweder die Fixit-Diskette oder die CD Nummer 2 (die Option live Filesystem). Wechseln Sie zur Fixit-Shell und geben Sie den folgenden Befehl ein: Fixit# fdisk -B -b /boot/boot0 bootdevice Als bootdevice müssen Sie das von Ihrem System verwendete Gerät angeben, z.B. ad0 (erste IDE-Platte), ad4 (erste IDE-Platte an einem zusätzlichen Controller), da0 (erste SCSI-Platte), usw. Mein IBM Thinkpad Modell A, T oder X, hängt sich auf, wenn ich FreeBSD zum ersten Mal starte. Was soll ich machen? Ein Fehler in den ersten BIOS-Versionen dieser Geräte führt dazu, daß sie die von FreeBSD genutzte Partition für eine Suspend-To-Disk-Partition halten. Wenn das BIOS dann versucht, diese Partition auszuwerten, hängt sich das System auf. Laut IBM In einer Mail von Keith Frechette kfrechet@us.ibm.com. wurde der Fehler wurde in den folgenden BIOS-Versionen behoben: Gerät BIOS Version T20 IYET49WW oder neuer T21 KZET22WW oder neuer A20p IVET62WW oder neuer A20m IWET54WW oder neuer A21p KYET27WW oder neuer A21m KXET24WW oder neuer A21e KUET30WW Es ist möglich, daß neuere Version des IBM BIOS den Fehler wieder enthalten. Dieser Beitrag von Jacques Vidrine auf der &a.mobile; beschreibt eine Technik, die Ihnen weiterhelfen könnte, wenn Ihr IBM Laptop mit FreeBSD nicht bootet und Sie eine neuere oder ältere BIOS-Version einspielen können. Wenn Ihr Thinkpad über eine ältere BIOS-Version verfügt und Sie das BIOS nicht aktualisieren können, ist eine der möglichen Lösungen, FreeBSD zu installieren, die Partitions-ID zu ändern und danach neue Bootblocks zu installieren, die mit der geänderten ID umgehen können. Zunächst müssen Sie die Maschine so weit wiederherstellen, daß sie über den Selbst-Test hinauskommt. Dazu ist es erforderlich, daß das System beim Start keine Partitions-ID auf seiner primären Festplatte findet. Eine Variante ist, die Platte auszubauen und vorübergehend in einem älteren Thinkpad (z.B. dem Thinkpad 600) oder (mit einem passenden Adapter) in einen normalen PC einzubauen. Sobald dies erfolgt ist, können Sie die FreeBSD-Partition löschen und die Festplatte wieder in das Thinkpad einbauen. Das Thinkpad sollte jetzt wieder starten können. Danach können Sie mit der nachfolgend beschriebenen Anleitung eine funktionsfähige FreeBSD-Installation erhalten. Beschaffen Sie sich boot1 und boot2 von http://people.freebsd.org/~bmah/ThinkPad/. + url="http://people.FreeBSD.org/~bmah/ThinkPad/">http://people.FreeBSD.org/~bmah/ThinkPad/. Legen Sie diese Dateien so ab, daß Sie während der Installation darauf zugreifen können. Installieren Sie ganz wie gewohnt FreeBSD auf dem Thinkpad. Allerdings dürfen Sie den Dangerously Dedicated-Modus nicht benutzen. Nach dem Abschluß der Installation dürfen Sie die Maschine nicht neu starten. Wechseln Sie zur Emergency Holographic Shell (ALTF4) oder starten Sie eine fixit Shell. Benutzen Sie &man.fdisk.8;, um die Partitions-ID von FreeBSD von 165 in 166 zu ändern (dieser Wert wird von OpenBSD benutzt). Kopieren Sie die Dateien boot1 und boot2 auf die lokale Festplatte. Installieren Sie boot1 und boot2 mit &man.disklabel.8; auf die FreeBSD-Slice. &prompt.root; disklabel -B -b boot1 -s boot2 ad0sn Setzen Sie für n die Nummer der Slice ein, auf der sie FreeBSD installiert haben. Starten Sie das System neu. Am Boot-Prompt sollten Sie die Auswahl OpenBSD erhalten. Damit wird in Wirklichkeit FreeBSD gestartet. Was Sie machen müssen, wenn Sie FreeBSD und OpenBSD parallel installieren wollen, sollten Sie zu Übungszwecken einfach einmal selbst herausfinden. Kann ich auf einer Festplatte mit beschädigten Blöcken installieren? Ältere Versionen von FreeBSD enthielten ein Programm namens bad144, das die defekten Sektoren automatisch verlagerte. Da diese Funktion aber von modernen IDE-Platten selbstständig durchgeführt wird, wurde bad144 in der Version 3.0 aus dem System entfernt. Wenn Sie FreeBSD 3.0 oder neuer installieren wollen, sollten Sie sich eine neue Festplatte zulegen. Falls Sie dazu nicht bereit sind, müssen Sie FreeBSD 2.X verwenden. Wenn Ihnen bei einer modernen IDE-Platte defekte Sektoren gemeldet werden, wird die Platte mit großer Wahrscheinlichkeit innerhalb kurzer Zeit vollständig ausfallen, da die Meldung ein Zeichen dafür ist, daß die für die Korrektur reservierten Sektoren bereits verbraucht wurden. Wir raten Ihnen, die Platte auszutauschen. Falls Sie ein SCSI-Laufwerk mit beschädigten Blöcken besitzen, lesen Sie diese Antwort. + + + Ich habe mein System gerade von 3.X auf 4.X + aktualisiert und beim ersten Start erscheint die Meldung + bad sector table not + supported + + + + Bis einschließlich FreeBSD 3.X wurde + bad144 unterstützt, mit dem man + automatisch defekte Blöcke verlagern lassen konnte. + Dieses Programm ist in FreeBSD 4.X nicht mehr enthalten, + weil diese Tätigkeit von allen modernen IDE-Platten + automatisch vorgenommen wird. Weitere Informationen zum + Thema bad144 finden Sie bei in diesem + Abschnitt. + + Um dieses Problem zu lösen, müssen Sie ihre + Festplatte in ein funktionierendes System einbauen und + &man.disklabel.8; benutzen. Nähere Informationen + finden Sie weiter unten. + + + + + + Wie kann ich herausfinden, ob auf einer Festplatte + bad144 benutzt wurde, bevor mein Update + auf FreeBSD 4.0 fehlschlägt? + + + + Mit &man.disklabel.8;. disklabel -r + Laufwerk zeigt Ihnen + das disk label an. Achten Sie auf das Feld + flags. Wenn hier flags: + badsect steht, wurde auf dieser Festplatte + bad144 benutzt. Hier ein Beispiel + für eine solche Festplatte: + + &prompt.root; disklabel -r wd0 +# /dev/rwd0c: +type: ESDI +disk: wd0s1 +label: +flags: badsect +bytes/sector: 512 +sectors/track: 63 + + + + + + Wie kann ich die Daten von bad144 + von meinen System entfernen, damit ich problemlos auf 4.X + updaten kann? + + + + Benutzen Sie disklabel -e -rwd0, um + das Disk label direkt auf der Platte zu bearbeiten. Sie + müssen lediglich das Wort badsect + aus dem Feld flags entfernen, + abspeichern, und den Editor verlassen. Die Daten von + bad144 werden zwar weiterhin Platz auf Ihrer Festplatte + belegen, Sie können die Festplatte aber trotzdem + benutzen. + + Wir raten Ihnen allerdings dringend, sich eine neue + Festplatte zuzulegen, wenn Sie eine große Anzahl + defekter Blöcke auf Ihrer Festplatte finden. + + + Wenn ich von der Installationsdiskette boote, geschehen merkwürdige Dinge! Was sollte ich tun? Falls Sie beobachten, daß ihr Rechner sich bis zum Stillstand abmüht oder spontan rebootet, während Sie versuchen, von der Installationsdiskette zu booten, sollten Sie sich drei Fragen stellen: Haben Sie eine brandneue, frisch formatierte, fehlerfreie Diskette benutzt (günstigerweise eine brandneue, direkt aus dem Karton und nicht eine Diskette aus einem Magazin, das schon seit drei Jahren unter Ihrem Bett lag)? Haben Sie das Floppy-Image im Binär- (oder Image) Modus heruntergeladen? (Schämen Sie sich nicht. Sogar die besten unter uns haben wenigstens einmal Binärdateien versehentlich im ASCII-Modus heruntergeladen!) Falls Sie Windows 95 oder Windows 98 benutzen, haben Sie es heruntergefahren und fdimage bzw. rawrite in einfachem, reinem DOS neu gestartet? Es scheint, daß diese Betriebssysteme Programme stören, die direkt auf Hardware schreiben, wie es das Erstellungsprogramm für die Diskette tut; selbst bei der Ausführung des Programms in einem DOS-Fenster in der grafischen Benutzeroberfläche kann dieses Problem auftreten. Es wurde auch darüber berichtet, daß Netscape Probleme beim Herunterladen der Bootdisketten verursacht. Es ist also wahrscheinlich besser, einen anderen FTP-Client zu benutzen, wenn möglich. Ich habe zur Installation von meinem ATAPI CDROM gebootet, aber das Installationsprogramm sagt mir, daß es kein CDROM gefunden hat. Was geht hier ab? Dieses Problem wird üblicherweise durch ein falsch konfiguriertes CDROM verursacht. Bei vielen PCs ist das CDROM der Slave am zweiten IDE-Controller, ein Master ist nicht vorhanden. Laut Spezifikation ist diese Konfiguration illegal, aber Windows verletzt die Spezifikation und das BIOS ignoriert sie, wenn es von einem CDROM booten soll. Daher konnten Sie zwar vom CDROM booten, während FreeBSD es nicht für die Installation nutzen kann. Um dieses Problem zu lösen, müssen Sie entweder das CDROM als Master an den IDE-Controller anschließen oder dafür sorgen, daß an dem vom CDROM genutzten IDE-Controller das CD-ROM als Slave und ein anderes Gerät als Master angeschlossen ist. Wieso kann ich nicht von Band installieren? Falls Sie 2.1.7R von Band installieren, müssen Sie bei der Erstellung des Bandes eine tar-Blockgröße von 10 (5120 Byte) verwenden. Die standard tar-Blockgröße beträgt 20 (10240 Byte) und Bänder, die mit diesem Standardwert erstellt worden sind, können nicht zur Installation von 2.1.7R verwendet werden. Diese Bänder verursachen einen Fehler, der besagt, daß die Satzlänge zu groß ist. Kann ich auf meinem Laptop per PLIP (Parallel Line IP) installieren? - Verbinden Sie die beiden Computer hierzu mit einem - Laplink-Kabel: - - - Pinbelegung für ein Netzwerkkabel an der - parallelen Schnittstelle - - - - - A-name - - A-End - - B-End - - Descr. - - Post/Bit - - - - - - DATA0 --ERROR - - 2 -15 - - 15 -2 - - Data - - 0/0x01 -1/0x08 - - - - DATA1 -+SLCT - - 3 -13 - - 13 -3 - - Data - - 0/0x02 -1/0x10 - - - - DATA2 -+PE - - 4 -12 + Ja, Sie brauchen dazu nur ein ganz normales + Laplink-Kabel. Weitere Informationen zum Thema Netzwerke + am Druckerport finden sie im Kapitel PLIP des + Handbuchs. - 12 -4 - - Data - - 0/0x04 -1/0x20 - - - - DATA3 --ACK - - 5 -10 - - 10 -5 - - Strobe - - 0/0x08 -1/0x40 - - - - DATA4 -BUSY - - 6 -11 - - 11 -6 - - Data - - 0/0x10 -1/0x80 - - - - GND - - 18-25 - - 18-25 - - GND - - - - - - -
- - Lesen Sie auch diesen - Hinweis auf der Mobile-Computing-Seite. + Lesen Sie FreeBSD 3.X oder eine ältere Version + benutzen, sollten Sie einen Blick auf die Webseite Mobile-Computing + werfen.
Welche Geometrie sollte ich für ein Festplattenlaufwerk verwenden? Unter der Geometrie einer Festplatte verstehen wir die Anzahl Zylinder, Schreib-/Leseköpfen und Sektoren/Spur auf einer - Festplatte - im folgenden werde ich hierfür kurz - C/H/S schreiben. Das BIOS des PCs berechnet mit diesen + Festplatte. Im folgenden wird dafür der + Übersichtlichkeit halber der Begriff C/H/S + verwendet. Das BIOS des PCs berechnet mit diesen Angaben, auf welche Bereiche der Festplatte es für Schreib-/Lesezugriffe zugreifen muß). - Aus einigen Gründen scheint dies für sehr - viel Verwirrung zu sorgen. Zunächsteinmal ist die + Aus einigen Gründen scheint dies gerade bei + frischgebackenen Systemadministratoren für sehr viel + Verwirrung zu sorgen. Zunächst einmal ist die physikalische Geometrie eines SCSI-Laufwerks vollkommen irrelevant, da FreeBSD mit Blöcken arbeitet. Tatsächlich gibt es die physikalische Geometrie nicht, da die - Sektordichte auf einer Festplatte variiert - was die + Sektordichte auf einer Festplatte variiert. Was die Hersteller als die wahre physikalische Geometrie bezeichnen, ist im allgemeinen die Geometrie, die aufgrund ihrer Ergebnisse im geringsten ungenutzten Speicher resultiert. Bei IDE-Platten arbeitet FreeBSD mit C/H/S-Angaben, aber alle modernen Laufwerke wandeln diese intern ebenfalls in Blocknummern um. Wichtig ist nur die logische Geometrie. Das BIOS kann die logische Geometrie der Festplatte abfragen; die erhaltenen Daten werden dann vom BIOS bei Zugriffen auf die Festplatte genutzt. Da FreeBSD das BIOS benutzt, während es bootet, ist es sehr wichtig, daß diese Angaben richtig sind. Insbesondere müssen alle Betriebssysteme mit derselben Geometrie arbeiten, falls Sie mehr als ein - Betriebssystem auf einer Festplatte haben, andernfalls + Betriebssystem auf einer Festplatte haben. Andernfalls werden Sie ernsthafte Bootprobleme bekommen! Bei SCSI-Festplatten hängt die zu verwendende Geometrie davon ab, ob der Extended Translation Support auf Ihrem Controller eingeschaltet ist (oft auch als Unterstützung für DOS-Platten >1GB oder ähnlich bezeichnet). Falls sie ausgeschaltet ist, benutzen Sie N Zylinder, 64 Köpfe und 32 Sektoren/Spur, wobei N die Kapazität der Festplatte in MB ist. Zum Beispiel sollten für eine 2GB Festplatte 2048 Zylinder, 64 Köpfe und 32 Sektoren/Spur angegeben werden. Falls sie eingeschaltet ist (was oft der Fall ist, um bestimmte Einschränkungen von MSDOS zu umgehen) und die Plattenkapazität mehr als 1GB beträgt, benutzen Sie M Zylinder, 63 Sektoren/Spur (nicht 64) und 255 Köpfe, wobei 'M' der Plattenkapazität in MB, dividiert durch 7,844238 entspricht (!). Also würde unsere 2GB Beispielplatte 261 Zylinder, 63 Sektoren/Spur und 255 Köpfe haben. Falls Sie sich hier nicht sicher sind oder FreeBSD während der Installation die Geometrie nicht richtig erkennt, hilft es normalerweise, eine kleine DOS-Partition - auf der Festplatte anzulegen. Die richtige Geometrie - sollte dann erkannt werden (Sie können die Partition - jederzeit im Partitioneditor entfernen, falls Sie sie - nicht behalten möchten, oder Sie nutzen sie zur - Programmierung von Netzwerkkarten oder - ähnlichem). + auf der Festplatte anzulegen. Das BIOS sollte dann in der + Lage sein, die richtige Geometrie zu erkennen. Sie + können die Partition jederzeit im Partitioneditor + entfernen, falls Sie sie nicht behalten möchten. + Allerdings kann Sie ganz nützlich sein, um + Netzwerkkarten zu programmieren und + ähnliches. - Alternativ wird ein frei verfügbares Programm - pfdisk.exe (im Unterverzeichnis - tools auf der FreeBSD-CDROM oder den - unterschiedlichen FTP-Servern) mit FreeBSD verbreitet, das - dazu genutzt werden kann, herauszufinden, welche Geometrie - die anderen Betriebssysteme auf der Festplatte verwenden. - Diese Geometrie können Sie im Partitioneditor - eingeben. + Alternativ können Sie das frei verfügbare + Programm pfdisk.exe verwenden. Sie + finden es im Unterverzeichnis tools + auf der FreeBSD-CDROM und allen FreeBSD FTP-Servern). Mit + diesem Programm können Sie herausfinden, welche + Geometrie die anderen Betriebssysteme auf der Festplatte + verwenden. Diese Geometrie können Sie im + Partitioneditor eingeben. Gibt es irgendwelche Einschränkungen, wie ich die Festplatte aufteilen darf? Ja. Sie müssen sicherstellen, daß Ihre Rootpartition innerhalb der ersten 1024 Zylinder liegt, damit das BIOS den Kernel von Ihr booten kann. (Beachten Sie, daß es sich um eine Einschränkung durch das BIOS des PCs handelt und nicht durch FreeBSD). Für ein SCSI-Laufwerk bedeutet dies normalerweise, daß sich die Rootpartition in den ersten 1024MB befindet (oder in den ersten 4096MB, falls die Extended Translation eingeschaltet ist - siehe die vorherige Frage). Der entsprechende Wert für IDE ist 504MB. Verträgt sich FreeBSD mit Plattenmanagern? FreeBSD erkennt den Ontrack Plattenmanager und berücksichtigt ihn. Andere Plattenmanager werden nicht unterstützt. Falls Sie die Festplatte nur mit FreeBSD benutzen wollen, brauchen Sie keinen Plattenmanager. Wenn Sie Sie die Platte einfach in der vom BIOS maximal unterstützten Größe (normalerweise 504 Megabyte) konfigurieren, sollte FreeBSD erkennen, wieviel Platz Sie tatsächlich haben. Falls Sie eine alte Festplatte mit einem MFM-Controller verwenden, könnte es sein, daß Sie FreeBSD explizit angeben müssen, wieviele Zylinder es benutzen soll. Falls Sie die Festplatte mit FreeBSD und einem anderen Betriebssystem nutzen wollen, sollten Sie auch in der Lage sein, ohne einen Plattenmanager auszukommen: stellen sie einfach sicher, daß sich die Bootpartition von FreeBSD und der Bereich für das andere Betriebssystem in den ersten 1024 Zylindern befinden. Eine 20 Megabyte Bootpartition sollte völlig genügen, wenn Sie einigermaßen sorgfältig arbeiten. Beim Booten von FreeBSD erscheint Missing Operating System. Was ist passiert? Dies ist ein klassischer Fall von Konflikten bei den verwendeten Plattengeometrien von FreeBSD und DOS oder anderen Betriebssystemen. Sie werden FreeBSD neu installieren müssen. Bei Beachtung obiger Instruktionen wird in den meisten Fällen alles funktionieren. Wieso komme ich nicht weiter als bis zum F?-Prompt des Bootmanagers? Dies ist ein weiteres Symptom für das bereits in der vorherigen Frage beschriebene Problem. Ihre Einstellungen zur Geometrie im BIOS und in FreeBSD stimmen nicht überein! Falls Ihr Controller oder BIOS Zylinderumsetzung (oft als >1GB drive support bezeichnet), probieren Sie eine Umsetzung dieser Einstellung und Neuinstallation von FreeBSD. Muß ich den vollständigen Quellcode installieren? Im allgemeinen nicht. Wir empfehlen jedoch dringend die Installation des base Source-Kit, das viele der hier erwähnten Dateien enthält und des sys (Kernel) Source-Kit, das den Quellcode für den Kernel enthält. Außer dem Programm zur Konfiguration des Kernels (&man.config.8;) gibt es im System nichts, zu dessen Funktion der Quellcode erforderlich ist. Mit Ausnahme der Kernelquellen ist unsere Build-Struktur so aufgebaut, daß Sie den Quellcode von überall her per NFS read-only mounten und dennoch neue Binaries erstellen können. (Wegen der Einschränkung bezüglich der Kernelquellen empfehlen wir, diese nicht direkt nach /usr/src zu mounten, sondern irgendwoanders hin mit passenden symbolischen Links, um die Toplevel-Struktur des Quellbaumes zu duplizieren.) Die Quellen verfügbar zu haben und zu wissen, wie man ein System mit ihnen erstellt, wird es Ihnen wesentlich einfacher machen, zu zukünftigen Ausgaben von FreeBSD zu wechseln. Um einen Teil der Quellen auszuwählen, verwenden - Sie den Menuepunkt Custom, wenn Sie sich im Menue + Sie den Menüpunkt Custom, wenn Sie sich im Menü Distributions des Systeminstallationstools befinden. Muß ich einen Kernel erstellen? Ursprünglich war die Erstellung eines neuen Kernels bei fast jeder Installation von FreeBSD erforderlich, aber neuere Ausgaben haben von der Einführung eines weitaus benutzerfreundlicheren Kernelkonfigurationswerkzeugs profitiert. Geben Sie am FreeBSD Boot-Prompt (boot:) ein, um in - ein visuelles Konfigurationsmenue zu gelangen. Dieses + ein visuelles Konfigurationsmenü zu gelangen. Dieses Programm ermöglicht Ihnen die Konfiguration der Kerneleinstellungen für die gebräuchlichsten ISA-Karten. Es wird weiterhin empfohlen, früher oder später einen neuen Kernel zu erstellen, der nur die benötigten Treiber enthält, um ein wenig Hauptspeicher zu sparen, aber für die meisten Systeme ist dies ist nicht länger erforderlich. Soll ich DES oder MD5 zur Verschlüsselung der Paßwörter benutzen? FreeBSD benutzt standardmäßig MD5 zur Verschlüsselung der Paßwörter. Es wird angenommen, daß diese Methode sicherer ist als das traditionell benutzte Verfahren, das auf dem DES Algorithmus basierte. Es ist immer noch möglich, DES-Paßwörter zu benutzen, wenn Sie die Datei mit den Paßwörtern mit älteren System austauschen müssen. Ältere System verstehen meist nur das unsichere Verfahren, dieses steht Ihnen zur Verfügung, wenn Sie mit sysinstall die crypto Distribution installieren. Sie können auch die crypto Sourcecodes installieren, wenn Sie Ihr System über die Sourcen aktualisieren. Das für neue Paßwörter benutzte Verschlüsselungsverfahren wird über die Einstellung passwd_format in /etc/login festgelegt. Die möglichen Werte sind entweder des (falls installiert) oder md5. Weitere Informationen über die Einstellungen für den Login erhalten Sie in &man.login.conf.5;. Woran kann es liegen, daß ich zwar von der Diskette booten kann, aber nicht weiter als bis zur Meldung Probing Devices... komme? Falls Sie ein IDE-Zip- oder Jaz-Laufwerk eingebaut haben, entfernen Sie es und versuchen Sie es erneut. Solche Laufwerke könnten dem Bootvorgang stören. Nach der Installation des Systems können Sie das Laufwerk wieder einbauen. Dieser Fehler wird hoffentlich in einer späteren Version behoben werden. Wieso wird mit der Fehler panic: cant mount root gemeldet, wenn ich das System nach der Installation reboote? Dieser Fehler beruht auf Unstimmigkeiten zwischen den Festplatteninformationen im Bootblock und denen im Kernel. Der Fehler tritt normalerweise auf IDE-Systemen mit zwei Festplatten auf, bei denen die Festplatten als Master- oder Single-Device auf separaten IDE-Controllern angeschlossen sind und FreeBSD auf der Platte am zweiten Controller installiert wurde. Der Bootblock vermutet, daß das System auf wd1 (der zweiten BIOS-Platte) installiert ist, während der Kernel der ersten Platte auf dem zweiten Controller die Gerätekennung wd2 zuteilt. Der Kernel versucht nach der Geräteüberprüfung die vom Bootblock angenommene Bootdisk wd1 zu mounten, obwohl sie in Wirklichkeit wd2 heißt - und scheitert. Tun Sie folgendes, um dieses Problem zu beheben: Wenn Sie FreeBSD 3.3 oder neuer benutzen, müssen Sie das System rebooten und Enter drücken, wenn die Meldung Booting kernel in 10 seconds; hit [Enter] to interrupt erscheint. Dadurch gelangen Sie in den Boot Loader. Geben Sie nun root_disk_unit="disk_number" ein. disk_number hat den Wert 0, wenn FreeBSD auf dem Master des ersten IDE-Controllers installiert wurde; 1, wenn FreeBSD auf dem Slave des ersten IDE-Controllers installiert wurde; 2, wenn FreeBSD auf dem Master des zweiten IDE-Controllers installiert wurde; und 3, wenn FreeBSD auf dem Slave des zweiten IDE-Controllers installiert wurde. Nach der Eingabe von boot sollte Ihr System jetzt korrekt starten. Damit Sie dieses Ritual nicht bei jedem Start des Systems durchführen müssen, sollten Sie die Zeile root_disk_unit="disk_number" in die Datei /boot/loader.conf.local eintragen. Wenn Sie FreeBSD 3.2 oder eine ältere Version benutzen, geben Sie am Prompt Boot: 1:wd(2,a)kernel ein und betätigen Sie die Enter-Taste. Wenn das System nun startet, führen Sie den Befehl echo "1:wd(2,a)kernel" > /boot.config aus, um - diese Bootzeichenfolge zur Voreinstellung zu + diese Bootreihenfolge zur Voreinstellung zu machen. Stellen Sie eine ununterbrochene Folge der Festplatten her, indem Sie die FreeBSD-Platte am ersten IDE-Controller anschließen. Erstellen Sie einen neuen Kernel: modifizieren Sie die wd-Konfigurationszeilen wie folgt: controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 # disk wd1 at wdc0 drive 1 # Kommentieren Sie diese Zeile aus controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr disk wd1 at wdc1 drive 0 # Ändern Sie wd2 in wd1 disk wd2 at wdc1 drive 1 # Ändern Sie wd3 in wd2 Installieren Sie den neuen Kernel. Falls sie Ihre Festplattenanschlüsse umgesteckt haben und die alte Konfiguration wiederherstellen möchten, stecken Sie die Anschlüsse wie gewünscht um und rebooten Sie. Ihr System sollte nun fehlerfrei booten. Gibt es eine Hauptspeicherbegrenzung? Es werden maximal 4 Gigabyte Hauptspeicher unterstützt. Details zu einer entsprechenden, getesteten Konfiguration finden Sie unter Konfiguration von WCArchive. Seien Sie vorsichtig, wenn Sie soviel Hauptspeicher in Ihrem Rechner benutzen möchten. Benutzen Sie ggfs. ECC-Speicher und Module mit neun (statt der üblichen 18) Chips, um die kapazitive Belastung zu reduzieren. Wo liegen die Grenzen für ffs-Dateisysteme? Theoretisch liegt das Limit für ffs-Dateisysteme bei 8 Terabyte (2G-Blöcke) oder 16TB für die Standard-Blockgröße von 8k. In der Praxis setzt die Software das Limit auf 1 Terabyte herab, aber durch Modifikationen sind auch Dateisysteme mit 4 Terabyte möglich (und existieren auch). Die maximale Größe einer einzelnen ffs-Datei liegt bei ungefähr 1G Blöcken (4TB, falls die Blockgröße 4k beträgt). Maximale Dateigröße Blockgröße 2.2.7-stable 3.0-current geht sollte gehen 4K 4T-1 4T-1 4T-1 >4T 8K >32G 8T-1 >32G 32T-1 16K >128G 16T-1 >128+G 32T-1 32K >512G 32T-1 >512G 64T-1 64K >2048G 64T-1 >2048G 128T-1
Wenn die im Dateisystem verwendete Blockgröße 4k beträgt, wird mit dreifacher Indirektion gearbeitet und die Limitierung sollte durch die höchste Blocknummer erfolgen, die mit dreifacher Indirektion dargestellt werden kann (ungefähr 1k^3 + 1k^2 + 1k). In Wirklichkeit liegt das Limit aber bei der (falschen) Anzahl von 1G-1 Blocknummern im Dateisystem. Die maximale Anzahl Blocknummern müßte 2G-1 sein. Es gibt einige Fehler für Blocknummern nahe 2G-1, aber solche Blocknummern sind bei einer Blockgröße von 4k unerreichbar. Bei Blocknummern von 8k und größer sollte das Limit bei 2G-1 Blocknummern liegen, aber tatsächlich liegt es bei bei 1G-1 Blocknummern. Außer unter -STABLE sind Blöcke in der dritten Indirektion unerreichbar, wodurch das Limit auf die durch zweifache Indirektion maximal darstellbare Blocknummer reduziert wird (ca. (Blockgröße/4)^2 + (Blockgröße/4)). Unter -CURRENT könnte die Überschreitung dieser Grenze Probleme verursachen. Die Verwendung der korrekten Grenze von 2G-1 verursacht Probleme.
- - - Wie bekomme ich 1TB-Dateien auf meine - Diskette? - - - - Ich habe mehrere virtuelle auf Disketten :-). Die - maximale Dateigröße hat nicht unbedingt etwas - mit der maximalen Plattengröße zu tun. Die - maximale Plattengröße beträgt 1TB. Es ist - ein Feature, daß die Dateigröße die - Plattengröße übersteigen kann. - - Durch das folgende Beispiel wird eine Datei der - Größe 8T-1 erstellt, die insgesamt 32k - Plattenplatz (3 indirekte Blöcke und ein Datenblock) - auf einer kleinen Rootpartition in Anspruch nimmt. Dieser - dd-Befehl setzt ein dd-Programm voraus, das große - Dateien unterstützt. - - &prompt.user; cat foo -df . -dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1 -ls -l z -du z -df . -&prompt.user; sh foo -Filesystem 1024-blocks Used Avail Capacity Mounted on -/dev/da0a 64479 27702 31619 47% / -1+0 records in -1+0 records out -1 bytes transferred in 0.000187 secs (5346 bytes/sec) --rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z -32 z -Filesystem 1024-blocks Used Avail Capacity Mounted on -/dev/da0a 64479 27734 31587 47% / - - Bruce Evans, September 1998 - - - Wieso erhalte ich die Fehlermeldung archsw.readin.failed beim Start des Systems, nachdem ich habe einen neuen Kernel erstellt habe? Sie können den zu bootenden Kernel direkt im zweiten Schritt angeben, indem Sie eine beliebige Taste drücken, wenn das | erscheint und bevor der Loader startet. Genauer: Sie haben die Kernelquellen erneuert, und von dort ein neues Kernel-Builtin installiert, ohne make world auszuführen. Das geht nicht - führen Sie make world aus. Wie führe ich ein Update von 3.X nach 4.X durch? Wir raten Ihnen dringend, dazu einen der Snapshots zu verwenden. Die Snapshots von 4-STABLE sind auf releng4.FreeBSD.org + url="ftp://releng4.FreeBSD.org/">ftp://releng4.FreeBSD.org verfügbar. + Wegen der vielen Unterschiede zwischen 3.X und + 4-STABLE wird ein in einem Schritt durchgeführtes + Update höchstwahrscheinlich fehlschlagen, wenn Sie + die Sourcen verwenden. Dieses Update muß in + mehreren Schritten durchgeführt werden. Der erste + Schritt ist ein Update auf das aktuelle 3-STABLE + (RELENG_3). Der zweite Schritt ist ein + Update auf 4.1.1-RELEASE + (RELENG_4_1_1_RELEASE), bevor Sie dann + im dritten Schritt zu 4-STABLE + (RELENG_4) kommen. + Wenn Sie den Quellcode für das Update benutzen wollen, finden Sie im FreeBSD Handbuch weitere Informationen. Wenn Sie FreeBSD erst seit kurzer Zeit nutzen, sollten Sie auf gar keinen Fall über den Quellcode updaten, das gilt ganz besonders für das Update von 3.X nach 4.X. Falls Sie es dennoch versuchen wollen, sollten Sie vorher die entsprechenden Anleitungen sehr sorgfältig durchlesen! Was sind die Sicherheits-Profile? In einem Sicherheits-Profil werden verschiedene Einstellungen zusammengefaßt, mit denen - das gewüschte Verhältnis zwischen Sicherheit und + 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. Nutzt man ein - strengeres Sicherheits-Profil, werden weniger Dienste - automatisch gestartet. Dies ist eines der Grundprinzipien - der Sicherheit: Benutze nichts, was nicht unbedingt - benutzt werden muß. - - Bitte beachten Sie, daß die Sicherheits-Profile - nur Voreinstellungen sind. Sie können nach der - Installation von FreeBSD alle Dienste einzeln aktivieren oder - deaktivieren, indem Sie die die entsprechenden Optionen in - /etc/rc.conf hinzufügen bzw. - ändern. Weitere Informationen erhalten Sie in der - Onlinehilfe &man.rc.conf.5;. - - In der Tabelle sind die Auswirkungen der - Sicherheits-Profile zusammengefaßt. Jedes - Sicherheits-Profil belegt eine Zeile, die - beinflußten Dienste bzw. Optionen stehen in den - Spalten. - - - Mögliche Sicherheits-Profile - - - - - - - Extreme - - Moderate - - - - - - &man.sendmail.8; - - NEIN - - JA - - - - &man.sshd.8; - - NEIN - - JA - - - - &man.portmap.8; - - NEIN - - EVTL. - - Der Dienst portmapper wird - aktiviert, wenn die Maschine während der - Installation als NFS-Client oder NFS-Server - konfiguriert wurde. - - - - - - NFS server - - NEIN - - JA - - - - &man.securelevel.8; - - JA (2) - - Wenn Sie ein Sicherheits-Profil nutzen, - bei dem eine Sicherheits-Stufe gesetzt wird - (Extreme or High), sollten Sie sich über - die Auswirkungen im klaren sein. Lesen Sie - die Onlinehilfe zu &man.init.8; und achten - Sie auf die Bedeutung der Sicherheits-Stufen. - Wenn Sie das nicht tun, könnten Sie - später jede Menge Probleme haben! - - - - NEIN - - - -
- - - Die Sicherheits-Profile sind kein Allheilmittel! - Wenn Sie hier ein strenges Profil auswählen, - bedeutet daß nicht, daß Sie sich nicht mehr - um das Thema Sicherheit kümmern müssen. - Behalten Sie die aktuellen Entwicklungen im Auge (z.B. - auf der entsprechenden Mailing - Liste), benutzen Sie sichere Kennwörter - bzw. Kennsätze und halten Sie die Grundregeln zum - Thema Sicherheit ein. Das Sicherheits-Profil ist - lediglich eine Möglichkeit, das Verhältnis - zwischen Sicherheit und Benutzerfreundlichkeit schon bei - der Installation einzustellen. - - - - Der Mechanismus der Sicherheits-Profile wurde - für die Installation entwickelt. Wenn Sie FreeBSD - bereits installiert haben, ist es wahrscheinlich - sinnvoller, die einzelnen Dienste direkt zu aktivieren - oder zu deaktivieren. Wenn Sie wirklich ein - Sicherheits-Profil benutzen wollen, können Sie - &man.sysinstall.8; erneut starten, um es zu - aktivieren. - + entweder aktiviert oder deaktiviert. Die Details sind im + Abschnitt Sicherheits-Profile + des Handbuch-Kapitels Nach der + Installation enthalten.
Hardware-Kompatibilität Unterstützt FreeBSD andere Architekturen außer x86? Ja. FreeBSD ist zur Zeit auf der Architekturen Intel x86 und DEC (bzw. Compaq) Alpha verfügbar. Außerdem wurde Interesse an einem Port von FreeBSD zur SPARC-Architektur ausgedrückt. Schließen Sie sich der Mailinglistefreebsd-sparc@FreeBSD.org an, wenn Sie bei dem Projekt teilnehmen möchten. Die Neuzugänge auf der Liste der in Zukunft unterstützten Plattformen sind IA-64 und PowerPC, weitere Informationen erhalten Sie auf den Mailinglisten freebsd-ia64@FreeBSD.org und/oder freebsd-ppc@FreeBSD.org. Schließen Sie sich dieser Mailingliste freebsd-platforms@FreeBSD.org an, wenn Sie an grundsätzlichen Diskussionen über neue Architekturen interessiert sind. Falls Ihre Maschine eine andere Architektur aufweist und Sie unbedingt sofort etwas benötigen, schlagen wir vor, daß Sie sich einmal NetBSD oder OpenBSD ansehen. + + + Ich will mir neue Hardware für mein + FreeBSD-System zulegen, was soll ich kaufen? + + + + Diese Frage wird ständig auf den + FreeBSD-Mailinglisten diskutiert. Da sich die Hardware + ständig ändert, ist das allerdings keine + Überraschung. Trotzdem sollten + Sie unbedingt die Hardware Notes und + die + Archive der Mailinglisten durchsehen, bevor Sie + nach der neuesten/besten Hardware fragen. Normalerweise + gab es kurz zuvor eine Diskussion über genau die + Hardware, die Sie sich zulegen wollen. + + Wenn Sie sich einen Laptop zulegen wollen, sollten Sie + einen Blick in das Archiv der Mailingliste FreeBSD-mobile + werfen. Ansonsten empfiehlt sich ein Blick in das Archiv + von FreeBSD-questions oder auch einer spezialisierte + Mailingliste für diese Art von Hardware. + + + Welche Arten von Festplatten werden von FreeBSD unterstützt? FreeBSD unterstützt EIDE- und SCSI-Laufwerke (mit kompatiblen Controllern - siehe folgenden Abschnitt), sowie alle Laufwerke, die die original Western Digital-Schnittstelle (MFM, RLL, ESDI und natürlich IDE) benutzen. Ein paar Controller mit proprietären Schnittstellen könnten nicht laufen: halten Sie sich an WD1002/3/6/7-Schnittstellen und Clones. Welche SCSI-Controller werden unterstützt? - Sie finden eine vollständige Liste im Handbuch. + Sie finden eine vollständige und aktuelle Liste + in den Release + Notes. Welche CDROM-Laufwerke werden von FreeBSD unterstützt? Jedes an einem unterstützten Controller angeschlossene SCSI-Laufwerk wird unterstützt. Die folgenden proprietären CDROM-Schnittstellen werden ebenfalls unterstützt: Mitsumi LU002 (8bit), LU005 (16bit) und FX001D (16bit 2x Speed). Sony CDU 31/33A Sound Blaster Non-SCSI CDROM Matsushita/Panasonic CDROM ATAPI compatible IDE CDROMs Von allen Nicht-SCSI-Laufwerken ist bekannt, daß sie im Vergleich zu SCSI-Laufwerken extrem langsam sind. Einige ATAPI-CDROMs könnten nicht funktionieren. Seit Version 2.2 unterstützt die bei FreeBSD Mall erhältliche FreeBSD-CDROM das direkte Booten von CD. Welche CD-Brenner werden von FreeBSD unterstützt? - FreeBSD unterstützt alle ATAPI-kombatiblen IDE + FreeBSD unterstützt alle ATAPI-kompatiblen IDE CD-R und CD-RW Brenner. Wenn Sie FreeBSD ab Version 4.0 benutzen, werfen Sie einen Blick in die Onlinehilfe zu &man.burncd.8;. Wenn Sie eine ältere Version von FreeBSD benutzen, sollten Sie sich die Beispiele in /usr/share/examples/atapi ansehen. FreeBSD unterstützt ebenfalls SCSI CD-R und CD-RW Brenner. Installieren und benutzen Sie das Paket cdrecord aus der Ports-Sammlung. Dazu müssen Sie allerdings das Gerät pass mit in Ihren Kernel aufnehmen. Unterstützt FreeBSD ZIP-Laufwerke? FreeBSD unterstützt natürlich alle gängigen SCSI-ZIP-Laufwerke. Ihr 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. ATAPI (IDE) Zip-Laufwerke werden von FreeBSD 2.2.6 und späteren Versionen unterstützt. Seit Version 3.0 unterstützt FreeBSD ZIP-Laufwerke, die an der parallel Schnittstelle angeschlossen sind. Falls Sie eine genügend aktuelle Version benutzen, sollten Sie überprüfen, ob Ihr Kernel die folgenden Treiber enthält: scbus0, da0, ppbus0 und vp0 (der GENERIC-Kernel enthält alle, außer vp0). Wenn diese Treiber vorhanden sind, sollte das Laufwerk an der parallelen Schnittstelle als /dev/da0s4 verfügbar sein. Zip-Datenträger können mit mount /dev/da0s4 /mnt ODER (DOS-formatierte) mount_msdos /dev/da0s4 /mnt gemountet werden. - Lesen Sie auch diese Anmerkung zu + Lesen Sie auch den FAQ-Eintrag zu Wechseldatenträgern und diese zur - Formatierung. + linkend="disklabel">die Anmerkungen zum Thema + Formatierung im Kapitel + Administration. Unterstützt FreeBSD JAZ, EZ und andere Wechsellaufwerke? Abgesehen von der IDE-Version der EZ-Laufwerke, handelt es sich ausschließlich um SCSI-Geräte. Unter FreeBSD müßten sie sich also alle wie SCSI-Platten und das IDE-EZ-Laufwerk müßte sich wie ein IDE-Laufwerk verhalten. Ich bin mir nicht sicher, wie gut FreeBSD den Wechsel der Datenträger während des Betriebs unterstützt. Sie werden die Laufwerke vor einem Datenträgerwechsel natürlich unmounten und sicherstellen müssen, daß externe Einheiten während des Bootens eingeschaltet sind, damit FreeBSD sie erkennen kann. Lesen Sie auch diesen Hinweis zur Formatierung. Welche seriellen Multi-Port-Karten werden von FreeBSD unterstützt? Es existiert eine Liste der unterstützten Karten im Abschnitt Verschiedene + url="../handbook/install.html#INSTALL-MISC">Verschiedene Geräte des Handbuchs. Von einigen nicht NoName-Nachbauten ist ebenfalls bekannt, daß sie funktionieren, speziell von den AST-kompatiblen. In &man.sio.4; finden Sie weitere Informationen zur Konfiguration solcher Karten. Unterstützt FreeBSD meine Tastatur mit USB-Anschluß? Die Unterstützung für USB-Geräte ist seit FreeBSD 3.1 Bestandteil des Systems. Die Unterstützung war allerdings nicht ganz ausgereift; einige der Probleme konnten bis zur Veröffentlichung von FreeBSD 3.2 nicht behoben werden. Wenn Sie die Treiber für USB-Tastaturen selbst testen möchten, sollten Sie den unten aufgeführten Anweisungen folgen: Benutzen Sie FreeBSD 3.2 oder eine neuere Version. Tragen Sie die folgenden Zeilen in die Konfigurationsdatei Ihres Kernels ein und erzeugen Sie einen neuen Kernel. device uhci device ohci device usb device ukbd options KBD_INSTALL_CDEV Falls Sie eine ältere FreeBSD-Version als FreeBSD 4.0 benutzen, müssen Sie diese Einträge verwenden: controller uhci0 controller ohci0 controller usb0 controller ukbd0 options KBD_INSTALL_CDEV Erzeugen Sie im Verzeichnis /dev die notwendigen Dateien: &prompt.root; cd /dev &prompt.root; ./MAKEDEV kbd0 kbd1 Tragen Sie in der /etc/rc.conf die folgenden Zeilen ein: usbd_enable="YES" usbd_flags="" Nach einem Neustart des Systems ist die AT-Tastatur als /dev/kbd0 und die USB-Tastatur als /dev/kbd1 verfügbar. Dies gilt natürlich nur, wenn beide Tastaturen angeschlossen sind; falls nur die USB-Tastatur angeschlossen ist, ist diese als /dev/ukbd0 verfügbar. Wenn Sie die USB-Tastatur an der Systemkonsole benutzen wollen, müssen Sie dies dem System explizit mitteilen. Dazu muß das folgende Kommando während des Systemstarts ausgeführt werden: &prompt.root; kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null Wenn Sie nur die USB-Tastatur angeschlossen haben, ist diese als /dev/kbd0 verfügbar; daher muß in diesem Fall das folgende Kommando benutzt werden: &prompt.root; kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/null Tragen Sie dieses Kommando in Datei /etc/rc.i386 ein. Sobald Sie diese Schritte durchgeführt haben, sollte die USB-Tastatur ohne weitere Änderungen auch unter X benutzbar sei. Zur Zeit kann es noch Probleme geben, wenn Sie eine USB-Tastatur im laufenden Betrieb einstecken oder abziehen. Um Probleme zu vermeiden, sollten Sie die Tastatur anschließen, bevor Sie das System anschalten und die Tastatur nicht abziehen, solange das System noch läuft. Weitere Informationen erhalten Sie in &man.ukbd.4;. Ich habe eine unübliche Busmaus. Wie muß ich sie konfigurieren? FreeBSD unterstützt die Busmaus und InPort-Busmaus von Herstellern wie Microsoft, Logitech und ATI. Der Bus-Gerätetreiber ist bei FreeBSD 2.x standardmäßig im GENERIC-Kernel eingebunden; ab Version 3.0 müssen Sie ihn selbst in die Konfigurationsdatei für Ihren angepaßten Kernel einbinden. Fügen Sie die folgende Zeile in Ihre Konfigurationsdatei ein, falls Sie sich einen angepaßten Kernel mit dem Busmaustreiber erstellen FreeBSD 3.0 und ältere Versionen device mse0 at isa? port 0x23c tty irq5 vector mseintr FreeBSD 3.X außer 3.0 device mse0 at isa? port 0x23c tty irq5 FreeBSD 4.X device mse0 at isa? port 0x23c irq5 Die Busmaus wird üblicherweise zusammen mit einer speziellen Karte ausgeliefert. Sie könnte es Ihnen ermöglichen, andere Werte für die Port-Adresse und den Interrupt zu setzen. Weitere Informationen finden Sie in Handbuch zu Ihrer Maus und in der &man.mse.4; Manualpage. Wie benutze ich meine PS/2 (Mouse-Port oder Tastatur)-Maus? Falls Sie eine spätere FreeBSD-Version als 2.2.5 benutzen, ist der entsprechende Treiber psm im Kernel enthalten und aktiviert. Der Kernel sollte Ihre PS/2-Maus beim Booten erkennen. - Wenn Sie eine gerigfügig frühere Version von + Wenn Sie eine geringfügig frühere Version von FreeBSD benutzen (2.1.x oder höher), können Sie den Treiber während der Installation einfach im - Kernelkonfigurationsmenue aktivieren, oder später mit + Kernelkonfigurationsmenü aktivieren, oder später mit der Option am Bootprompt boot:. Da der Treiber standardmäßig deaktiviert ist, werden Sie ihn also explizit aktivieren müssen. Falls Sie eine ältere FreeBSD-Version benutzen, müssen Sie folgende Zeile in Ihre Kernelkonfigurationsdatei einfügen und den Kernel neu kompilieren. FreeBSD 3.0 und ältere Versionen device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr FreeBSD 3.1 und neuere Versionen: device psm0 at isa? tty irq 12 Ab FreeBSD 4.0: device psm0 at atkbdc? irq 12 Lesen Sie den Handbucheintrag zur Kernelkonfiguration, falls Sie sich mit der Erstellung eines Kernels nicht auskennen. Wenn Sie den Kernel soweit haben, daß er psm0 beim Booten korrekt erkennt, stellen Sie sicher, daß sich im Verzeichnis /dev ein Eintrag für psm0 befindet. Durch Eingabe von &prompt.root; cd /dev; sh MAKEDEV psm0 können Sie einen erstellen, wenn Sie als root angemeldet sind. Kann man die Maus irgendwie außerhalb des X Window Systems benutzen? Falls Sie den standard Konsoltreiber syscons benutzen, können Sie den Mauszeiger auf Textkonsolen zum Kopieren und Einfügen von Text verwenden. Starten Sie den Mausdämon moused und schalten Sie den Mauszeiger auf der virtuellen Konsole ein: &prompt.root; moused -p /dev/xxxx -t yyyy &prompt.root; vidcontrol -m on xxxx bezeichnet hierbei den Gerätename der Maus und yyyy das Protokoll. Unterstützte Protokolle finden Sie in der &man.moused.8; Manualpage. Wahrscheinlich wollen Sie den Mausdämon automatisch beim Booten starten. In Version 2.2.1 müssen Sie hierzu die folgenden Variablen in /etc/sysconfig setzen: mousedtype="yyyy" mousedport="xxxx" mousedflags="" In den Versionen 2.2.2 bis 3.0 müssen Sie die folgenden Variablen in /etc/rc.conf setzen. moused_type="yyyy" moused_port="xxxx" moused_flags="" Wenn Sie eine PS/2-Maus besitzen und FreeBSD 3.1 (oder neuer) benutzen, brauchen Sie nur die Zeile moused_enable="YES" in die Datei /etc/rc.conf einzutragen. Falls Sie den Mausdämon auf allen virtuellen Bildschirmen anstatt nur während des Bootens auf der Konsole benutzen wollen, tragen Sie außerdem folgendes in /etc/rc.conf ein. allscreens_flags="-m on" Beginnend mit FreeBSD 2.2.6 ist der Mausdämon in der Lage, das richtige Protokoll automatisch zu erkennen, falls es sich nicht um ein relativ altes serielles Mausmodell handelt. Geben Sie auto als Protokoll an, um die automatische Erkennung zu aktivieren. Während der Mausdämon läuft, muß der Zugriff auf die Maus zwischen dem Mausdämon und anderen Programmen, wie z.B. X Windows koordiniert werden. Lesen Sie auch einen anderen Abschnitt zu diesem Thema. Wie funktioniert das Kopieren und Einfügen von Text mit der Maus auf einer Textkonsole? Wenn Sie es geschafft haben, den Mausdämon zu starten (siehe vorherigen Abschnitt), halten Sie die linke Maustaste gedrückt und bewegen Sie die Maus, um einen Textabschnitt zu markieren. Dann drücken Sie die mittlere oder rechte Maustaste, um ihn an der Cursorposition einzufügen. In den Versionen 2.2.6 und späteren bewirkt das Drücken der mittleren Maustaste das Einfügen des Textes. Das Drücken der rechten Maustaste erweitert den markierten Textabschnitt. Evtl. möchten Sie Tasten umbelegen oder die mittlere Taste emulieren, falls Ihre Maus keine hat. Details hierzu finden Sie in der &man.moused.8; Manualpage. Wird meine USB-Maus von FreeBSD unterstützt? - Die Unterstützung für USB-Geräte ist + Experimentelle Treiber für USB-Geräte sind seit FreeBSD 3.1 Bestandteil des Systems. Die - Unterstützung war allerdings nicht ganz ausgereift; - einige der Probleme konnten bis zur Veröffentlichung - von FreeBSD 3.2 nicht behoben werden. Wenn Sie die - Treiber für USB-Mäuse selbst testen - möchten, sollten Sie den unten aufgeführten - Anweisungen folgen: + Unterstützung in FreeBSD 3.X war allerdings nicht + ganz ausgereift. Seit FreeBSD 4.0 sollten + USB-Geräten auf Anhieb funktionieren. Wenn Sie die + Treiber für USB-Mäuse in FreeBSD 3.X selbst + testen möchten, sollten Sie den unten + aufgeführten Anweisungen folgen: Benutzen Sie FreeBSD 3.2 oder eine neuere Version. Tragen Sie die folgenden Zeilen in die Konfigurationsdatei Ihres Kernels ein und erzeugen Sie einen neuen Kernel. device uhci device ohci device usb device ukbd options KBD_INSTALL_CDEV Falls Sie eine ältere FreeBSD-Version als FreeBSD 4.0 benutzen, müssen Sie diese Einträge verwenden: controller uhci0 controller ohci0 controller usb0 controller usm0 Erzeugen Sie im Verzeichnis /dev die notwendigen Dateien: &prompt.root; cd /dev &prompt.root; ./MAKEDEV ums0 Tragen Sie in der /etc/rc.conf die folgenden Zeilen ein: moused_enable="YES" moused_type="auto" moused_port="/dev/ums0" moused_flags="" usbd_enable="YES" usbd_flags="" Weitergehende Informationen zum Thema moused finden sie im vorherigen Abschnitt. Wenn Sie Ihre USB-Maus auch unter X benutzen wollen, müssen sie die Datei XF86Config ändern. Wenn Sie XFree86 3.3.2 oder eine neuere Version benutzen, müssen die folgenden Zeilen im Abschnitt Pointer stehen: Device "/dev/sysmouse" Protocol "Auto" Wenn sie eine ältere Version von XFree86 benutzen, müssen im Abschnitt Pointer die folgenden Angaben stehen: Device "/dev/sysmouse" Protocol "SysMouse" Weitergehende Informationen zum Thema "Maus und X" erhalten Sie hier. Zur Zeit kann es noch Probleme geben, wenn Sie eine USB-Maus im laufenden Betrieb einstecken oder abziehen. Um Probleme zu vermeiden, sollten Sie die Maus anschließen, bevor Sie das System anschalten und die Maus nicht abziehen, solange das System noch läuft. Meine Maus hat ein neumodisches Rad und mehr Knöpfe. Kann ich sie in FreeBSD benutzen? Unglücklicherweise lautet die Antwort: Vielleicht. Solche Mäuse mit zusätzlichen Extras erfordern in den meisten Fällen spezielle Treiber. Wenn der Gerätetreiber für die Maus oder das Anwendungsprogramm keine spezielle Unterstützung für die Maus bietet, wird sie sich wie eine gewöhnliche Maus mit zwei oder drei Knöpfen verhalten. Ob und wie Sie das Rad unter X nutzen können, können Sie im passenden Abschnitt der FAQ erfahren. Wieso springt der Cursor wild über den Bildschirm, wenn ich eine PS/2-Maus mit Rad benutze? Die bis einschließlich FreeBSD 3.2 genutzte Version des Treibers für PS/2-Mäuse unterstützt einige Mäuse nicht richtig. Dazu gehört die Logitech M-S48 und deren OEM-Version. Wenden Sie die folgenden Patch auf /sys/i386/isa/psm.c an und erzeugen Sie einen neuen Kernel. Index: psm.c =================================================================== RCS file: /src/CVS/src/sys/i386/isa/Attic/psm.c,v retrieving revision 1.60.2.1 retrieving revision 1.60.2.2 diff -u -r1.60.2.1 -r1.60.2.2 --- psm.c 1999/06/03 12:41:13 1.60.2.1 +++ psm.c 1999/07/12 13:40:52 1.60.2.2 @@ -959,14 +959,28 @@ sc->mode.packetsize = vendortype[i].packetsize; /* set mouse parameters */ +#if 0 + /* + * A version of Logitech FirstMouse+ won't report wheel movement, + * if SET_DEFAULTS is sent... Don't use this command. + * This fix was found by Takashi Nishida. + */ i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS); if (verbose >= 2) printf("psm%d: SET_DEFAULTS return code:%04x\n", unit, i); +#endif if (sc->config & PSM_CONFIG_RESOLUTION) { sc->mode.resolution = set_mouse_resolution(sc->kbdc, - (sc->config & PSM_CONFIG_RESOLUTION) - 1); + (sc->config & PSM_CONFIG_RESOLUTION) - 1); + } else if (sc->mode.resolution >= 0) { + sc->mode.resolution + = set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution); + } + if (sc->mode.rate > 0) { + sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate); } + set_mouse_scaling(sc->kbdc, 1); /* request a data packet and extract sync. bits */ if (get_mouse_status(sc->kbdc, stat, 1, 3) < 3) Dieses Problem sollte ab FreeBSD 3.3 nicht mehr auftreten. Wie benutze ich Maus/Trackball/Touchpad auf meinem Laptop? Bitte lesen Sie die Antwort - zur vorherigen Frage und sehen Sie sich diese Anmerkung auf der - Mobile-Computing-Seite an. + zur vorherigen Frage und sehen Sie sich die + Webseite über Mobile + Computing an. Welche Arten von Bandlaufwerken werden unterstützt? FreeBSD unterstützt SCSI-, QIC-36- (mit QIC-02-Schnittstelle) und QIC-40/80-Bandlaufwerke (diskettenbasiert). Hierzu gehören auch 8-mm (aka Exabyte) und DAT-Laufwerke. Die QIC-40/80-Laufwerke sind bekanntlich sehr langsam. Einige der frühen 8-mm-Laufwerke sind nicht besonders kompatibel zu SCSI-2 und könnten unter FreeBSD nicht einwandfrei funktionieren. Unterstützt FreeBSD Bandwechsler? - FreeBSD 2.2 untestützt SCSI-Wechsler mit dem + FreeBSD 2.2 unterstützt SCSI-Wechsler mit dem Gerät ch und dem Befehl - chio. Datails zum Betrieb des + chio. Details zum Betrieb des Wechslers können Sie in der Manualpage &man.chio.1; finden. Falls Sie nicht AMANDA oder ein anderes Produkt benutzen, das den Wechsler bereits kennt, bedenken Sie, daß die Programme nur wissen, wie sie ein Band von einem Punkt zu einem anderen bewegen müssen. Sie selbst müssen sich also merken, in welchem Einschub sich ein Band befindet und zu welchem Einschub das Band, das sich gerade im Laufwerk befindet, zurück muß. Welche Soundkarten werden von FreeBSD unterstützt? FreeBSD unterstützt die Soundkarten SoundBlaster, SoundBlaster Pro, SoundBlaster 16, Pro Audio Spectrum 16, AdLib und Gravis UltraSound. MPU-401 und kompatible MIDI-Karten werden begrenzt unterstützt. Ebenso werden Karten, die der Microsoft Sound System-Spezifikation entsprechen, durch den pcm-Treiber unterstützt. Das gilt nur für Sound! Dieser Treiber unterstützt keine CDROMs, SCSI oder Joysticks auf diesen Karten, außer der SoundBlaster. Die SoundBlaster-SCSI-Schnittstelle und einige Nicht-SCSI-CDROMs werden unterstützt, Sie können von diesen Geräten aber nicht booten. Abhilfen für fehlenden Sound von es1370 mit dem pcm-Treiber? Sie können den folgenden Befehl jedesmal nach dem Booten ausführen: &prompt.root; mixer pcm 100 vol 100 cd 100 Welche Netzwerkkarten unterstützt FreeBSD? Sie finden im Abschnitt Ethernet-Karten + url="../handbook/install.html#INSTALL-NICS">Ethernet-Karten des Handbuchs eine vollständige Liste. Ich habe keinen mathematischen Co-Prozessor - ist das schlimm? Dies betrifft nur Besitzer von 386/486SX/486SLC - andere Maschinen haben in ihrer CPU einen integriert. Im allgemeinen wird das keine Probleme verursachen, aber es gibt Gelegenheiten bei denen es Sie betreffen wird - entweder bei der Performance oder bei der Genauigkeit der Emulation (lesen Sie den Abschnitt über Gleitpunkt-Emulation). Insbesondere wird das Zeichnen von Bögen in X SEHR langsam sein. Es wird dringend empfohlen, daß Sie sich einen mathematischen Co-Prozessor kaufen - er ist sein Geld wert. Einige Co-Prozessoren sind besser als andere. Es tut uns weh, es zu sagen, aber es ist noch niemand dafür entlassen worden, daß er bei Intel eingekauft hat. Hüten Sie sich vor Clones, es sei denn, Sie sind sicher, daß sie unter FreeBSD funktionieren. Welche Geräte werden noch von FreeBSD unterstützt? Im Handbuch finden Sie eine Liste von anderen unterstützten Geräten. Unterstützt FreeBSD Power-Management auf meinem Laptop? Auf einigen Rechnern unterstützt FreeBSD APM. Suchen Sie bitte in der - Kernelkonfigurationdatei LINT nach + Kernelkonfigurationsdatei LINT nach dem Wort APM. Wieso hängt sich mein Micron-System beim Booten auf? Einige Micron Motherboards besitzen eine nicht-konforme PCI-BIOS-Implementierung. Sie bereitet Kummer, wenn FreeBSD bootet, weil PCI-Geräte nicht an der angegebenen Adresse konfiguriert werden. Deaktivieren Sie Plug and Play Operating System im BIOS, um dieses Problem zu beheben. Weitere Informationen können unter http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron gefunden werden. Wieso erkennt FreeBSD meinen neueren Adaptec-Controller nicht? Die Chips der neueren Adaptec AIC789-Serie werden unter dem CAM SCSI System unterstützt, das sein Debut in 3.0 gemacht hat. Patches für 2.2-STABLE befinden sich in ftp://ftp.de.FreeBSD.org/pub/FreeBSD/development/cam/. Eine Bootdiskette mit CAM-Erweiterung ist unter http://people.FreeBSD.org/~abial/cam-boot/ erhältlich. Lesen Sie in beiden Fällen die Datei README, bevor Sie beginnen. Wieso erkennt FreeBSD mein internes Plug & Play-Modem nicht? Sie werden die PnP-ID Ihres Modems in die PnP-ID-Liste des seriellen Treibers aufnehmen müssen. Erstellen Sie einen neuen Kernel mit dem Eintrag controller pnp0 in der Konfigurationsdatei und rebooten Sie Ihr System, um die Plug & Play-Unterstützung zu aktivieren. Der Kernel wird nun alle PnP-IDs der gefundenen Geräte ausgeben. In der Datei /sys/i386/isa/sio.c finden Sie ab Zeile 2777 (ca.) eine Tabelle, in der Sie die PnP-ID des Modems eintragen müssen. Suchen Sie die Zeichenfolge SUP1310 in der Struktur siopnp_ids[], um die Tabelle zu finden. Erstellen Sie den Kernel nochmals, installieren Sie ihn, rebooten Sie, und Ihr Modem sollte erkannt werden. Möglicherweise müssen Sie in der boot-time-Konfiguration die PnP-Geräte manuell mit einem pnp-Befehl ähnlich pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8 konfigurieren, damit das Modem erkannt wird. + + + Unterstützt FreeBSD Software Modems, wie die + Winmodems? + + + + FreeBSD unterstützt viele Software-Modems, wenn + Sie zusätzliche Software installieren. Der Port + comms/ltmdm bietet Unterstützung + für Modems, die auf dem oft verwendeten Lucent LT + Chipsatz basieren. Der Port comms/mwavem + bietet Unterstützung für die Modems im IBM + Thinkpad 600 und 700. + + Sie können FreeBSD nicht über ein + Software-Modem installieren, diese Software kann nur + installiert werden, nachdem das Betriebssystem installiert + wurde. + + + Wie kann ich den boot:-Prompt auf einer seriellen Konsole erscheinen lassen? Erstellen Sie einen Kernel mit options COMCONSOLE. Erstellen Sie /boot.config mit als einzigem Text in der Datei. Ziehen Sie das Tastaturkabel aus dem Rechner. Lesen Sie /usr/src/sys/i386/boot/biosboot/README.serial zur Information. Warum arbeitet meine 3Com PCI-Netzwerkkarte in meinem Micron-Computer nicht? Einige Micron Motherboards besitzen eine nicht-konforme PCI-BIOS-Implementierung, die die PCI-Geräte nicht an den angegebenen Adressen konfiguriert. Hierdurch entstehen Probleme, wenn FreeBSD bootet. Deaktivieren Sie die Option Plug and Play Operating System im BIOS, um das Problem zu umgehen. Weitere Informationen zu diesem Problem gibt es unter dem URL: http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron. Unterstützt FreeBSD Symmetric Multiproccessing (SMP)? SMP wird erst ab Version 3.0 unterstützt. SMP ist im Standardkernel (GENERIC) nicht aktiviert; wenn Sie SMP verwenden wollen, müssen Sie einen angepaßten Kernel erstellen. Die dazu notwendigen Optionen können Sie der Datei /sys/i386/conf/LINT entnehmen. Wenn ich ein System mit einem ASUS K7V Mainboard von der Bootdiskette starte, hängt sich das System auf. Wie kann ich dieses Problem lösen? Schalten Sie im BIOS die Option boot virus protection aus. Fehlerbehebung Was sollte ich tun, wenn auf meiner Festplatte fehlerhafte Blöcke sind? SCSI-Laufwerke sollten in der Lage sein, diese automatisch zu verlagern. Bei einigen Laufwerken ist diese Eigenschaft jedoch aus unerfindlichen Gründen bei der Auslieferung ausgeschaltet... Um sie einzuschalten, müssen Sie den Page-Mode des ersten Gerätes editieren. Unter FreeBSD können Sie das (als root) mit folgendem Befehl tun &prompt.root; scsi -f /dev/rsd0c -m 1 -e -P 3 und die Werte für AWRE und ARRE von 0 auf 1 ändern:- AWRE (Auto Write Reallocation Enbld): 1 ARRE (Auto Read Reallocation Enbld): 1 Die folgenden Abschnitte wurden von Ted Mittelstaedt tedm@toybox.placo.com eingesendet: Bei IDE-Laufwerken sind fehlerhafte Blöcke normalerweise ein Zeichen für potentielle Probleme. Bei allen modernen IDE-Laufwerken ist eine interne Verlagerung von fehlerhaften Blöcken eingeschaltet. Heutzutage bieten alle IDE-Festplattenhersteller eine umfassende Garantie und tauschen Laufwerke mit fehlerhaften Blöcken um. Falls Sie ein IDE-Laufwerk mit fehlerhaften Blöcken trotzdem weiterbenutzen möchten, können Sie versuchen, sich vom Hersteller ein IDE-Diagnoseprogramm herunterzuladen und dies über das Laufwerk laufen zu lassen. Manchmal können diese Programme so eingestellt werden, daß sie die Elektronik des Laufwerks dazu veranlassen, das Laufwerk nochmals nach fehlerhaften Blöcken zu durchsuchen und diese auszuschließen. Auf ESDI-, RLL- und MFM-Laufwerken sind fehlerhafte Blöcke nichts ungewöhnliches und im allgemeinen kein Zeichen für Probleme. Auf einem PC übernehmen der Festplatten-Controller und das BIOS die Aufgabe, fehlerhafte Sektoren auszuschließen, was bei Betriebssystemen wie DOS, die das BIOS benutzen, um auf die Platte zuzugreifen, auch gut funktioniert. Die Festplattentreiber von FreeBSD benutzen allerdings nicht das BIOS, weshalb ein Mechanismus bad144 existiert, der diese Funktionalität ersetzt. bad144 arbeitet nur mit dem wd-Treiber (und wird damit von FreeBSD 4.x nicht unterstützt) und kann NICHT für SCSI benutzt werden. bad144 arbeitet, indem es alle gefundenen, fehlerhaften Sektoren in eine spezielle Datei schreibt. Eine Einschränkung von bad144 ist, daß die Datei mit den fehlerhaften Sektoren auf die letzte Spur der Platte plaziert wird. Da diese Datei nun möglicherweise eine Liste von fehlerhaften Sektoren enthalten könnte, die am Anfang der Platte auftreten, wo sich möglicherweise die /kernel-Datei befindet, muß sie vom Bootstrap-Programm, das BIOS-Routinen benutzt, um den Kernel zu lesen, erreichbar sein. Das bedeutet, daß Platten, auf denen bad144 benutzt wird, 1024 Zylinder, 16 Köpfe und 63 Sektoren nicht überschreiten dürfen. Platten, die von bad144 verwaltet werden, sind also effektiv auf 500MB begrenzt. Setzen Sie Bad Block Scanning - während der Installation im fdisk-Menue einfach auf + während der Installation im fdisk-Menü einfach auf ON, um bad144 zu verwenden. Dies funktioniert bis zu FreeBSD 2.2.7. Die Platte darf nicht mehr als 1024 Zylinder besitzen. Generell wird empfohlen, daß die Festplatte vorher mindestens vier Stunden in Betrieb war, um ihr die Möglichkeit zur thermischen Ausdehnung und Spurversetzung zu geben. Falls eine Platte mehr als 1024 Zylinder besitzt (wie z.B. große ESDI-Laufwerke), benutzt der Controller einen speziellen Übersetzungsmodus, um den Betrieb unter DOS zu ermöglichen. Der wd-Treiber kennt diese Übersetzungsmodi, WENN Sie die translated-Geometrie mit dem set geometry-Befehl in fdisk eingeben. Sie dürfen NICHT den "dangerously dedicated"-Modus zur Erstellung der FreeBSD-Partition verwenden, weil dieser die Geometrie ignoriert und obwohl fdisk Ihre überschriebene Geometrie benutzen wird, ist die wahre Größe der Platte noch bekannt und es wird versucht, eine zu große FreeBSD-Partition zu erstellen. Wenn die Plattengeometrie in die übersetzte Geometrie geändert worden ist, dann MUß die Partition manuell durch Angabe der Blockanzahl erstellt werden. Sie können mit dem ESDI-Controller auch kurzerhand eine große ESDI-Platte erstellen, diese dann mit DOS booten und als DOS-Partition formatieren. Anschließend booten Sie mit dem - FreeBSD-Installationsprogramm und im fdisk-Menue notieren + FreeBSD-Installationsprogramm und im fdisk-Menü notieren Sie sich die Blockgröße und die Anzahl Blöcke der DOS-Partition. Dann ändern Sie die Geometrie in die gleiche, wie die von DOS verwendete, löschen die DOS-Partition und erstellen eine kooperative FreeBSD-Partition mit der gleichen Blockgröße, die Sie zuvor notiert haben. Machen Sie die Partition nun bootfähig und schalten Sie Bad Block Scanning ein. Während der - tatsächen Installation wird bad144 gestartet, bevor + tatsächlichen Installation wird bad144 gestartet, bevor irgendwelche Dateisysteme erstellt werden (Sie können das mit Alt-F2 beobachten). Falls irgendwelche Probleme bei der Erstellung der Datei mit den fehlerhaften Sektoren auftreten sollten, haben Sie eine zu große Plattengeometrie eingestellt - rebooten Sie Ihr System und beginnen Sie von vorne (die Neupartitionierung und Formatierung unter DOS eingeschlossen). Falls die Verlagerung fehlerhafter Blöcke aktiviert ist und Sie trotzdem fehlerhafte Blöcke bemerken, sollten Sie einen Austausch des Laufwerkes in Erwägung ziehen, da die fehlerhaften Blöcke mit der Zeit zunehmen werden. Wieso erkennt FreeBSD meinen SCSI-Controller vom Typ Bustek 742a EISA nicht? Diese Information ist speziell für die 742a, könnte aber auch andere Buslogic-Karten einschließen (Bustek = Buslogic) Es gibt zwei grundverschiedene Versionen der 742a-Karte. Das sind die Hardware-Revisionen A-G und Revisionen von H aufwärts. Der Revisionsbuchstabe befindet sich hinter der Fabriknummer am Rand der Karte. Auf der 742a befinden sich zwei Chips. Einer ist der BIOS-Chip, der andere der Firmware-Chip. FreeBSD achtet nicht darauf, welche BIOS-Version Sie haben, aber es achtet auf die Version des Firmware-Chips. Buslogic schickt Ihnen Upgrade-ROMS, wenn Sie sich an den technischen Support wenden. Die BIOS- und Firmware-Chips müssen als passende Paare ausgeliefert werden. Für Ihre Hardware-Revision benötigen Sie das aktuellste Firmware-ROM auf Ihrer Adapter-Karte. Karten der Revision A-G akzeptieren BIOS/Firmware-Paare bis zu 2.41/2.21. Die Karten der Revisionen H und aufwärts akzeptieren die aktuellsten BIOS/Firmware-Paare 4.70/3.37. Der Unterschied der Firmware-Versionen ist, daß die 3.37-Firmware round robin unterstützt. Auf den Buslogic-Karten befindet sich auch eine Seriennummer. Falls Sie eine Karte mit einer alten Hardwarerevisionsnummer besitzen, können Sie sich an die RMA-Abteilung von Buslogic wenden, Ihre Seriennummer angeben und versuchen, die Karte gegen eine neuere Hardwarerevision auszutauschen. Falls Ihre Karte nicht zu alt ist, wird dem Tausch zugestimmt werden. Von FreeBSD 2.1 werden nur Firmwarerevisionen ab 2.21 - aufwärts unterstützt. Wenn Sie eine ätere + aufwärts unterstützt. Wenn Sie eine ältere Firmwarerevision besitzen, wird Ihre Karte nicht als Buslogic-Karte erkannt. Sie könnte jedoch als - Adaptec 1540 erkannt werden. Die früe Firmware von + Adaptec 1540 erkannt werden. Die frühe Firmware von Buslogic enthält eine AHA1540 Emulation, wovon bei EISA-Karten jedoch abzuraten ist. Wenn sie eine Karte mit einer alten Hardwarerevisionsnummer besitzen und die 2.21-Firmware für sie bekommen, müssen Sie den Jumper W1 in die Position B-C setzen; die Voreinstellung ist A-B. Wieso wird der SCSI-Controller meines HP Netserver nicht erkannt? Hierbei handelt es sich um ein bekanntes Problem. Der auf dem Board befindliche EISA-SCSI-Controller auf dem HP Netserver belegt die EISA-Slotnummer 11, wodurch sich alle wirklichen EISA-Slots vor ihm befinden. Leider kollidiert der Adreßraum von EISA-Slots >=10 mit dem Adreßraum, der PCI zugeordnet ist und die Autokonfiguration von FreeBSD kann mit dieser Situation derzeit nicht besonders gut umgehen. Die einfachste Alternative ist, diese Kollision einfach zu leugnen. Setzen Sie dazu die Kerneloption EISA_SLOTS auf den Wert 12. Konfigurieren und kompilieren Sie den Kernel, wie im Handbucheintrag zur Kernelkonfiguration beschrieben. Dies bringt Ihnen natürlich das klassische Huhn-Ei-Problem, wenn Sie auf einer solchen Maschine installieren wollen. Um dieses Problem zu umgehen, existiert ein spezieller Hack in UserConfig. Benutzen Sie nicht die visuelle Schnittstelle, sondern die rohe Kommandozeilenschnittstelle. Geben Sie einfach eisa 12 quit am Prompt ein und Sie können Ihr System ganz normal installieren. Sie sollten auf jeden Fall einen angepaßten Kernel zu kompilieren und installieren. Zukünftige Versionen werden hoffentlich eine passende Lösung für dieses Problem beinhalten. Sie können keine dangerously dedicated Platte auf einem HP Netserver verwenden. Lesen Sie weitere Informationen finden Sie in diesem Hinweis. Was ist mit diesem CMD640-Controller los? Er ist fehlerhaft. Er kann Befehle auf beiden Kanälen nicht simultan behandeln. Es gibt jetzt eine Abhilfe, die automatisch aktiviert wird, wenn Ihr System diesen Chip benutzt. Details finden Sie in der Manualpage zum Plattentreiber (man 4 wd). Wenn bei Ihnen bereits FreeBSD 2.2.1 oder 2.2.2 mit einem CMD640-Controller läuft und Sie den zweiten Kanal benutzen möchten, erstellen Sie einen neuen Kernel mit options "CMD640". Dies ist seit 2.2.5 Voreinstellung. Was bedeuten die ständigen Meldungen ed1: timeout? Dies wird meistens durch einen Interruptkonflikt verursacht (z.B., wenn zwei Karten den selben Interrupt benutzen). Vor 2.0.5R war FreeBSD diesbezüglich tolerant und die Treiber für Netzwerkkarten funktionierten auch bei IRQ-Konflikten. Seit 2.0.5R werden IRQ-Konflikte jedoch nicht länger toleriert. Booten Sie mit der Option -c und ändern Sie die Einträge zu ed0/de0/... Ihrem Board entsprechend. Wenn Sie den BNC-Anschluß Ihrer Netzwerkkarte benutzen, könnte es auch sein, daß es sich Geräte-Timeouts aufgrund fehlerhafter Terminierung handelt. Um dies zu überprüfen, verbinden Sie einen Terminator direkt mit der Netzwerkkarte (ohne Kabel) und beobachten Sie, ob die Fehlermeldungen verschwinden. Einige NE2000 kompatible Karten melden diesen Fehler, wenn keine Verbindung am UTP-Eingang existiert oder wenn das Kabel nicht eingesteckt ist. - - Wieso erhalte ich die Meldung Incorrect - super block beim Mounten einer CDROM? - - - - Sie müssen &man.mount.8; mitteilen, was für - ein Gerät Sie mounten wollen. - Standardmäßig wird &man.mount.8; den Typ - ufs annehmen. Sie wollen ein - CDROM-Dateisystem mounten und das tun Sie, indem Sie die - Option für &man.mount.8; - benutzen. Natürlich unter der Annahme, daß die - CDROM ein ISO 9660-Dateisystem enthält, wie bei den - meisten CDROMs. Ab 1.1R versteht FreeBSD auch automatisch - die Rock Ridge Erweiterungen (lange Dateinamen). - - Wenn sie zum Beispiel das CDROM-Gerät - /dev/cd0c unter dem Dateinamen - /mnt mounten wollen, - müßten Sie: - - &prompt.root; mount -t cd9660 /dev/cd0c /mnt - - eingeben. - - Beachten Sie, daß Ihr Gerätename - (/dev/cd0c in diesem Beispiel) - abhängig von der CDROM-Schnittstelle unterschiedlich - sein könnte. Die Option - bewirkt lediglich, daß der Befehl - &man.mount.cd9660.8; ausgeführt wird. Das - obige Beispiel könnte also kürzer - lauten: - - &prompt.root; mount_cd9660 /dev/cd0c /mnt - - - - - - Wieso erhalte ich die Meldung Device not - configured, wenn ich eine CDROM - mounte? - - - - Das bedeutet im allgemeinen, daß sich keine - CDROM im Laufwerk befindet, oder, daß das Laufwerk - auf dem Bus nicht sichtbar ist. Legen sie etwas ins - Laufwerk ein und/oder überprüfen Sie den - Master/Slave-Status des Laufwerks, falls es sich um ein - IDE (ATAPI) Laufwerk handelt. Bei einem CDROM-Laufwerk - kann es einige Sekunden dauern, bis ein eingelegter - Datenträger erkannt wird. Haben Sie also - Geduld. - - Manchmal kann ein SCSI-CDROM verfehlt werden, weil es - nicht genügend Zeit hatte, auf einen Bus-Reset zu - antworten. Falls Sie ein SCSI-CDROM besitzen, versuchen - Sie, folgendes in Ihre Kernelkonfigurationsdatei - einzufügen, und neu zu kompilieren: - - -options "SCSI_DELAY=15" - - - - - - - Wieso werden alle Sonderzeichen in den Dateinamen auf - meinen CDs durch ? ersetzt, wenn ich die CD - unter FreeBSD benutze? + + Warum funktioniert meine 3COM 3C509 plötzlich + nicht mehr? - Wahrscheinlich werden auf der CDROM die - Joilet Erweiterungen für die - Speicherung von Datei- und Verzeichnisnamen benutzt. - Diese Erweiterung verlangt, daß alle Dateinamen im - Unicode-Format (mit zwei Bytes pro Zeichen) abgespeichert - werden. Eine Unicode-Erweiterung für den - FreeBSD-Kernel ist zwar in Arbeit; da diese Erweiterung - aber noch nicht fertig ist, hat der CD9660-Treiber keine - Möglichkeit, die Zeichen korrekt zu - dekodieren. - - Für die Übergangszeit gibt es seit FreeBSD - 4.3 eine Schnittstelle im CD9660-Treiber, über die - zur Laufzeit eine passende Übersetzungstabelle - geladen werden kann. Der Port - sysutils/cd9660_unicode enthält - passende Übersetzungstabelle für gängige - Anwendungen. - - [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.] + Diese Karte ist dafür berüchtigt, ihre + Konfiguration zu vergessen. Sie müssen die Karte mit + dem DOS-Programm 3c5x9.exe neu + konfigurieren. - Mein Drucker ist unglaublich langsam. Was kann ich + Mein an der parallel Schnittstelle angeschlossener + Drucker ist unglaublich langsam. Was kann ich tun? - Falls es sich um einen parallelen Drucker handelt und - das einzige Problem ist, daß er schrecklich langsam - ist, probieren Sie, den Druckerausgang in den - gepollten Modus zu setzen: - - &prompt.root; lptcontrol -p - - Von einigen neueren HP-Druckern wird behauptet, - daß sie im Interruptmodus nicht korrekt arbeiten, - anscheinend wegen eines (noch nicht genau verstandenen) - Timing-Problems. + Falls das einzige Problem ist, daß er + schrecklich langsam ist, dann sollte Sie versuchen, den + Modus + des Druckerportes zu ändern, wie es im + Kapitel Drucker + des Handbuchs beschrieben ist. Wieso brechen meine Programme gelegentlich mit Signal 11-Fehlern ab? Das Signal 11 wird generiert, wenn ein Prozeß versucht, auf Speicher zuzugreifen, obwohl er vom Betriebssystem dazu nicht befugt wurde. Wenn Ihnen das scheinbar zufällig immer wieder passiert, sollten Sie der Sache einmal auf der Grund gehen. Das Problem hat in der Regel eine der folgenden Ursachen: Wenn das Problem nur in einer bestimmten Applikation auftritt, die Sie selbst entwickeln, dann ist es wahrscheinlich ein Fehler in Ihren Sourcen. Wenn das Problem in einem Teil von FreeBSD auftritt, könnte es natürlich auch ein Fehler sein; aber in der überwiegenden Zahl der Fälle werden diese Probleme gefunden und behoben, bevor die typischen Leser der FAQ (wir) diese Teile der Sourcen benutzen können (dafür gibt es schließlich -current). Wenn der Fehler auftritt, wenn Sie ein Programm compilieren aber dabei immer wieder an anderer Stelle auftritt, dann ist das ein ganz eindeutiger Hinweis, daß das Problem nicht bei FreeBSD liegt. Nehmen wir zum Beispiel an, daß Sie make buildworld ausführen und die Compilierung von ls.c in ls.o abbricht. Wenn Sie nochmal "make buildworld" durchführen und die Compilierung an der gleichen Stelle abbricht, handelt es sich um einen Fehler in den Sourcen. Aktualisieren Sie Ihre Sourcen und versuchen Sie es noch einmal. Wenn der Fehler jedoch an einer anderen Stelle auftritt, liegt das Problem mit an Sicherheit grenzender Wahrscheinlichkeit bei Ihrer Hardware. Was Sie tun sollten: Im ersten Fall können Sie einen Debugger wie z.B. gdb benutzen, um die Stelle im Programm zu finden, an der auf eine falsche Adresse zugegriffen wird und danach den Fehler beheben. Im zweiten Fall müssen Sie sicherstellen, daß das Problem nicht von Ihrer Hardware verursacht wird. Typische Ursachen dafür sind unter anderem: Es könnte sein, daß Ihren Festplatten zu warm wird: Überprüfen Sie, ob die Lüfter in Ihrem Gehäuse noch funktionieren, damit Ihre Festplatten (und andere Hardware) nicht heißlaufen. Der Prozessor überhitzt, weil Sie Ihn übertaktet haben oder der CPU-Kühler ausgefallen ist. Sie müssen sicherstellen, daß Sie Ihre Hardware unter den Bedingungen betreiben, für die sie spezifiziert ist, zumindestens während Sie versuchen, das Problem zu lösen. Mit anderen Worten: Betreiben Sie Ihre CPU mit der normalen Taktfrequenz. Wenn Sie übertakten, sollten Sie daran denken, daß ein langsames System deutlich billiger ist als ein defektes System. Die große Masse hat nicht sehr häufig Mitgefühl mit Problemen bei übertakteten System, auch wenn Sie es für ungefährlich halten. Unzuverlässiger Speicher: Wenn Sie mehr als ein SIMM/DIMM installiert haben, sollten Sie sie alle ausbauen und die Maschine testweise mit jedem SIMM oder DIMM einzeln betreiben. So können Sie feststellen, ob die Ursache ein einzelnes SIMM/DIMM oder auch eine Kombination von Modulen ist. Zu optimistische Einstellung des Mainboards: In Ihrem BIOS und mit den Jumpern auf dem Mainboard können Sie diverse Timings ändern. In den meisten Fällen reichen die Defaults aus, aber manchmal kann es durch zu wenig wait states, die Einstellung RAM Speed: Turbo oder ähnliches zu merkwürdigen Problemen kommen. Ein möglicher Ansatz ist, die BIOS defaults zu laden, allerdings könnte es sinnvoll sein, die aktuellen Einstellungen vorher zu notieren. Schlechte oder fehlerhafte Stromversorgung des Mainboards: Wenn Sie unbenutzte Steckkarten, Platten oder CDROMs in Ihrem System haben, sollten Sie sie testweise ausbauen oder die Stromversorgung abziehen. Dadurch können Sie prüfen, ob Ihr Netzteil eventuell mit einer geringeren Last besser zurechtkommt. Sie können auch testweise ein anderes, am besten ein leistungsfähigeres, Netzteil ausprobieren. Wenn Sie zur Zeit ein 250W-Netzteil benutzen, sollten Sie testweise ein 300W-Netzteil einbauen. Die sollten ebenfalls die SIG11 FAQ (unten aufgeführt) lesen, da sie gute Erklärungen für alle diese Probleme enthält (allerdings aus Linux-Sicht). Sie erklärt ebenfalls, warum sowohl Programme als auch Geräte zur Speicherprüfung fehlerhaften Speicher teilweise nicht erkennen. Wenn alle diese Schritte nicht helfen, ist es möglich, daß Sie einen Fehler in FreeBSD gefunden haben. Folgen Sie einfach den Anweisungen für die Erstellung eines Problem Reports. Es existiert eine ausführliche FAQ hierzu unter der SIG11-Problem-FAQ + + + Mein System stürzt mit der Meldung + Fatal trap 12: page fault in kernel + mode oder panic: ab und + gibt eine Menge zusätzlicher Informationen aus. Was + kann ich tun? + + + + Die Entwickler von FreeBSD interessieren sich für + solchen Meldungen, allerdings brauchen Sie deutlich mehr + Informationen als die, die Ihnen angezeigt werden. + Kopieren Sie die komplette Meldungen und lesen Sie nun den + FAQ-Eintrag über kernel panics. + Erzeugen sie einen Kernel mit den zusätzlichen Daten + zur Fehlersuche, und dann einen backtrace. Das hört + sich komplizierter an, als es ist. Sie brauchen keine + Programmier-Erfahrung, Sie müssen einfach nur den + Anweisungen folgen. + + + Wieso wird beim Booten der Bildschirm schwarz und reagiert nicht mehr? Dies ist ein bekanntes Problem mit der ATI Mach 64 Videokarte. Das Problem besteht darin, daß diese Karte die Adresse 2e8 benutzt und die vierte serielle Schnittstelle ebenfalls. Aufgrund eines Fehlers (einer Besonderheit?) im &man.sio.4;-Treiber wird diese Schnittstelle angesprochen, auch wenn Sie gar keine vierte serielle Schnittstelle besitzen und sogar, wenn sie sio3 (die vierte Schnittstelle), die normalerweise diese Adresse verwendet, deaktivieren. Bis der Fehler behoben ist, können Sie folgende Abhilfe verwenden: Geben Sie am Bootprompt ein. (Dies bringt den Kernel in den Konfigurationsmodus). Deaktivieren Sie sio0, sio1, sio2 und sio3 (alle). Auf diese Weise wird der sio-Treiber nicht aktiviert und das Problem tritt nicht mehr auf. Geben Sie exit ein, um den Bootvorgang fortzusetzen. Falls sie in der Lage sein wollen Ihre seriellen Schnittstellen zu benutzen, müssen Sie einen neuen Kernel mit folgenden Modifikationen erstellen: suchen Sie in /usr/src/sys/i386/isa/sio.c nach der Zeichenkette 0x2e8 und löschen Sie sie und das vorhergehende Komma (nicht das folgende Komma). Nun folgen Sie der normalen Prozedur zur Erstellung eines neuen Kernels. Auch nach Anwendung dieser Maßnahmen könnte es sein, daß Ihr X Windows-System nicht einwandfrei funktioniert. Wenn dies der Fall ist, stellen Sie sicher, daß es sich bei der von Ihnen benutzten X Windows-Version mindestens um XFree86 3.3.3 oder höher handelt. Diese Version und höhere besitzen eine integrierte Unterstützung für Mach64-Karten und sogar einen dedizierten X-Server für sie. Wieso verwendet FreeBSD nur 64 MB Hauptspeicher, obwohl in meinem Rechner 128 MB sind? Aufgrund der Art und Weise, wie FreeBSD die Hauptspeichergröße vom BIOS mitgeteilt bekommt, kann es lediglich 16-Bit Werte in kByte-Größe (65535 kByte = 64MB) erkennen (oder weniger... einige - BIOSe setzen die Hauptspeichergröß auf 16MB). + BIOSe setzen die Hauptspeichergröße auf 16MB). Falls Sie mehr als 64MB besitzen, wird FreeBSD versuchen, das zu erkennen, was aber nicht immer funktioniert. Um dieses Problem zu umgehen, müssen Sie die untenstehende Kerneloption verwenden. Es gibt einen Weg, vollständige Hauptspeicherinformationen vom BIOS zu erhalten, aber in den Bootblöcken ist nicht genügend Platz dafür vorhanden. Wenn der Platzmangel in den Bootblöcken eins Tages behoben ist, werden wir die erweiterten BIOS-Funktionen dazu nutzen, die vollständigen Hauptspeicherinformationen zu erhalten... aber zur Zeit sind wir auf die Kerneloption angewiesen. options "MAXMEM=n" Hierbei ist n Ihre Hauptspeichergröße in Kilobyte. Bei einer 128 MB-Maschine müßten Sie 131072 benutzen. Wieso stürzt FreeBSD 2.0 mit der Meldung kmem_map too small! ab? Die Nachricht kann auch mb_map too small! lauten. Diese Meldung zeigt an, daß der virtuelle Speicher für Netzwerkpuffer (spezieller mbuf-Cluster) aufgebraucht ist. Sie können die für mbuf verfügbare Größe an VM erhöhen, indem Sie options "NMBCLUSTERS=n" in Ihre Kernelkonfigurationsdatei einfügen, wobei n, abhängig davon, wieviele gleichzeitige TCP-Verbindungen Sie unterstützen müssen, eine Zahl aus dem Bereich 512-4096 ist. Ich würde Ihnen empfehlen, 2048 zu probieren - das sollte Sie von solchen Paniksituationen vollkommen befreien. Sie können die Anzahl der zugeordneten/benutzten mbuf-Cluster im System mit netstat -m beobachten. Der voreingestellte Wert für NMBCLUSTERS ist 512 + MAXUSERS * 16. - - Wieso erhalte ich die Meldung CMAP busy - panic, wenn ich mein System mit einem neuen - Kernel starte? + + Wieso erhalte ich die Meldung /kernel: + proc: table is full? + + + + Der FreeBSD-Kernel beschränkt die Anzahl der + gleichzeitig laufenden Prozesse. Die Anzahl errechnet + sich aus dem Wert der Variablen + MAXUSERS in der Konfigurationsdatei des + Kernels. Auch andere Einstellungen wie die Anzahl der + Puffer für Netzwerkoperationen (Details dazu + finden Sie in diesem + Abschnitt). werden durch + MAXUSERS beeinflußt. Wenn Ihr + System stark belastet ist, sollten Sie den Wert von + MAXUSERS erhöhen. Dadurch werden + diverse Einstellung des Systems angepaßt und die + maximale Anzahl gleichzeitig laufender Prozesse + erhöht. + + Seit FreeBSD 4.4 kann der Wert von + MAXUSERS über die Variable + kern.maxusers in der Datei + /boot/loader.conf angepaßt + werden. In älteren Versionen mußten Sie + MAXUSERS in der Konfigurationsdatei + für Ihren angepaßten Kernel + ändern. + + Wenn Ihr System nicht besonders stark ausgelastet ist + und Sie einfach nur mehr gleichzeitig laufende Prozesse + erlauben wollen, können Sie den Wert des sysctl + kern.maxproc erhöhen. + Wenn diese Prozesse von einem einzigen Benutzer + ausgeführt werden, müssen Sie den Wert von + kern.maxprocperuid ebenfalls + erhöhen. Dieser Wert muß immer mindestens um + eins geringer sein als der Wert von + kern.maxproc value. (Der Grund + für diese Einschränkung ist, daß ein + Systemprogramm, &man.init.8;, immer ausgeführt werden + muß.) + + Damit Änderungen eines sysctl auch bei einem + Neustart des Systems erhalten bleiben, müssen Sie + diese bei aktuellen FreeBSD-Versionen in + /etc/sysctl.conf eintragen. In + älteren Versionen wurden sie in + /etc/rc.local eingetragen. + + + + + + Wieso erhalte ich die Meldung CMAP busy + panic, wenn ich mein System mit einem neuen + Kernel starte? Die Logik, die versucht, veraltete /var/db/kvm_*.db-Dateien zu erkennen, versagt manchmal und die Benutzung einer unpassenden Datei kann zu Paniksituationen führen. Falls das passiert, rebooten Sie im Single-User-Modus und löschen Sie die Dateien: &prompt.root; rm /var/db/kvm_*.db Was soll mir die Meldung ahc0: brkadrint, Illegal Host Access at seqaddr 0x0 sagen? Dies ist ein Konflikt mit einem Ultrastor SCSI Hostadapter. Rufen Sie während des Bootprozesses das - Kernelkonfigurationsmenue auf und deaktivieren Sie + Kernelkonfigurationsmenü auf und deaktivieren Sie uha0, welches das Problem verursacht. + + + Wenn ich mein System starte, erhalte ich die Meldung + ahc0: illegal cable configuration, + obwohl die Verkabelung korrekt ist. Woran liegt + das? + + + + Auf Ihrem Mainboard fehlen ein paar Logikbausteinen, + die für die Unterstützung der automatischen + Terminierung notwendig sind. Stellen Sie in Ihrem + SCSI-BIOS manuell die korrekte Terminierung für Ihr + System ein, anstatt sich auf die automatische Terminierung + zu verlassen. Der Treiber für den AIC7XXX kann nicht + erkennen, ob die externen Logikbausteine für die + Erkennung der Kabel (und damit automatische Terminierung) + vorhanden sind. Der Treiber muß sich darauf + verlassen, daß diese vorhanden sind, wenn in der + Konfiguration "automatische Terminierung" eingestellt ist. + Ohne die externen Bausteine ist es sehr wahrscheinlich, + daß der Treiber die Terminierung falsch einstellt, + was die Zuverlässigkeit des SCSI-Busses herabsetzen + kann. + + + Wieso meldet Sendmail mail loops back to myself? Dies wird in der Sendmail-FAQ wie folgt beantwortet:- * Ich erhalte "Local configuration error" Meldungen, wie: 553 relay.domain.net config error: mail loops back to myself 554 <user@domain.net>... Local configuration error Wie kann ich dieses Problem lösen? Sie haben durch die Benutzung einer MX-Zeile eingestellt, daß Mail für die Domäne (z.B. domain.net) an einen speziellen Host (in diesem Fall relay.domain.net) weitergeleitet wird, aber der Relay-Host erkennt sich selbst nicht als domain.net. Fügen Sie domain.net in /etc/sendmail.cw (falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net" in /etc/sendmail.cf ein. Die aktuelle Version der Sendmail-FAQ wird nicht mehr mit dem Sendmail-Release verwaltet. Sie wird jedoch regelmäßig nach comp.mail.sendmail, comp.mail.misc, comp.mail.smail, comp.answers und news.answers gepostet. Sie können auch eine Kopie per Email bekommen, indem Sie eine Mail mit dem Inhalt send usenet/news.answers/mail/sendmail-faq an mail-server@rtfm.mit.edu schicken. Wieso funktionieren Full-Screen-Applikationen beim Zugriff über ein Netzwerk nicht richtig? Die entfernte Maschine scheint den Terminaltyp auf etwas anderes als den Typ cons25, der von FreeBSD verlangt wird, zu setzen. Es gibt mehrere mögliche Abhilfen für dieses Problem: Setzen Sie die Shell-Variable TERM nach dem Einloggen auf der entfernten Maschine auf ansi oder sco, sofern die entfernte Maschine diese Terminaltypen kennt. Benutzen Sie einen VT100-Emulator wie screen auf der FreeBSD-Console. screen bietet Ihnen die Möglichkeit, mehrere gleichzeitige Sitzungen von einem Bildschirm aus laufen zu lassen. Es ist ein sehr nettes Programm. Jedes screen-Fenster verhält sich, wie ein VT100-Terminal, weshalb die Variable TERM am entfernten Ende auf vt100 gesetzt werden sollte. Installieren Sie den Eintrag cons25 in der Bildschirmdatenbank der entfernten Maschine. Wie das zu geschehen hat, hängt vom Betriebssystem der entfernten Maschine ab. Das Systemadministrationshandbuch für das entfernte System sollte Ihnen hierbei helfen können. Starten Sie einen X-Server auf der FreeBSD-Seite und benutzen Sie einen X-basierten Terminalemulator wie xterm oder rxvt, um sich auf der entfernten Maschine einzuloggen. Die Variable TERM auf dem entfernten Host sollte auf xterm oder vt100 gesetzt werden. Wieso meldet mein Rechner calcru: negative time...? Dies kann durch verschiedene Hardware- und/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 zu provozieren. Grafikbeschleuniger können es auch verursachen. In diesem Fall sollten Sie zunächst die Interrupteinstellungen der Karte überprüfen. Ein Seiteneffekt dieses Problems sind Prozesse, die mit der Meldung SIGXCPU exceeded cpu time limit abbrechen. Für FreeBSD 3.0 und spätere ab dem 29. Nov. 1998: Falls das Problem nicht anders gelöst werden kann, besteht die Lösung darin, diese sysctl-Variable zu setzen: &prompt.root; sysctl -w kern.timecounter.method=1 Das bedeutet zwar Performanceeinbußen, aber in Anbetracht der Ursache für dieses Problem werden Sie das wahrscheinlich nicht bemerken. Fall das Problem weiter bestehen bleibt, lassen sie die sysctl-Variable auf 1 stehen und setzen Sie die Option NTIMECOUNTER im Kernel auf immer höhere Werte. Wenn Sie irgendwann NTIMECOUNTER=20 erreicht haben sollten, ist das Problem nicht gelöst. Die Interrupts auf Ihrer Maschine sind für eine verläßliche Zeiterhaltung nicht zu gebrauchen. Ich erhalte die Meldung pcm0 not found oder meine Soundkarte wird als pcm1 eingebunden, obwohl in meiner Kernel-Konfiguration device pcm0 steht. Was ist passiert? Dieser Effekt tritt auf, wenn Sie FreeBSD 3.x und eine PCI Soundkarte haben. Das Gerät pcm0 ist für ISA Soundkarten reserviert; wenn Sie eine PCI Soundkarte haben, werden Sie diese Meldung erhalten und Ihre Karte wird als pcm1 eingebunden. Sie können das Problem nicht lösen, indem Sie einfach in der Konfigurationsdatei für Ihnen Kernel die Zeile device pcm1 eintragen. Wenn Sie dies tun, wird pcm1 für ISA-Karten reserviert und Ihre PCI-Karte wird zu pcm2. Zusätzlich erhalten Sie den Hinweis pcm1 not found. Wenn Sie eine PCI Sounkarte haben, müssen Sie das Gerät snd1 statt des üblichen snd0 verwenden: &prompt.root; cd /dev &prompt.root; ./MAKEDEV snd1 Dieses Problem tritt in FreeBSD 4.x nicht mehr auf, da große Anstrengungen unternommen wurden, diese Version PnP-orientiert zu machen. In FreeBSD 4.x ist das Gerät pcm0 nicht mehr für ISA-Karten reserviert. Warum wird meine PnP-Karte nicht mehr (oder nur noch als unknown) erkannt, seit ich FreeBSD 4.x benutze? FreeBSD 4.x ist deutlich PnP-orientierter und das führt leider dazu, daß einige PnP-Geräte (wie z.B. Soundkarten und interne Modems) nicht mehr funktionieren, obwohl Sie von FreeBSD 3.x noch erkannt wurden. Die Gründe für dieses Verhalten werden in der unten zitierten Mail von Mail von Peter Wemm erklärt. Diese Mail stammt von der Mailingliste freebsd-questions und war eine Antwort auf eine Frage bezüglich eines internen Modem, das nach dem Update auf FreeBSD 4.x nicht mehr erkannt wurde. Die Kommentare in [] wurden eingefügt, um an einigen Stellen die Bezüge klarstellen.
- Das PnP-Bios hat es [das Modem] vorkonfiguriert und + Das PnP-BIOS hat es [das Modem] vorkonfiguriert und es dann im Adreßraum liegenlassen, daher haben es die alten ISA-Erkennungsroutinen [in 3.x] gefunden. In 4.0 sind die ISA-Routinen deutlich PnP-orientierter. Es war möglich [in 3.x], daß eine ISA-Erkennungsroutinen ein zugelaufenes Gerät fand; während die PnP-Treiber zwar die ID erkannten, das Gerät aber wegen des Ressourcekonfliktes nicht nutzen konnten. Daher werden die programmierbaren Karten zunächst einmal abgeschaltet, um diese doppelte Erkennung vermeiden zu können. Das bedeutet allerdings auch, daß die Treiber die PnP-ID kennen muß, um PnP-Hardware unterstützen zu können. Wir haben uns vorgenommen, den Benutzern eine einfachere Möglichkeit zur Manipulation dieser Informationen zur Verfügung zu stellen.
Damit Ihr Gerät wieder funktioniert, müssen Sie seine PnP-ID herausfinden und die ID in die Listen eintragen, die zur Erkennung von PnP-Geräten genutzten werden. Zu diesem Zweck wird das Gerät mit &man.pnpinfo.8; analysiert. Das Beispiel zeigt die Ausgaben von &man.pnpinfo.8; für ein internes Modem: &prompt.root; pnpinfo Checking for Plug-n-Play devices... Card assigned CSN #1 Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff PnP Version 1.0, Vendor Version 0 Device Description: Pace 56 Voice Internal Plug & Play Modem Logical Device ID: PMC2430 0x3024a341 #0 Device supports I/O Range Check TAG Start DF I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8 [16-bit addr] IRQ: 4 - only one type (true/edge) [weitere TAG Zeilen gestrichen] TAG End DF End Tag Successfully got 31 resources, 1 logical fdevs -- card select # 0x0001 CSN PMC2430 (0x3024a341), Serial Number 0xffffffff Logical device #0 IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 IRQ 5 0 DMA 4 0 IO range check 0x00 activate 0x01 Sie benötigen die Information aus der Zeile Vendor ID ganz im Anfang. Die in Klammern ausgegebene Hexadezimale Zahl (0x3024a341 in diesem Beispiel) ist die PnP ID und die unmittelbar davor stehende Zeichenkette (PMC2430) ist eine eindeutige Herstellerkennung. Diese Informationen müssen in die Datei /usr/src/sys/isa/sio.c eingetragen werden. Sie sollten zunächst ein Backup von sio.c anlegen, falls irgendwas schiefgehen sollte. Sie werden auch einen Patch erzeugen müssen, um ihn zusammen mit Ihrem PR einzusenden. (Sie wollten doch einen PR schreiben, oder etwa nicht?) Öffnen Sie nun sio.c mit einem Editor und suchen Sie nach der Zeile static struct isa_pnp_id sio_ids[] = { und blättern Sie dann nach unten, um die passende Stelle für Ihr Gerät zu finden. Unten finden Sie Beispiel für die Einträge, diese sind nach der Herstellerkennung sortiert. Diese sollte in dem Kommentar auf der rechten Seite aufgenommen werden, dazu kommt die Gerätebeschreibung (Device Description) aus der Ausgabe von &man.pnpinfo.8;: {0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */ {0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */ {0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */ {0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */ {0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */ Fügen Sie die hexadezimale Gerätekennung an der richtigen Stelle ein, speichern Sie die Datei ab, erzeugen Sie einen neuen Kernel und starten Sie Ihr System neu. Ihr Gerät sollte nun wie bei FreeBSD 3.x als sio Gerät erkannt werden.
Warum erhalte ich die Meldung nlist failed, wenn ich Programme wie top oder systat benutze? Das Programm sucht nach einem speziellen Symbol im Kernel, kann es aber aus irgendeinem Grunde nicht finden. Dieser Fehler wird von einem dieser Probleme verursacht: Ihr Kernel und die sonstigen Programme (das userland) sind nicht mehr auf dem gleichen Stand. Mit anderen Worten, Sie haben zwar einen neuen Kernel erzeugt, aber kein installworld (oder umgekehrt); darum weicht die Symboltabelle von dem ab, was die Anwendung erwartet. Wenn dies der Fall, müssen Sie lediglich die noch fehlenden Schritte des Upgrades durchführen. Die richtige Vorgehensweise kann /usr/src/UPDATING entnommen werden. Um Ihren Kernel zu laden, benutzen Sie nicht /boot/loader, sondern laden ihn direkt mit boot2 (siehe &man.boot.8;). Es ist zwar nicht immer ein Fehler, /boot/loader zu umgehen; allerdings ist in der Regel besser dazu geeignet, die Symbole des Kernels für normale Anwendungen verfügbar zu machen. Wieso dauert es so lange, bis eine Verbindung (&man.ssh.1; oder &man.telnet.1;) aufgebaut wird? Das Symptom: Nach dem Aufbau des TCP-Verbindung vergeht einige Zeit, bis endlich die Abfrage des Paßwortes (bzw. der Login-Prompt bei Telnet) erscheint. Das Problem: In den meisten Fällen versucht der Server in der Zwischenzeit, die IP-Adresse des Clients in einen Rechnernamen zu übersetzen. Viele Server (darunter die Telnet und SSH Server von FreeBSD) machen das, um den Hostnamen z.B. für spätere Verwendung durch den Systemadministrator in eine Protokolldatei schreiben zu können. Die Lösung: wenn das Problem bei jedem Server auftritt, den Sie von Ihrem Computer (dem Client) ansprechen, dann wird das Problem vom Client verursacht. Wenn das Problem aber nur auftritt, wenn jemand Ihren Rechner (den Server) anspricht, dann liegt die Ursache beim Server. Wenn das Problem vom Client verursacht wird, müsssen Sie die Einträge im DNS korrigieren, damit der Server Ihre IP-Adresse übersetzen kann. Wenn das Problem in Ihrem lokalen Netzwerk auftritt, sollten Sie es als Problem des Servers behandeln und weiterlesen; wenn es allerdings im Internet auftritt, werden Sie sich wahrscheinlich an Ihrem ISP wenden müssen, damit dieser das Problem für Sie korrigiert. Wenn das Problem vom Server verursacht wird und Sie sich in einem lokalen Netzwerk befinden, dann müssen Sie Ihren Server so konfigurieren, daß er die lokal genutzen IP-Adressen in Rechnernamen übersetzen kann. Weitere Informationen erhalten Sie in den Onlinehilfen zu &man.hosts.5; and &man.named.8;. Wenn dieses Problem im Internet auftritt, könnte die Ursache auch darin liegen, daß die Namensauflösung auf dem Server nicht funktioniert. Versuchen Sie, einen anderen Hostnamen wie z.B. www.yahoo.com aufzulösen. Wenn das nicht funktioniert, liegt das Problem bei Ihrem System. Was bedeutet stray IRQ? Stray IRQs sind ein Zeichen für Probleme bei der Behandlung von Hardware-IRQs. Sie werden meistens von Geräten verursacht, die ihren Interrupt Request zurückziehen, obwohl gerade der interrupt request acknowledge-Zyklus läuft. Sie können drei Dinge tun: Ertragen Sie die Warnungen. Sie erhalten nur die ersten 5 für jeden IRQ, alle anderen werden unterdrückt. Eliminieren Sie die Meldungen, indem Sie in isa_strayintr() den Wert 5 auf 0 ändern, um alle Meldungen zu unterdrücken. Eliminieren Sie die Meldungen, indem Sie Hardware für den Parallelport installieren, die IRQ 7 - nutzt und vom ppp Treiber verwendet wird (das passiert + nutzt und vom PPP Treiber verwendet wird (das passiert auf den meisten Systemen), und installieren Sie eine IDE-Platte oder andere Hardware sowie einen dazu passenden Treiber, um IRQ 15 zu nutzen. Warum sehe ich in der Ausgabe von dmesg häufig die Meldung file: table is full? Diese Fehlermeldung besagt, daß Sie die zur Verfügung stehenden File-Handles des Systems - verbraucht haben. Die im Speicher stehende entsprechende Tabelle - ist voll. - - Die Lösung: - - Erhöhen Sie den Wert der Kernel-Variable - kern.maxfiles. - - &prompt.root; sysctl -w kern.maxfiles=n - - Wählen Sie ein für Ihre Anforderungen - passendes n. Jede geöffnete - Datei, jeder Socket und jeder FIFO verbrauchen je ein - File-Handle. Ein großer Fileserver kann durchaus - mehr als zehntausend (10.000+) File-Handles - benötigen; dies hängt davon ab, welche und wie - viele Dienste gleichzeitig genutzt werden. - - Die Voreinstellung für die Anzahl der - File-Handles wird in der Kernel-Konfiguration - festgelegt: - - maxusers 32 - - Wenn Sie den Wert der Variablen - maxusers erhöhen, steigt - kern.maxfiles proportional mit. - - Sie können den aktuellen Wert von - kern.maxfiles mit dem folgenden - Kommando abfragen: - - &prompt.root; sysctl kern.maxfiles -kern.maxfiles: 1064 + verbraucht haben. Was das genau bedeutet und wie Sie + dieses Problem lösen können, steht im Abschnitt + kern.maxfiles + im Kapitel Anpassung + der Kernel-Konfiguration des Handbuchs. Warum ist die Uhrzeit auf meinem Laptop immer falsch? Ihr Laptop verfügt über mehr als eine Uhr und FreeBSD benutzt leider die falsche. Starten Sie &man.dmesg.8; und achten Sie auf die Zeilen, in denen das Wort Timecounter vorkommt. Die von FreeBSD benutzte Uhr steht in der letzten Zeile, mit an Sicherheit grenzender Wahrscheinlichkeit wird es TSC sein. &prompt.root; dmesg | grep Timecounter Timecounter "i8254" frequency 1193182 Hz Timecounter "TSC" frequency 595573479 Hz Sie können das überprüfen, indem Sie den Wert der Systemvariablen kern.timecounter.hardware abfragen. &prompt.root; sysctl kern.timecounter.hardware kern.timecounter.hardware: TSC Es ist durchaus möglich, daß das BIOS die TSC Uhr ändert, um beispielsweise den CPU-Takt zu während des Batteriebetrieb zu ändern, oder im Stromsparmodus; leider bemerkt FreeBSD diese Änderungen nicht und daher scheint die Uhr falsch zu gehen. In diesem Beispiel ist die Uhr i8254 ebenfalls verfügbar; um sie auszuwählen, muß ihr Name in die Systemvariable kern.timecounter.hardware geschrieben werden. &prompt.root; sysctl -w kern.timecounter.hardware=i8254 kern.timecounter.hardware: TSC -> i8254 Die Uhrzeit Ihres Laptops sollte nun genauer funktionieren. Damit diese Änderung automatisch beim Start des Systems durchgeführt wird, müssen Sie die folgende Zeile in die /etc/sysctl.conf eintragen. kern.timecounter.hardware=i8254 Wieso hängt sich FreeBSD nach dem BIOS-Bildschirm mit der Meldung Read error auf? Der Bootloader von FreeBSD erkennt die Geometrie Ihrer Festplatte nicht richtig. Sie müssen die Geometrie manuell festlegen, wenn sie mit fdisk FreeBSD-Bereiche erzeugen oder ändern. Die richtigen Werte für die Geometrie können Sie im BIOS des Rechners ablesen. Achten Sie auf die Anzahl der Zylinder, Köpfe und Sektoren für Ihre Festplatte. Im fdisk von &man.sysinstall.8; müssen Sie G eingeben, um die Geometrie zu definieren. Sie erhalten eine Dialogbox, in der Sie die Anzahl der Zylinder, Köpfe und Sektoren eingeben können. Verwenden Sie die Angaben des BIOS und setzen Sie Schrägstriche zwischen die Zahlen. 5000 Zylinder, 250 Köpfe and 60 Sektoren würden also als 5000/250/60 eingegeben. Schließen Sie die Eingabe mit Enter ab und drücken Sie W, um die neue Partitionstabelle auf die Festplatte schreiben zu lassen. Ein anderes Betriebssystem hat meinen Bootmanager zerstört. Wie kann ich ihn wiederherstellen? Starten Sie &man.sysinstall.8; und wählen Sie Configure, dann Fdisk. Wählen Sie die Platte, auf der sich der Boot Manager befand, mit der Leertaste aus. Drücken Sie W, um die Änderungen auf die Platten schreiben zu lassen. Nun erscheint eine Abfrage, welcher Bootmanager installiert werden soll. Wählen Sie diesen an und er wird wieder installiert. + + + + Was soll mir die Meldung swap_pager: indefinite + wait buffer: sagen? + + + + Ein Programm wollte Speicher auf Platte auslagern, und + dieser Vorgang konnte nicht innerhalb von 20 Sekunden + durchgeführt werden. Mögliche Gründe sind + defekte Blöcke auf der Platte, falsche oder + fehlerhafte Verkabelung sowie Probleme mit anderen + Komponenten, die am Zugriff auf die Festplatte beteiligt + sind. Wenn die Festplatte selbst fehlerhaft sind, sollten + Sie entsprechende Meldungen in + /var/log/messages und den Ausgaben + von dmesg finden. Andernfalls sollten + Sie die Kabel und Verbindungen + überprüfen. + +
Kommerzielle Anwendungen Dieser Abschnitt ist immer noch sehr dürftig, aber wir hoffen natürlich, daß Unternehmen einen Beitrag leisten werden! :) Die FreeBSD-Gruppe hat keinerlei finanzielle Interessen an einem der hier aufgelisteten Unternehmen, sondern listet sie lediglich als öffentlichen Service auf (und ist der Meinung, daß ein kommerzielles Interesse an FreeBSD sehr positive Einfluß auf ein langfristiges Bestehen von FreeBSD haben kann). Wir möchten Anbieter kommerzieller Software dazu aufrufen, ihren Eintrag hier aufnehmen zu lassen. Auf der Anbieter-Seite finden Sie eine längere Liste. Wo bekommen ich FreeBSD-Versionen der klassischen Büro-Anwendungen? Die FreeBSD Mall + url="http://www.freebsdmall.com/">FreeBSD Mall bietet eine FreeBSD-Version von VistaSource + url="http://www.vistasource.com/">VistaSource ApplixWare 5 an. ApplixWare ist eine umfassende Sammlung von Büroanwendungen, die eine Textverarbeitung, eine Tabellenkalkulation, ein Programm für Vorträge, ein Vektorzeichenprogramm und diverse andere Programme beinhaltet. - Sie können die FreeBSD-Version von ApplixWare - online - bestellen. + Die FreeBSD-Version von ApplixWare ist Bestandteil + der BSD Desktop Edition, die von FreeBSD Mall + vertrieben wird. Die Linux-Version von StarOffice + url="http://www.sun.com/staroffice/">StarOffice läuft unter FreeBSD problemlos. Die einfachste Möglichkeit zur Installation der Linux-Version von Staroffice ist die Benutzung der FreeBSD Ports. - Zukünfte Versionen der im Sourcecode vorliegenden + Zukünftige Versionen der im Sourcecode vorliegenden Variante OpenOffice + url="http://www.openoffice.org/">OpenOffice sollten auch problemlos funktionieren. Woher kann ich Motif für FreeBSD bekommen? Der Quelltext für Motif 2.1.30 wurde von der Open Group herausgegeben. Sie können entweder das Package open-motif installieren oder es mit dem entsprechenden Port selbst compilieren. Weitere Informationen über die Benutzung der Ports erhalten Sie im Kapitel Ports des Handbuchs. Die Open Motif Distribution darf nur weitergegeben werden, wenn sie auf einem Open Source Betriebssystem benutzt wird. Weiterhin gibt es auch kommerzielle Motif-Paket, die zwar nicht kostenlos sind, aber dafür auch mit closed source Software benutzt werden dürfen. Um die günstigste ELF-Motiv 2.1.20 Distribution für FreeBSD (entweder i386 oder Alpha) zu bekommen, wenden Sie sich bitte an Apps2go. - Es gibt zwei Distributionen, die developement + Es gibt zwei Distributionen, die development edition und die runtime edition (wesentlich günstiger). Diese Distributionen enthalten: OSF/Motif manager, xmbind, panner, wsm. Development-Kit mit uil, mrm, xm, xmcxx, Include- und Imake-Dateien. Statische und dynamische ELF-Bibliotheken (zur Benutzung mit FreeBSD 3.0 und höher). Demonstrations-Applets. Achten Sie darauf, daß Sie bei der Bestellung angeben, daß Sie die FreeBSD-Version von Motif möchten (vergessen Sie auch nicht, die Architektur anzugeben)! Von Apps2go werden auch Versionen für NetBSD und OpenBSD verkauft. Dieses Produkt ist zur Zeit nur zum Download per FTP verfügbar. Weitere Informationen Apps2go Web-Seite oder sales@apps2go.com oder support@apps2go.com oder Telefon (817) 431 8775 oder +1 817 431-8775 Eine Motif 2.1-Distribution für FreeBSD im ELF- oder a.out-Format ist bei Metro Link erhältlich. Diese Distribution enthält: OSF/Motif manager, xmbind, panner, wsm. Development-Kit mit uil, mrm, xm, xmcxx, Include- und Imake-Dateien. Statische und dynamische Bibliotheken (verlangen Sie ELF zur Verwendung unter FreeBSD ab 3.0 und oder a.out zur Verwendung unter FreeBSD bis einschließlich 2.2.8). Demonstrations-Applets. Vorformatierte Manualpages. Achten Sie darauf, bei der Bestellung anzugeben, daß Sie die FreeBSD-Version von Motiv möchten! Metro Link vertreibt auch Versionen für Linux. Dieses Produkt ist entweder als CDROM - oder zum Download per FTP erhätlich. + oder zum Download per FTP erhältlich. Eine Motif 2.0 Distribution für FreeBSD im a.out-Format gibt es bei Xi Graphics. Diese Distribution enthält:/ OSF/Motif manager, xmbind, panner, wsm. Development-Kit mit uil, mrm, xm, xmcxx, Include- und Imake-Dateien. Statische und dynamische Bibliotheken (zur Verwendung unter FreeBSD 2.2.8 und frühere). Demonstrations-Applets. Vorformatierte Manualpages. Achten Sie darauf, bei der Bestellung anzugeben, daß Sie die FreeBSD-Version von Motiv möchten! Xi Graphics verkauft auch Versionen für BSDI und Linux. Dieses Produkt ist derzeit ein Satz von vier Disketten... zukünftig wird es eine einheitliche CD-Distribution geben, wie beim CDE. Woher kann ich CDE für FreeBSD bekommen? Xi Graphics hat einmal CDE für FreeBSD verkauft, tut es aber nicht mehr. KDE ist ein Open-Source X11-Desktop, das CDE in vielen Punkten ähnelt. Eventuell gefällt Ihnen auch das "Look and Feel" von xfce. KDE und xfce sind über das Ports-System von FreeBSD verfügbar. Gibt es irgendwelche kommerzielle leistungsfähige X-Server? Ja, Xi Graphics und Metro Link vertreiben beschleunigte X-Produkte für FreeBSD und andere Intel-basierte Systeme. Das Angebot von Metro Link besteht aus einem leistungsfähigen X-Server, der einfache Konfiguration unter Verwendung von Werkzeugen aus der FreeBSD-Paketsammlung und Unterstützung für den parallelen Einsatz mehrerer Videokarten bietet. Es wird nur in binärer Form über ein bequemes FTP-Download vertrieben. Ganz zu schweigen davon, daß das Angebot von Metro Link zum sehr günstigen Preis von 39 Dollar erhältlich ist. Metro Link bietet auch Motif für FreeBSD sowohl im ELF-, als auch im a.out-Format an (siehe oben). Weitere Informationen Metro Link Web-Seite oder sales@metrolink.com oder tech@metrolink.com oder Telefon (954) 938-0283 oder +1 954 938-0283 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. Es gibt ein kostenloses Kompatibilitäts-Demo der Version 5.0. Xi Graphics vertreibt auch Motif und CDE für FreeBSD (siehe oben). Weitere Informationen Xi Graphics Web-Seite oder sales@xig.com oder support@xig.com oder Telefon (800) 946 7433 oder +1 303 298-7478. Gibt es irgendwelche Datenbanksysteme für FreeBSD? Ja! Lesen Sie den Abschnitt kommerzielle Anbieter auf der FreeBSD-Web-Seite. Schauen Sie auch im Abschnitt Datenbanken der Ports-Sammlung nach. Kann ich Oracle unter FreeBSD laufen lassen? Ja. Die folgenden Seiten beschreiben genau, wie Linux-Oracle unter FreeBSD einzustellen ist: http://www.scc.nl/~marcel/howto-oracle.html http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd Benutzerprogramme Nun, wo sind die ganzen Benutzerprogramme? Werfen Sie bitte einen Blick auf die Ports-Seite, um Informationen über die nach FreeBSD portierten Softwarepakete zu erhalten. Die Liste - enthält zur Zeit 3400 Einträge und wächst - täglich. Schauen Sie hier also öfter nach oder - melden Sie sich bei der Mailingliste - freebsd-announce + enthält zur Zeit &os.numports; Einträge und + wächst täglich. Schauen Sie hier also + öfter nach oder melden Sie sich bei der Mailinglistefreebsd-announce an, um sich regelmäßig über Änderungen zu informieren. Die meisten Ports sind für die Zweige 2.2, 3.0 und 4.x erhältlich; viele von ihnen sollten auch auf 2.1.x-Systemen laufen. Jedesmal, wenn ein FreeBSD-Release erstellt wird, wird auch ein Snapshot des Port-Baumes vom Zeitpunkt des Releases in das Verzeichnis ports/ eingefügt. Wir unterstützen auch das Konzept von Packages - im Grunde genommen nicht mehr als gezippte Binärdistributionen mit ein wenig zusätzlicher Intelligenz zur Ermöglichung angepaßter Installationen. Ein Package kann leicht installiert und wieder deinstalliert werden, ohne, daß man etwas über wissen muß, welche Dateien es enthält. - Benutzen Sie das Paketinstallationsmenue in + Benutzen Sie das Paketinstallationsmenü in /stand/sysinstall (unter dem - Menuepunkt post-configuration) oder führen Sie den + Menüpunkt post-configuration) oder führen Sie den Befehl &man.pkg.add.1; mit den speziellen Paketdateien aus, die Sie installieren möchten. Paketdateien können für gewöhnlich an der Endung .tgz erkannt werden und diejenigen, die über eine CDROM-Distribution verfügen, haben auf ihrer CD ein Verzeichnis packages/All, das solche Dateien enthält. Für verschiedene FreeBSD-Versionen können sie von folgenden Adressen auch über das Netz heruntergeladen werden: für 2.2.8-RELEASE/2.2.8-STABLE ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/ für 3.X-RELEASE/3.X-STABLE ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/ für 4.X-RELEASE/4-STABLE ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/ für 5.0-CURRENT ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/ oder von Ihrem nächstgelegenen Mirror. Beachten Sie, daß nicht alle Ports als Package verfügbar sind, da ständig neue hinzugefügt werden. Es ist immer eine gute Idee, sich regelmäßig auf der ftp.de.FreeBSD.org Masterseite darüber zu informieren, welche Packages verfügbar sind. Wo finde ich libc.so.3.0? Sie versuchen, ein Package für 2.2 oder neuer auf einem 2.1.x-System laufen zu lassen. Bitte lesen Sie den vorherigen Abschnitt und besorgen Sie sich den passenden Port/das passende Package für Ihr System. Wieso erhalte ich die Meldung Error: can't find libc.so.4.0? Sie haben versehentlich ein Package für ein 4.X- oder 5.X-System heruntergeladen und versucht, es auf einem 2.X- oder 3.X-System zu benutzen. Bitte besorgen Sie sich die für ihr System korrekte Version des Packages. Warum produziert ghostscript auf meinem 386/486SX so viele Fehlermeldungen? Sie haben keinen mathematischen Co-Prozessor, richtig? Sie werden den alternativen mathematischen Emulator zu Ihren Kernel hinzufügen müssen; tun Sie das, indem Sie die folgende Zeile in Ihre Kernelkonfigurationsdatei einfügen, wodurch der Emulator in den Kernel kompiliert wird: options GPL_MATH_EMULATE Sie müssen die Option MATH_EMULATE hierzu entfernen. Wieso werden mir Fehler bei socksys gemeldet, wenn ich eine SCO/iBCS2-Anwendung laufen lasse? (nur für FreeBSD 3.0 und ältere Systeme) Sie müssen zunächst den letzten Abschnitt der Datei /etc/sysconfig (oder /etc/rc.conf) editieren und die folgende Variable auf YES setzen: # Set to YES if you want ibcs2 (SCO) emulation loaded at startup ibcs2=NO Hierdurch wird das Kernelmodul ibcs2 beim Hochfahren geladen. Dann müssen Sie /compat/ibcs2/dev so einrichten: lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -> /dev/null lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -> socksys -rw-rw-r-- 1 root wheel 0 Oct 28 12:02 null lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 socksys@ -> /dev/null crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx socksys kann einfach auf /dev/null zeigen, um open & close eine reguläre Datei vorzutäuschen. Der code in -CURRENT wird sich um den Rest kümmern. Dieses Vorgehen ist wesentlich sauberer, als bisher. Falls Sie den Treiber spx für lokale Socket-X-Verbindungen möchten, definieren Sie SPX_HACK, wenn Sie das System kompilieren. Wie konfiguriere ich INN (Internet News) für meine Maschine? Ein idealer Startpunkt nach der Installation des - Packages oder Ports INN ist news/inn ist Dave Barr's INN-Seite, wo Sie die INN-FAQ finden. Welche Version von Microsoft FrontPage sollte ich mir besorgen? Benutzen Sie den Port! Im Ports-Verzeichnis gibt es - eine vorbereitete Version von Apache. + eine vorbereitete Version von Apache, + apache13-fp. Unterstützt FreeBSD Java? Ja. Schauen Sie bitte hier http://www.de.FreeBSD.org/java/ nach. Warum kann ich manche Ports auf meiner - 3.X-STABLE-Machine nicht erstellen? + 3.X-STABLE-Maschine nicht erstellen? Wenn Sie eine FreeBSD-Version benutzen, die deutlich älter als das aktuelle -CURRENT oder -STABLE ist, könnte es sein, daß Sie ein Ports-Upgrade-Kit von http://www.de.FreeBSD.org/ports/ benötigen. Wenn Sie auf dem neuesten Stand sind, könnte es sein, daß jemand eine Änderung des Ports durchgeführt hat, die für -CURRENT funktioniert, den Port für -STABLE aber unbrauchbar gemacht hat. Bitte senden Sie einen Fehlerbericht mit dem Befehl &man.send-pr.1;. Von der Ports-Sammlung wird nämlich erwartet, daß sie sowohl auf -CURRENT als auch auf -STABLE funktioniert. Wo finde ich ld.so? - Wenn Sie aout-Anwendungen wie den Netscape-Navigator - auf einer ELF-basierten Maschine wie 3.1-R oder - spätere laufen lassen möchten, werden Sie - /usr/libexec/ld.so und einige - aout-Bibliotheken benötigen. Sie sind in der - Distribution compat22 enthalten. Benutzen Sie - /stand/sysinstall oder - install.sh im Unterverzeichnis - compat22, um sie zu installieren. Lesen Sie auch die - ERRATAs für 3.1-R und 3.2-R. + Auf a.out basierende Anwendungen wie der Netscape + Navigator benötigen a.out Bibliotheken. Wenn Sie + eine auf ELF basierende FreeBSD-Version verwenden, werden + diese nicht standardmäßig installiert. In + diesem Fall wird Ihnen das System melden, daß + /usr/libexec/ld.so nicht vorhanden + ist. Sie können diese Bibliotheken mit der + Distribution compat22 nachinstallieren. Benutzen Sie dazu + &man.sysinstall.8;. Alternativ können Sie auch die + Quelldateien verwenden: + + &prompt.root; cd /usr/src/lib/compat/compat22 +&prompt.root; make install clean + + Wenn Sie bei jedem make world die + aktuellen compat22-Bibliotheken installieren wollen, + müssen Sie in /etc/make.conf die + Zeile COMPAT22=YES eintragen. Da sich + diese Bibliotheken aber nur sehr selten ändern, ist + dies nicht unbedingt erforderlich. + + Lesen Sie auch die ERRATAs für 3.1-R und + 3.2-R. Ich habe die Sourcen aktualisiert, wie aktualisiere ich jetzt die installierten Ports? - Leider gibt es keine einfache Methode, um die - installierten Ports zu aktualisieren. Sie können mit - &man.pkg.version.1; ein Script erzeugen, das die - installieren Ports mit einer neueren Version aus der - Ports-Sammlung ersetzt: + FreeBSD enthält zwar kein Programm, das die + installierten Ports aktualisiert, allerdings existieren + diverse Programme, die diesen Prozeß etwas + vereinfachen. Weiterhin können Sie zusätzliche + Programme installieren, die Sie dabei + unterstützen. + + Sie können mit &man.pkg.version.1; ein Script + erzeugen, das die installieren Ports mit einer neueren + Version aus der Ports-Sammlung ersetzt: &prompt.root; pkg_version > /tmp/myscript Das so erzeugte Script muß manuell geändert werden, bevor es benutzt wird. Die aktuelle Version von &man.pkg.version.1; erzwingt dies, indem sie ein &man.exit.1; an den Anfang des Scripts setzt. Sie sollten die Ausgaben des Scripts abspeichern, da sie Ihnen melden werden, welche Ports von den dem gerade aktualisierten Port abhängen. Es ist möglich, daß diese auch aktualisiert werden müssen. Der typische Fall, in dem ein Update erforderlich ist, ist eine Änderung der Versionsnummer einer shared library; in diesem Fall müssen die abhängigen Ports neu übersetzt werden, damit sie die neue Library nutzen. + Falls Sie über genügend freien Plattenplatz + verfügen, können Sie diesen Prozeß mit + portupgrade automatisieren. + portupgrade umfaßt diverse + Programme, die die Arbeit mit Packages erleichtern und ist + als sysutils/portupgrade verfügbar. Da + portupgrade in Ruby geschrieben wurde, + wird es wahrscheinlich nie ein Bestandteil von FreeBSD + werden. Allerdings sollte das niemanden davon abhalten, + es trotzdem zu benutzen. + Wenn Ihr System rund um die Uhr läuft, kann es jede Woche automatisch eine Liste der Ports erzeugen, die - wahrscheinlich aktualisert werden müssen. Fügen + wahrscheinlich aktualisiert werden müssen. Fügen Sie dazu weekly_status_pkg_enable="YES" in /etc/periodic.conf ein. Warum ist /bin/sh so spartanisch? Warum benutzt FreeBSD nicht die bash oder eine ähnliche Shell? Weil der POSIX-Standard definiert, daß es so eine Shell geben muß. Die ausführlichere Antwort: Viele Leute müssen Shell-Programme schreiben, die auf vielen verschiedenen Systemen nutzbar sein müssen. Aus diesem Grund enthält der POSIX-Standard eine sehr detaillierte Definition der Shell und der Hilfsprogramme. Die meisten Programme werden für die Bourne Shell geschrieben; außerdem nutzen mehrere wichtige Schnittstellen (&man.make.1;, &man.system.3;, &man.popen.3; und ihre Entsprechungen in höheren Programmiersprachen wie Perl und Tcl) die Bourne Shell, um Befehle auszuführen. Da die Bourne Shell an so vielen Stellen und so häufig genutzt wird, muß sie die folgenden Anforderungen erfüllen: Schneller Start, ein klar definiertes Verhalten und ein möglichst geringer Speicherverbrauch. Wir haben bei der vorliegenden Implementierung versucht, möglichst viele dieser Anforderungen zu erfüllen. Um /bin/sh nicht zu groß werden zu lasen, haben wir viele der Annehmlichkeiten der anderen Shells weggelassen. Aus diesem Grund gibt es in den Ports die luxuriöseren Shells wie bash, scsh, tcsh und zsh. Vergleichen Sie einfach mal den Speicherverbrauch der verschiedenen Shells, indem Sie ps -u aufrufen und sich die Angaben in den Spalten VSZ und RSS ansehen. + + + + Wieso dauert es so lange, bis Netscape und Opera + starten? + + + + In den meisten Fällen liegt es daran, daß + Ihre DNS-Einstellungen fehlerhaft sind. Sowohl Netscape + als auch Opera stellen Anfragen an DNS, wenn Sie gestartet + werden. Das Fenster des Browsers erscheint erst, wenn das + Programm eine Antwort erhalten hat oder es festgestellt + hat, daß Ihr System nicht an ein Netzwerk + angeschlossen ist. + + Kernelkonfiguration Ich möchte meinen Kernel anpassen. Ist das schwierig? Überhaupt nicht! Lesen Sie den Abschnitt zur Kernelkonfiguration im Handbuch. Sie sollten einen datierten Snapshot Ihres Kernels als kernel.YYMMDD zu erstellen, - nachdem Sie alles zum Laufen gebracht haben. Auf diese + nachdem Sie alles zum Laufen gebracht haben. + Außerdem sollten Sie eine Kopie des Verzeichnisses + /modules erstellen, die den Namen + /modules.YYMMDD hat. Auf diese Weise können Sie diesen Kernel hochfahren, anstatt den ganzen Weg zurück zu kernel.GENERIC gehen zu müssen, wenn Sie das nächste Mal mit Ihrer Konfiguration herumexperimentieren und dabei etwas falsch machen sollten. Das ist besonders wichtig, wenn Sie nun von einem Controller booten, der vom GENERIC-Kernel nicht unterstützt wird. Was kann ich machen, wenn meine Kernel-Kompilierungen fehlschlagen, weil _hw_float fehlt? Lassen Sie mich raten. Sie haben npx0 aus Ihrer Konfigurationsdatei entfernt, weil Sie keinen mathematischen Co-Prozessor besitzen, richtig? Falsch! :-) npx0 ist zwingend erforderlich. Auch, wenn Sie keinen mathematischen Co-Prozessor besitzen, müssen Sie das Gerät npx0 einbinden. Warum ist mein Kernel so groß (über 10 MByte)? Sie haben Ihren Kernel wahrscheinlich im Debug Modus erstellt. Ein Debug-Kernel enthält viele zusätzliche Informationen für die Fehlersuche, daher ist er so groß. Bitte beachten Sie, daß die Verwendung eines Debug-Kernels bei FreeBSD 3.0 und neueren Version die Performance des Systems nicht oder nur minimal reduziert; außerdem ist es für den Fall einer system panic sehr praktisch, einen Debug-Kernel zur Hand zu haben. Wenn Ihnen allerdings der Plattenplatz ausgeht oder Sie einfach rein prinzipiell keinen Debug-Kernel benutzen wollen, müssen die beiden folgenden Bedingungen erfüllt sein: Die Konfigurationsdatei für Ihren Kernel darf die folgende Zeile nicht enthalten: makeoptions DEBUG=-g Sie dürfen &man.config.8; nicht mit dem Parameter starten. Sollten Sie sich nicht an diese Einschränkungen halten, wird Ihr Kernel im Debug-Modus erstellt. Solange Sie sich an diese Einschränkungen halten, können Sie Ihren Kernel ganz normal erstellen und die Größe des Kernels sollte deutlich sinken. Ein normaler Kernel ist nur 1.5 MByte bis 2 MByte groß. Wieso erhalte ich Meldungen über Interrupt-Konflikte, wenn ich eine Karte mit mehreren seriellen Schnittstellen einsetzen will? Wenn ich einen Kernel mit Unterstützung für serielle Multi-Port-Schnittstellen kompiliere, bekomme ich den Hinweis, daß nur der erste Port geprüft wird und die restlichen auf Grund von Interrupt-Konflikten übersprungen werden. Wie kann ich das Beheben? Das Problem besteht darin, daß in FreeBSD Code integriert ist, um den Kernel vor Abstürzen aufgrund von Hardware- oder Software-Konflikten zu bewahren. Behoben wird es, indem die IRQ-Angaben für alle Ports, bis auf einen ausgelassen werden. Hier ist ein Beispiel: # # Multiport high-speed serial line - 16550 UARTS # device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr Wieso kann ich nicht einmal den Standard-Kernel (GENERIC) bauen? Es gibt eine Reihe von möglichen Ursachen für dieses Problem: Sie benutzen die neuen Kommandos make buildkernel und make installkernel nicht, obwohl die Sourcen auf Ihrem System nicht zum laufenden System passen (z.B. benutzen Sie die Sourcen von 4.3-RELEASE auf einem System mit 4.0-RELEASE). Wenn Sie ein Upgrade durchführen wollen, sollten Sie /usr/src/UPDATING lesen, beachten Sie insbesondere den Abschnitt COMMON ITEMS gegen Ende des Dokuments. Sie benutzen zwar make buildkernel und make installkernel, aber Sie haben nicht darauf geachtet, daß vorher ein komplettes make buildworld durchgelaufen sein muß. Um seine Arbeit erledigen zu können, benötigt make buildkernel Dateien, die von make buildworld erzeugt werden. Auch wenn Sie FreeBSD-STABLE verwenden, ist es durchaus möglich, daß Sie die Sourcen genau zum falschen Zeitpunkt aktualisiert haben: Während Sie gerade modifiziert wurden oder kurzzeitig fehlerhaft waren. Eine absolute und vollständige Garantie, daß Sie die Sourcen compilieren können, gibt es nur für die Releases, bei FreeBSD-STABLE ist das nicht immer so. Wenn Sie es noch nicht versucht haben, sollten Sie ihre Source nochmals aktualisieren. Es ist denkbar, daß der von Ihnen genutzte Server zur Zeit Probleme hat, benutzten Sie daher testweise auch einmal einen anderen Server. - - Systemadministration + + Platten, Dateisysteme und Boot Loader - - - Wo befinden sich die Konfigurationsdateien für - den Systemstart? - - - - Für die Versionen 2.0.5R bis 2.2.1R heißt - die primäre Konfigurationsdatei - /etc/sysconfig. Alle Optionen - müssen in dieser Datei angegeben werden und andere - Dateien wie /etc/rc und - /etc/netstart übernehmen sie - einfach hieraus. - - Sehen Sie in die Datei - /etc/sysconfig und ändern Sie - die Werte entsprechend Ihrem System. Diese Datei - enthält Kommentare, die die möglichen - Einstellungen erklären. - - In den Versionen nach 2.2.1 und 3.0 erhielt - /etc/sysconfig den - aussagekräftigeren Namen &man.rc.conf.5; - und die Syntax wurde bei dieser Gelegenheit auch etwas - bereinigt. /etc/netstart wurde - ebenfalls in /etc/rc.network - umbenannt, so daß alle Dateien nun mit dem Befehl - cp /usr/src/etc/rc* /etc kopiert werden - können. - - Seit FreeBSD 3.1 ist rc.conf als - /etc/defaults/rc.conf verfügbar. - Ändern Sie diese Datei nicht! - Wenn Sie den Wert einer der in - /etc/defaults/rc.conf gesetzten - Variablen ändern wollen, sollten Sie die - entsprechende Zeile an die Datei - /etc/rc.conf anfügen und sie - dort ändern. - - Wenn Sie zum Beispiel den ab FreeBSD 3.1 - mitgelieferten DNS Server named aktivieren wollen, - müssen Sie lediglich das folgende Kommando - eingeben: - - &prompt.root; echo named_enable="YES" >> /etc/rc.conf - - Wenn Sie in FreeBSD 3.1 und späteren Versionen - lokale Server starten wollen, müssen Sie passende - Shellscripts im Verzeichnis - /usr/local/etc/rc.d/ ablegen. Die - Dateien müssen als ausführbar markiert sein und - die Endung .sh haben. Wenn Sie FreeBSD 3.0 oder eine noch - ältere Version benutzen, müssen Sie die Datei - /etc/rc.local ändern. - - Die Datei /etc/rc.serial dient - zur Initialisierung serieller Schnittstellen (z.B. - Einstellung der Schnittstelleneigenschaften usw.). - - Die Datei /etc/rc.i386 dient - für Intel-spezifische Einstellungen wie - iBCS2-Emulation oder Konfiguration der - PC-Systemkonsole. - - - - - - Wie kann ich am Einfachsten einen Benutzer - hinzufügen? - - - - Benutzen Sie den Befehl &man.adduser.8; und für - kompliziertere Fälle den Befehl &man.pw.8;. - - Benutzen Sie den Befehl &man.rmuser.8;, um einen - Benutzer wieder zu löschen. Sie können hierzu - auch &man.pw.8; benutzen. - - - Wie kann ich meine neue Festplatte in mein FreeBSD-System einbinden? Lesen Sie das Tutorial zur Festplattenformatierung unter www.de.FreeBSD.org. - - Ich habe ein Wechsellaufwerk. Wie benutze ich - es? + + Wie verschiebe ich mein System auf meine neue, + große Platte. - Ob es sich um ein Wechsellaufwerk handelt, um ein ZIP- - oder ein EZ-Laufwerk (oder sogar ein Diskettenlaufwerk, - wenn Sie es auf diese Weise benutzen möchten), oder - um eine neue Festplatte - wenn es einmal installiert und - vom System erkannt ist und Sie Ihre - Kassete/Diskette/was_auch_immer eingelegt haben, ist das - Vorgehen bei allen Geräten ziemlich - ähnlich. - - (dieser Abschnitt basiert auf - Mark - Mayo's ZIP-FAQ) - - Wenn es sich um ein ZIP- oder Diskettenlaufwerk - handelt, und sich bereits ein DOS-Dateisystem darauf - befindet, können Sie einen Befehl wie diesen für - eine Diskette benutzen: + 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. - &prompt.root; mount -t msdos /dev/fd0c /floppy + Falls Sie sich entscheiden, das nicht zu tun, + müssen Sie Ihre neue Platte partitionieren und + labeln. Benutzen Sie dafür entweder + /stand/sysinstall oder &man.fdisk.8; + und &man.disklabel.8;. Weiterhin sollten Sie mit + &man.boot0cfg.8; auf beiden Platten booteasy installieren, + damit Sie in der Lage sind, das alte und das neue System + abwechselnd zu starten, nachdem der Kopiervorgang + abgeschlossen ist. Im Formatting-Media + Tutorial finden Sie weitere Informationen zu + diesen Schritten. - oder diesen: + Nachdem Sie die neue Platte eingerichtet haben, + können Sie Ihre Daten verschieben. Dummerweise + können Sie die Daten nicht einfach. Dinge wie die + Gerätedateien (in /dev), + erweiterte Dateiattribute und symbolische Links führen + dazu, daß das in die Hose geht. Sie müssen + ein Programm benutzen, das damit umgehen kann, und das + ist &man.dump.8;. Es wird oft empfohlen, die Daten im + Single-User Modus zu verschieben, aber das ist nicht + unbedingt notwendig. - &prompt.root; mount -t msdos /dev/da2s4 /zip + 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. Um die Daten einer Partition mit + dump auf eine andere Partition zu verschieben, müssen + Sie die folgenden Schritte ausführen: - für eine ZIP-Disk mit der - Herstellerkonfiguration. + + + Richten Sie in der neuen Partition mit newfs ein + Dateisystem ein. + - Benutzen Sie bei anderen Platten &man.fdisk.8; oder - &man.sysinstall.8;, um herauszufinden, wie sie - konfiguriert sind. + + Mounten Sie die Partition temporär an einer + geeigneten Stelle. + - Die restlichen Beispiele sind für ein - ZIP-Laufwerk unter da2, der dritten SCSI-Platte. + + Wechseln Sie mit cd in dieses Verzeichnis. + - Wenn es sich nicht um eine Diskette oder eine - Wechselplatte handelt, die Sie mit anderen Leuten - austauschen wollen, ist es wahrscheinlich besser, ein - BSD-Dateisystem darauf zu installieren. Hierdurch - bekommen Sie Unterstützung für lange Dateinamen, - eine mindestens doppelt so hohe Leistungsausnutzung und - wesentlich höhere Stabilität. Zunächst - müssen Sie die Partitionen/Dateisysteme auf DOS-Ebene - nochmals erstellen. Sie können entweder - &man.fdisk.8; oder /stand/sysinstall - benutzen, oder, bei einem kleinen Laufwerk, dem Sie eine - Unterstützung für mehrere Betriebssysteme nicht - zumuten wollen, entfernen Sie einfach die komplette FAT - Partitionstabelle (Slices) und benutzen Sie einfach die - BSD-Partitionierung: + + Lesen Sie die alte Partition mit dump aus und + lenken Sie die Ausgabe auf die neue Partition + um. + + - &prompt.root; dd if=/dev/zero of=/dev/rda2 count=2 -&prompt.root; disklabel -Brw da2 auto + Wenn Sie zum Beispiel root auf + /dev/ad1s1a verschieben wollen und + diese zur Zeit auf /mnt gemountet + ist, bedeutet das: - Sie können disklabel oder - /stand/sysinstall benutzen, um mehrere - BSD-Partitionen zu erstellen. Dies werden Sie sicherlich - bei einer fest eingebauten Platte wollen, aber bei einem - Wechsellaufwerk wie einem ZIP ist das wahrscheinlich - irrelevant. + &prompt.root; newfs /dev/ad1s1a + &prompt.root; mount /dev/ad1s1a /mnt + &prompt.root; cd /mnt + &prompt.root; dump 0af - / | restore xf - + + Wenn Sie Ihre Partitionen mit &man.dump.8; + umorganisieren wollen, steht Ihnen etwas mehr Arbeit + bevor. Wenn Sie eine Partition wie + /var in die übergeordnete Partition + verschieben wollen, müssen Sie zunächst eine neue + Partition erzeugen, die die beiden alten Partitionen + aufnehmen kann. Der zweite Schritt ist, wie oben + beschrieben die übergeordnete Partition in die neue + Partition zu verschieben. Im dritten und letzten Schritt + verschieben Sie dann die untergeordnete Partition in das + leere Verzeichnis, das im zweiten Schritt entstanden + ist: - Zum Schluß erstellen Sie ein neues Dateisystem - - dieses befindet sich auf unserem ZIP-Laufwerk und belegt - die gesamte Platte: + &prompt.root; newfs /dev/ad1s1a +&prompt.root; mount /dev/ad1s1a /mnt +&prompt.root; cd /mnt +&prompt.root; dump 0af - / | restore xf - +&prompt.root; cd var +&prompt.root; dump 0af - /var | restore xf - + + Wenn Sie ein Verzeichnis aus einer Partition + herauslösen wollen, also z.B. + /var auf eine eigene Partition + verlegen wollen, dann müssen Sie zunächst beide + Partitionen anlegen. Danach müssen Sie die + untergeordnete Partition im passenden Verzeichnis + unterhalb des temporären mount points mounten und zum + Abschluß die alte Partition verschieben: - &prompt.root; newfs /dev/rda2c + &prompt.root; newfs /dev/ad1s1a +&prompt.root; newfs /dev/ad1s1d +&prompt.root; mount /dev/ad1s1a /mnt +&prompt.root; mkdir /mnt/var +&prompt.root; mount /dev/ad1s1d /mnt/var +&prompt.root; cd /mnt +&prompt.root; dump 0af - / | restore xf - - anschließend mounten Sie es: - - &prompt.root; mount /dev/da2c /zip - - Und sicherlich ist es keine schlechte Idee, eine Zeile - ähnlich der folgenden in die Datei - /etc/fstab einzufügen, damit Sie - in Zukunft nur mount /zip einzugeben - brauchen: - - -/dev/da2c /zip ffs rw,noauto 0 0 - - - + Eventuell sagen Ihnen für Benutzerdaten + &man.cpio.1;, &man.pax.1; oder &man.tar.1; eher zu als + &man.dump.8;. Allerdings haben alle diese Programme den + Nachteil, daß sie die erweiterten Dateiattribute + nicht verstehen, daher sollten Sie bei ihrem Einsatz + aufpassen. + + - - Warum erhalte ich Meldungen wie root: not - found, nachdem ich meine crontab geändert - habe? + + Gefährdet eine dangerously + dedicated Festplatte meine Gesundheit? - Die übliche Ursache dieses Problems ist, - daß Sie die crontab des Systems - (/etc/crontab) geändert und dann - mit &man.crontab.1; installiert haben: + Die Installationsprozedur bietet + Ihnen zwei verschiedene Methoden, Ihre Festplatte(n) zu + partitionieren. Die Standardmethode macht sie kompatibel + zu anderen Betriebssystemen auf derselben Maschine, indem + fdisk-Tabelleneinträge (unter FreeBSD + slices genannt) mit einem FreeBSD-Eintrag, + in dem eigene Partitionen untergebracht werden, benutzt + werden. Optional kann ausgewählt werden, ob ein + Boot-Selektor installiert werden soll, um zwischen den + möglichen Betriebssystemen auf der/den Platte(n) + wechseln zu können. Bei der zweiten Methode wird die + gesamte Platte für FreeBSD genutzt und nicht + versucht, kompatibel zu anderen Betriebssystemen zu + sein. - &prompt.root; crontab /etc/crontab + Nun, warum wird es gefährlich + genannt? Eine Platte in diesem Modus enthält nichts, + was von normalen PC-Hilfsprogrammen als gültige + fdisk-Tabelle betrachtet werden würde. Abhängig + von der Qualität ihres Designs werden sie sich bei + Ihnen beschweren, sobald sie mit einer solchen Platte in + Kontakt kommen, oder noch schlimmer, sie könnten den + Bootstrap von FreeBSD beschädigen, ohne Sie zu fragen + oder darauf hinzuweisen. Hinzu kommt, daß vom + Layout von dangerously dedicated Platten + bekannt ist, daß es viele BIOSe verwirrt, + einschließlich solcher von AWARD (wie es z.B. im HP + Netserver oder Micronics-Systemen, sowie vielen anderen zu + finden ist) und Symbios/NCR (für die bekannte + 53C8xx-Reihe von SCSI-Controllern). Dies ist keine + vollständige Liste - es gibt weitere. Symptome + für diese Verwirrung sind read + error-Meldungen, die vom FreeBSD-Bootstrap + ausgegeben werden, wenn es sich selbst nicht finden kann, + sowie Systemabstürze beim Booten. - 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;). + Warum gibt es diesen Modus dann überhaupt? Es + spart ein paar kByte an Plattenplatz und kann echte + Probleme verursachen, die zu einer Neuinstallation + führen. Die Ursprünge des Dangerously + dedicated Modus liegen in der Absicht, eines der + häufigsten Probleme, das Erstinstallierer von FreeBSD + plagt, zu verhindern - die BIOS-Werte für die + Geometrie einer Festplatte auf der + Festplatte selbst anzupassen. - Wenn Sie so vorgegangen sind, ist die zweite crontab - einfach nur eine Kopie von - /etc/crontab, allerdings im falschen - Format. Löschen Sie sie mit dem folgenden - Befehl: + Geometrie ist ein veraltetes Konzept, + das aber immer noch die Grundlage für die Interaktion + zwischen dem PC-BIOS und den Festplatten ist. Wenn das + Installationsprogramm von FreeBSD Slices erstellt, + muß es sich die Lage dieser Slices auf der + Festplatte in einer Art merken, die damit + übereinstimmt, wie das BIOS erwartet, sie zu finden. + Wenn das falsch geschieht, werden Sie nicht in der Lage + sein, zu booten. - &prompt.root; crontab -r + Durch den Dangerously dedicated Modus + wird versucht, dies zu umgehen, indem das Problem + vereinfacht wird. In einigen Fällen klappt das zwar, + aber er ist eher als allerletzter Ausweg gedacht - in 99 + von 100 Fällen gibt es bessere Möglichkeiten, + das Problem zu lösen. - Wenn Sie /etc/crontab wieder - ändern müssen, sollten Sie einfach gar nichts - tun, um &man.cron.8; über die Änderung zu - informieren, er erkennt die Änderung - automatisch. + Wie vermeiden Sie also die Notwendigkeit zum + DD Modus, wenn Sie installieren? Beginnen + Sie, indem Sie sich notieren, welche Geometrie das BIOS + für Ihre Platten benutzt. Sie können erreichen, + daß der Kernel sie beim Booten ausgibt, indem Sie + an der Eingabeaufforderung + boot: angeben, oder boot + -v im Loader verwenden. Kurz bevor das + Installationsprogramm startet, wird der Kernel eine Liste + mit den BIOS-Geometrien ausgeben. Keine Panik - warten + Sie, bis das Installationsprogramm gestartet wurde und + benutzen Sie Scrollback, um die Zahlen zu lesen. + Typischerweise befinden sich die BIOS-Platten in derselben + Reihenfolge, wie FreeBSD Ihre Platten auflistet - zuerst + IDE, dann SCSI. - Wenn Sie ein Kommando jeden Tag, jede Woche oder jeden - Monat ausführen lassen wollen, ist es wahrscheinlich - einfacher, wenn Sie entsprechende Shell-Scripte in - /usr/local/etc/periodic ablegen. - Diese werden dann von &man.periodic.8; zusammen mit den - anderen regelmäßigen Tätigkeiten - ausgeführt. + Wenn Sie Ihre Festplatte in Slices unterteilen, + überprüfen Sie, ob die Plattengeometrie, die im + FDISK-Menü angegeben ist, korrekt ist (d.h. mit den + Einstellungen im BIOS übereinstimmen). Falls die + Werte nicht stimmen, benutzen Sie g, um + sie zu korrigieren. Diese Schritte sind nötig, wenn + sich absolut nichts auf der Festplatte befindet, oder, + wenn die Festplatte vorher in einem anderen System benutzt + worden ist. Beachten Sie, daß dies nur für die + Festplatte nötig ist, von der Sie booten wollen. Mit + weiteren vorhandenen Platten wird FreeBSD sich problemlos + zurechtfinden. - Der eigentliche Grund für den Fehler ist die - Tatsache, daß die crontab des Systems ein - zusätzliches Feld enthält; dieses Feld gibt an, - mit welcher Benutzerkennung der Befehl ausgeführt - werden soll. In der mitgelieferten crontab ist das bei - allen Einträgen die Benutzerkennung - root. Wenn diese Datei als die - crontab des Benutzers username (die - nicht mit der crontab des Systems - identisch ist) verwendet wird, hält &man.cron.8; die - Zeichenkette root für den Namen - des zu startenden Programmes, aber dieses Programm gibt es - nicht. - - + Wenn Sie es geschafft haben, daß das BIOS und + FreeBSD in der Festplattengeometrie übereinstimmen, + dann sind Ihre Probleme ziemlich sicher vorüber - + ohne, daß es nötig gewesen wäre, den + DD-Modus zu benutzen. Falls sie jedoch + immer noch mit der gefürchteten read + error-Meldung begrüßt werden sollten, + wenn Sie versuchen, zu booten, wird es Zeit, daß Sie + Ihre Finger kreuzen und es einfach versuchen - es gibt + nichts mehr zu verlieren. - - - Wieso meldet mir &man.su.1; you are not in - the correct group to su root, wenn ich mit - &man.su.1; root werden will? - + Um eine dangerously dedicated + Festplatte wieder für einen normalen PC brauchbar zu + machen, gibt es zwei Möglichkeiten. Die erste ist, + ausreichend viele NULL-Bytes in den MBR zu schreiben, um + irgendwelche nachfolgenden Installation glauben zu machen, + daß es sich um eine leere Festplatte handelt. Sie + können das zum Beispiel so tun: - - Das ist ein Sicherheits-Feature. Wenn Sie mit - &man.su.1; zum Account root (oder - jedem anderen Account mit Super-User-Privilegien) wechseln - wollen, müssen Sie ein Mitglied der Gruppe - wheel sein. Wenn es dieses Feature - nicht gäbe, könnte jeder, der einen Account auf - dem System hat und zufällig das Paßwort - für root erfährt, mit - Super-User-Rechten auf das System zugreifen. Durch dieses - Feature ist die Lage anders, wenn Sie nicht Mitglied von - wheel sind, können Sie nicht - einmal versuchen, daß Paßwort - einzugeben. + &prompt.root; dd if=/dev/zero of=/dev/rda0 count=15 - Um einem Benutzer zu erlauben, mit &man.su.1; - root zu werden, müssen Sie ihn - nur in die Gruppe wheel - eintragen. + Alternativ installiert der undokumentierte + DOS-Befehl + + C:\> fdisk /mbr + + einen neuen Master-Boot-Record, d.h. der BSD-Bootstrap + wird zerstört. + + + + + + Auf welchen Partitionen kann ich problemlos + Softupdates einsetzen? Ich habe gehört, das der + Einsatz von Softupdates auf / + Probleme verursachen kann. + + + + Die schnelle Antwort: Sie können Softupdates + bedenkenlos auf alle Partitionen benutzen. + + Die ausführliche Antwort: Es gab lange Zeit + Bedenken, was den Einsatz von Softupdates auf der + root-Partition betrifft. Der Grund sind zwei + Charakteristika der Softupdates: Zum einen kann es bei + einem Absturz des System auf einer Partition mit + Softupdates zum Datenverlust kommen. Die Partition ist + zwar noch brauchbar, aber einige Daten können + verloren gehen. Weiterhin kann es durch Softupdates zu + einem zeitweisen Mangel an Plattenplatz kommen. + + Bei der Benutzung von Softupdates kann es bis zu + dreißig Sekunden dauern, bis der Kernel + Änderungen auf das physikalische Speichermedium + schreibt. Wenn Sie eine große Datei löschen, + ist diese Datei noch auf der Platte vorhanden, bis der + Kernel die Löschoperation tatsächlich + durchführt. Das kann zu einem sehr einfachen Problem + führen: Stellen Sie sich vor, Sie löschen eine + große Datei und legen gleich darauf eine andere + große Datei an. Da die erste Datei noch nicht + wirklich gelöscht wurde, ist eventuell nicht genug + Platz für die zweite große Datei. Sie erhalten + die Fehlermeldung, daß nicht genug freier Platz + vorhanden ist, obwohl Sie ganz genau wissen, daß Sie + gerade eben Platz geschaffen haben. Wenn Sie die + Operation ein paar Sekunden später wiederholen, + funktioniert alles wie von Geisterhand. Dieser Effekt hat + mehr als einen Benutzer verwirrt und Zweifel an seiner + geistigen Stabilität und/oder dem FreeBSD-Dateisystem + aufkommen lassen. + + Wenn der Kernel ein Datenpaket annimmt und das System + abstürzt, bevor er dies Daten auf die Platte + geschrieben hat, kann es zum Verlust oder zur + Zerstörung von Daten kommen. Dieses Risiko ist nur + sehr gering und normalerweise tragbar. Wenn Sie + allerdings einen IDE-Write-Cache verwenden, steigt das + Risiko; daher wird normalerweise empfohlen, auf den + Einsatz dieser Technik zu verzichten, wenn Sie Softupdates + benutzen. + + Diese beiden Probleme betreffen alle Partitionen, die + Softupdates verwenden. Was bedeutet das für die + Root-Partition? + + Die wichtigen Daten auf der Root-Partition ändern + sich nur sehr selten. Dateien wie + /kernel und der Inhalt + /etc werden nur bei der Wartung des + Systems geändert, oder wenn Benutzer ihre + Paßwörter ändern. Wenn das System in den + 30 Sekunden nach einer solchen Änderung + abstürzt, ist es möglich, das Daten verloren + gehen. Dieses Risiko ist in den meisten Fällen + unerheblich, aber es ist vorhanden. Wenn das zu viel + Risiko ist, dann sollten Sie Softupdates nicht auf der + Root-Partition einsetzen. + + / war schon immer eine der + kleinsten Partitionen. Standardmäßig legt + FreeBSD das Verzeichnis /tmp direkt + auf /. Wenn in Ihrem + /tmp viel Betrieb ist, kann es + gelegentlich zu den oben beschriebenen Platzproblemen + kommen. Um das Problem zu lösen, sollten sie einen + symbolischen Link von /tmp nach + /var/tmp legen. - - Ich habe einen Fehler in der - rc.conf oder einer der anderen - Dateien für den Systemstart und jetzt kann ich sie - nicht ändern, weil das Dateisystem - read-only ist. Was kann ich tun? + + Was stimmt mit meinem ccd nicht? - Wenn Sie aufgefordert werden, den Pfadnamen der Shell - einzugeben, drücken Sie einfach - ENTER. Geben Sie danach mount - / ein, um das root Dateisystem im - Schreib/Lese-Modus zu mounten. Sie werden wahrscheinlich - auch mount -a -t ufs ausführen - müssen, um das Dateisystem mit Ihrem Lieblingseditor - zu mounten. Wenn Ihr Lieblingseditor auf einem - Netzwerklaufwerk liegt, müssen Sie entweder das - Netzwerk von Hand konfigurieren oder einen Editor - benutzen, der auf einem lokalen Laufwerk vorhanden ist, - z.B. &man.ed.1;. + Das Symptom hierfür ist: - Wenn Sie einen bildschirmorientierten Editor wie zum - Beispiel &man.vi.1; oder &man.emacs.1; benutzen wollen, - werden Sie auch den Befehl export - TERM=cons25 ausführen müssen, damit - diese Editoren die richtigen Einstellungen aus der - Datenbank &man.termcap.5; übernehmen. + &prompt.root; ccdconfig -C +ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format - Sobald Sie diese Schritte ausgeführt, können - Sie den Fehler in der /etc/rc.conf - ganz normal beheben. Die Fehlermeldungen, die Ihnen - unmittelbar nach den Startmeldungen des Kernels angezeigt - wurden, sollten Ihnen die Nummer der Zeile mit dem Fehler - melden. + Das geschieht für gewöhnlich, wenn Sie + versuchen, die c Partitionen, die + standardmäßig vom Typ + unbenutzt sind, zu verbinden. Der + ccd-Treiber verlangt Partitionen vom Typ FS_BSDFFS. + Editieren Sie den Plattenlabel der Platten, die Sie zu + verknüpfen versuchen und ändern Sie die Typen + der Partitionen in 4.2BSD. - - Wie mounte ich eine erweiterte DOS-Partition? + + Warum kann ich den Plattenlabel meines ccd nicht + editieren? - Die erweiterten DOS-Partitionen befinden sich hinter - ALLEN primären Partitionen. Wenn sich zum Beispiel - eine Partition E als sekundäre - DOS-Partition auf Ihrem zweiten SCSI-Laufwerk befindet, - müssen Sie die speziellen Dateien für - Slice 5 im Verzeichnis - /dev erstellen und dann - /dev/da1s5 mouten: + Das Symptom hierfür ist: - &prompt.root; cd /dev -&prompt.root; ./MAKEDEV da1s5 -&prompt.root; mount -t msdos /dev/da1s5 /dos/e + &prompt.root; disklabel ccd0 +(hier wird etwas vernünftiges ausgegeben; versuchen wir nun, es zu editieren) +&prompt.root; disklabel -e ccd0 +(editiern, speichern, beenden) +disklabel: ioctl DIOCWDINFO: No disk label on disk; +use "disklabel -r" to install initial label + + Der Grund ist, daß der von ccd + zurückgelieferte Plattenlabel ein + vorgetäuschter ist, der sich nicht + wirklich auf der Platte befindet. Sie können das + Problem beheben, indem Sie ihn explizit + zurückschreiben, wie z.B. hier: + + &prompt.root; disklabel ccd0 > /tmp/disklabel.tmp +&prompt.root; disklabel -Rr ccd0 /tmp/disklabel.tmp +&prompt.root; disklabel -e ccd0 +(nun wird es funktionieren) Kann ich andere fremde Dateisysteme unter FreeBSD mounten? Digital UNIX 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. Linux FreeBSD unterstützt seit Version 2.2 ext2fs-Partitionen. Unter &man.mount.ext2fs.8; finden Sie weitere Informationen. NT Es gibt einen NTFS-Treiber, der nur Lesezugriffe gestattet. Weitere Informationen finden Sie im Tutorium von Mark Ovens unter http://ukug.uk.freebsd.org/~mark/ntfs_install.html. + url="http://ukug.uk.FreeBSD.org/~mark/ntfs_install.html">http://ukug.uk.FreeBSD.org/~mark/ntfs_install.html. Für weitere Informationen zu diesem Thema wären wir sehr dankbar. + + + Wie mounte ich eine erweiterte DOS-Partition? + + + + Die erweiterten DOS-Partitionen befinden sich hinter + ALLEN primären Partitionen. Wenn sich zum Beispiel + eine Partition E als sekundäre + DOS-Partition auf Ihrem zweiten SCSI-Laufwerk befindet, + müssen Sie die speziellen Dateien für + Slice 5 im Verzeichnis + /dev erstellen und dann + /dev/da1s5 mounten: + + &prompt.root; cd /dev +&prompt.root; ./MAKEDEV da1s5 +&prompt.root; mount -t msdos /dev/da1s5 /dos/e + + + + + + Gibt es ein verschlüsselndes Dateisystem für &os;? + + + + Ja, security/cfs. + + + Wie kann ich den NT-Loader zum Booten von FreeBSD verwenden? Diese Prozedur unterscheidet sich für die Systeme 2.2.x and 3.x (mit dem dreistufigen Bootprozeß) geringfügig. Das grundsätzliche Vorgehen besteht darin, daß Sie den ersten Sektor Ihrer eigentlichen FreeBSD-Rootpartition in eine Datei auf der DOS/NT-Partition kopieren. Angenommen, sie nennen die Datei etwa c:\bootsect.bsd (durch c:\bootsect.dos inspiriert), dann können Sie die Datei c:\boot.ini etwa wie folgt editieren: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" C:\BOOTSECT.BSD="FreeBSD" C:\="DOS" Bei 2.2.x-Systemen wird für diese Prozedur angenommen, daß DOS, NT, FreeBSD oder was auch immer, in den entsprechenden Partitionen auf derselben Platte installiert wurden. Das untenstehende Beispiel wurde auf einem System getestet, auf dem DOS & NT in der ersten und FreeBSD in der zweiten fdisk-Partition installiert waren. Zusätzlich wurde FreeBSD so installiert, daß es von seiner Partition bootet, und nicht vom MBR. Mounten Sie eine DOS-formatierte Diskette (falls Sie nach NTFS gewechselt haben) oder die FAT-Partition z.B. unter /mnt. &prompt.root; dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1 Rebooten Sie mit DOS oder NT. Benutzer von NTFS kopieren nun die Dateien bootsect.bsd und/oder bootsect.lnx von der Diskette nach C:\. Ändern Sie die Attribute (Rechte) von boot.ini mit: C:\>attrib -s -r c:\boot.ini Editieren Sie nun die Datei und fügen Sie die entsprechenden Einträge aus dem obigen boot.ini-Beispiel hinzu und setzen dann wieder die alten Attribute: C:\>attrib +s +r c:\boot.ini Falls FreeBSD vom MBR bootet, restaurieren Sie den MBR mit dem DOS-Befehl fdisk, nachdem Sie FreeBSD so umkonfiguriert haben, daß es von seiner Partition bootet. Für die FreeBSD-Systeme 3.x ist die Prozedur etwas einfacher. Falls FreeBSD auf derselben Platte, wie die NT-Bootpartition installiert ist, kopieren Sie einfach /boot/boot1 nach C:\BOOTSECT.BSD. Falls FreeBSD auf einer anderen Platte installiert ist, wird /boot/boot1 nicht funktionieren; Sie brauchen in diesem Fall /boot/boot0. SIE DÜRFEN AUF GAR KEINEN FALL EINFACH /boot/boot0 STATT /boot/boot1 KOPIEREN. WENN SIE DAS DOCH TUN SOLLTEN, WIRD IHRE PARTITIONSTABELLE ÜBERSCHRIEBEN UND IHR RECHNER WIRD NICHT MEHR STARTEN! /boot/boot0 muß mit sysinstall installiert werden. Wählen Sie dazu den FreeBSD-Bootmanager aus, wenn Sie gefragt werden, ob sie einen Bootmanager installieren wollen. Dieser Schritt ist notwendig, weil /boot/boot0 eine leere Partitionstabelle enthält, die von sysinstall ausgefüllt wird, bevor /boot/boot0 in den MBR kopiert wird. Wenn der Bootmanager von FreeBSD gestartet wird, merkt er sich das zuletzt gestartet Betriebssystem, indem er dessen Partition als aktiv markiert. Danach kopiert er sich selbst (alle 512 Bytes) in den MBR. Wenn Sie also einfach /boot/boot0 nach C:\BOOTSECT.BSD kopieren, würde der Bootmanager eine leere Partitionstabelle (mit einem als aktiv markiertem Eintrag) in den MBR kopieren. Wie boote ich FreeBSD und Linux mit LILO? Falls sich FreeBSD und Linux auf derselben Platte befinden, folgen Sie einfach den Installationsanweisungen von LILO zum booten eines Nicht-Linux-Betriebssystems. Ganz knapp sind dies: Booten Sie Linux und fügen Sie die folgenden Zeilen in die Datei /etc/lilo.conf ein: other=/dev/hda2 table=/dev/hda label=FreeBSD - (hierbei wird angenommen, daß Ihre - FreeBSD-Partition Linux unter - /dev/hda2 bekannt ist; ändern - Sie dies entsprechend Ihren Einstellungen). Führen - Sie nun als root den Befehl - lilo aus und Sie sind fertig. + (hierbei wird angenommen, daß Ihre + FreeBSD-Partition Linux unter + /dev/hda2 bekannt ist; ändern + Sie dies entsprechend Ihren Einstellungen). Führen + Sie nun als root den Befehl + lilo aus und Sie sind fertig. + + Falls FreeBSD sich auf einer anderen Platte befindet, + müssen Sie loader=/boot/chain.b zu + den LILO-Angaben hinzufügen. Zum Beispiel: + + +other=/dev/dab4 +table=/dev/dab +loader=/boot/chain.b +label=FreeBSD + + + In einigen Fällen könnte es sein, daß + Sie beim FreeBSD-Bootloader die BIOS-Laufwerksnummer + angeben müssen, um von der zweiten Platte booten zu + können. Wenn Ihre FreeBSD-SCSI-Platte vom BIOS zum + Beispiel als BIOS-Platte 1 erkannt wird, müssen Sie + am Prompt des FreeBSD-Bootloaders eingeben: + + Boot: 1:da(0,a)/kernel + + Seit Version 2.2.5 können Sie &man.boot.8; so + konfigurieren, daß das beim Booten automatisch + geschieht. + + Das Linux+FreeBSD + mini-HOWTO ist ein guter Ratgeber bei Fragen zur + Interaktion von FreeBSD und Linux. + + + + + + Wie boote ich FreeBSD und Linux mit BootEasy? + + + + Installieren Sie LILO am Anfang Ihrer + Linux-Bootpartition, anstatt im Master Boot Record. Sie + können LILO dann von BootEasy aus booten. + + Wenn Sie Windows-95 und Linux benutzen, wird das + ohnehin empfohlen, um es einfacher zu machen, Linux wieder + zu booten, wenn es nötig werden sollte, daß Sie + Windows95 neu installieren (Windows95 ist ein + eifersüchtiges Betriebssystem, das kein anderes + Betriebssystem im Master Boot Sektor duldet). + + + + + + Wie kann ich das ??? des + Boot-Managers durch etwas Sinnvolles ersetzen? + + + + Solange Sie den Boot-Manager nicht komplett neu + schreiben, gar nicht. Allerdings gibt es in der Kategorie + sysutils der Ports diverse + Boot-Manager, die diese Funktionalität + bieten. + + + + + + Ich habe ein Wechsellaufwerk. Wie benutze ich + es? + + + + Ob es sich um ein Wechsellaufwerk handelt, um ein ZIP- + oder ein EZ-Laufwerk (oder sogar ein Diskettenlaufwerk, + wenn Sie es auf diese Weise benutzen möchten), oder + um eine neue Festplatte - wenn es einmal installiert und + vom System erkannt ist und Sie Ihre + Kassette/Diskette/was_auch_immer eingelegt haben, ist das + Vorgehen bei allen Geräten ziemlich + ähnlich. + + (dieser Abschnitt basiert auf + Mark + Mayo's ZIP-FAQ) + + Wenn es sich um ein ZIP- oder Diskettenlaufwerk + handelt, und sich bereits ein DOS-Dateisystem darauf + befindet, können Sie einen Befehl wie diesen für + eine Diskette benutzen: + + &prompt.root; mount -t msdos /dev/fd0c /floppy + + oder diesen: + + &prompt.root; mount -t msdos /dev/da2s4 /zip + + für eine ZIP-Disk mit der + Herstellerkonfiguration. + + Benutzen Sie bei anderen Platten &man.fdisk.8; oder + &man.sysinstall.8;, um herauszufinden, wie sie + konfiguriert sind. + + Die restlichen Beispiele sind für ein + ZIP-Laufwerk unter da2, der dritten SCSI-Platte. + + Wenn es sich nicht um eine Diskette oder eine + Wechselplatte handelt, die Sie mit anderen Leuten + austauschen wollen, ist es wahrscheinlich besser, ein + BSD-Dateisystem darauf zu installieren. Hierdurch + bekommen Sie Unterstützung für lange Dateinamen, + eine mindestens doppelt so hohe Leistungsausnutzung und + wesentlich höhere Stabilität. Zunächst + müssen Sie die Partitionen/Dateisysteme auf DOS-Ebene + nochmals erstellen. Sie können entweder + &man.fdisk.8; oder /stand/sysinstall + benutzen, oder, bei einem kleinen Laufwerk, dem Sie eine + Unterstützung für mehrere Betriebssysteme nicht + zumuten wollen, entfernen Sie einfach die komplette FAT + Partitionstabelle (Slices) und benutzen Sie einfach die + BSD-Partitionierung: + + &prompt.root; dd if=/dev/zero of=/dev/rda2 count=2 +&prompt.root; disklabel -Brw da2 auto + + Sie können disklabel oder + /stand/sysinstall benutzen, um mehrere + BSD-Partitionen zu erstellen. Dies werden Sie sicherlich + bei einer fest eingebauten Platte wollen, aber bei einem + Wechsellaufwerk wie einem ZIP ist das wahrscheinlich + irrelevant. + + Zum Schluß erstellen Sie ein neues Dateisystem - + dieses befindet sich auf unserem ZIP-Laufwerk und belegt + die gesamte Platte: + + &prompt.root; newfs /dev/rda2c + + anschließend mounten Sie es: + + &prompt.root; mount /dev/da2c /zip + + Und sicherlich ist es keine schlechte Idee, eine Zeile + ähnlich der folgenden in die Datei + /etc/fstab einzufügen, damit Sie + in Zukunft nur mount /zip einzugeben + brauchen: + + +/dev/da2c /zip ffs rw,noauto 0 0 + + + + + + + Wieso erhalte ich die Meldung Incorrect + super block beim Mounten einer CDROM? + + + + Sie müssen &man.mount.8; mitteilen, was für + ein Gerät Sie mounten wollen. Genauere Informationen + dazu finden Sie im Kapitel Optische + Speichermedien des Handbuch, genauer gesagt im + Abschnitt Benutzung + von Daten-CDs. + + + + + + Wieso erhalte ich die Meldung Device not + configured, wenn ich eine CDROM + mounte? + + + + Das bedeutet im allgemeinen, daß sich keine + CDROM im Laufwerk befindet, oder, daß das Laufwerk + auf dem Bus nicht sichtbar ist. Dieses Problem wird im + Kapitel Benutzung + von Daten-CDs des Handbuchs ausführlich + diskutiert. + + + + + + Wieso werden alle Sonderzeichen in den Dateinamen auf + meinen CDs durch ? ersetzt, wenn ich die CD + unter FreeBSD benutze? + + + + Wahrscheinlich werden auf der CDROM die + Joliet Erweiterungen für die + Speicherung von Datei- und Verzeichnisnamen benutzt. + Werfen Sie einen Blick in das Kapitel Erzeugung von + CD-ROMs im Handbuch, speziell in den Abschnitt + über Benutzung + von Daten-CDs. + + [Anmerkung des Übersetzers: Es geht hier nicht um + die deutschen Sonderzeichen, da diese schon im normalen + ISO8859-1 enthalten sind. Die Probleme treten auf, wenn + man z.B. russische CDs (ISO8859-5) verwendet.] + + + + + + Ich habe eine CD mit FreeBSD gebrannt und kann sie + nicht mit anderen Betriebssystemen lesen. Warum? + + + + Sie haben wahrscheinlichste eine Datei direkt auf CD + geschrieben, statt ein ISO 9660-Dateisystems erzeugt zu + haben. Werfen Sie einen Blick in das Kapitel Erzeugung von + CD-ROMs im Handbuch, speziell in den Abschnitt + über reine + Daten-CDs. + + + + + + Wie kann ich ein Image einer Daten-CD erzeugen? + + + + Diese Information finden Sie im Abschnitt Kopieren + von CD-ROMs des Handbuchs. Weitere Informationen + über die Arbeit mit CD-ROMs finden Sie im Abschnitt + Erzeugen von + CD-ROMs im Kapitel Speichermedien des + Handbuchs. + + + + + + Wieso kommt mount nicht meiner + Audio-CD zurecht? + + + + Wenn Sie versuchen sollten, eine Audio-CD zu mounten, + erhalten Sie die Meldung cd9660: /dev/acd0c: + Invalid argument. Der Grund dafür ist, + daß mount nur für + Dateisysteme vorgehen ist. Audio CDs habe kein + Dateisystem, sondern nur Daten. Wenn Sie eine Audio CD + auslesen wollen, brauchen Sie ein entsprechendes Programm + wie z.B. audio/xmcd aus den Ports. + + + + + + Wie lasse ich normale Benutzer Disketten, CDROMs und + andere Wechseldatenträger mounten? + + + + Normale Benutzer können dazu berechtigt werden, + Geräte zu mounten. Das geht so: + + + + Setzen Sie als root die + sysctl-Variable vfs.usermount auf + 1: + + &prompt.root; sysctl -w vfs.usermount=1 + + + + Ordnen Sie als root den + Block-Geräten, die den Wechsellaufwerken + zugeordnet sind, die entsprechenden Zugriffsrechte + zu. + + Wenn Sie zum Beispiel den Benutzer den Zugriff auf + das erste Diskettenlaufwerk zu erlauben + wollen: + + &prompt.root; chmod 666 /dev/fd0 + + Um den Mitgliedern der Gruppe + operator den Zugriff auf das + CDROM zu gestatten: + + &prompt.root; chgrp operator /dev/cd0c +&prompt.root; chmod 640 /dev/cd0c + + + + Fügen Sie zum Abschluß die Zeile + ivfs.usermount=1 + in die Datei /etc/sysctl.conf + ein, damit die Einstellung bei einem Neustart des + Systems automatisch erhalten bleibt. + + + + Alle Benutzer können nun + /dev/fd0 auf ein Verzeichnis, das + ihnen gehört, mounten: - Falls FreeBSD sich auf einer anderen Platte befindet, - müssen Sie loader=/boot/chain.b zu - den LILO-Angaben hinzufügen. Zum Beispiel: + &prompt.user; mkdir ~/my-mount-point +&prompt.user; mount -t msdos /dev/fd0 ~/my-mount-point - -other=/dev/dab4 -table=/dev/dab -loader=/boot/chain.b -label=FreeBSD - + Die zur Gruppe operator + gehörenden Benutzer können nun + /dev/cd0c auf ein Verzeichnis, das + ihnen gehört, mounten: - In einigen Fällen könnte es sein, daß - Sie beim FreeBSD-Bootloader die BIOS-Laufwerksnummer - angeben müssen, um von der zweiten Platte booten zu - können. Wenn Ihre FreeBSD-SCSI-Platte vom BIOS zum - Beispiel als BIOS-Platte 1 erkannt wird, müssen Sie - am Prompt des FreeBSD-Bootloaders eingeben: + &prompt.user; mkdir ~/my-mount-point +&prompt.user; mount -t msdos /dev/cd0c ~/my-mount-point - Boot: 1:da(0,a)/kernel + Das Unmounten des Gerätes ist simpel: - Seit Version 2.2.5 können Sie &man.boot.8; so - konfigurieren, daß das beim Booten automatisch - geschieht. + &prompt.user; umount ~/my-mount-point - Das Linux+FreeBSD - mini-HOWTO ist ein guter Ratgeber bei Fragen zur - Interaktion von FreeBSD und Linux. + Die Aktivierung von vfs.usermount + hat jedoch negative Auswirkungen auf Sicherheitsaspekte. + Ein besserer Weg, um auf MSDOS-formatierte + Datenträger zuzugreifen, ist die Benutzung des + Packages mtoolsaus + der Ports-Sammlung. + + + + + + Wieso geben die Befehle du und + df unterschiedliche Werte für den + freien Plattenplatz aus? + + + + Der Grund ist die Funktionsweise von + du und df. + du geht durch einen Dateibaum, + ermittelt die Größe jeder einzelnen Datei, und + gibt die Summe aus. df fragt lediglich + bei Dateisystem an, wieviel Platz noch frei ist. Das + scheint zwar auf den ersten Blick sehr ähnlich zu + sein; allerdings wird sich ein leeres Verzeichnis auf die + Ausgabe von df auswirken, während + es auf das Ergebnis von du keinen + Einfluß hat. + + Wenn Sie eine Datei löschen, während sie von + einem Programm genutzt wird, wird diese Datei erst + gelöscht, wenn sie vom Programm freigegeben wird. + Allerdings wird die Datei sofort aus dem Verzeichnis + entfernt. Sie können dieses Verhalten mit einem + Programm wie more sehr einfach + nachvollziehen. Dazu brauchen Sie nur eine Datei, die + groß genug ist, um die Ausgabe von + du und df zu + beeinflussen. (Bei der Größe aktueller Platten + muß diese Datei schon sehr + groß sein!) Wenn Sie diese Datei löschen, + während Sie sie sich in more + anzeigen lasen, hat more kein Problem. + Der Eintrag für die Datei wird lediglich aus dem + Verzeichnis entfernt, damit kein anderes Programm mehr + darauf zugreifen kann. Laut du ist die + Datei verschwunden — es hat das Verzeichnis + untersucht und die Datei nicht gefunden. Laut + df ist die Datei aber vorhanden, da sie + im Dateisystem immer noch Platz belegt. Sobald Sie + more beenden, werden die Ergebnisse von + du und df wieder + übereinstimmen. + + Bitte beachten Sie, daß die Freigabe des + Plattenplatzes durch die softupdates um bis zu 30 Sekunden + verzögert werden kann. + + Die oben beschriebene Situation tritt sehr häufig + auf Web-Servern auf. Viele Anwender installieren einen + FreeBSD Web-Server und vergessen die Rotation der + Logfiles, bis sie irgendwann die Partition + /var überlaufen. Der + Administrator löscht die Datei, aber das System + beschwert sich immer noch über fehlenden + Plattenplatz. Die Datei wird erst freigegeben, wenn der + Web-Server beendet und neu gestartet wird; dadurch kann + das System den Plattenplatz freigeben. Um solche und + ähnliche Unfälle zu verhindern, sollten Sie + &man.newsyslog.8; einsetzen. - - Wie boote ich FreeBSD und Linux mit BootEasy? + + Wie kann ich den Swap-Bereich + vergrößern? - Installieren Sie LILO am Anfang Ihrer - Linux-Bootpartition, anstatt im Master Boot Record. Sie - können LILO dann von BootEasy aus booten. - - Wenn Sie Windows-95 und Linux benutzen, wird das - ohnehin empfohlen, um es einfacher zu machen, Linux wieder - zu booten, wenn es nötig werden sollte, daß Sie - Windows95 neu installieren (Windows95 ist ein - eifersüchtiges Betriebssystem, das kein anderes - Betriebssystem im Master Boot Sektor duldet). + Im Kapitel Konfiguration und + Tuning des Handbuches gibt es einen Abschnitt + mit einer Schritt-für-Schritt Anleitung. + + + + + Systemadministration + - - Gefährdet eine dangerously - dedicated Festplatte meine Gesundheit? + + Wo befinden sich die Konfigurationsdateien für + den Systemstart? - Die Installationsprozedur bietet - Ihnen zwei verschiedene Methoden, Ihre Festplatte(n) zu - partitionieren. Die Standardmethode macht sie kompatibel - zu anderen Betriebssystemen auf derselben Maschine, indem - fdisk-Tabelleneinträge (unter FreeBSD - slices genannt) mit einem FreeBSD-Eintrag, - in dem eigene Partitionen untergebracht werden, benutzt - werden. Optional kann ausgewählt werden, ob ein - Boot-Selektor installiert werden soll, um zwischen den - möglichen Betriebssystemen auf der/den Platte(n) - wechseln zu können. Bei der zweiten Methode wird die - gesamte Platte für FreeBSD genutzt und nicht - versucht, kompatibel zu anderen Betriebssystemen zu - sein. - - Nun, warum wird es gefährlich - genannt? Eine Platte in diesem Modus enthält nichts, - was von normalen PC-Hilfsprogrammen als gültige - fdisk-Tabelle betrachtet werden würde. Abhängig - von der Qualität ihres Designs werden sie sich bei - Ihnen beschweren, sobald sie mit einer solchen Platte in - Kontakt kommen, oder noch schlimmer, sie könnten den - Bootstrap von FreeBSD beschädigen, ohne Sie zu fragen - oder darauf hinzuweisen. Hinzu kommt, daß vom - Layout von dangerously dedicated Platten - bekannt ist, daß es viele BIOSe verwirrt, - einschließlich solcher von AWARD (wie es z.B. im HP - Netserver oder Micronics-Systemen, sowie vielen anderen zu - finden ist) und Symbios/NCR (für die bekannte - 53C8xx-Reihe von SCSI-Controllern). Dies ist keine - vollständige Liste - es gibt weitere. Symptome - für diese Verwirrung sind read - error-Meldungen, die vom FreeBSD-Bootstrap - ausgegeben werden, wenn es sich selbst nicht finden kann, - sowie Systemabstürze beim Booten. + Für die Versionen 2.0.5R bis 2.2.1R heißt + die primäre Konfigurationsdatei + /etc/sysconfig. Alle Optionen + müssen in dieser Datei angegeben werden und andere + Dateien wie /etc/rc und + /etc/netstart übernehmen sie + einfach hieraus. - Warum gibt es diesen Modus dann überhaupt? Es - spart ein paar kByte an Plattenplatz und kann echte - Probleme verursachen, die zu einer Neuinstallation - führen. Die Ursprünge des Dangerously - dedicated Modus liegen in der Absicht, eines der - häufigsten Probleme, das Erstinstallierer von FreeBSD - plagt, zu verhindern - die BIOS-Werte für die - Geometrie einer Festplatte auf der - Festplatte selbst anzupassen. + Sehen Sie in die Datei + /etc/sysconfig und ändern Sie + die Werte entsprechend Ihrem System. Diese Datei + enthält Kommentare, die die möglichen + Einstellungen erklären. - Geometrie ist ein veraltetes Konzept, - das aber immer noch die Grundlage für die Interaktion - zwischen dem PC-BIOS und den Festplatten ist. Wenn das - Installationsprogramm von FreeBSD Slices erstellt, - muß es sich die Lage dieser Slices auf der - Festplatte in einer Art merken, die damit - übereinstimmt, wie das BIOS erwartet, sie zu finden. - Wenn das falsch geschieht, werden Sie nicht in der Lage - sein, zu booten. + In den Versionen nach 2.2.1 und 3.0 erhielt + /etc/sysconfig den + aussagekräftigeren Namen &man.rc.conf.5; + und die Syntax wurde bei dieser Gelegenheit auch etwas + bereinigt. /etc/netstart wurde + ebenfalls in /etc/rc.network + umbenannt, so daß alle Dateien nun mit dem Befehl + cp /usr/src/etc/rc* /etc kopiert werden + können. - Durch den Dangerously dedicated Modus - wird versucht, dies zu umgehen, indem das Problem - vereinfacht wird. In einigen Fällen klappt das zwar, - aber er ist eher als allerletzter Ausweg gedacht - in 99 - von 100 Fällen gibt es bessere Möglichkeiten, - das Problem zu lösen. + Seit FreeBSD 3.1 ist rc.conf als + /etc/defaults/rc.conf verfügbar. + Ändern Sie diese Datei nicht! + Wenn Sie den Wert einer der in + /etc/defaults/rc.conf gesetzten + Variablen ändern wollen, sollten Sie die + entsprechende Zeile an die Datei + /etc/rc.conf anfügen und sie + dort ändern. - Wie vermeiden Sie also die Notwendigkeit zum - DD Modus, wenn Sie installieren? Beginnen - Sie, indem Sie sich notieren, welche Geometrie das BIOS - für Ihre Platten benutzt. Sie können erreichen, - daß der Kernel sie beim Booten ausgibt, indem Sie - an der Eingabeaufforderung - boot: angeben, oder boot - -v im Loader verwenden. Kurz bevor das - Installationprogramm startet, wird der Kernel eine Liste - mit den BIOS-Geometrien ausgeben. Keine Panik - warten - Sie, bis das Installationsprogramm gestartet wurde und - benutzen Sie Scrollback, um die Zahlen zu lesen. - Typischerweise befinden sich die BIOS-Platten in derselben - Reihenfolge, wie FreeBSD Ihre Platten auflistet - zuerst - IDE, dann SCSI. + Wenn Sie zum Beispiel den ab FreeBSD 3.1 + mitgelieferten DNS Server named aktivieren wollen, + müssen Sie lediglich das folgende Kommando + eingeben: - Wenn Sie Ihre Festplatte in Slices unterteilen, - überprüfen Sie, ob die Plattengeometrie, die im - FDISK-Menue angegeben ist, korrekt ist (d.h. mit den - Einstellungen im BIOS übereinstimmen). Falls die - Werte nicht stimmen, benutzen Sie g, um - sie zu korrigieren. Diese Schritte sind nötig, wenn - sich absolut nichts auf der Festplatte befindet, oder, - wenn die Festplatte vorher in einem anderen System benutzt - worden ist. Beachten Sie, daß dies nur für die - Festplatte nötig ist, von der Sie booten wollen. Mit - weiteren vorhandenen Platten wird FreeBSD sich problemlos - zurechtfinden. + &prompt.root; echo named_enable="YES" >> /etc/rc.conf - Wenn Sie es geschafft haben, daß das BIOS und - FreeBSD in der Festplattengeometrie übereinstimmen, - dann sind Ihre Probleme ziemlich sicher vorüber - - ohne, daß es nötig gewesen wäre, den - DD-Modus zu benutzen. Falls sie jedoch - immer noch mit der gefürchteten read - error-Meldung begrüßt werden sollten, - wenn Sie versuchen, zu booten, wird es Zeit, daß Sie - Ihre Finger kreuzen und es einfach versuchen - es gibt - nichts mehr zu verlieren. + Wenn Sie in FreeBSD 3.1 und späteren Versionen + lokale Server starten wollen, müssen Sie passende + Shellscripts im Verzeichnis + /usr/local/etc/rc.d/ ablegen. Die + Dateien müssen als ausführbar markiert sein und + die Endung .sh haben. Wenn Sie FreeBSD 3.0 oder eine noch + ältere Version benutzen, müssen Sie die Datei + /etc/rc.local ändern. - Um eine dangerously dedicated - Festplatte wieder für einen normalen PC brauchbar zu - machen, gibt es zwei Möglichkeiten. Die erste ist, - ausreichend viele NULL-Bytes in den MBR zu schreiben, um - irgendwelche nachfolgenden Installation glauben zu machen, - daß es sich um eine leere Festplatte handelt. Sie - können das zum Beispiel so tun: + Die Datei /etc/rc.serial dient + zur Initialisierung serieller Schnittstellen (z.B. + Einstellung der Schnittstelleneigenschaften usw.). - &prompt.root; dd if=/dev/zero of=/dev/rda0 count=15 + Die Datei /etc/rc.i386 dient + für Intel-spezifische Einstellungen wie + iBCS2-Emulation oder Konfiguration der + PC-Systemkonsole. + + - Alternativ installiert der undokumentierte - DOS-Befehl + + + Wie kann ich am Einfachsten einen Benutzer + hinzufügen? + - C:\> fdisk /mbr + + Benutzen Sie den Befehl &man.adduser.8; und für + kompliziertere Fälle den Befehl &man.pw.8;. - einen neuen Master-Boot-Record, d.h. der BSD-Bootstrap - wird zestört. + Benutzen Sie den Befehl &man.rmuser.8;, um einen + Benutzer wieder zu löschen. Sie können hierzu + auch &man.pw.8; benutzen. - - Wie kann ich den Swap-Bereich - vergrößern? + + Warum erhalte ich Meldungen wie root: not + found, nachdem ich meine crontab geändert + habe? - Der beste Weg ist, Ihre Swap-Partition zu - vergrößern, oder sie nutzen diese bequeme - Ausrede, um eine weitere Festplatte einzubauen. Eine - gebräuchliche Faustregel ist, einen etwa doppelt so - großen Swap-Bereich zu nutzen, wie Hauptspeicher - vorhanden ist. Falls Sie jedoch nur über sehr wenig - Hauptspeicher verfügen, werden Sie wahrscheinlich - einen größeren Swap-Bereich konfigurieren - wollen. Es ist auch sinnvoll, genügend Swap-Bereich - im Hinblick auf geplante zukünftige - Hauptspeichererweiterungen zu konfigurieren, damit Sie - sich später nicht mit der Konfiguration Ihres - Swap-Bereiches herumärgern müssen. - - Das Hinzufügen eines Swap-Bereichs auf einer - separaten Platte, ist effizienter, als einfach einen - Swap-Bereich auf derselben Platte hinzuzufügen. Wenn - Sie zum Beispiel Quellcode auf einer Platte kompilieren - und der Swap-Bereich sich auf einer anderen Platte - befindet, geschieht das viel schneller, als wenn beides, - Swapping und Kompilierung auf derselben Platte stattfinden - würden. Das trifft ganz besonders auf SCSI-Platten - zu. - - Wenn Sie mehrere Festplatten besitzen, lohnt es sich - für gewöhnlich, auf jeder einzelnen einen - Swap-Bereich zu konfigurieren, auch, wenn das bedeutet, - einen Swap-Bereich auf einer bereits verwendeten Platte - einzurichten. Typischerweise sollte jede schnelle Platte - in Ihrem System mit etwas Swap-Bereich konfiguriert - werden. FreeBSD unterstützt standardmäßig - bis zu vier interleaved Swap-Geräte. Bei der - Konfiguration mehrerer Swap-Bereiche werden sie - grundsätzlich alle mit derselben Größe - anlegen wollen, aber manchmal verwenden Benutzer eine - größere primäre Swap-Partition, um einen - Hauptspeicherauszug vom Kernel darin aufnehmen zu - können. Ihre primäre Swap-Partition muß - mindestens so groß wie der Hauptspeicher sein, um - einen Hauptspeicherauszug vom Kernel aufnehmen zu - können. + Die übliche Ursache dieses Problems ist, + daß Sie die crontab des Systems + (/etc/crontab) geändert und dann + mit &man.crontab.1; installiert haben: - IDE-Laufwerke können keinen gleichzeitigen - Zugriff auf beide Laufwerke auf demselben Kanal zuzulassen - (FreeBSD unterstützt nicht den Modus 4, also ist - jeglicher Lese-/Schreibzugriff auf IDE-Platten - programmiert). Trotzdem ist es - empfehlenswert, Ihren Swap-Bereich auf einem separaten - Laufwerk anzulegen; die Laufwerke sind so günstig, - daß es nicht lohnt, sich darüber Gedanken zu - machen. - - Swapping über NFS ist nur zu empfehlen, wenn Sie - keine lokale Platte zum Swappen besitzen. Bei - FreeBSD-Versionen vor 4.x ist Swapping über NFS - langsam und ineffizient, aber erstaunlich schnell bei - Versionen größer oder gleich 4.0. Dennoch wird - es durch die verfügbare Bandbreite des Netzes - begrenzt sein und belastet den NFS-Server - zusätzlich. - - Hier ist ein Beispiel für einen VN-Swap-Bereich - von 64MB (/usr/swap0, Sie können - natürlich jeden beliebigen Namen benutzen). - - Stellen Sie sicher, daß Ihr Kernel mit der - Zeile + &prompt.root; crontab /etc/crontab - -pseudo-device vn 1 #Vnode driver (turns a file into a device) - + 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;). - in Ihrer Konfigurationsdatei erstellt worden ist. Der - Standard-Kernel enthält sie bereits. + Wenn Sie so vorgegangen sind, ist die zweite crontab + einfach nur eine Kopie von + /etc/crontab, allerdings im falschen + Format. Löschen Sie sie mit dem folgenden + Befehl: - - - Erstellen Sie ein vn-Gerät + &prompt.root; crontab -r - &prompt.root; cd /dev -&prompt.root; sh ./MAKEDEV vn0 - + Wenn Sie /etc/crontab wieder + ändern müssen, sollten Sie einfach gar nichts + tun, um &man.cron.8; über die Änderung zu + informieren, er erkennt die Änderung + automatisch. - - Erstellen Sie eine Swap-Datei - (/usr/swap0) + Wenn Sie ein Kommando jeden Tag, jede Woche oder jeden + Monat ausführen lassen wollen, ist es wahrscheinlich + einfacher, wenn Sie entsprechende Shell-Scripte in + /usr/local/etc/periodic ablegen. + Diese werden dann von &man.periodic.8; zusammen mit den + anderen regelmäßigen Tätigkeiten + ausgeführt. - &prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 - + Der eigentliche Grund für den Fehler ist die + Tatsache, daß die crontab des Systems ein + zusätzliches Feld enthält; dieses Feld gibt an, + mit welcher Benutzerkennung der Befehl ausgeführt + werden soll. In der mitgelieferten crontab ist das bei + allen Einträgen die Benutzerkennung + root. Wenn diese Datei als die + crontab des Benutzers username (die + nicht mit der crontab des Systems + identisch ist) verwendet wird, hält &man.cron.8; die + Zeichenkette root für den Namen + des zu startenden Programmes, aber dieses Programm gibt es + nicht. + + - - Setzen Sie geeignete Zugriffsrechte für - (/usr/swap0) + + + Wieso meldet mir &man.su.1; you are not in + the correct group to su root, wenn ich mit + &man.su.1; root werden will? + - &prompt.root; chmod 0600 /usr/swap0 - + + Das ist ein Sicherheits-Feature. Wenn Sie mit + &man.su.1; zum Account root (oder + jedem anderen Account mit Super-User-Privilegien) wechseln + wollen, müssen Sie ein Mitglied der Gruppe + wheel sein. Wenn es dieses Feature + nicht gäbe, könnte jeder, der einen Account auf + dem System hat und zufällig das Paßwort + für root erfährt, mit + Super-User-Rechten auf das System zugreifen. Durch dieses + Feature ist die Lage anders, wenn Sie nicht Mitglied von + wheel sind, können Sie nicht + einmal versuchen, daß Paßwort + einzugeben. - - Aktivieren Sie die Swapdatei in - /etc/rc.conf + Um einem Benutzer zu erlauben, mit &man.su.1; + root zu werden, müssen Sie ihn + nur in die Gruppe wheel + eintragen. + + - -swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. - - + + + Ich habe einen Fehler in der + rc.conf oder einer der anderen + Dateien für den Systemstart und jetzt kann ich sie + nicht ändern, weil das Dateisystem + read-only ist. Was kann ich tun? + - - Rebooten Sie die Maschine - - + + Wenn Sie aufgefordert werden, den Pfadnamen der Shell + einzugeben, drücken Sie einfach + ENTER. Geben Sie danach mount + / ein, um das root Dateisystem im + Schreib/Lese-Modus zu mounten. Sie werden wahrscheinlich + auch mount -a -t ufs ausführen + müssen, um das Dateisystem mit Ihrem Lieblingseditor + zu mounten. Wenn Ihr Lieblingseditor auf einem + Netzwerklaufwerk liegt, müssen Sie entweder das + Netzwerk von Hand konfigurieren oder einen Editor + benutzen, der auf einem lokalen Laufwerk vorhanden ist, + z.B. &man.ed.1;. - Um die Swapdatei direkt zu aktivieren, geben Sie - folgendes ein: + Wenn Sie einen bildschirmorientierten Editor wie zum + Beispiel &man.vi.1; oder &man.emacs.1; benutzen wollen, + werden Sie auch den Befehl export + TERM=cons25 ausführen müssen, damit + diese Editoren die richtigen Einstellungen aus der + Datenbank &man.termcap.5; übernehmen. - &prompt.root; vnconfig -e /dev/vn0b /usr/swap0 swap + Sobald Sie diese Schritte ausgeführt, können + Sie den Fehler in der /etc/rc.conf + ganz normal beheben. Die Fehlermeldungen, die Ihnen + unmittelbar nach den Startmeldungen des Kernels angezeigt + wurden, sollten Ihnen die Nummer der Zeile mit dem Fehler + melden. Wieso habe ich habe Probleme, meinen Drucker einzurichten? Bitte sehen Sie im Handbucheintrag über Drucker nach. Es sollte die meisten Ihrer Probleme behandeln. Lesen sie den Handbucheintrag über Drucker. Einige Drucker benötigen einen auf dem Rechner laufenden Treiber, um drucken zu können. Diese sogenannten WinPrinter oder GDI-Drucker werden von FreeBSD nicht unterstützt und an diesem Zustand wird sich wohl auch nichts ändern. Wenn Ihr Drucker nicht unter DOS oder Windows NT 4.0 verwendet werden kann, handelt es sich um einen "WinPrinter" und wird in der Regel auch nicht unter FreeBSD funktionieren. Ihre einzige Chance, einen dieser Drucker nutzen können, ist der Port - ports/print/pnm2ppa. Die - Beschreibung enthält die Aussage: - -
- Dieses programm nutzt zur Ausgabe das PPA (Printer - Performance Architecture) Protokoll. Dieses Protokoll - wird von einigen "nur-Windows"-Druckern von HP benutzt, - zum Beispiel den Modellreihen HP Deskjet 820C, the HP - DeskJet 720, and the HP DeskJet 1000.[...] - - WWW: http://pnm2ppa.sourceforge.net/ -
+ ports/print/pnm2ppa.
Wie kann ich die Tastaturbelegung meines Systems korrigieren? - Das Programm kbdcontrol bietet eine Option zum Laden - einer Tastaturzuordnungsdatei. Unter - /usr/share/syscons/keymaps befinden - sich einige Tastaturzuordnungsdateien. Wählen Sie - die zu Ihrem System passende aus und laden Sie - sie: - - &prompt.root; kbdcontrol -l uk.iso - - Die beiden Erweiterungen - /usr/share/syscons/keymaps und - .kbd werden von &man.kbdcontrol.1; - angenommen. - - Dies kann in der Datei - /etc/sysconfig (oder &man.rc.conf.5;) - eingestellt werden. Lesen Sie die entsprechenden Hinweise - in dieser Datei. - - Seit 2.0.5-RELEASE befindet sich alles, was mit - Textfonts und Tastaturzuordnung zu tun hat, im Verzeichnis - /usr/share/examples/syscons. - - Die folgenden Zuordnungen werden derzeit - unterstützt: - - - - Belgisch ISO-8859-1 - - - - Brasilianische Tastatur 275 Codeseite 850 - - - - Brasilianische Tastatur 275 ISO-8859-1 - - - - Dänisch Codeseite 865 - - - - Dänisch ISO-8859-1 - - - - Französisch ISO-8859-1 - - - - Deutsch Codeseite 850 - - - - Deutsch ISO-8859-1 - - - - Italienisch ISO-8859-1 - - - - Japanisch 106 - - - - Japanisch 106x - - - - Lateinamerikanisch - - - - Norwegisch ISO-8859-1 - - - - Polnisch ISO-8859-2 (für - Programmierer) - - - - Russisch Codeseite 866 (alternativ) - - - - Russisch koi8-r (shift) - - - - Russisch koi8-r - - - - Spanisch ISO-8859-1 - - - - Schwedisch Codeseite 850 - - - - Schwedisch ISO-8859-1 - - - - Schweizer Deutsch ISO-8859-1 - - - - Vereinigtes Königreich Codeseite 850 - - - - Vereinigtes Königreich ISO-8859-1 - - - - Vereinigte Staaten von Amerika ISO-8859-1 - - - - Vereinigte Staaten von Amerika dvorak - - - - Vereinigte Staaten von Amerika dvorakx - - + Informationen dazu finden Sie im Kapitel länderspezifische + Einstellungen des Handbuchs, insbesondere im + Abschnitt Konfiguration + der Konsole. Wieso erhalte ich beim Start des Systems Meldungen wie unknown: <PNP0303> can't assign resources? Die nachfolgende Erklärung stammt aus einer Mail auf der Mailingliste freebsd-current.
&a.wollman;, 24 April 2001 Die Geräte, für die can't assign resources-Meldungen ausgegeben werden, sind "Legacy ISA"-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.
Wieso funktionieren die Benutzer-Quotas nicht richtig? Benutzen Sie keine Quotas für /, Erstellen Sie die Quotas-Datei in dem Dateisystem, für das die Quotas gelten sollen, z.B.: Filesystem Quota file /usr /usr/admin/quotas /home - /home/admin/quotas - - - - - - - - - - - - - - - - - - Was stimmt mit meinem ccd nicht? - - - - Das Symptom hierfür ist: - - &prompt.root; ccdconfig -C -ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format - - Das geschieht für gewöhnlich, wenn Sie - versuchen, die Partitionen c, die - standardmäß vom Typ - unbenutzt sind, zu verbinden. Der - ccd-Treiber verlangt Partitionen vom Typ FS_BSDFFS. - Editieren Sie den Plattenlabel der Platten, die Sie zu - verknüpfen versuchen und ändern Sie die Typen - der Partitionen in 4.2BSD. - - - - - - Warum kann ich den Plattenlabel meines ccd nicht - editieren? - - - - Das Symptom hierfür ist: - - &prompt.root; disklabel ccd0 -(hier wird etwas vernünftiges ausgegeben; versuchen wir nun, es zu editieren) -&prompt.root; disklabel -e ccd0 -(editiern, speichern, beenden) -disklabel: ioctl DIOCWDINFO: No disk label on disk; -use "disklabel -r" to install initial label + /home/admin/quotas + - Der Grund ist, daß der von ccd - zurückgelieferte Plattenlabel ein - vorgetäuschter ist, der sich nicht - wirklich auf der Platte befindet. Sie können das - Problem beheben, indem Sie ihn explizit - zurückschreiben, wie z.B. hier: + + - &prompt.root; disklabel ccd0 > /tmp/disklabel.tmp -&prompt.root; disklabel -Rr ccd0 /tmp/disklabel.tmp -&prompt.root; disklabel -e ccd0 -(nun wird es funktionieren) + + + + + + + Unterstützt FreeBSD IPC-Grundfunktionen von System V? Ja, FreeBSD unterstützt IPC im Stil von System V einschließlich gemeinsamen Speicher, Nachrichten und Semaphoren. Zur Aktivierung müssen Sie die folgenden Zeilen in Ihre Kernelkonfigurationsdatei einfügen: options SYSVSHM options SYSVSHM # enable shared memory options SYSVSEM # enable for semaphores options SYSVMSG # enable for messaging Diese Variablen sind seit FreeBSD 3.2 schon im Standardkernel (GENERIC) gesetzt - und sollte daher Beststandteil Ihres Systems + und sollte daher Bestandteil Ihres Systems sein. Kompilieren und installieren Sie einen neuen Kernel. Wie benutze ich sendmail zum Zustellen von Mails mit UUCP? Die sendmail-Konfiguration, die mit FreeBSD ausgeliefert wird, ist für Sites geeignet, die direkt ans Internet angeschlossen sind. Sites, die ihre Mail per UUCP austauschen wollen, müssen eine andere sendmail-Konfigurationsdatei installieren. Die manuelle Bearbeitung von /etc/sendmail.cf ist nur etwas für Puristen. Sendmail Version 8 bietet die neue Möglichkeit der Generierung von Konfigurationsdateien über eine Vorverarbeitung mit &man.m4.1;, wobei die tatsächliche, händische Konfiguration auf einer höheren Abstraktionsstufe stattfindet. Sie sollten die Konfigurationsdateien unter /usr/src/usr.sbin/sendmail/cf benutzen. Für den Fall, daß Sie Ihr System nicht mit dem kompletten Quellcode installiert haben, wurden die nötigen Dateien zur Konfiguration von sendmail in einer separaten Quelldistribution für Sie extrahiert. Wenn Sie Ihre CDROM gemountet haben, müssen Sie die folgenden Schritte ausführen: &prompt.root; cd /cdrom/src &prompt.root; cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail Keine Panik, das sind nur ein paar hundert Kilobyte. Die Datei README im Verzeichnis cf kann zur grundlegenden Einführung in die m4-Konfiguration dienen. Zur Zustellung über UUCP sind Sie am besten damit beraten, das mailertable-Feature zu nutzen. Es stellt eine Datenbank dar, auf deren Basis sendmail Entscheidungen zum Routing treffen kann. Zunächst müssen Sie Ihre .mc-Datei erstellen. Das Verzeichnis /usr/src/usr.sbin/sendmail/cf/cf ist die Basis für diese Dateien. Sehen Sie sich um, es gibt bereits einige Beispiele. Wenn Sie Ihre Datei foo.mc genannt haben, müssen Sie die folgenden Befehle ausführen, um sie in eine gültige sendmail.cf umzuwandeln, ist: &prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf &prompt.root; make foo.cf -&prompt.root; cp foo.cf /etc/sendmail.cf +&prompt.root; cp foo.cf /etc/mail/sendmail.cf Eine typische .mc-Datei könnte so aussehen: - -include(`../m4/cf.m4') -VERSIONID(`Your version number') + VERSIONID(`Your version number') OSTYPE(bsd4.4) -FEATURE(nodns) +FEATURE(accept_unresolvable_domains) FEATURE(nocanonify) -FEATURE(mailertable) +FEATURE(mailertable, `hash -o /etc/mail/mailertable') define(`UUCP_RELAY', your.uucp.relay) define(`UUCP_MAX_SIZE', 200000) +define(`confDONT_PROBE_INTERFACES') MAILER(local) MAILER(smtp) MAILER(uucp) Cw your.alias.host.name -Cw youruucpnodename.UUCP - - - Die Einstellungen nodns und - nocanonify werden die Benutzung von DNS - bei der Zustellung von Mails verhindern. Die Klausel - UUCP_RELAY wird aus seltsamen - Gründen benötigt - fragen Sie nicht, warum. - Setzen Sie dort einfach den Namen eines Hosts ein, der in - der Lage ist, Adressen mit der Pseudodomäne .UUCP zu - behandeln; wahrscheinlich werden Sie dort den Relayhost - Ihres ISP eintragen. +Cw youruucpnodename.UUCP + + Die Einstellungen + accept_unresolvable_domains, + nocanonify und + confDONT_PROBE_INTERFACES werden die + Benutzung von DNS bei der Zustellung von Mails verhindern. + Die Klausel UUCP_RELAY wird aus + seltsamen Gründen benötigt - fragen Sie nicht, + warum. Setzen Sie dort einfach den Namen eines Hosts ein, + der in der Lage ist, Adressen mit der Pseudodomäne + .UUCP zu behandeln; wahrscheinlich werden Sie dort den + Relayhost Ihres ISP eintragen. Wenn Sie soweit sind, müssen Sie die Datei - /etc/mailertable erzeugen. Hierzu + /etc/mail/mailertable erzeugen. Hierzu wieder ein typisches Beispiel: - + # +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable # -# makemap hash /etc/mailertable.db < /etc/mailertable +. uucp-dom:your.uucp.relay + + Ein komplexeres Beispiel könnte wie folgt + aussehen: + + # +# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus -. uucp-dom: - +. uucp-dom: Wie Sie sehen können, handelt es sich um einen Teil einer realen Datei. Die ersten drei Zeilen behandeln spezielle Fälle, in denen an Domänen adressierte Mails nicht über die Standard-Route versendet werden sollen, sondern zu einem UUCP-Nachbarn, um den Zustellweg abzukürzen. Die nächsten Zeilen behandeln Mails Rechner in der Domain, die im lokalen Ethernet verwendet wird. Diese Mails können direkt per SMTP zugestellt werden. Schließlich werden die UUCP-Nachbarn in der Notation mit der Pseudodomäne .UUCP aufgeführt, um die Standardregeln mit uucp-neighbour!recipient zu überschreiben. Die letzte Zeile besteht stets aus einem einzelnen Punkt, der als Ihr Universalgateway in die Welt dient. Alle Knoten hinter dem Schlüsselwort uucp-dom: müssen gültige UUCP-Nachbarn sein, was Sie mit dem Befehl uuname überprüfen können. Als Erinnerung daran, daß diese Datei in eine DBM-Datenbankdatei konvertiert werden muß, bevor sie benutzt werden kann, sollte der Befehl hierzu als Kommentar am Anfang der mailertable plaziert werden. Sie müssen den Befehl jedesmal ausführen, wenn Sie Ihre Mailertable geändert haben. Abschließender Hinweis: wenn Sie unsicher sind, ob bestimmte Mailrouten funktionieren, erinnern Sie sich an die Option von sendmail. Sie startet sendmail im Adreß-Testmodus; geben Sie - einfach 0, gefolgt von der Adresse, + einfach 3,0, gefolgt von der Adresse, für die Sie das Routing testen möchten, ein. Die letzte Zeile nennt Ihnen den benutzten Mailagenten, den Zielhost, mit dem dieser Agent aufgerufen wird und die (ggfs. übersetzte) Adresse. Verlassen Sie diesen Modus, indem Sie Control-D eingeben. &prompt.user; sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> -> 0 foo@interface-business.de -rewrite: ruleset 0 input: foo @ interface-business . de +> 3,0 foo@example.com +canonify input: foo @ example . com ... -rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ -< @ interface-business . de > +parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . > > ^D Wie richte ich das Mailsystem konfigurieren, wenn ich eine Wählverbindung zum Internet habe? Wenn Sie eine feste IP-Adresse haben, müssen Sie die Standardeinstellungen wahrscheinlich gar nicht ändern. Stellen Sie Ihren Hostnamen entsprechend Ihrem zugeordneten Internetnamen ein und sendmail übernimmt das übrige. Wenn Sie eine dynamische IP-Adresse haben und eine - ppp-Wählverbindung zum + PPP-Wählverbindung zum Internet benutzen, bekommen Sie wahrscheinlich eine Mailbox auf dem Mailserver Ihres ISPs zugeordnet. Lassen Sie uns annehmen, die Domäne ihres ISPs sei myISP.com und Ihr Benutzername user; außerdem nehmen wir an, daß Sie Ihre Maschine bsd.home genannt haben und, daß Ihr ISP ihnen gesagt hat, daß Sie relay.myISP.com als Mail-Relayhost benutzen können. Um Mails aus Ihrer Mailbox abzuholen, müssen Sie einen entsprechenden Programm installieren. Fetchmail ist eine gute Wahl, weil es viele verschiedene Protokolle unterstützt. Für gewöhnlich wird von Ihrem ISP POP3 zur Verfügung gestellt werden. Falls sie sich dafür - entschieden haben, user-ppp zu nutzen, können Sie + entschieden haben, user-PPP zu nutzen, können Sie durch folgenden Eintrag in der Datei /etc/ppp/ppp.linkup Ihre Mails automatisch abholen lassen, wenn eine Verbindung zum Netz aufgebaut wird: MYADDR: !bg su user -c fetchmail Falls Sie (wie unten gezeigt) sendmail benutzen, um Mails an nicht-lokale Benutzer zu versenden, fügen Sie den Befehl !bg su user -c "sendmail -q" nach dem oben gezeigten Eintrag ein. Das veranlaßt sendmail, Ihre ausgehenden Mails zu verarbeiten, sobald eine Verbindung zum Internet aufgebaut wird. Ich nehme an, daß auf bsd.home ein Benutzer user existiert; erstellen Sie auf bsd.home im Heimatverzeichnis von user eine Datei .fetchmailrc: poll myISP.com protocol pop3 fetchall pass MySecret; - Ich brauche wohl nicht zu erwähnen, daß - diese Datei für niemandem außer - user lesbar sein sollte, weil sie das - Passwort MySecret enthält. + Diese Datei sollte für niemandem außer + user lesbar sein, weil sie das + Paßwort MySecret enthält. Um Mails mit dem richtigen from:-Header zu versenden, müssen Sie sendmail mitteilen, daß es user@myISP.com und nicht user@bsd.home benutzen soll. Evtl. möchten Sie auch, daß sendmail alle Mails über relay.myISP.com versendet, um eine schnellere Übertragung von Mails zu gewährleisten. Die folgende .mc-Datei sollte ausreichen: VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`myISP.com')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(`SMART_HOST', `relay.myISP.com') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl Im vorherigen Abschnitt finden Sie Details dazu, wie Sie aus dieser .mc-Datei eine Datei sendmail.cf erstellen können. Vergessen Sie auch nicht, sendmail neu zu starten, nachdem Sie sendmail.cf verändert haben. - - Woher kommt dieser Benutzer toor - mit UID 0? Ist mein System gehackt worden? + + Welchen Mail-Server kann ich an Stelle von Sendmail + benutzen? - Keine Panik. toor ist ein - alternativer Account für den - Super-User (wenn man root rückwärts schreibt, - erhält man toor). Früher wurde er nur erzeugt, - wenn die Shell &man.bash.1; installiert wurde, heute wird - er auf jeden Fall erzeugt. Dieser Account ist für - die Verwendung mit einer alternativen Shell vorgesehen; - damit ist es nicht mehr erforderlich, die Shell von - root zu ändern. Dies ist - wichtig, wenn eine Shell verwendet wird, die nicht zum - Lieferumfang von FreeBSD gehört, zum Beispiel aus - einem Port oder einem Package. Diese Shells werden in der - Regel in /usr/local/bin installiert - und dieses Verzeichnis liegt standardmäßig auf - einem anderem Filesystem. Wenn die Shell von - root in - /usr/local/bin liegt und - /usr (oder das Filesystem, auf dem - /usr/local/bin liegt) nicht gemountet - werden kann, kann sich root nicht - mehr einloggen, um das Problem zu beheben. Es ist - allerdings möglich, das System zu rebooten und das - Problem im Single-User Modus zu lösen, da man hier - gefragt wird, welche Shell benutzt werden soll. + Sendmail + ist zwar der Mail-Server, der bei FreeBSD + standardmäßig installiert wird, aber Sie + können Ihn problemlos durch einen anderen MTA (z.B. + aus den Ports) ersetzen. - Einige Anwender benutzen toor mit - einer alternativen Shell für die tägliche Arbeit - und nutzen root (mit der - Standard-Shell) für den Single-User Modus und - für Notfälle. Standardmäßig kann man - sich nicht als toor anmelden, da der - Account kein gültiges Paßwort hat; Sie - müssen sich also als root - anmelden und ein Paßwort für - toor setzen, wenn Sie diesen Account - benutzen wollen. + In der Port-Sammlung gibt es bereits viele + verschiedene MTAs, mail/exim, + mail/postfix, mail/qmail, + mail/zmailer sind einige der beliebteren + Alternativen. + + Konkurrenz belebt das Geschäft und die Tatsache, + daß Sie die Qual der Wahl haben, ist ein Vorteil. + Daher sollten Sie Fragen wie Ist Sendmail besser + als Qmail? besser nicht auf den Mailinglisten + stellen. Wenn Sie dieses Thema interessiert, sollten sie + zunächst die Archive durchsehen. Die Vorteile und + Nachteile jedes einzelnen der verfügbaren MTAs sind + schon mehrere Male bis zur Erschöpfung diskutiert + worden. Was kann ich machen, wenn ich das Rootpasswort vergessen habe? Keine Panik! Starten Sie Ihr System einfach neu und geben Sie boot -s an der Eingabeaufforderung Boot: ein (bei FreeBSD-Versionen vor 3.2 nur -s), um in den Einzelbenutzermodus zu gelangen. Bei der Frage danach, welche Shell benutzt werden soll, drücken Sie einfach ENTER. Nun erscheint die Eingabeaufforderung &prompt.root;. Geben Sie mount -u / ein, um Ihr Root-Dateisystem für Lese- und Schreibzugriffe zu remounten und dann mount -a, um alle Dateisysteme zu remounten. Mit passwd root können Sie das Rootpasswort ändern und mit &man.exit.1; können Sie mit dem Booten fortfahren. Wie verhindere ich, daß das System mit Control-Alt-Delete rebootet werden kann? Falls Sie syscons (den Standard-Treiber für die Konsole) unter FreeBSD ab 2.2.7-RELEASE benutzen, erstellen und installieren Sie einen neuen Kernel mit der Zeile options SC_DISABLE_REBOOT in der Konfigurationsdatei. Falls Sie den Konsolen-Treiber PCVT unter FreeBSD seit 2.2.5-RELEASE benutzen, benutzen Sie stattdessen die folgende Kernelkonfigurationszeile: options PCVT_CTRL_ALT_DEL Editieren Sie bei älteren Versionen von FreeBSD die Tastenzuordnungsdatei, die Sie für die Konsole verwenden und ersetzen Sie die Schlüsselworte boot durch nop. Die standard Tastenzuordnungsdatei heißt /usr/share/syscons/keymaps/us.iso.kbd. Es könnte sein, daß Sie /etc/rc.conf explizit instruieren müssen, diese Tastenzuordnungsdatei zu laden, um die Änderungen wirksam werden zu lassen. Falls Sie eine andere Tastenzuordnung für Ihr Land verwenden, müssen Sie natürlich diese editieren. Wie ändere ich das Format von Textdateien von DOS nach Unix? Benutzen Sie einfach diesen Perl-Befehl: &prompt.user; perl -i.bak -npe 's/\r\n/\n/g' file ... file ist/sind die zu verarbeitende(n) Datei(en). Die Änderungen erfolgen in der Originaldatei, die zuvor mit der Erweiterung .bak gesichert wird. Alternativ können Sie den Befehl &man.tr.1; benutzen: &prompt.user; tr -d '\r' < dos-text-file > unix-file dos-text-file ist die Datei, die den Text im DOS-Format enthält und unix-file wird die konvertierte Ausgabe enthalten. Diese Möglichkeit könnte etwas schneller sein, als die Benutzung von Perl. Wie beende ich Prozesse namentlich? Benutzen Sie &man.killall.1;. Warum nervt su mich damit, daß ich nicht in der ACL von root bin? Der Fehler stammt vom verteilten Authentifizierungssystem Kerberos. Das Problem ist nicht ernsthaft, aber störend. Sie können entweder su mit der Option -K benutzen, oder Kerberos deinstallieren, wie in der nächsten Frage beschrieben. Wie deinstalliere ich Kerberos? Um Kerberos aus dem System zu entfernen, müssen Sie die bin-Distribution der von Ihnen benutzen RELEASE neu installieren. Wenn Sie die CDROM besitzen, können Sie sie mounten (wir nehmen an, unter /cdrom) und folgende Schritte ausführen: &prompt.root; cd /cdrom/bin &prompt.root; ./install.sh Alternativ können Sie alle Zeilen mit "MAKE_KERBEROS" aus der /etc/make.conf entfernen und dann ein make world durchführen. Wie füge ich Pseudo-Terminals zum System hinzu? Wenn Sie viele Benutzer von telnet, ssh, X oder screens haben, könnte es sein, daß Ihnen die Pseudo-Terminals ausgehen. So fügen Sie weitere hinzu: Erstellen und installieren Sie einen neuen Kernel mit der Zeile pseudo-device pty 256 in der Konfigurationsdatei. Führen Sie die Befehle &prompt.root; cd /dev &prompt.root; ./MAKEDEV pty{1,2,3,4,5,6,7} aus, um 256 Geräteeinträge für die neuen Terminals zu erstellen. Editieren Sie die Datei /etc/ttys und fügen Sie Zeilen für jeden der 256 Terminals ein. Sie sollten so aussehen, wie die existierenden Einträge, also etwa so: ttyqc none network Die Reihenfolge der Buchstabenzuordnung lautet mit einem regulären Ausdruck tty[pqrsPQRS][0-9a-v]. Starten Sie das System mit dem neuen Kernel erneut, wenn Sie bereit sind. Warum kann ich das Gerät snd0 nicht erstellen? Es gibt kein Gerät snd. Diese Bezeichnung ist nur ein Sammelbegriff für die diversen Geräte, die zusammen das Soundsystem von FreeBSD bilden, wie zum Beispiel mixer, sequencer, und dsp. So erzeugen Sie diese Geräte: &prompt.root; cd /dev &prompt.root; sh MAKEDEV snd0 Wie lade ich /etc/rc.conf und starte /etc/rc neu, ohne zu rebooten? Gehen Sie in den Einzelbenutzermodus und dann zurück in den Mehrbenutzermodus. Geben Sie auf der Konsole folgendes ein: &prompt.root; shutdown now (Hinweis: ohne -r oder -h) &prompt.root; return &prompt.root; exit Was ist ein Sandkasten (sandbox)? Sandkasten (sandbox) ist ein Ausdruck aus dem Bereich Sicherheit. Er hat zwei Bedeutungen: Ein Programm, das innerhalb virtueller Wände ausgeführt wird. Wenn ein Angreifer über eine Sicherheitslücke in diesen Programm einbricht, verhindern diese Wände ein tieferes Vordringen in das System. Man sagt: Der Prozeß kann innerhalb der Wände spielen, d.h. nichts, was der Prozeß in Bezug auf die Ausführung von Code tut, kann die Wände durchbrechen. Es ist also keine detailierte Revision des Codes erforderlich, um gewisse Aussagen über seine Sicherheit machen zu können. Die Wände könnten z.B. eine Benutzerkennung sein. Dies ist die Definition, die in den Manualpages security und named benutzt wird. Nehmen Sie zum Beispiel den Dienst ntalk (siehe auch /etc/inetd.conf). Dieser Dienst ist früher mit der Benutzerkennung root gelaufen; nun läuft er mit der Benutzerkennung tty. Der Benutzer tty ist ein Sandkasten, der dazu gedacht ist, es jemandem, der über ntalk erfolgreich in das System eingebrochen ist, schwer zu machen, über diese Benutzerkennung hinaus vorzudringen. Ein Prozeß, der sich innerhalb einer simulierten Maschine befindet. Dies ist etwas fortgeschrittener; grundsätzlich bedeutet es, daß jemand, der in der Lage ist, in einen Prozeß einzudringen, annehmen könnte, er könnte weiter in die Maschine eindringen, tatsächlich aber nur in eine Simulation der Maschine einbricht und keine echten Daten verändert. Der gängigste Weg, dies zu erreichen, ist, in einem Unterverzeichnis eine simulierte Umgebung zu erstellen und den Prozeß in diesem Verzeichnis mit chroot auszuführen (d.h. für diesen Prozeß ist / dieses Verzeichnis und nicht das echte / des Systems). Eine weitere gebräuchliche Anwendung ist, ein untergeordnetes Dateisystem nur mit Leserechten zu mounten, und dann darüber eine Dateisystemebene zu erstellen, die einem Prozeß einen scheinbar schreibberechtigten Blick in das Dateisystem gibt. Der Prozeß mag glauben, daß er in der Lage ist, diese Dateien zu verändern, aber nur der Prozeß sieht diesen Effekt - andere Prozeß im System natürlich nicht. Es wird versucht, diese Art von Sandkasten so transparent zu gestalten, daß der Benutzer (oder Hacker) nicht realisiert, daß er sich in ihm befindet. Unix implementiert zwei Arten von Sandkästen - eine auf Prozeßebene und die andere auf der Ebene der Benutzerkennung. Jeder Unix-Prozeß ist vollständig von jedem anderen Unix-Prozeß abgeschirmt. Ein Prozeß kann den Adreßraum eines anderen Prozesses nicht modifizieren. Das ist anders als bei Windows, wo ein Prozeß leicht den Adreßraum eines anderen überschreiben kann, was zu einem Absturz führt. Ein Unix-Prozeß gehört einer bestimmten Benutzerkennung. Falls die Benutzerkennung nicht die von root ist, dient sie dazu, den Prozeß von Prozessen anderer Benutzer abzuschirmen. Die Benutzerkennung wird außerdem dazu genutzt, Daten auf der Festplatte abzuschirmen. Was sind die Sicherheitsstufen? Die Sicherheitsstufen sind ein Sicherheitsmechanismus, der im Kernel angesiedelt ist. Wenn die Sicherheitsstufe einen positiven Wert hat, verhindert der Kernel die Ausführung bestimmter Tätigkeiten; nicht einmal der Super-User (also root) darf sie durchführen. Zur Zeit können über die Sicherheitsstufen unter anderem die folgenden - Tötigkeiten geblockt werden: + Tätigkeiten geblockt werden: Änderungen bestimmter Dateiattribute, wie zum Beispiel schg (das "system immutable" Attribut) Schreibender Zugriff auf die Speicherbereiche des Kernels mittels /dev/mem und /dev/kmem. Laden von Kernel-Modulen. Änderungen an den Firewall-Regeln. - Um die eingestellte Sicherheitstufe eines aktiven + Um die eingestellte Sicherheitsstufe eines aktiven Systems abzufragen, reicht das folgende einfache Kommando: &prompt.root; sysctl kern.securelevel Die Ausgaben wird den Namen der &man.sysctl.8;-Variablen (in diesem Fall kern.securelevel) und eine Zahl enthalten. Die Zahl ist der aktuelle Wert der Sicherheitsstufe. Wenn die Zahl positiv (größer als Null) ist, sind zumindestens einige der Schutzmaßnahmen aktiviert. Sie können die Sicherheitsstufe eines laufenden Systems nicht verringern, da dies den Mechanismus wertlos machen würden. Wenn Sie eine Tätigkeit ausführen müssen, bei der die Sicherheitsstufe nicht-positiv sein muß (z.B. ein installworld oder eine Änderung der Systemzeit), dann müssen Sie die entsprechende Einstellung in /etc/rc.conf ändern (suchen Sie nach den Variablen kern_securelevel und kern_securelevel_enable) und das System rebooten. - Weitere Informationen über die Sicherheitstufen + Weitere Informationen über die Sicherheitsstufen und genaue Informationen, was die Einstellungen bewirken, können Sie der Online-Hilfe &man.init.8; entnehmen. Die Sicherheitsstufen sind kein magischer Zauberstab, der alle Ihre Problem löst; es gibt viele bekannte Probleme. Und in der Mehrzahl der Fälle vermitteln sie ein falsches Gefühl der Sicherheit. Eines der größten Probleme ist, daß alle für den Start des Systems benötigten Dateien geschützt sein müssen, damit die Sicherheitsstufe effektiv sein können. Wenn es ein Angreifer schafft, seine eigenen Programme ausführen zu lassen, bevor die Sicherheitsstufe gesetzt wird (was leider erst gegen Ende des Startvorgangs erfolgen kann, da viele der notwendigen Tätigkeiten für den Systemstart nicht mit einer gesetzten Sicherheitsstufe möglich wären), werden die Schutzmechanismen ausgehebelt. Es ist zwar nicht technisch unmöglich, alle beim Systemstart genutzten Dateien zu schützen; allerdings würde in einem so geschützten System die Administration zu einem Alptraum, da man das System neu starten oder in den Single-User Modus bringen müßte, um eine Konfigurationsdatei ändern zu können. Dieses und andere Probleme werden häufig auf den Mailinglisten diskutiert, speziell auf freebsd-security. Das hier verfügbare Archiv enthält ausgiebige Diskussionen. Einige Benutzer sind guter Hoffnung, daß das System der Sicherheitsstufen bald durch ein besser konfigurierbares System ersetzt wird, aber es gibt noch keine definitiven Aussagen. Fühlen Sie sich gewarnt. - - - Wie lasse ich normale Benutzer Disketten, CDROMs und - andere Wechseldatenträger mounten? - - - - Normale Benutzer können dazu berechtigt werden, - Geräte zu mounten. Das geht so: - - - - Setzen Sie als root die - sysctl-Variable vfs.usermount auf - 1: - - &prompt.root; sysctl -w vfs.usermount=1 - - - - Ordnen Sie als root den - Block-Geräten, die den Wechsellaufwerken - zugeordnet sind, die entsprechenden Zugriffsrechte - zu. - - Wenn Sie zum Beispiel den Benutzer den Zugriff auf - das erste Diskettenlaufwerk zu erlauben - wollen: - - &prompt.root; chmod 666 /dev/fd0 - - Um den Mitgliedern der Gruppe - operator den Zugriff auf das - CDROM zu gestatten: - - &prompt.root; chgrp operator /dev/cd0c -&prompt.root; chmod 640 /dev/cd0c - - - - Fügen Sie zum Abschluß die Zeile - ivfs.usermount=1 - in die Datei /etc/sysctl.conf - ein, damit die Einstellung bei einem Neustart des - Systems automatisch erhalten bleibt. - - - - Alle Benutzer können nun - /dev/fd0 auf ein Verzeichnis, das - ihnen gehört, mounten: - - &prompt.user; mkdir ~/my-mount-point -&prompt.user; mount -t msdos /dev/fd0 ~/my-mount-point - - Die zur Gruppe operator - gehörenden Benutzer können nun - /dev/cd0c auf ein Verzeichnis, das - ihnen gehört, mounten: - - &prompt.user; mkdir ~/my-mount-point -&prompt.user; mount -t msdos /dev/cd0c ~/my-mount-point - - Das Unmounten des Gerätes ist simpel: - - &prompt.user; umount ~/my-mount-point - - Die Aktivierung von vfs.usermount - hat jedoch negative Auswirkungen auf Sicherheitsaspekte. - Ein besserer Weg, um auf MSDOS-formatierte - Datenträger zuzugreifen, ist die Benutzung des - Packages mtools aus der - Ports-Sammlung. - - - - - - Wie verschiebe ich mein System auf meine neue, - große Platte. - - - - Die beste Methode ist, das Betriebssystem auf der - neuen Platte neu zu installieren und danach die Daten zu - verschieben. Wenn Sie -stable über eine Release - hinaus genutzt haben oder eine Release aktualiert haben, - ist das sehr empfehlenwert. Sie können auf beiden - Platten &man.boot0cfg.8; installieren und die beiden - Versionen so lange parallel betreiben, bis Ihnen die neue - Konfiguation gefällt. Wenn Sie dies tun wollen, - können Sie im übernächsten Absatz erfahren, - wie sie Ihre Daten verschieben können. - - Falls Sie sich entscheiden, das nicht zu tun, - müssen Sie Ihre neue Platte partitionieren und - labeln. Benutzen Sie dafür entweder - /stand/sysinstall oder &man.fdisk.8; - und &man.disklabel.8;. Weiterhin sollten Sie mit - &man.boot0cfg.8; auf beiden Platten booteasy installieren, - damit Sie in der Lage sind, das alte und das neue System - abwechselnd zu starten, nachdem der Kopiervorgang - abgeschlossen ist. Im Formatting-Media - Tutorial finden Sie weitere Informationen zu - diesen Schritten. - - Nachdem Sie die neue Platte eingerichtet haben, - können Sie Ihre Daten verschieben. Dummerweise - können Sie die Daten nicht einfach. Dinge wie die - Gerätedateien (in /dev) und - Symbolische Links führen dazu, daß das in die - Hose geht. Sie mützen Programme benutzen, die damit - umgehen können, und das sind &man.dump.8; and - &man.tar.1;. Es wird empfohlen, die Daten im single user - mode zu verschieben, aber das ist nicht unbedingt - notwendig. - - Sie sollten auf gar keinen Fall etwas anderes als - &man.dump.8; und &man.restore.8; benutzen, um Ihr root - file system 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. Um die Daten einer Partition mit - dump auf eine andere Partition zu verschieben, müssen - Sie die folgenden Schritte ausführen: - - - - Richten Sie in der neuen Partition mit newfs ein - Dateisystem ein. - - - - Mounten Sie die Partition temporär an einer - geeigneten Stelle. - - - - Wechseln Sie mit cd in dieses Verzeichnis. - - - - Lesen Sie die alte Partition mit dump aus und - lenken Sie die Ausgabe auf die neue Partition - um. - - - - Wenn Sie zum Beispiel root auf - /dev/ad1s1a verschieben wollen und - diese zur Zeit auf /mnt gemountet - ist, bedeutet das: - - &prompt.root; newfs /dev/ad1s1a - &prompt.root; mount /dev/ad1s1a - &prompt.root; cd /mnt - &prompt.root; dump 0uaf - / | restore xf - - - Wenn Sie Ihre Partitionen umorganisieren wollen, also - zum Beispiel aus eine alte in zwei neue aufteilen wollen - oder zwei alte zu einer neuen zusammenfassen wollen, dann - wird es frührer oder später vorkommen, daß - Sie nur einen Verzeichnisbaum verschieben wollen. Da - &man.dump.8; nur ganze Dateisysteme bearbeitet, - können Sie es dafür nicht nutzen. Hier sollten - Sie &man.tar.1; verwenden. Um mit &man.tar.1; - /old nach /new - zu verschieben, müssen Sie diesen Befehl - eingeben: - - &prompt.root; (cd /old; tar cf - .) | (cd /new; tar xpf -) - - Wenn unter /old andere - Dateisysteme gemountet sind und Sie weder die Daten auf - diesen Dateisystem verschieben noch die anderen - Dateisysteme unmounten wollen, müssen das erste - &man.tar.1; mit dem Parameter - aufrufen: - - &prompt.root; (cd /old; tar clf - .) | (cd /new; tar xpf -). - - Eventuell gefallen Ihnen &man.cpio.1;, &man.pax.1; - oder cpdup (ports/sysutils/cpdup) besser als - &man.tar.1;. - - - Ich wollte auf das aktuelle -STABLE updaten, und plötzlich läuft hier ein -RC oder -BETA. Was ist passiert? Kurze Antwort: Das ist nur ein anderer Name. RC ist die Abkürzung für Release Candidate. Es bedeutet, daß eine neue Release bevorsteht. Und -BETA bedeutet bei FreeBSD normalerweise, daß die Sourcen zur Vorbereitung auf eine Release eingefroren wurden. Ausführliche Antwort: Bei FreeBSD gibt es zwei Quellen für Releases. Die Major Releases wie 3.0-RELEASE und 4.0-RELEASE werden aus dem aktuellen Stand des Hauptzweiges der Entwicklung (besser und kürzer als -CURRENT bekannt) erzeugt. Minor Releases wie 3.1-RELEASE or 4.2-RELEASE stammen aus dem aktiven -STABLE Zweig. Seit 4.3-RELEASE gibt es es nun auch einen eigenen Zweig für jede Release, der für die Leute gedacht ist, die ein sehr konservativ weiterentwickeltes System benötigen (im Normalfall also nur Updates aus dem Bereich Sicherheit). Bevor in einem Zweig eine Release erfolgt, muß in diesem Zweig ein bestimmter Prozeß ablaufen. Ein Teil dieses Prozesses ist der code freeze, der Stop der Weiterentwicklung. Sobald dieser Schritt erfolgt ist, wird der Name des Zweiges geändert, um anzuzeigen, daß demnächst eine Release erfolgen wird. Wenn der Zweig zum Beispiel 4.0-STABLE genannt wurde, wird der Name in 4.1-BETA geändert, um dies zu verdeutlichen. Weiterhin ist das ein Zeichen, daß jetzt besonders intensiv getestet werden sollte. In dieser Phase können Fehler im Sourcecode noch korrigiert werden. Wenn der Sourcecode so weit gereift ist, daß eine Release erstellt werden kann, wird der Name in 4.1-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.1-RELEASE) erfolgt ist, wird der Zweig in 4.1-STABLE umbenannt. Als ich versucht habe, einen neuen Kernel zu installieren, ist das chflags fehlgeschlagen. Was mache ich jetzt? Kurze Antwort: Ihre Sicherheitseinstellung (der securelevel) ist wahrscheinlich größer als 0. Sie müssen das System neu starten und den Kernel im Single-User Modus installierten. Ausführliche Antwort: Wenn die Sicherheitseinstellung größer als 0 ist, erlaubt Ihnen FreeBSD nicht, die Systemflags zu ändern. Um den aktuellen Securelevel zu ermitteln, können Sie das folgende Kommando benutzen: &prompt.root; sysctl kern.securelevel 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 /etc/rc.conf ändern und dann das System neu starten. Weitere Detail zur Sicherheitseinstellung erhalten Sie in &man.init.8;, weitere Informationen zur rc.conf erhalten Sie in /etc/defaults/rc.conf und &man.rc.conf.5;. Ich kann die Systemzeit nicht um mehr als eine Sekunde verstellen. Was mache ich jetzt? Kurze Antwort: Ihre Sicherheitseinstellung (der securelevel) ist wahrscheinlich größer als 1. Sie müssen das System neu starten und die Systemzeit im Single-User Modus verstellen. Ausführliche Antwort: Wenn die Sicherheitseinstellung größer als 1 ist, erlaubt Ihnen FreeBSD nicht, die Systemzeit zu ändern. Um den aktuellen Securelevel zu ermitteln, können Sie das folgende Kommando benutzen: &prompt.root; sysctl kern.securelevel 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 /etc/rc.conf ändern und dann das System neu starten. Weitere Detail zur Sicherheitseinstellung erhalten Sie in &man.init.8;, weitere Informationen zur rc.conf erhalten Sie in /etc/defaults/rc.conf und &man.rc.conf.5;. Warum braucht &man.rpc.statd.8; 256 MByte Speicher? Nein, das Programm hat keinen Fehler und es verbraucht auch nicht 256 MByte Speicher. Das Programm hat nur eine Vorliebe dafür, einen übertrieben großen Speicherbereich in seinen eigenen Adreßraum zu projizieren. Von einem rein technischen Standpunkt aus ist das nichts verwerfliches, allerdings verwirrt es Programme wie &man.top.1; und &man.ps.1;. &man.rpc.statd.8; projiziert seine Statusdatei (die in /var liegt) in seinen Adreßraum. Um die Probleme zu vermeiden, die bei - einer Verößerung dieser Projektion entstehen - könnte, wird gleich ein mölichst großer + einer Vergrößerung dieser Projektion entstehen + könnte, wird gleich ein möglichst großer Speicherbereich benutzt. Dies kann man sehr schön im Sourcecode sehen: Die Längenangabe beim Aufruf von &man.mmap.2; ist 0x10000000, ein sechzehntel des Adreßraums bei IA32, oder genau 256 MByte. Warum kann ich das Dateiattribut schg nicht löschen? Sie betreiben Ihr System mit einer erhöhten Sicherheitsstufe. Senken Sie die Sicherheitsstufe und versuchen Sie es dann noch einmal. Weitere Informationen erhalten Sie im FAQ Eintrag über Sicherheitsstufen und in der Online-Hilfe &man.init.8;. Warum funktioniert die .shosts Authentifizierung von SSH in neueren Version von FreeBSD nicht mehr? Die .shosts Authentifizierung funktioniert nicht mehr, weil &man.ssh.1; in neueren Versionen von FreeBSD nicht mehr - "suid root" installiert wird. Um dieses Problem zu - lösen, gibt es die folgenden + SUID-root installiert wird. Um dieses + Problem zu lösen, gibt es die folgenden Möglichkeiten: Um das Problem für immer zu lösen, müssen Sie in /etc/make.conf die Variable ENABLE_SUID_SSH auf true setzen und ssh neu übersetzen (oder make world ausführen. Übergangsweise können Sie auch die Dateirechte von /usr/bin/ssh auf 4555 setzen, indem Sie den Befehl chmod 4755 /usr/bin/ssh als root ausführen. Fügen Sie anschließend ENABLE_SUID_SSH= true in die Datei /etc/make.conf ein, damit diese Änderung erhalten bleibt, wenn Sie das - nöchste Mal make world + nächste Mal make world ausführen. + + + + Was ist vnlru? + + + + vnlru schreibt vnodes auf Platte + und gibt sie wieder frei, falls das System die Grenzwert + kern.maxvnodes erreicht. Dieser Thread + des Kernel tut meistens gar nichts und wird nur aktiv, + wenn Sie extrem viel RAM haben und gleichzeitig auf viele + zehntausende kleine Dateien zugreifen. + +
Das X Window System und virtuelle Konsolen Ich möchte X benutzen, was muß ich tun? Der einfachste Weg ist der, daß Sie während der Installation angeben, daß Sie X benutzen möchten. Lesen Sie dann die Dokumentation zum Tool xf86config, das Sie bei der Konfiguration von XFree86(tm) speziell für Ihre Grafikkarte/Maus/etc. unterstützt. Evtl. möchten Sie sich auch den Xaccel-Server ansehen. Nähere Details finden Sie in den Abschnitten über Xi Graphics oder Metro Link. Ich habe versucht, X zu starten, aber wenn ich startx eingebe, erhalte ich die Fehlermeldung KDENABIO failed (Operation not permitted). Was soll ich jetzt machen? Sie haben die Sicherheitsstufe (den securelevel) ihres Systems erhört, richtig? Es ist tatsächlich nicht möglich, X zu starten, wenn die Sicherheitsstufe erhöht wurde. Warum das so ist, können Sie in &man.init.8; nachlesen. Die Frage ist also eigentlich, was Sie anders machen sollten. Sie haben zwei Möglichkeiten: Setzen Sie - die Sicherheitstufe wieder zurück auf 0 (die + die Sicherheitsstufe wieder zurück auf 0 (die Einstellung erfolgt in der Regel in /etc/rc.conf) oder starten Sie &man.xdm.1; während des Starts des Systems, bevor die Sicherheitsstufe erhöht wird. Der Abschnitt enthält Informationen darüber, wie Sie &man.xdm.1; beim Start des Systems starten können. Warum funktioniert meine Maus unter X nicht? Wenn Sie syscons (den Standard-Konsoltreiber) benutzen, können Sie FreeBSD so konfigurieren, daß auf jedem virtuellen Bildschirm ein Mauszeiger unterstützt wird. Um Konflikte mit X zu vermeiden, unterstützt syscons ein virtuelles Gerät mit dem Namen /dev/sysmouse. Über dieses virtuelle Gerät können andere Programme alle Mausbewegungen und Mausclicks im MouseSystems-Format mitlesen. Falls Sie Ihre Maus auf einer oder mehreren virtuellen Konsolen und X benutzen wollen, sollten Sie zunächst lesen und dann moused installieren. Die Datei /etc/XF86Config sollte die folgenden Einträge enthalten: Section Pointer Protocol "SysMouse" Device "/dev/sysmouse" ..... Diese Variante kann für XFree86 3.3.2 und neuere Versionen benutzt werden. Wenn Sie eine ältere Versionen verwenden, muß als Protocol dagegen MouseSystems benutzt werden. Einige Leute ziehen es vor, unter X /dev/mouse zu benutzen. Hierzu sollte /dev/mouse nach /dev/sysmouse gelinkt werden: &prompt.root; cd /dev &prompt.root; rm -f mouse &prompt.root; ln -s sysmouse mouse Kann ich meine Rad-Maus auch unter X benutzen? Ja. Allerdings müssen Sie die X-Anwendungen anpassen. Weitere Informationen erhalten Sie auf der Homepage von Colas Nahaboo (http://www.inria.fr/koala/colas/mouse-wheel-scroll/). Wenn Sie das Programm imwheel benutzen wollen, müssen Sie folgenden Arbeiten durchführen. Umsetzung der Rad-Bewegung Das Programm imwheel übersetzt die Maustasten 4 und 5 in normale Tastaturkommandos. Sie müssen also nur dafür sorgen, daß die Bewegung des Rades - vom Maustreiber als Betätigung der Maustaten 4 + vom Maustreiber als Betätigung der Maustasten 4 und 5 übersetzt werden. Es gibt zwei Möglichkeiten, dieses Ziel zu erreichen. Zum einen kann die Übersetzung von &man.moused.8; durchgeführt werden, zum zweiten kann der X-Server diese Aufgabe übernehmen. Umsetzung durch &man.moused.8; Damit &man.moused.8; die Umsetzung vornimmt, müssen Sie ihn lediglich mit dem zusätzlichen Parametern starten. Wenn Sie zum Beispiel &man.moused.8; mit dem Befehl moused -p /dev/psm0 gestartet haben, würde der neue Befehl moused -p /dev/psm0 -z 4 lauten. Wenn Sie &man.moused.8; über einen Eintrag in der Datei /etc/rc.conf automatisch beim Start des Systems starten lassen, müssen Sie in der /etc/rc.conflediglich die Einstellung moused_flags um ergänzen. Nun müssen Sie X darüber informieren, daß Sie eine Maus mit 5 Tasten haben. Fügen sie dazu die Zeile Buttons 5 in den Abschnitt Pointer der Datei /etc/XF86Config ein. Das Beispiel zeigt, wie ein solcher Abschnitt aussehen könnte. Abschnitt <quote>Pointer</quote> für XFree86 3.3.x für Mäuse mit Rad und Umsetzung durch <command>moused</command> Section "Pointer" Protocol "SysMouse" Device "/dev/sysmouse" Buttons 5 EndSection Abschnitt <quote>InputDevice</quote> für Rad-Mäuse in der XF86Config von XFree86 4.X - mit automatischer Protokollerkennung und - Übersetzung der Maustasten + mit Umsetzung durch den X Server Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "auto" - Option "Device" "/dev/psm0" + Option "Device" "/dev/sysmouse" Option "Buttons" "5" - Option "ZAxisMapping" "4 5" EndSection <quote>.emacs</quote> Konfiguration für seitenweises Blättern mit einer Rad-Maus ;; wheel mouse (global-set-key [mouse-4] 'scroll-down) (global-set-key [mouse-5] 'scroll-up) Umsetzung durch den X-Server Wenn Sie &man.moused.8; nicht benutzen oder die Umsetzung nicht von &man.moused.8; vornehmen lassen wollen, kann diese Aufgabe auch vom X-Server übernommen werden. Dazu sind einige Änderungen an der Datei /etc/XF86Config notwendig. Zunächst müssen Sie das von Ihrer Maus verwendete Protokoll herausfinden. Die meisten Radmäuse verwenden das IntelliMouse Protokoll. XFree86 unterstützt allerdings auch andere Protokolle, zum Beispiel das von der Logitech Mouseman+ verwendete MouseManPlusPS/2. Wenn Sie das Protokoll ermittelt haben, müssen Sie eine entsprechende Protocol-Zeile in den Abschnitt Pointer aufnehmen. Zum zweiten müssen Sie dem X-Server mitteilen, daß er die Bewegung des Rades in Betätigungen der Tasten 4 und 5 umsetzen soll. Dazu dient die Option ZAxisMapping. Wenn Sie zum Beispiel &man.moused.8; nicht verwenden und eine IntelliMouse an den PS/2 Mausport angeschlossen haben, müßte in Ihrer /etc/XF86Config die folgenden Angaben stehen. Abschnitt <quote>Pointer</quote> der Datei <filename>XF86Config</filename> für eine Rad-Maus und Umsetzung durch den X-Server Section "Pointer" Protocol "IntelliMouse" Device "/dev/psm0" ZAxisMapping 4 5 EndSection + + + Abschnitt <quote>InputDevice</quote> der + Datei XF86Config von XFree86 4.x mit Umsetzung + durch den X Server + + Section "InputDevice" + Identifier "Mouse1" + Driver "mouse" + Option "Protocol" "auto" + Option "Device" "/dev/psm0" + Option "ZAxisMapping" "4 5" +EndSection + + + + <quote>.emacs</quote> Beispiel für + seitenweises Blättern mit einer + Rad-Maus + + ;; wheel mouse +(global-set-key [mouse-4] 'scroll-down) +(global-set-key [mouse-5] 'scroll-up) + Installation von imwheel Der nächste Schritt ist die Installation von imwheel über die Ports. Das Programm ist ein Teil der Kategorie x11. imwheel übersetzt die Bewegungen des Rades in Tastendrücken. Es könnte zum Beispiel Bild auf an ein Programm senden, wenn Sie das Rad nach vorne bewegen. Imwheel benutzt eine Konfigurationsdatei, die den Bewegungen des Rades die zu simulierenden Tastendrücke zuordnet. Damit ist es möglich, verschiedenen Anwendungen die jeweils "richtigen" Tastendrücke zu senden. Ein Prototyp der Konfigurationsdatei für imwheel wird unter dem Namen /usr/X11R6/etc/imwheelrc installiert. Wenn Sie die Konfiguration von imwheel an die von Ihnen verwendeten Programme anpassen wollen, erzeugen Sie eine Kopie der Datei mit dem Namen ~/.imwheelrc und tragen Sie ihre Anpassungen dort ein. Das Format der Datei wird in &man.imwheel.1; erklärt. Anpassung von Emacs an - with Imwheel + Imwheel (Optional) Wenn Sie emacs oder Xemacs benutzen, müssen Sie einen kleinen Abschnitt in die Datei ~/.emacs einfügen. Für emacs müssen Sie die folgenden Zeilen anfügen: Nutzung von <application>Emacs</application> mit <application>Imwheel</application> ;;; For imwheel (setq imwheel-scroll-interval 3) (defun imwheel-scroll-down-some-lines () (interactive) (scroll-down imwheel-scroll-interval)) (defun imwheel-scroll-up-some-lines () (interactive) (scroll-up imwheel-scroll-interval)) (global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines) (global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines) ;;; end imwheel section Wenn Sie Xemacs verwenden, müssen stattdessen die folgenden Zeilen an Ihre ~/.emacs anfügen: Nutzung von <application>Xemacs</application> mit <application>Imwheel</application> ;;; For imwheel (setq imwheel-scroll-interval 3) (defun imwheel-scroll-down-some-lines () (interactive) (scroll-down imwheel-scroll-interval)) (defun imwheel-scroll-up-some-lines () (interactive) (scroll-up imwheel-scroll-interval)) (define-key global-map [(control meta \))] 'imwheel-scroll-up-some-lines) (define-key global-map [(control meta \()] 'imwheel-scroll-down-some-lines) ;;; end imwheel section Imwheel ausführen Sie brauchen nach der Installation einfach nur - imwheel in einem xterm einzugben, + imwheel in einem xterm einzugeben, um das Programm zu starten. Das Programm läuft dann im Hintergrund und ist sofort aktiv. Wenn Sie imwheel ständig benutzen wollen, sollten Sie es einfach in Ihre .xinitrc oder .xsession eintragen. Falls imwheel Warnungen über PID files ausgeben sollte, können Sie diese ignorieren, da Sie nur die Linux-Version von imwheel betreffen. - Wieso funktioieren Menüs und Dialoge in X nicht + Wieso funktionieren Menüs und Dialoge in X nicht richtig? Versuchen Sie, die Num-Lock-Taste auszustellen. Falls Ihre Num-Lock-Taste beim Booten standardmäßig eingeschaltet ist, sollten Sie die folgende Zeile in den Abschnitt Keyboard der Datei XF86Config einfügen: # Let the server do the NumLock processing. This should only be # required when using pre-R6 clients ServerNumLock Was ist eine virtuelle Konsole und wie erstelle ich mehr? Mit virtuellen Konsolen können Sie mehrere simultane Sitzungen auf einer Maschine laufen lassen, ohne so komplizierte Dinge wie die Einrichtung eines Netzwerkes oder die Benutzung von X zu benötigen. Wenn das System startet, wird es nach der Anzeige aller Bootmeldungen eine Eingabeaufforderung auf dem Bildschirm anzeigen. Sie können dann auf der ersten - virtuellen Konsole Ihren Benutzernamen und das Passwort + virtuellen Konsole Ihren Benutzernamen und das Paßwort eingeben und anfangen, zu arbeiten (oder zu spielen!). Gelegentlich möchten Sie möglicherweise eine weitere Sitzung starten wollen, vielleicht, um die Dokumentation zu einem Programm, das Sie gerade benutzen, einzusehen, oder, um Ihre Mails zu lesen, während Sie auf das Ende einer FTP-Übertragung warten. Drücken Sie einfach Alt-F2 (halten Sie die Alt-Taste gedrückt und drücken Sie die Taste F2) und Sie gelangen zur Anmelde-Aufforderung auf der zweiten virtuellen Konsole! Wenn Sie zurück zur ersten Sitzung möchten, drücken Sie Alt-F1. Die standard Installation von FreeBSD bietet drei aktivierte virtuelle Konsolen (acht ab der Version 3.3) und Alt-F1, Alt-F2 und Alt-F3 wechseln zwischen diesen virtuellen Konsolen. Um mehr von ihnen zu aktivieren, editieren Sie /etc/ttys und fügen Einträge für ttyv4 bis zu ttyvc nach dem Kommentar zu virtuellen Terminals ein: # Edit the existing entry for ttyv3 in /etc/ttys and change # "off" to "on". ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/libexec/getty Pc" cons25 on secure ttyv9 "/usr/libexec/getty Pc" cons25 on secure ttyva "/usr/libexec/getty Pc" cons25 on secure ttyvb "/usr/libexec/getty Pc" cons25 on secure Benutzen Sie so wenig oder soviele, wie Sie möchten. Je mehr virtuelle Terminals Sie benutzen, desto mehr Ressourcen werden gebraucht; das kann wichtig sein, wenn Sie 8MB RAM oder weniger besitzen. Sie können auch secure in insecure ändern. Wenn Sie einen X-Server benutzen möchten, müssen Sie mindestens ein virtuelles Terminal unbenutzt (oder ausgeschaltet) lassen damit der Server es benutzen kann. Das heißt, daß Sie Pech haben, wenn Sie für jede Ihrer 12 Alt-Funktionstasten eine Anmeldeaufforderung haben möchten - Sie können das nur für elf von ihnen tun, wenn Sie einen X-Server auf derselben Maschine laufen lassen möchten. Der einfachste Weg, eine Konsole zu deaktivieren, ist, sie auszuschalten. Wenn Sie zum Beispiel die oben erwähnte volle Zuordnung aller 12 Terminals hätten, müßten Sie die Einstellung für das virtuelle Terminal 12 von: ttyvb "/usr/libexec/getty Pc" cons25 on secure in: ttyvb "/usr/libexec/getty Pc" cons25 off secure ändern. Wenn Ihre Tastatur nur über zehn Funktionstasten verfügt, bedeutet das: ttyv9 "/usr/libexec/getty Pc" cons25 off secure ttyva "/usr/libexec/getty Pc" cons25 off secure ttyvb "/usr/libexec/getty Pc" cons25 off secure (Sie können diese Zeilen auch einfach löschen.) Nachdem Sie die Datei /etc/ttys geändert haben, besteht der nächste Schritt darin, sicherzustellen, daß Sie genügend Geräte für virtuelle Terminal haben. Der einfachste Weg, dies zu tun, ist: &prompt.root; cd /dev &prompt.root; ./MAKEDEV vty12 Die einfachste (und sauberste) Möglichkeit, die virtuellen Konsolen zu aktivieren, ist, zu rebooten. Wenn Sie jedoch auf keinen Fall rebooten möchten, können Sie auch einfach das X Window System herunterfahren und als root &prompt.root; kill -HUP 1 ausführen. Es ist unbedingt erforderlich, daß Sie das X Window System vollständig herunterfahren, falls es läuft. Falls Sie es nicht tun, könnte es sein, daß sich ihr System nach der Eingabe des kill-Befehls aufhängt. Wie greife ich von X aus auf virtuelle Konsolen zu? Benutzen Sie CtrlAltFn um auf eine virtuelle Konsole umzuschalten. Mit CtrlAltF1 würden Sie zur ersten virtuellen Konsole umschalten. Sobald Sie auf eine virtuelle Konsole umgeschaltet haben, können Sie ganz normal AltFn benutzen, um zwischen den einzelnen virtuellen Konsolen umzuschalten. Um zu Ihrer X-Sitzung zurückzukehren, müssen Sie auf die virtuelle Konsole umschalten, auf der X läuft. Wenn Sie X über der Eingabeaufforderung gestartet haben (z.B. mit startx), benutzt X die nächste freie virtuelle Konsole und nicht die Konsole, von der es gestartet wurde. Wenn Sie acht aktive virtuelle Konsole haben, dann wird X die neunte benutzen und Sie können mit AltF9 umschalten. Wie starte ich XDM beim Booten? Es gibt zwei Denkansätze, wie xdm zu starten ist. Bei dem einen wird xdm von /etc/ttys aus gestartet, wobei das mitgelieferte Beispiel benutzt wird, während xdm bei dem anderen Ansatz einfach in rc.local oder von einem Skript X.sh im Verzeichnis /usr/local/etc/rc.d aus gestartet wird. Beide Ansätze sind gleichwertig und der eine wird in Situationen funktionieren, in denen der andere es nicht tut. In beiden Fällen ist das Ergebnis das gleiche: X liefert eine graphische Anmeldeaufforderung. Die ttys-Methode hat den Vorteil, daß dokumentiert ist, auf welchem vty X gestartet wird und der Neustart des X-Servers beim Abmelden an init übergeben wird. Die rc.local-Methode erleichtert ein Killen von xdm, falls Probleme beim Start des X-Servers auftreten sollten. Beim Laden von rc.local sollte xdm ohne irgendwelche Argumente (d.h. als Daemon) gestartet werden. xdm muß gestartet werden NACHDEM getty läuft, andernfalls entsteht ein Konflikt zwischen getty und xdm und die Konsole bleibt gesperrt. Der beste Weg, um dies zu vermeiden, ist, das Skript für etwa zehn Sekunden anzuhalten und dann xdm zu starten. Wenn Sie xdm durch einen Eintrag in /etc/ttys starten lassen, kann es zu einem Konflikt zwischen xdm und &man.getty.8; kommen. Um dieses Problem zu vermeiden, sollten Sie die Nummer des vt in die Datei /usr/X11R6/lib/X11/xdm/Xservers eintragen. :0 local /usr/X11R6/bin/X vt4 Diese Zeile führt dazu, daß der X Server /dev/ttyv3 nutzt. Die beiden Zahlen weichen voneinander ab: Der X-Server beginnt die Zählung der vty bei 1, während der FreeBSD-Kernel bei 0 beginnt. Wieso erhalte ich die Meldung Couldn't open console, wenn ich xconsole benutze? Wenn Sie X mit startx starten, werden die Zugriffsrechte für /dev/console leider nicht geändert, was dazu führt, daß Dinge wie xterm -C und xconsole nicht funktionieren. Das hängt damit zusammen, wie die Zugriffsrechte für die Konsole standardmäßig gesetzt sind. Auf einem Mehrbenutzersystem möchte man nicht unbedingt, daß jeder Benutzer einfach auf die Systemkonsole schreiben kann. Für Benutzer, die sich auf einer Maschine direkt mit einem VTY anmelden, existiert die Datei &man.fbtab.5;, um derartige Probleme zu lösen. In Kürze: sorgen Sie dafür, daß sich eine nicht auskommentierte Zeile der Form /dev/ttyv0 0600 /dev/console in der Datei /etc/fbtab befindet. Das sorgt dafür, daß wer auch immer sich auf /dev/ttyv0 anmeldet, auch die Konsole besitzt. Früher konnte ich XFree86 als normaler User starten. Warum sagt mir das System jetzt, daß ich root sein muß? Alle X-Server müssen mit der ID root laufen, um direkt auf die Videohardware zuzugreifen. Die älteren Versionen von XFree86 (bis einschließlich 3.3.6) installierten alle mitgelieferten Server so, daß sie automatisch unter ID root ausgeführt werden (setuid to root). Dies stellt natürlich eine Gefahrenquelle dar, da die X-Server große, komplexe Programme sind. Alle neueren Version von XFree86 installieren die Server aus genau diesem Grund nicht mehr "setuid root". Es ist natürlich nicht tragbar, den X-Server immer mit der ID root laufen zu lassen; auch aus Gründen der Sicherheit ist es keine gute Idee. Es gibt zwei Möglichkeiten, um X auch als normaler Benutzer starten zu können. Die erste ist die Verwendung von xdm oder eines ähnlichen Programms; die zweite ist die Benutzer von Xwrapper. xdm ist ein ständig laufendes Programm, mit dem Logins über eine graphische Benutzeroberfläche sind. Es wird normalerweise beim Systemstart initialisiert und für die Authentifizierung der Benutzer und den Start ihrer Sitzungen verantwortlich. Es ist also die graphische - Entsprechnung von &man.getty.8; und &man.login.1;. + Entsprechung von &man.getty.8; und &man.login.1;. Weitere Informationen zum Thema xdm finden Sie in der XFree86 Dokumentation und dem entsprechenden FAQ-Eintrag. Xwrapper ist eine Hülle für den X-Server. Mit diesem kleinen Utility ist es möglich, manuell den X-Server zu starten und weiterhin eine annehmbare Sicherheit zu haben. Das Tools prüft, ob die per Kommandozeile übergebenen Argumente halbwegs sinnvoll sind. Wenn dies der Fall ist, startet es den entsprechenden X-Server. Wenn Sie (aus welchem Grund auch immer) keine graphische Anmeldung wollen, ist Xwrapper die optimale Lösung. Wenn Sie die vollständige Ports-Sammlung installiert haben, finden Sie das Tool im Verzeichnis /usr/ports/x11/wrapper. Warum funktioniert meine PS/2-Maus nicht richtig? Ihre Maus und der Maustreiber sind etwas aus der Synchronisation geraten. Bis einschließlich Version 2.2.5 sorgt ein Wechsel von X zu einer virtuellen Konsole und wieder zurück für eine erneute Synchronisation. Falls das Problem öfter auftritt, können Sie die folgende Zeile in Ihre Kernelkonfigurationsdatei einfügen und den Kernel neu erstellen. options PSM_CHECKSYNC Lesen Sie den Abschnitt über die Erstellung eines Kernels, falls Sie keine Erfahrung mit der Erstellung eines Kernels haben. Mit dieser Option sollten geringere Chancen für Synchronisationsprobleme zwischen der Maus und dem Treiber bestehen. Falls sie jedoch weiterhin auf das Problem stoßen, drücken Sie eine der Maustasten, während Sie die Maus nicht bewegen, um die Maus und den Treiber neu zu synchronisieren. Beachten Sie, daß diese Option leider nicht auf allen Systemen funktioniert und das tap Merkmal eines am PS/2-Mausanschluß angeschlossenen ALPS GlidePoint Gerätes beeinträchtigt. Ab Version 2.2.6 erfolgt die Überprüfung der Synchronisation etwas besser und ist ein Standard im PS/2-Maustreiber. Es sollte sogar mit GlidePoint funktionieren. (Da der Code zur Überprüfung ein standard Merkmal geworden ist, gibt es die Option PSM_CHECKSYNC in diesen Versionen nicht mehr.) In seltenen Fällen kann es jedoch sein, daß der Treiber fälschlicherweise Synchronisationsprobleme meldet und Sie in den Kernelmeldungen folgendes sehen: psmintr: out of sync (xxxx != yyyy) und Ihre Maus nicht richtig zu funktionieren scheint. Falls das passiert, deaktivieren Sie den Code zur Überprüfung der Synchronisation, indem Sie die Treiberangaben für den PS/2-Maustreiber auf 0x100 setzen. Rufen Sie UserConfig durch Angabe der Option am Boot-Prompt auf: boot: -c Geben sie dann in der Kommandozeile von UserConfig folgendes ein: UserConfig> flags psm0 0x100 UserConfig> quit Meine PS/2-Maus von MouseSystems scheint nicht zu funktionieren. Es wurde berichtet, daß einige Modelle der PS/2-Mäuse von MouseSystems nur funktionieren, wenn sie im hochauflösenden Modus betrieben werden. Andernfalls springt der Mauszeiger sehr oft in - die linke obere Ecke des Bilschirms. + die linke obere Ecke des Bildschirms. Leider gibt es hierzu keine Abhilfe für die Versionen 2.0.X und 2.1.X. Verwenden Sie bei den Versionen 2.2 bis 2.2.5 den folgenden Patch für die Datei /sys/i386/isa/psm.c und erstellen Sie den Kernel neu. Lesen Sie den Abschnitt über die Erstellung eines Kernels, falls Sie keine Erfahrung mit der Erstellung eines Kernels haben. diff -u psm.c.orig psm.c @@ -766,6 +766,8 @@ if (verbose >= 2) log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n", unit, i); + set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH); + #if 0 set_mouse_scaling(sc->kbdc); /* 1:1 scaling */ set_mouse_mode(sc->kbdc); /* stream mode */ Spezifizieren Sie ab Version 2.2.6 das Flag 0x04 für den Maustreiber, um die Maus in den hochauflösenden Modus zu bringen. Rufen Sie UserConfig durch Angabe der Option am Boot-Prompt auf: boot: -c Geben sie dann in der Kommandozeile von UserConfig folgendes ein: UserConfig> flags psm0 0x04 UserConfig> quit Lesen Sie den vorigen Abschnitt über eine andere mögliche Ursache für Probleme mit der Maus. Wenn ich eine X-Applikation erstellen will, kann imake die Datei Imake.tmpl nicht finden. Wo befindet sie sich? Imake.tmpl ist Teil des Imake-Paketes, ein Standardwerkzeug zur Erstellung von X-Applikationen. Imake.tmpl ist ebenso, wie viele Header-Dateien, die zur Erstellung von X-Applikationen benötigt werden, in der Distribution xprog enthalten. Sie können Sie per sysinstall oder aber manuell mit den X Distributionsdateien installieren. Wie vertausche ich die Maustasten? Benutzen Sie den Befehl xmodmap -e "pointer = 3 2 1" in Ihrer .xinitrc oder .xsession. Wie installiere ich einen Splash-Screen und wo finde ich sie? Kurz vor der Herausgabe von FreeBSD 3.1 wurde ein neues Feature eingefügt, das die Anzeige von Splash-Screens während der Bootmeldungen erlaubt. Die Splash-Screens dürfen derzeit nur Bitmaps mit 256-Farben (*.BMP) oder ZSoft-PCX-Dateien *.PCX) sein. Damit sie mit normalen VGA-Karten dargestellt werden können, darf die Größe 320x200 Bildpunkte nicht überschreiten. Wenn Sie in ihrem Kernel die VESA-Unterstützung eingebunden haben, beträgt die maximale Größe 1024x768 Pixel. Beachten Sie, daß die VESA-Unterstützung die Kerneloption VM86 benötigt, um in den Kernel eingebunden werden zu können. Die derzeitige VESA-Unterstützung kann entweder direkt durch die Kernelkonfigurationsoption VESA in den Kernel eingebunden werden, oder durch das Laden des VESA-Moduls kld während des Bootens. Um eine Splash-Screen zu benutzen, müssen Sie die Startdateien, die den Bootprozeß von FreeBSD kontrollieren, modifizieren. Diese Dateien haben sich vor der Herausgabe von FreeBSD 3.2 geändert, so daß nun zwei Möglichkeiten zum Laden einer Splash-Screen existieren: FreeBSD 3.1 Der erste Schritt besteht darin, eine Bitmap-Version Ihrer Splash-Screen zu finden. Von Version 3.1 werden nur Windows-Bitmap Splash-Screens unterstützt. Wenn Sie die Splash-Screen Ihrer Wahl gefunden haben, kopieren Sie sie nach /boot/splash.bmp. Als nächstes benötigen Sie eine Datei /boot/loader.rc, die die folgenden Zeilen enthält: load kernel load -t splash_image_data /boot/splash.bmp load splash_bmp autoboot seit FreeBSD 3.2 Außer der zusätzlichen Unterstützung von PCX Splash-Screens bietet FreeBSD 3.2 eine einfachere Möglichkeit, den Bootprozeß zu konfigurieren. Wenn Sie möchten, können Sie auch die obige Methode für FreeBSD 3.1 benutzen. Falls Sie das tun und PCX verwenden möchten, dann ersetzen Sie splash_bmp durch splash_pcx. Falls Sie aber die neuere Bootkonfiguration benutzen möchten, müssen Sie eine Datei /boot/loader.rc erstellen, die die folgenden Zeilen enthält: include /boot/loader.4th start und eine Datei /boot/loader.conf, die die folgenden Zeilen enthält: splash_bmp_load="YES" bitmap_load="YES" Dies setzt voraus, daß Sie /boot/splash.bmp als Ihren Splash-Screen benutzen. Wenn Sie lieber eine PCX-Datei benutzen wollen, dann kopieren Sie sie nach /boot/splash.pcx, erstellen Sie eine Datei /boot/loader.rc, wie oben beschrieben und eine Datei /boot/loader.conf, die folgendes enthält: splash_pcx_load="YES" bitmap_load="YES" bitmap_name="/boot/splash.pcx" Alles, was Sie nun brauchen, ist ein Splash-Screen. Hierzu können Sie durch die Gallerie bei http://www.baldwin.cx/splash/ surfen. Kann ich die Windows(tm)-Tasten unter X nutzen? Ja, Sie müssen lediglich mit &man.xmodmap.1; festlegen, welche Aktion diese Tasten auslösen sollen. Unter der Annahme, daß alle Windows(tm) Tastaturen dem Standard entsprechen, lauten die Keycodes für die drei Tasten 115 - Windows(tm) Taste zwischen den Alt- und Strg-Tasten auf der linken Seite 116 - Windows(tm) Taste rechts von der Alt-Gr-Taste 117 - Menü-Taste, links von der rechten Strg-Taste Nach der folgenden Anweisung erzeugt die linke Windows(tm)-Taste ein Komma. &prompt.root; xmodmap -e "keycode 115 = comma" Sie werden Ihren Window Manager wahrscheinlich neu starten müssen, damit diese Einstellung wirksam wird. Um die neue Belegung der Windows(tm)-Tasten automatisch beim Start von X zu erhalten, könnten Sie entsprechende xmodmap Anweisungen in ihre ~/.xinitrc einfügen. Die bevorzugte Variante ist aber, eine Datei mit dem Namen ~/.xmodmaprc zu erzeugen, die nur die Parameter für den Aufruf von xmodmap enthält. Wenn Sie mehrere Tasten umdefinieren wollen, muß jede Definition in eine eigene Zeile gesetzt werden. Weiterhin müssen Sie in Ihrer ~/.xinitrc noch die folgende Zeile einfügen: xmodmap $HOME/.xmodmaprc Sie könnten die drei Tasten zum Beispiel mit den Funktionen F13, F14 und F15 belegen. Dadurch ist es sehr einfach, diese Tasten mit nützlichen Funktionen eines Programmes oder Desktops zu verknüpfen. Falls Sie das auch tun wollen, sollten in Ihrer ~/.xmodmaprc die folgenden Anweisungen stehen. keycode 115 = F13 keycode 116 = F14 keycode 117 = F15 Falls Sie zum Beispiel fvwm2 benutzen, können Sie ihn so einstellen, daß F13 das Fenster unter dem Mauszeiger minimiert bzw. maximiert. F14 holt das Fenster unter dem Mauszeiger in den Vordergrund bzw. ganz nach hinten, wenn es bereits im Vordergrund ist. F15 öffnet das Arbeitsplatz (Programme) Menü, auch wenn der Cursor nicht auf den Hintergrund zeigt. Dies ist extrem praktisch, wenn der gesamte Bildschirm von Fenster belegt wird; als kleiner - Bonus gibt es sogar einen Zusammenhang zwischem dem Symbol + Bonus gibt es sogar einen Zusammenhang zwischen dem Symbol auf der Taste und der durchgeführten Aktion. Dieses Verhalten kann man mit den folgenden Einträgen in der Datei ~/.fvwmrc erhalten: - -Key F13 FTIWS A Iconify -Key F14 FTIWS A RaiseLower -Key F15 A A Menu Workplace Nop - + +Key F13 FTIWS A Iconify +Key F14 FTIWS A RaiseLower +Key F15 A A Menu Workplace Nop + + + + + + + Wird 3D Hardware Beschleunigung für OpenGL + unterstützt? + + + + Dies hängt davon ab, welche Version von XFree86 + und welche Karte Sie verwenden. Wenn Sie eine Karte mit + NVIDIA-Chipsatz haben, sollten Sie einen Blick auf die + Webseite der FreeBSD NVIDIA Driver + Initiative werfen, auf der es um das Thema 3D + Hardware-Beschleunigung für NVIDIA-Chipsätze + unter XFree86-4 geht. Wenn Sie XFree86-4 und Karten wie + die Matrox G200/G400, ATI Rage 128/Radeon, oder 3dfx + Voodoo 3, 4, 5, und Banshee einsetzen, erhalten Sie + weitere Informationen auf der Webseite XFree86-4 + Direct Rendering on FreeBSD. Wenn Sie XFree86 in + der Version 3.3 einsetzen, erhalten Sie + eingeschränkte Unterstützung von die + Hardware-Beschleunigung bei OpenGL für die Matrox + Gx00, ATI Rage Pro, SiS 6326, i810, Savage, und Karten, + die auf älteren NVIDIA Chipsätzen beruhen, wenn + Sie den Port graphics/utah-glx + installieren. Netzwerke Woher kann ich Informationen über Diskless Booting bekommen? Diskless Booting bedeutet, daß die FreeBSD-Maschine über ein Netzwerk gebootet wird und die notwendigen Dateien von einem Server anstatt von der Festplatte liest. Vollständige Details finden Sie im Handbucheintrag über Diskless Booting Kann eine FreeBSD-Maschine als Netzwerkrouter genutzt werden? - Internetstandards und gute Ingenieurtechniken - verbieten uns, in FreeBSD standardmäßig eine - Paketweiterleitung zu aktivieren. Sie können dieses - Feature aber aktivieren, indem Sie in - /etc/rc.conf die folgende Variable - auf YES setzen: - - -gateway_enable=YES # Set to YES if this host will be a gateway - - - Diese Option setzt die - sysctl-Variable - net.inet.ip.forwarding auf - 1. - - In den meisten Fällen werden Sie auch einen - Routing-Dæmon laufen lassen müssen, um andere - Systeme in Ihrem Netzwerk über Ihren Router zu - informieren. FreeBSD enthält den standard - Routing-Daemon &man.routed.8;, für - komplexere Situationen möchten Sie evtl. - GaTeD ausprobieren - (erhältlich von http://www.gated.org/), - der FreeBSD vom Stand 3_5Alpha7 unterstützt. - - Wir müssen sie allerdings warnen, daß - FreeBSD selbst in dieser Konfiguration nicht alle - Internet-Standards für Router erfüllt. Für - normale Anwendungszwecke kommt es diesen Standard aber - ausreichend nahe. + Ja. Genaue Informationen zu diesem Thema finden Sie + im Kapitel Netzwerke + für Fortgeschrittene, im Abschnitt Router und + Gateways. Kann ich meine Win95-Maschine über FreeBSD ans Internet anbinden? Personen, die diese Frage stellen, haben typischerweise zwei PCs zu Hause: einen mit FreeBSD und einen mit Win95; die Idee ist, die FreeBSD-Maschine an das Internet anzubinden und dann in der Lage zu sein, von der Windows95-Maschine aus über die FreeBSD-Maschine auf das Internet zuzugreifen. Das ist tatsächlich nur ein Spezialfall der vorherigen Frage. - ... und die Antwort ist JA! Das user-mode ppp von - FreeBSD kennt die Option . Wenn Sie - ppp mit der Option + ... und die Antwort ist JA! Das user-mode &man.ppp.8; von + FreeBSD 3.1 kennt die Option . Wenn Sie + &man.ppp.8; mit der Option starten, in /etc/rc.conf die Variable gateway_enable auf YES setzen und ihre Windows-Maschine korrekt konfigurieren, sollte das hervorragend funktionieren. Ausführlichere Informationen zur Konfiguration finden Sie im Pedantic + url="http://www.de.FreeBSD.org/tutorials/ppp-primer/index.html">Pedantic PPP Primer von Steve Sims. Wenn Sie Kernel-Mode PPP verwenden oder ihre Verbindung zum Internet über Ethernet realisiert wurde, müssen Sie &man.natd.8; verwenden. Weitere Informationen dazu finden Sie im Abschnitt über natd. - - - Warum mißlingt die Neukompilierung des neuesten - BIND von ISC? - - - - Es existiert ein Konflikt zwischen der Datei - cdefs.h in der Distribution und der, - die mit FreeBSD ausgeliefert wird. Löschen Sie - compat/include/sys/cdefs.h - einfach. - - - Unterstützt FreeBSD SLIP und PPP? Ja. Lesen Sie die Manualpages &man.slattach.8;, &man.sliplogin.8;, &man.pppd.8; und &man.ppp.8;. &man.ppp.8; und &man.pppd.8; liefern Unterstützung sowohl für eingehende, als auch ausgehende Verbindungen. &man.sliplogin.8; behandelt ausschließlich eingehende Verbindungen und &man.slattach.8; behandelt ausschließlich ausgehende Verbindungen. Diese Programme werden im Abschnitt PPP und SLIP des Handbuchs beschrieben. Falls Sie nur durch einen Shell-Account Zugang zum Internet haben, sehen Sie sich einmal das - Package slirp an. Es kann + Package net/slirp an. Es kann Ihnen (eingeschränkten) Zugang zu Diensten wie ftp und http direkt von Ihrer lokalen Maschine aus ermöglichen. Unterstützt FreeBSD NAT oder Masquerading? Falls Sie ein lokales Subnetz (oder mehrere lokale Maschinen) besitzen, aber von Ihrem Internetprovider nur eine einzige (evtl. auch dynamisch zugeteilte) IP-Adresse zugewiesen bekommen haben, sehen Sie sich einmal das Programm &man.natd.8; an. &man.natd.8; ermöglicht es Ihnen, ein vollständiges Subnetz mit nur einer einzigen IP-Adresse an das Internet anzubinden. Das Programm &man.ppp.8; verfügt mit der eingebauten Option über eine ähnliche Funktionalität. In beiden Fällen wird die Alias-Bibliothek &man.libalias.3; verwendet. Wie verbinde ich zwei FreeBSD-Maschinen mit PLIP über die parallele Schnittstelle? - Besorgen Sie sich ein Laplink-Kabel. Stellen Sie - sicher, daß Sie einen Kernel mit - lpt-Treiberunterstützung haben. - - &prompt.root; dmesg | grep lp -lpt0 at 0x378-0x37f irq 7 on isa -lpt0: Interrupt-driven -lp0: TCP/IP capable interface - - Schließen Sie das Kabel an die parallelen - Schnittstellen an. - - Konfigurieren Sie die Netzwerkschnittstellenparameter - für lp0 auf beiden Seiten als - root. Falls Sie z.B. die Rechner max - und moritz miteinander verbinden wollen - - - max <-----> moritz -IP-Adresse 10.0.0.1 10.0.0.2 - - - Auf max geben Sie ein - - &prompt.root; ifconfig lp0 10.0.0.1 10.0.0.2 - - Auf moritz geben Sie ein - - &prompt.root; ifconfig lp0 10.0.0.2 10.0.0.1 - - Das ist alles! Lesen Sie bitte auch die Manuals - &man.lp.4; und &man.lpt.4;. - - Sie sollten die Rechner auch in die Datei - /etc/hosts eintragen - - - 127.0.0.1 localhost.my.domain localhost - 10.0.0.1 max.my.domain max - 10.0.0.2 moritz.my.domain moritz - - - So überprüfen, Sie, ob es - funktioniert: - - auf max: - - &prompt.root; ifconfig lp0 -lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 -&prompt.root; netstat -r -Routing tables - -Internet: -Destination Gateway Flags Refs Use Netif Expire -moritz max UH 4 127592 lp0 -&prompt.root; ping -c 4 moritz -PING moritz (10.0.0.2): 56 data bytes -64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms -64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms -64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms -64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms - ---- moritz ping statistics --- -4 packets transmitted, 4 packets received, 0% packet loss -round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms + Dieses Thema wird im Handbuch-Kapitel PLIP + behandelt. Wieso kann ich das Gerät /dev/ed0 nicht erstellen? - Bei Berkley-basierten Netzwerkimplementationen kann - nur vom Kernel-Code aus direkt auf Netzwerkkarten - zugegriffen werden. Zur weiteren Information lesen Sie - bitte die Datei /etc/rc.network und - die Manualpages zu den unterschiedlichen - Netzwerkprogrammen, die dort erwähnt werden. Falls - Sie danach total verwirrt sind, sollten Sie sich ein Buch - besorgen, das die Netzwerkadministration auf einem anderen + Weil das nicht notwendig ist. Bei Berkeley-basierten + Netzwerkimplementationen kann nur vom Kernel-Code aus + direkt auf Netzwerkkarten zugegriffen werden. Zur + weiteren Information lesen Sie bitte die Datei + /etc/rc.network und die Manualpages + zu den unterschiedlichen Netzwerkprogrammen, die dort + erwähnt werden. Falls Sie danach total verwirrt + sind, sollten Sie sich ein Buch besorgen, das die + Netzwerkadministration auf einem anderen BSD-ähnlichen Betriebssystem beschreibt; mit wenigen signifikanten Ausnahmen gleicht die Netzwerkadministration auf FreeBSD im Grunde der auf SunOS 4.0 oder Ultrix. Wie kann ich Ethernet-Aliase einrichten? - Benutzen Sie netmask 0xffffffff in - Ihrer ifconfig-Befehlszeile, wie - z.B.: + Wenn sich die zweite Adresse im gleichen Subnetz + befindet wie eine der Adressen, die bereits auf dem + Interface konfiguriert sind, benutzen Sie netmask + 0xffffffff in Ihrer &man.ifconfig.8; + Befehlszeile, wie z.B.: &prompt.root; ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff + + Andernfalls geben sie die Adresse und die Netzmaske so + an, wie sie es bei einem normalen Interface auch tun + würden: + + &prompt.root; ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00 Wie bringe ich meine 3C503 dazu, den anderen Anschluß zu benutzen? Wenn Sie die anderen Anschlüsse benutzen möchten, müssen Sie einen zusätzlichen Parameter in der &man.ifconfig.8;-Befehlszeile spezifizieren. Der Standard-Anschluß ist link0. Um den AUI-Anschluß anstelle des BNC-Anschlusses zu verwenden, benutzen Sie link2. Diese Angaben sollten durch Benutzung der Variablen ifconfig_* in der Datei /etc/rc.conf spezifiziert werden. Warum habe ich Probleme mit NFS und FreeBSD? Gewisse PC-Netzwerkkarten sind (um es gelinde auszudrücken) besser als andere und können manchmal Probleme mit netzwerkintensiven Anwendungen wie NFS verursachen. Weitere Informationen zu diesem Thema finden Sie im Handbucheintrag zu NFS. Warum kann ich per NFS nicht von einer Linux-Maschine mounten? Einige Versionen des NFS-Codes von Linux akzeptieren Mount-Requests nur von einem privilegierten Port. Versuchen Sie &prompt.root; mount -o -P linuxbox:/blah /mnt Warum kann ich per NFS nicht von einer Sun-Maschine mounten? Sun Workstations mit SunOS 4.X akzeptieren Mount-Requests nur von einem privilegierten Port. Versuchen Sie &prompt.root; mount -o -P sunbox:/blah /mnt Warum meldet mir mountd auf meinem FreeBSD NFS-Server ständig can't change attributes und bad exports list? Die häufigste Ursache für dieses Problem - ist, daß Sie die folgende Passage aus - &man.exports.5; nicht oder nicht richtig verstanden - haben: - -
- Jede Zeile in dieser Datei (außer den mit - einem # beginnenden Kommentarzeilen) definiert den Mount - Point und die Einstellungen für den Export - innerhalb eines Dateisystems auf dem Server, für - einen oder mehrere andere Rechner (Anmerkung des - Übersetzers: Clients). Jeder Rechner darf für - jedes lokale Dateisystem nur ein mal erwähnt werden - und es darf für jedes Dateisystem des Servers nur - einen Defaulteintrag geben, der dann für alle - anderen Rechner gilt. -
- - Um dies zu verdeutlichen, folgt ein Beispiel eines - typischen Fehlers. Wenn alles oberhalb von - /usr Teil eines einzigen Dateisystems - ist (es also keine Mounts oberhalb von - /usr gibt), ist die folgende Datei - nicht korrekt: - - -/usr/src client -/usr/ports client - - - Es gibt zwei Zeilen, die Einstellungen für das - gleiche Dateisystem (/usr) und den - gleichen Host (client) definieren. Die - richtige Variante wäre: - - -/usr/src /usr/ports client - - - Um die zitiere Passage anders auszudrücken: Die - Einstellungen für den Export eines Filesystems an - einen anderen Host (globale Exporte werden wie ein anderer - Host behandelt) müssen alle in einer Zeile erfolgen. - Ja, das schränkt ihre Möglichkeiten für den - Export von Dateisystemen ein, wenn Sie keine - häßlichen Krücken einbauen wollen. - Für die meisten Benutzer ist dies allerdings kein - Problem. - - Es folgt ein Beispiel einer legalen Export-Datei; - dabei sind /usr und - /exports lokale Dateisysteme: - - -# Export src and ports to client01 and client02, but only -# client01 has root privileges on it -/usr/src /usr/ports -maproot=0 client01 -/usr/src /usr/ports client02 -# The "client" machines have root and can mount anywhere -# up /exports. The world can mount /exports/obj read-only -/exports -alldirs -maproot=0 client01 client02 -/exports/obj -ro - + ist, daß Sie den Aufbau der &man.exports.5; nicht + oder nicht richtig verstanden haben. Überprüfen + Sie Ihre &man.exports.5; und lesen das Kapitel NFS im Handbuch, + speziell den Abschnitt Konfiguration.
Warum habe ich Probleme, per PPP mit NeXTStep-Maschinen zu kommunizieren? Versuchen Sie, die TCP-Erweiterung in /etc/rc.conf zu deaktivieren, indem Sie die folgende Variable auf NO setzen: tcp_extensions=NO Xylogic's Annex-Maschinen arbeiten hier auch fehlerhaft und Sie müssen die obige Änderung benutzen, um über Sie Verbindungen herzustellen. Wie aktiviere ich die Unterstützung für IP-Multicast? Multicast-Host-Funktionen werden seit FreeBSD 2.0 standardmäßig voll unterstützt. Wenn Sie Ihre Maschine als Multicast-Router betreiben wollen, müssen Sie Ihren Kernel mit der Option MROUTING rekompilieren und &man.mrouted.8; starten. Seit Version 2.2 startet FreeBSD &man.mrouted.8; beim Booten, wenn die Variable mrouted_enable in der Datei /etc/rc.conf auf "YES" gesetzt ist. MBONE-Tools sind in ihrer eigenen Ports-Kategorie - mbone verfügbar. Schauen Sie dort nach, wenn Sie die + mbone + verfügbar. Schauen Sie dort nach, wenn Sie die Konferenztools vic und vat suchen! - - Weitere Informationen finden Sie im Mbone Information - Web. Welche Netzwerkkarten basieren auf dem DEC-PCI-Chipsatz? Hier ist eine von Glen Foster gfoster@driver.nsta.org zusammengetragene Liste mit einigen aktuellen Ergänzungen: - Network cards based on the DEC PCI chipset + Netzwerkkarten mit DEC-PCI-Chipsatz Vendor Model ASUS PCI-L101-TB Accton ENI1203 Cogent EM960PCI Compex ENET32-PCI D-Link DE-530 Dayna DP1203, DP2100 DEC DE435, DE450 Danpex EN-9400P3 JCIS Condor JC1260 Linksys EtherPCI Mylex LNP101 SMC EtherPower 10/100 (Modell 9332) SMC EtherPower (Model 8432) TopWare TE-3500P Znyx (2.2.x) ZX312, ZX314, ZX342, ZX345, ZX346, ZX348 Znyx (3.x) ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd)
Warum muß ich für Hosts auf meiner Site den FQDN benutzen? Sie werden wahrscheinlich feststellen, daß der Host sich tatsächlich in einer anderen Domäne - befindet; wenn Sie sich zum Beispiel in foo.bar.edu + befindet; wenn Sie sich zum Beispiel in foo.example.org befinden und einen Host namens mumble in - der Domäne bar.edu - erreichen wollen, werden Sie den fully-qualified - Domainnamen mumble.bar.edu, - anstatt nur mumble benutzen - müssen. + der Domäne example.org erreichen wollen, + werden Sie den fully-qualified Domainnamen mumble.example.org, anstatt nur + mumble benutzen müssen. Traditionell war dies bei BSD-BIND-Resolvern erlaubt. Die aktuelle Version von bind, die mit FreeBSD ausgeliefert wird, ermöglicht jedoch nicht mehr die standardmäßige Abkürzung von nicht-fully-qualified Domainnamen für andere als ihre eigene Domäne. Ein nicht-qualifizierter Host mumble muß also entweder als - mumble.foo.bar.edu gefunden + mumble.foo.example.org gefunden werden, oder er wird in der Hauptdomäne gesucht. Dies unterscheidet sich vom vorherigen Verhalten, wo die Suche über mumble.bar.edu und mumble.example.org und mumble.edu fortgesetzt wurde. Werfen Sie einen Blick in RFC 1535, um zu erfahren, warum dies als schlechter Stil oder sogar als eine Sicherheitslücke betrachtet wurde. Als Abhilfe können Sie die Zeile - -search foo.bar.edu bar.edu - + search foo.example.org example.org anstelle der vorherigen - -domain foo.bar.edu - + domain foo.example.org in Ihre Datei /etc/resolv.conf einfügen. Stellen Sie jedoch sicher, daß die Suchreihenfolge nicht über die Grenze zwischen lokaler und öffentlicher Administration, wie RFC 1535 sie nennt, hinausreicht. Wieso erhalte ich bei allen Netzwerkoperationen die Meldung Permission denied? Dieses Problem kann auftreten, wenn Sie einen Kernel mit der Option IPFIREWALL erstellt haben. Während der Entwicklung von FreeBSD 2.1.7 wurde die Semantik dieser Option geändert: Seit dieser Version ist alles verboten, was nicht explizit erlaubt ist. Falls sie Ihr System unbeabsichtigt als Firewall - fehlkonfiguriert haben, können Sie die + konfiguriert haben, können Sie die Netzwerkfunktionalität wiederherstellen, indem Sie als root folgendes eingeben: &prompt.root; ipfw add 65534 allow all from any to any Sie können in /etc/rc.conf auch firewall_type="open" setzen. Weitere Informationen über die Konfiguration einer FreeBSD-Firewall finden Sie im Handbuch-Abschnitt. Wieviele Einbußen zieht IPFW nach sich? - Die Antwort auf diese Frage hängt - hauptsächlich von Ihrem Rule-Set und der - Prozessorgeschwindigkeit ab. Für die meisten - Anwendungen, die mit Ethernet und kleinen Rule-Sets - arbeiten, ist die Antwort: unbedeutend. Diejenigen, die - tatsächliche Messungen zur Befriedigung ihrer - Neugierde brauchen, sollten weiterlesen. - - Die folgenden Messungen wurden mit 2.2.5-STABLE auf - einem 486-66 durchgeführt. IPFW wurde modifiziert, - um die Zeit zu messen, die in der Routine - ip_fw_chk verbracht wurde. Das - Ergebnis wurde nach jeweils 1000 Paketen auf der Konsole - ausgegeben. - - Getestet wurden zwei Regelsätze mit jeweils 1000 - Regeln. Der erste Satz wurde zur Demonstration eines - Szenarios im schlimmsten Fall zusammengestellt, indem die - folgende Regel wiederholt wurde: - - &prompt.root; ipfw add deny tcp from any to any 55555 - - Dies demonstriert den schlimmsten Fall, indem - dafür gesorgt wird, daß die meisten von IPFW's - Paketüberprüfungsroutinen ausgeführt - werden, bevor letztlich entschieden wird, daß die - Regel für das Paket nicht zutrifft (wegen der - virtuellen Portnummer). Auf die 999. Iteration dieser - Regel folgte ein allow ip from any to - any. - - Der zweite Regelsatz wurde so zusammengestellt, - daß die Überprüfung der Regeln schnell - abbricht: - - &prompt.root; ipfw add deny ip from 1.2.3.4 to 1.2.3.4 - - Die nichtzutreffende IP-Adresse für die obige - Regel sorgt dafür, daß diese Regeln sehr - schnell übersprungen werden. Wie zuvor war die 1000. - Regel ein allow ip from any to - any. - - Der Verarbeitungsmehraufwand pro Paket im ersten Fall - war ungefähr 2,703 ms/Paket, oder grob 2,7 - Mikrosekunden pro Regel. Das theoretische Limit für - die Verarbeitung von Paketen liegt also etwa bei 370 - Paketen pro Sekunde. Bei einem 10Mbps Ethernet und einer - Paketgröße von ~1500 Byte könnte man nur - eine 55,5% ige Ausnutzung der Bandbreite - erreichen. - - Im letzteren Fall wurde jedes Paket in ungefähr - 1,172 ms verarbeitet, oder grob 1,2 Mikrosekunden pro - Regel. Das theoretische Limit für die Verarbeitung - von Paketen läge hier bei etwa 853 Paketen pro - Sekunde, was ein 10Mbps Ethernet auslasten - könnte. - - Die übermäßige Anzahl der getesteten - Regeln und die Beschaffenheit dieser Regeln liefern kein - realistisches Szenario -- sie wurden lediglich benutzt, um - die hier vorgestellten Meßergebnisse zu generieren. - Hier sind einige Dinge, die bei der Erstellung eines - effizienten Regelsatzes beachtet werden sollten: - - - - Setzen Sie frühzeitig eine - established-Regel, um den - Großteil des TCP-Verkehrs abzufangen. Setzen - Sie keine allow tcp-Anweisungen vor - diese Regel. - - - - Plazieren Sie häufig angestoßene Regeln - im Regelsatz vor solche, die weniger häufig - benutzt werden (natürlich, ohne die - Toleranz der Firewall zu verändern). - Sie können herausfinden, welche Regeln am - häufigsten benutzt werden, indem Sie die - Paketstatistik mit ipfw -a l - untersuchen. - - + Diese Frage wird im Handbuch-Kapitel Firewalls im + Abschnitt IPFW + Overhead und Optimierung ausführlich + behandelt. Warum kann ich bei &man.ipfw.8; einen Dienst nicht mit fwd auf eine andere Maschine umlenken? Der wahrscheinlichste Grund ist, daß Sie Network Address Translation (NAT) brauchen und nicht die einfache Weiterleitung von Pakete. Die fwd Anweisung macht genau das, was da steht: Sie leitet Pakete weiter; die Daten in den Paketen werden aber nicht verändert. Ein Beispiel: 01000 fwd 10.0.0.1 from any to foo 21 Wenn ein Paket mit dem Ziel foo die Maschine mit dieser Regel erreicht, wird das Paket an 10.0.0.1 weitergeleitet; die Zieladresse im Paket lautet aber immer noch foo! Die Zieladresse wird nicht in 10.0.0.1 geändert. Die meisten Rechner werden allerdings Pakete verwerfen, wenn die Zieladresse des Paketes nicht mit der Adresse des Rechners übereinstimmt. Das ist der Grund, warum eine fwd Regel oft nicht den Effekt hat, den der Benutzer wollte. Dieses Verhalten ist aber kein Fehler, sondern erwünscht. Wenn Sie einen Dienst auf eine andere Maschine umleiten wollen, sollten Sie sich den FAQ-Eintrag über die Umleitung von Diensten oder die Online-Hilfe zu &man.natd.8; durchlesen. Auch in der Ports Sammlung sind diverse Hilfsprogramme für diesen Zweck enthalten. Wie kann ich Service-Requests von einer Maschine auf eine andere umleiten? Sie können FTP-Requests (und andere Dienste) mit dem Package socket umleiten, das im Ports-Tree in der Kategorie sysutils verfügbar ist. Ersetzen sie die Befehlszeile für den Dienst einfach so, daß stattdessen socket aufgerufen wird, zum Beispiel so: -ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp +ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp - wobei ftp.foo.com und + wobei ftp.example.com und ftp entsprechend der Host und der Port sind, wohin umgeleitet werden soll. Woher kann ich ein Bandbreiten-Managementtool bekommen? Für FreeBSD gibt es drei Bandbreiten-Managementtools. &man.dummynet.4; ist in FreeBSD (um genau zu sein, in &man.ipfw.4;) integriert. ALTQ gibt es umsonst; Bandwidth Manager von Emerging Technologies ist ein kommerzielles Produkt. - - - BIND (named) wartet sowohl auf Port - 53 als auch auf einem hohen Port auf Anfragen. Ist meine - Maschine gehackt worden? - - - - Wahrscheinlich nicht. FreeBSD benutzt seit Version - 3.0 eine Version von BIND, die einen Port mit einer hohen, - zufälligen Nummer für den Versand von Anfragen - nutzt. Wenn Sie Port 53 für abgehende Anfragen - nutzen wollen, um durch eine Firewall zu kommen oder sich - einfach nur besser zu fühlen, können die - folgenden Zeilen in - /etc/namedb/named.conf - eintragen. - - options { - query-source address * port * 53; -}; - - Wenn Sie möchten, können Sie statt - * auch eine einzelne IP-Adresse - eintragen, um die Dinge noch weiter - einzuschränken. - - Ach übrigens, herzlichen Glückwunsch. Es - ist eine sehr gute Angewohnheit, die Ausgaben von - &man.sockstat.1; durchzusehen und auf merkwürdige - Dinge zu achten. - - - - Warum erhalte ich /dev/bpf0: device not - configured? + Warum erhalte ich die Meldung /dev/bpf0: + device not configured? Der Berkeley-Paket-Filter (&man.bpf.4;) muß in den Kernel eingebunden werden, bevor er von einem Programme aus genutzt werden kann. Fügen Sie folgendes zu Ihrer Kernelkonfigurationsdatei hinzu und erstellen Sie einen neuen Kernel: - -pseudo-device bpf # Berkeley Packet Filter - + pseudo-device bpf # Berkeley Packet Filter - Zweitens müssen Sie nach dem Rebooten den Device - Node erstellen. Führen Sie dazu die folgenden - Befehle aus: + Nach dem Neustart müssen Sie den Device Node + erstellen. Wechseln Sie dazu in das Verzeichnis + /dev und führen Sie den folgenden + Befehl aus: - &prompt.root; cd /dev -&prompt.root; sh MAKEDEV bpf0 + &prompt.root; sh MAKEDEV bpf0 Weitere Informationen zur Erstellung von Geräten finden Sie im Handbucheintrag über Device Nodes. Habe ich, analog zum smbmount von Linux, eine Möglichkeit, auf ein freigegebenes Laufwerk einer Windows-Maschine in meinem Netzwerk zuzugreifen. - Benutzen Sie das Package sharity - light aus der Ports-Sammlung. - + Benutzen Sie die Kernel-Erweiterungen und + Benutzerprogramme aus dem Programmpaket + SMBFS. Das Paket und + weitergehende Informationen sind unter + net/smbfs in den Ports verfügbar; ab der + Version 4.5 ist SMBFS + Bestandteil des Basissystems. Was bedeutet die Meldung icmp-response bandwidth limit 300/200 pps in meinen Logfiles? Mit dieser Meldung teilt Ihnen der Kernel mit, daß irgend jemand versucht, ihn zur Generierung von zu vielen ICMP oder TCP reset (RST) Antworten zu provozieren. ICMP Antworten sind oft das Ergebnis von - Verbindungsversuchen zu unbenutzen UDP ports. TCP resets + Verbindungsversuchen zu unbenutzten UDP Ports. TCP Resets werden generiert, wenn jemand versucht, eine Verbindung zu einem ungenutzten TCP Port aufzubauen. Die Meldungen können unter anderem durch die folgenden Ereignisse ausgelöst werden: Denial of Service (DoS) Angriffe mit der Brechstange (und nicht durch Angriffe mit einzelnen Paketen, die gezielt eine Schwachstelle des Systems ausnutzen sollen). Port Scans, bei denen versucht wird, Verbindungen zu einer großen Anzahl von Ports (und nicht nur einigen bekannten Ports) herzustellen. Die erste Zahl gibt an, wieviele Pakete vom Kernel ohne das Limit versendet worden wären; die zweite Zahl gibt das Limit an. Sie können das Limit mit Hilfe der sysctl-Variable net.inet.icmp.icmplim einstellen. Im - Beispiel wird das Limit auf 300 Packete + Beispiel wird das Limit auf 300 Pakete pro Sekunde gesetzt: &prompt.root; sysctl -w net.inet.icmp.icmplim=300 Wenn Sie zwar die Begrenzung nutzen möchten, aber die Meldungen nicht in Ihren Logfiles sehen möchten, können Sie die Meldungen mit der sysctl-Variable net.inet.icmp.icmplim_output abschalten: &prompt.root; sysctl -w net.inet.icmp.icmplim_output=0 Falls Sie die Begrenzung ganz abschalten wollen, können Sie die Sysctl-Variable net.inet.icmp.icmplim auf 0. Wir raten Ihnen aus den oben genannten Gründen dringend von diesem Schritt ab. + + + + Was bedeutet die Meldung arp: unknown + hardware address format? + + + + Ein Gerät im lokalen Ethernet verwendet eine + MAC-Adresse in einem Format, das FreeBSD nicht kennt. Der + wahrscheinlichste Grund ist, daß jemand Experimente + mit einer Ethernet-Karte anstellt. Die Meldung tritt sehr + häufig in Netzwerken mit Cable Modems auf. Die + Meldung ist harmlos und sollte die Performance Ihres + Systems nicht negativ beeinflussen. + + +
+
+ + + Sicherheit + + + + + Wieso wartet BIND (named) sowohl auf Port + 53 als auch auf einem hohen Port auf Anfragen? + + + + FreeBSD benutzt seit Version 3.0 eine Version von + BIND, die einen Port mit einer hohen, zufälligen + Nummer für den Versand von Anfragen nutzt. Wenn Sie + Port 53 für abgehende Anfragen nutzen wollen, um + durch eine Firewall zu kommen oder sich einfach nur besser + zu fühlen, können die folgenden Zeilen in + /etc/namedb/named.conf + eintragen. + + options { + query-source address * port * 53; +}; + + Wenn Sie möchten, können Sie statt + * auch eine einzelne IP-Adresse + eintragen, um die Dinge noch weiter + einzuschränken. + + Ach übrigens, herzlichen Glückwunsch. Es + ist eine sehr gute Angewohnheit, die Ausgaben von + &man.sockstat.1; durchzusehen und auf merkwürdige + Dinge zu achten. + + + + + + Wieso wartet Sendmail neuerdings sowohl auf Port 587 + als auch auf dem Standard-Port 25 auf Anfragen? + + + + Aktuelle Sendmail-Versionen unterstützen eine + neue Technik zur Einlieferung von Mails, die Port 587 + nutzt. Diese Technik wird zwar noch nicht oft angewendet, + erfreut sich aber ständig steigenden + Popularität, + + + + + + Woher kommt dieser Benutzer toor + mit UID 0? Ist mein System gehackt worden? + + + + Keine Panik. toor ist ein + alternativer Account für den + Super-User (wenn man root rückwärts schreibt, + erhält man toor). Früher wurde er nur erzeugt, + wenn die Shell &man.bash.1; installiert wurde, heute wird + er auf jeden Fall erzeugt. Dieser Account ist für + die Verwendung mit einer alternativen Shell vorgesehen; + damit ist es nicht mehr erforderlich, die Shell von + root zu ändern. Dies ist + wichtig, wenn eine Shell verwendet wird, die nicht zum + Lieferumfang von FreeBSD gehört, zum Beispiel aus + einem Port oder einem Package. Diese Shells werden in der + Regel in /usr/local/bin installiert + und dieses Verzeichnis liegt standardmäßig auf + einem anderem Filesystem. Wenn die Shell von + root in + /usr/local/bin liegt und + /usr (oder das Filesystem, auf dem + /usr/local/bin liegt) nicht gemountet + werden kann, kann sich root nicht + mehr einloggen, um das Problem zu beheben. Es ist + allerdings möglich, das System zu rebooten und das + Problem im Single-User Modus zu lösen, da man hier + gefragt wird, welche Shell benutzt werden soll. + + Einige Anwender benutzen toor mit + einer alternativen Shell für die tägliche Arbeit + und nutzen root (mit der + Standard-Shell) für den Single-User Modus und + für Notfälle. Standardmäßig kann man + sich nicht als toor anmelden, da der + Account kein gültiges Paßwort hat; Sie + müssen sich also als root + anmelden und ein Paßwort für + toor setzen, wenn Sie diesen Account + benutzen wollen. + + + + + + Warum funktioniert suidperl nicht + richtig? + + + + Aus Sicherheitsgründen wird suidperl + standardmäßig ohne das SUID-Bit installiert. + Der Systemadministrator kann das normale Verhalten mit dem + folgenden Befehl herstellen: + + &prompt.root; chmod u+s /usr/bin/suidperl + + Wenn Sie wollen, daß suidperl + auch beim Update via Sourcecode das SUID-Bit erhält, + müssen Sie in /etc/make.conf die + Zeile ENABLE_SUIDPERL=true + einfügen, bevor Sie make + buildworld starten. + + PPP Ich bekomme &man.ppp.8; nicht zum Laufen. Was mache ich falsch? Sie sollten zuerst &man.ppp.8; (die Manualpage zu ppp) und den Abschnitt zu - ppp im Handbuch lesen. Aktivieren Sie das Logging + PPP im Handbuch lesen. Aktivieren Sie das Logging mit folgendem Befehl: set log Phase Chat Connect Carrier lcp ipcp ccp command Dieser Befehl kann an der Eingabeaufforderung von - ppp eingegeben oder in die - Konfigurationsdatei /etc/ppp/ppp.conf - eingetragen werden (der beste Ort hierfür ist der - Anfang des Abschnitts default. Stellen - Sie sicher, daß die Datei - /etc/syslog.conf die folgenden Zeilen - enthält: + &man.ppp.8; eingegeben oder in die Konfigurationsdatei + /etc/ppp/ppp.conf eingetragen werden + (der beste Ort hierfür ist der Anfang des Abschnitts + default. Stellen Sie sicher, daß + die Datei /etc/syslog.conf die + folgenden Zeilen enthält: !ppp *.* /var/log/ppp.log und, daß die Datei /var/log/ppp.log existiert. Sie können nun über die Logfiles eine Menge darüber herausfinden, was geschieht. Es macht nichts, wenn die Einträge in den Logfiles Ihnen gar nichts sagen. Wenn Sie jemandem um Hilfe bitten müssen, könnten sie für ihn von Nutzen sein. - Falls Ihre ppp-Version den set log - Befehl nicht versteht, sollten Sie sich die neueste + Falls Ihre Version von &man.ppp.8; den set + log Befehl nicht versteht, sollten Sie sich die + neueste Version herunterladen. Sie kann auf Freebsd-Version 2.1.5 und höher erstellt werden. Warum hängt sich ppp auf, wenn ich es benutze? Das liegt meistens daran, daß Ihr Rechnername nicht aufgelöst werden kann. Um dieses Problem zu lösen, müssen Sie sicherstellen, daß die Datei /etc/hosts von Ihrem Resolver zuerst genutzt wird. Dazu muß in der Datei /etc/host.conf der Eintrag hosts an die erste Stelle gesetzt werden. Erstellen Sie dann einfach für Ihren lokalen Rechner einen Eintrag in der Datei /etc/hosts. Falls Sie kein lokales Netzwerk besitzen, ändern Sie die localhost-Zeile: 127.0.0.1 foo.bar.com foo localhost Andernfalls fügen Sie einfach einen weiteren - Eintrag für Ihren lokalen Recher hinzu. Weitere + Eintrag für Ihren lokalen Rechner hinzu. Weitere Details finden Sie in den betreffenden Manualpages. Wenn Sie fertig sind sollten Sie ping -c1 `hostname` erfolgreich ausführen können. Warum wählt &man.ppp.8; im -auto-Modus nicht? Überprüfen Sie zunächst, ob Sie einen Standard-Gateway eingestellt haben. Wenn Sie netstat -rn ausführen, sollten Sie zwei Einträge ähnlich den folgenden sehen: Destination Gateway Flags Refs Use Netif Expire default 10.0.0.2 UGSc 0 0 tun0 10.0.0.2 10.0.0.1 UH 0 0 tun0 Hier wird angenommen, daß Sie die Adressen aus dem Handbuch, der Manualpage oder aus der Datei ppp.conf.sample benutzt haben. Falls Sie keine Standardroute haben, kann es daran liegen, daß Sie - eine alte Version von ppp - benutzen, die das Wort HISADDR in der - Datei ppp.conf nicht versteht. Falls Ihre - ppp-Version älter als + eine alte Version von &man.ppp.8; benutzen, die das Wort + HISADDR in der Datei ppp.conf nicht + versteht. Falls Ihre &man.ppp.8;-Version älter als 2.2.5 ist, ändern Sie die Zeile add 0 0 HISADDR in add 0 0 10.0.0.2 Ein weiterer Grund dafür, daß die Zeile für die Standardroute fehlt, könnte der sein, daß Sie fälschlicherweise eine Standardroute in der Datei /etc/rc.conf (diese Datei hieß vor Version 2.2.2 /etc/sysconfig) eingetragen und die folgende Zeile in ppp.conf ausgelassen haben: delete ALL Lesen Sie in diesem Fall den Abschnitt Abschließende Systemkonfiguration des Handbuchs. Was bedeutet No route to host? Dieser Fehler beruht für gewöhnlich auf einem fehlenden Abschnitt MYADDR: delete ALL add 0 0 HISADDR in Ihrer Datei /etc/ppp/ppp.linkup. Er ist nur notwendig, wenn Sie eine dynamische IP-Adresse besitzen oder die Adresse Ihres Gateways nicht kennen. Wenn Sie den interaktiven Modus benutzen, können Sie folgendes eingeben, nachdem Sie in den packet mode gelangt sind (den Paket Modus erkennen Sie an PPP im Prompt): delete ALL add 0 0 HISADDR Weitere Details finden Sie im Abschnitt PPP und Dynamische IP-Adressen des Handbuchs. Wieso werden meine Verbindungen nach ca. drei Minuten beendet? - Der Standardtimeout für ppp beträgt drei - Minuten. Er kann durch die Zeile + Der Standardtimeout für &man.ppp.8; beträgt + drei Minuten. Er kann durch die Zeile set timeout NNN eingestellt werden, wobei NNN die Inaktivität in Sekunden, bevor die Verbindung geschlossen wird, angibt. Falls NNN Null ist, wird die Verbindung niemals aufgrund eines Timeouts geschlossen. Es ist möglich, diesen Befehl in die Datei ppp.conf einzubinden, oder ihn an der Eingabeaufforderung im interaktiven Modus einzugeben. Durch eine Verbindung zum Server-Socket von ppp über &man.telnet.1; oder &man.pppctl.8; ist es auch möglich, den Timeout bei aktiver Verbindung anzupassen. Weitere Details finden Sie in der Manualpage &man.ppp.8;. Wieso bricht meine Verbindung bei hoher Auslastung ab? Falls Sie Link-Quality-Reporting (LQR) konfiguriert haben, ist es möglich, daß zu viele LQR-Pakete zwischen Ihrer Maschine und dem verbundenen Rechner verloren gehen. ppp folgert daraus, daß die Verbindung nicht in Ordnung ist und schließt sie. Vor FreeBSD Version 2.2.5 war LQR standardmäßig aktiviert; nun ist es standardmäßig deaktiviert. Es kann durch folgende Zeile deaktiviert werden: disable lqr Warum brechen meine Verbindungen nach unbestimmter Zeit zusammen? Wenn die Qualität Ihrer Telefonleitung zu schlecht oder bei Ihrem Anschluß die Option (Telekomdeutsch: das Leistungsmerkmal) Anklopfen aktiviert ist, kann es manchmal vorkommen, daß Ihr Modem auflegt, weil es (fälschlicherweise) annimmt, daß es das Trägersignal verloren hat. Bei den meisten Modems gibt es eine Einstellmöglichkeit, um anzugeben, wie tolerant es gegenüber vorübergehenden Verlusten des Trägersignals sein soll. Bei einem USR Sportster wird dies zum Beispiel im Register S10 in Zehntelsekunden angegeben. Um Ihr Modem toleranter zu machen, können Sie zu Ihrem Wählbefehl die folgende Sende-Empfangs-Sequenz hinzufügen: set dial "...... ATS10=10 OK ......" Weitere Information sollten Sie dem Handbuch Ihres Modems entnehmen können. Warum hängen meine Verbindung nach einer unbestimmten Zeit? Viele Leute machen Erfahrungen mit hängenden Verbindungen ohne erkennbaren Grund. Als erstes muß festgestellt werden, welche Seite der Verbindung hängt. Wenn Sie ein externes Modem benutzen, können Sie - einfach versuchen, &man.ping.8; zu benutzen, um - zu sehen, ob die TD-Anzeige - aufleuchtet, wenn Sie Daten übertragen. Falls sie - aufleuchtet (und die RD-Anzeige nicht), - liegt das Problem am anderen Ende. Falls - TD nicht aufleuchtet, handelt es sich - um ein lokales Problem. Bei einem internen Modem - müssen Sie den Befehl set server - in Ihrer Datei ppp.conf benutzen. - Stellen Sie über pppctl eine Verbindung zu ppp her, - wenn die Verbindung hängt. Falls Ihre + einfach versuchen, &man.ping.8; zu benutzen, um zu sehen, + ob die TD-Anzeige aufleuchtet, wenn Sie + Daten übertragen. Falls sie aufleuchtet (und die + RD-Anzeige nicht), liegt das Problem am + anderen Ende. Falls TD nicht + aufleuchtet, handelt es sich um ein lokales Problem. Bei + einem internen Modem müssen Sie den Befehl + set server in Ihrer Datei + ppp.conf benutzen. Stellen Sie + über &man.pppctl.8; eine Verbindung zu &man.ppp.8; + her, wenn die Verbindung hängt. Falls Ihre Netzwerkverbindung plötzlich wieder funktioniert (ppp wurde durch die Aktivität auf dem Diagnose-Socket wiederbelebt) oder Sie keine Verbindung bekommen (vorausgesetzt, der Befehl set socket wurde beim Start erfolgreich ausgeführt), handelt es sich um ein lokales Problem. Falls Sie eine Verbindung bekommen und die externe Verbindung weiterhin hängt, aktivieren Sie lokales asynchrones Logging mit set log local async und benutzen Sie - &man.ping.8; von einem anderen Fenster oder - Bildschirm aus, um die externe Verbindung zu benutzen. - Das asynchrone Logging zeigt Ihnen, welche Daten über - die Verbindung gesendet und empfangen werden. Falls Daten + &man.ping.8; von einem anderen Fenster oder Bildschirm + aus, um die externe Verbindung zu benutzen. Das + asynchrone Logging zeigt Ihnen, welche Daten über die + Verbindung gesendet und empfangen werden. Falls Daten hinausgehen, aber nicht zurückkommen, handelt es sich um ein externes Problem. Wenn Sie festgestellt haben, ob es sich um ein lokales oder um ein externes Problem handelt, haben Sie zwei Möglichkeiten: Was kann ich machen, wenn die Gegenstelle nicht antwortet? Hier können Sie wenig tun. Die meisten ISPs werden ablehnen, Ihnen zu helfen, wenn Sie kein Betriebssystem von Microsoft benutzen. Sie können enable lqr in Ihrer Datei - ppp.conf angeben, wodurch ppp + ppp.conf angeben, wodurch &man.ppp.8; ermöglicht wird, ein externes Versagen zu erkennen und aufzulegen, aber diese Erkennung ist relativ langsam und deshalb nicht besonders nützlich. Evtl. sagen - Sie Ihrem ISP nicht, daß Sie ein eigenes ppp + Sie Ihrem ISP nicht, daß Sie user-PPP benutzen... Versuchen Sie zunächst, jegliche Datenkompression auszuschalten, indem Sie folgendes zu Ihrer Konfiguration hinzufügen: disable pred1 deflate deflate24 protocomp acfcomp shortseq vj deny pred1 deflate deflate24 protocomp acfcomp shortseq vj Stellen Sie nun wieder eine Verbindung her, um festzustellen, ob sich etwas geändert hat. Falls es nun besser läuft oder falls das Problem vollständig behoben ist, versuchen Sie durch schrittweises Ändern der Einstellungen festzustellen, welche Einstellung den Unterschied bewirkt. Hierdurch - erhalten Sie schlüssige Fakten fuer ein Gespräch + erhalten Sie schlüssige Fakten für ein Gespräch mit Ihrem ISP (andererseits wird hierdurch offensichtlich, daß Sie kein Microsoft-Produkt benutzen). Aktivieren Sie asynchrones Logging und warten Sie, bis die Verbindung wieder hängt, bevor Sie sich an Ihren ISP wenden. Hierzu kann einiges an Plattenplatz nötig sein. Die Daten, die als letztes von dem Port gelesen wurden, könnten von Interesse sein. Für gewöhnlich handelt es sich um ASCII-Text, der sogar den Fehler beschreiben kann (Memory fault, core dumped). Falls Ihr ISP hilfsbereit ist, sollte er in der Lage sein, an seinem Ende das Logging zu aktivieren und wenn das nächste Mal die Verbindung abbricht, könnte er Ihnen mitteilen, worin das Problem auf seiner Seite besteht. Gerne können Sie Details auch an &a.brian; schicken, oder Ihren ISP bitten, sich direkt an ihn zu wenden. Was kann ich tun, wenn sich &man.ppp.8; aufhängt? - In diesem Fall erstellen Sie am besten ppp neu, indem - Sie CFLAGS+=-g und + In diesem Fall erstellen Sie am besten &man.ppp.8; + neu, indem Sie CFLAGS+=-g und STRIP= am Ende des Makefiles einfügen und dann make clean && make && make install ausführen. Suchen - Sie die Prozeßnummer von ppp mit ps ajxww | - fgrep ppp, wenn ppp sich aufhängt und - führen Sie gdb ppp + Sie die Prozeßnummer von &man.ppp.8; mit ps + ajxww | fgrep ppp, wenn &man.ppp.8; sich + aufhängt und führen Sie gdb ppp PID aus. Am gdb-Prompt können Sie bt benutzen, um einen Auszug von Stack zu erhalten. Senden Sie die Ergebnisse an brian@Awfulhak.org. Warum passiert nach der Nachricht Login OK! nichts? - Bei Freebsd-Versionen vor 2.2.5 wartete - &man.ppp.8; darauf, daß der - Partner das Line Control Protocol (LCP) initiiert. Viele - ISPs starten nicht mit der Initiierung, sondern erwarten - dies vom Client. Benutzen Sie die folgende Zeile, um - ppp zu veranlassen, LCP zu - initiieren: + Bei Freebsd-Versionen vor 2.2.5 wartete &man.ppp.8; + darauf, daß der Partner das Line Control Protocol + (LCP) initiiert. Viele ISPs starten nicht mit der + Initiierung, sondern erwarten dies vom Client. Benutzen + Sie die folgende Zeile, um &man.ppp.8; zu veranlassen, LCP + zu initiieren: set openmode active Für gewöhnlich schadet es nicht, wenn beide Seiten versuchen, Verhandlungen einzuleiten. Deshalb ist openmode nun standardmäßig aktiv. Im nächsten Abschnitt wird allerdings erklärt, in welchen Fällen es doch schadet. Ich sehe ständig Fehlermeldungen über gleiche "Magic Numbers". Was heißt das? Nach dem Aufbau einer Verbindung kann es sein, daß Sie in der Logdatei gelegentlich Meldungen mit dem Hinweis magic is the same sehen. Manchmal sind diese Meldungen harmlos und manchmal bricht die eine oder andere Seite die Verbindung ab. Die meisten - Implementationen von ppp können dieses Problem nicht + Implementationen von PPP können dieses Problem nicht handhaben und Sie werden wiederholte Konfigurationsanforderungen und -bestätigungen in der - Logdatei finden, bis ppp schließlich aufgibt und die - Verbindung beendet. + Logdatei finden, bis &man.ppp.8; schließlich aufgibt + und die Verbindung beendet. Dies geschieht normalerweise auf Servern mit langsamen Festplatten, bei denen ein getty auf dem Port - ausgeführt und ppp nach dem Einloggen von einem - Login-Skript oder einem Programm aus gestartet wird. Ich - habe auch davon gehört, daß dies bei der + ausgeführt und &man.ppp.8; nach dem Einloggen von + einem Login-Skript oder einem Programm aus gestartet wird. + Ich habe auch davon gehört, daß dies bei der Benutzung von slirp regelmäßig auftritt. Der Grund hierfür ist, daß das ppp auf der Client-Seite in der Zeit, die benötigt wird, getty zu beenden und ppp zu starten, bereits beginnt, Line Control Protocol (LCP) Pakete zu senden. Da ECHO auf dem Serverport weiterhin eingeschaltet ist, werden diese - Pakete zum ppp auf der Client-Seite + Pakete zum &man.ppp.8; auf der Client-Seite reflektiert. Ein Teil der LCP-Verhandlungen ist die Einrichtung einer "magic Number" für jede Seite der Verbindung, damit Echos erkannt werden können. Das Protokoll besagt, daß, wenn der Partner versucht, die gleiche "Magic Number" auszuhandeln, ein NAK zurückgesendet und eine neue "Magic Number" gewählt werden soll. Während der Server das ECHO eingeschaltet hat, sendet der Client LCP Pakete, sieht die gleiche "Magic Number" im reflektierten Paket und erzeugt ein NAK. Er sieht auch das reflektierte NAK - (was bedeutet, daß ppp seine "Magic Number" + (was bedeutet, daß &man.ppp.8; seine "Magic Number" ändern muß). Hierdurch wird eine Vielzahl von Änderungen der "Magic Number" hervorgerufen, die sich - allesamt im tty-Puffer des Servers ansammeln. Sobald ppp - auf dem Server startet, wird es mit Änderungen der - "Magic Number" überflutet und entscheidet, daß - es sich zur Genüge mit den LCP-Verhandlungen - beschäftigt hat und gibt auf. Und während sich - der Client noch darüber freut, daß er keine - weiteren Reflexionen sieht, wird ihm gemeldet, daß - der Server auflegt. - - Dies kann verhindert werden, indem dem Parter durch + allesamt im tty-Puffer des Servers ansammeln. Sobald + &man.ppp.8; auf dem Server startet, wird es mit + Änderungen der "Magic Number" überflutet und + entscheidet, daß es sich zur Genüge mit den + LCP-Verhandlungen beschäftigt hat und gibt auf. Und + während sich der Client noch darüber freut, + daß er keine weiteren Reflexionen sieht, wird ihm + gemeldet, daß der Server auflegt. + + Dies kann verhindert werden, indem dem Partner durch die folgende Zeile in der Datei ppp.conf erlaubt wird, mit der Verhandlung zu beginnen: set openmode passive - Hierdurch wird ppp mitgeteilt, darauf zu warten, - daß der Server mit den LCP-Verhandlungen beginnt. - Einige Server starten jedoch nie mit der Verhandlungen; - falls dies der Fall ist, können Sie folgendes - tun: + Hierdurch wird &man.ppp.8; mitgeteilt, darauf zu + warten, daß der Server mit den LCP-Verhandlungen + beginnt. Einige Server starten jedoch nie mit der + Verhandlungen; falls dies der Fall ist, können Sie + folgendes tun: set openmode active 3 - Hierdurch bleibt ppp 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 ppp direkt antworten und - nicht erst, nachdem die drei Sekunden abgelaufen - sind. + Hierdurch bleibt &man.ppp.8; für drei Sekunden + passiv und fängt dann erst an, LCP-Anforderungen zu + senden. Falls der Partner während dieser Zeit + beginnt, Anforderungen zu senden, wird &man.ppp.8; direkt + antworten und nicht erst, nachdem die drei Sekunden + abgelaufen sind. Die LCP-Verhandlungen dauern an, bis die Verbindung geschlossen wird. Was mache ich falsch? Es gibt eine Fehlfunktion in der Implementierung von - ppp, die darin besteht, - daß LCP-, CCP- & IPCP-Antworten nicht mit den - ursprünglichen Anforderungen assoziiert werden. - Für den Fall, daß eine Implementation von - ppp mehr als sechs Sekunden - langsamer ist, als die andere Seite, resultiert das darin, - daß die andere Seite zwei weitere + &man.ppp.8;, die darin besteht, daß LCP-, CCP- & + IPCP-Antworten nicht mit den ursprünglichen + Anforderungen assoziiert werden. Für den Fall, + daß eine Implementation von PPP mehr als sechs + Sekunden langsamer ist, als die andere Seite, resultiert + das darin, daß die andere Seite zwei weitere LCP-Konfigurationsanforderungen sendet, was fatale Auswirkungen hat. Stellen Sie sich vor, wir hätten es mit zwei Implementierungen A und B zu tun. A beginnt unmittelbar nach der Verbindung, LCP-Anforderungen zu senden und B benötigt sieben Sekunden, zu starten. Wenn B startet, hat A bereits drei LCP-Anforderungen gesendet. Wir nehmen an, daß ECHO ausgeschaltet ist; andernfalls würden wir Probleme mit der "Magic Number" beobachten, wie bereits im vorherigen Abschnitt beschrieben. B sendet eine Anforderung und anschließend eine Bestätigung der ersten Anforderung von A. Dies führt dazu, daß A in den Zustand OPENED übergeht und eine Bestätigung (die erste) zurück an B sendet. In der Zwischenzeit sendet B zwei weitere Bestätigungen als Antwort auf die zusätzlichen Anforderungen, die von A gesendet worden sind, bevor B gestartet ist. B empfängt dann die erste Bestätigung von A und geht in den Zustand OPENED über. A empfängt die zweite Bestätigung von B, geht zurück in den Zustand REQ-SENT und sendet eine weitere (vierte) Anforderung entsprechend dem RFC. A empfängt dann die dritte Bestätigung und geht in den Zustand OPENED über. In der Zwischenzeit empfängt B die vierte Anforderung von A, wechselt in den Zustand ACK-SENT und sendet eine weitere (zweite) Anforderung und (vierte) Bestätigung entsprechend dem RFC. A erhält die Anforderung, geht in den Zustand REQ-SENT über, sendet eine weitere Anforderung, erhält unverzüglich die nächste Bestätigung und geht in OPENED über. Das geht so weiter, bis eine Seite erkennt, daß man zu keinem Ergebnis gelangt und aufgibt. Am besten verhindert man solche Situationen, indem man eine Seite als passiv konfiguriert, d.h. dafür sorgt, daß eine Seite darauf wartet, daß die andere mit den Verhandlungen beginnt. Das kann durch den Befehl set openmode passive geschehen. Diese Option sollten Sie mit Vorsicht genießen. Folgenden Befehl sollten Sie benutzen, um die Wartezeit auf den Beginn der Verhandlungen des - Partners von ppp zu - begrenzen: + Partners von &man.ppp.8; zu begrenzen: set stopped N Alternativ kann der Befehl set openmode active N (wobei N die Wartezeit in Sekunden vor Beginn der Verhandlungen angibt) benutzt werden. Weitere Details finden Sie in den Manualpages. Warum hängt sich &man.ppp.8; kurz nach Aufbau der Verbindung weg? Bei FreeBSD-Versionen vor 2.2.5 konnte es passieren, daß Ihre Verbindung kurz nach dem Aufbau deaktiviert - wurde, weil ppp die - Verhandlungen der Kompression Predictor1 falsch handhabte. - Das passiert nur dann, wenn beide Seiten versuchen, ein - unterschiedliches Kompressionsprotokoll (Compression - Control Protocol (CCP)) auszuhandeln. Dieses Problem ist - bereits behoben, falls Sie aber noch eine alte Version von - ppp verwenden, können Sie - es mit Hilfe der folgenden Zeile umgehen: + wurde, weil &man.ppp.8; die Verhandlungen der Kompression + Predictor1 falsch handhabte. Das passiert nur dann, wenn + beide Seiten versuchen, ein unterschiedliches + Kompressionsprotokoll (Compression Control Protocol (CCP)) + auszuhandeln. Dieses Problem ist bereits behoben, falls + Sie aber noch eine alte Version von &man.ppp.8; verwenden, + können Sie es mit Hilfe der folgenden Zeile + umgehen: disable pred1 Warum reagiert &man.ppp.8; nicht mehr, wenn ich es mit shell verlassen habe? Wenn Sie den Befehl shell oder - ! benutzen, führt - ppp eine Shell aus (falls Sie - Argumente übergeben haben, führt - ppp diese Argumente aus). ppp + ! 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 + Arbeit fortsetzt. Falls Sie versuchen, die PPP-Verbindung während der Programmausführung zu benutzen, wird es so aussehen, als wäre die Verbindung eingefroren. - Das liegt daran, daß ppp - auf die Beendigung des Befehls wartet. + Das liegt daran, daß &man.ppp.8; auf die + Beendigung des Befehls wartet. Falls Sie solche Befehle verwenden möchten, benutzen Sie stattdessen den Befehl !bg. Hierdurch wird der angegebene - Befehl im Hintergrund ausgeführt und ppp kann + Befehl im Hintergrund ausgeführt und &man.ppp.8; kann fortfahren, die Verbindung zu bedienen. Warum wird &man.ppp.8; niemals beendet, wenn ich es über ein Null-Modem-Kabel benutze? - Es gibt keine Möglichkeit für - ppp, automatisch festzustellen, - ob eine direkte Verbindung beendet worden ist. Das liegt - an den Leitungen, die bei einem seriellen Null-Modem-Kabel - benutzt werden. Wenn Sie diese Art der Verbindung - verwenden, sollte LQR immer aktiviert werden: + Es gibt keine Möglichkeit für &man.ppp.8;, + automatisch festzustellen, ob eine direkte Verbindung + beendet worden ist. Das liegt an den Leitungen, die bei + einem seriellen Null-Modem-Kabel benutzt werden. Wenn Sie + diese Art der Verbindung verwenden, sollte LQR immer + aktiviert werden: enable lqr LQR wird standardmäßig akzeptiert, wenn es vom Partner ausgehandelt wird. - Warum wählt ppp im Modus -auto ohne + Warum wählt &man.ppp.8; im Modus -auto ohne Grund? - Falls ppp unerwarteterweise - wählt, müssen Sie den Grund herausfinden und - Wählfilter (dfilters) einsetzen, um dies zu - verhindern. + Falls &man.ppp.8; unerwarteterweise wählt, + müssen Sie den Grund herausfinden und Wählfilter + (dfilters) einsetzen, um dies zu verhindern. Benutzen Sie die folgende Zeile, um den Grund herauszufinden: set log +tcp/ip Dadurch wird jeglicher Verkehr über die Verbindung geloggt. Wenn das nächste mal unerwartet eine Verbindung hergestellt wird, werden Sie den Grund zusammen mit einer hilfreichen Zeitangabe in der Logdatei finden. Sie können nun das Wählen aufgrund dieser Bedingungen verhindern. Normalerweise wird diese Art von Problemen durch Anfragen an den DNS verursacht. Um zu verhindern, daß DNS-Anfragen den Aufbau der Verbindung hervorrufen (das verhindert nicht, daß Pakete über eine bestehende Verbindung gesendet werden), benutzen Sie die folgenden Zeilen: set dfilter 1 deny udp src eq 53 set dfilter 2 deny udp dst eq 53 set dfilter 3 permit 0/0 0/0 Dies ist nicht immer brauchbar, weil es effektiv Ihre Fähigkeit, auf Anforderung wählen zu können einschränkt - die meisten Programme müssen eine DNS-Anfrage durchführen, bevor Sie andere, das Netzwerk betreffenden Dinge tun können. Im Fall von DNS sollten Sie versuchen, herauszufinden, welches Programm tatsächlich versucht, einen Hostnamen aufzulösen. Sehr oft handelt es sich hier um &man.sendmail.8;. Sie sollten sicherstellen, daß Sie sendmail in der Konfigurationsdatei sagen, daß keine DNS-Anfragen durchführen soll. Lesen Sie den Abschnitt zur Mail-Konfiguration, um Details zur Erstellung Ihrer eigenen Konfigurationsdatei und darüber, was dort angegeben werden sollte, zu erfahren. Sie könnten z.B. die folgende Zeile in Ihre .mc-Datei einfügen: define(`confDELIVERY_MODE', `d')dnl Das veranlaßt sendmail dazu, alles in eine Warteschlange einzureihen, bis die Warteschlange verarbeitet wird (normalerweise wird sendmail mit aufgerufen, was besagt, daß die Warteschlange alle 30 Minuten abgearbeitet wird) oder, bis ein sendmail -q ausgeführt wird (z.B. aus Ihrer Datei ppp.linkup heraus). Was bedeuten diese CCP-Fehler? Ich sehe ständig folgende Fehler in meiner Logdatei: CCP: CcpSendConfigReq CCP: Received Terminate Ack (1) state = Req-Sent (6) - Das liegt daran, daß ppp versucht, die + Das liegt daran, daß &man.ppp.8; versucht, die Komprimierung Predictor1 auszuhandeln und der Partner über keinerlei Komprimierung verhandeln will. Die Meldungen sind harmlos, aber wenn Sie sie beseitigen möchten, können Sie die Komprimierung Predictor1 auch lokal ausschalten: disable pred1 Warum hängt sich &man.ppp.8; während einer Dateiübertragung mit IO-Fehlern auf? Unter FreeBSD 2.2.2 und frühere gab es einen Bug im Tun-Treiber, der ankommende Pakete die größer als die MTU der Tun-Schnittstelle sind, ablehnt. Der Empfang eines Paketes größer der MTU resultiert in einem IO-Fehler, der über syslogd geloggt wird. - Die ppp-Spezifikation besagt, daß eine MTU von + Die PPP-Spezifikation besagt, daß eine MTU von 1500 immer als Minimum akzeptiert werden sollte, ungeachtet aller LCP-Verhandlungen. Es ist deshalb möglich, daß Sie die MTU auf unter 1500 herabsetzen, Ihr ISP wird trotzdem Pakete der Größe 1500 übertragen und Sie werden auf diese Fehlfunktion stoßen, die Ihre Verbindung lahmlegt. Das Problem kann umgangen werden, indem unter FreeBSD 2.2.2 und früher niemals eine MTU von weniger als 1500 gesetzt wird. Warum loggt ppp die Geschwindigkeit meiner Verbindung nicht? Um alle Zeilen Ihrer Modemkonversation mitzuloggen, müssen Sie folgendes einstellen: set log +connect - Dies veranlaßt &man.ppp.8; dazu, alles bis zur + Dies veranlaßt &man.ppp.8; dazu, alles bis zur letzten angeforderten expext-Zeile mitzuloggen. Falls Sie die Geschwindigkeit Ihrer Verbindung erfahren möchten und PAP oder CHAP (und deshalb nach dem CONNECT im Wählskript nichts mehr zu chatten haben - kein set login-Skript), müssen Sie sicherstellen, - daß Sie ppp anweisen, die gesamte CONNECT-Zeile zu - erwarten, etwa so: + daß Sie &man.ppp.8; anweisen, die gesamte + CONNECT-Zeile zu erwarten, etwa so: set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n" Hier bekommen wir unser CONNECT, senden nichts, - erwarten dann einen Line-Feed, der - ppp zwingt, die gesamte - CONNECT-Antwort zu lesen. + erwarten dann einen Line-Feed, der &man.ppp.8; zwingt, die + gesamte CONNECT-Antwort zu lesen. Warum ignoriert &man.ppp.8; das Zeichen \ in meinem Chat-Skript? ppp analysiert jede Zeile in Ihrer Konfigurationsdatei, damit es Zeichenketten wie z.B. set phone "123 456 789" korrekt interpretieren kann (und erkennen, daß es sich bei der Nummer tatsächlich nur um ein Argument handelt). Um das - Zeichen " anzugeben, müssen Sie - ihm einen Backslash (\) + Zeichen " anzugeben, müssen + Sie ihm einen Backslash (\) voranstellen. Wenn der Chat-Interpreter jedes Argument analysiert, reinterpretiert er die Argumente, um irgendwelche speziellen Escape-Sequenzen wie z.B. \P oder \T (sehen Sie in die Manualpage) zu finden. Das Ergebnis dieser Doppelanalyse ist, daß Sie daran denken müssen, die richtige Anzahl an Escape-Zeichen zu verwenden. Falls Sie tatsächlich das Zeichen \ z.B. zu Ihrem Modem senden möchten, brauchen Sie etwas ähnliches, wie: set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" woraus sich folgende Zeichen ergeben: ATZ OK AT\X OK oder set phone 1234567 set dial "\"\" ATZ OK ATDT\\T" was folgende Zeichen ergibt: ATZ OK ATDT1234567 Warum gibt es die Datei ppp.core nicht, wenn &man.ppp.8; einen Segmentation Fault erzeugt hat? - Weder ppp noch andere Programme sollten Core-Dumps - erzeugen. Da ppp mit der effektiven Benutzerkennung 0 - ausgeführt wird, wird das Betriebssystem ppp's - Coreimage nicht auf die Festplatte schreiben, bevor es ppp - beendet hat. Falls ppp jedoch tatsächlich aufgrund - einer Speicherverletzung abbricht und - Sie die aktuellste Version (siehe Anfang dieses Kapitels) + Weder &man.ppp.8; noch andere Programme sollten + Core-Dumps erzeugen. Da &man.ppp.8; mit der effektiven + Benutzerkennung 0 ausgeführt wird, wird das + Betriebssystem &man.ppp.8;'s Coreimage nicht auf die + Festplatte schreiben, bevor es &man.ppp.8; beendet hat. + Falls &man.ppp.8; jedoch tatsächlich aufgrund einer + Speicherverletzung abbricht und Sie + die aktuellste Version (siehe Anfang dieses Kapitels) benutzen, dann sollten Sie folgendes tun: &prompt.user; tar xfz ppp-*.src.tar.gz &prompt.user; cd ppp*/ppp &prompt.user; echo STRIP= >>Makefile &prompt.user; echo CFLAGS+=-g >>Makefile &prompt.user; make clean all &prompt.user; su &prompt.root; make install &prompt.root; chmod 555 /usr/sbin/ppp - Nun ist die installierte Version von ppp mit einem - Debugger ausführbar. Sie können ppp nun nur - noch als root ausführen, da alle - vorherigen Zugriffsrechte aufgehoben worden sind. Achten - Sie darauf, in welchem Verzeichnis Sie sich gerade - befinden, wenn Sie ppp starten. + Nun ist die installierte Version von &man.ppp.8; mit + einem Debugger ausführbar. Sie können + &man.ppp.8; nun nur noch als root + ausführen, da alle vorherigen Zugriffsrechte + aufgehoben worden sind. Achten Sie darauf, in welchem + Verzeichnis Sie sich gerade befinden, wenn Sie &man.ppp.8; + starten. Wenn nun wieder eine Speicherverletzung auftreten - sollte, wird ppp einen Speicherauszug erzeugen, den Sie in - der Datei ppp.core finden. Sie - sollten dann folgendes tun: + sollte, wird &man.ppp.8; einen Speicherauszug erzeugen, + den Sie in der Datei ppp.core finden. + Sie sollten dann folgendes tun: &prompt.user; su &prompt.root; gdb /usr/sbin/ppp ppp.core (gdb) bt ..... (gdb) f 0 .... (gdb) i args .... (gdb) l ..... Mit Hilfe all dieser Informationen sollte es möglich sein, das Problem zu diagnostizieren. Falls Sie mit dem Umgang mit gdb vertraut sind, könnten Sie weitere Einzelheiten herausfinden, z.B. wodurch der Fehler tatsächlich hervorgerufen wurde und die Adressen & Werte der betreffenden Variablen. Warum bekommt das Programm, das eine automatische Anwahl ausgelöst hat, keine Verbindung? Dies war ein bekanntes Problem bei - ppp-Konfigurationen, bei denen - automatisch dynamische, lokale IP-Adressen mit dem Partner + &man.ppp.8;-Konfigurationen, bei denen automatisch + dynamische, lokale IP-Adressen mit dem Partner ausgehandelt werden. In der aktuellsten Version ist das Problem behoben - suchen Sie in den Manualpages nach iface. Das Problem bestand darin, daß, wenn das erste Programm &man.connect.2; aufruft, die IP-Adresse der tun-Schnittstelle dem Socketendpunkt zugeordnet wird. Der Kernel erstellt das erste ausgehende Paket und schreibt es - in das tun-Gerät. ppp - liest dann das Paket und baut eine Verbindung auf. Falls - die Schnittstellenadresse sich nun aufgrund - ppp's dynamischer - Adreßzuordnung ändert, wird der originale - Socketendpunkt ungültig. Alle weiteren Pakete, die - zum Partner gesendet werden, werden für + in das tun-Gerät. &man.ppp.8; liest dann das Paket + und baut eine Verbindung auf. Falls die + Schnittstellenadresse sich nun aufgrund &man.ppp.8;s + dynamischer Adreßzuordnung ändert, wird der + originale Socketendpunkt ungültig. Alle weiteren + Pakete, die zum Partner gesendet werden, werden für gewöhnlich verworfen. Selbst wenn sie nicht verworfen werden würden, würden alle Antworten nicht an den betreffenden Rechner gelangen, weil die IP-Adresse nicht mehr zu diesem Rechner gehört. Theoretisch gibt es mehrere Möglichkeiten, dieses Problem anzugehen. Am schönsten wäre es, wenn der Partner die gleiche IP-Adresse wieder zuordnen würde, wenn möglich :-) Die - derzeitige Version von ppp tut - das, aber die meisten anderen Implementierungen - nicht. + derzeitige Version von &man.ppp.8; tut das, aber die + meisten anderen Implementierungen nicht. Die einfachste Maßnahme von unserer Seite wäre die, niemals die IP-Adresse der tun-Schnittstelle zu ändern, sondern stattdessen alle ausgehenden Pakete so zu ändern, daß als Absender-IP-Adresse anstelle der IP-Adresse der Schnittstelle die ausgehandelte IP-Adresse gesetzt wird. Das ist im wesentlichen das, was durch die Option iface-alias in der aktuellsten Version - von ppp bewirkt wird (mit - Unterstützung von &man.libalias.3; und ppp's - Schalter) - alle - Schnittstellenadressen werden beibehalten und auf die - letzte ausgehandelte Adresse umgesetzt. + von &man.ppp.8; bewirkt wird (mit Unterstützung von + &man.libalias.3; und &man.ppp.8;'s + Schalter) - alle Schnittstellenadressen werden beibehalten + und auf die letzte ausgehandelte Adresse + umgesetzt. Eine andere Alternative (und wahrscheinlich die zuverlässigste) wäre die, einen Systemaufruf zu implementieren der die IP-Adressen aller verbundenen Sockets von einer Adresse in eine andere ändert. - ppp 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. + &man.ppp.8; würde diesen Aufruf benutzen, um die + Sockets aller laufenden Programme zu ändern, nachdem + eine neue IP-Adresse ausgehandelt worden ist. Der gleiche + Systemaufruf könnte von DHCP-Clients benutzt werden, + wenn sie gezwungen werden, einen re-bind() auf ihren + Sockets auszuführen. Noch eine andere Möglichkeit wäre die, das Aktivieren von Schnittstellen ohne IP-Adresse zu erlauben. - Ausgehende Paketen würde die IP-Adressee + 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 ppp, - die Absender-IP-Adresse zu ändern, allerdings nur - dann, wenn sie 255.255.255.255 lautet und nur die - IP-Adresse und IP-Prüfsumme müßten - geändert werden. Dies wäre allerdings keine - besonders elegante Lösung, da der Kernel fehlerhafte - Pakete an eine unzureichend konfigurierte Schnittstelle - senden würde, in der Annahme, daß andere - Mechanismen in der Lage sind, diese Dinge rückwirkend - zu beheben. + wäre die Aufgabe von &man.ppp.8;, die + Absender-IP-Adresse zu ändern, allerdings nur dann, + wenn sie 255.255.255.255 lautet und nur die IP-Adresse und + IP-Prüfsumme müßten geändert werden. + Dies wäre allerdings keine besonders elegante + Lösung, da der Kernel fehlerhafte Pakete an eine + unzureichend konfigurierte Schnittstelle senden + würde, in der Annahme, daß andere Mechanismen + in der Lage sind, diese Dinge rückwirkend zu + beheben. Warum laufen die meisten Spiele mit dem -nat Schalter nicht? Der Grund dafür, daß Spiele und andere Programme nicht funktionieren, wenn libalias benutzt wird, ist der, daß der Rechner außerhalb des lokalen Netzes versucht, eine Verbindung aufzubauen und (unaufgefordert) UDP-Pakete an den Rechner innerhalb des lokalen Netzes zu senden. Die Software, die für die NAT zuständig ist, weiß nicht, daß sie diese Pakete an den internen Rechner weiterleiten soll. Um dies zu beheben, stellen Sie zunächst sicher, daß die Software, mit der Sie Probleme haben, die einzige ist, die gerade läuft. Benutzen Sie dann entweder tcpdump auf der tun-Schnittstelle des Gateways oder aktivieren Sie auf dem Gateway das Logging von TCP/IP - (set log +tcp/ip) unter ppp. + (set log +tcp/ip) unter + &man.ppp.8;. Wenn Sie nun das betreffende Programm starten, sollten Sie sehen, wie Pakete den Gateway-Rechner passieren. Wenn von außen etwas zurückkommt, wird es ignoriert (das ist das Problem). Merken Sie sich die Portnummer dieser Pakete und beenden Sie das betreffende Programm. Wiederholen Sie diesen Schritt einige Male, um festzustellen, ob die Portnummern konsistent sind. Falls dem so ist, wird die folgende Zeile im entsprechenden Abschnitt von /etc/ppp/ppp.conf dafür sorgen, daß das Programm funktioniert: nat port proto internalmachine:port port wobei für proto entweder tcp oder udp zu setzen ist, internalmachine den Rechner bezeichnet, an den die Pakete geschickt werden sollen und port die betreffende Portnummer. Sie können das Programm nicht auf einem anderen Rechner benutzen, ohne die obige Zeile abzuändern und die Benutzung des Programms auf zwei internen Rechnern steht außer Frage - schließlich sieht die Außenwelt Ihr gesamtes internes Netz so, als wäre es ein einzelner Rechner. Falls die Portnummern nicht konsistent sind, gibt es drei weitere Optionen: Ermöglichen Sie die Unterstützung durch libalias. Beispiele für spezielle Fälle finden Sie in /usr/src/lib/libalias/alias_*.c (alias_ftp.c ist ein schöner Prototyp). Hierzu gehört für gewöhnlich das Lesen bestimmter, erkannter, ausgehender Pakete, die Identifizierung der Instruktion, die den entfernten Rechner dazu veranlaßt, auf einem bestimmten (wahlfreien) Port eine Verbindung zurück zum lokalen Rechner herzustellen, sowie das Erstellen einer Route in der Aliastabelle, so daß nachfolgende Pakete wissen, wohin sie gehören. Dieses ist zwar die komplizierteste Lösung, aber die beste, die auch dafür sorgt, daß die Software auf mehreren Rechnern funktioniert. Benutzen Sie einen Proxy. Die Applikation könnte z.B. socks5 unterstützen, oder (wie im Fall von cvsup) eine Option passiv besitzen, die stets verhindert, daß verlangt wird, daß der Partner eine Verbindung zurück zur lokalen Maschine aufbaut. Leiten Sie mit nat addr alles zur lokalen Maschine um. Dieses Vorgehen ähnelt dem mit einem Vorschlaghammer. Hat jemand eine Liste mit nützlichen Portnummern erstellt? Noch nicht, aber hieraus könnte eine solche entstehen (falls Interesse besteht). In jedem Beispiel sollte internal durch die IP-Adresse der Maschine ersetzt werden, auf der das Spiel laufen soll. Asheron's Call nat port udp internal:65000 65000 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 nat port Zeile ein. Half Life nat port udp internal:27005 27015 PCAnywhere 8.0 nat port udp internal:5632 5632 nat port tcp internal:5631 5631 Quake nat port udp internal:6112 6112 Alternativ können sie wegen Proxyunterstützung für Quake unter www.battle.net nachsehen. Quake 2 nat port udp internal:27901 27910 nat port udp internal:60021 60021 nat port udp internal:60040 60040 Red Alert nat port udp internal:8675 8675 nat port udp internal:5009 5009 Was sind FCS-Fehler? FCS steht für Frame Check Sequence. - Jedes ppp-Paket besitzt eine Checksumme, um + Jedes PPP-Paket besitzt eine Checksumme, um sicherzustellen, daß die empfangenen Daten dieselben sind, wie die versendeten. Falls die FCS eines ankommenden Paketes fehlerhaft ist, wird das Paket verworfen und der Zähler HDLC FCS wird erhöht. Der HDLC-Fehlerwert kann durch den Befehl show hdlc angezeigt werden. Falls Ihre Leitung schlecht ist (oder falls Ihr serieller Treiber Pakete verwirft), werden sie gelegentliche FCS-Fehler sehen. Normalerweise lohnt es sich nicht, sich hierüber Gedanken zu machen, obwohl das Kompressionsprotokoll hierdurch wesentlich langsamer wird. Wenn Sie ein externes Modem besitzen, stellen Sie sicher, daß Ihr Kabel ausreichend gegen Interferenzen abgeschirmt ist - das könnte das Problem beseitigen. Falls Ihre Leitung einfriert, sobald die Verbindung steht, und viele FCS-Fehler auftreten, könnte das daran liegen, daß Ihre Leitung nicht 8-Bit-rein ist. Stellen Sie sicher, daß Ihr Modem keinen Software-Flow-Control (XON/XOFF) verwendet. Falls Ihre Datenschnittstelle Software-Flow-Control verwenden muß, benutzen Sie den Befehl - set accmap 0x000a0000, um - ppp zu sagen, daß es die Zeichen - ^Q und ^S maskieren - soll. + set accmap 0x000a0000, um &man.ppp.8; + zu sagen, daß es die Zeichen ^Q + und ^S maskieren soll. Ein weiterer Grund dafür, daß zu viele FCS-Fehler auftreten, könnte der sein, daß das andere Ende aufgehört hat, ppp zu sprechen. Aktivieren Sie async Logging, um festzustellen, ob es sich bei den eingehenden Daten tatsächlich um einen login- oder Shell-Prompt handelt. Wenn Sie am anderen Ende einen Shell-Prompt haben, ist es möglich, durch den Befehl - close lcp ppp zu beenden, ohne die - Verbindung zu beenden (ein folgender - term-Befehl wird Sie wieder mit der Shell auf - dem entfernten Rechner verbinden. + close lcp &man.ppp.8; zu beenden, ohne + die Verbindung zu beenden (ein folgender + term-Befehl wird Sie wieder mit der + Shell auf dem entfernten Rechner verbinden. Falls nichts in Ihrer Logdatei darauf hindeutet, warum die Verbindung beendet wurde, sollten Sie den Administrator des externen Rechners (Ihren ISP?) fragen, warum die Sitzung beendet worden ist. Wieso hängen die Verbindungen meiner MacOS- und Windows98(tm)-Maschinen, wenn auf meinem Gateway PPPoE läuft? Vielen Dank an Michael Wozniak mwozniak@netcom.ca für die Erklärung und an Dan Flemming danflemming@mac.com für die Lösung für MacOS Die Ursache des Problems ist ein sogenannter Black Hole Router. MacOS und Windows 98 (und wahrscheinlich auch die anderen Betriebssysteme von Microsoft) senden TCP Pakete, bei denen zum einen die angeforderte Segmentgröße zu groß für einen PPPoE-Rahmen ist (die Default-MTU für Ethernet beträgt 1500 Byte) und bei denen das don't fragment Bit gesetzt ist (das ist bei TCP allerdings Standard). Außerdem sendet der Router beim Provider nicht die eigentlich notwendigen must fragment-Meldungen zu dem Webserver, von dem Sie gerade eine Seite laden wollen. Es ist auch möglich, daß diese Meldung zwar erzeugt, aber danach von einem Firewall vor dem Webserver abgefangen wird. Wenn Ihnen dieser Webserver nun ein Paket schickt, das nicht in einen PPPoE-Rahmen paßt, dann verwirft der Router dieses Paket und die Seite wird nicht geladen (einige Seiten/Grafiken werden geladen, weil ihre Größe kleiner ist als die MSS). Dies scheint leider der Normalfall zu sein (wenn die Leute doch nur wüßten, wie man einen Router konfiguriert... stöhn...) Eine der möglichen Lösungen für dieses Problem ist die Erzeugung des folgenden Schlüssels in der Registry des Windows-Clients: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU Der Schlüssels sollte vom Typ String sein und den Wert 1436 haben, da einige ADSL-Router nicht mit grösseren Paketen umgehen können. Wenn Sie Windows 2000 verwenden, müssen Sie dagegen den Schlüssel Tcpip\Parameters\Interfaces\ID der Netzwerkkarte\MTU benutzen, außerdem müssen Sie als Typ DWORD verwenden. Die Knowledge Base von Microsoft enthält weitere Informationen darüber, wie sie die MTU einer Windows-Maschine ändern, damit diese mit einem NAT-Router korrekt zusammenarbeitet. Vom besonderen Interesse sind die Artikel Q158474 - Windows TCPIP Registry Entries und Q120642 - TCPIP & NBT Configuration Parameters for Windows NT. Bei Windows 2000 können Sie alternativ auch, wie im Artikel 120642 beschrieben, mit regedit das DWORD Tcpip\Parameters\Interfaces\ID der Netzwerkkarte\EnablePMTUBHDetect auf 1 setzen. Mit den Bordmitteln von MacOS ist es leider nicht möglich, die TCP/IP-Einstellungen zu verändern. Es gibt jedoch kommerzielle Lösungen wie zum Beispiel OTAdvancedTuner (OT steht für OpenTransport, den TCP/IP-Stack von MacOS) von Sustainable Softworks, mit denen man die TCP/IP-Einstellungen bearbeiten kann. Wenn Sie als MacOS-Anwender NAT benutzen, sollten Sie im entsprechenden drop-down Menü den Punkt ip_interface_MTU auswählen und in der Dialogbox 1450 statt 1500 eingeben. Aktivieren Sie den Punkt Save as Auto Configure und klicken Sie danach auf Make Active. - ppp kennt seit Version 2.3 - den Befehl enable tcpmssfixup, mit dem - die MSS automatisch korrigiert wird. Wenn Sie einen - ältere Version von ppp - benutzen müssen, könnte der Port - tcpmssd für Sie + &man.ppp.8; kennt seit Version 2.3 den Befehl + enable tcpmssfixup, mit dem die MSS + automatisch korrigiert wird. Wenn Sie einen ältere + Version von &man.ppp.8; benutzen müssen, könnte + der Port tcpmssd für Sie interessant sein. Nichts von alledem hilft - ich bin verzweifelt! Was soll ich machen? Falls alles andere fehlschlägt, senden Sie möglichst umfangreiche Informationen, einschließlich Ihrer Konfigurationsdateien, wie Sie - ppp starten, die relevanten - Teile Ihrer Logdateien und die Ausgabe des Befehls - netstat -rn (vor und nach Aufbau der - Verbindung) an die &a.de.questions; oder die Newsgroup - netstat -rn + (vor und nach Aufbau der Verbindung) an die + &a.de.questions; oder die Newsgroup de.comp.os.unix.bsd. Irgend jemand sollte Ihnen dann weiterhelfen. Serielle Verbindungen Dieses Kapitel beantwortet häufig gestellte Fragen zu seriellen Verbindungen mit FreeBSD. PPP und SLIP werden in behandelt. Wie kann ich feststellen, ob FreeBSD meine seriellen Schnittstellen gefunden hat? Wenn der FreeBSD Kernel bootet, testet er die seriellen Schnittstellen, für die er konfiguriert wurde. Sie können entweder Ihrem System aufmerksam beim Booten zusehen und die angezeigten Nachrichten lesen, oder Sie führen den Befehl &prompt.user; dmesg | grep sio aus, nachdem Ihr System hochgefahren ist und läuft. Hier ist ein Beispiel einer Ausgabe nach dem oben genannten Befehl: -si0: at 0x3f8-0x3ff irq 4 on isa -si0: type 16550A -si1: at 0x2f8-0x2ff irq 3 on isa -si1: type 16550A +sio0: at 0x3f8-0x3ff irq 4 on isa +sio0: type 16550A +sio1: at 0x2f8-0x2ff irq 3 on isa +sio1: type 16550A Es zeigt zwei serielle Schnittstellen. Die erste verwendet Port-Adresse 0x3f8, IRQ 4 und hat einen 16550A UART Chip. Die zweite benutzt ebenfalls einen 16550A UART, jedoch Port-Adresse 0x2f8 und IRQ 3. Modemkarten werden wie serielle Schnittstellen behandelt. Der einzige Unterschied ist, daß an diesen Schnittstellen immer ein Modem angeschlossen ist. Der GENERIC Kernel beinhaltet Unterstützung für zwei serielle Schnittstellen, die den im Beispiel genannten Port und IRQ verwenden. Wenn diese Einstellungen nicht richtig für Ihr System sind, Sie Modemkarten hinzugefügt oder mehr serielle Schnittstellen haben als Ihre Kernel-Konfiguration zuläßt, konfigurieren Sie Ihren Kernel einfach neu. In dem Kapitel über die Kernelkonfiguration finden Sie mehr Details. Wie kann ich feststellen, ob FreeBSD meine Modemkarten gefunden hat? Die vorherige Frage sollte darauf eine Antwort geben. Ich habe gerade auf 2.0.5 geupdatet und meine tty0X fehlen! Wie kann ich das Problem lösen? Keine Sorge, die wurden mit den ttydX Geräten zusammengeführt. Sie müssen allerdings die alten Konfigurationsdateien ändern. Wie kann ich auf die seriellen Schnittstellen in FreeBSD zugreifen? Die dritte serielle Schnittstelle, sio2 (bekannt als COM3 in DOS/Windows), ist /dev/cuaa2 für Geräte mit abgehenden Verbindungen und /dev/ttyd2 für Geräte mit eingehenden Verbindungen. Was ist der Unterschied zwischen den beiden Geräteklassen? Sie benutzen ttydX für eingehende Verbindungen. Wird /dev/ttydX im blockierenden Modus geöffnet, wartet ein Prozeß darauf, daß das entsprechende cuaaX Gerät inaktiv und der Empfangssignalpegel Mit Empfangssignalpegel oder Trägersignalerkennung wird hier die carrier detect Leitung bezeichnet. aktiv ist. Wird das cuaaX Gerät geöffnet, vergewissert es sich, daß die serielle Schnittstelle nicht bereits von dem ttydX Gerät in Gebrauch ist. Sollte die Schnittstelle verfügbar sein, stiehlt es sie von dem ttydX Gerät. Das cuaaX Gerät kümmert sich nicht um Trägersignalerkennung. Mit diesem Schema und einem automatisch antwortenden Modem, können sich Benutzer von außen einloggen, Sie können weiterhin mit - dem selben Modem wählen und das System kümmert + demselben Modem wählen und das System kümmert sich um die Konflikte. Wie kann ich die Unterstützung für eine Karte mit mehreren seriellen Schnittstellen aktivieren? Die Sektion über die Kernelkonfiguration bietet Informationen darüber, wie Sie Ihren Kernel konfigurieren. Für eine Karte mit mehreren seriellen Schnittstellen, schreiben Sie eine &man.sio.4; Zeile für jede serielle Schnittstelle auf der Karte in die Kernel-Konfigurationsdatei. Aber achten Sie darauf, den - IRQ und die Verktorbezeichnung nur in einem der + IRQ und die Vektorbezeichnung nur in einem der Einträge zu plazieren. Alle seriellen Schnittstellen auf der Karte sollten sich einen IRQ teilen. Daher sollten Sie den IRQ nur beim letzten Eintrag angeben. Aktivieren Sie auch die COM_MULTIPORT Option. Das folgende Beispiel ist geeignet für eine AST Karte mit 4 seriellen Schnittstellen, die IRQ 7 benutzt: options "COM_MULTIPORT" device sio4 at isa? port 0x2a0 tty flags 0x781 device sio5 at isa? port 0x2a8 tty flags 0x781 device sio6 at isa? port 0x2b0 tty flags 0x781 device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr Die Flags zeigen an, daß die Master-Schnittstelle die Minor-Nummer 7 (0x700) hat, Diagnosen während des Bootens ermöglicht sind (0x080), und daß sich alle Schnittstellen einen IRQ teilen (0x001). Kann FreeBSD mehrere Karten mit mehreren seriellen Schnittstellen mit den gleichen IRQs verwalten? Noch nicht. Sie müssen für jede Karte einen anderen IRQ verwenden. Kann ich die vorgegebenen seriellen Parameter für eine Schnittstelle einstellen? Das ttydX (oder cuaaX) Gerät ist das reguläre Gerät, das man in Anwendungen öffnet. Wenn ein Prozeß es öffnet, hat es die voreingestellten Terminal Eingabe/Ausgabe-Einstellungen. Sie können diese Einstellungen mit dem Befehl &prompt.root; stty -a -f /dev/ttyd1 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 CLOCAL Modus, 8 Bits und XON/XOFF Datenflußkontrolle als Standard für ttyd5 einzustellen, geben Sie &prompt.root; stty -f /dev/ttyid5 clocal cs8 ixon ixoff ein. Eine gute Stelle um dies zu tun ist in /etc/rc.serial. Jetzt hat eine Anwendung diese Einstellungen als Standardwerte, wenn sie ttyd5 öffnet. Die Anwendung kann die Einstellungen jedoch immer noch nach Belieben verändern. Man aber kann auch bestimme Einstellungen davor schützen, von einer Anwendung verändert zu werden, indem man Veränderungen am lock state Gerät vornimmt. Um beispielsweise die Geschwindigkeit von ttyd5 auf 57600 bps festzusetzen: &prompt.root; stty -f /dev/ttyld5 57600 Wenn jetzt eine Anwendung ttyd5 öffnet und versucht die Geschwindigkeit zu verändern, wird diese bei 57600 bps bleiben. Natürlich sollten Sie das Schreiben auf die Anfangsstatus- und lock state-Geräte nur root erlauben. Das &man.MAKEDEV.8; Skript tut dies nicht, wenn es die Geräte-Einträge erstellt. Wie kann ich Einwahl-Logins über mein Modem aktivieren? Also Sie wollen ein Internet Service Provider werden, ja? Als erstes brauchen Sie eines oder mehrere Modems, die automatisches Antworten beherrschen. Ihr Modem sollte auf Trägersignalerkennung reagieren und nicht fortlaufend die Leitung offen halten. Es muß auflegen und sich neu initialisieren können, wenn die Data Terminal Ready (DTR) Leitung ausgeschaltet wird. Es sollte wahrscheinlich RTS/CTS oder gar keine lokale Datenflußkontrolle benutzen. Zuletzt muß es eine konstante Geschwindigkeit zwischen dem Computer und sich selbst verwenden, aber es sollte (um die Anrufer freundlich zu behandeln) eine Geschwindigkeit zwischen sich und dem entfernten Modem aushandeln können. Für viele Modems, die mit dem Hayes Befehlssatz kompatibel sind, erzeugt der folgende Befehl diese Einstellungen und legt sie im nicht-flüchtigen Speicher ab: AT &C1 &D3 &K3 &Q6 S0=1 &W Die Sektion über das Senden von AT-Befehlen bietet weitere Informationen, wie man diese Einstellungen vornimmt, ohne zu einem MS-DOS Terminal Programm zu flüchten. Als nächstes erstellen Sie einen Eintrag in /etc/ttys für das Modem. Diese Datei listet alle Schnittstellen auf, auf denen das Betriebssystem Einlogversuche erwartet. Fügen Sie eine solche Zeile hinzu: ttyd1 "/usr/libexec/getty std 57600" dialup on insecure Diese Zeile bedeutet, daß an der zweiten seriellen Schnittstelle (/dev/ttyd1) ein Modem angeschlossen ist, das mit 57600 bps läuft und keine Parität besitzt (std.57600 aus /etc/gettytab). Der Terminal-Typ für diese Schnittstelle ist dialup (Einwahl). Die Schnittstelle ist eingeschaltet (on) und - unsicher (unsecure) -- + unsicher (insecure) -- das bedeutet, man kann sich über diese Schnittstelle nicht als root einloggen. Für Einwahlanschlüsse wie diesen, benutzen Sie den ttydX Eintrag. Es ist relativ geläufig, dialup als Terminal-Typ zu verwenden. Viele Benutzer richten in ihren .profile oder .login Dateien eine Abfrage für das eigentliche Terminal ein, wenn der Start-Typ dialup ist. Das Beispiel zeigt die Schnittstelle als unsicher und um über diese Schnittstelle root zu werden, müssen Sie sich als normaler Benutzer einloggen und &man.su.1;. Wenn sie secure (sicher) als Einstellung verwenden, kann sich root direkt einloggen. Nachdem Sie Modifikationen in /etc/ttys vorgenommen haben, müssen Sie ein hangup oder HUP Signal an &man.init.8; senden: &prompt.root; kill -HUP 1 Das bringt &man.init.8; dazu, die Datei /etc/ttys neu einzulesen. init startet dann an allen als eingeschaltet (on) markierten Schnittstellen die getty-Prozesse. Sie können herausfinden ob noch Logins für Ihre Schnittstelle verfügbar sind, wenn Sie folgendes eingeben: &prompt.user; ps -ax | grep '[t]tyd1' Sie sollten etwas sehen, das so ähnlich aussieht wie: 747 ?? I 0:00:04 /usr/libexec/getty std.57600 ttyd1 Wie kann ich ein Hardware-Terminal mit meiner FreeBSD Box verbinden? Wenn Sie einen anderen Computer als Terminal für Ihr FreeBSD System verwenden wollen, verbinden Sie die beiden seriellen Schnittstellen mit einem Nullmodem-Kabel. Wenn Sie ein echtes (Hardware-)Terminal benutzen, lesen Sie die Begleitinformationen. Ändern Sie /etc/ttys wie oben angegeben. Wenn Sie zum Beispiel ein WYSE-50 Terminal mit der fünften seriellen Schnittstelle verbinden wollen, schreiben Sie einen Eintrag wie diesen: ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure Das Beispiel zeigt, daß die Schnittstelle an /dev/ttyd4 mit einem wyse50 Terminal mit 38400 bps und ohne Parität (std.38400 aus /etc/gettytab) verbunden ist und root Logins möglich sind (secure). Warum kann ich tip oder cu nicht laufen lassen? Vielleicht sind auf Ihrem System die Programme &man.tip.1; und &man.cu.1; nur von uucp und der Gruppe dialer ausführbar. Sie können die Gruppe dialer verwenden, um zu kontrollieren wer Zugriff auf Ihr Modem oder entfernte Systeme hat. Fügen Sie sich einfach selbst zur Gruppe dialer hinzu. Als Alternative können Sie jeden Benutzer auf Ihrem System &man.tip.1; und &man.cu.1; verwenden lassen, dazu müssen Sie das folgende eingeben: &prompt.root; chmod 4511 /usr/bin/cu &prompt.root; chmod 4511 /usr/bin/tip Mein Hayes Modem wird nicht unterstützt -- was kann ich tun? Eigentlich ist die Onlinehilfe für &man.tip.1; nicht mehr aktuell. Es gibt einen eingebauten, allgemeinen Hayes Wähler. Verwenden Sie einfach at=hayes in /etc/remote. Der Hayes Treiber ist nicht schlau genug, um ein paar der erweiterten Merkmale von neueren Modems zu erkennen -- Nachrichten wie BUSY, NO DIALTONE oder CONNECT 115200 verwirren ihn nur. Sie sollten diese Nachrichten mit Hilfe von ATX0&W abschalten, wenn Sie tip benutzen. Das Anwahl-Timeout von &man.tip.1; beträgt 60 Sekunden. Ihr Modem sollte weniger verwenden, oder tip denkt, daß ein Kommunikationsfehler vorliegt. Versuchen Sie es mit ATS7=45&W. Tatsächlich unterstützt die ausgelieferte Version von &man.tip.1; es noch nicht vollständig. Die Lösung ist tipconf.h im Verzeichnis /usr/src/usr.bin/tip/tip zu editieren. Dafür benötigen Sie natürlich die Quellcode Distribution. Editieren Sie die Zeile #define HAYES 0 in #define HAYES 1 um. Dann führen Sie make und make install aus. Es sollte jetzt funktionieren. Wie soll ich die AT Befehle eingeben? Erstellen Sie einen sogenannten direct Eintrag in /etc/remote. Wenn Ihr Modem zum Beispiel an der ersten seriellen Schnittstelle, /dev/cuaa0, angeschlossen ist, dann fügen Sie die folgende Zeile hinzu: cuaa0:dv=/dev/cuaa0:br#19200:pa=none Verwenden Sie die höchste bps Rate, die Ihr Modem in der br Fähigkeit unterstützt. Geben Sie dann tip cuaa0 ein und Sie sind mit Ihrem Modem verbunden. Wenn auf Ihrem System keine /dev/cuaa0 Datei existiert, geben Sie folgendes ein: &prompt.root; cd /dev &prompt.root; sh MAKEDEV cuaa0 Oder benutzen Sie cu als root mit dem folgenden Befehl &prompt.root; cu -lline -sspeed line steht für die serielle Schnittstelle (/dev/cuaa0) und speed für die Geschwindigkeit (57600). Wenn Sie mit dem Eingeben der AT Befehle fertig sind, beenden Sie mit ~.. Wieso funktioniert das <@> Zeichen für die pn Fähigkeit nicht? Das <@> Zeichen in der Telefonnummerfähigkeit sagt tip, daß es in der Datei /etc/phones nach einer Nummer suchen soll. Aber <@> ist auch ein spezielles Zeichen in den Dateien, in denen Fähigkeiten beschrieben werden, wie /etc/remote. Schreiben Sie es mit einem '\' (backslash): pn=\@ Wie kann ich von der Kommandozeile eine Telefonnummer wählen? Stellen Sie einen allgemeinen Eintrag in /etc/remote. Zum Beispiel: tip115200|Dial any phone number at 115200 bps:\ :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: tip57600|Dial any phone number at 57600 bps:\ :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: Mit einem Befehl wie tip -115200 5551234 können Sie dann wählen. Sollten Sie &man.cu.1; im Gegensatz zu &man.tip.1; bevorzugen, verwenden Sie einen allgemeinen cu-Eintrag: cu115200|Use cu to dial any number at 115200bps:\ :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: Zum Wählen können Sie dann cu 5551234 -s 115200 eingeben. Muß ich dabei jedes Mal die bps Rate angeben? Schreiben Sie einen tip1200 oder einen cu1200 Eintrag, aber geben Sie auch die bps Rate an, die Ihr Modem wirklich unterstützt. Leider denkt &man.tip.1;, daß 1200 bps ein guter Standardwert ist und deswegen sucht es nach einem tip1200-Eintrag. Natürlich müssen Sie nicht wirklich 1200 bps benutzen. Wie kann ich möglichst komfortabel über einen Terminal-Server auf verschiedene Rechner zugreifen? Sie müssen nicht warten bis Sie verbunden sind, und jedesmal CONNECT Rechner eingeben, benutzen Sie tip's cm Fähigkeit. Sie können diese Einträge in /etc/remote verwenden: pain|pain.deep13.com|Forrester's machine:\ :cm=CONNECT pain\n:tc=deep13: muffin|muffin.deep13.com|Frank's machine:\ :cm=CONNECT muffin\n:tc=deep13: deep13:Gizmonics Institute terminal server:\ :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234: Mit den Befehlen tip pain oder tip muffin können Sie eine Verbindungen zu den Rechnern pain oder muffin herstellen; mit tip deep13 verbinden Sie sich mit dem Terminal Server. Kann tip mehr als eine Verbindung für jede Seite testen? Das ist oft ein Problem, wenn eine Universität mehrere Telefonleitungen hat und viele tausend Studenten diese benutzen wollen. Erstellen Sie einen Eintrag für Ihre Universität in /etc/remote und benutzen Sie <\@> für die pn Fähigkeit: big-university:\ :pn=\@:tc=dialout dialout:\ :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: Listen Sie die Telefonnummern für die Universitäten in /etc/phones auf: big-university 5551111 big-university 5551112 big-university 5551113 big-university 5551114 &man.tip.1; testet jede der Nummern in der aufgelisteten Reihenfolge und gibt dann auf. Möchten Sie, daß tip beim Versuchen eine Verbindung herzustellen nicht aufgibt, lassen Sie es in einer while-Schleife laufen. Warum muß ich zweimal CTRL-P tippen um ein CTRL-P zu senden? CTRL-P ist das voreingestellte Zeichen, mit dem eine Übertragung erzwungen werden kann und wird benutzt, um &man.tip.1; zu sagen, daß das nächste Zeichen direkt gesendet werden soll und nicht als Fluchtzeichen interpretiert werden soll. Mit Hilfe der ~s Fluchtsequenz, mit der man Variablen setzen kann, können Sie jedes andere Zeichen als force-Zeichen definieren. Geben Sie ~sforce=zeichen ein und drücken sie Enter. Für zeichen können Sie ein beliebiges einzelnes Zeichen einsetzen. Wenn Sie zeichen weglassen, ist das force-Zeichen nul, das Sie mit CTRL-2 oder CTRL-SPACE eingeben können. Ein guter Wert für zeichen ist SHIFT+CTRL+6, welches ich erst auf ein paar Terminal-Servern in Benutzung gesehen habe. Sie können das force-Zeichen auch bestimmen, indem Sie in $HOME/.tiprc das folgende einstellen: force=single-char Warum ist auf einmal alles was ich schreibe in GROSSBUCHSTABEN?? Sie müssen CTRL-A eingegeben haben, das raise-Zeichen von &man.tip.1; das speziell für Leute mit defekten caps-lock Tasten eingerichtet wurde. Benutzen Sie ~s wie oben und setzen Sie die Variable raisechar auf etwas, das Ihnen angemessen erscheint. Tatsächlich kann die Variable auf das gleiche Zeichen wie das force-Zeichen gesetzt werden, wenn Sie diese Fähigkeiten niemals benutzen wollen. Hier ist ein Muster der .tiprc Datei, perfekt für emacs Benutzer die oft CTRL-2 und CTRL-A tippen müssen: force=^^ raisechar=^^ Das ^^ steht für SHIFT-CTRL-6. Wie kann ich Dateien mit tip übertragen? Wenn Sie mit einem anderen Unix-System kommunizieren, können Sie Dateien senden und empfangen -- mit ~p (put) und ~t (take). Diese Befehle lassen &man.cat.1; und &man.echo.1; auf dem entfernten System laufen, um Dateien zu akzeptieren und zu senden. Die Syntax ist: ~p <local-file> [<remote-file>] ~t <remote-file> [<local-file>] Es gibt keine Fehlerkontrolle, deshalb sollten Sie besser ein anderes Protokoll benutzen, wie zmodem. Wie kann ich zmodem mit tip laufen lassen? Zuerst installieren Sie ein zmodem Programm aus der Ports-Sammlung (eines der beiden aus der comms-Kategorie, lrzsz oder rzsz). Um Dateien zu empfangen, starten Sie das Programm zum Senden auf dem entfernten Computer. Drücken Sie dann Enter gefolgt von ~C rz (oder ~C lrz, wenn Sie lrzsz installiert haben), um diese lokal zu empfangen. Um Dateien zu senden, starten Sie das Programm zum empfangen auf dem entfernten Computer. Drücken Sie dann Enter gefolgt von ~C sz Dateien (oder ~C lsz Dateien), um sie zum entfernten System zu senden. Wieso kann FreeBSD meine seriellen Schnittstellen nicht erkennen, auch wenn die Einstellungen korrekt sind? Hauptplatinen und Karten mit Acer UARTs werden im FreeBSD sio test nicht richtig erkannt. Sie erhalten einen Patch von www.lemis.com, mit dem Sie das Problem beheben können. Verschiedene Fragen FreeBSD benutzt viel mehr Swap-Speicher als Linux. Warum? Es sieht nur so aus, als ob FreeBSD mehr Swap benutzt, als Linux. Tatsächlich ist dies nicht der Fall. In dieser Hinsicht besteht der Hauptunterschied zwischen FreeBSD und Linux darin, daß FreeBSD vorbeugend vollkommen untätige, unbenutzte Seiten aus dem Hauptspeicher in den Swap-Bereich auslagert, um mehr Hauptspeicher für die aktive Nutzung zur Verfügung zu stellen. Linux tendiert dazu, nur als letzten Ausweg Seiten in den Swap-Bereich auszulagern. Die spürbar höhere Nutzung des Swap-Speichers wird durch die effizientere Nutzung des Hauptspeichers wieder ausgeglichen. Beachten Sie, daß FreeBSD in dieser Hinsicht zwar vorbeugend arbeitet, es entscheidet jedoch nicht willkürlich, Seiten auszulagern, wenn das System vollkommen untätig ist. Deshalb werden Sie feststellen, daß nicht alle Seiten Ihres Systems ausgelagert wurden, wenn Sie morgens aufstehen, nachdem das System eine Nacht lang nicht benutzt worden ist. Warum zeigt mir &man.top.1; so wenig freien Speicher an, obwohl nur wenige Programme laufen? Die Antwort ist ganz einfach: Freier Speicher ist verschwendeter Speicher. Der FreeBSD Kernel verwendet den von den Programmen nicht genutzten Speicher automatisch für den Plattencache. Die in &man.top.1; für Inact, Cache und Buf gemeldeten Werte stehen alle für zwischengespeicherte Daten mit unterschiedlichem Alter. Wenn das System wiederholt auf Daten zugreifen muß, braucht es nicht auf die langsame Platte zuzugreifen, da die Daten noch zwischengespeichert sind. Dadurch erhöht sich die Performance. Ganz generell ist es ein gutes Zeichen, wenn &man.top.1; einen kleinen Wert bei Free anzeigt, solange der Wert nicht extrem klein ist. Anmerkung des Übersetzers: Mit extrem klein sind hier Werte unterhalb 512 KByte gemeint. Warum benutzt man (was sind) die Formate a.out und ELF für ausführbare Dateien? Um zu verstehen, warum FreeBSD das Format ELF benutzt, müssen Sie zunächst etwas über die drei gegenwärtig dominanten ausführbaren Formate für Unix wissen: FreeBSD-Version 1.x und 2.x benutzten das Format a.out. &man.a.out.5; Das älteste und klassische Unix-Objektformat. Es benutzt einen kurzen, kompakten Header mit einer magischen Nummer am Anfang, die oft benutzt wird, um das Format zu charakterisieren (weitere Details finden Sie unter &man.a.out.5;). Es enthält drei geladene Segmente: .text, .data und .bss, sowie eine Symboltabelle und eine Stringtabelle. COFF Das Objektformat von SVR3. Der Header enthält nun eine "Sectiontable". Man kann also mit mehr als nur den Sections .text, .data und .bss arbeiten. ELF Der Nachfolger von COFF. Kennzeichnend sind mehrere Sections und mögliche 32-Bit- oder 64-Bit-Werte. Ein wesentlicher Nachteil: ELF wurde auch unter der Annahme entworfen, daß es nur ein ABI (Application Binary Interface) pro Systemarchitektur geben wird. Tatsächlich ist diese Annahme falsch - nicht einmal für die kommerzielle SYSV-Welt (in der es mindestens drei ABIs gibt: SVR4, Solaris, SCO) trifft sie zu. FreeBSD versucht, dieses Problem zu umgehen, indem ein Utility bereitgestellt wird, um ausführbare Dateien im ELF-Format mit Informationen über die ABI zu versehen, zu der sie passen. Weitere Informationen finden Sie in der Manualpage &man.brandelf.1;. FreeBSD kommt aus dem klassischen Lager und verwendete traditionell das Format &man.a.out.5;, eine Technologie, die bereits über viele BSD-Releases hinweg eingesetzt und geprüft worden ist. Obwohl es bereits seit einiger Zeit möglich war, auf einem FreeBSD-System auch Binaries (und Kernel) im ELF-Format zu erstellen und - auszuführen, wiedersetzte FreeBSD sich anfangs dem + auszuführen, widersetzte FreeBSD sich anfangs dem Druck, auf ELF als Standardformat umzusteigen. Warum? Nun, als das Linux-Lager die schmerzhafte Umstellung auf ELF durchführte, ging es nicht so sehr darum, dem ausführbaren Format a.out zu entkommen, als dem unflexiblen, auf Sprungtabellen basierten Mechanismus für "Shared Libraries", der die Konstruktion von Shared Libraries für Hersteller und Entwickler gleichermaßen sehr kompliziert machte. Da die verfügbaren ELF-Werkzeuge eine Lösung für das Problem mit den Shared Libraries anboten und ohnehin generell als ein Schritt - vorwärts angesehen wurden, wurde der Auffand + vorwärts angesehen wurden, wurde der Aufwand für die Umstellung als notwendig akzeptiert und die Umstellung wurde durchgeführt. Im Fall von FreeBSD ist der Mechanismus von Shared Libraries enger an den Mechanismus im Stil von Sun's SunOS angelehnt und als solcher sehr einfach zu verwenden. Seit Version 3.0 unterstützt FreeBSD ELF-Binaries jedoch offiziell als das Standardformat. Obwohl das ausführbare Format a.out uns gute Dienste geleistet hat, hat das GNU-Team, das den von uns verwendeten Compiler erstellt, die Unterstützung des a.out-Formats eingestellt. Dies zwang uns dazu, abweichende Versionen der Compiler und Linker beizubehalten und hinderte uns daran, Nutzen aus - den aktuellen Entwicklungsergebnisen von GNU zu ziehen. + den aktuellen Entwicklungsergebnissen von GNU zu ziehen. Auch die Anforderungen von ISO-C++, besonders Konstruktoren und Destruktoren, haben zur Unterstützung von ELF in zukünftigen Versionen von FreeBSD geführt. Ja aber warum gibt es so viele unterschiedliche Formate? In alter, grauer Vorzeit gab es simple Hardware. Diese simple Hardware unterstützte ein einfaches, kleines System. a.out war absolut passend für die Aufgabe, Binaries auf diesem simplen System (eine PDP-11) darzustellen. Als Unix von diesem simplen System portiert wurde, wurde auch das a.out-Format beibehalten, weil es für die frühen Portierungen auf Architekturen wie den Motorola 68000, VAXe usw. ausreichte. Dann dachte sich ein schlauer Hardware-Ingenieur, daß wenn er Software zwingen könnte, einige Tricks anzustellen, es ihm möglich wäre, ein paar Gatter im Design zu sparen, und seinen CPU-Kern schneller zu machen. Obgleich es dazu gebracht wurde, mit dieser neuen Art von Hardware (heute als RISC bekannt) zu arbeiten, war a.out für diese Hardware schlecht geeignet. Deshalb wurde viele neue Formate entwickelt, um eine bessere Leistung auf dieser Hardware zu erreichen, als mit dem begrenzten, simplen a.out-Format. Dinge wie COFF, ECOFF und einige andere obskure wurden erdacht und ihre Grenzen untersucht, bevor die Dinge sich in Richtung ELF entwickelten. Hinzu kam, daß die Größe von Programmen gewaltig wurden und Festplatten (und physikalischer Speicher) immer noch relativ klein waren. Also wurde das Konzept von Shared Libraries geboren. Das VM-System wurde auch immer fortgeschrittener. Obwohl bei jedem dieser Fortschritte das a.out-Format benutzt worden ist, wurde sein Nutzen mit jedem neuen Merkmal mehr und mehr gedehnt. Zusätzlich wollte man Dinge dynamisch zur Ausführungszeit laden, oder Teile ihres Programms nach der Initialisierung wegwerfen, um Hauptspeicher und/oder Swap-Speicher zu sparen. Programmiersprachen wurden immer fortschrittlicher und man wollte, daß Code automatisch vor der main-Funktion aufgerufen wird. Das a.out-Format wurde oft überarbeitet, um alle diese Dinge zu ermöglichen und sie funktionierten auch für einige Zeit. a.out konnte diese Probleme nicht ohne ein ständiges Ansteigen eines Overheads im Code und in der Komplexität handhaben. Obwohl ELF viele dieser Probleme löste, wäre es sehr aufwendig, ein System umzustellen, das im Grunde genommen funktionierte. Also mußte ELF warten, bis es aufwendiger war, bei a.out zu bleiben, als zu ELF überzugehen. Im Laufe der Zeit haben sich die Erstellungswerkzeuge, von denen FreeBSD seine Erstellungswerkzeuge abgeleitet hat (speziell der Assembler und der Loader), in zwei parallele Zweige entwickelt. Im FreeBSD-Zweig wurden Shared Libraries hinzugefügt und einige Fehler behoben. Das GNU-Team, das diese Programme ursprünglich geschrieben hat, hat sie umgeschrieben und eine simplere Unterstützung zur Erstellung von Cross-Compilern durch beliebiges Einschalten verschiedener Formate usw. hinzugefügt. Viele Leute wollten Cross-Compiler für FreeBSD erstellen, aber sie hatten kein Glück, denn FreeBSD's ältere Sourcen für as und ld waren hierzu nicht geeignet. Die neuen GNU-Werkzeuge (binutils) unterstützen Cross-Compilierung, ELF, Shared Libraries, C++-Erweiterungen usw. Weiterhin geben viele Hersteller ELF-Binaries heraus und es ist gut, wenn FreeBSD sie ausführen kann. Und wenn es ELF-Binaries ausführt, warum dann auch noch a.out behalten? Es ist ein müdes, altes Pferd, daß sich für eine lange Zeit als nützlich erwiesen hat, aber es ist an der Zeit, es für seine langen, treuen Dienstjahre auf die Weide zu schicken. ELF ist ausdrucksfähiger als a.out und gestattet eine bessere Erweiterbarkeit des Basissystems. Die ELF-Werkzeuge werden besser gewartet und bieten Unterstützung von Cross-Compilierung, was für viele Leute wichtig ist. ELF mag etwas langsamer sein, als a.out, aber zu versuchen, das zu messen, könnte schwierig werden. Es gibt unzählige Details, in denen sich die beiden Formate unterscheiden, wie sie Pages abbilden, Initialisierungscode handhaben usw. Keins davon ist sehr wichtig, aber es sind Unterschiede. Irgendwann wird die Unterstützung für Programme im a.out-Format aus dem GENERIC Kernel entfernt werden. Wenn es dann keinen oder kaum noch Bedarf für die Unterstützung dieses Formates gibt, werden die entsprechenden Routinen ganz entfernt werden. Warum ändert chmod die Zugriffsrechte auf symbolische Links nicht? Für symbolische Links gibt es keine separaten Zugriffsrechte und standardmäßig folgt &man.chmod.1; dem Link nicht; die Zugriffsrechte für die Datei, auf die der symbolische Link zeigt, werden also nicht verändert. Wenn Sie eine Datei mit dem Namen foo und einen auf diese Datei zeigenden symbolischen Link mit dem Namen bar haben, wird das folgende Kommando niemals einen Fehler melden. &prompt.user; chmod g-w bar Trotzdem werden die Zugriffsrechte für foo nicht geändert. Hierzu müssen Sie entweder oder zusammen mit der Option benutzen. Weitere Informationen finden Sie in den Manualpages &man.chmod.1; und &man.symlink.7;. Die Option bewirkt ein REKURSIVES &man.chmod.1; Seien Sie vorsichtig, wenn Sie bei &man.chmod.1; Verzeichnisse oder symbolische Links zu Verzeichnissen angeben. Wenn Sie die Zugriffsrechte eines Verzeichnisses ändern möchten, das durch einen symbolischen Link referenziert wird, benutzen Sie &man.chmod.1; ohne irgendwelche Optionen und folgen dem symbolischen Link durch einen abschliessenden Schrägstrich (/). Falls z.B. foo ein symbolischer Link zum Verzeichnis bar ist und Sie die Zugriffsrechte von foo (tatsächlich bar) ändern möchten, dann benutzen Sie etwas ähnliches wie: &prompt.user; chmod 555 foo/ Durch den abschliessenden Schrägstrich folgt &man.chmod.1; dem symbolischen Link foo, um die Zugriffsrechte für das Verzeichnis bar zu ändern. - Warum sind Loginnamen immer noch - auf acht Zeichen begrenzt? + Warum sind Loginnamen bis einschließlich FreeBSD + 2.2.X auf acht Zeichen begrenzt? Sie denken vielleicht, daß es leicht sein sollte, UT_NAMESIZE zu ändern, das ganze System neu zu erstellen und das dann alles funktionieren müßte. Unglücklicherweise gibt es oft dutzende Applikationen und Utilities (einschließlich Systemwerkzeuge), bei denen kleine Zahlen (nicht immer 8 oder 9, sondern auch sonderbare, wie 15 und 20) in Strukturen und Puffern fest codiert sind. Hierdurch erhalten Sie nicht nur unbrauchbare Logdateien (weil variabel lange Sätze ausgegeben werden, wo Sätze fester Länge erwartet werden), sondern es kann dazu führen, daß Sun's NIS-Clients nicht mehr funktionieren und möglicherweise andere Probleme bei der Interaktion mit anderen Unix-Systemen verursachen. In FreeBSD 3.0 und späteren wurde die maximale Länge für Namen auf 16 Zeichen erweitert und die unterschiedlichen Utilities mit fest codierten Namenslängen wurden gefunden und bereinigt. Die Tatsache, daß hiervon so viele Bereiche des Systems betroffen waren, ist der Grund, warum diese Änderung nicht vor 3.0 durchgeführt worden ist. Wenn Sie sich absolut sicher sind, daß Sie diese Art von Problemen selbst finden und bereinigen können, wenn und falls sie auftreten, dann können Sie die Länge von Loginnamen in früheren Versionen ändern, indem Sie /usr/include/utmp.h editieren und UT_NAMESIZE entsprechend ändern. Sie müssen MAXLOGNAME in /usr/include/sys/param.h auch entsprechend der Änderung von UT_NAMESIZE ändern. Schließlich, vergessen Sie nicht, daß /usr/include jedesmal aktualisiert wird, wenn Sie von den Sourcen aus Erstellen! Ändern Sie stattdessen die entsprechen Dateien in /usr/src/... Kann ich DOS-Programme unter FreeBSD ausführen? Ja, ab Version 3.0 können Sie die DOS-Emulation doscmd der Firma BSDi benutzen, die integriert und erweitert wurde. Schicken Sie eine Mail an die &a.emulation;, wenn Sie daran interessiert sind, an den laufenden Bemühungen teilzunehmen! Für Systeme vor 3.0 gibt es ein nettes Utility pcemu in der Ports-Sammlung, das einen 8088 und genug BIOS-Dienste emuliert, um DOS-Applikationen im Textmodus auszuführen. Hierzu wird das X Window-System benötigt (erhältlich als XFree86). Was muß ich tun, um die FreeBSD-Dokumentation in meine Muttersprache zu übersetzen? Informationen zu diesem Thema finden Sie in der FAQ + url="http://www.de.FreeBSD.org/de/uebersetzung.html">FAQ des FreeBSD German Documentation Project. + + + Warum kommen alle meine Mails, die ich an @FreeBSD.org + schicke, wieder zurück? + + + + Das Mailsystem von FreeBSD.org nicht keine Mail an, + wenn es Anzeichen für Konfigurationsprobleme oder + Spam gibt. Dies kann aus einem der folgenden Gründe + geschehen: + + + + Die Mail kommt von einem System oder Netzwerk, + daß für Spam-Aktivitäten bekannt + ist. + + Die Mailserver von FreeBSD akzeptierten keine + Mails von bekannten Spam-Quellen. Wenn Sie auf eine + Firma oder Domain benutzen, die Spam erzeugt oder + verteilt, sollten Sie sich einen anderen ISP + suchen. + + + + Der Mailtext enthält HTML. + + Mail sollte immer im Klartext gesendet werden, Sie + sollten ihr Mailprogramm entsprechend + einstellen. + + + + Das Mailsystem kann die IP-Adresse des + einliefernden Systems nicht in einen symbolischen + Namen umwandeln. + + Funktionierendes reverse DNS ist eine + Vorbedingung, damit ihre Mails angenommen wird. + Sorgen Sie dafür, daß der reverse DNS + für Ihren Mailserver korrekt konfiguriert wird. + Viele Anbieter für Privatkunden geben Ihnen diese + Möglichkeit nicht. In diesem Fall sollten Sie + Ihre Mails über den Mailserver Ihres Providers + versenden. + + + + + Wo kann ich einen freien FreeBSD-Account bekommen? Das FreeBSD-Projekt bietet zwar keinen freien Zugang zu seinen Servern an; andere Firmen bieten jedoch frei zugängliche Unix-Systeme. Die Kosten variieren und es kann sein, daß nicht alle Dienste zur Verfügung stehen. Arbornet, Inc, auch als M-Net bekannt, bietet seit 1983 uneingeschränkten Zugang zu Unix-Systemen. Zunächst wurde eine Altos-Maschine mit System III benutzt, 1991 erfolgte dann der Wechsel zu BSD/OS. Im Juni 2000 erfolgte ein erneuter Wechsel, diesmal zu FreeBSD. M-Net bietet Zugang mit Telnet und SSH und den - Zugang zur gesammten Software von FreeBSD. Allerdings ist + Zugang zur gesamten Software von FreeBSD. Allerdings ist der Zugriff auf das Netzwerk auf Mitglieder und Gönner beschränkt, die eine Spende an die nicht-kommerzielle Organisation geleistet haben. M-Net stellt zusätzlich ein Mailbox-System und einen interaktiven Chat zur Verfügung. Grex bietet ein ganz ähnlichen Dienst wie M-Net an, dazu gehören auch das Mailbox-System und der interaktive Chat. Allerdings wird eine SUN4M mit SunOS benutzt. Was ist sup und wie benutze ich es? Der Name SUP steht für Software Update Protocol und wurde von der CMU (Carnegie Mellon University) entwickelt, um ihre Entwicklungszweige zu synchronisieren. Wir haben es benutzt, um entfernte Sites mit unseren zentralen Quellcodeentwicklungen zu synchronisieren. SUP ist nicht sehr bandbreitenfreundlich und wurde abgelöst. Die derzeit empfohlene Methode, um Ihren Quellcode auf dem neuesten Stand zu halten ist Handbucheintrag zu - CVSup. + url="../handbook/synching.html#CVSUP">CVSup. - - Wie cool ist FreeBSD? + + Wie heißt das niedliche rote Kerlchen? - - Q. Hat irgend jemand Temperaturmessungen - durchgeführt, während FreeBSD läuft? Ich - weiß, daß Linux cooler läuft, als DOS, - aber niemals gesehen, daß FreeBSD erwähnt - wurde. Es scheint sehr heiß zu laufen. - - A. Nein, aber wir haben zahlreiche Geschmackstests mit - verblendeten Freiwilligen durchgeführt, denen - ausßerdem zuvor 250 Mikrogramm LSD-25 verabreicht - wurden. 35% der Freiwilligen sagte, daß FreeBSD - nach Orange schmeckte, Linux hingegen schmecke wie - purple haze (Anm. d. Übersetzers: Song - von Jimmy Hendrix und LSD-Marke). Keine der Gruppen hat - besondere Abweichungen der Temperatur erwähnt. - Eventuell hätten wir sämtliche Ergebnisse dieser - Untersuchung fortwerfen sollen, als wir festgestellt - haben, daß zu viele der Freiwillingen den Raum - während der Tests verlassen haben und dadurch die - Ergebnisse verfälscht haben. Wir glauben, daß - die meisten der Freiwilligen nun bei Apple sind und an - ihrer neuen scratch and sniff - Oberfläche arbeiten. Es ist ein lustiges, altes - Geschäft, in dem wir uns befinden! - - Ernsthaft, FreeBSD und Linux benutzen beide die - Instruktion HLT (halt), wenn das System - untätig ist, wodurch der Energieverbrauch und dadurch - die produzierte Wärme reduziert wird. Falls Sie auch - noch APM (advanced power management) konfiguriert haben, - kann FreeBSD Ihre CPU auch in einen Low-Power-Modus - bringen. + + Er ist namenlos, es ist einfach der der BSD + Daemon. Wenn Sie ihm unbedingt einen Namen geben + wollen, rufen Sie ihn beastie. Beachten + Sie aber, daß beastie als + BSD ausgesprochen werden. + + Weitere Informationen über den BSD daemon finden + Sie auf seiner + Homepage. - - Wer kratzt in meinen Speicherbänken?? + + Kann ich Bilder des BSD Daemon verwenden? - Q. Gibt es irgend etwas seltsames, das - FreeBSD tut, wenn ich den Kernel kompiliere, das dazu - führt, daß der Speicher ein kratzendes - Geräusch macht? Bei der Kompilierung (und auch - für einen kurzen Moment nach der Erkennung des - Floppy-Laufwerks beim Hochfahren), kommt ein seltsames - kratzendes Geräusch von etwas das die - Speicherbänke zu sein scheinen. + Eventuell. Der BSD Daemon unterliegt dem Copyright + von Marshall Kirk McKusick. Wenn Sie genaue Informationen + über die Einschränkungen bei der Nutzung + brauchen, sollten Sie sein Statement + on the Use of the BSD Daemon Figure lesen. - A. Ja! In der BSD-Dokumentation finden Sie - häufige Verweise auf Daemons und was - die meisten Leute nicht wissen, ist, daß diese sich - auf echte, nicht-körperlichen Wesen beziehen, die - Besitz von Ihrem Computer ergriffen haben. Das kratzende - Geräusch, das von Ihrem Speicher kommt, ist in - Wirklichkeit hochtöniges Flüstern, das unter den - Daemons ausgetauscht wird, während Sie entscheiden, - wie Sie die verschiedenen Systemadministrationsaufgaben, - am besten erledigen. + Kurz gesagt, können Sie den BSD Daemon benutzen, + solange es für einen privaten Zweck ist und die + Nutzung geschmackvoll bleibt. Für den kommerziellen + Einsatz brauchen Sie die Zustimmung von Kirk McKusick. + Weitere Informationen erhalten Sie auf der Webseite BSD + Daemon's home page. + + - Wenn Sie das Geräusch stört, wird ein - fdisk /mbr sie vertreiben, aber wundern - Sie sich nicht, wenn sie feindlich reagieren und - versuchen, Sie aufzuhalten. Wenn Sie während der - Ausführung zu irgendeinem Zeitpunkt die teuflische - Stimme von Bill Gates aus dem eingebauten Lautsprecher - kommen hören, laufen Sie weg und sehen Sie sich auf - keinen Fall um! Befreit von dem ausgleichenden - Einfluß der BSD Dämonen sind die beiden - Dämonen von DOS und Windows oft dazu in der Lage, die - totale Kontrolle über Ihre Maschine für die - ewige Verdammung Ihrer Seele zurückzuerlangen. Da - Sie jetzt die Wahrheit kennen, würden Sie es - vorziehen, sich an die Geräsche zu gewöhnen, - wenn Sie die Wahl hätten. + + + Woher kann ich Bilder des BSD Daemon bekommen? + + + + Einige Bilder in den Format xfig und eps sind unter + /usr/share/examples/BSD_daemon/ zu + finden. Was bedeutet MFC? MFC ist ein Acronym für Merged From -Current. Es wird in den CVS-Logs benutzt, um zu kennzeichnen, wenn eine Änderung vom CURRENT-Zweig in den STABLE-Zweig übernommen worden ist. Was bedeutet BSD? Es steht für etwas in einer geheimen Sprache, das nur Mitglieder wissen können. Es kann nicht wörtlich übersetzt werden, aber wir können Ihnen sagen, daß die Übersetzung von BSD etwas zwischen Formel-1 Team, Pinguine sind ein leckerer Imbiß und Wir haben einen besseren Sinn für Humor als Linux ist :-) - Ernsthaft, BSD ist ein Acronym für Berkley + Ernsthaft, BSD ist ein Acronym für Berkeley Software Distribution. Das ist der Name, den die - Berkley CSRG (Computer Systems Research + Berkeley CSRG (Computer Systems Research Group) damals für ihre Unix-Distribution gewählt hat. Was ist eine repo-copy? Eine repo-copy (die Kurzform von repository copy) bedeutet, daß Dateien direkt innerhalb des CVS repository kopiert wurden. Wenn eine Datei an einen anderen Ort im Repository kopiert oder verschoben werden müsste, würde ein - Comitter ohne repo-copy die neue Datei mit cvs + Committer ohne repo-copy die neue Datei mit cvs add hinzufügen und die alte ggfs. mit cvs rm löschen. Damit würden allerdings die Einträge in der History (die Einträge im CVS-Logfile) nicht mit übertragen. Da das FreeBSD Projekt diese Informationen allerdings für äußerst nützlich hält, wird eine repository copy durchgeführt. Bei diesem Vorgang wird einer der CVS-Meister die Dateien direkt innerhalb des Repository verschieben, statt das Programm &man.cvs.1; zu benutzen. Warum sollte mich die Farbe des Fahrradschuppens interessieren? Die ganz, ganz kurze Antwort ist überhaupt nicht. Die etwas längere Antwort lautet: Nur weil Sie in der Lage sind, einen Fahrradschuppen zu bauen, müssen Sie noch lange nicht andere davon abhalten, nur weil Ihnen die Farbe gefällt. Dies ist natürlich eine Metapher dafür, daß Sie nicht eine Diskussion über jede kleine Änderung beginnen sollen, nur weil Sie das können. Einige Leute behaupten sogar, daß die Anzahl der (nutzlosen) Kommentare über eine Änderung umgekehrt proportional zu Ihrer Komplexität der Änderung ist. Die noch längere und vollständigere Antwort ist, daß &a.phk; nach einen langen Diskussion über das Thema "Soll &man.sleep.1; Sekundenbruchteile als Parameter akzeptieren?" eine lange Mail mit dem Titel A bike shed (any colour will do) on greener grass... schrieb. Die einschlägigen Teile der Nachricht lauteten:
&a.phk; in freebsd-hackers, 2.10.1999 Einige von Euch haben mich gefragt, Was meinst Du mit dem Fahrradschuppen? Es ist eine lange oder eigentlich eher eine sehr alte und doch sehr kurze Geschichte. C. Northcote Parkinson schrieb in den führen sechzigern ein Buch mit dem Namen Parkinson's Law, das viele Einblick in die Beziehungen innerhalb des Managements gibt. [ein paar Kommentare zum Buch gestrichen] In dem Beispiel mit dem Fahrradschuppen ist die andere wichtige Komponente ein Kernkraftwerk. Ich glaube, daß zeigt schon, wie alt dieses Buch ist. Parkinson zeigte, daß man zum Vorstand gehen kann und die Genehmigung für ein mehrere Millionen oder sogar Milliarden Dollar teures Kernkraftwerk bekommt; wenn man aber einen Fahrradschuppen bauen will, wird man in endlose Diskussionen verwickelt. Laut Parkinson liegt das daran, daß ein Kernkraftwerk so groß, so teuer und so kompliziert ist, daß die Leute es nicht verstehen. Und bevor sie versuchen, es zu verstehen, verlassen Sie sich lieber darauf, daß irgend jemand sicherlich die ganzen Details geprüft hat, bevor das Projekt bis zum Vorstand gekommen ist. Im Buch von Richard P. Feynmann finden sich einige interessante und sehr passende Beispiele aus dem Gebiet von Los Alamos. Ein Fahrradschuppen ist was anderes. Jeder kann an seinem freien Wochenende einen bauen und hat trotzdem noch genug Zeit für die Sportschau. Daher ist es unwichtig, wie gut man sich vorbereitet und wie sinnvoll der eigene Vorschlag ist. Irgend jemand wird die Möglichkeit nutzen und zeigen, daß er seine Arbeit tut, daß er aufmerksam ist, daß er da ist. In Dänemark nennen wir dieses Verhalten Seine Fingerabdrücke hinterlassen. Es geht um persönlichen Stolz und Prestige; die Chance, auf irgend etwas zu zeigen und zu sagen zu können: Da! Das habe Ich getan. Politiker leiden sehr stark darunter, aber viele Leute verhalten sich so, wenn sie die Chance haben. Denkt einfach mal an Fußabdrücke in feuchtem Zement.
+
+
+ + + Nicht ganz ernstgemeinte Fragen + + + + + Wie cool ist FreeBSD? + + + + Q. Hat irgend jemand Temperaturmessungen + durchgeführt, während FreeBSD läuft? Ich + weiß, daß Linux cooler läuft, als DOS, + aber niemals gesehen, daß FreeBSD erwähnt + wurde. Es scheint sehr heiß zu laufen. + + A. Nein, aber wir haben zahlreiche Geschmackstests mit + verblendeten Freiwilligen durchgeführt, denen + außerdem zuvor 250 Mikrogramm LSD-25 verabreicht + wurden. 35% der Freiwilligen sagte, daß FreeBSD + nach Orange schmeckte, Linux hingegen schmecke wie + purple haze (Anm. d. Übersetzers: Song + von Jimmy Hendrix und LSD-Marke). Keine der Gruppen hat + besondere Abweichungen der Temperatur erwähnt. + Eventuell hätten wir sämtliche Ergebnisse dieser + Untersuchung fortwerfen sollen, als wir festgestellt + haben, daß zu viele der Freiwilligen den Raum + während der Tests verlassen haben und dadurch die + Ergebnisse verfälscht haben. Wir glauben, daß + die meisten der Freiwilligen nun bei Apple sind und an + ihrer neuen scratch and sniff + Oberfläche arbeiten. Es ist ein lustiges, altes + Geschäft, in dem wir uns befinden! + + Ernsthaft, FreeBSD und Linux benutzen beide die + Instruktion HLT (halt), wenn das System + untätig ist, wodurch der Energieverbrauch und dadurch + die produzierte Wärme reduziert wird. Falls Sie auch + noch APM (advanced power management) konfiguriert haben, + kann FreeBSD Ihre CPU auch in einen Low-Power-Modus + bringen. + + + + + + Wer kratzt in meinen Speicherbänken?? + + + + Q. Gibt es irgend etwas seltsames, das + FreeBSD tut, wenn ich den Kernel kompiliere, das dazu + führt, daß der Speicher ein kratzendes + Geräusch macht? Bei der Kompilierung (und auch + für einen kurzen Moment nach der Erkennung des + Floppy-Laufwerks beim Hochfahren), kommt ein seltsames + kratzendes Geräusch von etwas das die + Speicherbänke zu sein scheinen. + + A. Ja! In der BSD-Dokumentation finden Sie + häufige Verweise auf Daemons und was + die meisten Leute nicht wissen, ist, daß diese sich + auf echte, nicht-körperlichen Wesen beziehen, die + Besitz von Ihrem Computer ergriffen haben. Das kratzende + Geräusch, das von Ihrem Speicher kommt, ist in + Wirklichkeit hochtöniges Flüstern, das unter den + Daemons ausgetauscht wird, während Sie entscheiden, + wie Sie die verschiedenen Systemadministrationsaufgaben, + am besten erledigen. + + Wenn Sie das Geräusch stört, wird ein + fdisk /mbr sie vertreiben, aber wundern + Sie sich nicht, wenn sie feindlich reagieren und + versuchen, Sie aufzuhalten. Wenn Sie während der + Ausführung zu irgendeinem Zeitpunkt die teuflische + Stimme von Bill Gates aus dem eingebauten Lautsprecher + kommen hören, laufen Sie weg und sehen Sie sich auf + keinen Fall um! Befreit von dem ausgleichenden + Einfluß der BSD Dämonen sind die beiden + Dämonen von DOS und Windows oft dazu in der Lage, die + totale Kontrolle über Ihre Maschine für die + ewige Verdammung Ihrer Seele zurückzuerlangen. Da + Sie jetzt die Wahrheit kennen, würden Sie es + vorziehen, sich an die Geräusche zu gewöhnen, + wenn Sie die Wahl hätten. + + Wieviele FreeBSD-Hacker braucht man, um eine Glühbirne auszuwechseln? Eintausendeinhundertundzweiundsiebzig: Dreiundzwanzig, die sich bei -CURRENT beschweren, daß das Licht aus ist; Vier, die behaupten, daß es sich um ein Konfigurationsproblem handelt und daß solche Dinge wirklich nach -questions gehören; Drei, die PRs hierzu einreichen, einer von ihnen wird falsch unter DOC abgelegt und fristet sein Dasein im Dunkeln; Einen, der eine ungetestete Glühbirne einreicht, wonach buildworld nicht mehr funktioniert, und sie dann fünf Minuten später wieder herausnimmt; Acht, die die PR-Erzeuger beschimpfen, weil sie zu ihren PRs keine Patche hinzugefügt haben; Fünf, die sich darüber beschweren, daß buildworld nicht mehr funktioniert; Einunddreißig, die antworten, daß es bei ihnen funktioniert und daß sie cvsup wohl zu einigem ungünstigen Zeitpunkt durchgeführt haben; Einen, der einen Patch für eine neue Glühbirne an -hackers schickt; Einen, der sich beschwert, daß es vor drei Jahren Patches hierfür hatte, aber als er sie nach -CURRENT schickte, sind sie einfach ignoriert worden und er hatte schlechte Erfahrungen mit dem PR-System; nebenbei ist die vorgeschlagene Glühbirne nicht reflexiv; Siebenunddreißig, die schreien, daß Glühbirnen nicht ins Basissystem gehören, daß Committer nicht das Recht haben, solche Dinge durchzuführen, ohne die Gemeinschaft zu konsultieren und WAS GEDENKT -CORE HIER ZU TUN!? Zweihundert, die sich über die Farbe des Fahrradschuppens beschweren; Drei, die darauf hinweisen, daß der Patch nicht mit &man.style.9; übereinstimmt; Siebzehn, die sich beschweren, daß die vorgeschlagene neue Glühbirne der GPL unterliegt; Fünfhundertundsechsundachtzig, die sich in einen Streit über die vergleichbaren Vorteile der GPL, der BSD-Lizenz, der MIT-Lizenz, der NPL und der persönlichen Hygiene nichtgenannter FSF-Gründer verwickeln; Sieben, die unterschiedliche Teile des Threads nach -chat und -advocacy weiterleiten; Einer, der die vorgeschlagene Glühbirne einbaut, obwohl sie dunkler leuchtet, als die alte; Zwei, die sie wieder ausbauen, und in einer wütenden Nachricht argumentieren, daß FreeBSD besser ganz im Dunkeln dasteht, als mit einer dämmerigen Glühbirne; Sechsundvierzig, die sich lärmend wegen des Wiederausbaus der dämmerigen Glühbirne streiten und eine Erklärung von -core verlangen; Elf, die eine kleinere Glühbirne beantragen, damit sie in ihr Tamagotchi paßt, falls wir irgendwann beschließen, FreeBSD auf diese Plattform zu portieren; Dreiundsiebzig, die sich über die SNR auf -hackers und -chat beschweren und aus Protest abmelden; Dreizehn, die "unsubscribe", "How do I unsubscribe?", oder "Please remove me from the list", gefolgt von der üblichen Fußzeile abschicken; Einen, der eine funktionierende Glühbirne einbaut, während alle zu beschäftigt damit sind, mit jedem zu streiten, um es zu bemerken; - Einunddreiß, die herausstellen, daß die + Einunddreißig, die herausstellen, daß die neue Glühbirne 0,364% heller leuchten würde, wenn sie mit TenDRA kompiliert werden würde (obwohl sie ein einen Würfel umgeformt werden müßte) und daß FreeBSD deshalb nach TenDRA, anstatt nach EGCS wechseln sollte; Einen, der sich beschwert, daß bei der neuen Glühbirne die Verkleidung fehlt; Neun (einschließlich der PR-Ersteller), die fragen "Was ist MFC?"; Siebenundfünfzig, die sich zwei Wochen, nachdem die Birne gewechselt worden ist, darüber beschweren, daß das Licht aus war. &a.nik; hat hinzugefügt: Ich habe ziemlich hierüber gelacht. Und dann dachte ich: "Halt, sollte in dieser Liste nicht irgendwo 'Einer, der es dokumentiert' sein?" Und dann wurde ich erleuchtet :-) + + - This entry is Copyright (c) 1999 &a.des;. - Please do not reproduce without - attribution. + + + Was passiert mit den Daten, die nach + /dev/null geschrieben werden? + + + + Sie werden in einer speziellen Datensenke der CPU in + Wärme umgewandelt, die dann über den + Kühlkörper und den Lüfter abgeführt + wird. Dies ist einer der Gründe für die + Kühlung von CPUs; die Anwender gewöhnen sich an + die schnelleren Prozessoren, gehen nicht mehr so + sorgfältig mit Ihren Daten um und so landen immer + mehr Daten in /dev/null, was zur + Überhitzung der CPU führt. Wenn Sie + /dev/null löschen (was die + Datensenke ziemlich sicher abschaltet), wird Ihre CPU zwar + nicht mehr so heiß, dafür wird Ihr System aber + sehr schnell von den überzähligen Daten + überladen und merkwürdige Effekte zeigen. Wenn + Sie eine sehr schnell Netzwerkverbindung haben, + können Sie Ihre CPU kühlen, indem sie Daten aus + /dev/random lesen und in die Weite + des Netzwerkes schicken; allerdings besteht hier die + Gefahr der Überhitzung von Netzwerk und + /. Außerdem dürfte Ihr + ISP ziemlich wütend werden, da der größte + Teil der Daten von seinen Geräten in Hitze + umgewandelt werden wird; da ISPs aber über + Klimaanlagen verfügen, sollte das kein großes + Problem sein, solange Sie es nicht + übertreiben. + + Nachtrag Paul Robinson: + + Es gibt andere Mittel und Wege. Wie jeder gute + Systemadministrator weiß, gehört es zum guten + Ton, einigen Daten zum Bildschirm zu senden, damit die + Leuchtkäferchen, die das Bild anzeigen, + glücklich sind. Die Leuchtkäferchen werden nach + der Farbe Ihrer Hüte (Rot, Grün, oder Blau) + unterschieden und sie verstecken bzw. zeigen sich (wobei + man die Farbe ihrer Hüte erkennen kann) bei jeder + Nahrungsaufnahme. Grafikkarten wandeln Daten in + Leuchkäfer-Nahrung um und schicken sie dann zu den + Leuchtkäfern - teure Karten erzeugen bessere Nahrung + und sorgen so für besseres Verhalten der + Leuchtkäfer. Diese brauchen allerdings einen + konstanten Stimulus - darum gibt es + Bildschirmschoner. + + Darum lautet mein Vorschlag, die zufälligen Daten + einfach zum Bildschirm zu schicken, damit sie von den + Leuchtkäfern verzehrt werden. Dabei entsteht keine + Hitze, die Leuchtkäfer bleiben glücklich und man + wird seine überflüssigen Daten sehr schnell los, + auch wenn der Bildschirm etwas merkwürdig + aussieht. + + Übrigens: Als Ex-Admin eines großen ISPs, + der so seine Probleme mit der Kühlung seines + Rechenzentrums hatte, kann ich nur davon abraten, + überflüssige Daten einfach ins Netzwerk zu + schicken. Die Heinzelmännchen, die die Pakete + verteilen und versenden, regen sich darüber ganz + furchtbar auf. Weiterführende Themen + + + Wie kann ich mehr über die Interna von FreeBSD erfahren? + + + + Zur Zeit gibt es kein Buch über die Interna von + FreeBSD. Allgemeines Wissen über Wissen kann + allerdings in den meisten Fällen auf FreeBSD + angewendet werden. Auch einige der BSD-spezifischen + Bücher sind für FreeBSD verwendbar. + + Eine Liste finden Sie im entsprechenden Abschnitt der + + Bibliographie. + + + + Was sind SNAPs und RELEASEs? Derzeit existieren drei aktive/halbaktive Zweige im FreeBSD-CVS-Repository (im Zweig RELENG_2 erfolgen vielleicht noch zwei Änderungen pro Jahr, daher gibt - es nur drei aktive Entwicklungszwenige: + es nur drei aktive Entwicklungszweige: RELENG_2_2 bzw. 2.2-STABLE RELENG_3 bzw. 3.X-STABLE RELENG_4 bzw. 4-STABLE HEAD bzw. -CURRENT oder 5.0-CURRENT HEAD ist keine wirkliche Bezeichnung für einen Zweig, wie die anderen beiden. Es ist lediglich eine symbolische Konstante für den aktuellen, nicht verzweigten Entwicklungsstrom, auf den wir uns einfach als -CURRENT beziehen. Zur Zeit ist -CURRENT der 5.0 Entwicklungsstrom und der 4-STABLE-Zweig RELENG_4 wurde im März 2000 von -CURRENT abgespalten. Der 2.2-STABLE-Zweig RELENG_2_2 verließ -CURRENT im November 1996, die Weiterentwicklung wurde fast vollständig eingestellt. Wie kann ich meine eigene, angepaßtes Release erstellen? - Um ein Release zu erstellen, müssen Sie drei - Dinge tun: erstens müssen Sie einen Kernel benutzen, - der das Gerät &man.vn.4; enthält. Fügen - Sie folgendes in ihre Kernelkonfigurationsdatei ein und - erstellen Sie einen neuen Kernel: - - -pseudo-device vn #Vnode driver (verwandelt eine Datei in ein Gerät) - - - Zweitens müssen Sie das vollständige - CVS-Repository zur Hand haben. Sie können hierzu - CVSUP - benutzen. Sie müssen in den Konfigurationsdateien - für cvsup als Release - cvs verwenden und alle evtl. - vorhandenen tag= und - date= Zeilen entfernen: - - -*default prefix=/home/ncvs -*default base=/a -*default host=cvsup.FreeBSD.org -*default release=cvs -*default delete compress use-rel-suffix - -## Main Source Tree -src-all -src-eBones -src-secure - -# Other stuff -ports-all -www -doc-all - - - Benutzen Sie dann cvsup -g supfile, - um all die guten Bits auf Ihren Rechner zu - saugen... - - Schließlich brauchen Sie eine Menge freien - Plattenplatz für die Erstellung. Angenommen, er - befindet sich unter - /some/big/filesystem und entsprechend - dem obigen Beispiel befindet sich das CVS-Repository unter - /home/ncvs: - - &prompt.root; setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs -&prompt.root; cd /usr/src -&prompt.root; make buildworld -&prompt.root; cd /usr/src/release -&prompt.root; make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release - - - Es ist nicht notwendig, - make buildworld auszuführen, - wenn Sie über ein aktuelles - /usr/obj verfügen. - - - Ein vollständiges Release wird nun unter - /some/big/filesystem/release - erstellt. Wenn der Vorgang abgeschlossen ist, finden Sie - unter - /some/big/filesystem/release/R/ftp - eine vollständige FTP-fähige Installlation. - Falls Sie Ihren SNAP von einem anderen Zweig als -CURRENT - erstellen wollen, können Sie auch - RELEASETAG=SOMETAG zu der obigen - Befehlszeile "make release" hinzufügen, z.B. - würde RELEASETAG=RELENG_2_2 einen - minutenaktuellen Schnappschuß von 2.2-STABLE - erstellen. - - - - - - Wie erstelle ich eine angepaßte - Installationsdiskette? - - - - Der gesamte Prozeß zur Erstellung von - Installationsdisketten und Quell- und Binärarchiven - ist durch verschiedene Targets in - /usr/src/release/Makefile - automatisiert. Die dortigen Informationen sollten - für einen Einstieg ausreichen. Es sollte jedoch - erwähnt werden, daß dies ein make - world einschließt und daher sehr viel Zeit - und Plattenplatz in Anspruch nimmt. + Eine Anleitung dazu finden Sie im Kapitel Erzeugung einer + eigenen Release des Handbuchs. Wieso überschreibt make world das installierte System? Das ist beabsichtigt. Wie der Name schon andeutet, erstellt make world alle Systemdateien von Grund auf neu. Sie können also sicher sein, am Ende eine saubere, konsistente Umgebung zu haben (das ist der Grund, warum es so lange dauert). Falls die Umgebungsvariable DESTDIR während der Ausführung von make world oder make install definiert ist, werden die neu erstellten Binaries unter ${DESTDIR} in einem zum installierten identischen Verzeichnisbaum abgelegt. Einige zufällige Kombinationen von Änderungen von Shared Libraries und Neuerstellungen von Programmen können hierbei jedoch ein Scheitern von make world verursachen. Warum meldet mein System (bus speed defaulted) beim Start? Die Adaptec 1542 SCSI Hostadapter erlauben dem Benutzer die Buszugriffsgeschwindigkeit per Software zu konfigurieren. Ältere Versionen des 1542-Treibers versuchten, die schnellstmögliche Geschwindigkeit herauszufinden und konfigurierten den Adapter entsprechend. Wir haben festgestellt, daß dies auf einigen Systemen nicht funktioniert, weshalb Sie nun die Kernelkonfigurationsoption TUNE_1542 definieren müssen, um es zu aktivieren. Die Benutzung auf Systemen, auf denen es funktioniert, könnte Ihre Platten schneller machen, aber auf den Systemen, auf denen es nicht funktioniert, könnten Ihre Daten beschädigt werden. Kann ich -CURRENT mit begrenztem Internetzugang folgen? Ja, Sie können das tun, ohne den gesamten Quellbaum herunterzuladen, indem Sie die Einrichtung CTM benutzen. Wie haben Sie die Distribution in 240k-Dateien aufgespalten? Bei neueren BSD-basierten Systemen gibt es eine Option zu split, die das Splitten von Dateien an willkürlichen Bytegrenzen erlaubt. Hier ist ein Beispiel aus /usr/src/Makefile. bin-tarball: (cd ${DISTDIR}; \ tar cf - . \ gzip --no-name -9 -c | \ split -b 240640 - \ ${RELEASEDIR}/tarballs/bindist/bin_tgz.) Ich habe eine Kernelerweiterung geschrieben. An wen sende ich sie? Lesen Sie bitte den Handbucheintrag über das Einreichen vom Code. Und Danke, daß Sie darüber Nachdenken! Wie werden Plug&Play ISA-Karten erkannt und initialisiert? Von: Frank Durda IV uhclem@nemesis.lonestar.org 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 Ja auf diese Frage. Mindestens ein Bit wird bei dieser Antwort gesetzt sein. Die Erkennungsroutine ist dann in der Lage, dafür zu sorgen, daß Karten mit Modellnummern (zugeordnet von Microsoft/Intel) kleiner als X off-line gesetzt werden. Sie prüft dann, ob immer noch Karten da sind, die auf die Frage antworten. Falls die Antwort 0 war, sind keine Karten mit IDs größer X vorhanden. Nun prüft die Erkennungsroutine, ob Karten unterhalb X vorhanden sind. Dann setzt die Erkennungsroutine alle Karten größer als X-(limit/4) off-line und wiederholt die Frage. Wenn diese halbbinäre Suche nach IDs in Folge genügend oft wiederholt worden ist, wird die Erkennungsroutine schließlich alle in einem Rechner befindlichen PnP-Karten identifiziert haben und das mit einer Iterationszahl sehr viel kleiner als 2^64. Die IDs bestehen aus zwei 32-Bit-Feldern (daher 2^64) + acht Bit Prüfsumme. Die ersten 32 Bit sind die Herstellerkennung. Es wurde zwar nicht bestätigt, aber es wird angenommen, daß unterschiedliche Kartentypen desselben Herstellers unterschiedliche 32-Bit Herstellerkennungen besitzen können. 32 Bit nur für eindeutige Hersteller zu benötigen, scheint etwas übertrieben. Die niedrigen 32 Bit sind eine Seriennummer, Ethernetadresse - etwas, das die betreffende Karte einzigartig macht. Die Hersteller dürfen niemals eine zweite Karte mit denselben niedrigen 32 Bit herstellen, es sei denn, die höheren 32 Bit sind unterschiedlich. Sie können also mehrere Karten des selben Typs im Rechner haben und die gesamten 64 Bit bleiben stets eindeutig. Die 32-Bit-Gruppen können niemals nur aus Nullen bestehen. Das erlaubt es, bei der binären Suche zu Beginn nur auf von Null verschiedene Bits zu achten. Wenn das System alle vorhandenen Karten-IDs identifiziert hat, reaktiviert es jede Karte - eine nach der anderen (über dieselben I/O-Ports) und ermittelt, welche Ressourcen von der jeweiligen Karte benötigt werden, welche Wahlmöglichkeiten für Interrupts bestehen usw. Alle Karten werden abgefragt, um diese Informationen zusammenzustellen. Diese Informationen werden dann mit Informationen aus - allen ECU-Dateien auf der Festplatte oder mit im MLB-Bios + allen ECU-Dateien auf der Festplatte oder mit im MLB-BIOS verdrahteten Informationen verknüpft. Die ECU- und BIOS-PnP-Unterstützung für Hardware auf dem MLB ist für gewöhnlich künstlich und was die Peripheriegeräte tun ist nicht wirklich echtes PnP. Durch die Untersuchung der BIOS-Informationen und der ECU-Informationen können die Erkennungsroutinen jedoch die von PnP-Geräten benutzten Ressourcen so ändern, daß vermieden wird, daß bereits - von anderen Geraeten benutzte Ressourcen verwendet + von anderen Geräten benutzte Ressourcen verwendet werden. Dann werden die PnP-Geräte nochmals besucht und ihre I/O, DMA, IRQ und Memory-Map-Adressen werden zugeordnet. Die Geräte werden an diesen Stellen sichtbar werden und dort bis zum nächsten Reboot verbleiben. Allerdings hindert Sie auch nichts daran, sie zu verschieben, wohin Sie wollen. Im obigen Teil wurde sehr viel vereinfacht, aber die grundlegende Idee sollte klar geworden sein. Microsoft hat einige der primären Druckerstatusports für PnP übernommen, da keine Karte diese Adressen für die entgegengesetzten I/O-Zyklen decodiert. Ich habe während der frühen Überprüfungsperiode des PnP-Vorschlags eine echte IBM Druckerkarte gefunden, die Schreibzugriffe auf dem Statusport decodiert hat, aber MS hat nur tough gesagt. Also schreiben sie auf den Druckerstatusport, um Adressen zu setzen, benutzen zusätzlich diese Adresse + 0x800 und einen dritten I/O-Port zum Lesen, der irgendwo zwischen 0x200 und 0x3ff liegen kann. Wie bekommen ich eine major number für einen Gerätetreiber, den ich geschrieben habe? Das hängt davon ab, ob Sie beabsichtigen, den Treiber frei verfügbar zu machen, oder nicht. Falls dem so ist, senden Sie uns bitte eine Kopie der Treiber-Sourcen und zusätzlich die entsprechenden Änderungen der Datei files.i386, ein Beispiel für einen Eintrag in der Konfigurationsdatei und den entsprechenden Code für &man.MAKEDEV.8; um spezielle Geräte zu erstellen, die Ihr Gerät benutzt. Falls Sie nicht beabsichtigen, den Treiber frei verfügbar zu machen, oder es aufgrund von Lizenzbeschränkungen nicht können, dann ist die major number 32 für zeichenorientierte und die major number 8 für blockorientierte Geräte speziell für diesen Zweck reserviert. In jedem Fall würden wir uns freuen, in der &a.hackers; etwas über Ihren neuen Treiber zu hören. Gibt es alternative Layoutverfahren für Verzeichnisse? Als Antwort auf die Frage nach alternativen Layoutverfahren für Verzeichnisse ist das Schema, das derzeit benutzt wird, unverändert von dem, das ich 1983 geschrieben habe. Ich habe das Vorgehen für das originale Fast-Filesystem geschrieben und es niemals überarbeitet. Es funktioniert gut, wenn es darum geht, zu verhindern, daß Zylindergruppen volllaufen. Wie viele von Ihnen angemerkt haben, funktioniert es schlecht für find. Die meisten Dateisysteme werden von Archiven erstellt, die mit einer Tiefensuche (also ftw) erstellt wurden. Diese Verzeichnisse werden über die Zylindergruppen hinweg entfaltet und erzeugen denkbar ungünstigste Voraussetzungen für zukünftige Tiefensuchen. Falls man die Gesamtzahl der zu erstellenden Verzeichnisse wüsste, wäre die Lösung die, (gesamt / fs_ncg) pro Zylindergruppe zu erstellen, bevor fortgefahren wird. Offensichtlich müßte man eine Heuristik erstellen, um die Zahl zu schätzen. Sogar die Benutzung einer kleinen, fixen Zahl, z.B. 10, würde eine Verbesserung um Größenordnungen ausmachen. Um Wiederherstellungen von normalem Betrieb (wo der derzeitige Algorithmus vermutlich sinnvoller ist) zu unterscheiden, könnten Sie die Clusterung von bis zu 10 benutzen, wenn sie alle innerhalb eines 10-Sekunden-Fensters durchgeführt würden. Jedenfalls ist mein Schluss, daß dies ein fruchtbares Gebiet für Experimente ist. Kirk McKusick, September 1998 Wie kann ich optimalen Nutzen aus einer kernel panic ziehen? [Dieser Abschnitt wurde von &a.des;, der einige Tippfehler korrigiert und die Kommentare in eckigen Klammern hinzugefügt hat, aus einer Mail von &a.wpaul; in der Mailingliste freebsd-current entnommen.] From: Bill Paul <wpaul@skynet.ctr.columbia.edu> Subject: Re: the fs fun never stops -To: ben@rosengart.com Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT) +To: Ben Rosengart +Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT) Cc: current@FreeBSD.org - [<ben@rosengart.com> sendete die + [<Ben Rosengart> sendete die folgende Panik-Meldung] > Fatal trap 12: page fault while in kernel mode > fault virtual address = 0x40 > fault code = supervisor read, page not present > instruction pointer = 0x8:0xf014a7e5 ^^^^^^^^^^ > stack pointer = 0x10:0xf4ed6f24 > frame pointer = 0x10:0xf4ed6f28 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, def32 1, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 80 (mount) > interrupt mask = > trap number = 12 > panic: page fault [Wenn] Sie eine Meldung wie diese sehen, reicht es nicht, sie einfach zu reproduzieren und sie einzusenden. Der Wert des Instruktionszeigers, den ich oben hervorgehoben habe, ist wichtig; leider ist er auch konfigurationsabhängig. Mit anderen Worten variieren die Werte abhängig von dem Kernel-Image, das Sie tatsächlich benutzen. Wenn Sie ein GENERIC Kernelimage von einem der Snapshots benutzen, dann ist es für jemand anderen möglich, die fehlerhafte Instruktion herauszufinden, aber wenn Sie einen angepaßten Kernel benutzen, können nur Sie uns sagen, wo der Fehler auftrat. Was Sie tun sollten, ist folgendes: Notieren Sie sich den Wert des Instruktionszeigers. Beachten Sie, daß der Teil 0x8: am Anfang in diesem Fall nicht von Bedeutung ist; der Teil 0xf0xxxxxx ist der, den wir wollen. Tun Sie folgendes, wenn das System rebootet: &prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxxx wobei 0xf0xxxxxx der Wert des Instruktionszeigers ist. Es besteht die Möglichkeit, daß Sie keinen exakten Treffer erzielen, weil die Symbole in der Symboltabelle des Kernels Funktionseinstiegspunkte sind und die Adresse des Instruktionszeiger irgendwo innerhalb einer Funktion liegen wird und nicht am Anfang. Falls sie keinen exakten Treffer erzielen, lassen Sie den letzten Teil des Werts des Instruktionszeigers weg und versuchen es nocheinmal, z.B.: &prompt.user; nm -n /kernel.that.caused.the.panic | grep f0xxxxx 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. Ich sehe ständig Leute, die Panik-Meldungen wie diese zeigen, aber ich sehe kaum jemanden, der sich die Zeit nimmt, den Instruktionszeiger einer Funktion aus der Symboltabelle des Kernel zuzuordnen. Der beste Weg, den Grund für eine Panik herauszufinden, ist der, einen Crash-Dump festzuhalten und dann &man.gdb.1; zu benutzen, um den Stack im Crash-Dump zurückzuverfolgen. Jedenfalls ist die Methode, die ich normalerweise benutze, folgende: Richten Sie eine Kernelkonfigurationsdatei ein, fügen Sie optional options DDB hinzu, falls Sie glauben, daß Sie den Kerneldebugger benötigen. (Ich benutze ihn hauptsächlich zum Setzen von Haltepunkten, wenn ich eine Endlosschleife irgendeiner Art vermute.) Benutzen Sie config -g KERNELCONFIG, um das Erstellungsverzeichnis einzurichten. cd /sys/compile/KERNELCONFIG; make Warten Sie, bis der Kernel fertig kompiliert ist. make install reboot Der &man.make.1;-Prozeß wird zwei Kernel erstellt haben: kernel und kernel.debug. kernel wurde als /kernel installiert, während kernel.debug als Quelle für Debuggersymbole für &man.gdb.1; benutzt werden kann. Um sicherzustellen, daß ein Crash-Dump erhalten bleibt, müssen Sie /etc/rc.config editieren und dumpdev so setzen, daß es auf Ihre Swap-Partition zeigt. Das bewirkt, daß die &man.rc.8;-Skripte den Befehl &man.dumpon.8; benutzen, um Crash-Dumps zu ermöglichen. Sie können &man.dumpon.8; auch manuell ausführen. Nach einer Panik kann der Crash-Dump mit &man.savecore.8; wiederhergestellt werden; wenn dumpdev in /etc/rc.conf gesetzt ist, werden die &man.rc.8;-Skripte &man.savecore.8; automatisch ausführen und den Crash-Dump unter /var/crash ablegen. Crash-Dumps von FreeBSD sind für gewöhnlich genauso groß wie der physikalische Hauptspeicher Ihres Rechners. D.h., wenn Sie 64MB RAM haben, werden sie einen 64MB Crash-Dump erhalten. Deshalb müssen Sie dafür sorgen, daß genügend Speicherplatz in /var/crash zur Verfügung steht, um den Dump aufnehmen zu können. Alternativ führen Sie &man.savecore.8; manuell aus und lassen es den Crash-Dump in einem anderen Verzeichnis wiederherstellen, in dem Sie mehr Platz haben. Es ist möglich, die Größe des Crash-Dumps zu begrenzen, indem options MAXMEM=(foo) benutzt wird, um den Speicher, den der Kernel benutzt, auf einen etwas vernünftigeren Wert zu setzen. Wenn Sie z.B. 128MB RAM haben, können Sie die Speicherbenutzung des Kernels auf 16MB begrenzen, so daß die Größe Ihres Crash-Dumps 16MB anstatt 128MB beträgen wird. Wenn Sie den Crash-Dump wiederhergestellt haben, können Sie den Stack mit &man.gdb.1; so zurückverfolgen: &prompt.user; gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0 (gdb) where Beachten Sie, daß es mehrere Seiten mit wertvollen Informationen geben könnte; idealerweise sollten Sie &man.script.1; benutzen, um sie alle festzuhalten. Wenn Sie das vollständige Kernelimage mit allen Debugginginformationen benutzen, müßten Sie exakt die Zeile des Kernel-Sourcecodes finden, wo die Panik aufgetreten ist. Für gewöhnlich müssen Sie den Stack von unten an zurückverfolgen, um die genaue Ereignisabfolge, die zum Crash führte, zurückzuverfolgen. Sie können &man.gdb.1; auch zum Ausdrucken der Inhalte verschiedener Variablen oder Strukturen benutzen, um den Systemstatus zum Zeitpunkt des Absturzes zu untersuchen. Wenn Sie nun wirklich verrückt sind und einen zweiten Computer haben, können Sie &man.gdb.1; auch für entferntes Debugging konfigurieren, so daß Sie &man.gdb.1; auf einem System benutzen können, um den Kernel auf einem anderen System zu debuggen, einschließlich dem Setzen von Haltepunkten und dem Bewegen in Einzelschritten durch den Kernelcode, genauso, wie Sie es mit einem normalen Benutzerprogramm tun können. Ich habe noch nicht damit gespielt weil ich nicht oft Gelegenheit habe, zwei Rechner nebeneinander für Debuggingzwecke einzurichten. [Bill hat hinzugefügt: "Ich vergaß, etwas zu erwähnen: wenn Sie DDB aktiviert haben und der Kernel im Debugger landet, können Sie eine Panik (und einen Crash-Dump) erzwingen, indem Sie einfach 'panic' am ddb-Prompt eingeben. Er könnte während der Panikphase wieder im Debugger stoppen. Falls er das tut, geben Sie 'continue' ein, dann wird er den Crash-Dump beenden." -ed] Wieso funktioniert dlsym() nicht mehr für ELF-Executables? Die ELF-Werkzeuge machen die in einem Executable definierten Symbole dem dynamischen Linker nicht standardmäßig sichtbar. Konsequenterweise werden dlsym()-Suchen nach Handlern aus Aufrufen von dlopen(NULL, flags) diese Symbole nicht finden können. Wenn Sie mit dlsym() nach im Hauptexecutable eines Prozesses vorhandenen Symbolen suchen wollen, müssen Sie das Executable mit der Option von &man.ld.1; linken. Wie kann ich den Adreßraum des Kernels vergrössern oder verkleinern? Standardmäßig beträgt der Adreßraum des Kernels 256MB (FreeBSD 3.x) bzw. 1 GB (FreeBSD 4.x). Wenn Sie einen netzwerkintensiven Server (z.B. einen großen FTP- oder HTTP-Server) betreiben, kann es sein, daß Sie der Meinung sind, daß 256MB nicht ausreichen. Wie also erhöhen Sie den Adreßraum? Hier gibt es zwei Aspekte. Erstens müssen Sie dem Kernel sagen, daß er einen grösseren Anteil des Adreßraums für sich selbst reservieren soll. Da der Kernel am oberen Ende des Adreßraums geladen wird, müssen Sie zweitens die Ladeadresse verringern, damit er mit dem Kopf nicht gegen die Obergrenze stößt. Das erste Ziel erreicht man, indem man den Wert von NKPDE in src/sys/i386/include/pmap.h erhöht. Für einen Adreßraum von 1 GB sieht das so aus: #ifndef NKPDE #ifdef SMP #define NKPDE 254 /* addressable number of page tables/pde's */ #else #define NKPDE 255 /* addressable number of page tables/pde's */ #endif /* SMP */ #endif Dividieren Sie die gewünschte Adreßraumgröße (in Megabyte) durch vier und subtrahieren Sie dann eins für UP und zwei für SMP, um den korrekten Wert für NKPDE zu finden. Um das zweite Ziel zu erreichen müssen Sie die korrekte Ladeadresse berechnen: subtrahieren Sie einfach die Größe des Adreßraums (in Byte) von 0x100100000; für einen Adreßraum von 1 GB lautet das Ergebnis 0xc0100000. Setzen Sie LOAD_ADDRESS in src/sys/i386/conf/Makefile.i386 auf diesen Wert; setzen Sie dann den Location-Counter am Anfang der Abschnittsliste in src/sys/i386/conf/kernel.script auf denselben Wert: OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(btext) SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0xc0100000 + SIZEOF_HEADERS; .interp : { *(.interp) } Konfigurieren und erstellen Sie Ihren Kernel dann neu. Sie werden vermutlich Probleme mit &man.ps.1;, &man.top.1; und ähnlichen Programmen haben. Ein make world sollte diese beheben; alternativ können Sie die gepatchte pmap.h in das Verzeichnis /usr/include/vm kopieren und danach libkvm, &man.ps.1; und &man.top.1; neu erzeugen. Hinweis: die Größe des Kernel-Adreßraums muß ein Vielfaches von vier Megabyte betragen. [&a.dg; fügt hinzu: Ich glaube, der Kerneladreßraum muß eine Zweierpotenz sein, aber ich bin mir dessen nicht sicher. Der alte (ältere) Bootcode pflegte die oberen Adreßbits zu mißbrauchen und ich glaube, er erwartete mindestens 256MB Granularität.] Danksagung
FreeBSD Core Team Falls Sie ein Problem in dieser FAQ entdecken, oder einen Eintrag einsenden möchten, senden Sie uns bitte eine Mail an &a.faq; Wir schätzen Ihr Feedback und können diese FAQ ohne Ihre Hilfe nicht verbessern!
Originalversion &a.jkh; Gelegentliche Anpassungen von Umstrukturierungen der FAQ und Aktualisierung. &a.dwhite; Dienste über Pflichtbesuche in freebsd-questions hinaus &a.joerg; Dienste über Pflichtbesuche im Usenet hinaus &a.wollman; Netzwerke und Formatierung Jim Lowe Multicast-Informationen &a.pds; Schreibmaschinenknecht der FreeBSD-FAQ Das FreeBSD-Team Nörgeln, Stöhnen, Einsenden von Daten Folgende Personen haben durch die Beantwortung von Fragen, sowie durch Hinweise und Kommentare an der Entstehung der deutschen Übersetzung mitgewirkt: Ross Alexander &a.jhb; &a.nik; Glen Foster Oliver Fromme Frank Gruender Chris Hill James Howard &a.jkh; &a.alex; &a.jmas; Mike Meyer Dan O'Connor Eric Ogren &a.de.pierau; Oliver Schneider Christoph Sold Und an alle anderen, an die wir nicht gedacht haben. Entschuldigung und herzlichen Dank!
- - - Bibliographie - - - - 4.4BSD System Manager's Manual - - Computer Systems Research Group, University of - California, Berkeley - - - O'Reilly and Associates - - - 1. Ausgabe - - Juni 1994 - - 804 Seiten - - ISBN 1-56592-080-5 - - - - - - 4.4BSD User's Reference Manual - - Computer Systems Research Group, University of - California, Berkeley - - - O'Reilly and Associates - - - 1. Ausgabe - - Juni 1994 - - 905 Seiten - - ISBN 1-56592-075-9 - - - - - - 4.4BSD User's Supplementary Documents - - Computer Systems Research Group, University of - California, Berkeley - - - O'Reilly and Associates - - - 1. Ausgabe - - Juni 1994 - - 712 Seiten - - ISBN 1-56592-076-7 - - - - - - 4.4BSD Programmer's Reference Manual - - Computer Systems Research Group, University of - California, Berkeley - - - O'Reilly and Associates - - - 1. Ausgabe - - Juni 1994 - - 866 Seiten - - ISBN 1-56592-078-3 - - - - - - 4.4BSD Programmer's Supplementary Documents - - Computer Systems Research Group, University of - California, Berkeley - - - O'Reilly and Associates - - - 1. Ausgabe - - Juni 1994 - - 596 Seiten - - ISBN 1-56592-079-1 - - - - - - The Design and Implementation of the 4.4BSD Operating System - - - - M. K. - - McKusick - - - - Kirk - - Marshall - - - - Keith - - Bostic - - - - Michael J - - Karels - - - - John - - Quarterman - - - - - Addison-Wesley - -
- Reading - MA -
-
- - 1996 - - ISBN 0-201-54979-4 -
-
- - - - Unix System Administration Handbook - - - - Evi - - Nemeth - - - - Garth - - Snyder - - - - Scott - - Seebass - - - - Trent R. - - Hein - - - - John - - Quarterman - - - - - Prentice-Hall - - - 3. Ausgabe - - 2000 - - ISBN 0-13-020601-6 - - - - - - The Complete FreeBSD - - - Greg - - Lehey - - - - Walnut Creek - - - 3. Ausgabe - - Juni 1999 - - 773 Seiten - - ISBN 1-57176-246-9 - - - - - - The FreeBSD Handbook - - FreeBSD Documentation Project - - - BSDi - - - 1st Edition - - November 1999 - - 489 pages - - ISBN 1-57176-241-8 - - - - - McKusick et al, 1994 - - - Berkeley Software Architecture Manual, 4.4BSD - Edition - - - - M. K. - - McKusick - - - - M. J. - - Karels - - - - S. J. - - Leffler - - - - W. N. - - Joy - - - - R. S. - - Faber - - - - 5:1-42 - - -
+ &bibliography;