seen significant content changes this year. Obtained from: FreeBSD Greek translation team
11964 lines
508 KiB
Text
11964 lines
508 KiB
Text
<!--
|
||
|
||
Συχνές Ερωτήσεις για το FreeBSD
|
||
|
||
The FreeBSD Greek Documentation Project
|
||
|
||
%SOURCE% en_US.ISO8859-1/books/faq/book.sgml
|
||
%SRCID% 1.807
|
||
|
||
-->
|
||
|
||
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
||
<!ENTITY % books.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Books Entity Set//EL">
|
||
%books.ent;
|
||
<!ENTITY bibliography SYSTEM "../../../share/sgml/bibliography.sgml">
|
||
]>
|
||
|
||
<book>
|
||
<bookinfo>
|
||
<title>Συχνές Ερωτήσεις για το &os; 5.X και 6.X</title>
|
||
|
||
<corpauthor>Η Ομάδα Τεκμηρίωσης του &os;</corpauthor>
|
||
|
||
<pubdate>$FreeBSD$</pubdate>
|
||
|
||
<copyright>
|
||
<year>1995</year>
|
||
<year>1996</year>
|
||
<year>1997</year>
|
||
<year>1998</year>
|
||
<year>1999</year>
|
||
<year>2000</year>
|
||
<year>2001</year>
|
||
<year>2002</year>
|
||
<year>2003</year>
|
||
<year>2004</year>
|
||
<year>2005</year>
|
||
<year>2006</year>
|
||
<year>2007</year>
|
||
<year>2008</year>
|
||
<holder>Η Ομάδα Τεκμηρίωσης του &os;</holder>
|
||
</copyright>
|
||
|
||
&bookinfo.legalnotice;
|
||
|
||
<legalnotice id="trademarks" role="trademarks">
|
||
&tm-attrib.freebsd;
|
||
&tm-attrib.3com;
|
||
&tm-attrib.adobe;
|
||
&tm-attrib.creative;
|
||
&tm-attrib.cvsup;
|
||
&tm-attrib.ibm;
|
||
&tm-attrib.ieee;
|
||
&tm-attrib.intel;
|
||
&tm-attrib.iomega;
|
||
&tm-attrib.linux;
|
||
&tm-attrib.microsoft;
|
||
&tm-attrib.mips;
|
||
&tm-attrib.netscape;
|
||
&tm-attrib.opengroup;
|
||
&tm-attrib.oracle;
|
||
&tm-attrib.sgi;
|
||
&tm-attrib.sparc;
|
||
&tm-attrib.sun;
|
||
&tm-attrib.usrobotics;
|
||
&tm-attrib.xfree86;
|
||
&tm-attrib.general;
|
||
</legalnotice>
|
||
|
||
<abstract>
|
||
<para>Το κείμενο αυτό αποτελεί τις Συχνές Ερωτήσεις (FAQ) για τις
|
||
εκδόσεις 5.Χ και 6.Χ του &os;. Όλες οι καταχωρήσεις θεωρείται ότι
|
||
σχετίζονται με την έκδοση &os; 5.X και μεταγενέστερες, εκτός
|
||
αν αναφέρεται διαφορετικά. Αν ενδιαφέρεστε να μας βοηθήσετε σε αυτό
|
||
το έργο, στείλτε ένα email στην &a.doc;. Η τελευταία έκδοση αυτού
|
||
του κειμένου είναι πάντοτε διαθέσιμη στην
|
||
<ulink
|
||
url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/index.html">δικτυακή τοποθεσία του &os;</ulink>. Μπορείτε επίσης να την κατεβάσετε ως
|
||
ένα μεγάλο <ulink url="book.html">HTML</ulink> αρχείο μέσω HTTP ή
|
||
ακόμα και ως απλό κείμενο, &postscript;, PDF, κλπ. από τον <ulink
|
||
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">εξυπηρετητή FTP του
|
||
&os;</ulink>. Μπορείτε ακόμα να <ulink
|
||
url="&url.base;/search/index.html">ψάξετε στις Συχνές Ερωτήσεις
|
||
</ulink>.</para>
|
||
</abstract>
|
||
</bookinfo>
|
||
|
||
<chapter id="introduction">
|
||
<title>Εισαγωγή</title>
|
||
|
||
<para>Καλώς ήλθατε στις Συχνές Ερωτήσεις (FAQ) του &os; 5.X-6.X!</para>
|
||
|
||
<para>Όπως συνηθίζεται στα FAQs του Usenet, το κείμενο αυτό έχει σκοπό
|
||
να καλύψει τις πιο συνηθισμένες ερωτήσεις που αφορούν το λειτουργικό
|
||
σύστημα &os; (και φυσικά να τις απαντήσει!). Αν και ο αρχικός σκοπός
|
||
των FAQs ήταν η εξοικονόμηση εύρους ζώνης του διαδικτύου από την
|
||
επαναλαμβανόμενη απάντηση των ίδιων ερωτήσεων, τα FAQs αναγνωρίστηκαν
|
||
τελικά ως πολύτιμες πηγές πληροφοριών.</para>
|
||
|
||
<para>Έχει καταβληθεί κάθε προσπάθεια ώστε αυτό το FAQ να γίνει όσο πιο
|
||
πληροφοριακό γίνεται. Αν θέλετε να κάνετε κάποιες υποδείξεις σχετικά
|
||
με τρόπους βελτίωσης του, σας παρακαλούμε στείλτε μας ένα email στη
|
||
&a.doc;.</para>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="what-is-FreeBSD">
|
||
<para>Τι είναι το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Εν συντομία, το &os; είναι ένα λειτουργικό σύστημα τύπου
|
||
&unix; για τις αρχιτεκτονικές Alpha/AXP, AMD64 και &intel;
|
||
EM64T, &i386; IA-64, PC-98, και &ultrasparc; και βασίζεται στην
|
||
έκδοση <quote>4.4BSD-Lite</quote> του Πανεπιστημίου του Berkeley,
|
||
με κάποιες βελτιώσεις από το <quote>4.4BSD-Lite2</quote>. Βασίζεται
|
||
επίσης έμμεσα στην εργασία μεταφοράς (port) του
|
||
<quote>Net/2</quote> (επίσης από το Berkeley) που έγινε από τον
|
||
William Jolitz, αν και δεν έχει μείνει σχεδόν τίποτα από τον αρχικό
|
||
κώδικα του 386BSD. Πληρέστερη περιγραφή για το τι είναι το &os; και
|
||
πως μπορεί να λειτουργήσει για εσάς, μπορείτε να βρείτε στην
|
||
<ulink url="&url.base;/index.html">δικτυακή τοποθεσία του &os;
|
||
</ulink>.</para>
|
||
|
||
<para>Το &os; χρησιμοποιείται από εταιρίες, παροχείς υπηρεσιών
|
||
Internet (ISPs), φοιτητές και οικιακούς χρήστες, ερευνητές,
|
||
και επαγγελματίες των υπολογιστών σε όλο τον κόσμο, στη δουλειά
|
||
τους, στην εκπαίδευση και για αναψυχή.</para>
|
||
|
||
<para>Για περισσότερες λεπτομέρειες σχετικά με το &os;, παρακαλούμε
|
||
διαβάστε το
|
||
<ulink url="&url.books.handbook;/index.html">Εγχειρίδιο του &os;
|
||
</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="FreeBSD-goals">
|
||
<para>Ποιος είναι ο σκοπός του &os; Project;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ο σκοπός του &os; Project είναι να παρέχει λογισμικό το οποίο
|
||
να μπορεί να χρησιμοποιηθεί για οποιουσδήποτε σκοπούς και χωρίς
|
||
περιορισμούς. Πολλοί από εμάς έχουμε επενδύσει σημαντικά στον
|
||
κώδικα (και στο ίδιο το έργο) και σίγουρα δεν θα μας πείραζε
|
||
και κάποια χρηματική αποζημίωση που και που, αλλά σίγουρα δεν
|
||
επιμένουμε σε αυτό. Πιστεύουμε ότι η πρώτη και βασικότερη
|
||
<quote>αποστολή</quote> μας είναι να παρέχουμε κώδικα σε όλους,
|
||
για οποιοδήποτε πιθανό σκοπό, έτσι ώστε ο κώδικας μας να έχει
|
||
την ευρύτερη δυνατή χρήση και επιτυγχάνει το μεγαλύτερο δυνατό
|
||
όφελος. Πιστεύουμε ότι αυτός είναι ένας από τους σημαντικότερους
|
||
σκοπούς του Ελεύθερου Λογισμικού και τον υποστηρίζουμε θερμά.</para>
|
||
|
||
<para>Ο κώδικας, στο δέντρο του πηγαίου μας κώδικα, ο οποίος
|
||
εμπίπτει στη άδεια χρήσης
|
||
<ulink url="http://www.FreeBSD.org/copyright/COPYING">GNU
|
||
General Public License (GPL)</ulink> ή <ulink
|
||
url="http://www.FreeBSD.org/copyright/COPYING.LIB">GNU
|
||
Library General Public License (LGPL)</ulink> έχει περισσότερους
|
||
περιορισμούς, αλλά τουλάχιστον όσο αφορά την υποχρέωση
|
||
ελεύθερης πρόσβασης αντί για το αντίθετο που είναι και το πλέον
|
||
συνηθισμένο. Λόγω της αυξημένης πολυπλοκότητας που μπορεί να
|
||
προκύψει από την εμπορική χρήση λογισμικού GPL, προσπαθούμε γενικά
|
||
να αντικαταστήσουμε αυτό το λογισμικό με αντίστοιχο υπό την
|
||
πιο χαλαρή <ulink
|
||
url="http://www.FreeBSD.org/copyright/freebsd-license.html">
|
||
άδεια &os;</ulink>, όπου αυτό είναι δυνατό.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="bsd-license-restrictions">
|
||
<para>Υπάρχουν κάποιοι περιορισμοί στην άδεια του &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ναι. Οι περιορισμοί αυτοί δεν ελέγχουν πως χρησιμοποιείτε τον
|
||
κώδικα, αλλά μόνο πως μεταχειρίζεστε το ίδιο το &os; Project. Αν
|
||
σας ενδιαφέρει σοβαρά η άδεια, διαβάστε την
|
||
<ulink
|
||
url="http://www.FreeBSD.org/copyright/freebsd-license.html">
|
||
εδώ</ulink>. Για τους απλώς περίεργους, η άδεια περιληπτικά
|
||
γράφει:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Μην ισχυρισθείτε ότι γράψατε αυτό το λογισμικό.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Μη μας μηνύσετε αν χαλάσει.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="replace-current-OS">
|
||
<para>Μπορεί το &os; να αντικαταστήσει το τρέχον λειτουργικό
|
||
μου σύστημα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Για τους περισσότερους ανθρώπους, ναι. Αλλά αυτή η απάντηση
|
||
δεν μπορεί να δοθεί τόσο ξερά.</para>
|
||
|
||
<para>Οι περισσότεροι άνθρωποι δεν χρησιμοποιούν στην πραγματικότητα
|
||
κάποιο λειτουργικό. Χρησιμοποιούν εφαρμογές. Το &os; είναι
|
||
σχεδιασμένο να παρέχει ένα στιβαρό και πλήρων δυνατοτήτων
|
||
περιβάλλον για εφαρμογές. Υποστηρίζει μεγάλη ποικιλία από
|
||
φυλλομετρητές, σουίτες γραφείου, προγράμματα ηλεκτρονικού
|
||
ταχυδρομείου, προγράμματα γραφικών, γλώσσες προγραμματισμού,
|
||
εξυπηρετητές δικτύου, και ουσιαστικά οτιδήποτε άλλο μπορεί να
|
||
θελήσετε. Μπορείτε να διαχειριστείτε τις περισσότερες από αυτές
|
||
τις εφαρμογές μέσω της
|
||
<ulink url="http://www.FreeBSD.org/ports/">Συλλογής των Ports
|
||
</ulink>.</para>
|
||
|
||
<para>Αν χρειάζεται να χρησιμοποιήσετε μια εφαρμογή που είναι
|
||
διαθέσιμη σε ένα μόνο λειτουργικό σύστημα, τότε απλά δεν μπορείτε
|
||
να αντικαταστήσετε το σύστημα αυτό. Υπάρχουν ωστόσο καλές
|
||
πιθανότητες να βρείτε μια αντίστοιχη εφαρμογή στο &os;. Αν
|
||
θέλετε ένα εξυπηρετητή για το γραφείο σας ή για το Internet,
|
||
ένα αξιόπιστο σταθμό εργασίας, ή απλώς την ικανότητα να κάνετε
|
||
την εργασίας σας χωρίς διακοπές, το &os; είναι σχεδόν σίγουρο ότι
|
||
θα κάνει ότι χρειάζεστε. Πολλοί χρήστες υπολογιστών σε όλο τον
|
||
κόσμο, περιλαμβανομένων τόσο αρχάριων όσο και προχωρημένων
|
||
διαχειριστών συστημάτων &unix;, χρησιμοποιούν το &os; ως το
|
||
μοναδικό τους desktop σύστημα.</para>
|
||
|
||
<para>Αν έρχεστε στο &os; από κάποιο άλλο &unix; περιβάλλον, ξέρετε
|
||
ήδη τα περισσότερα από αυτά που χρειάζεστε. Αν ωστόσο η εμπειρία
|
||
σας προέρχεται από λειτουργικά συστήματα με γραφικό περιβάλλον,
|
||
όπως τα &windows; και οι παλιότερες εκδόσεις του &macos;,
|
||
θα πρέπει να επενδύσετε, όπως είναι αναμενόμενο, επιπλέον χρόνο
|
||
για να εξοικειωθείτε με τον &unix; τρόπο εκτέλεσης των εργασιών.
|
||
Αυτό το FAQ, καθώς και το
|
||
<ulink
|
||
url="&url.books.handbook;/index.html">Εγχειρίδιο του &os;</ulink>
|
||
αποτελούν εξαιρετικά αναγνώσματα για να ξεκινήσετε.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="why-called-FreeBSD">
|
||
<para>Γιατί ονομάζεται &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Μπορεί να χρησιμοποιηθεί χωρίς χρέωση, ακόμα και για
|
||
εμπορικούς σκοπούς.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Διατίθεται ο πλήρης πηγαίος κώδικας για το λειτουργικό
|
||
σύστημα, και με τους ελάχιστους δυνατούς περιορισμούς σχετικά
|
||
με τη χρήση του, τη διανομή του και την ενσωμάτωση του σε άλλα
|
||
έργα (εμπορικά ή μη).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Οποιοσδήποτε έχει να προτείνει μια βελτίωση ή διόρθωση,
|
||
είναι ελεύθερος να υποβάλλει τον κώδικα του, ο οποίος και
|
||
θα προστεθεί στο δέντρο πηγαίου κώδικα (υπό μια-δυο βασικές
|
||
προφανείς προϋποθέσεις).</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Αξίζει να αναφέρουμε ότι η λέξη <quote>ελεύθερο</quote>
|
||
χρησιμοποιείται εδώ με δύο τρόπους, ο ένας σημαίνει
|
||
<quote>δωρεάν</quote>, και ο άλλος σημαίνει
|
||
<quote>μπορείτε να το κάνετε ότι θέλετε</quote>. Εκτός από
|
||
ένα-δύο πράγματα που <emphasis>δεν</emphasis> μπορείτε να κάνετε
|
||
με τον κώδικα του &os;, για παράδειγμα να ισχυρισθείτε ότι τον
|
||
γράψατε, μπορείτε στα αλήθεια να τον κάνετε ότι θέλετε.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="differences-to-other-bsds">
|
||
<para>Ποιες είναι οι διαφορές μεταξύ του &os; και του NetBSD,
|
||
OpenBSD και των άλλων BSD συστημάτων ανοικτού κώδικα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ο James Howard έχει γράψει μια καλή εξήγηση της ιστορίας
|
||
και των διαφορών μεταξύ των διάφορων έργων για το
|
||
<ulink url="http://www.daemonnews.org/">DaemonNews</ulink>,
|
||
στο άρθρο που ονομάζεται <ulink
|
||
url="http://ezine.daemonnews.org/200104/bsd_family.html">Η
|
||
Οικογένεια Λειτουργικών BSD</ulink> και το οποίο εμβαθύνει
|
||
ιδιαίτερα σε αυτή την ερώτηση.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="latest-version">
|
||
<para>Ποια είναι η τελευταία έκδοση του &os;;</para>
|
||
</question>
|
||
|
||
<!--
|
||
Η ερώτηση αυτή έχει μπει για να αποσαφηνίζεται το γεγονός ότι υπάρχουν
|
||
πλέον πολλαπλές νέες εκδόσεις του FreeBSD
|
||
-->
|
||
|
||
<answer>
|
||
<para>Αυτή τη στιγμή στην ανάπτυξη του &os;, υπάρχουν δύο παράλληλοι
|
||
κλάδοι. Και από τους δύο αυτούς κλάδους, προκύπτουν νέες εκδόσεις.
|
||
Η σειρά των εκδόσεων 5.Χ δημιουργείται από τον κλάδο
|
||
<emphasis>5-STABLE</emphasis> ενώ η σειρά των εκδόσεων 6.Χ
|
||
από τον <emphasis>6-STABLE</emphasis>.
|
||
|
||
<para>Μέχρι και την έκδοση της 5.3, η σειρά 4.Χ ήταν γνωστή ως
|
||
<emphasis>-STABLE</emphasis>. Ωστόσο από την 5.3 και μετά, η
|
||
σειρά 4.Χ θεωρείται ότι εισέρχεται στη φάση της
|
||
<quote>εκτεταμένης υποστήριξης</quote> και θα λαμβάνει μόνο
|
||
διορθώσεις για σοβαρά προβλήματα, όπως π.χ. αυτά που αναφέρονται
|
||
σε κενά ασφαλείας. Θα υπάρξουν περισσότερες εκδόσεις από την
|
||
σειρά <emphasis>5-STABLE</emphasis>, αλλά και αυτή θεωρείται
|
||
<quote>παρωχημένη</quote> και η περισσότερη τρέχουσα εργασία θα
|
||
αποτελεί τμήμα μόνο της σειράς <emphasis>6-STABLE</emphasis>.
|
||
|
||
<para>Η έκδοση <ulink
|
||
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;</ulink>
|
||
είναι η πλέον τελευταία της σειράς
|
||
<emphasis>6-STABLE</emphasis> και έγινε στις
|
||
&rel.current.date;. Η έκδοση <ulink
|
||
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;</ulink>
|
||
είναι η πλέον τελευταία της σειράς
|
||
<emphasis>5-STABLE</emphasis> και έγινε στις
|
||
&rel2.current.date;.</para>
|
||
|
||
<para>Εν συντομία, η σειρά <emphasis>-STABLE</emphasis> προορίζεται
|
||
για τους ISPs, τους εταιρικούς χρήστες καθώς και οποιοδήποτε
|
||
χρήστη θέλει σταθερότητα και μίνιμουμ αριθμό αλλαγών σε σχέση με
|
||
τα νέα (και πιθανόν ασταθή) χαρακτηριστικά που εμφανίζονται στη
|
||
σειρά <emphasis>-CURRENT</emphasis>. Εκδόσεις μπορεί να γίνονται
|
||
από οποιοδήποτε κλάδο, αλλά η έκδοση <emphasis>-CURRENT</emphasis>
|
||
θα πρέπει να χρησιμοποιείται μόνο αν είστε προετοιμασμένοι να
|
||
χειριστείτε τα ενδεχομένως πιο ασταθή χαρακτηριστικά της (σε σχέση
|
||
πάντα με την αντίστοιχη <emphasis>-STABLE</emphasis>).</para>
|
||
|
||
<para>Νέες εκδόσεις εμφανίζονται <link linkend="release-freq">κάθε
|
||
μερικούς μήνες</link>. Αν και πολλοί επιλέγουν να διατηρούνται
|
||
ενημερωμένοι και πιο συχνά μέσω του πηγαίου κώδικα του &os;
|
||
(δείτε τις ερωτήσεις στο
|
||
<link linkend="current">&os.current;</link> και <link
|
||
linkend="stable">&os.stable;</link>), οι εκδόσεις είναι κάτι
|
||
παραπάνω από υποχρέωση, καθώς ο πηγαίος κώδικας είναι περισσότερο
|
||
ένας κινούμενος στόχος.</para>
|
||
|
||
<para>Περισσότερες πληροφορίες για τις εκδόσεις του &os; μπορείτε
|
||
να βρείτε στην
|
||
<ulink
|
||
url="http://www.FreeBSD.org/releng/index.html">Σελίδα
|
||
Προετοιμασίας Εκδόσεων</ulink> στην δικτυακή τοποθεσία του &os;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="current">
|
||
<para>Τι είναι το &os;-CURRENT;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το <ulink
|
||
url="&url.books.handbook;/cutting-edge.html#CURRENT">&os.current;</ulink>
|
||
είναι η υπό εξέλιξη έκδοση του λειτουργικού συστήματος, το οποίο
|
||
με τον καιρό θα εξελιχθεί στο νέο κλάδο &os.stable;. Για το λόγο
|
||
αυτό, παρουσιάζει συνήθως ενδιαφέρον μόνο σε όσους ασχολούνται με
|
||
την ανάπτυξη κώδικα του συστήματος και σε σκληροπυρηνικούς
|
||
χομπίστες. Δείτε το
|
||
<ulink
|
||
url="&url.books.handbook;/cutting-edge.html#CURRENT">σχετικό
|
||
τμήμα</ulink> στο <ulink
|
||
url="&url.books.handbook;/index.html">εγχειρίδιο</ulink> για
|
||
λεπτομέρειες σχετικά με το -CURRENT.</para>
|
||
|
||
<para>Αν δεν είστε εξοικειωμένος με το λειτουργικό σύστημα, ή δεν
|
||
είστε ικανός να αναγνωρίσετε τη διαφορά μεταξύ ενός πραγματικού
|
||
και ενός προσωρινού προβλήματος, μάλλον δεν θα πρέπει να
|
||
χρησιμοποιήσετε το &os.current;. Ο κλάδος αυτός ορισμένες φορές
|
||
εξελίσσεται πολύ γρήγορα, και μπορεί ακόμα και η μεταγλώττιση του
|
||
να μην είναι δυνατή για ολόκληρες μέρες κάθε φορά. Όσοι
|
||
χρησιμοποιούν το &os.current; αναμένεται να είναι ικανοί να
|
||
αναλύουν τα όποια προβλήματα και να τα αναφέρουν, μόνο αν θεωρούν
|
||
ότι πρόκειται για λάθη και όχι για
|
||
<quote>μικροπροβλήματα</quote>. Ερωτήσεις του τύπου
|
||
<quote>το make world παράγει κάποια σφάλματα σχετικά με τα
|
||
groups</quote> στη λίστα ταχυδρομείου -CURRENT, μπορεί να
|
||
αντιμετωπιστούν περιφρονητικά.</para>
|
||
|
||
<para>Κάθε μέρα, παράγονται <ulink
|
||
url="&url.base;/snapshots/">στιγμιότυπα
|
||
</ulink> εκδόσεων που βασίζονται στην τρέχουσα κατάσταση των
|
||
κλάδων -CURRENT και -STABLE. Γίνονται κατά καιρούς διαθέσιμες
|
||
οι εκδόσεις κάποιων στιγμιότυπων. Οι στόχοι πίσω από κάθε έκδοση
|
||
στιγμιότυπου είναι:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Ο έλεγχος της τελευταίας έκδοσης του λογισμικού
|
||
εγκατάστασης.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Να δώσει τη δυνατότητα εύκολης εγκατάστασης σε όσους
|
||
επιθυμούν να εκτελούν το -CURRENT ή το -STABLE αλλά δεν έχουν
|
||
το χρόνο ή το εύρος ζώνης να το παρακολουθούν μέρα με τη μέρα.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Η διατήρηση ενός σταθερού σημείου αναφοράς σχετικά με τον
|
||
πηγαίο κώδικα, σε περίπτωση που χαλάσουμε κάτι πολύ άσχημα
|
||
αργότερα. (Αν και λόγω της χρήσης του CVS είναι δύσκολο να
|
||
συμβεί κάτι πραγματικά τόσο φρικτό :)</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Να εξασφαλιστεί ότι κάθε νέο χαρακτηριστικό και διόρθωση
|
||
που χρειάζεται έλεγχο, θα έχει το μεγαλύτερο δυνατό κοινό
|
||
πιθανών δοκιμαστών.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Δεν υπάρχει ποτέ ο ισχυρισμός ότι κάποιο στιγμιότυπο -CURRENT
|
||
μπορεί να θεωρηθεί <quote>τελικής ποιότητας</quote> για
|
||
οποιοδήποτε σκοπό. Αν θέλετε να εκτελείτε ένα πλήρως σταθερό και
|
||
δοκιμασμένο σύστημα, θα πρέπει να μείνετε στις πλήρεις εκδόσεις ή
|
||
να χρησιμοποιείτε τα στιγμιότυπα -STABLE.</para>
|
||
|
||
<para>Εκδόσεις στιγμιοτύπων είναι άμεσα διαθέσιμες από <ulink
|
||
url="&url.base;/snapshots/">εδώ</ulink>.</para>
|
||
|
||
<para>Κατά μέσο όρο, για κάθε κλάδο που βρίσκεται σε ενεργή
|
||
ανάπτυξη, παράγεται στιγμιότυπο καθημερινά.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="stable">
|
||
<para>Ποια είναι η έννοια του &os;-STABLE;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Όταν κυκλοφόρησε το &os; 2.0.5, η ανάπτυξη του &os; χωρίστηκε
|
||
σε δύο κλάδους. Ό ένας κλάδος ονομάστηκε
|
||
<ulink url="&url.books.handbook;/current-stable.html#STABLE">
|
||
-STABLE</ulink>, και ο άλλος <ulink
|
||
url="&url.books.handbook;/current-stable.html#CURRENT">-CURRENT</ulink>.
|
||
Το &os;-STABLE προορίζεται για Παροχείς Υπηρεσιών Internet (ISPs)
|
||
και γενικά εμπορικές χρήσεις, όπου οι απότομες αλλαγές και τα
|
||
τυχόν πειραματικά χαρακτηριστικά είναι γενικά ανεπιθύμητα. Στον
|
||
κλάδο αυτό ενσωματώνονται μόνο καλά δοκιμασμένες διορθώσεις και
|
||
άλλες μικρές πρόσθετες αλλαγές. Από την άλλη μεριά, το
|
||
&os;-CURRENT βρίσκεται σε μια μοναδική αδιάκοπη γραμμή ανάπτυξης
|
||
από την εποχή της κυκλοφορίας της έκδοσης 2.0, οδηγώντας προς
|
||
την έκδοση 6.2-RELEASE αλλά και μετά από αυτή. Λίγο πριν τη
|
||
κυκλοφορία της έκδοσης 6.0-RELEASE, δημιουργήθηκε ο κλάδος
|
||
6-STABLE και το &os.current; έγινε 7-CURRENT. Για περισσότερες
|
||
πληροφορίες δείτε
|
||
<quote><ulink url="&url.articles.releng;/release-proc.html#REL-BRANCH">
|
||
Προετοιμασία Εκδόσεων του &os;:
|
||
Δημιουργία του Κλάδου Έκδοσης</ulink></quote>.</para>
|
||
|
||
<para>Ο κλάδος 2.2-STABLE εγκαταλείφθηκε με την κυκλοφορία της
|
||
έκδοσης 2.2.8. Ο κλάδος 3-STABLE τελείωσε με την κυκλοφορία της
|
||
έκδοσης 3.5.1, που ήταν και η τελευταία της σειράς εκδόσεων 3.X.
|
||
Ο κλάδος 4-STABLE τελείωσε με την κυκλοφορία της έκδοσης 4.11, της
|
||
τελευταίας της σειράς 4.X. Οι μόνες αλλαγές που γίνονται κατά
|
||
βάση σε κάθε ένα από αυτούς τους κλάδους, έχουν σχέση με
|
||
διορθώσεις σε κενά ασφαλείας. Η υποστήριξη των κλάδων 5-STABLE θα
|
||
συνεχιστεί για κάποιο διάστημα, ωστόσο θα επικεντρωθεί
|
||
περισσότερο σε διορθώσεις κενών ασφαλείας και άλλων σοβαρών
|
||
προβλημάτων.</para>
|
||
|
||
<para>Το &rel.current;-STABLE είναι ο κλάδος που βρίσκεται υπό
|
||
ενεργή ανάπτυξη. Η τελευταία κυκλοφορία που βασίζεται στον κλάδο
|
||
&rel.current;-STABLE είναι η &rel.current;-RELEASE, και έγινε
|
||
στις &rel.current.date;.</para>
|
||
|
||
<para>Ο κλάδος 7-CURRENT είναι ο κλάδος -CURRENT που αναπτύσσεται
|
||
αυτή τη στιγμή ενεργά ώστε να δημιουργηθεί η νέα γενιά του &os;.
|
||
Δείτε <link linkend="current">Τι είναι το &os;-CURRENT;</link>
|
||
για περισσότερες πληροφορίες σχετικά με αυτό τον κλάδο.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="release-freq">
|
||
<para>Κάθε πότε γίνονται επίσημες κυκλοφορίες του &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>H &a.re; δίνει στην κυκλοφορία μια καινούρια έκδοση του &os;
|
||
κάθε περίπου τέσσερις μήνες, κατά μέσο όρο. Οι ημερομηνίες
|
||
κυκλοφορίας ανακοινώνονται αρκετό καιρό πριν, ώστε όσοι δουλεύουν
|
||
πάνω στο σύστημα να ξέρουν πότε οι εργασίες τους πρέπει να έχουν
|
||
ολοκληρωθεί και δοκιμαστεί. Πριν από κάθε κυκλοφορία, προηγείται
|
||
μια περίοδος δοκιμών, ώστε να εξασφαλιστεί ότι η προσθήκη νέων
|
||
χαρακτηριστικών δεν έχει αρνητικές επιπτώσεις στη σταθερότητα
|
||
της έκδοσης. Πολλοί χρήστες θεωρούν αυτό το είδος της προσοχής
|
||
ένα από τα καλύτερα πράγματα σχετικά με το &os;, αν και η αναμονή
|
||
ως ότου φτάσουν όλα τα ωραία νέα χαρακτηριστικά το -STABLE μπορεί
|
||
να γίνει λίγο εκνευριστική.</para>
|
||
|
||
<para>Περισσότερες πληροφορίες σχετικά με τη διαδικασία κυκλοφορίας
|
||
(περιλαμβανομένου και ενός χρονοδιαγράμματος επικείμενων
|
||
κυκλοφοριών) μπορούν να βρεθούν στις σελίδες
|
||
<ulink
|
||
url="http://www.FreeBSD.org/releng/index.html">προετοιμασίας
|
||
εκδόσεων</ulink> στη δικτυακή τοποθεσία του &os;.</para>
|
||
|
||
<para>Για τους πιο ενθουσιώδεις, υπάρχουν καθημερινά στιγμιότυπα
|
||
(binary snapshots) όπως αναφέρθηκε πιο πάνω.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="responsible">
|
||
<para>Ποιος είναι υπεύθυνος για το &os;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Οι βασικές αποφάσεις που αφορούν το &os; Project, όπως η
|
||
συνολική κατεύθυνση του έργου και ποιος επιτρέπεται να προσθέσει
|
||
πηγαίο κώδικα στο δέντρο, παίρνονται από την
|
||
<ulink
|
||
url="&url.base;/administration.html#t-core">βασική ομάδα
|
||
(core team)</ulink> που αποτελείται από 9 άτομα. Υπάρχει μια
|
||
ακόμα μεγαλύτερη ομάδα με περισσότερα από 350 άτομα που
|
||
ονομάζονται
|
||
<ulink
|
||
url="&url.articles.contributors;/article.html#STAFF-COMMITTERS">
|
||
διαπράκτες (committers)</ulink>
|
||
και οι οποίοι έχουν την έγκριση να κάνουν απευθείας αλλαγές στο
|
||
δέντρο πηγαίου κώδικα του &os;.</para>
|
||
|
||
<para>Ωστόσο οι περισσότερες σημαντικές αλλαγές συζητούνται από
|
||
πριν στις <link linkend="mailing">λίστες ηλεκτρονικού
|
||
ταχυδρομείου</link>, και δεν υπάρχουν περιορισμοί σχετικά με το
|
||
ποιοι λαμβάνουν μέρος σε αυτές τις συζητήσεις.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="where-get">
|
||
<para>Που μπορώ να προμηθευτώ το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Κάθε σημαντική έκδοση του &os; είναι διαθέσιμη μέσω ανώνυμου
|
||
FTP από τον <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">
|
||
διακομιστή FTP του &os;</ulink>:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Η τελευταία κυκλοφορία που βασίζεται στο 6-STABLE,
|
||
&rel.current;-RELEASE μπορεί να βρεθεί στον κατάλογο
|
||
<ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;-RELEASE</ulink>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Εκδόσεις που βασίζονται σε<ulink
|
||
url="&url.base;/snapshots/">
|
||
Στιγμιότυπα</ulink> γίνονται καθημερινά από τους κλάδους
|
||
<link linkend="current">-CURRENT</link> και
|
||
<link linkend="stable">-STABLE</link>, και εξυπηρετούν κατά
|
||
βάση όσους ασχολούνται με την ανάπτυξη και τον έλεγχο των
|
||
τελευταίας γενιάς προγραμμάτων.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Η τελευταία κυκλοφορία που βασίζεται στον κλάδο 5-STABLE
|
||
,η &rel2.current;-RELEASE, μπορεί να βρεθεί στον κατάλογο
|
||
<ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;-RELEASE</ulink>.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Πληροφορίες σχετικά με τη διάθεση του &os; σε CD, DVD και άλλα
|
||
μέσα μπορούν να βρεθούν
|
||
<ulink url="&url.books.handbook;/mirrors.html">στο Εγχειρίδιο
|
||
</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="access-pr">
|
||
<para>Πως μπορώ να έχω πρόσβαση στη Βάση Δεδομένων με τις
|
||
Αναφορές Προβλημάτων;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Μπορείτε να κάνετε αναζητήσεις στη βάση δεδομένων με τις
|
||
αναφορές προβλημάτων μέσω της
|
||
<ulink
|
||
url="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
|
||
διεπαφής αναζητήσεων στο Web</ulink>.</para>
|
||
|
||
<para>Η εντολή &man.send-pr.1; μπορεί να χρησιμοποιηθεί για την
|
||
υποβολή αναφορών προβλημάτων, καθώς και αιτήσεων για αλλαγές,
|
||
μέσω ηλεκτρονικού ταχυδρομείου. Εναλλακτικά, μπορείτε να
|
||
χρησιμοποιήσετε την αντίστοιχη δυνατότητα
|
||
<ulink url="http://www.freebsd.org/send-pr.html">υποβολής
|
||
αναφορών προβλημάτων μέσω της διεπαφής web</ulink> με τη βοήθεια
|
||
ενός προγράμματος φυλλομετρητή.</para>
|
||
|
||
<para>Πριν υποβάλετε μια αναφορά προβλήματος, παρακαλούμε διαβάστε
|
||
το
|
||
<ulink url="&url.articles.problem-reports;/article.html">Γράφοντας
|
||
Αναφορές Προβλημάτων για το &os;</ulink>, ένα άρθρο για το πως
|
||
να γράφετε καλές αναφορές προβλημάτων.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="other-info-sources">
|
||
<para>Τι άλλες πηγές πληροφοριών υπάρχουν;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Παρακαλούμε ελέγξτε τη λίστα της <ulink
|
||
url="http://www.FreeBSD.org/docs.html">Τεκμηρίωσης</ulink>
|
||
στην κύρια δικτυακή τοποθεσία του <ulink
|
||
url="http://www.FreeBSD.org">&os;</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="support">
|
||
<title>Τεκμηρίωση και Υποστήριξη</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="books">
|
||
<para>Ποια καλά βιβλία υπάρχουν σχετικά με το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το Project παράγει μια μεγάλη γκάμα τεκμηρίωσης που διατίθεται
|
||
online από τον παρακάτω σύνδεσμο:
|
||
<ulink url="http://www.FreeBSD.org/docs.html"></ulink>. Τα ίδια
|
||
αυτά έγγραφα είναι διαθέσιμα και ως πακέτα τα οποία μπορείτε να
|
||
εγκαταστήσετε εύκολα στο &os; σύστημα σας. Περισσότερες
|
||
λεπτομέρειες σχετικά με τα πακέτα τεκμηρίωσης, θα βρείτε στις
|
||
ακόλουθες παραγράφους.</para>
|
||
|
||
<para>Επιπρόσθετα, θα βρείτε και άλλα συνιστώμενα βιβλία στην
|
||
Βιβλιογραφία στο τέλος αυτού του FAQ, και του Εγχειριδίου.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="doc-formats">
|
||
<para>Είναι διαθέσιμη η τεκμηρίωση και σε άλλες μορφές, όπως απλό
|
||
κείμενο (ASCII) ή &postscript;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ναι. Η τεκμηρίωση είναι διαθέσιμη σε πλήθος διαφορετικών
|
||
μορφών και τρόπων συμπίεσης, στο διακομιστή FTP του &os;, στον
|
||
κατάλογο <ulink
|
||
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/doc/</ulink>.</para>
|
||
|
||
<para>Η τεκμηρίωση είναι κατηγοριοποιημένη με διάφορους τρόπους.
|
||
Αυτοί περιλαμβάνουν:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Το όνομα του εγγράφου, όπως π.χ. <literal>faq</literal>, ή
|
||
<literal>handbook</literal>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>H γλώσσα και η κωδικοποίηση του κειμένου. Αυτά βασίζονται
|
||
στα ονόματα που έχουν δοθεί στις τοπικές ρυθμίσεις και που
|
||
μπορείτε να βρείτε στον κατάλογο
|
||
<filename>/usr/share/locale</filename> στο &os; σύστημά σας.
|
||
Οι τρέχουσες γλώσσες και κωδικοποιήσεις που έχουμε διαθέσιμες
|
||
αυτή τη στιγμή στην τεκμηρίωση είναι οι παρακάτω:</para>
|
||
|
||
<informaltable frame="none" pgwide="1">
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>Όνομα</entry>
|
||
|
||
<entry>Ερμηνεία</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry><literal>en_US.ISO8859-1</literal></entry>
|
||
|
||
<entry>Αγγλικά ΗΠΑ</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>bn_BD.ISO10646-1</literal></entry>
|
||
|
||
<entry>Bengali (ή Bangla)</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>da_DK.ISO8859-1</literal></entry>
|
||
|
||
<entry>Δανέζικα</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>de_DE.ISO8859-1</literal></entry>
|
||
|
||
<entry>Γερμανικά</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>es_ES.ISO8859-1</literal></entry>
|
||
|
||
<entry>Ισπανικά</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>fr_FR.ISO8859-1</literal></entry>
|
||
|
||
<entry>Γαλλικά</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>hu_HU.ISO8859-2</literal></entry>
|
||
|
||
<entry>Ουγγαρέζικα</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>it_IT.ISO8859-15</literal></entry>
|
||
|
||
<entry>Ιταλικά</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>ja_JP.eucJP</literal></entry>
|
||
|
||
<entry>Γιαπωνέζικα (κωδικοποίηση EUC)</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>mn_MN.UTF-8</literal></entry>
|
||
|
||
<entry>Μογγολικά (κωδικοποίηση UTF-8)</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>nl_NL.ISO8859-1</literal></entry>
|
||
|
||
<entry>Ολλανδικά</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>pl_PL.ISO8859-2</literal></entry>
|
||
|
||
<entry>Πολωνικά</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>pt_BR.ISO8859-1</literal></entry>
|
||
|
||
<entry>Πορτογαλικά (Βραζιλία)</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>ru_RU.KOI8-R</literal></entry>
|
||
|
||
<entry>Ρώσικα (κωδικοποίηση KOI8-R)</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>sr_YU.ISO8859-2</literal></entry>
|
||
|
||
<entry>Σέρβικα</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>tr_TR.ISO8859-9</literal></entry>
|
||
|
||
<entry>Τούρκικα</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>zh_CN.GB2312</literal></entry>
|
||
|
||
<entry>Απλοποιημένα Κινέζικα (κωδικοποίηση GB2312)
|
||
</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>zh_TW.Big5</literal></entry>
|
||
|
||
<entry>Παραδοσιακά Κινέζικα (κωδικοποίηση Big5)</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
|
||
<note>
|
||
<para>Κάποια έγγραφα μπορεί να μην είναι διαθέσιμα σε όλες
|
||
τις γλώσσες.</para>
|
||
</note>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Τη μορφή του εγγράφου. Παράγουμε τεκμηρίωση σε πλήθος
|
||
διαφορετικών μορφών εξόδου. Κάθε μορφή έχει τα δικά της
|
||
πλεονεκτήματα και μειονεκτήματα. Κάποιες μορφές είναι
|
||
περισσότερο κατάλληλες για ανάγνωση online, ενώ άλλες
|
||
δίνουν πιο καλαίσθητο αποτέλεσμα όταν εκτυπωθούν. Η διάθεση
|
||
της τεκμηρίωσης σε όλες αυτές τις μορφές εξασφαλίζει ότι οι
|
||
αναγνώστες μας θα μπορούν να διαβάσουν τα τμήματα που τους
|
||
ενδιαφέρουν, είτε στην οθόνη τους, είτε αφού τα εκτυπώσουν.
|
||
Οι διαθέσιμες αυτή τη στιγμή μορφές είναι:</para>
|
||
|
||
<informaltable frame="none" pgwide="1">
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>Μορφή</entry>
|
||
|
||
<entry>Ερμηνεία</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry><literal>html-split</literal></entry>
|
||
|
||
<entry>Συλλογή μικρών, συνδεμένων μεταξύ τους, αρχείων
|
||
HTML.</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>html</literal></entry>
|
||
|
||
<entry>Ένα μεγάλο HTML αρχείο που περιέχει ολόκληρο το
|
||
έγγραφο.</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>pdb</literal></entry>
|
||
|
||
<entry>Μορφή βάσης δεδομένων για το Palm Pilot, για
|
||
χρήση με το πρόγραμμα ανάγνωσης
|
||
<ulink url="http://www.iSilo.com/">iSilo</ulink>.
|
||
</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>pdf</literal></entry>
|
||
|
||
<entry>Μορφή κειμένου PDF της Adobe.</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>ps</literal></entry>
|
||
|
||
<entry>&postscript;</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>rtf</literal></entry>
|
||
|
||
<entry>Μορφή Εμπλουτισμένου Κειμένου της Microsoft
|
||
<footnote><para>Οι αριθμοί σελίδων δεν ανανεώνονται
|
||
αυτόματα όταν φορτώνετε αυτή τη μορφή εγγράφου στο
|
||
Word. Πιέστε
|
||
<keycombo
|
||
action="simul"><keycap>CTRL</keycap><keycap>A</keycap></keycombo>,
|
||
<keycombo
|
||
action="simul"><keycap>CTRL</keycap><keycap>END</keycap></keycombo>,
|
||
<keycap>F9</keycap> μετά τη φόρτωση του κειμένου για
|
||
την ανανέωση των αριθμών σελίδων.</para>
|
||
</footnote>
|
||
</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>txt</literal></entry>
|
||
|
||
<entry>Απλό κείμενο</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Ο τρόπος συμπίεσης και πακεταρίσματος. Υπάρχουν τρεις
|
||
τρόποι που χρησιμοποιούνται αυτή τη στιγμή.</para>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Όταν η μορφή είναι
|
||
<literal>html-split</literal>, τα αρχεία συμπιέζονται
|
||
με χρήση της &man.tar.1;. Το αρχείο
|
||
<filename>.tar</filename> που προκύπτει, συμπιέζεται
|
||
έπειτα με τους τρόπους συμπίεσης που περιγράφονται
|
||
παρακάτω.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Όλες οι άλλες μορφές δημιουργούν ένα αρχείο που
|
||
ονομάζεται
|
||
<filename>book.<replaceable>μορφή</replaceable></filename>
|
||
(π.χ., <filename>book.pdb</filename>,
|
||
<filename>book.html</filename>, κ.ο.κ.).</para>
|
||
|
||
<para>Τα αρχεία αυτά συμπιέζονται κατόπιν με δύο τρόπους
|
||
συμπίεσης.</para>
|
||
|
||
<informaltable frame="none" pgwide="1">
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>Τρόπος</entry>
|
||
|
||
<entry>Περιγραφή</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry><literal>zip</literal></entry>
|
||
|
||
<entry>Μορφή συμπίεσης Zip. Αν θέλετε να
|
||
το αποσυμπιέσετε στο &os; θα πρέπει να
|
||
εγκαταστήσετε πρώτα το port
|
||
<filename
|
||
role="package">archivers/unzip</filename>.
|
||
</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><literal>bz2</literal></entry>
|
||
|
||
<entry>Η μορφή BZip2. Είναι λιγότερο διαδεδομένη
|
||
από το Zip, αλλά γενικά δημιουργεί μικρότερα
|
||
αρχεία. Εγκαταστήστε το port <filename
|
||
role="package">archivers/bzip2</filename>
|
||
για να αποσυμπιέσετε αρχεία αυτού του τύπου.
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
|
||
<para>Με τον τρόπο αυτό, η μορφή &postscript; του
|
||
Εγχειριδίου, συμπιεσμένη με χρήση του BZip2 θα
|
||
αποθηκευτεί σε ένα αρχείο με όνομα
|
||
<filename>book.ps.bz2</filename> στον
|
||
κατάλογο <filename>handbook/</filename>.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Αφού επιλέξετε τη μορφή και το μηχανισμό συμπίεσης που
|
||
επιθυμείτε να κατεβάσετε, θα πρέπει έπειτα να αποφασίσετε αν
|
||
θέλετε ή όχι να κατεβάσετε το έγγραφο με τη μορφή
|
||
<emphasis>πακέτου</emphasis> του &os;.</para>
|
||
|
||
<para>Το πλεονέκτημα στο να κατεβάσετε και να εγκαταστήσετε το
|
||
πακέτο είναι ότι έπειτα μπορείτε να διαχειριστείτε την
|
||
τεκμηρίωση χρησιμοποιώντας τα συνηθισμένα εργαλεία διαχείρισης
|
||
πακέτων του &os; όπως την &man.pkg.add.1; και την
|
||
&man.pkg.delete.1;.</para>
|
||
|
||
<para>Αν αποφασίσετε να κατεβάσετε και να εγκαταστήσετε την
|
||
τεκμηρίωση ως πακέτο, θα πρέπει να ξέρετε το ακριβές όνομα αρχείου
|
||
που θα κατεβάσετε. Τα αρχεία τεκμηρίωσης-ως-πακέτο αποθηκεύονται
|
||
σε ένα κατάλογο με το όνομα <filename>packages</filename>. Κάθε
|
||
πακέτο μοιάζει με
|
||
<filename><replaceable>όνομα-κειμένου</replaceable>.<replaceable>γλώσσα</replaceable>.<replaceable>κωδικοποίηση</replaceable>.<replaceable>μορφή</replaceable>.tgz</filename>.</para>
|
||
|
||
<para>Για παράδειγμα, το FAQ, στα Αγγλικά, σε μορφή PDF, είναι στο
|
||
πακέτο με όνομα
|
||
<filename>faq.en_US.ISO8859-1.pdf.tgz</filename>.</para>
|
||
|
||
<para>Αν το ξέρετε αυτό μπορείτε να χρησιμοποιήσετε την ακόλουθη
|
||
εντολή για να εγκαταστήσετε το πακέτο του Αγγλικού PDF FAQ:</para>
|
||
|
||
<screen>&prompt.root; <userinput>pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz</userinput></screen>
|
||
|
||
<para>Αφού το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε την εντολή
|
||
&man.pkg.info.1; για να βρείτε που έχει εγκατασταθεί το αρχείο.</para>
|
||
|
||
<screen>&prompt.root; <userinput>pkg_info -f faq.en_US.ISO8859-1.pdf</userinput>
|
||
Information for faq.en_US.ISO8859-1.pdf:
|
||
|
||
Packing list:
|
||
Package name: faq.en_US.ISO8859-1.pdf
|
||
CWD to /usr/share/doc/en_US.ISO8859-1/books/faq
|
||
File: book.pdf
|
||
CWD to .
|
||
File: +COMMENT (ignored)
|
||
File: +DESC (ignored)</screen>
|
||
|
||
<para>Όπως μπορείτε να δείτε, το <filename>book.pdf</filename> θα
|
||
έχει εγκατασταθεί στον κατάλογο
|
||
<filename>/usr/share/doc/en_US.ISO8859-1/books/faq</filename>.</para>
|
||
|
||
<para>Αν δεν θέλετε να χρησιμοποιήσετε τα πακέτα, θα πρέπει να
|
||
κατεβάσετε μόνοι σας τα συμπιεσμένα αρχεία, να τα αποσυμπιέσετε
|
||
και έπειτα να αντιγράψετε τα αντίστοιχα έγγραφα στη θέση τους.</para>
|
||
|
||
<para>Για παράδειγμα, η έκδοση του FAQ σε συνδεδεμένα αρχεία HTML,
|
||
συμπιεσμένη με χρήση του &man.bzip2.1;, μπορεί να βρεθεί στο
|
||
αρχείο
|
||
<filename>doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2
|
||
</filename>. Για να κατεβάσετε και να αποσυμπιέσετε αυτό το αρχείο
|
||
θα πρέπει να κάνετε το παρακάτω:</para>
|
||
|
||
<screen>&prompt.root; <userinput>fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2</userinput>
|
||
&prompt.root; <userinput>bzip2 -d book.html-split.tar.bz2</userinput>
|
||
&prompt.root; <userinput>tar xvf book.html-split.tar</userinput></screen>
|
||
|
||
<para>Θα καταλήξετε με μια συλλογή από αρχεία
|
||
<filename>.html</filename>. Το βασικό ονομάζεται
|
||
<filename>index.html</filename>, και θα περιέχει τον πίνακα
|
||
περιεχομένων, εισαγωγικό υλικό, και δεσμούς προς τα άλλα τμήματα
|
||
του εγγράφου. Μπορείτε έπειτα να αντιγράψετε ή να μετακινήσετε
|
||
τα αρχεία αυτά στις τελικές τους θέσεις, όπως απαιτείται.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="mailing">
|
||
<para>Που μπορώ να βρω πληροφορίες για λίστες ηλεκτρονικού
|
||
ταχυδρομείου του &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Μπορείτε να βρείτε πλήρεις πληροφορίες στην αντίστοιχη <ulink
|
||
url="&url.books.handbook;/eresources.html#ERESOURCES-MAIL">
|
||
καταχώρηση του Εγχειριδίου για τις λίστες ηλεκτρονικού
|
||
ταχυδρομείου.</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="newsgroups">
|
||
<para>Τι ομάδες συζήτησης είναι διαθέσιμες για το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Μπορείτε να βρείτε πλήρεις πληροφορίες στην <ulink
|
||
url="&url.books.handbook;/eresources-news.html">καταχώρηση του
|
||
Εγχειριδίου για τις ομάδες συζητήσεων.</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="irc">
|
||
<para>Υπάρχουν κανάλια στο IRC (Internet Relay Chat) για το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ναι, τα περισσότερα IRC δίκτυα διαθέτουν κανάλι συζήτησης για
|
||
το &os;:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Το κανάλι <literal>#FreeBSD</literal> στο
|
||
<ulink url="http://www.efnet.org/index.php">EFNet</ulink>
|
||
ασχολείται με το &os;, αλλά μην πάτε εκεί για τεχνική
|
||
υποστήριξη ή για να προσπαθήσετε να πείσετε τους θαμώνες να
|
||
σας βοηθήσουν για να απαλλαγείτε από τον κόπο να διαβάσετε τις
|
||
σελίδες βοήθειας ή να ερευνήσετε μόνος σας. Είναι απλώς ένα
|
||
κανάλι συζήτησης, πρώτα από όλα, και τα θέματα εκεί μπορεί
|
||
να κυμαίνονται ανάμεσα στο σεξ, τον αθλητισμό, τα πυρηνικά
|
||
όπλα ως και το &os;. Σας έχουμε προειδοποιήσει! Είναι
|
||
διαθέσιμο στον εξυπηρετητή <hostid>irc.chat.org</hostid>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Το κανάλι <literal>#FreeBSDhelp</literal> στο
|
||
<ulink url="http://www.efnet.org/index.php">EFNet</ulink>
|
||
είναι αφιερωμένο στη βοήθεια των χρηστών του &os;. Έχετε
|
||
πολύ μεγαλύτερη πιθανότητα να βρείτε απαντήσεις στις ερωτήσεις
|
||
σας σε αυτό, παρά στο <literal>#FreeBSD</literal>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Το κανάλι <literal>##FreeBSD</literal> στο
|
||
<ulink url="http://freenode.net/">Freenode</ulink>
|
||
είναι ένα γενικό κανάλι βοήθειας με περίπου 300 χρήστες κάθε
|
||
φορά. Οι συζητήσεις μερικές φορές ξεφεύγουν από το θέμα,
|
||
αλλά δίνεται προτεραιότητα στους χρήστες με ερωτήσεις για το
|
||
&os;. Είμαστε καλοί στο να σας βοηθήσουμε να καταλάβετε τα
|
||
βασικά, να σας δείξουμε που να ανατρέξετε στο Εγχειρίδιο όποτε
|
||
χρειάζεται, και να σας κατευθύνουμε εκεί όπου μπορείτε να
|
||
μάθετε περισσότερα για θέμα που σας απασχολεί. Είμαστε κατά
|
||
βάση Αγγλόφωνο κανάλι, αν και έχουμε χρήστες από όλο τον
|
||
κόσμο. Αν θέλετε να ρωτήσετε στη μητρική σας γλώσσα,
|
||
προσπαθήστε να κάνετε την ερώτηση στα Αγγλικά και έπειτα
|
||
μετακινηθείτε σε κάποιο άλλο κανάλι
|
||
##freebsd-<replaceable>lang</replaceable> αν χρειάζεται.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Το κανάλι <literal>#FreeBSD</literal> στο
|
||
<ulink url="http://www.dal.net/">DALNET</ulink>
|
||
είναι διαθέσιμο στο <hostid>irc.dal.net</hostid> στις ΗΠΑ
|
||
και στο <hostid>irc.eu.dal.net</hostid> στην Ευρώπη.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Το κανάλι <literal>#FreeBSDHelp</literal> στο
|
||
<ulink url="http://www.dal.net/">DALNET</ulink>
|
||
είναι διαθέσιμο στο <hostid>irc.dal.net</hostid> στις ΗΠΑ
|
||
και στο <hostid>irc.eu.dal.net</hostid> στην Ευρώπη.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Το κανάλι <literal>#FreeBSD</literal> στο
|
||
<ulink url="http://www.undernet.org/">UNDERNET</ulink>
|
||
είναι διαθέσιμο στο <hostid>us.undernet.org</hostid>
|
||
στις ΗΠΑ και στο <hostid>eu.undernet.org</hostid> στην
|
||
Ευρώπη. Καθώς είναι κανάλι βοήθειας, θα πρέπει να είστε
|
||
προετοιμασμένοι να διαβάσετε τα έγγραφα στα οποία θα σας
|
||
παραπέμψουν.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Το κανάλι <literal>#FreeBSD</literal> στο
|
||
<ulink url="http://www.rusnet.org.ru/">RUSNET</ulink>
|
||
είναι προσανατολισμένο στη βοήθεια χρηστών του &os; που
|
||
μιλούν τη Ρωσική γλώσσα. Είναι επίσης ένα καλό μέρος για
|
||
μη-τεχνικές συζητήσεις.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Το κανάλι <literal>#BSDChat</literal> στο
|
||
<ulink url="http://www.ircnet.net/">IRCNET</ulink>
|
||
είναι ένα κανάλι σε παραδοσιακή Κινεζική γλώσσα, αφιερωμένο
|
||
στη βοήθεια χρηστών του &os;. Είναι επίσης ένα καλό μέρος για
|
||
μη-τεχνικές συζητήσεις.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Κάθε ένα από αυτά τα κανάλια, είναι χωριστό, και δεν
|
||
διασυνδέεται με τα υπόλοιπα. Τα στυλ της συζήτησης διαφέρουν,
|
||
και ίσως θα θέλετε να δοκιμάσετε καθένα για να βρείτε κάποιο
|
||
που να ταιριάζει στο δικό σας. Όπως με <emphasis>κάθε</emphasis>
|
||
τύπο συζήτησης στο IRC, αν είστε από αυτούς που προσβάλλονται
|
||
εύκολα, ή δεν μπορείτε να αντιμετωπίσετε πολλούς νέους ανθρώπους
|
||
(και αρκετούς πιο μεγάλους) να επιδίδονται στο λεκτικό αντίστοιχο
|
||
της πυγμαχίας, μην ασχοληθείτε καθόλου.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="training">
|
||
<para>Που μπορώ να βρω επί πληρωμή υποστήριξη και εκπαίδευση για
|
||
το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το DaemonNews παρέχει επί πληρωμή εκπαίδευση και υποστήριξη
|
||
για το &os;. Περισσότερες πληροφορίες μπορείτε να βρείτε στην
|
||
δικτυακή τους τοποθεσία
|
||
<ulink url="http://www.bsdmall.com/">BSD Mall</ulink>.</para>
|
||
|
||
<para>Το &os; Mall παρέχει επίσης επί πληρωμή υποστήριξη για το
|
||
&os;. Μπορείτε να βρείτε περισσότερες πληροφορίες στην
|
||
<ulink url="http://www.freebsdmall.com/">δικτυακή τους
|
||
τοποθεσία</ulink>.</para>
|
||
|
||
<para>Οποιοσδήποτε άλλος οργανισμός παρέχει εκπαίδευση και
|
||
υποστήριξη, θα πρέπει να επικοινωνήσει με το Project για να
|
||
καταχωρηθεί σε αυτή τη λίστα.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter
|
||
id="install">
|
||
<chapterinfo>
|
||
<author>
|
||
<firstname>Nik</firstname>
|
||
<surname>Clayton</surname>
|
||
<affiliation>
|
||
<address><email>nik@FreeBSD.org</email></address>
|
||
</affiliation>
|
||
</author>
|
||
</chapterinfo>
|
||
|
||
<title>Εγκατάσταση</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="floppy-download">
|
||
<para>Ποιο αρχείο πρέπει να κατεβάσω για να πάρω το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Χρειάζεστε τρία images δισκετών:
|
||
<filename>floppies/boot.flp</filename>,
|
||
<filename>floppies/kern1.flp</filename>, και
|
||
<filename>floppies/kern2.flp</filename>. Τα images αυτά πρέπει να
|
||
να τα γράψετε σε δισκέτες χρησιμοποιώντας κάποιο εργαλείο όπως το
|
||
<command>fdimage</command> ή το &man.dd.1;.</para>
|
||
|
||
<para>Αν πρέπει να κατεβάσετε μόνοι σας τα σετ διανομών
|
||
(distributions — για παράδειγμα για μια εγκατάσταση μέσω
|
||
συστήματος αρχείων DOS), θα βρείτε παρακάτω μερικές συστάσεις
|
||
σχετικά με το ποιες διανομές να κατεβάσετε:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>base/</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>manpages/</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>compat*/</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>doc/</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>src/ssys.*</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
|
||
<para>Πλήρεις οδηγίες σχετικά με τη διαδικασία καθώς και
|
||
περισσότερες πληροφορίες σχετικά με γενικά προβλήματα κατά την
|
||
εγκατάσταση μπορείτε να βρείτε στο
|
||
<ulink url="&url.books.handbook;/install.html">Κεφάλαιο του
|
||
Εγχειριδίου σχετικά με την εγκατάσταση του &os;</ulink>.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="floppy-image-too-large">
|
||
<para>Τι μπορώ να κάνω αν το image της δισκέτας δεν χωράει σε μια
|
||
μόνο δισκέτα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Μια δισκέτα των 3.5 ιντσών (1.44MB) μπορεί να χωρέσει ως
|
||
1474560 bytes δεδομένων. Το αρχείο image της δισκέτας εκκίνησης
|
||
είναι ακριβώς αυτό το μέγεθος.</para>
|
||
|
||
<para>Συνηθισμένα λάθη κατά την προετοιμασία της δισκέτας
|
||
εκκίνησης:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Κατέβασμα της δισκέτας χωρίς τη χρήση του
|
||
<emphasis>δυαδικού (binary)</emphasis> τρόπου όταν
|
||
χρησιμοποιείται εξυπηρετητής <acronym>FTP</acronym>.</para>
|
||
|
||
|
||
<para>Κάποια προγράμματα-πελάτες για FTP, χρησιμοποιούν από
|
||
προεπιλογή τον <emphasis>ascii (κειμένου)</emphasis> τρόπο
|
||
μεταφοράς δεδομένων και προσπαθούν να αλλάξουν τους χαρακτήρες
|
||
τέλους γραμμής ώστε να ταιριάζουν με τις συμβάσεις που
|
||
χρησιμοποιούνται από το σύστημα στο οποίο γίνεται η λήψη.
|
||
Αυτό σχεδόν σίγουρα θα καταστρέψει το image εκκίνησης.
|
||
Ελέγξτε το μέγεθος του image εκκίνησης που κατεβάσατε: Αν δεν
|
||
είναι <emphasis>ακριβώς</emphasis> αυτό που φαίνεται στον
|
||
εξυπηρετητή, η διαδικασία του κατεβάσματος θα πρέπει να
|
||
θεωρηθεί ύποπτη.</para>
|
||
|
||
<para>Για να παρακάμψετε το πρόβλημα: γράψτε
|
||
<emphasis>binary</emphasis> στην γραμμή εντολών του FTP, μετά
|
||
που θα συνδεθείτε στον εξυπηρετητή, και πριν ξεκινήσετε να
|
||
κατεβάζετε το image.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Χρήση της εντολής <command>copy</command> του DOS (η
|
||
αντίστοιχου γραφικού εργαλείου) για τη μεταφορά του αρχείου
|
||
image στη δισκέτα.</para>
|
||
|
||
<para>Προγράμματα όπως το <command>copy</command>, δεν θα
|
||
λειτουργήσουν σωστά καθώς το image εκκίνησης έχει φτιαχτεί
|
||
ώστε να εκκινεί άμεσα. Το image έχει τα πλήρη περιεχόμενα
|
||
της δισκέτας, τροχιά προς τροχιά, και δεν πρέπει να γραφεί
|
||
στη δισκέτα ως κανονικό αρχείο. Θα πρέπει να το μεταφέρετε
|
||
στη δισκέτα με <quote>ωμό</quote> τρόπο, χρησιμοποιώντας
|
||
εργαλεία χαμηλού επιπέδου (low-level) (όπως π.χ. το
|
||
<command>fdimage</command> ή το <command>rawrite</command>)
|
||
που περιγράφονται στον <ulink
|
||
url="&url.books.handbook;/install.html">οδηγό εγκατάστασης του
|
||
&os;</ulink>.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="install-instructions-location">
|
||
<para>Που βρίσκονται οι οδηγίες για την εγκατάσταση του &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Μπορείτε να βρείτε τις οδηγίες στην
|
||
<ulink url="&url.books.handbook;/install.html">καταχώρηση του
|
||
Εγχειριδίου σχετικά με την εγκατάσταση του &os;</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="need-to-run">
|
||
<para>Τι χρειάζομαι για να εκτελέσω το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Για εκδόσεις του &os; από το 5.X και μετά χρειάζεστε ένα PC
|
||
με επεξεργαστή 486 ή καλύτερο, με 24 MB ή περισσότερη RAM, και
|
||
τουλάχιστον 150 MB χώρου στο σκληρό σας δίσκο.</para>
|
||
|
||
<para>Μπορείτε να εκτελέσετε όλες τις εκδόσεις του &os; με μια
|
||
χαμηλών προδιαγραφών, μονόχρωμη (MDA) κάρτα γραφικών, αλλά για
|
||
να χρησιμοποιήσετε το &xorg;, θα χρειαστείτε κάρτα VGA ή
|
||
καλύτερη.</para>
|
||
|
||
<para>Δείτε επίσης και το <xref linkend="hardware">.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="custom-boot-floppy">
|
||
<para>Πως μπορώ να δημιουργήσω τη δική μου, προσαρμοσμένη
|
||
δισκέτα εγκατάστασης;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Τη δεδομένη στιγμή, δεν υπάρχει τρόπος να φτιάξετε
|
||
<emphasis>απλώς</emphasis> μια προσαρμοσμένη δισκέτα εγκατάστασης.
|
||
Θα πρέπει να δημιουργήσετε ολόκληρη νέα έκδοση, η οποία θα
|
||
περιλαμβάνει και την προσαρμοσμένη δισκέτα εγκατάστασης σας.</para>
|
||
|
||
<para>Για να δημιουργήσετε μια προσαρμοσμένη έκδοση, ακολουθήστε τις
|
||
οδηγίες στο άρθρο σχετικά με την
|
||
<ulink url="&url.articles.releng;/article.html">Οργάνωση Εκδόσεων
|
||
</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="multiboot">
|
||
<para>Μπορώ να έχω περισσότερα από ένα λειτουργικά συστήματα στον
|
||
υπολογιστή μου;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ρίξτε μια ματιά στην
|
||
<ulink url="&url.articles.multi-os;/index.html">
|
||
σελίδα πολλαπλών λειτουργικών</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="windows-coexist">
|
||
<para>Μπορούν να συνυπάρξουν τα &windows; με το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Εγκαταστήστε πρώτα τα &windows;, και μετά το &os;.
|
||
Ο διαχειριστής εκκίνησης του &os; θα σας επιτρέπει έπειτα να
|
||
επιλέξετε την εκκίνηση είτε των &windows; είτε του &os;. Αν
|
||
εγκαταστήσετε τα &windows; μετά το &os;, θα σας σβήσουν τον
|
||
διαχειριστή εκκίνησης, χωρίς καν να σας ρωτήσουν. Αν σας συμβεί,
|
||
αυτό δείτε το επόμενο τμήμα.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="win95-damaged-boot-manager">
|
||
<para>Τα &windows; κατέστρεψαν το διαχειριστή εκκίνησης μου!
|
||
Πως θα τον επαναφέρω;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Μπορείτε να επανεγκαταστήσετε το διαχειριστή εκκίνησης του
|
||
&os; χρησιμοποιώντας έναν από τους τρεις παρακάτω τρόπους:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Εκτελώντας το DOS, μετακινηθείτε στον κατάλογο tools/ της
|
||
&os; διανομής σας, και ψάξτε για το αρχείο
|
||
<filename>bootinst.exe</filename>. Εκτελέστε το όπως φαίνεται
|
||
παρακάτω:</para>
|
||
|
||
<screen><prompt>...\TOOLS></prompt> <userinput>bootinst.exe boot.bin</userinput></screen>
|
||
|
||
<para>και ο διαχειριστής εκκίνησης θα επανεγκατασταθεί.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Ξεκινήστε ξανά χρησιμοποιώντας τη δισκέτα εκκίνησης του
|
||
&os; και πηγαίνετε στην επιλογή Custom Installation του
|
||
μενού. Επιλέξτε Partition. Επιλέξτε τον οδηγό που κανονικά
|
||
θα περιείχε τον διαχειριστή εκκίνησης σας (φυσιολογικά τον
|
||
πρώτο) και όταν φτάσετε στον επεξεργαστή κατατμήσεων
|
||
(partition editor) για τον οδηγό αυτό, το πρώτο πράγμα
|
||
που θα κάνετε (χωρίς άλλες αλλαγές), είναι να επιλέξετε
|
||
(W)rite. Επιλέξτε yes στην επιβεβαίωση που θα εμφανιστεί και
|
||
όταν φτάσετε στην προτροπή επιλογής Διαχειριστή Εκκίνησης,
|
||
επιλέξτε <quote>Boot Manager</quote>. Με τον τρόπο αυτό
|
||
ο διαχειριστής εκκίνησης θα γραφεί ξανά στο δίσκο. Μπορείτε
|
||
τώρα να βγείτε από το μενού της εγκατάστασης και να
|
||
επανεκκινήσετε από το σκληρό δίσκο, όπως συνήθως.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Ξεκινήστε με τη βοήθεια της δισκέτας εκκίνησης (ή του
|
||
CD) του &os; και επιλέξτε <quote>Fixit</quote> από το μενού.
|
||
Επιλέξτε είτε τη δισκέτα Fixit είτε το CD #2 (το
|
||
<quote>live</quote> σύστημα αρχείων) και θα εισέλθετε στο
|
||
κέλυφος fixit. Εκτελέστε έπειτα την ακόλουθη εντολή:</para>
|
||
|
||
<screen><prompt>Fixit#</prompt> <userinput>fdisk -B -b /boot/boot0 <replaceable>bootdevice</replaceable></userinput></screen>
|
||
|
||
<para>αντικαθιστώντας το <replaceable>bootdevice</replaceable>
|
||
με τον πραγματικό σας δίσκο εκκίνησης, όπως π.χ.
|
||
<devicename>ad0</devicename> (πρώτος δίσκος IDE),
|
||
<devicename>ad4</devicename> (πρώτος δίσκος IDE στον βοηθητικό
|
||
ελεγκτή), <devicename>da0</devicename> (πρώτος δίσκος SCSI),
|
||
κ.λ.π.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="boot-on-thinkpad">
|
||
<para>Ο φορητός μου υπολογιστής σειράς IBM Thinkpad, σειράς Α, Τ ή
|
||
Χ, σταματάει να αποκρίνεται όταν προσπαθώ να εκκινήσω το &os;
|
||
μετά την εγκατάσταση. Πως μπορώ να επιλύσω αυτό το πρόβλημα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Πρόκειται για ένα πρόβλημα στις αρχικές εκδόσεις του BIOS της
|
||
ΙΒΜ στα συγκεκριμένα μηχανήματα, το οποίο αναγνωρίζει την
|
||
κατάτμηση του &os; ως πιθανό διαμέρισμα FAT για τη λειτουργία
|
||
αδρανοποίησης στο δίσκο (suspend-to-disk). Το BIOS σταματάει να
|
||
αποκρίνεται καθώς προσπαθεί να αναλύσει το διαμέρισμα του &os;.</para>
|
||
|
||
<para>Σύμφωνα με την IBM<footnote><para>Σε ένα e-mail από τον Keith
|
||
Frechette
|
||
<email>kfrechet@us.ibm.com</email>.</para></footnote>, τα
|
||
ακόλουθα μοντέλα και εκδόσεις BIOS περιλαμβάνουν τις απαραίτητες
|
||
διορθώσεις.</para>
|
||
|
||
<informaltable frame="none" pgwide="1">
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>Μοντέλο</entry>
|
||
<entry>Έκδοση BIOS</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry>T20</entry>
|
||
<entry>IYET49WW ή μεταγενέστερο</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>T21</entry>
|
||
<entry>KZET22WW ή μεταγενέστερο</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>A20p</entry>
|
||
<entry>IVET62WW ή μεταγενέστερο</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>A20m</entry>
|
||
<entry>IWET54WW ή μεταγενέστερο</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>A21p</entry>
|
||
<entry>KYET27WW ή μεταγενέστερο</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>A21m</entry>
|
||
<entry>KXET24WW ή μεταγενέστερο</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>A21e</entry>
|
||
<entry>KUET30WW</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
|
||
<para>Έχει αναφερθεί ότι μεταγενέστερες εκδόσεις του BIOS της ΙΒΜ,
|
||
ίσως παρουσιάζουν ξανά το πρόβλημα. <ulink
|
||
url="http://docs.FreeBSD.org/cgi/mid.cgi?20010427133759.A71732">
|
||
To μήνυμα αυτό</ulink> από τον Jacques Vidrine στην
|
||
&a.mobile; περιγράφει μια διαδικασία η οποία ίσως δουλέψει σε
|
||
νεότερα μοντέλα φορητών της IBM τα οποία δεν εκκινούν κανονικά
|
||
το &os;, και στα οποία μπορείτε να αναβαθμίσετε το BIOS ή και να
|
||
επιστρέψετε σε προηγούμενη έκδοση του.</para>
|
||
|
||
<para>Αν έχετε παλιότερο BIOS, αλλά δεν έχετε την επιλογή να το
|
||
αναβαθμίσετε, ένας τρόπος να ξεπεράσετε το πρόβλημα είναι να
|
||
εγκαταστήσετε το &os;, να αλλάξετε τον αναγνωριστικό αριθμό
|
||
(partition id) της κατάτμησης, και να εγκαταστήσετε νέα boot
|
||
blocks τα οποία να μπορούν να χειριστούν το διαφορετικό
|
||
αναγνωριστικό της κατάτμησης.</para>
|
||
|
||
<para>Αρχικά, θα πρέπει να επαναφέρετε το μηχάνημα σε μια κατάσταση
|
||
ώστε να περνάει από την αρχική διαγνωστική οθόνη. Αυτό απαιτεί
|
||
να ενεργοποιήσετε το μηχάνημα χωρίς να το αφήσετε να βρει
|
||
την κατάτμηση του &os; στον κύριο δίσκο του. Ένας τρόπος είναι
|
||
να απομακρύνετε τον σκληρό δίσκο και να τον μετακινήσετε προσωρινά
|
||
σε ένα παλιότερο ThinkPad (όπως το ThinkPad 600) ή κάποιο
|
||
επιτραπέζιο μηχάνημα, χρησιμοποιώντας το κατάλληλο καλώδιο
|
||
μετατροπής. Στο μηχάνημα αυτό μπορείτε πλέον να διαγράψετε την
|
||
κατάτμηση του &os; και έπειτα να μετακινήσετε τον δίσκο στο
|
||
αρχικό μηχάνημα. Το ThinkPad θα πρέπει τώρα να εκκινεί
|
||
κανονικά.</para>
|
||
|
||
<para>Με το μηχάνημα σε λειτουργική κατάσταση, μπορείτε τώρα να
|
||
χρησιμοποιήσετε την διαδικασία που περιγράφεται εδώ ώστε να
|
||
έχετε τελικά μια εγκατάσταση του &os; που να λειτουργεί.</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<para>Κατεβάστε τις δισκέτες <filename>boot1</filename> και
|
||
<filename>boot2</filename> από <ulink
|
||
url="http://people.FreeBSD.org/~bmah/ThinkPad/"></ulink>.
|
||
Αποθηκεύστε τα αρχεία αυτά κάπου που θα μπορείτε να τα
|
||
ξαναβρείτε αργότερα.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Εγκαταστήστε κανονικά το &os; στο ThinkPad.
|
||
<emphasis>Μην</emphasis> χρησιμοποιήσετε την κατάσταση
|
||
<literal>Dangerously Dedicated</literal>.
|
||
<emphasis>Μην</emphasis> κάνετε επανεκκίνηση όταν τελειώσει
|
||
η εγκατάσταση.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Χρησιμοποιήστε είτε το <quote>Emergency Holographic
|
||
Shell</quote> (<keycombo action="simul"><keycap>ALT</keycap>
|
||
<keycap>F4</keycap></keycombo>) είτε το κέλυφος
|
||
<quote>fixit</quote>.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Χρησιμοποιήστε την &man.fdisk.8; για να αλλάξετε τον
|
||
αναγνωριστικό αριθμό της κατάτμησης του &os; από
|
||
<literal>165</literal> σε <literal>166</literal> (αυτός είναι
|
||
ο τύπος που χρησιμοποιείται από το OpenBSD).</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Γράψτε τα αρχεία <filename>boot1</filename> και
|
||
<filename>boot2</filename> στο τοπικό σύστημα αρχείων.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Χρησιμοποιήστε το &man.disklabel.8; για να γράψετε τα
|
||
<filename>boot1</filename> και <filename>boot2</filename> στο
|
||
slice του &os;.</para>
|
||
|
||
<screen>&prompt.root; <userinput>disklabel -B -b boot1 -s boot2 ad0s<replaceable>n</replaceable></userinput></screen>
|
||
|
||
<para>Το <replaceable>n</replaceable> είναι ο αριθμός του slice
|
||
που έχετε εγκαταστήσει το &os;.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Κάντε επανεκκίνηση. Στην προτροπή εκκίνησης θα δείτε την
|
||
επιλογή να ξεκινήσετε το <literal>OpenBSD</literal>. Στην
|
||
πραγματικότητα, με αυτό τον τρόπο θα ξεκινήσετε το &os;.</para>
|
||
</step>
|
||
</procedure>
|
||
|
||
<para>Το να κάνετε το παραπάνω να λειτουργήσει στην περίπτωση που
|
||
θέλετε να έχετε διπλή εκκίνηση OpenBSD και &os; στον ίδιο φορητό
|
||
υπολογιστή, το αφήνουμε ως άσκηση στον αναγνώστη.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="install-bad-blocks">
|
||
<para>Μπορώ να κάνω εγκατάσταση σε ένα δίσκο με χαλασμένους
|
||
τομείς;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Μπορείτε, αλλά είναι κακή ιδέα.</para>
|
||
|
||
<para>Αν δείτε χαλασμένους τομείς σε ένα σύγχρονο οδηγό IDE, υπάρχει
|
||
μεγάλη πιθανότητα ο οδηγός αυτός, πολύ σύντομα, να σταματήσει να
|
||
λειτουργεί εντελώς (ο οδηγός δεν έχει άλλους εναλλακτικούς
|
||
κυλίνδρους που να μπορούν να αντικαταστήσουν τους χαλασμένους μέσω
|
||
της εσωτερικής λειτουργίας επανατοποθέτησης των δεδομένων, κάτι το
|
||
οποίο σημαίνει ότι ο δίσκος έχει σημαντική φθορά). Σας συνιστούμε
|
||
να αγοράσετε καινούριο δίσκο.</para>
|
||
|
||
<para>Αν έχετε οδηγό SCSI με χαλασμένους τομείς δείτε
|
||
<link linkend="awre">αυτή την απάντηση</link>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="boot-floppy-strangeness">
|
||
<para>Διάφορα περίεργα πράγματα συμβαίνουν όταν εκκινώ με τη
|
||
δισκέτα εκκίνησης! Τι συμβαίνει;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Αν βλέπετε καταστάσεις όπως το μηχάνημα να μην αποκρίνεται ή
|
||
να κάνει επανεκκίνηση μόνο του όταν προσπαθείτε να εκκινήσετε με
|
||
την δισκέτα εκκίνησης, θα πρέπει να κάνετε στον εαυτό σας τρεις
|
||
ερωτήσεις:</para>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Χρησιμοποιήσατε καινούριες, φρεσκο-διαμορφωμένες, και
|
||
χωρίς λάθη δισκέτες (κατά προτίμηση καλής εταιρίας τις οποίες
|
||
μόλις βγάλατε καινούριες από το κουτί τους, σε αντίθεση με τη
|
||
δισκέτα που πήρατε μαζί με κάποιο περιοδικό και η οποία
|
||
βρίσκονταν κάτω από το κρεβάτι τα τρία τελευταία χρόνια);</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Κατεβάσατε το image της δισκέτας με δυαδικό (binary ή
|
||
image) τρόπο μεταφοράς; (μη ντρέπεστε, ακόμα και οι καλύτεροι
|
||
από μας έχουν κατά λάθος κατεβάσει κάποιο δυαδικό αρχείο σε
|
||
κατάσταση ASCII (κειμένου), τουλάχιστον μια φορά!)</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Αν χρησιμοποιείτε &windows; 95 ή 98, εκτελέστε το
|
||
<command>fdimage</command> ή το
|
||
<command>rawrite</command> σε καθαρή κατάσταση DOS; Τα
|
||
λειτουργικά αυτά μπορεί να παρεμβληθούν σε προγράμματα τα
|
||
οποία γράφουν απευθείας στο υλικό, κάτι το οποίο συμβαίνει και
|
||
με τα προγράμματα δημιουργίας των δισκετών. Μπορεί να
|
||
δημιουργηθεί πρόβλημα, ακόμα και αν τα εκτελείτε σε παράθυρο
|
||
DOS μέσα από το γραφικό περιβάλλον.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
|
||
<para>Έχουν επίσης αναφερθεί περιπτώσεις όπου το &netscape;
|
||
δημιουργεί προβλήματα στο κατέβασμα της δισκέτας εκκίνησης, έτσι
|
||
είναι καλύτερα να χρησιμοποιήσετε κάποιο άλλο πρόγραμμα FTP, αν
|
||
αυτό είναι δυνατόν.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="no-install-cdrom">
|
||
<para>Ξεκίνησα από το ATAPI CDROM μου, αλλά το πρόγραμμα
|
||
εγκατάστασης λέει ότι δεν βρίσκει CDROM. Που πήγε;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Η συνήθης αιτία αυτού του προβλήματος είναι ένας
|
||
κακορυθμισμένος οδηγός CDROM. Πολλά PC έρχονται πλέον με το CDROM
|
||
ως slave συσκευή στο δευτερεύοντα ελεγκτή, χωρίς να υπάρχει στο
|
||
ίδιο κανάλι συσκευή master. Αυτό, σύμφωνα με τις προδιαγραφές του
|
||
ATAPI, δεν είναι έγκυρο, αλλά τα &windows; τηρούν τις
|
||
προδιαγραφές χαλαρά, ενώ το BIOS το αγνοεί κατά την εκκίνηση.
|
||
Αυτός είναι και ο λόγος που το BIOS κατάφερε να δει το CDROM και
|
||
να το χρησιμοποιήσει, αλλά και ο λόγος που το &os; δεν μπόρεσε να
|
||
το δει για να συνεχίσει την εγκατάσταση.</para>
|
||
|
||
<para>Ρυθμίστε ξανά το σύστημα σας, ώστε το CDROM είτε να είναι η
|
||
master συσκευή στον ελεγκτή που είναι συνδεμένη, ή βεβαιωθείτε ότι
|
||
είναι slave σε ένα ελεγκτή IDE ο οποίος όμως έχει άλλη συσκευή
|
||
συνδεμένη ως master.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="install-PLIP">
|
||
<para>Μπορώ να εγκαταστήσω το &os; στο φορητό μου χρησιμοποιώντας
|
||
PLIP (Parallel Line IP, IP μέσω Παράλληλης Θύρας);</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ναι. Χρησιμοποιήστε τυποποιημένο καλώδιο τύπου Laplink. Αν
|
||
χρειάζεται, διαβάστε το
|
||
<ulink url="&url.books.handbook;/network-plip.html">τμήμα PLIP
|
||
του Εγχειριδίου</ulink> για λεπτομέρειες σχετικές με δικτύωση μέσω
|
||
παράλληλης θύρας.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="geometry">
|
||
<para>Τι γεωμετρία να χρησιμοποιήσω για το σκληρό μου δίσκο;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<note>
|
||
<para>Με τον όρο <quote>γεωμετρία</quote>, εννοούμε τον αριθμό
|
||
των κυλίνδρων, κεφαλών και τομέων ανά τροχιά ενός δίσκου. Για
|
||
ευκολία, θα αναφερόμαστε στον όρο αυτό ως C/H/S (Cylinders /
|
||
Heads / Sectors). Αυτός είναι και ο τρόπος με τον οποίο το
|
||
BIOS βρίσκει σε ποια περιοχή του δίσκου να γράψει.</para>
|
||
</note>
|
||
|
||
<para>Το παραπάνω προκαλεί σύγχυση στου νέους διαχειριστές
|
||
συστημάτων. Καταρχήν, η <emphasis>φυσική</emphasis> γεωμετρία ενός
|
||
οδηγού SCSI είναι συνολικά άσχετη, αφού το &os; λειτουργεί με βάση
|
||
τα μπλοκ δίσκου. Στην πραγματικότητα, δεν υπάρχει καν
|
||
<quote>αληθινή</quote> φυσική γεωμετρία, καθώς η πυκνότητα των
|
||
τομέων μεταβάλλεται από περιοχή σε περιοχή του δίσκου. Αυτό που
|
||
οι κατασκευαστές αναφέρουν συχνά ως
|
||
<quote>φυσική γεωμετρία</quote> είναι συνήθως η γεωμετρία με την
|
||
όποια έχουν ανακαλύψει ότι γίνεται η μικρότερη σπατάλη ελεύθερου
|
||
χώρου. Για δίσκους IDE, το &os; χρησιμοποιεί πράγματι το C/H/S,
|
||
αλλά όλοι οι μοντέρνοι οδηγοί μετατρέπουν εσωτερικά αυτές τις
|
||
αναφορές σε αντίστοιχα μπλοκ.</para>
|
||
|
||
<para>Το μόνο που έχει πραγματική σημασία είναι η <emphasis>λογική
|
||
</emphasis> γεωμετρία. Αυτή είναι και η απάντηση που δέχεται το
|
||
BIOS όταν ρωτάει το δίσκο
|
||
<quote>ποια είναι η γεωμετρία σου;</quote> Έπειτα, χρησιμοποιεί
|
||
αυτή τη γεωμετρία για να αποκτήσει πρόσβαση στο δίσκο. Καθώς το
|
||
&os; χρησιμοποιεί το BIOS κατά την εκκίνηση, είναι πολύ σημαντικό
|
||
η γεωμετρία αυτή να είναι σωστή. Ειδικότερα, αν έχετε περισσότερα
|
||
από ένα λειτουργικά συστήματα στο δίσκο, πρέπει όλα να συμφωνούν
|
||
όσο αφορά τη γεωμετρία. Διαφορετικά θα έχετε σοβαρά προβλήματα
|
||
κατά την εκκίνηση!</para>
|
||
|
||
<para>Για δίσκους SCSI, η γεωμετρία που πρέπει να χρησιμοποιηθεί,
|
||
εξαρτάται από το αν είναι ενεργοποιημένη η υποστήριξη εκτεταμένης
|
||
μετάφρασης (αυτό συχνά αναφέρεται ως <quote>υποστήριξη για δίσκους
|
||
DOS >1GB</quote> ή κάτι αντίστοιχο). Αν είναι απενεργοποιημένη,
|
||
χρησιμοποιήστε <replaceable>N</replaceable> κυλίνδρους, 64
|
||
κεφαλές και 32 τομείς/τροχιά, όπου το
|
||
<replaceable>N</replaceable> είναι η χωρητικότητα του δίσκου σε
|
||
ΜΒ. Για παράδειγμα, για ένα δίσκο 2GB, θα πρέπει να έχετε 2048
|
||
κυλίνδρους, 64 κεφαλές, και 32 τομείς/τροχιά.</para>
|
||
|
||
<para>Αν <emphasis>είναι</emphasis> ενεργοποιημένη (και συχνά
|
||
παρέχεται έτσι ώστε να ξεπερνιούνται κάποιοι περιορισμοί στο
|
||
&ms-dos;) και η χωρητικότητα του δίσκου είναι μεγαλύτερη από 1GB,
|
||
χρησιμοποιήστε M κυλίνδρους, 63 τομείς ανά τροχιά (<emphasis>όχι
|
||
</emphasis> 64) και 255 κεφαλές, όπου <literal>M</literal> είναι
|
||
η χωρητικότητα του δίσκου σε MB, διαιρεμένη με το 7.844238 (!).
|
||
Έτσι, στο παράδειγμα μας, ο δίσκος των 2GB θα είχε 261 κυλίνδρους,
|
||
63 τομείς ανά τροχιά και 255 κεφαλές.</para>
|
||
|
||
<para>Αν δεν είστε σίγουρος για το παραπάνω, ή αν το &os; αποτύχει
|
||
στην ανίχνευση της σωστής γεωμετρίας κατά την εγκατάσταση, ο
|
||
απλούστερος τρόπος για να το παρακάμψετε, είναι συνήθως να
|
||
δημιουργήσετε ένα μικρό διαμέρισμα DOS στο δίσκο. Το BIOS έπειτα
|
||
θα ανιχνεύσει τη σωστή γεωμετρία, και μπορείτε πάντα να διαγράψετε
|
||
το διαμέρισμα DOS μέσα από τον επεξεργαστή κατατμήσεων, αν
|
||
δε θέλετε να το κρατήσετε. Μπορεί ωστόσο να θελήσετε να το
|
||
αφήσετε, για να προγραμματίζετε κάρτες δικτύου και για άλλες,
|
||
αντίστοιχες, εργασίες.</para>
|
||
|
||
<para>Εναλλακτικά, υπάρχει ένα ελεύθερα διαθέσιμο βοηθητικό
|
||
πρόγραμμα το οποίο διανέμεται με το &os; και λέγεται
|
||
<filename>pfdisk.exe</filename>. Μπορείτε να το βρείτε στον
|
||
υποκατάλογο <filename>tools</filename> στο CDROM του &os; ή στις
|
||
δικτυακές τοποθεσίες FTP του &os;. Το πρόγραμμα αυτό μπορεί να
|
||
χρησιμοποιηθεί για να ανακαλύψει τι γεωμετρία χρησιμοποιείται από
|
||
τα άλλα λειτουργικά συστήματα στο δίσκο που χρησιμοποιείται.
|
||
Μπορείτε να εισάγετε απευθείας αυτή τη γεωμετρία στον επεξεργαστή
|
||
κατατμήσεων.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="disk-divide-restrictions">
|
||
<para>Υπάρχουν κάποιοι περιορισμοί στο πως πρέπει να χωρίσω
|
||
το δίσκο;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ναι. Πρέπει να βεβαιωθείτε ότι η ριζική (root) κατάτμηση
|
||
βρίσκεται κάτω από τους 1024 κυλίνδρους, ώστε το BIOS να μπορεί
|
||
να εκκινήσει τον πυρήνα από αυτή. (Σημειώστε ότι αυτός είναι ένας
|
||
περιορισμός στο BIOS του PC, και όχι στο &os;).</para>
|
||
|
||
<para>Για ένα δίσκο SCSI, συνήθως αυτό σημαίνει ότι η ριζική
|
||
κατάτμηση θα βρίσκεται στα πρώτα 1024MB (ή στα πρώτα 4096ΜΒ αν
|
||
χρησιμοποιείται η εκτεταμένη μετάφραση - δείτε την προηγούμενη
|
||
ερώτηση). Για δίσκους IDE, το αντίστοιχο όριο είναι τα 504MB.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="disk-manager">
|
||
<para>Είναι συμβατό το &os; με προγράμματα διαχείρισης δίσκων
|
||
(disk managers);</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>To &os; αναγνωρίζει και επιτρέπει τη χρήση του Ontrack Disk
|
||
Manager. Δεν υποστηρίζονται άλλοι διαχειριστές δίσκων.</para>
|
||
|
||
<para>Αν θέλετε απλώς να χρησιμοποιήσετε το δίσκο με το &os;, δεν
|
||
χρειάζεστε διαχειριστή δίσκου. Απλώς ρυθμίστε το δίσκο για όσο
|
||
περισσότερο χώρο μπορεί να δει το BIOS (συνήθως 504ΜΒ), και το
|
||
&os; θα ανακαλύψει πόσο ελεύθερο χώρο έχετε στην πραγματικότητα.
|
||
Αν χρησιμοποιείτε κάποιο παλιό δίσκο σε ελεγκτή MFM, ίσως να
|
||
πρέπει να πείτε στο &os; πόσους κυλίνδρους να χρησιμοποιήσει.</para>
|
||
|
||
<para>Αν θέλετε να χρησιμοποιήσετε το δίσκο τόσο με το &os; όσο και
|
||
με κάποιο άλλο λειτουργικό σύστημα, θα πρέπει να μπορείτε να το
|
||
κάνετε χωρίς διαχειριστή δίσκου: απλώς βεβαιωθείτε ότι το
|
||
διαμέρισμα εκκίνησης του &os; καθώς και η κατάτμηση του άλλου
|
||
λειτουργικού συστήματος βρίσκονται μέσα στους πρώτους 1024
|
||
κυλίνδρους. Αν είστε αρκετά προσεκτικός, ένα διαμέρισμα εκκίνησης
|
||
(boot) μεγέθους 20MB θα είναι αρκετό.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="missing-os">
|
||
<para>Όταν εκκινώ το &os; για πρώτη φορά, παίρνω το μήνυμα
|
||
<errorname>Missing Operating System</errorname>. Τι συμβαίνει;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Αυτή είναι μια κλασική περίπτωση διένεξης μεταξύ του &os; και
|
||
του DOS ή κάποιου άλλου λειτουργικού σχετικά με την ιδέα που έχει
|
||
το καθένα για την <link linkend="geometry">γεωμετρία</link> του
|
||
δίσκου. Θα πρέπει να επανεγκαταστήσετε το &os; αλλά τηρώντας
|
||
προσεκτικά τις οδηγίες που δώσαμε πιο πάνω, είναι σχεδόν σίγουρο
|
||
ότι θα τα καταφέρετε.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="stop-at-boot-manager">
|
||
<para>Γιατί δεν μπορώ να συνεχίσω πέρα από την προτροπή
|
||
<prompt>F?</prompt> του διαχειριστή εκκίνησης;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Αυτό είναι άλλο ένα σύμπτωμα του προβλήματος που περιγράφεται
|
||
στην προηγούμενη ερώτηση. Δεν συμπίπτει η γεωμετρία του BIOS με
|
||
αυτή του &os;! Αν ο ελεγκτής ή το BIOS σας υποστηρίζει μετάφραση
|
||
κυλίνδρων (συχνά αναφέρεται ως <quote>>1GB drive
|
||
support</quote>), δοκιμάστε να αλλάξετε αυτή τη τιμή και να
|
||
επανεγκαταστήσετε το &os;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="need-complete-sources">
|
||
<para>Πρέπει να εγκαταστήσω όλο τον πηγαίο κώδικα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Γενικά, όχι. Ωστόσο σας συνιστούμε να εγκαταστήσετε, ως
|
||
ελάχιστο, τον πηγαίο κώδικα της διανομής <literal>base</literal>,
|
||
ο οποίος περιλαμβάνει αρκετά από τα αρχεία που αναφέρονται εδώ,
|
||
καθώς και τον πηγαίο κώδικα της διανομής <literal>sys</literal>,
|
||
η οποία περιλαμβάνει τον πηγαίο κώδικα του πυρήνα. Δεν υπάρχει
|
||
ωστόσο κάτι στο σύστημα το οποίο να απαιτεί την ύπαρξη του
|
||
πηγαίου κώδικα για να λειτουργήσει, εκτός από το πρόγραμμα
|
||
ρύθμισης πυρήνα &man.config.8;. Με εξαίρεση τον πηγαίο κώδικα
|
||
του πυρήνα, η δομή του συστήματος μεταγλώττισης μας είναι τέτοια,
|
||
ώστε μπορείτε πάντα να προσαρτήσετε το δέντρο πηγαίου κώδικα
|
||
μέσω NFS (και με δικαιώματα μόνο ανάγνωσης) και πάλι να μπορείτε
|
||
να δημιουργήσετε νέα εκτελέσιμα (λόγω του περιορισμού που υπάρχει
|
||
στον πηγαίο κώδικα του πυρήνα, σας συνιστούμε να μην κάνετε την
|
||
προσάρτηση απευθείας στον κατάλογο <filename>/usr/src</filename>,
|
||
αλλά να χρησιμοποιήσετε κάποια άλλη τοποθεσία και να δημιουργήσετε
|
||
τους κατάλληλους συμβολικούς δεσμούς που να αντιγράφουν τη δομή
|
||
της κεντρικής ιεραρχίας του δέντρου πηγαίου κώδικα).</para>
|
||
|
||
<para>Αν έχετε άμεσα διαθέσιμο τον πηγαίο κώδικα, και γνωρίζετε πως
|
||
να μεταγλωττίσετε ένα ολόκληρο σύστημα από αυτόν, θα
|
||
διευκολυνθείτε πάρα πολύ όταν αναβαθμίζετε το σύστημα σας σε
|
||
μελλοντικές εκδόσεις του &os;.</para>
|
||
|
||
<para>Για να επιλέξετε ένα υποσύνολο του πηγαίου κώδικα,
|
||
από την επιλογή Distributions του εργαλείου εγκατάστασης
|
||
συστήματος, επιλέξτε το μενού Custom.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="need-kernel">
|
||
<para>Χρειάζεται να φτιάξω προσαρμοσμένο πυρήνα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Η δημιουργία ενός νέου πυρήνα ήταν αρχικά σχεδόν υποχρεωτικό
|
||
βήμα σε μια εγκατάσταση &os;, αλλά οι πιο πρόσφατες εκδόσεις έχουν
|
||
ωφεληθεί από την εισαγωγή αισθητά φιλικότερων προγραμμάτων
|
||
ρύθμισης του πυρήνα. Από το &os; 5.X και μετά, είναι αρκετά
|
||
εύκολο να ρυθμίσετε τον πυρήνα χρησιμοποιώντας το πολύ πιο
|
||
ευέλικτο σύστημα των "hints" τα οποία μπορείτε να ρυθμίσετε στην
|
||
προτροπή του loader.</para>
|
||
|
||
<para>Ενδεχομένως να αξίζει ακόμα να δημιουργήσετε ένα νέο πυρήνα
|
||
ο οποίος να περιέχει μόνο τα προγράμματα οδήγησης που χρειάζεστε,
|
||
για να γλυτώσετε κάποια μικρή ποσότητα μνήμης RAM, αλλά αυτό δεν
|
||
είναι πλέον απαραίτητο για τα περισσότερα συστήματα.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="password-encryption">
|
||
<para>Για τους κωδικούς πρόσβασης των χρηστών, να χρησιμοποιήσω
|
||
DES, Blowfish, ή MD5 κωδικοποίηση, και πως θα καθορίσω τι θα
|
||
χρησιμοποιούν οι χρήστες μου;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Η προεπιλεγμένη μορφή κρυπτογράφησης για κωδικούς στο &os;
|
||
είναι το <emphasis>MD5</emphasis>. Η γενική αντίληψη είναι ότι
|
||
παρέχουν καλύτερη ασφάλεια σε σχέση με την παραδοσιακή μορφή του
|
||
&unix; που βασίζεται στον αλγόριθμο <emphasis>DES</emphasis>.
|
||
Οι κωδικοί DES είναι ακόμα διαθέσιμοι, αν χρειάζεται να
|
||
διαμοιράσετε το αρχείο των κωδικών σας με παλιότερα λειτουργικά
|
||
συστήματα, τα οποία χρησιμοποιούν ακόμα το παλιότερο και λιγότερο
|
||
ασφαλές σύστημα (είναι διαθέσιμα αν εγκαταστήσετε τη διανομή
|
||
<quote>crypto</quote> μέσω του sysinstall ή εγκαθιστώντας τον
|
||
αντίστοιχο πηγαίο κώδικα αν κάνετε εγκατάσταση μέσω πηγαίου
|
||
κώδικα). Αν εγκαταστήσετε τις βιβλιοθήκες crypto θα μπορέσετε
|
||
επίσης να χρησιμοποιήσετε κρυπτογράφηση Blowfish η οποία είναι
|
||
ακόμα πιο ασφαλής. Το ποια μορφή κωδικών χρησιμοποιείται για
|
||
τους νέους κωδικούς, ελέγχεται από την δυνατότητα εισόδου
|
||
<quote>passwd_format</quote> στο
|
||
<filename>/etc/login.conf</filename>, το οποίο παίρνει τις τιμές
|
||
<quote>des</quote>, <quote>blf</quote> (αν είναι διαθέσιμη)
|
||
ή <quote>md5</quote>. Δείτε τη σελίδα manual του
|
||
&man.login.conf.5; για περισσότερες πληροφορίες σχετικά με τις
|
||
δυνατότητες εισόδου.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="boot-floppy-hangs">
|
||
<para>Γιατί ενώ η δισκέτα εκκίνησης ξεκινάει κανονικά, κρεμάει στην
|
||
οθόνη <literal>Probing Devices...</literal>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>Αν έχετε εγκατεστημένο οδηγό IDE &iomegazip; ή &jaz;,
|
||
αφαιρέστε τον και ξαναπροσπαθήστε. Η δισκέτα εκκίνησης μπορεί
|
||
να μπερδευτεί από αυτούς τους οδηγούς. Μετά την εγκατάσταση του
|
||
συστήματος, μπορείτε να ξανασυνδέσετε τον οδηγό. Ευελπιστούμε ότι
|
||
το πρόβλημα αυτό θα διορθωθεί σε επόμενη έκδοση.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="panic-on-install-reboot">
|
||
<para>Γιατί παίρνω το μήνυμα λάθους
|
||
<errorname>panic: can't mount root</errorname> όταν εκκινώ το
|
||
σύστημα για πρώτη φορά μετά την εγκατάσταση;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το σφάλμα αυτό προέρχεται από την σύγχυση που προκαλείται
|
||
εξαιτίας του διαφορετικού τρόπου με τον οποίο το BIOS και το
|
||
boot block αντιλαμβάνονται τους σκληρούς δίσκους. Το πρόβλημα
|
||
συνήθως εμφανίζεται σε συστήματα με δύο δίσκους IDE, ειδικά όταν
|
||
οι δίσκοι είναι master (ή μόνοι τους) ο καθένας στο δικό του
|
||
ελεγκτή IDE και με το &os; να είναι εγκαταστημένος στο δίσκο
|
||
που βρίσκεται στο δευτερεύοντα ελεγκτή. Το boot block νομίζει
|
||
ότι το σύστημα είναι εγκατεστημένο στον ad0 (το δεύτερο δίσκο
|
||
του BIOS) ενώ ο πυρήνας αναθέτει τον πρώτο δίσκο στο δευτερεύοντα
|
||
ελεγκτή, ad2. Μετά την ανίχνευση των συσκευών, ο πυρήνας
|
||
προσπαθεί να προσαρτήσει αυτό που το boot block πιστεύει ότι είναι
|
||
ο δίσκος εκκίνησης, ad0 ενώ στην πραγματικότητα είναι ο ad2 και
|
||
φυσικά αποτυγχάνει.</para>
|
||
|
||
<para>Για να διορθώσετε το πρόβλημα, κάντε ένα από τα παρακάτω:</para>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Επανεκκινήστε το σύστημα και πιέστε
|
||
<keycap>Enter</keycap> στην προτροπή
|
||
<literal>Booting kernel in 10 seconds; hit
|
||
[Enter] to interrupt</literal>. Με τον τρόπο αυτό θα βγείτε
|
||
στο πρόγραμμα του φορτωτή εκκίνησης.</para>
|
||
|
||
<para>Κατόπιν γράψτε
|
||
<literal>
|
||
set
|
||
root_disk_unit="<replaceable>disk_number</replaceable>"
|
||
</literal>. Το <replaceable>disk_number</replaceable>
|
||
θα είναι <literal>0</literal> αν το &os; είναι εγκατεστημένο
|
||
στο master δίσκο του πρώτου ελεγκτή IDE,
|
||
<literal>1</literal> αν είναι εγκατεστημένο στο slave δίσκο
|
||
του πρώτου ελεγκτή, <literal>2</literal> αν είναι
|
||
εγκατεστημένος στον master δίσκο του δευτερεύοντος IDE
|
||
καναλιού και τέλος, <literal>3</literal> αν είναι
|
||
εγκατεστημένο στο slave δίσκο του δευτερεύοντος IDE
|
||
καναλιού.</para>
|
||
|
||
<para>Έπειτα γράψτε <literal>boot</literal>, και το σύστημα
|
||
σας θα πρέπει να εκκινήσει κανονικά.</para>
|
||
|
||
<para>Για να κάνετε μόνιμη αυτή την αλλαγή (ώστε να μην
|
||
χρειάζεται να κάνετε το παραπάνω κάθε φορά που επανεκκινείτε
|
||
ή ενεργοποιείτε το &os; μηχάνημα σας), βάλτε τη γραμμή
|
||
<literal>root_disk_unit="<replaceable>disk_number
|
||
</replaceable>"</literal> στο αρχείο
|
||
<filename>/boot/loader.conf.local</filename>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Μετακινήστε το δίσκο του &os; στον πρωτεύοντα
|
||
ελεγκτή IDE, ώστε οι σκληροί δίσκοι να είναι συνεχόμενοι.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="memory-limits">
|
||
<para>Ποια είναι τα όρια της μνήμης;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το όριο είναι τα 4 gigabytes σε μια συνηθισμένη εγκατάσταση
|
||
σε αρχιτεκτονική &i386;. Ξεκινώντας από τις εκδόσεις &os; 4.9 και
|
||
5.1, υποστηρίζεται και περισσότερη μνήμη μέσω του
|
||
&man.pae.4;. Χρειάζεται ωστόσο να μεταγλωττιστεί ξανά ο πυρήνας
|
||
περιλαμβάνοντας και μια έξτρα επιλογή για την ενεργοποίηση του
|
||
PAE:</para>
|
||
|
||
<programlisting>options PAE</programlisting>
|
||
|
||
<para>Το &os;/pc98 έχει όριο τα 4 GB μνήμης, και δεν μπορεί να
|
||
χρησιμοποιηθεί PAE σε αυτή την αρχιτεκτονική. Στο &os;/alpha,
|
||
το όριο της μνήμης εξαρτάται από τον τύπο του υλικού που
|
||
χρησιμοποιείται - για λεπτομέρειες δείτε τις Σημειώσεις Έκδοσης
|
||
Υλικού για Alpha. Άλλες αρχιτεκτονικές που υποστηρίζονται από
|
||
το &os;, έχουν αρκετά μεγαλύτερα θεωρητικά όρια σχετικά
|
||
με τη μέγιστη ποσότητα μνήμης (πολλά terabytes).</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ffs-limits">
|
||
<para>Ποια είναι τα όρια του συστήματος αρχείων ffs;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Για συστήματα αρχείων ffs, το μέγιστο θεωρητικό όριο είναι
|
||
τα 8 terabytes (2G blocks), ή 16ΤΒ για προεπιλεγμένο μέγεθος
|
||
block των 8Κ. Στην πραγματικότητα, υπάρχει ένα αρχικό όριο
|
||
1 terabyte, αλλά με κάποιες μετατροπές, είναι δυνατόν να
|
||
δημιουργηθούν (και υπάρχουν) συστήματα αρχείων μεγέθους
|
||
4 terabytes.</para>
|
||
|
||
<para>Το μέγιστο μέγεθος ενός αρχείου σε ένα σύστημα ffs είναι
|
||
περίπου 1G blocks, ή 4TB με μέγεθος block των 4K.</para>
|
||
|
||
<table>
|
||
<title>Μέγιστα μεγέθη αρχείων</title>
|
||
|
||
<tgroup cols="3">
|
||
<thead>
|
||
<row>
|
||
<entry>Μέγεθος block fs</entry>
|
||
|
||
<entry>λειτουργεί</entry>
|
||
|
||
<entry>πρέπει να λειτουργεί</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry>4K</entry>
|
||
|
||
<entry>4T-1</entry>
|
||
|
||
<entry>>4T</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>8K</entry>
|
||
|
||
<entry>>32G</entry>
|
||
|
||
<entry>32T-1</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>16K</entry>
|
||
|
||
<entry>>128G</entry>
|
||
|
||
<entry>32T-1</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>32K</entry>
|
||
|
||
<entry>>512G</entry>
|
||
|
||
<entry>64T-1</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>64K</entry>
|
||
|
||
<entry>>2048G</entry>
|
||
|
||
<entry>128T-1</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
|
||
<para>Όταν το μέγεθος block του fs είναι 4K, λειτουργούν τα τριπλά
|
||
έμμεσα blocks (triple indirect blocks) και τα πάντα θα έπρεπε
|
||
να περιορίζονται μόνο από το μέγιστο αριθμό block που μπορεί να
|
||
αναπαρασταθεί με τη χρήση τριπλών έμμεσων blocks
|
||
(περίπου 1K^3 + 1K^2 + 1K), αλλά τελικά ο περιορισμός οφείλεται
|
||
σε ένα (λάθος) όριο 1G-1 στους αριθμούς των blocks. Το όριο
|
||
στους αριθμούς των block θα έπρεπε να είναι 2G-1. Υπάρχουν
|
||
κάποια προβλήματα όταν οι αριθμοί των block του fs πλησιάζουν
|
||
το 2G-1, αλλά τέτοιοι αριθμοί block δεν μπορούν να προσεγγιστούν
|
||
όταν το μέγεθος block fs είναι 4Κ.</para>
|
||
|
||
<para>Για μεγέθη block 8Κ και μεγαλύτερα, τα πάντα θα έπρεπε να
|
||
περιορίζονται από το όριο 2G-1 στους αριθμούς των block του fs,
|
||
αλλά στην πραγματικότητα ο περιορισμός οφείλεται στο λάθος όριο
|
||
1G-1 στους αριθμούς των block του fs. H χρήση του σωστού ορίου
|
||
των 2G-1 blocks, δημιουργεί πράγματι προβλήματα.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="archsw-readin-failed-error">
|
||
<para>Γιατί παίρνω το μήνυμα λάθος,
|
||
<errorname>archsw.readin.failed</errorname> μετά την μεταγλώττιση
|
||
και εκκίνηση νέου πυρήνα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Γιατί ο πυρήνας σας και το υπόλοιπο του βασικού συστήματος
|
||
(world) είναι εκτός συγχρονισμού. Η λειτουργία σε αυτή την
|
||
κατάσταση δεν υποστηρίζεται. Βεβαιωθείτε ότι χρησιμοποιείτε τις
|
||
εντολές <command>make buildworld</command> και <command>make
|
||
buildkernel</command> για να αναβαθμίσετε τον πυρήνα σας.</para>
|
||
|
||
<para>Μπορείτε να εκκινήσετε ορίζοντας τον πυρήνα απευθείας από
|
||
το δεύτερο στάδιο, πιέζοντας οποιοδήποτε πλήκτρο μόλις δείτε το
|
||
| και πριν ξεκινήσει ο loader.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="boot-acpi">
|
||
<para>Η εγκατάσταση καταρρέει κατά την εκκίνηση. Τι μπορώ να κάνω;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Δοκιμάστε να απενεργοποιήσετε την υποστήριξη ACPI. Μόλις
|
||
ξεκινήσει ο φορτωτής εκκίνησης, πιέστε το πλήκτρο space.
|
||
To σύστημα σας θα εμφανίσει <screen>OK</screen>. Γράψτε
|
||
<screen><userinput>unset acpi_load</userinput></screen> και
|
||
κατόπιν <screen><userinput>boot</userinput></screen>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter
|
||
id="hardware">
|
||
<title>Συμβατότητα Υλικού</title>
|
||
|
||
<sect1 id="compatibility-general">
|
||
<title>Γενικά</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="which-hardware-to-get">
|
||
<para>Θέλω να αγοράσω υλικό για το &os; σύστημα μου. Ποιο μοντέλο /
|
||
μάρκα / τύπος είναι το καλύτερο;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Υπάρχουν συνέχεια συζητήσεις για το θέμα αυτό στις λίστες
|
||
ηλεκτρονικού ταχυδρομείου του &os;. Αυτό ωστόσο είναι αναμενόμενο,
|
||
καθώς το υλικό των υπολογιστών αλλάζει πολύ γρήγορα. Εμείς
|
||
<emphasis>εξακολουθούμε</emphasis> να συνιστούμε με έμφαση, να
|
||
διαβάσετε τις Σημειώσεις Υλικού του &os;
|
||
<ulink url="&rel.current.hardware;">&rel.current;</ulink>
|
||
ή
|
||
<ulink url="&rel2.current.hardware;">&rel2.current;</ulink>
|
||
και να ψάξετε στα
|
||
<ulink url="http://www.FreeBSD.org/search/#mailinglists">
|
||
αρχεία</ulink> των λιστών ηλεκτρονικού ταχυδρομείου, πριν αρχίσετε
|
||
να ρωτάτε σχετικά με το τελευταίο και καλύτερο υλικό. Είναι αρκετά
|
||
πιθανό να διαπιστώσετε, ότι για το υλικό που αναζητάτε, υπήρξε
|
||
σχετική συζήτηση μόλις πριν μια εβδομάδα.</para>
|
||
|
||
<para>Αν ψάχνετε για φορητό υπολογιστή, ελέγξτε τα αρχεία τής λίστας
|
||
ηλεκτρονικού ταχυδρομείου &a.mobile.name;. Διαφορετικά, μάλλον θα
|
||
θέλετε να δείτε τα αρχεία της &a.questions.name; ή πιθανόν μια
|
||
λίστα που να εξειδικεύεται στον τύπο του υλικού που ψάχνετε.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
</qandaset>
|
||
</sect1>
|
||
|
||
<sect1 id="compatibility-processors">
|
||
<title>Αρχιτεκτονικές και Επεξεργαστές</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="architectures">
|
||
<para>Υποστηρίζει το &os; αρχιτεκτονικές διαφορετικές από την
|
||
x86;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>Ναι. Αυτή τη στιγμή το &os; μπορεί να εκτελεστεί σε
|
||
αρχιτεκτονικές x86 και DEC (τώρα πλέον Compaq) Alpha. Από το
|
||
&os; 5.0 και μετά, υποστηρίζονται επίσης οι αρχιτεκτονικές
|
||
AMD64 και Intel EM64T, η IA-64 καθώς και η &sparc64;.
|
||
Αρχιτεκτονικές που θα υποστηρίζονται μελλοντικά, περιλαμβάνουν
|
||
την &mips; και &powerpc;. Μπορείτε να εγγραφείτε στις λίστες
|
||
ταχυδρομείου &a.ppc.name; και &a.mips.name; αντίστοιχα για
|
||
πληροφορίες σχετικά με την πρόοδο των εργασιών σε αυτές τις
|
||
αρχιτεκτονικές. Για γενικές πληροφορίες σχετικά με νέες
|
||
αρχιτεκτονικές, εγγραφείτε στην &a.platforms;.</para>
|
||
|
||
<para>Αν το μηχάνημα σας είναι διαφορετικής αρχιτεκτονικής και
|
||
χρειάζεστε λειτουργικό άμεσα, σας συνιστούμε να ρίξετε μια ματιά
|
||
στα <ulink url="http://www.netbsd.org/">NetBSD</ulink> ή
|
||
<ulink url="http://www.openbsd.org/">OpenBSD</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="smp-support">
|
||
<para>Υποστηρίζει το &os; Συμμετρική Πολυεπεξεργασία (SMP);</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ναι. Το SMP ήταν ενεργοποιημένο από προεπιλογή στον πυρήνα
|
||
<emphasis>GENERIC</emphasis> ήδη από το &os; 5.2.</para>
|
||
|
||
<para>Η αρχική πρόθεση ήταν να είναι ενεργοποιημένο επίσης από
|
||
προεπιλογή και στον πυρήνα τής έκδοσης 5.3 του &os;, αλλά λόγω
|
||
κάποιων προβλημάτων στην εκτέλεση του πυρήνα SMP σε μηχανήματα
|
||
χωρίς πολλαπλούς επεξεργαστές, αποφασίστηκε να μείνει ανενεργό
|
||
μέχρι την αντιμετώπιση τους. Αυτό ωστόσο αποτελεί προτεραιότητα
|
||
για την έκδοση 5.4 του &os;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</sect1>
|
||
|
||
<sect1 id="compatibility-drives">
|
||
<title>Σκληροί δίσκοι, μονάδες ταινίας, οδηγοί CD και DVD</title>
|
||
|
||
<qandaset>
|
||
|
||
<qandaentry>
|
||
<question id="supported-hard-drives">
|
||
<para>Ποια είδη σκληρών δίσκων υποστηρίζονται από το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το &os; υποστηρίζει μονάδες δίσκου των τύπων EIDE, SATA,
|
||
SCSI, και SAS (με τον κατάλληλο συμβατό ελεγκτή —
|
||
δείτε την επόμενη ενότητα), καθώς και όλους τους οδηγούς που
|
||
χρησιμοποιούν το αρχικό interface της
|
||
<quote>Western Digital</quote> (δηλ. MFM, RLL, ESDI και φυσικά
|
||
IDE). Ίσως να μη λειτουργήσουν κάποιοι ελεγκτές ESDI που
|
||
χρησιμοποιούν μη-τυποποιημένο interface. Καλύτερα να παραμείνετε
|
||
σε interfaces τύπου WD1002/3/6/7 και αντίστοιχα τους.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="supported-scsi-controllers">
|
||
<para>Ποιοι ελεγκτές SCSI ή SAS υποστηρίζονται;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Δείτε την πλήρη λίστα στις Σημειώσεις Υλικού του &os;
|
||
<ulink url="&rel.current.hardware;">&rel.current;</ulink> ή
|
||
<ulink url="&rel2.current.hardware;">&rel2.current;</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="tape-support">
|
||
<para>Τι τύποι οδηγών ταινίας υποστηρίζονται;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>Το &os; υποστηρίζει οδηγούς SCSI και QIC-36 (με interface
|
||
QIC-02). Περιλαμβάνονται οδηγοί 8-mm (γνωστοί ως Exabyte) καθώς
|
||
και οδηγοί DAT.</para>
|
||
|
||
<para>Ορισμένοι από τους πρώτους οδηγούς 8-mm δεν είναι ιδιαίτερα
|
||
συμβατοί με SCSI-2, και μπορεί να μην λειτουργούν ικανοποιητικά
|
||
με το &os;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="tape-changer-support">
|
||
<para>Υποστηρίζει το &os; μονάδες εναλλαγής ταινιών (tape
|
||
changers);</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το &os; υποστηρίζει μονάδες εναλλαγής τύπου SCSI με την
|
||
χρήση της συσκευής &man.ch.4; και της εντολής &man.chio.1;.
|
||
Μπορείτε να βρείτε τις λεπτομέρειες σχετικά με τον τρόπο
|
||
ελέγχου της μονάδας εναλλαγής στη σελίδα manual του
|
||
&man.chio.1;.</para>
|
||
|
||
<para>Αν δεν χρησιμοποιείτε το <application>AMANDA</application> ή
|
||
κάποιο άλλο προϊόν που να γνωρίζει πως να χειριστεί την μονάδα
|
||
εναλλαγής ταινιών, θα πρέπει να θυμάστε ότι γενικά τα προγράμματα
|
||
γνωρίζουν μόνο πως να κινήσουν μια ταινία από ένα σημείο σε ένα
|
||
άλλο, και θα πρέπει εσείς να σημειώσετε σε ποια θέση (slot)
|
||
βρίσκεται η ταινία, και σε ποια θέση πρέπει να πάει η ταινία που
|
||
βρίσκεται αυτή τη στιγμή μέσα στον οδηγό.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="supported-cdrom-drives">
|
||
<para>Ποιοι οδηγοί CDROM υποστηρίζονται από το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Υποστηρίζεται οποιοσδήποτε οδηγός SCSI που είναι συνδεμένος
|
||
σε αντίστοιχα υποστηριζόμενο ελεγκτή.</para>
|
||
|
||
<para>Υποστηρίζονται ακόμα τα ακόλουθα μη-τυποποιημένα
|
||
CDROM interfaces:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Mitsumi LU002 (8bit), LU005 (16bit) and FX001D
|
||
(16bit ταχύτητας 2x ).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Sony CDU 31/33A</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Sound Blaster μη-SCSI CDROM</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Matsushita/Panasonic CDROM</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>IDE CDROM συμβατά με ATAPI</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Όλες οι κάρτες που δεν είναι SCSI είναι γενικά εξαιρετικά πιο
|
||
αργές όταν συγκρίνονται με αντίστοιχους SCSI οδηγούς, και κάποιοι
|
||
οδηγοί τύπου ATAPI ίσως να μη λειτουργήσουν.</para>
|
||
|
||
<para>Τα επίσημα &os; CDROM ISO, καθώς και τα CDROM από το Daemon
|
||
News και το FreeBSD Mall, υποστηρίζουν εκκίνηση απευθείας από το
|
||
CD.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="supported-cdrw-drives">
|
||
<para>Ποιοι οδηγοί CD-RW υποστηρίζονται από το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το &os; υποστηρίζει οποιοδήποτε οδηγό IDE CD-R ή CD-RW
|
||
συμβατό με ATAPI. Δείτε το &man.burncd.8; για λεπτομέρειες.</para>
|
||
|
||
<para>Το &os; υποστηρίζει επίσης οποιοδήποτε οδηγό SCSI CD-R ή
|
||
CD-RW. Εγκαταστήστε και χρησιμοποιήστε την εντολή
|
||
<command>cdrecord</command> από την συλλογή των ports ή από
|
||
πακέτο, και βεβαιωθείτε ότι έχετε ενσωματώσει στον πυρήνα σας
|
||
τη συσκευή <devicename>pass</devicename>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="zip-support">
|
||
<para>Υποστηρίζει το &os; οδηγούς &iomegazip;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το &os; υποστηρίζει εγγενώς οδηγούς &iomegazip; SCSI και
|
||
ATAPI. Οι οδηγοί SCSI ZIP μπορούν να λειτουργήσουν μόνο αν έχουν
|
||
ρυθμιστεί σε SCSI IDs 5 ή 6, αλλά αν το υποστηρίζει ο ελεγκτής
|
||
SCSI που χρησιμοποιείτε, μπορείτε ακόμα και να εκκινήσετε από
|
||
αυτούς. Δεν είναι ξεκάθαρο ποιοι ελεγκτές SCSI υποστηρίζουν
|
||
εκκίνηση από συσκευές με ID διαφορετικό από 0 ή 1, έτσι θα πρέπει
|
||
να συμβουλευθείτε την τεκμηρίωση του ελεγκτή σας, αν θέλετε να
|
||
χρησιμοποιήσετε αυτή τη δυνατότητα.</para>
|
||
|
||
<para>Το &os; υποστηρίζει επίσης οδηγούς Zip παράλληλης θύρας.
|
||
Βεβαιωθείτε ότι ο πυρήνας σας περιέχει τα προγράμματα οδήγησης
|
||
για τις συσκευές
|
||
<devicename>scbus0</devicename>,
|
||
<devicename>da0</devicename>,
|
||
<devicename>ppbus0</devicename>, και
|
||
<devicename>vp0</devicename> (ο πυρήνας GENERIC περιέχει τα πάντα
|
||
εκτός από το <devicename>vp0</devicename>). Με χρήση αυτών των
|
||
προγραμμάτων οδήγησης, ο οδηγός της παράλληλης θύρας θα πρέπει να
|
||
είναι διαθέσιμος ως συσκευή <devicename>/dev/da0s4</devicename>.
|
||
Μπορείτε να προσαρτήσετε δίσκους χρησιμοποιώντας την εντολή
|
||
<command>mount /dev/da0s4 /mnt</command> ή (για δίσκους που έχουν
|
||
διαμορφωθεί μέσω dos) την
|
||
<command>mount_msdos /dev/da0s4 /mnt</command>.</para>
|
||
|
||
<para>Διαβάστε επίσης <link linkend="media-change">το FAQ σχετικά
|
||
με αφαιρούμενους οδηγούς</link> σε επόμενο σημείο αυτού του
|
||
κεφαλαίου, καθώς και τις <link linkend="removable-drives">
|
||
σημειώσεις σχετικά με την <quote>διαμόρφωση</quote></link> στο
|
||
κεφάλαιο Διαχείρισης.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="jaz-zip-removable-support">
|
||
<para>Υποστηρίζει το &os; &jaz;, EZ και άλλους αφαιρούμενους
|
||
οδηγούς;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Απλώς λειτουργούν. Οι περισσότερες από τις συσκευές αυτές
|
||
είναι SCSI, και έτσι δείχνουν σαν SCSI δίσκοι στο &os;. Το IDE
|
||
EZ εμφανίζεται σαν οδηγός IDE.</para>
|
||
|
||
<para>Βεβαιωθείτε ότι έχετε ενεργοποιήσει τυχόν εξωτερικές συσκευές
|
||
πριν εκκινήσετε το σύστημα σας.</para>
|
||
|
||
<para><anchor id="media-change">Για να αλλάξετε μέσο αποθήκευσης
|
||
εν ώρα λειτουργίας, ελέγξτε τις &man.mount.8;, &man.umount.8;,
|
||
και την &man.camcontrol.8; (για συσκευές SCSI) ή
|
||
&man.atacontrol.8; (για συσκευές IDE), και επίσης <link
|
||
linkend="removable-drives">τις συζητήσεις σχετικά με τη χρήση
|
||
αφαιρούμενων οδηγών</link> σε επόμενο τμήμα του FAQ.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
</qandaset>
|
||
|
||
</sect1>
|
||
|
||
<sect1 id="compatibility-kbd-mice">
|
||
<title>Πληκτρολόγια και ποντίκια</title>
|
||
|
||
<qandaset>
|
||
|
||
<qandaentry>
|
||
<question id="usbkbd">
|
||
<para>Υποστηρίζει το &os; το USB πληκτρολόγιο μου;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το &os; υποστηρίζει εγγενώς USB πληκτρολόγια. Ενεργοποιήστε
|
||
την υποστήριξη USB στο <filename>/etc/rc.conf</filename>.</para>
|
||
|
||
<para>Μόλις ενεργοποιηθεί η υποστήριξη USB πληκτρολογίου στο σύστημα
|
||
σας, το πληκτρολόγιο τύπου AT αναγνωρίζεται ως
|
||
<devicename>/dev/kbd0</devicename> και το USB πληκτρολόγιο γίνεται
|
||
<devicename>/dev/kbd1</devicename>, αν είναι και τα δύο συνδεμένα
|
||
στο σύστημα. Αν υπάρχει μόνο το USB πληκτρολόγιο, θα αναγνωριστεί
|
||
ως <devicename>/dev/ukbd0</devicename>.</para>
|
||
|
||
<para>Αν θέλετε να χρησιμοποιήσετε το USB πληκτρολόγιο στην κονσόλα,
|
||
θα πρέπει να δηλώσετε συγκεκριμένα στον οδηγό της κονσόλας να
|
||
χρησιμοποιήσει το υπάρχον USB πληκτρολόγιο. Αυτό μπορεί να γίνει
|
||
εκτελώντας την ακόλουθη εντολή ως μέρος της διαδικασίας
|
||
αρχικοποίησης του συστήματος:</para>
|
||
|
||
<screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null</userinput></screen>
|
||
|
||
<para>Παρατηρήστε ότι αν το πληκτρολόγιο USB είναι το μοναδικό
|
||
πληκτρολόγιο, θα είναι διαθέσιμο ως
|
||
<devicename>/dev/ukbd0</devicename>, και η εντολή θα δείχνει όπως
|
||
παρακάτω:</para>
|
||
|
||
<screen>&prompt.root; <userinput>kbdcontrol -k /dev/ukbd0 < /dev/ttyv0 > /dev/null</userinput></screen>
|
||
|
||
<para>Ένα καλό μέρος για να προσθέσετε την παραπάνω εντολή, είναι
|
||
το αρχείο <filename>/etc/rc.i386</filename>.</para>
|
||
|
||
<para>Μόλις γίνει αυτό, το USB πληκτρολόγιο θα πρέπει να λειτουργεί
|
||
και στο Χ περιβάλλον, χωρίς ανάγκη ειδικών ρυθμίσεων.</para>
|
||
|
||
<para>Η εν θερμώ σύνδεση και αποσύνδεση USB πληκτρολογίου, ίσως
|
||
να μη λειτουργεί ακόμα σωστά. Σας συνιστούμε να συνδέσετε το
|
||
πληκτρολόγιο πριν την εκκίνηση του συστήματος, και να το αφήσετε
|
||
συνδεμένο μέχρι τον τερματισμό, για να αποφύγετε τυχόν προβλήματα.</para>
|
||
|
||
<para>Δείτε τη σελίδα manual &man.ukbd.4; για περισσότερες
|
||
πληροφορίες.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="busmouse">
|
||
<para>Έχω ένα μη-τυπικό ποντίκι τύπου bus. Πως θα το ρυθμίσω;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το &os; υποστηρίζει ποντίκια τύπου bus και τον τύπο InPort
|
||
bus από κατασκευαστές όπως Microsoft, Logitech και ATI.
|
||
Ο πυρήνας GENERIC δεν περιέχει τον απαραίτητο οδηγό συσκευής. Για
|
||
να περιλάβετε το πρόγραμμα οδήγησης στο δικό σας προσαρμοσμένο
|
||
πυρήνα, προσθέστε την ακόλουθη γραμμή στον αρχείο ρυθμίσεων
|
||
πυρήνα:</para>
|
||
|
||
<programlisting>device mse0 at isa? port 0x23c irq5</programlisting>
|
||
|
||
<para>Τα ποντίκια τύπου bus συνήθως έρχονται με δικές τους κάρτες
|
||
επέκτασης. Ενδεχομένως να έχετε δυνατότητα να ρυθμίσετε την
|
||
κάρτα σε διαφορετική διεύθυνση θύρας και IRQ από αυτά που
|
||
φαίνονται παραπάνω. Συμβουλευθείτε το εγχειρίδιο του ποντικιού
|
||
σας και τη σελίδα manual &man.mse.4; για περισσότερες
|
||
πληροφορίες.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ps2mouse">
|
||
<para>Πως μπορώ να χρησιμοποιήσω το ποντίκι μου τύπου PS/2
|
||
(<quote>πόρτας ποντικιού</quote> ή <quote>πληκτρολογίου</quote>);</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το ποντίκι τύπου PS/2 υποστηρίζεται εγγενώς. Το απαραίτητο
|
||
πρόγραμμα οδήγησης, <devicename>psm</devicename>, περιλαμβάνεται
|
||
στον πυρήνα.</para>
|
||
|
||
<para>Αν ο προσαρμοσμένος πυρήνας σας δεν τον περιέχει, προσθέστε
|
||
την ακόλουθη γραμμή στο αρχείο ρυθμίσεων πυρήνα, και
|
||
μεταγλωττίστε ξανά τον πυρήνα σας.</para>
|
||
|
||
<programlisting>device psm0 at atkbdc? irq 12</programlisting>
|
||
|
||
<para>Μόλις ο πυρήνας ανιχνεύσει σωστά τη συσκευή
|
||
<devicename>psm0</devicename> κατά την εκκίνηση, βεβαιωθείτε ότι
|
||
υπάρχει η αντίστοιχη καταχώρηση για το
|
||
<devicename>psm0</devicename> στον κατάλογο
|
||
<filename>/dev</filename>. Μπορείτε να το δημιουργήσετε γράφοντας:</para>
|
||
|
||
<screen>&prompt.root; <userinput>cd /dev; sh MAKEDEV psm0</userinput></screen>
|
||
|
||
<para>όταν έχετε εισέλθει ως χρήστης <username>root</username>.</para>
|
||
|
||
<note>
|
||
<para>Μπορείτε να παραλείψετε αυτό το βήμα αν χρησιμοποιείτε &os;
|
||
5.0-RELEASE ή νεώτερο με ενεργοποιημένο το &man.devfs.5;, καθώς
|
||
τα απαραίτητα αρχεία συσκευών θα δημιουργηθούν αυτόματα κάτω
|
||
από τον κατάλογο <filename>/dev</filename>.</para>
|
||
</note>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="moused">
|
||
<para>Είναι δυνατόν να χρησιμοποιηθεί το ποντίκι με κάποιο τρόπο
|
||
έξω από το περιβάλλον του συστήματος X Window;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Αν χρησιμοποιείτε το προεπιλεγμένο πρόγραμμα οδήγησης
|
||
κονσόλας, &man.syscons.4;, μπορείτε να χρησιμοποιήσετε το δείκτη
|
||
του ποντικιού σας σε κονσόλες κειμένου για να κάνετε αποκοπή και
|
||
επικόλληση κειμένου. Εκτελέστε τον δαίμονα του ποντικιού,
|
||
&man.moused.8;, και ενεργοποιήστε το δείκτη του ποντικιού στην
|
||
εικονική κονσόλα:</para>
|
||
|
||
<screen>&prompt.root; <userinput>moused -p /dev/<replaceable>xxxx</replaceable> -t <replaceable>yyyy</replaceable></userinput>
|
||
&prompt.root; <userinput>vidcontrol -m on</userinput></screen>
|
||
|
||
<para>Όπου το <replaceable>xxxx</replaceable> είναι το όνομα
|
||
συσκευής του ποντικιού και το <replaceable>yyyy</replaceable>
|
||
είναι ο τύπος του πρωτοκόλλου του. Ο δαίμονας του ποντικιού μπορεί
|
||
να αναγνωρίσει αυτόματα το είδος του πρωτοκόλλου για τα
|
||
περισσότερα ποντίκια, εκτός από παλιά σειριακά μοντέλα. Καθορίστε
|
||
το πρωτόκολλο <literal>auto</literal> για να χρησιμοποιήσετε την
|
||
αυτόματη ανίχνευση. Αν αυτή δεν δουλέψει, δείτε τη σελίδα manual
|
||
&man.moused.8; για μια λίστα με υποστηριζόμενους τύπους
|
||
πρωτοκόλλων.</para>
|
||
|
||
<para>Αν έχετε ποντίκι τύπου PS/2, απλώς προσθέστε
|
||
<literal>moused_enable="YES"</literal> στο αρχείο
|
||
<filename>/etc/rc.conf</filename> για να εκκινεί ο δαίμονας του
|
||
ποντικιού κατά την εκκίνηση. Επιπρόσθετα, αν επιθυμείτε να
|
||
χρησιμοποιείτε το δαίμονα του ποντικιού σε όλες τις εικονικές
|
||
κονσόλες, και όχι μόνο στην κονσόλα συστήματος, προσθέστε τη
|
||
γραμμή <literal>allscreens_flags="-m on"</literal> στο
|
||
<filename>/etc/rc.conf</filename>.</para>
|
||
|
||
<para>Όταν εκτελείται ο δαίμονας του ποντικιού, η πρόσβαση στο
|
||
ποντίκι πρέπει να συντονίζεται μεταξύ του δαίμονα και άλλων
|
||
προγραμμάτων, όπως τα X Windows. Κοιτάξτε στο FAQ την ερώτηση
|
||
<link linkend="x-and-moused">Γιατί το ποντίκι μου δεν δουλεύει
|
||
στα Χ;</link> για περισσότερες πληροφορίες σχετικά με αυτό το
|
||
πρόβλημα.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="text-mode-cut-paste">
|
||
<para>Πως μπορώ να κάνω αποκοπή και επικόλληση κειμένου με το
|
||
ποντίκι σε μια κονσόλα κειμένου;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Μόλις ενεργοποιήσετε το δαίμονα του ποντικιού (δείτε την
|
||
<link linkend="moused">προηγούμενη ενότητα</link>), κρατήστε
|
||
πιεσμένο το πλήκτρο 1 (το αριστερό πλήκτρο) και κινήστε το
|
||
ποντίκι για να επιλέξετε μια περιοχή κειμένου. Κατόπιν, πιέστε
|
||
το πλήκτρο 2 (το μεσαίο πλήκτρο) για να το επικολλήσετε στην
|
||
περιοχή του δρομέα. Με την πίεση του πλήκτρου 3 (δεξιού πλήκτρου)
|
||
μπορείτε να <quote>επεκτείνετε</quote> την επιλεγμένη περιοχή
|
||
κειμένου.</para>
|
||
|
||
<para>Αν το ποντίκι σας δεν έχει μεσαίο πλήκτρο, μπορεί να θέλετε
|
||
να το εξομοιώσετε ή να αλλάξετε τις λειτουργίες των πλήκτρων
|
||
χρησιμοποιώντας τις επιλογές που παρέχονται από τον δαίμονα του
|
||
ποντικιού Δείτε τη σελίδα manual &man.moused.8; για τις
|
||
λεπτομέρειες.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="mouse-wheel-buttons">
|
||
<para>Το ποντίκι μου έχει διάφορα έξυπνα πλήκτρα και ροδέλα κύλισης.
|
||
Μπορώ να τα χρησιμοποιήσω στο &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Η απάντηση, δυστυχώς, είναι <quote>εξαρτάται</quote>.
|
||
Τα ποντίκια με έξτρα δυνατότητες συνήθως απαιτούν εξειδικευμένα
|
||
προγράμματα οδήγησης. Αν το πρόγραμμα οδήγησης του ποντικιού ή
|
||
το αντίστοιχο πρόγραμμα του χρήστη δεν παρέχουν συγκεκριμένη
|
||
υποστήριξη για το ποντίκι, θα λειτουργεί ως ένα απλό ποντίκι δύο
|
||
ή τριών πλήκτρων.<para>
|
||
|
||
<para>Για πιθανή χρήση της ροδέλας σε περιβάλλον X Window, δείτε
|
||
την <link linkend="x-and-wheel">αντίστοιχη ενότητα</link>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="laptop-mouse-trackball">
|
||
<para>Πως μπορώ να χρησιμοποιήσω το ποντίκι / trackball / touchpad
|
||
στον φορητό μου υπολογιστή;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Δείτε την <link linkend="ps2mouse">απάντηση στην προηγούμενη
|
||
ερώτηση</link>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="keyboard-delete-key">
|
||
<para>Πως μπορώ να χρησιμοποιήσω το πλήκτρο delete στο
|
||
<command>sh</command> και <command>csh</command>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Για το <application>Κέλυφος Bourne</application>, προσθέστε
|
||
τις ακόλουθες γραμμές στο αρχείο σας <filename>.shrc</filename>.
|
||
Δείτε επίσης τις σελίδες manual &man.sh.1; και &man.editrc.5;.</para>
|
||
|
||
<programlisting>bind ^? ed-delete-next-char # for console
|
||
bind ^[[3~ ed-delete-next-char # for xterm</programlisting>
|
||
|
||
<para>Για το <application>Κέλυφος C</application>, προσθέστε τις
|
||
ακόλουθες γραμμές στο αρχείο σας <filename>.cshrc</filename>.
|
||
Δείτε επίσης τη σελίδα manual του &man.csh.1;.</para>
|
||
|
||
<programlisting>bindkey ^? delete-char # for console
|
||
bindkey ^[[3~ delete-char # for xterm</programlisting>
|
||
|
||
<para>Για περισσότερες πληροφορίες, δείτε <ulink
|
||
url="http://www.ibb.net/~anne/keyboard.html">αυτή τη σελίδα
|
||
</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
</qandaset>
|
||
|
||
</sect1>
|
||
|
||
<sect1 id="compatibility-networking">
|
||
<title>Συσκευές σειριακής επικοινωνίας και Δικτύωσης</title>
|
||
|
||
<qandaset>
|
||
|
||
<qandaentry>
|
||
<question id="network-cards">
|
||
<para>Ποιες κάρτες δικτύου υποστηρίζει το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Για την πλήρη λίστα, δείτε τις Σημειώσεις Υλικού που
|
||
παρέχονται με κάθε έκδοση του &os;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="support-winmodem">
|
||
<para>Υποστηρίζει το &os; modems που λειτουργούν με τη βοήθεια
|
||
λογισμικού όπως τα Winmodems;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>To &os; υποστηρίζει αρκετά software modems με την βοήθεια
|
||
επιπρόσθετου λογισμικού. Το port
|
||
<filename role="package">comms/ltmdm</filename> προσθέτει
|
||
υποστήριξη για modems που βασίζονται στο δημοφιλές κύκλωμα
|
||
Lucent LT. Το port
|
||
<filename role="package">comms/mwavem</filename> υποστηρίζει το
|
||
modem που διαθέτουν οι φορητοί υπολογιστές Thinkpad 600 και 700
|
||
της IBM.</para>
|
||
|
||
<para>Δεν μπορείτε να εγκαταστήσετε το &os; μέσω software modem. Το
|
||
λογισμικό αυτό πρέπει να εγκατασταθεί μετά την εγκατάσταση του
|
||
&os;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="support-broadcom">
|
||
<para>Υπάρχει εγγενές πρόγραμμα οδήγησης για τις κάρτες Broadcom
|
||
43xx;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Όχι, και μάλλον δεν θα υπάρξει.</para>
|
||
|
||
<para>Η Broadcom αρνείται να δώσει δημόσια πληροφορίες σχετικά με
|
||
τον προγραμματισμό των ολοκληρωμένων της που χρησιμοποιούνται σε
|
||
εφαρμογές ασύρματων δικτύων, πιθανόν επειδή και το τμήμα του
|
||
πομποδέκτη της κάρτας ελέγχεται με τη βοήθεια λογισμικού. Για να
|
||
αποκτήσουν έγκριση για τις κάρτες τους από το FCC, πρέπει να
|
||
εξασφαλίσουν ότι οι τελικοί χρήστες δεν θα είναι σε θέση να
|
||
κάνουν ρυθμίσεις όπως αλλαγή της συχνότητας λειτουργίας, των
|
||
παραμέτρων διαμόρφωσης και της ισχύος εκπομπής. Αλλά χωρίς τις
|
||
πληροφορίες προγραμματισμού, είναι σχεδόν αδύνατο να γραφεί
|
||
πρόγραμμα οδήγησης.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="multiport-serial-support">
|
||
<para>Ποιες κάρτες πολλαπλών σειριακών θυρών υποστηρίζονται από
|
||
το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Υπάρχει μια λίστα για αυτές στην ενότητα <ulink
|
||
url="&url.books.handbook;/install.html#INSTALL-MISC">διάφορων
|
||
συσκευών</ulink> του Εγχειριδίου.</para>
|
||
|
||
<para>Ακόμα φαίνεται ότι λειτουργούν και κάποιες κάρτες που
|
||
είναι αντιγραφές επώνυμων μοντέλων, ειδικά όσες υποστηρίζουν ότι
|
||
είναι συμβατές με τις αντίστοιχες τις AST.</para>
|
||
|
||
<para>Δείτε τη σελίδα manual &man.sio.4; για περισσότερες
|
||
πληροφορίες σχετικά με τη ρύθμιση τέτοιων καρτών.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="serial-console-prompt">
|
||
<para>Πως μπορώ να εμφανίσω την προτροπή boot: σε μια σειριακή
|
||
κονσόλα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Δημιουργήστε πυρήνα που να περιέχει την επιλογή
|
||
<literal>options COMCONSOLE</literal>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Δημιουργήστε το <filename>/boot.config</filename> και
|
||
γράψτε μέσα σε αυτό μόνο την επιλογή <option>-P</option>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Αποσυνδέστε το πληκτρολόγιο από το σύστημα.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
|
||
<para>Δείτε το αρχείο
|
||
<filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename>
|
||
για περισσότερες πληροφορίες.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
</qandaset>
|
||
|
||
</sect1>
|
||
|
||
<sect1 id="compatibility-sound">
|
||
<title>Συσκευές ήχου</title>
|
||
|
||
<qandaset>
|
||
|
||
<qandaentry>
|
||
<question id="sound-card-support">
|
||
<para>Ποιες κάρτες ήχου υποστηρίζονται από το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το &os; υποστηρίζει διάφορες κάρτες ήχου, συμπεριλαμβανομένων
|
||
των &soundblaster;, &soundblaster; Pro, &soundblaster; 16,
|
||
Pro Audio Spectrum 16, AdLib, και Gravis UltraSound. (για
|
||
περισσότερες πληροφορίες, δείτε τις
|
||
<ulink url="&url.base;/releases/">Πληροφορίες Έκδοσης του &os;
|
||
</ulink> και τη σελίδα manual &man.snd.4;).
|
||
Υπάρχει επίσης περιορισμένη υποστήριξη για κάρτες MIDI που είναι
|
||
συμβατές με το πρότυπο MPU-401. Επίσης υποστηρίζονται οι κάρτες
|
||
που είναι συμβατές με το πρότυπο µsoft; Sound System.</para>
|
||
|
||
<note>
|
||
<para>Το παραπάνω ισχύει μόνο για τον ήχο! Το πρόγραμμα οδήγησης
|
||
δεν υποστηρίζει τυχόν CDROM, SCSI ή joysticks που συνδέονται
|
||
πάνω σε αυτές τις κάρτες, εκτός από την &soundblaster;. Αν
|
||
και η διεπαφή SCSI της &soundblaster; καθώς και κάποια
|
||
μη-SCSI CDROM υποστηρίζονται, δεν μπορούν ωστόσο να
|
||
χρησιμοποιηθούν για τη διαδικασία εκκίνησης.</para>
|
||
</note>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="es1370-silent-pcm">
|
||
<para>Υπάρχει κάποια λύση για το πρόβλημα του ήχου στην κάρτα μου
|
||
που υποστηρίζεται από το &man.pcm.4;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Κάποιες κάρτες ήχου, όπως η es1370, μηδενίζουν την ένταση του
|
||
ήχου σε κάθε εκκίνηση. Πρέπει να εκτελείτε την ακόλουθη εντολή
|
||
κάθε φορά που ξεκινά το μηχάνημα:</para>
|
||
|
||
<screen>&prompt.root; <userinput>mixer pcm 100 vol 100 cd 100</userinput></screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
</qandaset>
|
||
|
||
</sect1>
|
||
|
||
<sect1 id="compatibility-other">
|
||
<title>Άλλο υλικό</title>
|
||
|
||
<qandaset>
|
||
|
||
<qandaentry>
|
||
<question id="other-device-support">
|
||
<para>Ποιες άλλες συσκευές υποστηρίζονται από το &os;;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Δείτε το <ulink
|
||
url="&url.books.handbook;/install.html#INSTALL-MISC">Εγχειρίδιο
|
||
</ulink> για τη λίστα των υπόλοιπων συσκευών που υποστηρίζονται.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="power-management-support">
|
||
<para>Υποστηρίζει το &os; διαχείριση ενέργειας για το φορητό μου
|
||
υπολογιστή;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Από το &os; 4.X και μετά, υποστηρίζεται το
|
||
<acronym>APM</acronym> σε συγκεκριμένα μηχανήματα. Περισσότερες
|
||
πληροφορίες μπορείτε να βρείτε στο &man.apm.4;.</para>
|
||
|
||
<para>Από το &os; 5.X και μετά, υποστηρίζεται η δυνατότητα
|
||
<acronym>ACPI</acronym> η οποία υπάρχει σε όλους τους σύγχρονους
|
||
υπολογιστές. Μπορείτε να βρείτε περισσότερες πληροφορίες στο
|
||
&man.acpi.4;. Αν ένα σύστημα υποστηρίζει τόσο
|
||
<acronym>APM</acronym> όσο και <acronym>ACPI</acronym>, μπορείτε
|
||
να χρησιμοποιήσετε όποιο θέλετε. Σας συνιστούμε να δοκιμάσετε και
|
||
τα δύο και να επιλέξετε αυτό που καλύπτει καλύτερα τις ανάγκες
|
||
σας.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="disable-acpi">
|
||
<para>Πως μπορώ να απενεργοποιήσω το ACPI;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Προσθέστε τη γραμμή <screen>hint.acpi.0.disabled="1"</screen>
|
||
στο αρχείο <filename>/boot/device.hints</filename>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="micron-hang-boot">
|
||
<para>Γιατί το Micron σύστημα μου κρεμάει κατά την εκκίνηση;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ορισμένες μητρικές Micron υλοποιούν το PCI BIOS με μη
|
||
τυποποιημένο τρόπο, προκαλώντας προβλήματα στην εκκίνηση του
|
||
&os;, καθώς οι PCI συσκευές δεν ρυθμίζονται στις διευθύνσεις που
|
||
αναφέρονται.</para>
|
||
|
||
<para>Για να παρακάμψετε το πρόβλημα, απενεργοποιήστε την επιλογή
|
||
<quote>Plug and Play Operating System</quote> από το BIOS.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="asusk7v-boot-failure">
|
||
<para>Η δισκέτα εκκίνησης κρεμάει στη μητρική ASUS K7V. Πως μπορώ
|
||
να το διορθώσω αυτό;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Στις ρυθμίσεις του BIOS, απενεργοποιήστε την επιλογή
|
||
<quote>boot virus protection</quote>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="micron-3comnic-failure">
|
||
<para>Γιατί η PCI κάρτα δικτύου μου της &tm.3com; δεν λειτουργεί με
|
||
το Micron υπολογιστή μου;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ορισμένες μητρικές της Micron έχουν μη-τυποποιημένο PCI BIOS
|
||
το οποίο δεν ρυθμίζει τις συσκευές PCI στις διευθύνσεις που
|
||
αναφέρονται. Αυτό δημιουργεί προβλήματα κατά την εκκίνηση του
|
||
&os;.</para>
|
||
|
||
<para>Για να παρακάμψετε το πρόβλημα, απενεργοποιήστε την επιλογή
|
||
<quote>Plug and Play Operating System</quote> από το BIOS.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="newcard-does-not-work">
|
||
<para>Η PCMCIA κάρτα μου δεν λειτουργεί. Βλέπω το εξής μήνυμα:
|
||
<quote>cbb0: unsupported card type detected.</quote>
|
||
Τι μπορώ να κάνω;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Μπορείτε να δοκιμάσετε να χρησιμοποιήσετε την αρχική υλοποίηση
|
||
OLDCARD. Τροποποιήστε το αρχείο ρύθμισης του πυρήνα σας, και
|
||
αφαιρέστε τις ακόλουθες γραμμές:
|
||
<programlisting>device cbb
|
||
device pccard
|
||
device cardbus</programlisting>
|
||
Μετά προσθέστε:
|
||
<programlisting>device pcic
|
||
device card 1</programlisting>
|
||
Μεταγλωττίστε ξανά και εγκαταστήστε το νέο πυρήνα όπως
|
||
περιγράφεται στην
|
||
<ulink url="&url.books.handbook;/kernelconfig.html">Ρύθμιση Πυρήνα
|
||
του &os;</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
|
||
</sect1>
|
||
|
||
</chapter>
|
||
|
||
<chapter id="troubleshoot">
|
||
<title>Αντιμετώπιση Προβλημάτων</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="pae">
|
||
<para>Γιατί το &os; βρίσκει λάθος ποσότητα μνήμης;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Αυτό οφείλεται στη διαφορά μεταξύ φυσικών και εικονικών
|
||
διευθύνσεων μνήμης.</para>
|
||
|
||
<para>Η σύμβαση που κατά βάση ακολουθείται στο υλικό του PC, είναι
|
||
να χρησιμοποιείται η μνήμη μεταξύ 3.5G και 4G για ειδικό σκοπό,
|
||
συνήθως για την πρόσβαση σε κάρτες PCI. Αυτό έχει ως αποτέλεσμα να
|
||
μην μπορεί να αντιστοιχηθεί φυσική μνήμη σε αυτή την περιοχή
|
||
διευθύνσεων.</para>
|
||
|
||
<para>Το υλικό του υπολογιστή σας θα καθορίσει τι γίνεται με την
|
||
μνήμη που κανονικά εμφανίζεται σε αυτή τη θέση. Δυστυχώς,
|
||
σε κάποιες περιπτώσεις το υλικό δεν κάνει τίποτα, και χάνεται η
|
||
δυνατότητα χρήσης των τελευταίων 500Μ μνήμης RAM.</para>
|
||
|
||
<para>Ευτυχώς, στις περισσότερες περιπτώσεις το υλικό ανακατευθύνει
|
||
τη μνήμη σε υψηλότερη θέση, ώστε να είναι ακόμα δυνατή η χρήση
|
||
της. Αυτό μπορεί ωστόσο να σας προκαλέσει κάποια σύγχυση αν
|
||
παρακολουθείτε τα μηνύματα εκκίνησης.</para>
|
||
|
||
<para>Στην 32 bit έκδοση του &os;, η μνήμη φαίνεται να έχει χαθεί
|
||
καθώς ανακατευθύνεται πάνω από τα 4G, τα οποία δεν είναι
|
||
προσβάσιμα από 32 bit πυρήνα. Στην περίπτωση αυτή η λύση είναι
|
||
να φτιάξετε ένα πυρήνα τύπου PAE. Δείτε
|
||
<link linkend="memory-limits">αυτήν την καταχώρηση στο FAQ</link>
|
||
για περισσότερες πληροφορίες.</para>
|
||
|
||
<para>Στην 64 bit έκδοση του &os;, ή όταν χρησιμοποιείται πυρήνας
|
||
τύπου PAE, το &os; θα ανιχνεύσει και θα ανακατευθύνει σωστά τη
|
||
μνήμη ώστε να είναι χρησιμοποιήσιμη. Κατά την εκκίνηση ωστόσο,
|
||
μπορεί να φαίνεται ότι το &os; ανιχνεύει περισσότερη μνήμη από
|
||
αυτή που έχει στην πραγματικότητα το σύστημα. Αυτό είναι
|
||
φυσιολογικό και η διαθέσιμη μνήμη θα διορθωθεί καθώς
|
||
ολοκληρώνεται η διαδικασία της εκκίνησης.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="awre">
|
||
<para>Ο σκληρός μου δίσκος έχει χαλασμένους τομείς. Τι μπορώ να
|
||
κάνω;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Στους δίσκους SCSI, ο οδηγός μπορεί συνήθως αυτόματα να
|
||
επανατοποθετήσει τα δεδομένα σε εναλλακτικούς τομείς. Ωστόσο
|
||
οι περισσότεροι δίσκοι έρχονται με την δυνατότητα αυτή
|
||
απενεργοποιημένη.</para>
|
||
|
||
<para>Για να ενεργοποιήσετε την επανατοποθέτηση χαλασμένων τομέων,
|
||
επεξεργαστείτε την πρώτη σελίδα κατάστασης της συσκευής
|
||
(modepage), δίνοντας την παρακάτω εντολή
|
||
(ως <username>root</username>):</para>
|
||
|
||
<screen>&prompt.root; <userinput>camcontrol modepage sd0 -m 1 -e -P 3</userinput></screen>
|
||
|
||
<para>και αλλάξτε τις τιμές των AWRE και ARRE από 0 σε 1:</para>
|
||
|
||
<programlisting>AWRE (Auto Write Reallocation Enbld): 1
|
||
ARRE (Auto Read Reallocation Enbld): 1</programlisting>
|
||
|
||
<para>Οι σύγχρονοι οδηγοί τύπου IDE έχουν επίσης ενεργοποιημένη από
|
||
το εργοστάσιο τη δυνατότητα επανατοποθέτησης χαλασμένων τομέων.</para>
|
||
|
||
<para>Αν δείτε προειδοποιήσεις σχετικά με χαλασμένους τομείς
|
||
(σε οποιοδήποτε είδος δίσκου), είναι ώρα να σκεφτείτε να αλλάξετε
|
||
τον οδηγό. Ίσως μπορέσετε να χρησιμοποιήσετε το διαγνωστικό
|
||
πρόγραμμα που δίνει ο κατασκευαστής του δίσκου για να
|
||
απομονώσετε τους χαλασμένους τομείς, αλλά στην καλύτερη περίπτωση
|
||
απλώς θα κερδίσετε λίγο περισσότερο χρόνο.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="hpnetserver-scsi-failure">
|
||
<para>Για το &os; δεν ανιχνεύει τον ελεγκτή SCSI στον HP Netserver;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το πρόβλημα αυτό είναι γνωστό. Ο ενσωματωμένος στη μητρική
|
||
ελεγκτής SCSI του HP Netserver, χρησιμοποιεί σύνδεση τύπου EISA
|
||
και καταλαμβάνει τη θέση EISA με αριθμό 11. Με τον τρόπο αυτό,
|
||
όλες οι <quote>πραγματικές</quote> υποδοχές τύπου EISA βρίσκονται
|
||
πριν από αυτή. Ωστόσο, η περιοχή διευθύνσεων των υποδοχών EISA με
|
||
αριθμό >= 10, συγκρούεται με την περιοχή διευθύνσεων του PCI,
|
||
και το &os; στη σημερινή του μορφή, δεν μπορεί να χειριστεί σωστά
|
||
αυτή την κατάσταση.</para>
|
||
|
||
<para>Έτσι, για την ώρα, το καλύτερο που μπορείτε να κάνετε είναι
|
||
να παριστάνετε ότι δεν υπάρχει σύγκρουση διευθύνσεων :) και να
|
||
ανεβάσετε την επιλογή <literal>EISA_SLOTS</literal> του πυρήνα
|
||
στην τιμή 12. Μεταγλωττίστε έπειτα ξανά τον πυρήνα, όπως
|
||
περιγράφεται στην <ulink
|
||
url="&url.books.handbook;/kernelconfig.html">σχετική καταχώρηση
|
||
του Εγχειριδίου</ulink>.</para>
|
||
|
||
<para>Φυσικά αυτό είναι ένα πρόβλημα αντίστοιχο με το αυγό και την
|
||
κότα, όσο αφορά την εγκατάσταση ενός τέτοιου μηχανήματος. Για
|
||
να προσπεράσετε το πρόβλημα, υπάρχει ειδική πρόβλεψη στο
|
||
<emphasis>UserConfig</emphasis>. Μη χρησιμοποιήσετε το
|
||
<quote>visual</quote> interface, αλλά την γραμμή εντολών.
|
||
Απλώς γράψτε:</para>
|
||
|
||
<programlisting>eisa 12
|
||
quit</programlisting>
|
||
|
||
<para>στην προτροπή, και εγκαταστήστε το σύστημα σας όπως συνήθως.
|
||
Σας συνιστούμε ωστόσο να μεταγλωττίσετε και να εγκαταστήσετε
|
||
το δικό σας προσαρμοσμένο πυρήνα.</para>
|
||
|
||
<para>Ευελπιστούμε ότι σε μελλοντικές εκδόσεις, θα υπάρχει καλύτερη
|
||
διόρθωση για το πρόβλημα αυτό.</para>
|
||
|
||
<note>
|
||
<para>Δεν μπορείτε να χρησιμοποιήσετε δίσκο σε κατάσταση
|
||
<literal>dangerously dedicated (επικίνδυνα αφοσιωμένη)
|
||
</literal> με τον HP Netserver. Δείτε
|
||
<link linkend="dedicate">αυτή τη σημείωση</link> για
|
||
περισσότερες πληροφορίες.</para>
|
||
</note>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ed1-timeout">
|
||
<para>Βλέπω συνέχεια μηνύματα του τύπου
|
||
<errorname>ed1: timeout</errorname>. Τι σημαίνουν;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Τα μηνύματα αυτά προκαλούνται συνήθως από διενέξεις στα
|
||
interrupts (π.χ. δύο κάρτες που χρησιμοποιούν το ίδιο IRQ).
|
||
Εκκινήστε με την επιλογή -c και αλλάξτε την καταχώρηση
|
||
ed0/de0/... ώστε να συμβαδίζει με το υλικό σας.</para>
|
||
|
||
<para>Αν χρησιμοποιείτε την σύνδεση BNC της κάρτας δικτύου σας,
|
||
ίσως να δείτε επίσης αντίστοιχα μηνύματα σε περίπτωση
|
||
προβληματικού τερματισμού. Για να ελέγξετε την περίπτωση αυτή,
|
||
συνδέστε ένα τερματιστή απευθείας στην κάρτα (χωρίς καλώδιο) και
|
||
δείτε αν σταματήσουν τα μηνύματα.</para>
|
||
|
||
<para>Κάποιες κάρτες συμβατές με NE2000, δίνουν αυτό το μήνυμα αν
|
||
δεν υπάρχει σύνδεση στη θύρα UTP ή αν το καλώδιο είναι
|
||
αποσυνδεμένο.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="bad-3c509">
|
||
<para>Γιατί σταμάτησε να λειτουργεί η κάρτα μου &tm.3com; 3C509
|
||
χωρίς να υπάρχει εμφανής λόγος;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Η κάρτα αυτή έχει την κακή συνήθεια να χάνει τις ρυθμίσεις
|
||
της. Ανανεώστε τις, χρησιμοποιώντας το βοηθητικό πρόγραμμα DOS
|
||
<command>3c5x9.exe</command>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="printer-slow">
|
||
<para>Ο εκτυπωτής μου στην παράλληλη θύρα είναι απελπιστικά αργός.
|
||
Τι μπορώ να κάνω;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Αν το μόνο πρόβλημα είναι ο υπερβολικά αργός εκτυπωτής,
|
||
μπορείτε να δοκιμάσετε να αλλάξετε την
|
||
<ulink url="&url.books.handbook;/printing-intro-setup.html#PRINTING-PARALLEL-PORT-MODE">κατάσταση λειτουργίας της παράλληλης θύρας</ulink>
|
||
όπως περιγράφεται στο κεφάλαιο του Εγχειριδίου σχετικά με
|
||
την <ulink url="&url.books.handbook;/printing-intro-setup.html">
|
||
Εγκατάσταση Εκτυπωτή</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="signal11">
|
||
<para>Γιατί τα προγράμματα μου περιστασιακά τερματίζουν με σφάλμα
|
||
<errorname>Signal 11</errorname>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Τα σφάλματα τύπου Signal 11 δημιουργούνται όταν μια διεργασία
|
||
προσπαθεί να προσπελάσει περιοχή μνήμης για την οποία δεν έχει
|
||
πάρει άδεια από το λειτουργικό σύστημα. Αν συμβαίνει κάτι τέτοιο
|
||
σε φαινομενικά τυχαία χρονικά διαστήματα, θα πρέπει να αρχίσετε να
|
||
το ερευνάτε πολύ προσεκτικά.</para>
|
||
|
||
<para>Τα προβλήματα αυτά συνήθως οφείλονται σε κάποιον από τους
|
||
παρακάτω λόγους:</para>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Αν το πρόβλημα εμφανίζεται μόνο σε μια συγκεκριμένη
|
||
εφαρμογή την οποία αναπτύσσετε εσείς, είναι πιθανώς
|
||
λάθος στον δικό σας κώδικα.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Αν το πρόβλημα βρίσκεται σε τμήμα του βασικού συστήματος
|
||
του &os;, μπορεί επίσης να είναι προβληματικός κώδικας, αλλά
|
||
τις περισσότερες φορές, τα προβλήματα αυτά βρίσκονται και
|
||
διορθώνονται πριν διανεμηθούν στους περισσότερους από εσάς
|
||
που διαβάζετε το FAQ (για το λόγο αυτό άλλωστε υπάρχει και η
|
||
γραμμή ανάπτυξης -current).</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
|
||
<para>Για παράδειγμα, ένας γρήγορος τρόπος να διαπιστώσετε ότι
|
||
<emphasis>δεν</emphasis> πρόκειται για πρόβλημα του &os;, είναι
|
||
αν το πρόβλημα εμφανίζεται κατά τη μεταγλώττιση κάποιου
|
||
προγράμματος, αλλά κάθε φορά και σε διαφορετικό σημείο.</para>
|
||
|
||
<para>Για παράδειγμα, υποθέστε ότι εκτελείτε ένα <quote>make
|
||
buildworld</quote>, και η μεταγλώττιση αποτυγχάνει κατά την
|
||
επεξεργασία του αρχείου <filename>ls.c</filename> σε
|
||
<filename>ls.o</filename>. Αν εκτελέσετε ξανά <quote>make
|
||
buildworld</quote>, και η μεταγλώττιση σταματήσει στο ίδιο σημείο,
|
||
πρόκειται πράγματι για πρόβλημα στα αρχεία του build -- δοκιμάστε
|
||
να ανανεώσετε τον πηγαίο κώδικα και να ξαναπροσπαθήσετε. Αν η
|
||
μεταγλώττιση αποτυγχάνει αλλού, αυτό σχεδόν σίγουρα οφείλεται σε
|
||
προβληματικό υλικό.</para>
|
||
|
||
<para>Τι πρέπει να κάνετε:</para>
|
||
|
||
<para>Στην πρώτη περίπτωση μπορείτε να χρησιμοποιήσετε κάποιο
|
||
debugger όπως το gdb για να βρείτε το σημείο στο πρόγραμμα με την
|
||
προβληματική διεύθυνση και να το διορθώσετε.</para>
|
||
|
||
<para>Στη δεύτερη περίπτωση, θα πρέπει να επαληθεύσετε ότι δεν
|
||
φταίει το υλικό σας.</para>
|
||
|
||
<para>Στις συνηθισμένες αιτίες αυτού του προβλήματος,
|
||
περιλαμβάνονται:</para>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Οι σκληροί σας δίσκοι μπορεί να υπερθερμαίνονται. Ελέγξτε
|
||
ότι λειτουργούν οι ανεμιστήρες στο κουτί σας. Αν δεν
|
||
λειτουργούν, είναι πιθανό οι δίσκοι σας (και ίσως και άλλα
|
||
εξαρτήματα) να υπερθερμαίνονται.</para>
|
||
|
||
<listitem>
|
||
<para>Ο επεξεργαστής σας έχει υπερθερμανθεί: Αυτό μπορεί να
|
||
συμβεί σε περίπτωση που τον λειτουργείτε σε μεγαλύτερη
|
||
συχνότητα από την κανονική (overclocking) ή αν το ανεμιστηράκι
|
||
του επεξεργαστή έχει σταματήσει να λειτουργεί. Σε κάθε
|
||
περίπτωση, θα πρέπει να εξασφαλίσετε ότι χρησιμοποιείτε το
|
||
υλικό σας σύμφωνα με τις προδιαγραφές του, τουλάχιστον για
|
||
όσο διάστημα χρειάζεται για να επιλύσετε το πρόβλημα. Για
|
||
παράδειγμα, αν έχετε κάνει overclocking, επιστρέψτε τον
|
||
επεξεργαστή στην κανονική του συχνότητα.</para>
|
||
|
||
<para>Σχετικά με το overclocking, σημειώστε επίσης ότι είναι
|
||
φτηνότερο να έχετε ένα πιο αργό σύστημα από ένα κατεστραμμένο
|
||
που χρειάζεται αντικατάσταση! Επίσης η κοινότητα γενικά δεν
|
||
θα σας αντιμετωπίσει με κατανόηση αν αναφέρετε προβλήματα που
|
||
παρουσιάζονται σε συστήματα που λειτουργούν εκτός
|
||
προδιαγραφών, είτε εσείς πιστεύετε ότι η λειτουργία τους
|
||
είναι ασφαλής, είτε όχι.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Προβληματική μνήμη: Αν έχετε εγκατεστημένα περισσότερα
|
||
από ένα SIMMS / DIMMS, αφαιρέστε τα και προσπαθήστε να
|
||
λειτουργήσετε το μηχάνημα με ένα-ένα χωριστά ώστε να
|
||
εντοπίσετε το πρόβλημα σε επίπεδο ενός SIMM / DIMM, ή ίσως σε
|
||
ένα συνδυασμό τους.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Υπερ-αισιόδοξες ρυθμίσεις μητρικής: Στις ρυθμίσεις του
|
||
BIOS, και σε κάποιες περιπτώσεις σε ρυθμίσεις στη μητρική
|
||
μέσω βραχυκυκλωτήρων (jumpers), υπάρχει η δυνατότητα μεταβολής
|
||
διάφορων χρονισμών. Στις περισσότερες περιπτώσεις οι
|
||
προεπιλεγμένες ρυθμίσεις είναι επαρκείς, και ίσως
|
||
δημιουργήσετε προβλήματα αν ρυθμίσετε πολύ χαμηλά τις
|
||
καταστάσεις αναμονής (wait states) της RAM ή θέσετε στο BIOS
|
||
την επιλογή <quote>RAM Speed: Turbo</quote>. Μια καλή ιδέα
|
||
είναι να επιστρέψετε τις ρυθμίσεις του BIOS στις
|
||
προεπιλεγμένες, αλλά πριν το κάνετε, σημειώστε κάπου τις
|
||
δικές σας.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Ανεπαρκής ή κακής ποιότητας τροφοδοσία στη μητρική. Αν
|
||
έχετε κάρτες I/O, σκληρούς δίσκους ή CDROM στο σύστημα σας
|
||
που δεν χρησιμοποιείτε, δοκιμάστε να τα αφαιρέσετε ή να
|
||
αποσυνδέσετε προσωρινά την παροχή τροφοδοσίας τους, για να
|
||
διαπιστώσετε αν το τροφοδοτικό σας μπορεί να διαχειριστεί
|
||
μικρότερο φορτίο. Ή απλώς δοκιμάστε ένα άλλο τροφοδοτικό,
|
||
κατά προτίμηση ένα με λίγο μεγαλύτερη ισχύ (για παράδειγμα
|
||
αν το τρέχον σας τροφοδοτικό είναι ονομαστικής ισχύος 250W,
|
||
δοκιμάστε ένα ισχύος 300W).</para>
|
||
</listitem>
|
||
|
||
</orderedlist>
|
||
|
||
<para>Θα πρέπει επίσης να διαβάσετε το SIG11 FAQ (το οποίο φαίνεται
|
||
παρακάτω) το οποίο περιλαμβάνει εξαιρετικές επεξηγήσεις για όλα
|
||
αυτά τα προβλήματα, αν και από την σκοπιά του &linux;. Συζητάει
|
||
επίσης για την πιθανότητα να μην ανιχνεύεται προβληματική μνήμη
|
||
από διαγνωστικά προγράμματα ή συσκευές ελέγχου.</para>
|
||
|
||
<para>Τέλος, αν τίποτα από τα παραπάνω δεν βοηθήσει, είναι πιθανόν
|
||
να έχετε εντοπίσει ένα πρόβλημα (bug) στο &os; και θα πρέπει να
|
||
ακολουθήσετε τις οδηγίες για να στείλετε αναφορά προβλήματος.</para>
|
||
|
||
<para>Μπορείτε να βρείτε εκτεταμένη ανάλυση στο <ulink
|
||
url="http://www.bitwizard.nl/sig11/">
|
||
FAQ σχετικά με το πρόβλημα SIG11.</ulink></para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="trap-12-panic">
|
||
<para>Το σύστημα μου σταματάει είτε με <errorname>Fatal
|
||
trap 12: page fault in kernel mode</errorname>, ή με
|
||
<errorname>panic:</errorname>, δείχνοντας και μια σειρά από
|
||
πληροφορίες. Τι πρέπει να κάνω;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Η ομάδα ανάπτυξης του &os; ενδιαφέρεται ιδιαίτερα για αυτά
|
||
τα λάθη, αλλά χρειάζεται περισσότερες πληροφορίες εκτός από το
|
||
μήνυμα λάθους που βλέπετε. Αντιγράψτε το πλήρες μήνυμα και
|
||
έπειτα συμβουλευθείτε την ενότητα του FAQ σχετικά με τα
|
||
<link linkend= "KERNEL-PANIC-TROUBLESHOOTING">kernel
|
||
panics</link>, δημιουργήστε ένα πυρήνα με δυνατότητα
|
||
εκσφαλμάτωσης (debugging kernel) και εκτελέστε ένα backtrace.
|
||
Αυτό μπορεί να ακούγεται δύσκολο, αλλά δεν χρειάζεστε στην
|
||
πραγματικότητα γνώσεις προγραμματισμού. Πρέπει απλώς να
|
||
ακολουθήσετε τις οδηγίες.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="screen-loses-sync">
|
||
<para>Γιατί η οθόνη μου μαυρίζει και χάνει το συγχρονισμό της κατά
|
||
την εκκίνηση;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Πρόκειται για γνωστό πρόβλημα με την κάρτα γραφικών ATI
|
||
Mach64. Το πρόβλημα είναι ότι η κάρτα αυτή χρησιμοποιεί την
|
||
διεύθυνση <literal>2e8</literal>, η οποία χρησιμοποιείται επίσης
|
||
και από την τέταρτη σειριακή θύρα. Λόγω κάποιου προβλήματος
|
||
(ή της σχεδίασης) του προγράμματος οδήγησης &man.sio.4;, το
|
||
πρόγραμμα όχι μόνο θα προσπαθήσει να ανιχνεύσει αυτή τη
|
||
διεύθυνση ακόμα και αν δεν έχετε τέταρτη σειριακή θύρα, αλλά
|
||
<emphasis>ακόμα</emphasis> και στην περίπτωση που έχετε
|
||
απενεργοποιήσει τη σειριακή θύρα sio3 (δηλ. την τέταρτη) η
|
||
οποία φυσιολογικά χρησιμοποιεί αυτή τη διεύθυνση.</para>
|
||
|
||
<para>Μέχρι να διορθωθεί το πρόβλημα αυτό, μπορείτε να
|
||
χρησιμοποιήσετε το παρακάτω τέχνασμα για να το παρακάμψετε:</para>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Γράψτε <option>-c</option> στην προτροπή εκκίνησης.
|
||
(Με τον τρόπο αυτό θα βάλετε τον πυρήνα σε κατάσταση
|
||
ρύθμισης).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Απενεργοποιήστε τις <devicename>sio0</devicename>,
|
||
<devicename>sio1</devicename>,
|
||
<devicename>sio2</devicename> και
|
||
<devicename>sio3</devicename> (όλες). Με τον τρόπο αυτό
|
||
το πρόγραμμα οδήγησης δεν ενεργοποιείται καν, άρα δεν
|
||
δημιουργείται πρόβλημα.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Γράψτε exit για να συνεχίσετε την εκκίνηση.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
|
||
<para>Αν θέλετε να χρησιμοποιήσετε τις σειριακές θύρες, θα πρέπει να
|
||
δημιουργήσετε νέο πυρήνα, με την ακόλουθη μετατροπή: Στο αρχείο
|
||
<filename>/usr/src/sys/i386/isa/sio.c</filename> βρείτε το πρώτο
|
||
σημείο που εμφανίζεται το αλφαριθμητικό <literal>0x2e8</literal>
|
||
και αφαιρέστε αυτό το αλφαριθμητικό και το κόμμα που βρίσκεται
|
||
πριν από αυτό (κρατήστε το κόμμα που βρίσκεται μετά). Ακολουθήστε
|
||
τώρα τη συνηθισμένη διαδικασία δημιουργίας νέου πυρήνα.</para>
|
||
|
||
<para>Ακόμα και μετά την εφαρμογή αυτών των διορθώσεων, ίσως
|
||
ανακαλύψετε ότι το σύστημα X Window δεν λειτουργεί σωστά. Αν
|
||
συμβαίνει αυτό, βεβαιωθείτε ότι χρησιμοποιείτε έκδοση 3.3.3 ή
|
||
μεγαλύτερη του &xfree86;. Από την έκδοση αυτή και μετά, υπάρχει
|
||
ενσωματωμένη υποστήριξη για κάρτες Mach64 και επίσης διατίθεται
|
||
εξειδικευμένος εξυπηρετητής X για την κάρτα αυτή.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="reallybigram">
|
||
<para>Γιατί το &os; σύστημα μου χρησιμοποιεί μόνο 64MB RAM, ενώ ο
|
||
υπολογιστής μου έχει εγκατεστημένα 128MB;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Εξαιτίας του τρόπου με τον οποίο το &os; διαβάζει το μέγεθος
|
||
της μνήμης από το BIOS, μπορεί να ανιχνεύσει μόνο 16bits μέγεθος
|
||
σε Kbytes (65536 Kbytes = 64MB) (ή και λιγότερο... ορισμένα BIOS
|
||
δίνουν προκαθορισμένο μέγεθος μνήμης 16Μ). Αν έχετε περισσότερα
|
||
από 64MB, το &os; θα προσπαθήσει να τα ανιχνεύσει. Η ανίχνευση
|
||
ωστόσο μπορεί να αποτύχει.</para>
|
||
|
||
<para>Για να παρακάμψετε το πρόβλημα, θα πρέπει να χρησιμοποιήσετε
|
||
την επιλογή του πυρήνα που φαίνεται παρακάτω. Υπάρχει τρόπος να
|
||
ληφθούν πλήρεις πληροφορίες σχετικά με τη μνήμη από το BIOS, αλλά
|
||
στο bootblock δεν υπάρχει αρκετός χώρος για να γίνει αυτό. Κάποια
|
||
μέρα, όταν διορθωθεί το πρόβλημα της έλλειψης χώρου στα
|
||
bootblocks, θα χρησιμοποιήσουμε τις εκτεταμένες λειτουργίες του
|
||
BIOS για να ανακτήσουμε πλήρεις πληροφορίες σχετικά με τη μνήμη.
|
||
Για την ώρα, πρέπει να περιοριστούμε στην ρύθμιση της αντίστοιχης
|
||
επιλογής του πυρήνα.</para>
|
||
|
||
<para><literal>options "MAXMEM=<replaceable>n</replaceable>"</literal></para>
|
||
|
||
<para>Όπου το <replaceable>n</replaceable> είναι το μέγεθος της
|
||
μνήμης σε kilobytes. Για μηχάνημα με 128 MB, θα πρέπει να
|
||
χρησιμοποιήσετε το <literal>131072</literal>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="kmem-map-too-small">
|
||
<para>Το σύστημα μου έχει περισσότερο από 1 GB RAM, και παίρνω
|
||
panics με μηνύματα <quote>kmem_map too small</quote>. Που είναι
|
||
το πρόβλημα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Φυσιολογικά, το &os; χρησιμοποιεί το μέγεθος της
|
||
εγκατεστημένης μνήμης για να καθορίσει μια σειρά από παραμέτρους
|
||
του πυρήνα, όπως το μέγιστο αριθμό αρχείων που μπορεί να είναι
|
||
ταυτόχρονα ανοιχτά. Σε συστήματα με περισσότερη από 1GB μνήμη,
|
||
αυτός ο μηχανισμός <quote>αυτόματης ρύθμισης μεγεθών</quote> ίσως
|
||
επιλέξει τιμές οι οποίες να είναι πολύ υψηλές. Κατά την εκκίνηση,
|
||
ο πυρήνας εκχωρεί διάφορους πίνακες και άλλες δομές, οι οποίες
|
||
καταλαμβάνουν τον περισσότερο διαθέσιμο χώρο του. Αργότερα,
|
||
καθώς το σύστημα λειτουργεί, ο πυρήνας δεν έχει άλλο χώρο για
|
||
δυναμικές εκχωρήσεις μνήμης, και δημιουργείται panic.</para>
|
||
|
||
<para>Δημιουργήστε το δικό σας πυρήνα, και προσθέστε την επιλογή
|
||
<option>VM_KMEM_SIZE_MAX</option> στο αρχείο ρυθμίσεων του, ώστε
|
||
να αυξήσετε το μέγιστο μέγεθος σε 400 MB
|
||
(<option>options VM_KMEM_SIZE_MAX=419430400</option>).
|
||
Τα 400 MB φαίνεται να επαρκούν για μηχανήματα με μέγεθος
|
||
μνήμης ως 6 GB.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="panic-kmemmap-too-small">
|
||
<para>Το σύστημα μου δεν έχει 1GB RAM, και πάλι όμως το &os;
|
||
δημιουργεί panic με το μήνυμα
|
||
<errorname>kmem_map too small!</errorname></para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το panic δείχνει ότι το σύστημα έχει μείνει από εικονική μνήμη
|
||
για προσωρινή αποθήκευση δεδομένων δικτύου (network
|
||
buffers, και ειδικότερα mbuf clusters). Μπορείτε να αυξήσετε το
|
||
μέγεθος της εικονικής μνήμης που διατίθεται για mbuf clusters,
|
||
ακολουθώντας τις οδηγίες στην ενότητα
|
||
<ulink
|
||
url="&url.books.handbook;/configtuning-kernel-limits.html#NMBCLUSTERS">Όρια Δικτύου</ulink> του Εγχειριδίου.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="proc-table-full">
|
||
<para>Γιατί παίρνω το μήνυμα λάθους <errorname>/kernel: proc: table
|
||
is full</errorname>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ο πυρήνας του &os; επιτρέπει κάθε χρονική στιγμή την ύπαρξη
|
||
ενός συγκεκριμένου αριθμού διεργασιών. Ο αριθμός αυτός βασίζεται
|
||
στην επιλογή <literal>MAXUSERS</literal> του πυρήνα. Το
|
||
<literal>MAXUSERS</literal> επηρεάζει επίσης και άλλα όρια μέσα
|
||
στον πυρήνα, όπως η προσωρινή μνήμη του δικτύου (network buffers)
|
||
(δείτε <link linkend="panic-kmemmap-too-small">την
|
||
προηγούμενη ερώτηση</link>). Αν το μηχάνημα σας λειτουργεί σε
|
||
υψηλό φορτίο, πιθανόν θα θέλετε να αυξήσετε την επιλογή
|
||
<literal>MAXUSERS</literal>. Με τον τρόπο αυτό, μαζί με το
|
||
μέγιστο αριθμό διεργασιών, θα αυξηθούν και άλλα όρια του
|
||
συστήματος.</para>
|
||
|
||
<para>Για να ρυθμίσετε την τιμή του <literal>MAXUSERS</literal>,
|
||
δείτε την ενότητα <ulink
|
||
url="&url.books.handbook;/configtuning-kernel-limits.html#KERN-MAXFILES">Όρια Αρχείων/Διεργασιών</ulink> του Εγχειριδίου. (Αν και η ενότητα
|
||
αυτή αναφέρεται σε ανοιχτά αρχεία, τα ίδια όρια ισχύουν και για
|
||
τις διεργασίες.)</para>
|
||
|
||
<para>Αν το μηχάνημα σας λειτουργεί σε χαμηλό φορτίο, αλλά εκτελεί
|
||
μεγάλο αριθμό διεργασιών, μπορείτε απλώς να ρυθμίσετε τον αριθμό
|
||
τους αλλάζοντας την τιμή της μεταβλητής
|
||
<varname>kern.maxproc</varname>. Αν πρέπει να ρυθμίσετε αυτή τη
|
||
μεταβλητή, θα πρέπει να την ορίσετε στο αρχείο
|
||
<filename>/boot/loader.conf</filename>. Η ρύθμιση δεν θα ισχύσει
|
||
μέχρι να επανεκκινήσετε το σύστημα. Για περισσότερες πληροφορίες
|
||
σχετικά με τις μεταβλητές του πυρήνα, δείτε τις σελίδες manual
|
||
&man.loader.conf.5; και &man.sysctl.conf.5;. Αν όλες αυτές οι
|
||
διεργασίες εκτελούνται από ένα μόνο χρήστη, θα πρέπει επίσης να
|
||
ρυθμίσετε την τιμή της μεταβλητής
|
||
<varname>kern.maxprocperuid</varname> ώστε να είναι κατά ένα
|
||
μικρότερη από την νέα τιμή της <varname>kern.maxproc</varname>.
|
||
(Πρέπει να είναι κατά ένα μικρότερη, γιατί υπάρχει πάντα ένα
|
||
πρόγραμμα συστήματος, το &man.init.8;, που πρέπει να εκτελείται
|
||
συνέχεια.).</para>
|
||
|
||
<para>Για να γίνει μόνιμη μια αλλαγή ενός sysctl, τοποθετήστε την
|
||
κατάλληλη τιμή στο αρχείο <filename>/etc/sysctl.conf</filename>.
|
||
Περισσότερες πληροφορίες για τη ρύθμιση του συστήματος με την
|
||
χρήση του &man.sysctl.8;, μπορείτε να βρείτε στην ενότητα
|
||
<ulink
|
||
url="&url.books.handbook;/configtuning-sysctl.html">Ρυθμίσεις
|
||
μέσω sysctl</ulink> του Εγχειριδίου.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="cmap-busy-panic">
|
||
<para>Γιατί παίρνω το μήνυμα λάθους <errorname>CMAP
|
||
busy</errorname> όταν επανεκκινώ με νέο πυρήνα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Η λογική του συστήματος που προσπαθεί να ανιχνεύσει τυχόν
|
||
παλιές εκδόσεις των αρχείων <filename>/var/db/kvm_*.db</filename>
|
||
κάποιες φορές αποτυγχάνει, και η χρήση ανόμοιων εκδόσεων μπορεί
|
||
σε ορισμένες περιπτώσεις να οδηγήσει σε panic.</para>
|
||
|
||
<para>Αν σας συμβεί αυτό, επανεκκινήστε σε κατάσταση ενός χρήστη
|
||
(single user) και γράψτε:</para>
|
||
|
||
<screen>&prompt.root; <userinput>rm /var/db/kvm_*.db</userinput></screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="brkadrint-illegal-host-access">
|
||
<para>Τι σημαίνει το μήνυμα <errorname>ahc0: brkadrint,
|
||
Illegal Host Access at seqaddr 0x0</errorname>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Υπάρχει μια διένεξη με την κάρτα
|
||
Ultrastor SCSI Host Adapter.</para>
|
||
|
||
<para>Κατά τη διάρκεια της διαδικασίας εκκίνησης, εισέλθετε στο
|
||
μενού ρυθμίσεων του πυρήνα και απενεργοποιήστε τη συσκευή
|
||
<devicename>uha0</devicename>, η οποία είναι αυτή που προκαλεί το
|
||
πρόβλημα.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="aci0-illegal-cable">
|
||
<para>Όταν ξεκινώ το σύστημα μου παίρνω το λάθος
|
||
<errorname>ahc0: illegal cable configuration</errorname>.
|
||
Η καλωδίωση μου είναι σωστή. Τι συμβαίνει;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Η μητρική πλακέτα σας δεν έχει τα απαιτούμενα εξωτερικά
|
||
κυκλώματα ώστε να υποστηρίζει αυτόματο τερματισμό του διαύλου
|
||
SCSI. Αντί να βασίζεστε στον αυτόματο τερματισμό, δηλώστε στο
|
||
SCSI BIOS τον σωστό τερματισμό για τη διάταξη συσκευών που
|
||
έχετε. Το πρόγραμμα οδήγησης του AIC7XXX δεν μπορεί να καθορίσει
|
||
αν είναι διαθέσιμο το κύκλωμα που χρησιμοποιείται για την
|
||
ανίχνευση του καλωδίου (άρα και του αυτόματου τερματισμού).
|
||
Το πρόγραμμα οδήγησης υποθέτει ότι υπάρχει υποστήριξη, εφόσον οι
|
||
ρυθμίσεις που περιέχονται στη σειριακή EEPROM αναφέρουν "αυτόματο
|
||
τερματισμό". Συχνά, χωρίς το εξωτερικό κύκλωμα ανίχνευσης του
|
||
καλωδίου, το πρόγραμμα οδήγησης θα ρυθμίζει λανθασμένα τον
|
||
τερματισμό, κάτι που μπορεί να δημιουργήσει πρόβλημα στην
|
||
αξιοπιστία του διαύλου SCSI.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="mail-loopback">
|
||
<para>Γιατί το Sendmail δίνει το μήνυμα λάθους
|
||
<quote><errorname>mail loops back to
|
||
myself</errorname></quote>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Αυτό περιγράφεται στο sendmail FAQ όπως φαίνεται παρακάτω:</para>
|
||
|
||
<literallayout> * Παίρνω μηνύματα λάθους "Local configuration error" όπως το:
|
||
|
||
553 relay.domain.net config error: mail loops back to myself
|
||
554 <user@domain.net>... Local configuration error
|
||
|
||
Πως μπορώ να επιλύσω το πρόβλημα;
|
||
|
||
Έχετε ζητήσει να κατευθύνετε το mail προς το domain (π.χ. domain.net)
|
||
προς κάποιο συγκεκριμένο μηχάνημα (στην περίπτωση αυτή, το
|
||
relay.domain.net) χρησιμοποιώντας μια εγγραφή MX, αλλά το μηχάνημα
|
||
που κάνει την ανακατεύθυνση δεν αναγνωρίζει τον εαυτό του ως
|
||
domain.net. Προσθέστε το domain.net στο /etc/mail/local-host-names
|
||
(αν χρησιμοποιείτε το FEATURE(use_cw_file)) ή προσθέστε
|
||
"Cw domain.net" στο /etc/mail/sendmail.cf.</literallayout>
|
||
|
||
<para>Η τρέχουσα έκδοση του <ulink
|
||
url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq">sendmail
|
||
FAQ</ulink> δεν συντηρείται πλέον με κάθε έκδοση του sendmail.
|
||
Ωστόσο, δημοσιεύεται ανά τακτά διαστήματα στις λίστες <ulink
|
||
url="news:comp.mail.sendmail">comp.mail.sendmail</ulink>,
|
||
<ulink url="news:comp.mail.misc">comp.mail.misc</ulink>, <ulink
|
||
url="news:comp.mail.smail">comp.mail.smail</ulink>, <ulink
|
||
url="news:comp.answers">comp.answers</ulink>, και <ulink
|
||
url="news:news.answers">news.answers</ulink>. Μπορείτε επίσης να
|
||
λάβετε αντίγραφο μέσω email, στέλνοντας ένα μήνυμα στο
|
||
<email>mail-server@rtfm.mit.edu</email> με την εντολή
|
||
<literal>send usenet/news.answers/mail/sendmail-faq</literal>
|
||
στο κύριο μέρος του μηνύματος.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="remote-fullscreen">
|
||
<para>Γιατί δεν συμπεριφέρονται σωστά οι εφαρμογές πλήρους οθόνης
|
||
σε απομακρυσμένα μηχανήματα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Είναι πιθανόν το απομακρυσμένο μηχάνημα να ρυθμίζει τον τύπο
|
||
του τερματικού σας σε κάτι διαφορετικό από τον τύπο
|
||
<literal>cons25</literal> που απαιτείται από την κονσόλα του
|
||
&os;.</para>
|
||
|
||
<para>Υπάρχουν διάφοροι τρόποι για να παρακάμψετε αυτό το πρόβλημα:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Μετά την είσοδο σας στο απομακρυσμένο μηχάνημα, ορίστε
|
||
την μεταβλητή TERM του κελύφους σε <literal>ansi</literal>
|
||
ή <literal>sco</literal>, εφόσον το απομακρυσμένο μηχάνημα
|
||
μπορεί να λειτουργήσει με αυτά τα είδη τερματικών.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Στην κονσόλα του &os;, χρησιμοποιήστε κάποιο εξομοιωτή
|
||
τερματικού VT100, όπως το
|
||
<application>screen</application>. Το
|
||
<application>screen</application> σας δίνει τη δυνατότητα
|
||
να έχετε πολλαπλές συνεδρίες από ένα μόνο τερματικό, και
|
||
είναι έτσι και αλλιώς χρήσιμο πρόγραμμα. Κάθε παράθυρο του
|
||
<application>screen</application> συμπεριφέρεται ως
|
||
τερματικό του VT100, έτσι η μεταβλητή TERM στον
|
||
απομακρυσμένο υπολογιστή θα πρέπει να ρυθμιστεί σε
|
||
<literal>vt100</literal>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Εγκαταστήστε την καταχώρηση <literal>cons25</literal>
|
||
στη βάση δεδομένων τερματικών του απομακρυσμένου υπολογιστή.
|
||
Ο τρόπος για να γίνει αυτό, εξαρτάται από το λειτουργικό
|
||
σύστημα του απομακρυσμένου υπολογιστή. Φυσιολογικά, θα
|
||
βρείτε αυτές τις πληροφορίες στα εγχειρίδια διαχείρισης
|
||
συστήματος του απομακρυσμένου μηχανήματος.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Στο τοπικό σας &os; μηχάνημα, χρησιμοποιήστε τον X
|
||
server και κάντε login στο απομακρυσμένο μηχάνημα
|
||
χρησιμοποιώντας κάποιο εξομοιωτή τερματικού όπως το
|
||
<command>xterm</command> ή το <command>rxvt</command>. Στην
|
||
περίπτωση αυτή, θα πρέπει στο απομακρυσμένο μηχάνημα να
|
||
ρυθμίσετε την μεταβλητή TERM σε <literal>xterm</literal> ή
|
||
<literal>vt100</literal>.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="calcru-negative">
|
||
<para>Γιατί το μηχάνημα μου δείχνει το μήνυμα
|
||
<errorname>calcru: negative time...</errorname>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Αυτό μπορεί να συμβεί από διάφορες αιτίες που σχετίζονται με
|
||
interrupts, τόσο στο υλικό όσο και στο λογισμικό. Μπορεί να
|
||
οφείλεται σε προβλήματα (bugs) αλλά μπορεί επίσης να προκληθεί
|
||
εξαιτίας της φύσης κάποιων συσκευών. Ένας συνηθισμένος τρόπος
|
||
πρόκλησης του προβλήματος, είναι η εκτέλεση εφαρμογών TCP/IP
|
||
με μεγάλο MTU μέσω της παράλληλης θύρας. Μπορεί επίσης να
|
||
προκληθεί από κάποιους επιταχυντές γραφικών, και στην περίπτωση
|
||
αυτή το πρώτο πράγμα που θα πρέπει να ελέγξετε είναι η ρύθμιση
|
||
interrupt της αντίστοιχης κάρτας.</para>
|
||
|
||
<para>Παρενέργεια αυτού του προβλήματος είναι ο απότομος τερματισμός
|
||
διεργασιών με το μήνυμα <quote>SIGXCPU exceeded cpu time
|
||
limit</quote>.</para>
|
||
|
||
<para>Αν το πρόβλημα δεν μπορεί να λυθεί με διαφορετικό τρόπο, η
|
||
λύση είναι να ορίσετε την παρακάτω μεταβλητή του sysctl:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl -w kern.timecounter.method=1</userinput></screen>
|
||
|
||
<note>
|
||
<para>Η επιλογή <option>-w</option> του &man.sysctl.8; θεωρείται
|
||
παρωχημένη και αγνοείται σιωπηλά από το &os; 4.4-RELEASE και
|
||
μετά. Μπορείτε με ασφάλεια να το παραλείψετε κατά τη ρύθμιση
|
||
των επιλογών με την <command>sysctl</command> όπως φαίνεται
|
||
παραπάνω.</para>
|
||
</note>
|
||
|
||
<para>Το παραπάνω θα έχει επίδραση στην απόδοση, αλλά σε σχέση με
|
||
την αιτία του προβλήματος, μάλλον δεν θα το παρατηρήσετε. Αν το
|
||
πρόβλημα επιμένει, διατηρήστε την τιμή του sysctl στο ένα, και
|
||
ρυθμίστε την επιλογή <literal>NTIMECOUNTER</literal> στον πυρήνα
|
||
σας, σε ολοένα αυξανόμενες τιμές. Αν φτάσετε την τιμή
|
||
<literal>NTIMECOUNTER=20</literal> και το πρόβλημα δεν έχει λυθεί,
|
||
τα interrupts στο μηχάνημα σας είναι πολύ προβληματικά και
|
||
ακατάλληλα για ακριβή ρύθμιση της ώρας.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="pnp-not-found">
|
||
<para>Γιατί η PnP κάρτα μου δεν ανιχνεύεται πλέον (ή ανιχνεύεται ως
|
||
<literal>unknown</literal>) μετά την αναβάθμιση σε &os; 4.X;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το &os; 4.X ακολουθεί πλέον αρκετά πιο πιστά το πρότυπο
|
||
<emphasis>PnP</emphasis> και αυτό δημιουργεί ορισμένες φορές
|
||
την παρενέργεια να μη λειτουργούν κάποιες συσκευές PnP (π.χ.
|
||
κάρτες ήχου και εσωτερικά modems) οι οποίες ωστόσο λειτουργούσαν
|
||
στο &os; 3.Χ.</para>
|
||
|
||
<para>Οι λόγοι για την συμπεριφορά αυτή, εξηγούνται στο ακόλουθο
|
||
e-mail, το οποίο στάλθηκε στη λίστα &a.questions.name; από τον
|
||
Peter Wemm, ως απάντηση σε ερώτηση σχετικά με ένα εσωτερικό
|
||
modem το οποίο δεν ήταν ανιχνεύσιμο από το σύστημα μετά από
|
||
αναβάθμιση σε &os; 4.X (τα σχόλια μέσα σε <literal>[]</literal>
|
||
έχουν προστεθεί για να γίνει πιο κατανοητό το αντικείμενο της
|
||
συζήτησης).</para>
|
||
|
||
<note>
|
||
<para>Το περιεχόμενο αυτής της παράθεσης έχει ανανεωθεί σε σχέση
|
||
με το αρχικό κείμενο.</para>
|
||
</note>
|
||
|
||
<blockquote>
|
||
<para>Το PNP bios το προ-ρύθμισε [το modem] και το άφησε στην
|
||
περιοχή διευθύνσεων των θυρών, και έτσι [στην έκδοση 3.Χ] η
|
||
παλαιού τύπου ανίχνευση ISA το <quote>βρήκε</quote> εκεί.</para>
|
||
|
||
<para>Στην έκδοση 4.0, ο κώδικας διαχείρισης του ISA, είναι πολύ
|
||
περισσότερο προσανατολισμένος στο PnP μοντέλο. Στο 3.Χ ήταν
|
||
δυνατόν η ανίχνευση ISA να εντοπίσει μια <quote>χαμένη</quote>
|
||
συσκευή και έπειτα η PNP συσκευή να ταιριάξει και να αποτύχει
|
||
η ρύθμιση της λόγω διένεξης πόρων. Έτσι, απενεργοποιούνται
|
||
αρχικά οι προγραμματιζόμενες κάρτες, ώστε να μη συμβεί αυτή
|
||
η διπλή ανίχνευση. Αυτό επίσης σημαίνει ότι η ανίχνευση πρέπει
|
||
να γνωρίζει τα PnP ids των υποστηριζόμενων συσκευών. Είναι στις
|
||
προθέσεις μας να κάνουμε τη διαδικασία αυτή περισσότερη
|
||
προσβάσιμη στους χρήστες.</para>
|
||
</blockquote>
|
||
|
||
<para>Για να λειτουργήσει ξανά η συσκευή, πρέπει να βρεθεί το PNP
|
||
id της και να προστεθεί στη λίστα των ανιχνεύσεων ISA που
|
||
χρησιμοποιούνται για την αναγνώριση PnP συσκευών. Αυτό μπορεί να
|
||
γίνει με τη χρήση της &man.pnpinfo.8; για την ανίχνευση της
|
||
συσκευής, για παράδειγμα αυτή είναι η έξοδος της &man.pnpinfo.8;
|
||
για ένα εσωτερικό modem:</para>
|
||
|
||
<screen>&prompt.root; <userinput>pnpinfo</userinput>
|
||
Checking for Plug-n-Play devices...
|
||
|
||
Card assigned CSN #1
|
||
Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff
|
||
PnP Version 1.0, Vendor Version 0
|
||
Device Description: Pace 56 Voice Internal Plug & Play Modem
|
||
|
||
Logical Device ID: PMC2430 0x3024a341 #0
|
||
Device supports I/O Range Check
|
||
TAG Start DF
|
||
I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8
|
||
[16-bit addr]
|
||
IRQ: 4 - only one type (true/edge)</screen>
|
||
|
||
<para>[παραλείπονται οι υπόλοιπες γραμμές TAG]</para>
|
||
|
||
<screen>TAG End DF
|
||
End Tag
|
||
|
||
Successfully got 31 resources, 1 logical fdevs
|
||
-- card select # 0x0001
|
||
|
||
CSN PMC2430 (0x3024a341), Serial Number 0xffffffff
|
||
|
||
Logical device #0
|
||
IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
|
||
IRQ 5 0
|
||
DMA 4 0
|
||
IO range check 0x00 activate 0x01</screen>
|
||
|
||
<para>Οι πληροφορίες που απαιτούνται, βρίσκονται στη γραμμή
|
||
<quote>Vendor ID</quote>, στην αρχή της εξόδου. Ο δεκαεξαδικός
|
||
αριθμός στις παρενθέσεις (στο παράδειγμα μας 0x3024a341) είναι
|
||
το PnP id ενώ το αλφαριθμητικό που βρίσκεται ακριβώς πριν από
|
||
αυτόν είναι ένα μοναδικό ASCII αναγνωριστικό.</para>
|
||
|
||
<para>Εναλλακτικά, αν το &man.pnpinfo.8; δεν δείχνει την ζητούμενη
|
||
κάρτα, μπορείτε να χρησιμοποιήσετε το &man.pciconf.8;. Παρακάτω
|
||
φαίνεται ένα μέρος της εξόδου της <command>pciconf -vl</command>
|
||
για ένα κύκλωμα ήχου ενσωματωμένου στη μητρική:</para>
|
||
|
||
<screen>&prompt.root; <userinput>pciconf -vl</userinput>
|
||
chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00
|
||
vendor = 'Intel Corporation'
|
||
device = '82801AA 8xx Chipset AC'97 Audio Controller'
|
||
class = multimedia
|
||
subclass = audio</screen>
|
||
|
||
<para>Εδώ, θα χρησιμοποιούσαμε την τιμή του <varname>chip</varname>,
|
||
<quote>0x24158086</quote>.</para>
|
||
|
||
<para>Η πληροφορία αυτή (Vendor ID ή τιμή chip) θα πρέπει να
|
||
προστεθεί στο αρχείο <filename>/usr/src/sys/isa/sio.c</filename>.</para>
|
||
|
||
<para>Θα πρέπει πρώτα να κρατήσετε ένα αντίγραφο ασφαλείας του
|
||
<filename>sio.c</filename>, για την περίπτωση που κάτι πάει
|
||
στραβά. Επίσης, θα χρειαστείτε το αντίγραφο για να δημιουργήσετε
|
||
ένα patch το οποίο θα καταθέσετε με την αναφορά προβλήματος (PR)
|
||
που θα μας στείλετε (και θα μας στείλετε PR, έτσι;). Κατόπιν
|
||
επεξεργαστείτε το <filename>sio.c</filename> και ψάξτε για τη
|
||
γραμμή</para>
|
||
|
||
<programlisting>static struct isa_pnp_id sio_ids[] = {</programlisting>
|
||
|
||
<para>έπειτα μετακινηθείτε προς τα κάτω για να βρείτε το σωστό μέρος
|
||
να προσθέσετε την καταχώρηση της συσκευής σας. Οι καταχωρήσεις
|
||
φαίνονται όπως παρακάτω και είναι ταξινομημένες κατά το
|
||
αλφαριθμητικό ASCII Vendor ID το οποίο θα πρέπει να περιληφθεί
|
||
στο σχόλιο στο δεξιό μέρος της γραμμής μαζί με όλη την περιγραφή
|
||
<emphasis>Device Description</emphasis> (αν χωράει, αλλιώς μέρος
|
||
της) από την έξοδο της &man.pnpinfo.8;:</para>
|
||
|
||
<programlisting>{0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */
|
||
{0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */
|
||
{0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */
|
||
{0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */
|
||
{0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */</programlisting>
|
||
|
||
<para>Προσθέστε το δεκαεξαδικό Vendor ID για τη συσκευή σας στο
|
||
σωστό μέρος, αποθηκεύστε το αρχείο, αναδημιουργήστε τον πυρήνα
|
||
σας, και επανεκκινήστε. Θα πρέπει τώρα η συσκευή σας να βρεθεί ως
|
||
συσκευή <literal>sio</literal> όπως συνέβαινε και με το &os; 3.X</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="nlist-failed">
|
||
<para>Γιατί παίρνω το λάθος <errorname>nlist failed</errorname> όταν
|
||
εκτελώ, για παράδειγμα, το <command>top</command> ή το
|
||
<command>systat</command>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το πρόβλημα είναι ότι η εφαρμογή που προσπαθείτε να εκτελέσετε
|
||
ψάχνει για ένα συγκεκριμένο σύμβολο στον πυρήνα, αλλά για κάποιο
|
||
λόγο δεν μπορεί να το εντοπίσει. Το σφάλμα αυτό μπορεί να
|
||
οφείλεται σε δύο προβλήματα:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Ο πυρήνας σας και τα υπόλοιπα βασικά προγράμματα
|
||
(userland) δεν είναι σε συγχρονισμό (π.χ. έχετε δημιουργήσει
|
||
νέο πυρήνα, αλλά δεν εκτελέσατε
|
||
<maketarget>installworld</maketarget>, ή αντίστροφα), με
|
||
αποτέλεσμα ο πίνακας συμβόλων να είναι διαφορετικός από
|
||
αυτόν που πιστεύει η εφαρμογή. Αν πρόκειται για αυτή την
|
||
περίπτωση, απλώς ολοκληρώστε τη διαδικασία αναβάθμισης
|
||
(δείτε το <filename>/usr/src/UPDATING</filename> για τη σωστή
|
||
ακολουθία εντολών).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Δεν χρησιμοποιείτε το
|
||
<command>/boot/loader</command> για να φορτώσετε τον πυρήνα
|
||
σας, αλλά τον φορτώνετε απευθείας από το boot2 (δείτε το
|
||
&man.boot.8;). Αν και δεν είναι λάθος να παρακάμψετε τον
|
||
<command>/boot/loader</command>, σε γενικές γραμμές το
|
||
πρόγραμμα αυτό τα καταφέρνει καλύτερα στο να διαθέτει τα
|
||
σύμβολα του πυρήνα στις εφαρμογές χρήστη.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="connection-delay">
|
||
<para>Γιατί παίρνει τόσο χρόνο να συνδεθώ με τον υπολογιστή μου μέσω
|
||
<command>ssh</command> ή <command>telnet</command>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το σύμπτωμα: Υπάρχει μεγάλη καθυστέρηση μεταξύ της στιγμής
|
||
που αποκαθίσταται η TCP σύνδεση και της στιγμής που το πρόγραμμα
|
||
στη μεριά του πελάτη ζητάει τον κωδικό πρόσβασης (ή στην περίπτωση
|
||
του &man.telnet.1;, της στιγμής που εμφανίζεται η προτροπή
|
||
login).</para>
|
||
|
||
<para>Το πρόβλημα: Το πιο πιθανό είναι ότι η καθυστέρηση οφείλεται
|
||
στην προσπάθεια που καταβάλλει το λογισμικό στη μεριά του
|
||
εξυπηρετητή να βρει το όνομα του μηχανήματος - πελάτη από την
|
||
IP διεύθυνση του. Οι περισσότεροι εξυπηρετητές,
|
||
συμπεριλαμβανομένων του Telnet και SSH που έρχονται με το &os;,
|
||
λειτουργούν με αυτό τον τρόπο, ώστε μεταξύ άλλων, να αποθηκεύσουν
|
||
το όνομα του μηχανήματος σε ένα αρχείο καταγραφής για μελλοντική
|
||
αναφορά από τον διαχειριστή.</para>
|
||
|
||
<para>Η θεραπεία: Αν το πρόβλημα προκύπτει κάθε φορά που συνδέεστε
|
||
από τον υπολογιστή σας (τον πελάτη) σε οποιοδήποτε εξυπηρετητή,
|
||
το πρόβλημα βρίσκεται στον πελάτη. Με τον ίδιο τρόπο, αν το
|
||
πρόβλημα συμβαίνει μόνο όταν κάποιος συνδέεται στον υπολογιστή
|
||
σας (τον εξυπηρετητή), το πρόβλημα βρίσκεται στον εξυπηρετητή.</para>
|
||
|
||
<para>Αν το πρόβλημα είναι στον πελάτη, η μόνη θεραπεία είναι να
|
||
διορθώσετε το DNS, ώστε ο εξυπηρετητής να μπορεί να το βρει. Αν
|
||
το πρόβλημα εμφανίζεται στο τοπικό σας δίκτυο, θεωρείστε το
|
||
πρόβλημα στον εξυπηρετητή και συνεχίστε την ανάγνωση. Αντίθετα,
|
||
αν το πρόβλημα εμφανίζεται σε συνδέσεις μέσω Internet, κατά πάσα
|
||
πιθανότητα θα χρειαστεί να επικοινωνήσετε με τον ISP σας και να
|
||
ζητήσετε να σας το διορθώσει.</para>
|
||
|
||
<para>Αν το πρόβλημα είναι με τον εξυπηρετητή, και εμφανίζεται στο
|
||
τοπικό σας δίκτυο, θα πρέπει να τον ρυθμίσετε ώστε να μπορεί να
|
||
εκτελεί αναζητήσεις τύπου διεύθυνση σε όνομα, για την τοπική
|
||
περιοχή διευθύνσεων σας. Δείτε τις σελίδες manual των
|
||
&man.hosts.5; και &man.named.8; για περισσότερες πληροφορίες. Αν
|
||
το πρόβλημα εμφανίζεται στις συνδέσεις μέσω Internet, μπορεί να
|
||
οφείλεται σε κακή λειτουργία του resolver στον εξυπηρετητή σας.
|
||
Για να το ελέγξετε, δοκιμάστε να βρείτε κάποιο άλλο μηχάνημα, για
|
||
παράδειγμα το <hostid>www.yahoo.com</hostid>. Αν ούτε αυτό
|
||
δουλεύει, εκεί βρίσκεται το πρόβλημα σας.</para>
|
||
|
||
<para>Μετά από μια νέα εγκατάσταση του &os; είναι επίσης πιθανό
|
||
να λείπουν οι πληροφορίες για τον τομέα (domain) και τον
|
||
εξυπηρετητή ονομάτων (nameserver) από το αρχείο
|
||
<filename>/etc/resolv.conf</filename>. Αυτό επίσης θα προκαλέσει
|
||
καθυστέρηση στο <application>SSH</application>, καθώς η επιλογή
|
||
<quote>UseDNS</quote> έχει ως προεπιλεγμένη την τιμή
|
||
<quote>yes</quote> στο αρχείο ρυθμίσεων
|
||
<filename>sshd_config</filename> στον κατάλογο
|
||
<filename>/etc/ssh</filename>. Αν είναι αυτή η αιτία του
|
||
προβλήματος, θα πρέπει είτε να συμπληρώσετε τις απαιτούμενες
|
||
πληροφορίες στο <filename>/etc/resolv.conf</filename> ή να θέσετε
|
||
το <quote>UseDNS</quote> στο <quote>no</quote> στο αρχείο
|
||
<filename>sshd_config</filename> ως προσωρινή λύση.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="stray-irq">
|
||
<para>Ποια είναι η έννοια του <errorname>stray (περιπλανώμενου)
|
||
IRQ</errorname>;</para>
|
||
</question>
|
||
<answer>
|
||
<para>Τα stray IRQs είναι σημάδια προβλημάτων υλικού που
|
||
χρησιμοποιεί IRQs, ειδικότερα σχετίζεται με υλικό που κατά τη
|
||
μέση του κύκλου αναγνώρισης (acknowledge cycle) του
|
||
interrupt, σταματάει να μεταδίδει την αντίστοιχη αίτηση διακοπής.</para>
|
||
<para>Έχετε τρεις επιλογές για να αντιμετωπίσετε αυτό το πρόβλημα:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Ανεχθείτε τις προειδοποιήσεις. Έτσι και αλλιώς, μετά τις
|
||
5 πρώτες, δεν θα δείτε άλλες.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Σταματήστε εντελώς τις προειδοποιήσεις, αλλάζοντας το 5
|
||
σε 0 στην <function>isa_strayintr()</function>.</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Σταματήστε τις προειδοποιήσεις εγκαθιστώντας υλικό για την
|
||
παράλληλη πόρτα που να χρησιμοποιεί το IRQ 7 και το
|
||
αντίστοιχο για αυτό πρόγραμμα οδήγησης PPP (αυτό συμβαίνει στα
|
||
περισσότερα συστήματα) και εγκαταστήστε ένα οδηγό IDE ή άλλο
|
||
υλικό που να χρησιμοποιεί το irq 15 μαζί με το κατάλληλο
|
||
πρόγραμμα οδήγησης του.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="file-table-full">
|
||
<para>Γιατί βλέπω συνέχεια το μήνυμα
|
||
<errorname>file: table is full</errorname> στο dmesg;</para>
|
||
</question>
|
||
<answer>
|
||
<para>
|
||
Το μήνυμα αυτό σημαίνει ότι έχετε εξαντλήσει τον αριθμό των
|
||
διαθέσιμων περιγραφέων αρχείων (file descriptors) στο σύστημα σας.
|
||
Παρακαλούμε δείτε το
|
||
<ulink
|
||
url="&url.books.handbook;/configtuning-kernel-limits.html#KERN-MAXFILES">kern.maxfiles
|
||
</ulink> τμήμα στο κεφάλαιο <ulink
|
||
url="&url.books.handbook;/configtuning-kernel-limits.html">Ρύθμιση
|
||
Ορίων Πυρήνα</ulink> του Εγχειριδίου, για ερμηνεία και επίλυση του
|
||
προβλήματος.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="laptop-clock-skew">
|
||
<para>Γιατί το ρολόι στο φορητό μου υπολογιστή δεν κρατάει την
|
||
σωστή ώρα;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ο φορητός υπολογιστής σας έχει δύο ή περισσότερα ρολόγια, και
|
||
το &os; έχει επιλέξει να χρησιμοποιήσει το λάθος.</para>
|
||
|
||
<para>Εκτελέστε την &man.dmesg.8;, και ελέγξτε για γραμμές που
|
||
περιέχουν την λέξη <literal>Timecounter</literal>. Η τελευταία
|
||
από τις γραμμές που θα εκτυπωθεί δείχνει το ρολόι που επιλέχθηκε
|
||
από το &os; και σχεδόν σίγουρα θα είναι το
|
||
<literal>TSC</literal>.</para>
|
||
|
||
<screen>&prompt.root; <userinput>dmesg | grep Timecounter</userinput>
|
||
Timecounter "i8254" frequency 1193182 Hz
|
||
Timecounter "TSC" frequency 595573479 Hz</screen>
|
||
|
||
<para>Μπορείτε να το επιβεβαιώσετε αυτό, ελέγχοντας την τιμή του
|
||
<varname>kern.timecounter.hardware</varname>
|
||
&man.sysctl.3;.</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl kern.timecounter.hardware</userinput>
|
||
kern.timecounter.hardware: TSC</screen>
|
||
|
||
<para>Το BIOS ίσως να τροποποιεί την τιμή του ρολογιού TSC—
|
||
ενδεχομένως για να αλλάξει την ταχύτητα του επεξεργαστή όταν
|
||
λειτουργεί με μπαταρίες, ή όταν εισέρχεται σε κατάσταση χαμηλής
|
||
κατανάλωσης, αλλά το &os; δεν γνωρίζει για αυτές τις αλλαγές και
|
||
φαίνεται να κερδίζει ή να χάνει χρόνο.</para>
|
||
|
||
<para>Στο παράδειγμα μας, είναι επίσης διαθέσιμο το ρολόι
|
||
<literal>i8254</literal> και μπορείτε να το επιλέξετε γράφοντας
|
||
το όνομα του στο &man.sysctl.3;
|
||
<varname>kern.timecounter.hardware</varname>.</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl -w kern.timecounter.hardware=i8254</userinput>
|
||
kern.timecounter.hardware: TSC -> i8254</screen>
|
||
|
||
<para>Ο φορητός υπολογιστής σας θα πρέπει τώρα να είναι πιο ακριβής
|
||
στην τήρηση του χρόνου.</para>
|
||
|
||
<para>Για να παραμείνει η αλλαγή αυτή σε κάθε εκκίνηση, προσθέστε
|
||
την παρακάτω γραμμή στο <filename>/etc/sysctl.conf</filename>.</para>
|
||
|
||
<programlisting>kern.timecounter.hardware=i8254</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="null-null">
|
||
<para>Γιατί ο φορητός μου υπολογιστής δεν αναγνωρίζει σωστά τις
|
||
κάρτες τύπου PC card;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το πρόβλημα είναι κοινό σε φορητά που εκκινούν περισσότερα από
|
||
ένα λειτουργικά συστήματα. Ορισμένα μη-BSD λειτουργικά συστήματα
|
||
αφήνουν τις PC cards σε μη-προβλέψιμη κατάσταση. Η εντολή
|
||
<command>pccardd</command> σε αυτή την περίπτωση, ανιχνεύει την
|
||
κάρτα ως <errorname>"(null)""(null)"</errorname> αντί για το
|
||
πραγματικό της μοντέλο.</para>
|
||
|
||
<para>Πρέπει να αποσυνδέσετε εντελώς την τροφοδοσία από την θύρα PC
|
||
card ώστε το υλικό να επανέλθει στην αρχική του κατάσταση.
|
||
Απενεργοποιήστε πλήρως τον φορητό υπολογιστή σας. (Μην τον βάλετε
|
||
σε κατάσταση αναμονής ή ύπνου, θα πρέπει να απενεργοποιηθεί
|
||
εντελώς.) Περιμένετε για λίγα λεπτά και επανεκκινήστε. Θα πρέπει
|
||
τώρα η PC card να λειτουργεί κανονικά.</para>
|
||
|
||
<para>Το υλικό κάποιων φορητών υπολογιστών στην πραγματικότητα
|
||
παραμένει ενεργό, ακόμα και όταν υποτίθεται ότι ο υπολογιστής
|
||
είναι ανενεργός. Αν το παραπάνω δεν έχει το επιθυμητό αποτέλεσμα,
|
||
τερματίστε τη λειτουργία του υπολογιστή σας, αφαιρέστε την
|
||
μπαταρία, περιμένετε λίγο, τοποθετήστε ξανά την μπαταρία και
|
||
επανεκκινήστε.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="boot-read-error">
|
||
<para>Γιατί ο φορτωτής εκκίνησης του &os; δείχνει το μήνυμα
|
||
λάθους <errorname>Read error</errorname> και σταματάει μετά την
|
||
οθόνη του BIOS;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ο φορτωτής εκκίνησης του &os; αναγνωρίζει λάθος την γεωμετρία
|
||
του σκληρού δίσκου. Μπορείτε να την ρυθμίσετε χειροκίνητα μέσα
|
||
από την fdisk κατά την δημιουργία ή τροποποίηση του slice του
|
||
&os;.</para>
|
||
|
||
<para>Μπορείτε να βρείτε τις σωστές τιμές για την γεωμετρία του
|
||
οδηγού στο BIOS του μηχανήματος. Ψάξτε για τον αριθμό των
|
||
κυλίνδρων, κεφαλών και τομέων για τον οδηγό που θέλετε.</para>
|
||
|
||
<para>Μέσα από την fdisk του &man.sysinstall.8;, πιέστε το
|
||
<keycap>G</keycap> για να ορίσετε την γεωμετρία του οδηγού.</para>
|
||
|
||
<para>Θα εμφανιστεί ένας διάλογος που θα ζητάει τον αριθμό των
|
||
κυλίνδρων, κεφαλών και τομέων. Πληκτρολογήστε τους αριθμούς που
|
||
βρήκατε από το BIOS, χωρίζοντας τους με κανονικές καθέτους. Για
|
||
παράδειγμα, για 5000 κυλίνδρους, 250 κεφαλές και 60 τομείς, θα
|
||
γράφαμε <userinput>5000/250/60</userinput>.</para>
|
||
|
||
<para>Πιέστε enter για να ορίσετε τις τιμές, και έπειτα το
|
||
<keycap>W</keycap> για να γράψετε το νέο πίνακα κατατμήσεων στον
|
||
οδηγό.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="bootmanager-restore">
|
||
<para>Ένα άλλο λειτουργικό σύστημα κατέστρεψε τον διαχειριστή
|
||
εκκίνησης μου. Πως μπορώ να τον αποκαταστήσω;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Θα πρέπει να εισέλθετε στο &man.sysinstall.8; και να
|
||
επιλέξετε Configure και κατόπιν Fdisk. Επιλέξτε το δίσκο στον
|
||
οποίο βρίσκεται κανονικά ο Φορτωτής Εκκίνησης χρησιμοποιώντας το
|
||
πλήκτρο <keycap>space</keycap>. Πιέστε το <keycap>W</keycap> για
|
||
να γράψετε τις αλλαγές στον οδηγό. Θα εμφανιστεί μια προτροπή που
|
||
θα σας ρωτάει ποιο φορτωτή εκκίνησης να εγκαταστήσει. Κάντε την
|
||
αντίστοιχη επιλογή και ο φορτωτής εκκίνησης σας θα
|
||
αποκατασταθεί.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="indefinite-wait-buffer">
|
||
<para>Τι σημαίνει το μήνυμα λάθους
|
||
<errorname>swap_pager: indefinite wait buffer:</errorname>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Σημαίνει ότι μια διαδικασία προσπαθεί να γράψει μια
|
||
σελίδα μνήμης στο δίσκο, και η απόπειρα αυτή έχει κολλήσει
|
||
προσπαθώντας να αποκτήσει πρόσβαση στο δίσκο για περισσότερο
|
||
από 20 δευτερόλεπτα. Αυτό μπορεί να συμβεί από χαλασμένους τομείς
|
||
στο σκληρό δίσκο, προβληματικά καλώδια, ή άλλο υλικό το οποίο να
|
||
σχετίζεται με I/O. Αν πρόκειται για προβληματικό δίσκο, θα
|
||
δείτε επίσης και αντίστοιχα μηνύματα στο
|
||
<filename>/var/log/messages</filename> και στην έξοδο της εντολής
|
||
<command>dmesg</command>. Διαφορετικά, ελέγξτε τις συνδέσεις και
|
||
τα καλώδια σας.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="udma-icrc">
|
||
<para>Τι είναι τα σφάλματα <quote>UDMA ICRC</quote>, και πως μπορώ
|
||
να τα διορθώσω;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το πρόγραμμα οδήγησης &man.ata.4; αναφέρει σφάλματα τύπου
|
||
<quote>UDMA ICRC</quote> όταν εντοπίσει πρόβλημα στην ορθότητα των
|
||
δεδομένων σε μια μεταφορά DMA από ή προς τον οδηγό. Το πρόγραμμα
|
||
οδήγησης θα προσπαθήσει να επαναλάβει τη μεταφορά μερικές φορές.
|
||
Αν όλες οι απόπειρες αποτύχουν, θα αλλάξει την κατάσταση
|
||
επικοινωνίας της συσκευής από DMA σε PIO, η οποία είναι πιο
|
||
αργή.</para>
|
||
|
||
<para>Το πρόβλημα μπορεί να προκληθεί από πολλούς παράγοντες, αν
|
||
και ο πιο συνηθισμένος είναι η προβληματική ή λανθασμένη
|
||
καλωδίωση. Ελέγξτε ότι τα καλώδια ΑΤΑ δεν έχουν υποστεί ζημιά, και
|
||
ότι είναι κατάλληλων προδιαγραφών για την κατάσταση λειτουργίας
|
||
Ultra DMA που χρησιμοποιείτε. Αν χρησιμοποιείτε αφαιρούμενα
|
||
συρτάρια δίσκων, θα πρέπει επίσης να είναι συμβατά. Βεβαιωθείτε
|
||
ότι υπάρχει καλή επαφή σε όλες τις συνδέσεις. Έχουν επίσης
|
||
αναφερθεί προβλήματα όταν γίνεται εγκατάσταση ενός παλιού οδηγού
|
||
στο ίδιο κανάλι DMA με ένα δίσκο Ultra DMA 66 (ή πιο γρήγορο).
|
||
Τέλος, τα λάθη αυτά μπορεί να σημαίνουν ότι ο δίσκος πρόκειται
|
||
σύντομα να χαλάσει. Οι περισσότεροι κατασκευαστές δίσκων παρέχουν
|
||
λογισμικό ελέγχου για τους οδηγούς τους, ελέγξτε λοιπόν το δίσκο
|
||
σας, και αν χρειάζεται, πάρτε αντίγραφο των δεδομένων σας και
|
||
αντικαταστήστε τον.</para>
|
||
|
||
<para>Μπορείτε να χρησιμοποιήσετε το βοηθητικό πρόγραμμα
|
||
&man.atacontrol.8; για να δείτε και να επιλέξετε την κατάσταση
|
||
λειτουργίας DMA ή PIO που χρησιμοποιείται από κάθε συσκευή ATA.
|
||
Πιο συγκεκριμένα, η εντολή
|
||
<command>atacontrol mode <replaceable>channel</replaceable>
|
||
</command> θα σας δείξει την κατάσταση λειτουργίας των συσκευών
|
||
ενός συγκεκριμένου καναλιού ΑΤΑ, όπου το πρωτεύον κανάλι έχει την
|
||
αρίθμηση 0 κ.ο.κ.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="lock-order-reversal">
|
||
<para>Τι είναι το <errorname>lock order reversal</errorname>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ο &a.rwatson; απάντησε με σαφήνεια αυτή την ερώτηση στην
|
||
λίστα &a.current.name;, σε μια συζήτηση με τίτλο
|
||
<quote><ulink
|
||
url="http://docs.freebsd.org/cgi/getmsg.cgi?fetch=65165+0+/usr/local/www/db/text/2003/freebsd-current/20031221.freebsd-current">lock
|
||
order reversals - τι σημαίνουν;</ulink></quote></para>
|
||
|
||
<blockquote>
|
||
<attribution>Από τον &a.rwatson; στη λίστα &a.current.name;, στις
|
||
14 Δεκεμβρίου 2003</attribution>
|
||
|
||
<para>Οι προειδοποιήσεις αυτές προέρχονται από το Witness, ένα
|
||
διαγνωστικό σύστημα για κλειδώματα κατά τη λειτουργία (run-time
|
||
lock) το οποίο βρίσκεται στους πυρήνες -CURRENT του &os; (αλλά
|
||
αφαιρείται στις επίσημες εκδόσεις). Μπορείτε να διαβάσετε
|
||
περισσότερα για το Witness και τις δυνατότητες του, στη σελίδα
|
||
manual &man.witness.4;. Μεταξύ άλλων το Witness επαληθεύει τη
|
||
σειρά των run-time locks χρησιμοποιώντας ένα συνδυασμό από
|
||
ενσωματωμένες σειρές κλειδωμάτων καθώς και από τη σειρά που
|
||
ανιχνεύεται κατά την εκτέλεση, και παράγει προειδοποιήσεις στην
|
||
κονσόλα όταν παραβιάζονται. Σκοπός αυτής της λειτουργίας είναι
|
||
να ανιχνεύονται πιθανά deadlocks τα οποία μπορεί να οφείλονται
|
||
σε παραβιάσεις της σειράς των κλειδωμάτων. Είναι αξιοσημείωτο
|
||
ότι το Witness είναι κάπως συντηρητικό, και είναι πιθανόν να
|
||
δώσει λάθος προειδοποιήσεις. Στην περίπτωση που το Witness
|
||
αναφέρει ένα πραγματικό πρόβλημα με την σειρά των κλειδωμάτων,
|
||
είναι σαν να λέει "αν ήσασταν άτυχος, θα σας είχε συμβεί
|
||
deadlock σε αυτό το σημείο". Υπάρχουν κάποιες γνωστές
|
||
περιπτώσεις "λανθασμένης διάγνωσης" για τις οποίες χρειάζεται
|
||
να δημιουργήσουμε καλύτερη τεκμηρίωση ώστε να αποφύγουμε και
|
||
τις περιττές αναφορές σφαλμάτων. Οι λιγότερο γνωστές περιπτώσεις
|
||
οφείλονται περισσότερο σε νέα κλειδώματα, καθώς οι αντιστροφές
|
||
στη σειρά των κλειδωμάτων διορθώνονται γρήγορα επειδή το
|
||
Witness είναι πάντα απασχολημένο και δημιουργεί συνέχεια νέες
|
||
προειδοποιήσεις :-).</para>
|
||
</blockquote>
|
||
|
||
<note>
|
||
<para>Αυτό που αποκαλούμε "λανθασμένη διάγνωση" δημιουργείται στην
|
||
πραγματικότητα όταν το Witness βρίσκει κάποιο πολύ πιο σοβαρό
|
||
λάθος. Τέτοια λάθη είναι τυπικά το σφάλμα σελίδας (page fault)
|
||
ή λανθασμένα δεδομένα στη μνήμη μέσα στον πυρήνα, ή τέλος
|
||
σύγκρουση ονομασίας με κάποια mutexes.</para>
|
||
</note>
|
||
<note>
|
||
<para>Δείτε την σελίδα του <ulink
|
||
url="http://sources.zabbadoz.net/freebsd/lor.html">Bjoern
|
||
Zeeb σχετικά με τις αντιστροφές κλειδωμάτων</ulink> για την
|
||
κατάσταση των γνωστών αντιστροφών.</para>
|
||
</note>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="called-with-non-sleepable-locks-held">
|
||
<para>Τι σημαίνει το μήνυμα <errorname>Called ... with the following
|
||
non-sleepable locks held</errorname>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Σημαίνει ότι κλήθηκε μια συνάρτηση με δυνατότητα sleep ενώ
|
||
την ίδια στιγμή ήταν ενεργό κάποιο κλείδωμα mutex (ή αντίστοιχο
|
||
χωρίς δυνατότητα sleep).</para>
|
||
|
||
<para>Ο λόγος για τον οποίο αυτό είναι λάθος είναι επειδή τα mutexes
|
||
δεν προορίζονται να κρατούνται για μεγάλα χρονικά διαστήματα.
|
||
Είναι μόνο για τη συντήρηση μικρών περιόδων συγχρονισμού. Αυτή
|
||
η προγραμματιστική συμφωνία επιτρέπει στους οδηγούς συσκευών να
|
||
χρησιμοποιούν mutexes για να συγχρονίζονται με τα υπόλοιπα
|
||
προγράμματα του πυρήνα κατά την διάρκεια των interrupts. Τα
|
||
interrupts (στο &os;) δεν μπορούν να περιέλθουν σε κατάσταση
|
||
sleep. Για το λόγο αυτό είναι απαραίτητο να μην μπλοκάρετε ο
|
||
πυρήνας για μεγάλο διάστημα από κάποιο υποσύστημα που κρατάει
|
||
ένα mutex.</para>
|
||
|
||
<para>Για να εντοπιστούν αυτά τα λάθη, μπορούν να προστεθούν
|
||
υποθέσεις (assertions) στον πυρήνα οι οποίες αλληλεπιδρούν με
|
||
το υποσύστημα witness για να δώσουν ένα προειδοποιητικό μήνυμα
|
||
(ή μήνυμα λάθους, ανάλογα με τις ρυθμίσεις του συστήματος) όταν
|
||
γίνεται μια κλήση η οποία πιθανώς να δημιουργεί μπλοκάρισμα την
|
||
στιγμή που κρατιέται ένα mutex.</para>
|
||
|
||
<para>Εν συντομία, αυτού του είδους οι προειδοποιήσεις δεν είναι
|
||
συνήθως μοιραίες, αλλά υπό ορισμένες ατυχείς προϋποθέσεις,
|
||
μπορεί να προκαλέσουν ανεπιθύμητα φαινόμενα τα οποία κυμαίνονται
|
||
από μια στιγμιαία πτώση στην απόκριση του συστήματος, μέχρι
|
||
πλήρης κατάρρευση.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="touch-not-found">
|
||
<para>Γιατί η διαδικασία buildworld/installworld σταματάει με το
|
||
μήνυμα <errorname>touch: not found</errorname>;</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Το μήνυμα αυτό δεν σημαίνει ότι σας λείπει το βοηθητικό
|
||
πρόγραμμα &man.touch.1;. Το λάθος αυτό προκαλείται συνήθως από
|
||
λανθασμένη, μελλοντική, σήμανση ημερομηνίας των αρχείων. Αν το
|
||
ρολόι CMOS του υπολογιστή σας είναι ρυθμισμένο για τοπική ώρα,
|
||
πρέπει να εκτελέσετε την εντολή
|
||
<command>adjkerntz -i</command> για να ρυθμίσετε το ρολόι
|
||
του πυρήνα όταν εκκινείτε σε κατάσταση λειτουργίας ενός χρήστη.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="commercial">
|
||
<title>Εμπορικές Εφαρμογές</title>
|
||
|
||
<note>
|
||
<para>This section is still very sparse, though we are hoping, of
|
||
course, that companies will add to it! :) The FreeBSD group has
|
||
no financial interest in any of the companies listed here but
|
||
simply lists them as a public service (and feels that commercial
|
||
interest in FreeBSD can have very positive effects on FreeBSD's
|
||
long-term viability). We encourage commercial software vendors to
|
||
send their entries here for inclusion. See <ulink
|
||
url="&url.base;/commercial/index.html">the
|
||
Vendors page</ulink> for a longer list.</para>
|
||
</note>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="officesuite">
|
||
<para>Where can I get an Office Suite for FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The open-source <ulink
|
||
url="http://www.openoffice.org">OpenOffice.org</ulink> office
|
||
suite works natively on FreeBSD. The &linux; version of
|
||
<ulink
|
||
url="http://www.sun.com/staroffice/">StarOffice</ulink>,
|
||
the value-added closed-source version of OpenOffice.org, also
|
||
works on FreeBSD.</para>
|
||
|
||
<para>FreeBSD also includes a variety of text editors,
|
||
spreadsheets, and drawing programs in the Ports
|
||
Collection.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
<qandaentry>
|
||
<question id="motif">
|
||
<para>Where can I get &motif; for FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The Open Group has released the source code to &motif; 2.2.2.
|
||
You can install the <literal>open-motif</literal> package, or
|
||
compile it from ports. Refer to
|
||
<ulink url="&url.books.handbook;/ports.html">the ports section of the
|
||
Handbook</ulink> for more information on how to do this.</para>
|
||
|
||
<note>
|
||
<para>The Open &motif; distribution only allows redistribution
|
||
if it is running on an <ulink url="http://www.opensource.org/">
|
||
open source</ulink> operating system.</para>
|
||
</note>
|
||
|
||
<para>In addition, there are commercial distributions of the &motif;
|
||
software available. These, however, are not for free, but their
|
||
license allows them to be used in closed-source software.
|
||
Contact <link linkend="apps2go">Apps2go</link> for the
|
||
least expensive ELF &motif; 2.1.20 distribution for FreeBSD
|
||
(either &i386; or Alpha).<anchor id="apps2go"></para>
|
||
|
||
<para>There are two distributions, the <quote>development
|
||
edition</quote> and the <quote>runtime edition</quote> (for
|
||
much less). These distributions includes:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>OSF/&motif; manager, xmbind, panner, wsm.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Development kit with uil, mrm, xm, xmcxx, include
|
||
and Imake files.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Static and dynamic ELF libraries.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Demonstration applets.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Be sure to specify that you want the FreeBSD version of
|
||
&motif; when ordering (do not forget to mention the architecture
|
||
you want too)! Versions for NetBSD and OpenBSD are also sold by
|
||
<emphasis>Apps2go</emphasis>. This is currently a FTP only
|
||
download.</para>
|
||
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term>More info</term>
|
||
<listitem>
|
||
<para><ulink url="http://www.apps2go.com/">
|
||
Apps2go WWW page</ulink></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>or</term>
|
||
<listitem>
|
||
<para>
|
||
<email>sales@apps2go.com</email> or
|
||
<email>support@apps2go.com</email>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>or</term>
|
||
<listitem>
|
||
<para>phone (817) 431 8775 or +1 817 431-8775</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
|
||
<para>Contact <link linkend="xig">Xi Graphics</link> for an
|
||
a.out &motif; 2.0 distribution for FreeBSD.</para>
|
||
|
||
<para>This distribution includes:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>OSF/&motif; manager, xmbind, panner, wsm.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Development kit with uil, mrm, xm, xmcxx, include
|
||
and Imake files.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Static and dynamic libraries (for use with FreeBSD
|
||
2.2.8 and earlier).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Demonstration applets.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Preformatted manual pages.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Be sure to specify that you want the FreeBSD version
|
||
of &motif; when ordering! Versions for BSDI and &linux; are also
|
||
sold by <emphasis>Xi Graphics</emphasis>. This is currently a 4
|
||
diskette set... in the future this will change to a unified CD
|
||
distribution like their CDE.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="cde">
|
||
<para>Where can I get CDE for FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para><link linkend="xig">Xi Graphics</link> used to sell CDE
|
||
for FreeBSD, but no longer do.</para>
|
||
|
||
<para><ulink url="http://www.kde.org/">KDE</ulink> is an open
|
||
source X11 desktop which is similar to CDE in many respects.
|
||
You might also like the look and feel of <ulink
|
||
url="http://www.xfce.org/">xfce</ulink>. KDE and xfce are both
|
||
in the <ulink url="&url.base;/ports/index.html">ports
|
||
system</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="commercial-xserver">
|
||
<para>Are there any commercial high-performance X servers?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes, <ulink url="http://www.xig.com/">Xi Graphics</ulink>
|
||
sells Accelerated-X products for FreeBSD and other Intel based
|
||
systems.</para>
|
||
|
||
<para>The Xi Graphics offering is a high performance X Server
|
||
that offers easy configuration, support for multiple concurrent
|
||
video boards and is distributed in binary form only, in a
|
||
unified diskette distribution for FreeBSD and &linux;. Xi
|
||
Graphics also offers a high performance X Server tailored for
|
||
laptop support.<anchor id="xig"></para>
|
||
|
||
<para>There is a free <quote>compatibility demo</quote> of
|
||
version 5.0 available.</para>
|
||
|
||
<para>Xi Graphics also sells &motif; and CDE for FreeBSD (see
|
||
above).</para>
|
||
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term>More info</term>
|
||
<listitem>
|
||
<para><ulink url="http://www.xig.com/">
|
||
Xi Graphics WWW page</ulink></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>or</term>
|
||
<listitem>
|
||
<para>
|
||
<email>sales@xig.com</email>
|
||
or <email>support@xig.com</email>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>or</term>
|
||
<listitem>
|
||
<para>phone (800) 946 7433 or +1 303 298-7478.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="database-systems">
|
||
<para>Are there any Database systems for FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes! See the <ulink
|
||
url="&url.base;/commercial/software_bycat.html#CATEGORY_DATABASE">
|
||
Commercial Vendors</ulink> section of FreeBSD's Web site.</para>
|
||
|
||
<para>Also see the <ulink
|
||
url="&url.base;/ports/databases.html">
|
||
Databases</ulink> section of the Ports collection.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="oracle-support">
|
||
<para>Can I run &oracle; on FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes. The following pages tell you exactly how to set up
|
||
&linux;-&oracle; on FreeBSD:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><ulink
|
||
url="http://www.unixcities.com/oracle/index.html">
|
||
http://www.unixcities.com/oracle/index.html</ulink></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><ulink
|
||
url="http://www.shadowcom.net/freebsd-oracle9i/">
|
||
http://www.shadowcom.net/freebsd-oracle9i/</ulink></para>
|
||
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="applications">
|
||
<title>Εφαρμογές Τελικού Χρήστη</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="user-apps">
|
||
<para>So, where are all the user applications?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Please take a look at <ulink
|
||
url="&url.base;/ports/index.html">the ports page</ulink>
|
||
for info on software packages ported to FreeBSD. The list
|
||
currently tops &os.numports; and is growing daily, so come
|
||
back to check often or subscribe to the
|
||
<literal>freebsd-announce</literal> <link
|
||
linkend="mailing">mailing list</link> for periodic updates
|
||
on new entries.</para>
|
||
|
||
<para>Most ports should work on the 4.X, 5.X, and 6.X branches.
|
||
Each time a FreeBSD release is made, a snapshot of the
|
||
ports tree at the time of release in also included in the
|
||
<filename>ports/</filename> directory.</para>
|
||
|
||
<para>We also support the concept of a
|
||
<quote>package</quote>, essentially no more than a compressed
|
||
binary distribution with a little extra intelligence
|
||
embedded in it for doing whatever custom installation work
|
||
is required. A package can be installed and uninstalled
|
||
again easily without having to know the gory details of
|
||
which files it includes.</para>
|
||
|
||
<para>Use the package installation menu in
|
||
<filename>/stand/sysinstall</filename> (under the
|
||
post-configuration menu item) or invoke the
|
||
&man.pkg.add.1; command on the specific package files you
|
||
are interested in installing. Package files can usually be
|
||
identified by their <filename>.tgz</filename> or <filename>.tbz</filename> suffix and
|
||
CDROM distribution people will have a
|
||
<filename>packages/All</filename> directory on their CD
|
||
which contains such files. They can also be downloaded
|
||
over the net for various versions of FreeBSD at the
|
||
following locations:</para>
|
||
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term>for 4.X-RELEASE/4-STABLE</term>
|
||
<listitem>
|
||
<para><ulink
|
||
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/">
|
||
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/</ulink></para>
|
||
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>for 5.X-RELEASE/5-STABLE</term>
|
||
<listitem>
|
||
<para><ulink
|
||
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable/">
|
||
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable</ulink></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>for 6.X-RELEASE/6-STABLE</term>
|
||
<listitem>
|
||
<para><ulink
|
||
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable/">
|
||
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable</ulink></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>for 7-CURRENT</term>
|
||
<listitem>
|
||
<para><ulink
|
||
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current/">
|
||
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current</ulink></para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
|
||
<para>or your nearest local mirror site.</para>
|
||
|
||
<para>Note that all ports may not be available as packages since
|
||
new ones are constantly being added. It is always a good idea
|
||
to check back periodically to see which packages are available
|
||
at the <ulink
|
||
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp.FreeBSD.org</ulink>
|
||
master site.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="configure-inn">
|
||
<para>How do I configure INN (Internet News) for my machine?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>After installing the <filename
|
||
role="package">news/inn</filename> package or port, an
|
||
excellent place to start is <ulink
|
||
url="http://www.visi.com/~barr/INN.html">Dave
|
||
Barr's INN Page</ulink> where you will find the INN
|
||
FAQ.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="java">
|
||
<para>Does FreeBSD support &java;?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes. Please see <ulink
|
||
url="&url.base;/java/index.html">
|
||
http://www.FreeBSD.org/java/</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ports-4x">
|
||
<para>Why can I not build this port on my 4.X-STABLE machine?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you are running a FreeBSD version that lags
|
||
significantly behind -CURRENT or -STABLE, you may need to
|
||
update your ports collection; see the <ulink
|
||
url="&url.books.porters-handbook;/keeping-up.html">
|
||
Keeping Up</ulink> section of the Porter's Handbook for further
|
||
information on how to do this.
|
||
If you are up to date,
|
||
then someone might have committed a change to the port which
|
||
works for -CURRENT but which broke the port for -STABLE. Please
|
||
submit a bug report on this with the
|
||
&man.send-pr.1; command, since the ports
|
||
collection is supposed to work for both the -CURRENT and
|
||
-STABLE branches.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="make-index">
|
||
<para>I just tried to build <filename>INDEX</filename>
|
||
using <command>make index</command>, and it failed.
|
||
Why?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>First, always make sure that you have a completely
|
||
up-to-date Ports Collection. Errors that affect building
|
||
<filename>INDEX</filename> from an up-to-date copy of the
|
||
Ports Collection are high-visibility and are thus almost
|
||
always fixed immediately.</para>
|
||
|
||
<para>However, if you are up-to-date, perhaps you are seeing
|
||
another problem. <command>make index</command> has a
|
||
known bug in dealing with incomplete copies of the Ports
|
||
Collection. It assumes that you have a local copy of every
|
||
single port that every other port that you have a local copy
|
||
of depends on. To explain, if you have a copy of
|
||
<filename>foo/bar</filename> on your disk, and
|
||
<filename>foo/bar</filename> depends on
|
||
<filename>baz/quux</filename>, then you must also have
|
||
a copy of <filename>baz/quux</filename> on your disk, and
|
||
the ports <filename>baz/quux</filename> depends on, and
|
||
so on. Otherwise, <command>make index</command> has
|
||
insufficient information to create its dependency tree.</para>
|
||
|
||
<para>This is particularly a problem for &os; users who
|
||
utilize &man.cvsup.1; to track the Ports Collection but
|
||
choose not to install certain categories by specifying
|
||
them in <filename>refuse</filename>. In theory, one
|
||
should be able to refuse categories, but in practice
|
||
there are too many ports that depend on ports in other
|
||
categories. Until someone comes up with a solution for
|
||
this problem, the general rule is is that if you want to
|
||
build <filename>INDEX</filename>, you must have a complete
|
||
copy of the Ports Collection.</para>
|
||
|
||
<para>There are rare cases where <filename>INDEX</filename>
|
||
will not build due to odd cases involving
|
||
<makevar>WITH_<replaceable>*</replaceable></makevar> or
|
||
<makevar>WITHOUT_<replaceable>*</replaceable></makevar>
|
||
variables being set in <filename>make.conf</filename>. If
|
||
you suspect that this is the case, please try to make
|
||
<filename>INDEX</filename> with those Makevars turned off
|
||
before reporting it to &a.ports;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="cvsup-in-base">
|
||
<para>Why is CVSup not integrated in the main FreeBSD tree?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The FreeBSD base system is designed as self-hosting - it
|
||
should be possible to build the whole operating system starting
|
||
with a very limited set of tools. Thus, the actual build tools
|
||
needed to compile the FreeBSD sources are bundled with the
|
||
sources themselves. This includes a C compiler (&man.gcc.1;),
|
||
&man.make.1;, &man.awk.1;, and similar tools.</para>
|
||
|
||
<para>Since CVSup is written in Modula-3, adding it to the FreeBSD
|
||
base system would also require adding and maintaining a Modula-3
|
||
compiler. This would lead to both an increase in the disk space
|
||
consumed by the FreeBSD sources and additional maintenance work.
|
||
Thus, it is much easier for both the developers and users to
|
||
keep CVSup as a separate port, which can be easily installed as
|
||
a package bundled on the FreeBSD installation CDs.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ports-update">
|
||
<para>I updated the sources, now how do I update my installed
|
||
ports?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>FreeBSD does not include a port upgrading tool, but it
|
||
does have some tools to make the upgrade process somewhat
|
||
easier. You can also install additional tools to simplify
|
||
port handling.</para>
|
||
|
||
<para>The &man.pkg.version.1; command can generate a script
|
||
that will update installed ports to the latest version in
|
||
the ports tree.</para>
|
||
|
||
<screen>&prompt.root; <userinput>pkg_version -c > <replaceable>/tmp/myscript</replaceable></userinput></screen>
|
||
|
||
<para>The output script <emphasis>must</emphasis> be edited by
|
||
hand before you use it. Recent versions of
|
||
&man.pkg.version.1; force this by inserting an
|
||
&man.exit.1; at the beginning of the script.</para>
|
||
|
||
<para>You should save the output of the script, as it will note
|
||
packages that depend on the one that has been updated. These
|
||
may or may not need to be updated as well. The usual case where
|
||
they need to be updated is that a shared library has changed
|
||
version numbers, so the ports that used that library need to be
|
||
rebuilt to use the new version.</para>
|
||
|
||
<note>
|
||
<para>Beginning with FreeBSD 5.0 (and higher revisions),
|
||
&man.pkg.version.1; no longer supports the
|
||
<option>-c</option> option.</para>
|
||
</note>
|
||
|
||
<para>If you have the disk space, you can use the
|
||
<command>portupgrade</command> tool to automate all of
|
||
this. <command>portupgrade</command> includes various
|
||
tools to simplify package handling. It is available under
|
||
<filename role="package">ports-mgmt/portupgrade</filename>.
|
||
Since it is written in Ruby,
|
||
<command>portupgrade</command> is an unlikely candidate for
|
||
integration with the main FreeBSD tree. That should not
|
||
stop anyone from using it, however.</para>
|
||
|
||
<para>If your system is up full time, the &man.periodic.8; system
|
||
can be used to generate a weekly list of ports that might need
|
||
updating by setting
|
||
<literal>weekly_status_pkg_enable="YES"</literal> in
|
||
<filename>/etc/periodic.conf</filename>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="minimal-sh">
|
||
<para>Why is <command>/bin/sh</command> so minimal? Why does
|
||
FreeBSD not use <command>bash</command> or another shell?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Because &posix; says that there shall be such a shell.</para>
|
||
|
||
<para>The more complicated answer: many people need to write shell
|
||
scripts which will be portable across many systems. That is why
|
||
&posix; specifies the shell and utility commands in great detail.
|
||
Most scripts are written in Bourne shell, and because several
|
||
important programming interfaces (&man.make.1;, &man.system.3;,
|
||
&man.popen.3;, and analogues in higher-level scripting
|
||
languages like Perl and Tcl) are specified to use the Bourne
|
||
shell to interpret commands. Because the Bourne shell is so
|
||
often and widely used, it is important for it to be quick to
|
||
start, be deterministic in its behavior, and have a small
|
||
memory footprint.</para>
|
||
|
||
<para>The existing implementation is our best effort at meeting as
|
||
many of these requirements simultaneously as we can. In order to
|
||
keep <command>/bin/sh</command> small, we have not provided many
|
||
of the convenience features that other shells have. That is why the
|
||
Ports Collection includes more featureful shells like bash, scsh,
|
||
tcsh, and zsh. (You can compare for yourself the memory
|
||
utilization of all these shells by looking at the
|
||
<quote>VSZ</quote> and <quote>RSS</quote> columns in a <command>ps
|
||
-u</command> listing.)</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="netscape-slow-startup">
|
||
<para>Why do &netscape; and Opera take so long to
|
||
start?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The usual answer is that DNS on your system is
|
||
misconfigured. Both &netscape; and Opera perform DNS checks
|
||
when starting up. The browser will not appear on your
|
||
desktop until the program either gets a response or
|
||
determines that the system has no network
|
||
connection.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ports-base-update">
|
||
<para>I updated parts of the Ports Collection using CVSup, and
|
||
now many ports fail to build with mysterious error messages!
|
||
What happened? Is the Ports Collection broken in some major
|
||
way?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you only update parts of the Ports Collection, using
|
||
one of its CVSup subcollections and not the
|
||
<literal>ports-all</literal> CVSup collection, you should
|
||
<emphasis>always</emphasis> update the
|
||
<literal>ports-base</literal> subcollection too! The reasons
|
||
are described <ulink
|
||
url="&url.books.handbook;/cvsup.html#CVSUP-COLLEC-PBASE-WARN">in the
|
||
Handbook</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="midi-sound-files">
|
||
<para>How do I create audio CDs from my MIDI files?</para>
|
||
</question>
|
||
|
||
<answer><para>To create audio CDs from MIDI files, first
|
||
install <filename role="package">audio/timidity++</filename>
|
||
from ports then install manually the GUS patches set by Eric
|
||
A. Welsh, available at <ulink
|
||
url="http://www.stardate.bc.ca/eawpatches/html/default.htm"></ulink>.
|
||
After timidity++ has been installed properly, midi files may
|
||
be converted to wav files with the following command
|
||
line:</para>
|
||
|
||
<screen>&prompt.user; <userinput>timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid</userinput></screen>
|
||
|
||
<para>The wav files can then be converted to other formats
|
||
or burned onto audio CDs, as described in the FreeBSD
|
||
Handbook.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="kernelconfig">
|
||
<title>Ρύθμιση Πυρήνα</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="make-kernel">
|
||
<para>I would like to customize my kernel. Is it difficult?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Not at all! Check out the <ulink
|
||
url="&url.books.handbook;/kernelconfig.html">
|
||
kernel config section of the Handbook</ulink>.</para>
|
||
|
||
<note>
|
||
<para>We recommend that you make a dated snapshot of
|
||
your new <filename>/kernel</filename> called
|
||
<filename>/kernel.YYMMDD</filename> after you get it
|
||
working properly. Also back up your new
|
||
<filename>/modules</filename> directory to
|
||
<filename>/modules.YYMMDD</filename>. That way, if
|
||
you make a mistake the next time you play with your
|
||
configuration you can boot the backup kernel instead
|
||
of having to fall back to
|
||
<filename>kernel.GENERIC</filename>. This is
|
||
particularly important if you are now booting from a
|
||
controller that GENERIC does not support.</para>
|
||
</note>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="missing-hw-float">
|
||
<para>My kernel compiles fail because
|
||
<literal>_hw_float</literal> is missing. How do I solve
|
||
this problem?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You probably removed <devicename>npx0</devicename>
|
||
(see &man.npx.4;) from your kernel configuration file
|
||
because you do not have a math co-processor. The
|
||
<devicename>npx0</devicename> device is
|
||
<emphasis>MANDATORY</emphasis>. Somewhere inside your
|
||
hardware lies a device that provides hardware
|
||
floating-point support, even if it is no longer a separate
|
||
device as used in the good old 386 days. You
|
||
<emphasis>must</emphasis> include the
|
||
<devicename>npx0</devicename> device. Even if you manage
|
||
to build a kernel without <devicename>npx0</devicename>
|
||
support, it will not boot anyway. </para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="why-kernel-big">
|
||
<para>Why is my kernel so big (over 10MB)?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Chances are, you compiled your kernel in
|
||
<emphasis>debug mode</emphasis>. Kernels built in debug
|
||
mode contain many symbols that are used for debugging,
|
||
thus greatly increasing the size of the kernel. Note that
|
||
there will be little or no performance decrease from
|
||
running a debug kernel, and it is useful to keep one
|
||
around in case of a system panic.</para>
|
||
|
||
<para>However, if you are running low on disk space, or
|
||
you simply do not want to run a debug kernel, make sure
|
||
that both of the following are true:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>You do not have a line in your kernel
|
||
configuration file that reads:</para>
|
||
|
||
<programlisting>makeoptions DEBUG=-g</programlisting>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>You are not running &man.config.8; with
|
||
the <option>-g</option> option.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Either of the above settings will cause your kernel to
|
||
be built in debug mode. As long as you make sure you
|
||
follow the steps above, you can build your kernel
|
||
normally, and you should notice a fairly large size
|
||
decrease; most kernels tend to be around 1.5MB to
|
||
2MB.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="multiport-serial-interrupts">
|
||
<para>Why do I get interrupt conflicts with multi-port serial
|
||
code?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>When I compile a kernel
|
||
with multi-port serial code, it tells me that only the first
|
||
port is probed and the rest skipped due to interrupt conflicts.
|
||
How do I fix this?</para>
|
||
|
||
<para>The problem here is that
|
||
FreeBSD has code built-in to keep the kernel from getting
|
||
trashed due to hardware or software conflicts. The way to fix
|
||
this is to leave out the IRQ settings on all but one port. Here
|
||
is an example:</para>
|
||
|
||
<programlisting>#
|
||
# Multiport high-speed serial line - 16550 UARTS
|
||
#
|
||
device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
|
||
device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
|
||
device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
|
||
device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="generic-kernel-build-failure">
|
||
<para>Why does every kernel I try to build fail to compile, even
|
||
GENERIC?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>There are a number of possible causes for this problem.
|
||
They are, in no particular order:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>You are not using the new <command>make
|
||
buildkernel</command> and <command>make
|
||
installkernel</command> targets, and your source tree is
|
||
different from the one used to build the currently running
|
||
system (e.g., you are compiling 4.3-RELEASE on a 4.0-RELEASE
|
||
system). If you are attempting an upgrade, please read the
|
||
<filename>/usr/src/UPDATING</filename> file, paying
|
||
particular attention to the <quote>COMMON ITEMS</quote>
|
||
section at the end.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>You are using the new <command>make
|
||
buildkernel</command> and <command>make
|
||
installkernel</command> targets, but you failed to assert
|
||
the completion of the <command>make buildworld</command>
|
||
target. The <command>make buildkernel</command> target
|
||
relies on files generated by the <command>make
|
||
buildworld</command> target to complete its job
|
||
correctly.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Even if you are trying to build <link
|
||
linkend="stable">FreeBSD-STABLE</link>, it is possible that
|
||
you fetched the source tree at a time when it was either
|
||
being modified, or broken for other reasons; only releases
|
||
are absolutely guaranteed to be buildable, although <link
|
||
linkend="stable">FreeBSD-STABLE</link> builds fine the
|
||
majority of the time. If you have not already done so, try
|
||
re-fetching the source tree and see if the problem goes
|
||
away. Try using a different server in case the one you are
|
||
using is having problems.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="scheduler-in-use">
|
||
<para>How can I verify which scheduler is in use on a
|
||
running system?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you are running &os; version 5.2.1 or earlier, check for
|
||
the existence of the <literal>kern.quantum</literal> sysctl.
|
||
If you have it, you should see something like this:</para>
|
||
|
||
<screen>&prompt.user; sysctl <replaceable>kern.quantum</replaceable>
|
||
kern.sched.quantum: 99960</screen>
|
||
|
||
<para>If the <literal>kern.quantum</literal> sysctl exists, you are
|
||
using the 4BSD scheduler. If not, you will get an error printed
|
||
by &man.sysctl.8; (which you can safely ignore):</para>
|
||
|
||
<screen>&prompt.user; sysctl <replaceable>kern.sched.quantum</replaceable>
|
||
sysctl: unknown oid 'kern.sched.quantum'</screen>
|
||
|
||
<para>In &os; version 5.3-RELEASE and later, the name of the
|
||
scheduler currently being used is directly available as the value
|
||
of the <literal>kern.sched.name</literal> sysctl:</para>
|
||
|
||
<screen>&prompt.user; sysctl <replaceable>kern.sched.name</replaceable>
|
||
kern.sched.name: 4BSD</screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="scheduler-kern-quantum">
|
||
<para>What is <literal>kern.quantum</literal>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para><literal>kern.quantum</literal> is the maximum number of
|
||
ticks a process can run without being preempted. It is
|
||
specific to the 4BSD scheduler, so you can use its
|
||
presence or absence to determine which scheduler is in
|
||
use. In &os; 5.X or later <literal>kern.quantum</literal> has
|
||
been renamed to <literal>kern.sched.quantum</literal>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="scheduler-kern-sched-quantum">
|
||
<para>What is <literal>kern.sched.quantum</literal>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>See <xref linkend="scheduler-kern-quantum"></para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="disks">
|
||
<title>Δίσκοι, Συστήματα Αρχείων και Φορτωτές Εκκίνησης</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="adding-disks">
|
||
<para>How can I add my new hard disk to my FreeBSD system?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>See the Disk Formatting Tutorial at <ulink
|
||
url="&url.articles.formatting-media;/index.html">
|
||
www.FreeBSD.org</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="new-huge-disk">
|
||
<para>How do I move my system over to my huge new disk?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The best way is to reinstall the OS on the new
|
||
disk, then move the user data over. This is highly
|
||
recommended if you have been tracking -STABLE for more
|
||
than one release, or have updated a release instead of
|
||
installing a new one. You can install booteasy on both
|
||
disks with &man.boot0cfg.8;, and dual boot them until
|
||
you are happy with the new configuration. Skip the
|
||
next paragraph to find out how to move the data after
|
||
doing this.</para>
|
||
|
||
<para>Should you decide not to do a fresh install, you
|
||
need to partition and label the new disk with either
|
||
<filename>/stand/sysinstall</filename>, or &man.fdisk.8;
|
||
and &man.disklabel.8;. You should also install booteasy
|
||
on both disks with &man.boot0cfg.8;, so that you can
|
||
dual boot to the old or new system after the copying
|
||
is done. See the <ulink
|
||
url="&url.articles.formatting-media;/index.html">
|
||
formatting-media article</ulink> for details on this
|
||
process.</para>
|
||
|
||
<para>Now you have the new disk set up, and are ready
|
||
to move the data. Unfortunately, you cannot just blindly
|
||
copy the data. Things like device files (in
|
||
<filename>/dev</filename>), flags, and links tend to
|
||
screw that up. You need to use tools that understand
|
||
these things, which means &man.dump.8;.
|
||
Although it is suggested that you move the data in single user
|
||
mode, it is not required.</para>
|
||
|
||
<para>You should never use anything but &man.dump.8; and
|
||
&man.restore.8; to move the root filesystem. The
|
||
&man.tar.1; command may work - then again, it may not.
|
||
You should also use &man.dump.8; and &man.restore.8;
|
||
if you are moving a single partition to another empty
|
||
partition. The sequence of steps to use dump to move
|
||
a partitions data to a new partition is:</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<para>newfs the new partition.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>mount it on a temporary mount point.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>cd to that directory.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>dump the old partition, piping output to the
|
||
new one.</para>
|
||
</step>
|
||
</procedure>
|
||
|
||
<para>For example, if you are going to move root to
|
||
<devicename>/dev/ad1s1a</devicename>, with
|
||
<filename>/mnt</filename> as the temporary mount point,
|
||
it is:</para>
|
||
|
||
<screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
|
||
&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
|
||
&prompt.root; <userinput>cd /mnt</userinput>
|
||
&prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen>
|
||
|
||
<para>Rearranging your partitions with dump takes a bit more
|
||
work. To merge a partition like <filename>/var</filename>
|
||
into its parent, create the new partition large enough
|
||
for both, move the parent partition as described above,
|
||
then move the child partition into the empty directory
|
||
that the first move created:</para>
|
||
|
||
<screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
|
||
&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
|
||
&prompt.root; <userinput>cd /mnt</userinput>
|
||
&prompt.root; <userinput>dump 0af - / | restore xf -</userinput>
|
||
&prompt.root; <userinput>cd var</userinput>
|
||
&prompt.root; <userinput>dump 0af - /var | restore xf -</userinput></screen>
|
||
|
||
<para>To split a directory from its parent, say putting
|
||
<filename>/var</filename> on its own partition when it was not
|
||
before, create both partitions, then mount the child partition
|
||
on the appropriate directory in the temporary mount point, then
|
||
move the old single partition:</para>
|
||
|
||
<screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
|
||
&prompt.root; <userinput>newfs /dev/ad1s1d</userinput>
|
||
&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
|
||
&prompt.root; <userinput>mkdir /mnt/var</userinput>
|
||
&prompt.root; <userinput>mount /dev/ad1s1d /mnt/var</userinput>
|
||
&prompt.root; <userinput>cd /mnt</userinput>
|
||
&prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen>
|
||
|
||
<para>You might prefer &man.cpio.1;, &man.pax.1;,
|
||
&man.tar.1; to &man.dump.8; for user data. At the time of
|
||
this writing, these are known to lose file flag information,
|
||
so use them with caution.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="dangerously-dedicated">
|
||
<para>Will a <quote>dangerously dedicated</quote> disk endanger
|
||
my health?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para><anchor id="dedicate">The installation procedure allows
|
||
you to chose two different methods in partitioning your
|
||
hard disk(s). The default way makes it compatible with other
|
||
operating systems on the same machine, by using fdisk table
|
||
entries (called <quote>slices</quote> in FreeBSD), with a
|
||
FreeBSD slice that employs partitions of its own. Optionally,
|
||
one can chose to install a boot-selector to switch between the
|
||
possible operating systems on the disk(s). The alternative uses
|
||
the entire disk for FreeBSD, and makes no attempt to be
|
||
compatible with other operating systems.</para>
|
||
|
||
<para>So why it is called <quote>dangerous</quote>? A disk
|
||
in this mode does not contain what normal PC utilities
|
||
would consider a valid fdisk table. Depending on how well
|
||
they have been designed, they might complain at you once
|
||
they are getting in contact with such a disk, or even
|
||
worse, they might damage the BSD bootstrap without even
|
||
asking or notifying you. In addition, the
|
||
<quote>dangerously dedicated</quote> disk's layout is
|
||
known to confuse many BIOSes, including those from AWARD
|
||
(e.g. as found in HP Netserver and Micronics systems as
|
||
well as many others) and Symbios/NCR (for the popular
|
||
53C8xx range of SCSI controllers). This is not a complete
|
||
list, there are more. Symptoms of this confusion include
|
||
the <errorname>read error</errorname> message printed by
|
||
the FreeBSD bootstrap when it cannot find itself, as well
|
||
as system lockups when booting.</para>
|
||
|
||
<para>Why have this mode at all then? It only saves a few kbytes
|
||
of disk space, and it can cause real problems for a new
|
||
installation. <quote>Dangerously dedicated</quote> mode's
|
||
origins lie in a desire to avoid one of the most common
|
||
problems plaguing new FreeBSD installers - matching the BIOS
|
||
<quote>geometry</quote> numbers for a disk to the disk
|
||
itself.</para>
|
||
|
||
<para><quote>Geometry</quote> is an outdated concept, but one
|
||
still at the heart of the PC's BIOS and its interaction with
|
||
disks. When the FreeBSD installer creates slices, it has to
|
||
record the location of these slices on the disk in a fashion
|
||
that corresponds with the way the BIOS expects to find them. If
|
||
it gets it wrong, you will not be able to boot.</para>
|
||
|
||
<para><quote>Dangerously dedicated</quote> mode tries to work
|
||
around this by making the problem simpler. In some cases, it
|
||
gets it right. But it is meant to be used as a last-ditch
|
||
alternative - there are better ways to solve the problem 99
|
||
times out of 100.</para>
|
||
|
||
<para>So, how do you avoid the need for <quote>DD</quote> mode
|
||
when you are installing? Start by making a note of the geometry
|
||
that your BIOS claims to be using for your disks. You can
|
||
arrange to have the kernel print this as it boots by specifying
|
||
<option>-v</option> at the <literal>boot:</literal> prompt, or
|
||
using <command>boot -v</command> in the loader. Just before the
|
||
installer starts, the kernel will print a list of BIOS
|
||
geometries. Do not panic - wait for the installer to start and
|
||
then use scrollback to read the numbers. Typically the BIOS
|
||
disk units will be in the same order that FreeBSD lists your
|
||
disks, first IDE, then SCSI.</para>
|
||
|
||
<para>When you are slicing up your disk, check that the disk
|
||
geometry displayed in the FDISK screen is correct (ie. it
|
||
matches the BIOS numbers); if it is wrong, use the
|
||
<keycap>g</keycap> key to fix it. You may have to do this if
|
||
there is absolutely nothing on the disk, or if the disk has been
|
||
moved from another system. Note that this is only an issue with
|
||
the disk that you are going to boot from; FreeBSD will sort
|
||
itself out just fine with any other disks you may have.</para>
|
||
|
||
<para>Once you have got the BIOS and FreeBSD agreeing about the
|
||
geometry of the disk, your problems are almost guaranteed to be
|
||
over, and with no need for <quote>DD</quote> mode at all. If,
|
||
however, you are still greeted with the dreaded <errorname>read
|
||
error</errorname> message when you try to boot, it is time to cross
|
||
your fingers and go for it - there is nothing left to
|
||
lose.</para>
|
||
|
||
<para>To return a <quote>dangerously dedicated</quote> disk
|
||
for normal PC use, there are basically two options. The first
|
||
is, you write enough NULL bytes over the MBR to make any
|
||
subsequent installation believe this to be a blank disk. You
|
||
can do this for example with</para>
|
||
|
||
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda0 count=15</userinput></screen>
|
||
|
||
<para>Alternatively, the undocumented DOS
|
||
<quote>feature</quote></para>
|
||
|
||
<screen><prompt>C:\></prompt> <userinput>fdisk /mbr</userinput></screen>
|
||
|
||
<para>will to install a new master boot record as well, thus
|
||
clobbering the BSD bootstrap.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="safe-softupdates">
|
||
<para>Which partitions can safely use Soft Updates? I have
|
||
heard that Soft Updates on <filename>/</filename> can cause
|
||
problems.</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Short answer: you can usually use Soft Updates safely
|
||
on all partitions.</para>
|
||
|
||
<para>Long answer: There used to be some concern over using
|
||
Soft Updates on the root partition. Soft Updates has two
|
||
characteristics that caused this. First, a Soft Updates
|
||
partition has a small chance of losing data during a
|
||
system crash. (The partition will not be corrupted; the
|
||
data will simply be lost.) Also, Soft Updates can cause
|
||
temporary space shortages.</para>
|
||
|
||
<para>When using Soft Updates, the kernel can take up to
|
||
thirty seconds to actually write changes to the physical
|
||
disk. If you delete a large file, the file still resides
|
||
on disk until the kernel actually performs the deletion.
|
||
This can cause a very simple race condition. Suppose you
|
||
delete one large file and immediately create another large
|
||
file. The first large file is not yet actually removed
|
||
from the physical disk, so the disk might not have enough
|
||
room for the second large file. You get an error that the
|
||
partition does not have enough space, although you know
|
||
perfectly well that you just released a large chunk of
|
||
space! When you try again mere seconds later, the file
|
||
creation works as you expect. This has left more than one
|
||
user scratching his head and doubting his sanity, the
|
||
FreeBSD filesystem, or both.</para>
|
||
|
||
<para>If a system should crash after the kernel accepts a
|
||
chunk of data for writing to disk, but before that data is
|
||
actually written out, data could be lost or corrupted.
|
||
This risk is extremely small, but generally manageable.
|
||
Use of IDE write caching greatly increases this risk; it
|
||
is strongly recommended that you disable IDE write caching
|
||
when using Soft Updates.</para>
|
||
|
||
<para>These issues affect all partitions using Soft Updates.
|
||
So, what does this mean for the root partition?</para>
|
||
|
||
<para>Vital information on the root partition changes very
|
||
rarely. Files such as <filename>/kernel</filename> and
|
||
the contents of <filename>/etc</filename> only change
|
||
during system maintenance, or when users change their
|
||
passwords. If the system crashed during the
|
||
thirty-second window after such a change is made, it is
|
||
possible that data could be lost. This risk is negligible
|
||
for most applications, but you should be aware that it
|
||
exists. If your system cannot tolerate this much risk,
|
||
do not use Soft Updates on the root filesystem!</para>
|
||
|
||
<para><filename>/</filename> is traditionally one of the
|
||
smallest partitions. By default, FreeBSD puts the
|
||
<filename>/tmp</filename> directory on
|
||
<filename>/</filename>. If you have a busy
|
||
<filename>/tmp</filename>, you might see intermittent
|
||
space problems. Symlinking <filename>/tmp</filename> to
|
||
<filename>/var/tmp</filename> will solve this
|
||
problem.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="inappropriate-ccd">
|
||
<para>What is inappropriate about my ccd?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The symptom of this is:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ccdconfig -C</userinput>
|
||
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format</screen>
|
||
|
||
<para>This usually happens when you are trying to concatenate
|
||
the <literal>c</literal> partitions, which default to type
|
||
<literal>unused</literal>. The ccd driver requires the
|
||
underlying partition type to be FS_BSDFFS. Edit the disklabel
|
||
of the disks you are trying to concatenate and change the types
|
||
of partitions to <literal>4.2BSD</literal>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ccd-disklabel">
|
||
<para>Why can I not edit the disklabel on my ccd?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The symptom of this is:</para>
|
||
|
||
<screen>&prompt.root; <userinput>disklabel ccd0</userinput>
|
||
(it prints something sensible here, so let us try to edit it)
|
||
&prompt.root; <userinput>disklabel -e ccd0</userinput>
|
||
(edit, save, quit)
|
||
disklabel: ioctl DIOCWDINFO: No disk label on disk;
|
||
use "disklabel -r" to install initial label</screen>
|
||
|
||
<para>This is because the disklabel returned by ccd is actually
|
||
a <quote>fake</quote> one that is not really on the disk.
|
||
You can solve this problem by writing it back explicitly,
|
||
as in:</para>
|
||
|
||
<screen>&prompt.root; <userinput>disklabel ccd0 > /tmp/disklabel.tmp</userinput>
|
||
&prompt.root; <userinput>disklabel -Rr ccd0 /tmp/disklabel.tmp</userinput>
|
||
&prompt.root; <userinput>disklabel -e ccd0</userinput>
|
||
(this will work now)</screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="mount-foreign-fs">
|
||
<para>Can I mount other foreign filesystems under FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>FreeBSD supports a variety of other
|
||
filesystems.</para>
|
||
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term>Digital UNIX</term>
|
||
|
||
<listitem>
|
||
<para>UFS CDROMs can be mounted directly on FreeBSD.
|
||
Mounting disk partitions from Digital UNIX and other
|
||
systems that support UFS may be more complex, depending
|
||
on the details of the disk partitioning for the operating
|
||
system in question.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>&linux;</term>
|
||
|
||
<listitem>
|
||
<para>FreeBSD supports <literal>ext2fs</literal>
|
||
partitions. See &man.mount.ext2fs.8; for more
|
||
information.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>&windowsnt;</term>
|
||
|
||
<listitem>
|
||
<para>FreeBSD includes a read-only NTFS driver. For
|
||
more information, see &man.mount.ntfs.8;.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>FAT</term>
|
||
|
||
<listitem>
|
||
<para>FreeBSD includes a read-write FAT driver. For
|
||
more information, see &man.mount.msdosfs.8;.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry>
|
||
<term>ReiserFS</term>
|
||
|
||
<listitem>
|
||
<para>FreeBSD includes a read-only ReiserFS driver. For
|
||
more information, see &man.mount.reiserfs.8;.</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
|
||
<para>FreeBSD also supports network filesystems such as NFS
|
||
(see &man.mount.nfs.8;), NetWare (see &man.mount.nwfs.8;),
|
||
and Microsoft-style SMB filesystems (see
|
||
&man.mount.smbfs.8;).
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="mount-dos">
|
||
<para>How do I mount a secondary DOS partition?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>The secondary DOS partitions are found after ALL the
|
||
primary partitions. For example, if you have an
|
||
<quote>E</quote> partition as the second DOS partition on
|
||
the second SCSI drive, you need to create the special files
|
||
for <quote>slice 5</quote> in <filename>/dev</filename>,
|
||
then mount <devicename>/dev/da1s5</devicename>:</para>
|
||
|
||
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
||
&prompt.root; <userinput>sh MAKEDEV da1s5</userinput>
|
||
&prompt.root; <userinput>mount -t msdos /dev/da1s5 /dos/e</userinput></screen>
|
||
|
||
<note>
|
||
<para>You can omit this step if you are running FreeBSD
|
||
5.0-RELEASE or newer with &man.devfs.5;
|
||
enabled.</para>
|
||
</note>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="crypto-filesystem">
|
||
<para>Is there a cryptographic filesystem for &os;?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>Yes. FreeBSD 5.0 includes &man.gbde.8;, and FreeBSD 6.0
|
||
added &man.geli.8;. For earlier releases, see the <filename
|
||
role="package">security/cfs</filename> port.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="nt-bootloader">
|
||
<para>How can I use the &windowsnt; loader to boot FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The general idea is that you copy the first sector of your
|
||
native root FreeBSD partition into a file in the DOS/&windowsnt;
|
||
partition. Assuming you name that file something like
|
||
<filename>c:\bootsect.bsd</filename> (inspired by
|
||
<filename>c:\bootsect.dos</filename>), you can then edit the
|
||
<filename>c:\boot.ini</filename> file to come up with something
|
||
like this:</para>
|
||
|
||
<programlisting>[boot loader]
|
||
timeout=30
|
||
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
|
||
[operating systems]
|
||
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
|
||
C:\BOOTSECT.BSD="FreeBSD"
|
||
C:\="DOS"</programlisting>
|
||
|
||
<para>If FreeBSD is installed on the same disk as the &windowsnt; boot
|
||
partition simply copy <filename>/boot/boot1</filename> to
|
||
<filename>C:\BOOTSECT.BSD</filename>. However, if FreeBSD is
|
||
installed on a different disk <filename>/boot/boot1</filename>
|
||
will not work, <filename>/boot/boot0</filename> is needed.</para>
|
||
|
||
<para><filename>/boot/boot0</filename> needs to be installed
|
||
using sysinstall by selecting the FreeBSD boot manager on
|
||
the screen which asks if you wish to use a boot
|
||
manager. This is because <filename>/boot/boot0</filename>
|
||
has the partition table area filled with NULL characters
|
||
but sysinstall copies the partition table before copying
|
||
<filename>/boot/boot0</filename> to the MBR.</para>
|
||
|
||
<warning>
|
||
<para><emphasis>Do not simply copy <filename>/boot/boot0</filename>
|
||
instead of <filename>/boot/boot1</filename>; you will
|
||
overwrite your partition table and render your computer
|
||
un-bootable!</emphasis></para>
|
||
</warning>
|
||
|
||
<para>When the FreeBSD boot manager runs it records the last
|
||
OS booted by setting the active flag on the partition table
|
||
entry for that OS and then writes the whole 512-bytes of itself
|
||
back to the MBR so if you just copy
|
||
<filename>/boot/boot0</filename> to
|
||
<filename>C:\BOOTSECT.BSD</filename> then it writes an empty
|
||
partition table, with the active flag set on one entry, to the
|
||
MBR.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="lilo-bootloader">
|
||
<para>How do I boot FreeBSD and &linux; from LILO?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you have FreeBSD and &linux; on the same disk, just follow
|
||
LILO's installation instructions for booting a non-&linux;
|
||
operating system. Very briefly, these are:</para>
|
||
|
||
<para>Boot &linux;, and add the following lines to
|
||
<filename>/etc/lilo.conf</filename>:</para>
|
||
|
||
<programlisting>other=/dev/hda2
|
||
table=/dev/hda
|
||
label=FreeBSD</programlisting>
|
||
|
||
<para>(the above assumes that your FreeBSD slice is known to
|
||
&linux; as <devicename>/dev/hda2</devicename>; tailor to
|
||
suit your setup). Then, run <command>lilo</command> as
|
||
<username>root</username> and you should be done.</para>
|
||
|
||
<para>If FreeBSD resides on another disk, you need to add
|
||
<literal>loader=/boot/chain.b</literal> to the LILO entry.
|
||
For example:</para>
|
||
|
||
<programlisting>other=/dev/dab4
|
||
table=/dev/dab
|
||
loader=/boot/chain.b
|
||
label=FreeBSD</programlisting>
|
||
|
||
<para>In some cases you may need to specify the BIOS drive number
|
||
to the FreeBSD boot loader to successfully boot off the second
|
||
disk. For example, if your FreeBSD SCSI disk is probed by BIOS
|
||
as BIOS disk 1, at the FreeBSD boot loader prompt you need to
|
||
specify:</para>
|
||
|
||
<screen>Boot: <userinput>1:da(0,a)/kernel</userinput></screen>
|
||
|
||
<para>You can configure
|
||
&man.boot.8;
|
||
to automatically do this for you at boot time.</para>
|
||
|
||
<para>The <ulink
|
||
url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">
|
||
&linux;+FreeBSD mini-HOWTO</ulink> is a good reference for
|
||
FreeBSD and &linux; interoperability issues.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="grub-loader">
|
||
<para>How do I boot &os; and &linux; using GRUB</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Booting &os; using GRUB is very simple. Just
|
||
add the following to your configuration file
|
||
<filename>/boot/grub/grub.conf</filename>.</para>
|
||
|
||
<programlisting>title FreeBSD 6.1
|
||
root (hd0,a)
|
||
kernel /boot/loader
|
||
</programlisting>
|
||
|
||
<para>Where <literal>hd0,a</literal> points to your root partition
|
||
on the first disk. If you need to specify which slice number
|
||
should be used, use something like this <literal>(hd0,2,a)</literal>.
|
||
By default, if the slice number is omitted, GRUB searches the
|
||
first slice which has <literal>'a'</literal> partition.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="booteasy-loader">
|
||
<para>How do I boot FreeBSD and &linux; using BootEasy?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Install LILO at the start of your &linux; boot partition
|
||
instead of in the Master Boot Record. You can then boot LILO
|
||
from BootEasy.</para>
|
||
|
||
<para>If you are running &windows; 95 and &linux; this is recommended
|
||
anyway, to make it simpler to get &linux; booting again if you
|
||
should need to reinstall &windows; 95 (which is a Jealous
|
||
Operating System, and will bear no other Operating Systems in
|
||
the Master Boot Record).</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="changing-bootprompt">
|
||
<para>How do I change the boot prompt from <literal>???</literal> to
|
||
something more meaningful?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You can not do that with the standard boot manager without
|
||
rewriting it. There are a number of other boot managers
|
||
in the <filename>sysutils</filename> ports category that
|
||
provide this functionality.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="removable-drives">
|
||
<para>I have a new removable drive, how do I use it?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>Whether it is a removable drive like a &iomegazip; or an EZ drive
|
||
(or even a floppy, if you want to use it that way), or a new
|
||
hard disk, once it is installed and recognized by the system,
|
||
and you have your cartridge/floppy/whatever slotted in, things
|
||
are pretty much the same for all devices.</para>
|
||
|
||
<para>(this section is based on <ulink
|
||
url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">
|
||
Mark Mayo's ZIP FAQ</ulink>)</para>
|
||
|
||
<para>If it is a ZIP drive or a floppy, you have already got a DOS
|
||
filesystem on it, you can use a command like this:</para>
|
||
|
||
<screen>&prompt.root; <userinput>mount -t msdos /dev/fd0c /floppy</userinput></screen>
|
||
|
||
<para>if it is a floppy, or this:</para>
|
||
|
||
<screen>&prompt.root; <userinput>mount -t msdos /dev/da2s4 /zip</userinput></screen>
|
||
|
||
<para>for a ZIP disk with the factory configuration.</para>
|
||
|
||
<para>For other disks, see how they are laid out using
|
||
&man.fdisk.8; or
|
||
&man.sysinstall.8;.</para>
|
||
|
||
<para>The rest of the examples will be for a ZIP drive on da2,
|
||
the third SCSI disk.</para>
|
||
|
||
<para>Unless it is a floppy, or a removable you plan on sharing
|
||
with other people, it is probably a better idea to stick a BSD
|
||
filesystem on it. You will get long filename support, at least a
|
||
2X improvement in performance, and a lot more stability. First,
|
||
you need to redo the DOS-level partitions/filesystems. You can
|
||
either use &man.fdisk.8; or
|
||
<filename>/stand/sysinstall</filename>, or for a small drive
|
||
that you do not want to bother with multiple operating system
|
||
support on, just blow away the whole FAT partition table
|
||
(slices) and just use the BSD partitioning:</para>
|
||
|
||
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda2 count=2</userinput>
|
||
&prompt.root; <userinput>disklabel -Brw da2 auto</userinput></screen>
|
||
|
||
<para>You can use disklabel or
|
||
<filename>/stand/sysinstall</filename> to create multiple BSD
|
||
partitions. You will certainly want to do this if you are adding
|
||
swap space on a fixed disk, but it is probably irrelevant on a
|
||
removable drive like a ZIP.</para>
|
||
|
||
<para>Finally, create a new filesystem, this one is on our ZIP
|
||
drive using the whole disk:</para>
|
||
|
||
<screen>&prompt.root; <userinput>newfs /dev/rda2c</userinput></screen>
|
||
|
||
<para>and mount it:</para>
|
||
|
||
<screen>&prompt.root; <userinput>mount /dev/da2c /zip</userinput></screen>
|
||
|
||
<para>and it is probably a good idea to add a line like this
|
||
to <filename>/etc/fstab</filename> (see &man.fstab.5;) so
|
||
you can just type <command>mount /zip</command> in the
|
||
future:</para>
|
||
|
||
<programlisting>/dev/da2c /zip ffs rw,noauto 0 0</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="mount-cd-superblock">
|
||
<para>Why do I get <errorname>Incorrect super block</errorname> when
|
||
mounting a CDROM?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You have to tell &man.mount.8; the type of the device
|
||
that you want to mount. This is described in the <ulink
|
||
url="&url.books.handbook;/creating-cds.html"> Handbook section on
|
||
optical media</ulink>, specifically the section <ulink
|
||
url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Using Data
|
||
CDs</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="cdrom-not-configured">
|
||
<para>Why do I get <errorname>Device not
|
||
configured</errorname> when mounting a CDROM?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>This generally means that there is no CDROM in the
|
||
CDROM drive, or the drive is not visible on the
|
||
bus. Please see the <ulink
|
||
url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Using Data
|
||
CDs</ulink> section of the Handbook for a detailed
|
||
discussion of this issue.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="cdrom-unicode-filenames">
|
||
<para>Why do all non-English characters in filenames show up as
|
||
<quote>?</quote> on my CDs when mounted in FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Your CDROM probably uses the <quote>Joliet</quote>
|
||
extension for storing information about files and
|
||
directories. This is discussed in the Handbook chapter on
|
||
<ulink url="&url.books.handbook;/creating-cds.html">creating and
|
||
using CDROMs</ulink>, specifically the section on <ulink
|
||
url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">Using Data
|
||
CDROMs</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="burncd-isofs">
|
||
<para>I burned a CD under FreeBSD and now I can not read it
|
||
under any other operating system. Why?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You most likely burned a raw file to your CD, rather
|
||
than creating an ISO 9660 filesystem. Take a look at the
|
||
<ulink url="&url.books.handbook;/creating-cds.html">Handbook
|
||
chapter on creating CDROMs</ulink>, particularly the
|
||
section on <ulink
|
||
url="&url.books.handbook;/creating-cds.html#RAWDATA-CD">burning raw
|
||
data CDs</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="copy-cd">
|
||
<para>How can I create an image of a data CD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>This is discussed in the Handbook section on <ulink
|
||
url="&url.books.handbook;/creating-cds.html#IMAGING-CD">duplicating
|
||
data CDs</ulink>. For more on working with CDROMs, see the
|
||
<ulink url="&url.books.handbook;/creating-cds.html">Creating CDs
|
||
Section</ulink> in the Storage chapter in the
|
||
Handbook.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="mount-audio-CD">
|
||
<para>Why can I not <command>mount</command> an audio
|
||
CD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you try to mount an audio CD, you will get an error
|
||
like <errorname>cd9660: /dev/acd0c: Invalid
|
||
argument</errorname>. This is because
|
||
<command>mount</command> only works on filesystems. Audio
|
||
CDs do not have filesystems; they just have data. You
|
||
need a program that reads audio CDs, such as the
|
||
<filename role="package">audio/xmcd</filename> port.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="multi-session-CD">
|
||
<para>How do I <command>mount</command> a multi-session CD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>By default, &man.mount.8; will attempt to mount the
|
||
last data track (session) of a CD. If you would like to
|
||
load an earlier session, you must use the
|
||
<option>-s</option> command line argument. Please see
|
||
&man.mount.cd9660.8; for specific examples.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="user-floppymount">
|
||
<para>How do I let ordinary users mount floppies, CDROMs and
|
||
other removable media?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ordinary users can be permitted to mount devices. Here is
|
||
how:</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<para>As <username>root</username> set the sysctl variable
|
||
<varname>vfs.usermount</varname> to
|
||
<literal>1</literal>.</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl -w vfs.usermount=1</userinput></screen>
|
||
</step>
|
||
|
||
<step>
|
||
<para>As <username>root</username> assign the appropriate
|
||
permissions to the block device associated with the
|
||
removable media.</para>
|
||
|
||
<para>For example, to allow users to mount the first floppy
|
||
drive, use:</para>
|
||
|
||
<screen>&prompt.root; <userinput>chmod 666 /dev/fd0</userinput></screen>
|
||
|
||
<para>To allow users in the group
|
||
<groupname>operator</groupname> to mount the CDROM drive,
|
||
use:</para>
|
||
|
||
<screen>&prompt.root; <userinput>chgrp operator /dev/acd0c</userinput>
|
||
&prompt.root; <userinput>chmod 640 /dev/acd0c</userinput></screen>
|
||
</step>
|
||
|
||
<step>
|
||
<para>If you are running &os; 5.X or later, you will need to alter
|
||
<filename>/etc/devfs.conf</filename> to make these changes
|
||
permanent across reboots.</para>
|
||
|
||
<para>As <username>root</username>, add the necessary lines to
|
||
<filename>/etc/devfs.conf</filename>. For example, to allow
|
||
users to mount the first floppy drive add:</para>
|
||
|
||
<programlisting># Allow all users to mount the floppy disk.
|
||
own /dev/fd0 root:operator
|
||
perm /dev/fd0 0666</programlisting>
|
||
|
||
<para>To allow users in the group <groupname>operator</groupname>
|
||
to mount the CD-ROM drive add:</para>
|
||
|
||
<programlisting># Allow members of the group operator to mount CD-ROMs.
|
||
own /dev/acd0 root:operator
|
||
perm /dev/acd0 0660</programlisting>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Finally, add the line
|
||
<literal><varname>vfs.usermount</varname>=1</literal>
|
||
to the file <filename>/etc/sysctl.conf</filename> so
|
||
that it is reset at system boot time.</para>
|
||
</step>
|
||
</procedure>
|
||
|
||
<para>All users can now mount the floppy
|
||
<devicename>/dev/fd0</devicename> onto a directory that they
|
||
own:</para>
|
||
|
||
<screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
|
||
&prompt.user; <userinput>mount -t msdos /dev/fd0 ~/my-mount-point</userinput></screen>
|
||
|
||
<para>Users in group <groupname>operator</groupname> can now
|
||
mount the CDROM <devicename>/dev/acd0c</devicename> onto a
|
||
directory that they own:</para>
|
||
|
||
<screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
|
||
&prompt.user; <userinput>mount -t cd9660 /dev/acd0c ~/my-mount-point</userinput></screen>
|
||
|
||
<para>Unmounting the device is simple:</para>
|
||
|
||
<screen>&prompt.user; <userinput>umount ~/my-mount-point</userinput></screen>
|
||
|
||
<para>Enabling <varname>vfs.usermount</varname>, however,
|
||
has negative security implications. A better way to
|
||
access &ms-dos; formatted media is to use the
|
||
<filename role="package">emulators/mtools</filename>
|
||
package in the ports collection.</para>
|
||
|
||
<note>
|
||
<para>The device name used in the previous examples must be
|
||
changed according to your configuration.</para>
|
||
</note>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="du-vs-df">
|
||
<para>The <command>du</command> and <command>df</command>
|
||
commands show different amounts of disk space available.
|
||
What is going on?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You need to understand what <command>du</command> and
|
||
<command>df</command> really do. <command>du</command>
|
||
goes through the directory tree, measures how large each
|
||
file is, and presents the totals. <command>df</command>
|
||
just asks the filesystem how much space it has left. They
|
||
seem to be the same thing, but a file without a directory
|
||
entry will affect <command>df</command> but not
|
||
<command>du</command>.</para>
|
||
|
||
<para>When a program is using a file, and you delete the
|
||
file, the file is not really removed from the filesystem
|
||
until the program stops using it. The file is immediately
|
||
deleted from the directory listing, however. You can see
|
||
this easily enough with a program such as
|
||
<command>more</command>. Assume you have a file large
|
||
enough that its presence affects the output of
|
||
<command>du</command> and <command>df</command>. (Since
|
||
disks can be so large today, this might be a
|
||
<emphasis>very</emphasis> large file!) If you delete this
|
||
file while using <command>more</command> on it,
|
||
<command>more</command> does not immediately choke and
|
||
complain that it cannot view the file. The entry is
|
||
simply removed from the directory so no other program or
|
||
user can access it. <command>du</command> shows that it
|
||
is gone — it has walked the directory tree and the file
|
||
is not listed. <command>df</command> shows that it is
|
||
still there, as the filesystem knows that
|
||
<command>more</command> is still using that space. Once
|
||
you end the <command>more</command> session,
|
||
<command>du</command> and <command>df</command> will
|
||
agree.</para>
|
||
|
||
<para>Note that Soft Updates can delay the freeing of disk
|
||
space; you might need to wait up to 30 seconds for the
|
||
change to be visible!</para>
|
||
|
||
<para>This situation is common on web servers. Many people
|
||
set up a FreeBSD web server and forget to rotate the log
|
||
files. The access log fills up <filename>/var</filename>.
|
||
The new administrator deletes the file, but the system
|
||
still complains that the partition is full. Stopping and
|
||
restarting the web server program would free the file,
|
||
allowing the system to release the disk space. To prevent
|
||
this from happening, set up &man.newsyslog.8;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="add-swap-space">
|
||
<para>How can I add more swap space?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>In the <ulink
|
||
url="&url.books.handbook;/config-tuning.html">Configuration and
|
||
Tuning</ulink> section of the Handbook, you will find a
|
||
<ulink
|
||
url="&url.books.handbook;/adding-swap-space.html">section</ulink>
|
||
describing how to do this.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="manufacturer-disk-size">
|
||
<para>Why does &os; see my disk as smaller than the
|
||
manufacturer says it is?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Disk manufacturers calculate gigabytes as a billion bytes
|
||
each, whereas &os; calculates them as 1,073,741,824 bytes
|
||
each. This explains why, for example, &os;'s boot messages
|
||
will report a disk that supposedly has 80GB as holding
|
||
76319MB.</para>
|
||
<para>Also note that &os; will (by default)
|
||
<link linkend="disk-more-than-full">reserve</link> 8% of the disk
|
||
space.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="disk-more-than-full">
|
||
<para>How is it possible for a partition to be more than 100%
|
||
full?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>A portion of each UFS partition (8%, by default) is
|
||
reserved for use by the operating system and the
|
||
<username>root</username> user.
|
||
&man.df.1; does not count that space when
|
||
calculating the <literal>Capacity</literal> column, so it can
|
||
exceed 100%. Also, you will notice that the
|
||
<literal>Blocks</literal> column is always greater than the
|
||
sum of the <literal>Used</literal> and
|
||
<literal>Avail</literal> columns, usually by a factor of
|
||
8%.</para>
|
||
|
||
<para>For more details, look up the <option>-m</option> option
|
||
in &man.tunefs.8;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="admin">
|
||
<title>Διαχείριση Συστήματος</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="startup-config-files">
|
||
<para>Where are the system start-up configuration files?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The primary configuration file is
|
||
<filename>/etc/defaults/rc.conf</filename> (see
|
||
&man.rc.conf.5;) System startup scripts such as
|
||
<filename>/etc/rc</filename> and
|
||
<filename>/etc/rc.d</filename> (see &man.rc.8;) just
|
||
include this file. <emphasis>Do not edit this
|
||
file!</emphasis> Instead, if there is any entry in
|
||
<filename>/etc/defaults/rc.conf</filename> that you want
|
||
to change, you should copy the line into
|
||
<filename>/etc/rc.conf</filename> and change it
|
||
there.</para>
|
||
|
||
<para>For example, if you wish to start named, the included
|
||
DNS server, all you need to do is:</para>
|
||
|
||
<screen>&prompt.root; <userinput>echo named_enable="YES" >> /etc/rc.conf</userinput></screen>
|
||
|
||
<para>To start up local services, place shell scripts in the
|
||
<filename>/usr/local/etc/rc.d</filename> directory. These
|
||
shell scripts should be set executable, and end with a
|
||
.sh.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="adding-users">
|
||
<para>How do I add a user easily?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Use the &man.adduser.8; command, or the &man.pw.8;
|
||
command for more complicated situations.</para>
|
||
|
||
<para>To remove the user, use the &man.rmuser.8; command or,
|
||
if necessary, &man.pw.8;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="root-not-found-cron-errors">
|
||
<para>Why do I keep getting messages like <errorname>root: not
|
||
found</errorname> after editing my crontab file?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>This is normally caused by editing the system crontab
|
||
(<filename>/etc/crontab</filename>) and then using
|
||
&man.crontab.1; to install it:</para>
|
||
|
||
<screen>&prompt.root; <userinput>crontab /etc/crontab</userinput></screen>
|
||
|
||
<para>This is not the correct way to do things. The system
|
||
crontab has a different format to the per-user crontabs
|
||
which &man.crontab.1; updates (the &man.crontab.5; manual
|
||
page explains the differences in more detail).</para>
|
||
|
||
<para>If this is what you did, the extra crontab is simply a
|
||
copy of <filename>/etc/crontab</filename> in the wrong
|
||
format it. Delete it with the command:</para>
|
||
|
||
<screen>&prompt.root; <userinput>crontab -r</userinput></screen>
|
||
|
||
<para>Next time, when you edit
|
||
<filename>/etc/crontab</filename>, you should not do
|
||
anything to inform &man.cron.8; of the changes, since it
|
||
will notice them automatically.</para>
|
||
|
||
<para>If you want something to be run once per day, week, or
|
||
month, it is probably better to add shell scripts
|
||
<filename>/usr/local/etc/periodic</filename>, and let the
|
||
&man.periodic.8; command run from the system cron schedule
|
||
it with the other periodic system tasks.</para>
|
||
|
||
<para>The actual reason for the error is that the system
|
||
crontab has an extra field, specifying which user to run the
|
||
command as. In the default system crontab provided with
|
||
FreeBSD, this is <username>root</username> for all entries.
|
||
When this crontab is used as the <username>root</username>
|
||
user's crontab (which is <emphasis>not</emphasis> the
|
||
same as the system crontab), &man.cron.8; assumes the string
|
||
<literal>root</literal> is the first word of the command to
|
||
execute, but no such command exists.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="su-wheel-group">
|
||
<para>Why do I get the error, <errorname>you are not in the correct
|
||
group to su root</errorname> when I try to su to
|
||
<username>root</username>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>This is a security feature. In order to su to
|
||
<username>root</username> (or any other account with superuser
|
||
privileges), you must be in the <groupname>wheel</groupname>
|
||
group. If this feature were not there, anybody with an account
|
||
on a system who also found out <username>root</username>'s
|
||
password would be able to gain superuser level access to the
|
||
system. With this feature, this is not strictly true;
|
||
&man.su.1; will prevent them from even trying to enter the
|
||
password if they are not in <groupname>wheel</groupname>.</para>
|
||
|
||
<para>To allow someone to su to <username>root</username>, simply
|
||
put them in the <groupname>wheel</groupname> group.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="rcconf-readonly">
|
||
<para>I made a mistake in <filename>rc.conf</filename>,
|
||
or another startup file, and
|
||
now I cannot edit it because the filesystem is read-only.
|
||
What should I do?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>When you get the prompt to enter the shell
|
||
pathname, simply press <literal>ENTER</literal>, and run
|
||
<command>mount /</command> to re-mount the root filesystem in
|
||
read/write mode. You may also need to run <command>mount -a -t
|
||
ufs</command> to mount the filesystem where your favorite
|
||
editor is defined. If your favorite editor is on a network
|
||
filesystem, you will need to either configure the network
|
||
manually before you can mount network filesystems, or use an
|
||
editor which resides on a local filesystem, such as
|
||
&man.ed.1;.</para>
|
||
|
||
<para>If you intend to use a full screen editor such
|
||
as &man.vi.1; or &man.emacs.1;, you may also need to
|
||
run <command>export TERM=cons25</command> so that these
|
||
editors can load the correct data from the &man.termcap.5;
|
||
database.</para>
|
||
|
||
<para>Once you have performed these steps, you can edit
|
||
<filename>/etc/rc.conf</filename> as you usually would
|
||
to fix the syntax error. The error message displayed
|
||
immediately after the kernel boot messages should tell you
|
||
the number of the line in the file which is at fault.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="printer-setup">
|
||
<para>Why am I having trouble setting up my printer?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Please have a look at the Handbook entry on printing. It
|
||
should cover most of your problem. See the <ulink
|
||
url="&url.books.handbook;/printing.html">
|
||
Handbook entry on printing</ulink>.</para>
|
||
|
||
<para>Some printers require a host-based driver to do any
|
||
kind of printing. These so-called
|
||
<quote>WinPrinters</quote> are not natively supported by
|
||
FreeBSD. If your printer does not work in DOS or &windowsnt;
|
||
4.0, it is probably a WinPrinter. Your only hope of
|
||
getting one of these to work is to check if the <filename
|
||
role="package">print/pnm2ppa</filename> port supports
|
||
it.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="keyboard-mappings">
|
||
<para>How can I correct the keyboard mappings for my system?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Please see the Handbook section on <ulink
|
||
url="&url.books.handbook;/using-localization.html">using
|
||
localization</ulink>, specifically the section on <ulink
|
||
url="&url.books.handbook;/using-localization.html#SETTING-CONSOLE">console
|
||
setup</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="pnp-resources">
|
||
<para>Why do I get messages like: <errorname>unknown: <PNP0303>
|
||
can't assign resources</errorname> on boot?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The following is an excerpt from a post to the
|
||
freebsd-current mailing list.</para>
|
||
|
||
<blockquote>
|
||
<attribution>&a.wollman;, 24 April 2001</attribution>
|
||
|
||
<para>The <quote>can't assign resources</quote> messages
|
||
indicate that the devices are legacy ISA devices for which a
|
||
non-PnP-aware driver is compiled into the kernel. These
|
||
include devices such as keyboard controllers, the
|
||
programmable interrupt controller chip, and several other
|
||
bits of standard infrastructure. The resources cannot be
|
||
assigned because there is already a driver using those
|
||
addresses.</para>
|
||
</blockquote>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="user-quotas">
|
||
<para>Why can I not get user quotas to work properly?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<!-- XXX
|
||
This may be the worst answer in the entire document.
|
||
-->
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>It is possible that your kernel is not configured to use
|
||
quotas. If this is the case, you will need to add the following
|
||
line to your kernel configuration file and recompile:</para>
|
||
<programlisting>options QUOTA</programlisting>
|
||
|
||
<para>Please read the <ulink url="&url.books.handbook;/quotas.html">Handbook
|
||
entry on quotas</ulink> for full details.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Do not turn on quotas on <filename>/</filename>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Put the quota file on the filesystem that the quotas
|
||
are to be enforced on, i.e.:</para>
|
||
|
||
<informaltable frame="none" pgwide="1">
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>Filesystem</entry>
|
||
<entry>Quota file</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry><filename>/usr</filename></entry>
|
||
<entry><filename>/usr/admin/quotas</filename></entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry><filename>/home</filename></entry>
|
||
<entry><filename>/home/admin/quotas</filename></entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>…</entry>
|
||
<entry>…</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</listitem>
|
||
</orderedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="sysv-ipc">
|
||
<para>Does FreeBSD support System V IPC primitives?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes, FreeBSD supports System V-style IPC, including
|
||
shared memory, messages and semaphores, in the GENERIC
|
||
kernel. In a custom kernel, enable this support by adding
|
||
the following lines to your kernel config.</para>
|
||
|
||
<programlisting>options SYSVSHM # enable shared memory
|
||
options SYSVSEM # enable for semaphores
|
||
options SYSVMSG # enable for messaging</programlisting>
|
||
|
||
<para>Recompile and install your kernel.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="sendmail-alternative">
|
||
<para>What other mail-server software can I use instead of
|
||
Sendmail?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para><ulink url="http://www.sendmail.org/">Sendmail</ulink> is
|
||
the default mail-server software for FreeBSD, but you can
|
||
easily replace it with one of the other MTA (for instance,
|
||
an MTA installed from the ports).</para>
|
||
|
||
<para>There are various alternative MTAs in the ports tree
|
||
already, with <filename
|
||
role="package">mail/exim</filename>, <filename
|
||
role="package">mail/postfix</filename>, <filename
|
||
role="package">mail/qmail</filename>, and <filename
|
||
role="package">mail/zmailer</filename> being some of the
|
||
most popular choices.</para>
|
||
|
||
<para>Diversity is nice, and the fact that you have many
|
||
different mail-servers to chose from is considered a
|
||
good thing; therefore try to avoid
|
||
asking questions like <quote>Is Sendmail better than
|
||
Qmail?</quote> in the mailing lists. If you do feel like
|
||
asking, first check the mailing list archives. The
|
||
advantages and disadvantages of each and every one of the
|
||
available MTAs have already been discussed a few
|
||
times.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="forgot-root-pw">
|
||
<para>I have forgotten the <username>root</username> password! What
|
||
do I do?</para>
|
||
</question><answer>
|
||
|
||
<para>Do not panic! Restart the system, type
|
||
<userinput>boot -s</userinput> at the Boot: prompt to
|
||
enter Single User mode. At the question about the shell to
|
||
use, hit ENTER. You will be dropped to a &prompt.root;
|
||
prompt. Enter <command>mount -u /</command> to remount
|
||
your root filesystem read/write, then run <command>mount
|
||
-a</command> to remount all the filesystems. Run
|
||
<command>passwd root</command> to change the
|
||
<username>root</username> password then run &man.exit.1;
|
||
to continue booting.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="CAD-reboot">
|
||
<para>How do I keep <keycombo
|
||
action="simul"><keycap>Control</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>
|
||
from rebooting the system?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you are using syscons (the default console driver)
|
||
build and install a new kernel with the
|
||
line:</para>
|
||
|
||
<programlisting>options SC_DISABLE_REBOOT</programlisting>
|
||
|
||
<para>in the configuration file. If you use the PCVT console
|
||
driver, use the following kernel configuration line
|
||
instead.</para>
|
||
|
||
<para>This can also be done by setting the following sysctl
|
||
which does not require a reboot or kernel recompile:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl hw.syscons.kbd_reboot=0</userinput></screen>
|
||
|
||
<programlisting>options PCVT_CTRL_ALT_DEL</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="dos-to-unix-txt">
|
||
<para>How do I reformat DOS text files to &unix; ones?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>Use this perl command:</para>
|
||
|
||
<screen>&prompt.user; <userinput>perl -i.bak -npe 's/\r\n/\n/g' file ...</userinput></screen>
|
||
|
||
<para>file is the file(s) to process. The modification is done
|
||
in-place, with the original file stored with a .bak
|
||
extension.</para>
|
||
|
||
<para>Alternatively you can use the
|
||
&man.tr.1;
|
||
command:</para>
|
||
|
||
<screen>&prompt.user; <userinput>tr -d '\r' < <replaceable>dos-text-file</replaceable> > <replaceable>unix-file</replaceable></userinput></screen>
|
||
|
||
<para><replaceable>dos-text-file</replaceable> is the file
|
||
containing DOS text while <replaceable>unix-file</replaceable>
|
||
will contain the converted output. This can be quite a bit
|
||
faster than using perl.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="kill-by-name">
|
||
<para>How do I kill processes by name?</para>
|
||
</question><answer>
|
||
|
||
<para>Use &man.killall.1;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="root-acl">
|
||
<para>Why is su bugging me about not being in
|
||
<username>root</username>'s ACL?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>The error comes from the Kerberos distributed
|
||
authentication system. The problem is not fatal but annoying.
|
||
You can either run su with the -K option, or uninstall
|
||
Kerberos as described in the next question.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="uninstall-kerberos">
|
||
<para>How do I uninstall Kerberos?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>To remove Kerberos from the system, reinstall the bin
|
||
distribution for the release you are running. If you have
|
||
the CDROM, you can mount the cd (we will assume on /cdrom)
|
||
and run</para>
|
||
|
||
<screen>&prompt.root; <userinput>cd /cdrom/bin</userinput>
|
||
&prompt.root; <userinput>./install.sh</userinput></screen>
|
||
|
||
<para>Alternately, you can remove all
|
||
<makevar>MAKE_KERBEROS</makevar> options from
|
||
<filename>/etc/make.conf</filename> and rebuild
|
||
world.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="where-is-makedev">
|
||
<para>What happened to
|
||
<filename>/dev/MAKEDEV</filename>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>FreeBSD 5.X and beyond use the &man.devfs.8; device-on-demand
|
||
system. Device drivers automatically create new device
|
||
nodes as they are needed, obsoleting
|
||
<filename>/dev/MAKEDEV</filename>.</para>
|
||
|
||
<para>If you are running FreeBSD 4.X or earlier and
|
||
<filename>/dev/MAKEDEV</filename> is missing, then you
|
||
really do have a problem. Grab a copy from the system
|
||
source code, probably in
|
||
<filename>/usr/src/etc/MAKEDEV</filename>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="add-pty">
|
||
<para>How do I add pseudoterminals to the system?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>If you have lots of telnet, ssh, X, or screen users,
|
||
you will probably run out of pseudoterminals. Here is how to
|
||
add more:</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<para>Build and install a new kernel with the line</para>
|
||
|
||
<programlisting>pseudo-device pty 256</programlisting>
|
||
|
||
<para>in the configuration file.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Run the commands</para>
|
||
|
||
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
||
&prompt.root; <userinput>sh MAKEDEV pty{1,2,3,4,5,6,7}</userinput></screen>
|
||
|
||
<para>to make 256 device nodes for the new terminals.</para>
|
||
|
||
</step>
|
||
|
||
<step>
|
||
<para>Edit <filename>/etc/ttys</filename> and add lines
|
||
for each of the 256 terminals. They should match the form
|
||
of the existing entries, i.e. they look like</para>
|
||
|
||
<programlisting>ttyqc none network</programlisting>
|
||
|
||
<para>The order of the letter designations is
|
||
<literal>tty[pqrsPQRS][0-9a-v]</literal>, using a
|
||
regular expression. </para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Reboot the system with the new kernel and you are
|
||
ready to go.</para>
|
||
</step>
|
||
</procedure>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="create-snd0">
|
||
<para>Why can I not create the snd0 device?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>There is no <devicename>snd</devicename> device. The name
|
||
is used as a shorthand for the various devices that make up the
|
||
FreeBSD sound driver, such as <devicename>mixer</devicename>,
|
||
<devicename>sequencer</devicename>, and
|
||
<devicename>dsp</devicename>.</para>
|
||
|
||
<para>To create these devices you should</para>
|
||
|
||
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
||
&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
|
||
|
||
<note>
|
||
<para>You can omit this step if you are running FreeBSD
|
||
5.0-RELEASE or newer with &man.devfs.5;
|
||
enabled.</para>
|
||
</note>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="reread-rc">
|
||
<para>How do I re-read <filename>/etc/rc.conf</filename> and
|
||
re-start <filename>/etc/rc</filename> without a
|
||
reboot?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>Go into single user mode and then back to multi user
|
||
mode.</para>
|
||
|
||
<para>On the console do:</para>
|
||
|
||
<screen>&prompt.root; <userinput>shutdown now</userinput>
|
||
(Note: without -r or -h)
|
||
|
||
&prompt.root; <userinput>return</userinput>
|
||
&prompt.root; <userinput>exit</userinput></screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
|
||
<qandaentry>
|
||
<question id="release-candidate">
|
||
<para>I tried to update my system to the latest -STABLE, but
|
||
got -BETAx, -RC or -PRERELEASE! What is going on?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Short answer: it is just a name. RC stands for
|
||
<quote>Release Candidate</quote>. It signifies that a
|
||
release is imminent. In FreeBSD, -PRERELEASE is typically
|
||
synonymous with the code freeze before a release. (For
|
||
some releases, the -BETA label was used in the same way as
|
||
-PRERELEASE.)</para>
|
||
|
||
<para>Long answer: FreeBSD derives its releases from one of
|
||
two places. Major, dot-zero, releases, such as
|
||
4.0-RELEASE and 5.0-RELEASE, are branched from the head of
|
||
the development stream, commonly referred to as <link
|
||
linkend="current">-CURRENT</link>. Minor releases, such
|
||
as 4.1-RELEASE or 5.2-RELEASE, have been snapshots of the
|
||
active <link linkend="stable">-STABLE</link> branch.
|
||
Starting with 4.3-RELEASE, each release also now has its
|
||
own branch which can be tracked by people requiring an
|
||
extremely conservative rate of development (typically only
|
||
security advisories).</para>
|
||
|
||
<para>When a release is about to be made, the branch from
|
||
which it will be derived from has to undergo a certain
|
||
process. Part of this process is a code freeze. When a
|
||
code freeze is initiated, the name of the branch is
|
||
changed to reflect that it is about to become a release.
|
||
For example, if the branch used to be called 4.5-STABLE,
|
||
its name will be changed to 4.6-PRERELEASE to signify the
|
||
code freeze and signify that extra pre-release testing
|
||
should be happening. Bug fixes can still be committed to
|
||
be part of the release. When the source code is in shape
|
||
for the release the name will be changed to 4.6-RC to
|
||
signify that a release is about to be made from it. Once
|
||
in the RC stage, only the most critical bugs found can be
|
||
fixed. Once the release (4.6-RELEASE in this example) and
|
||
release branch have been made, the branch will be renamed
|
||
to 4.6-STABLE.</para>
|
||
|
||
<para>For more information on version numbers and the
|
||
various CVS branches, refer to the
|
||
<ulink url="&url.articles.releng;/article.html">Release
|
||
Engineering</ulink> article.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="kernel-chflag-failure">
|
||
<para>I tried to install a new kernel, and the chflags
|
||
failed. How do I get around this?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Short answer: You are probably at security level
|
||
greater than 0. Reboot directly to single user mode to
|
||
install the kernel.</para>
|
||
|
||
<para>Long answer: FreeBSD disallows changing system flags
|
||
at security levels greater than 0. You can check your
|
||
security level with the command:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
|
||
|
||
<para>You cannot lower the security level; you have to boot to
|
||
single mode to install the kernel, or change the security
|
||
level in <filename>/etc/rc.conf</filename> then reboot. See
|
||
the &man.init.8; manual page for details on securelevel, and see
|
||
<filename>/etc/defaults/rc.conf</filename> and the
|
||
&man.rc.conf.5; manual page for more information on
|
||
rc.conf.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="kernel-securelevel-time">
|
||
<para>I cannot change the time on my system by more than one second!
|
||
How do I get around this?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Short answer: You are probably at security level
|
||
greater than 1. Reboot directly to single user mode to
|
||
change the date.</para>
|
||
|
||
<para>Long answer: FreeBSD disallows changing the time by
|
||
more that one second at security levels greater than 1. You
|
||
can check your security level with the command:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
|
||
|
||
<para>You cannot lower the security level; you have to boot
|
||
to single mode to change the date, or change the security
|
||
level in <filename>/etc/rc.conf</filename> then
|
||
reboot. See the &man.init.8; manual page for details on
|
||
securelevel, and see
|
||
<filename>/etc/defaults/rc.conf</filename> and the
|
||
&man.rc.conf.5; manual page for more information on
|
||
rc.conf.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="statd-mem-leak">
|
||
<para>Why is <command>rpc.statd</command> using 256 megabytes of
|
||
memory?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>No, there is no memory leak, and it is not using 256 Mbytes
|
||
of memory. For convenience, <command>rpc.statd</command> maps an
|
||
obscene amount of memory into its address space.
|
||
There is nothing terribly wrong with this from a technical
|
||
standpoint; it just throws off things like &man.top.1; and
|
||
&man.ps.1;.</para>
|
||
|
||
<para>&man.rpc.statd.8; maps its status file (resident on
|
||
<filename>/var</filename>) into its address space; to save
|
||
worrying about remapping it later when it needs to grow, it maps
|
||
it with a generous size. This is very evident from the source
|
||
code, where one can see that the length argument to &man.mmap.2;
|
||
is <literal>0x10000000</literal>, or one sixteenth of the
|
||
address space on an IA32, or exactly 256MB.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="unsetting-schg">
|
||
<para>Why can I not unset the <literal>schg</literal> file
|
||
flag?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You are running at an elevated (i.e., greater than 0)
|
||
securelevel. Lower the securelevel and try again. For more
|
||
information, see <link linkend="securelevel">the FAQ entry on
|
||
securelevel</link> and the &man.init.8; manual page.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ssh-shosts">
|
||
<para>Why does SSH authentication through
|
||
<filename>.shosts</filename> not work by default in recent
|
||
versions of FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The reason why <filename>.shosts</filename>
|
||
authentication does not work by default in more recent
|
||
versions of FreeBSD is because &man.ssh.1;
|
||
is not installed suid <username>root</username> by default. To
|
||
<quote>fix</quote> this, you can do one of the
|
||
following:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>As a permanent fix, set
|
||
<makevar>ENABLE_SUID_SSH</makevar> to <literal>true</literal>
|
||
in <filename>/etc/make.conf</filename> and rebuild ssh
|
||
(or run <command>make world</command>).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>As a temporary fix, change the mode on
|
||
<filename>/usr/bin/ssh</filename> to <literal>4555</literal>
|
||
by running <command>chmod 4555 /usr/bin/ssh</command> as
|
||
<username>root</username>. Then add
|
||
<makevar>ENABLE_SUID_SSH= true</makevar> to
|
||
<filename>/etc/make.conf</filename> so the change takes
|
||
effect the next time <command>make world</command> is
|
||
run.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="vnlru">
|
||
<para>What is <literal>vnlru</literal>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para><literal>vnlru</literal> flushes and frees vnodes when
|
||
the system hits the <varname>kern.maxvnodes</varname>
|
||
limit. This kernel thread sits mostly idle, and only
|
||
activates if you have a huge amount of RAM and are
|
||
accessing tens of thousands of tiny files.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="top-memory-states">
|
||
<para>What do the various memory states displayed by
|
||
<command>top</command> mean?</para>
|
||
</question>
|
||
<!-- Provided by John Dyson via Usenet -->
|
||
<answer>
|
||
<itemizedlist>
|
||
<listitem><para><literal>Active</literal>: pages recently
|
||
statistically used.</para></listitem>
|
||
|
||
<listitem><para><literal>Inactive</literal>: pages
|
||
recently statistically unused.</para></listitem>
|
||
|
||
<listitem><para><literal>Cache</literal>: (most often)
|
||
pages that have percolated from inactive to a status
|
||
where they maintain their data, but can often be
|
||
immediately reused (either with their old association,
|
||
or reused with a new association.) There can be certain
|
||
immediate transitions from <literal>active</literal> to <literal>cache</literal> state if the
|
||
page is known to be clean (unmodified), but that
|
||
transition is a matter of policy, depending upon the
|
||
algorithm choice of the VM system
|
||
maintainer.</para></listitem>
|
||
|
||
<listitem><para><literal>Free</literal>: pages without
|
||
data content, and can be immediately used in certain
|
||
circumstances where cache pages might be ineligible.
|
||
Free pages can be reused at interrupt or process
|
||
state.</para></listitem>
|
||
|
||
<listitem><para><literal>Wired</literal>: pages that are
|
||
fixed into memory, usually for kernel purposes, but also
|
||
sometimes for special use in
|
||
processes.</para></listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Pages are most often written to disk (sort of a VM
|
||
sync) when they are in the inactive state, but active
|
||
pages can also be synced (but requires the
|
||
availability of certain CPU features.) This depends upon
|
||
the CPU tracking of the modified bit being available,
|
||
and in certain situations there can be an advantage for a
|
||
block of VM pages to be synced, whether they are active or
|
||
inactive. In most common cases, it is best to think of
|
||
the inactive queue to be a queue of relatively unused
|
||
pages that might or might not be in the process of being
|
||
written to disk. Cached pages are already synced, not
|
||
mapped, but available for immediate process use with their
|
||
old association or with a new association. Free pages are
|
||
available at interrupt level, but cached or free pages can
|
||
be used at process state for reuse. Cache pages are not
|
||
adequately locked to be available at interrupt
|
||
level.</para>
|
||
|
||
<para>There are some other flags (e.g., busy flag or busy
|
||
count) that might modify some of the rules that I
|
||
described.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="free-memory-amount">
|
||
<para>How much free memory is available?</para>
|
||
</question>
|
||
<!-- Provided by John Dyson via Usenet -->
|
||
<answer>
|
||
<para>There are a couple of kinds of <quote>free
|
||
memory</quote>. One kind is the amount of memory
|
||
immediately available without paging anything else out.
|
||
That is approximately the size of cache queue + size of
|
||
free queue (with a derating factor, depending upon system
|
||
tuning.) Another kind of <quote>free memory</quote> is
|
||
the total amount of <acronym>VM</acronym> space. That can
|
||
be complex, but is dependent upon the amount of swap space
|
||
and memory. Other kinds of <quote>free memory</quote>
|
||
descriptions are also possible, but it is relatively
|
||
useless to define these, but rather it is important to
|
||
make sure that the paging rate is kept low, and to avoid
|
||
running out of swap space.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="var-empty">
|
||
<para>What is <filename>/var/empty</filename>? I can not
|
||
delete it!</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para><filename>/var/empty</filename> is a directory that the
|
||
&man.sshd.8; program uses when performing privilege separation.
|
||
The <filename>/var/empty</filename> directory is empty, owned by
|
||
<username>root</username> and has the <literal>schg</literal>
|
||
flag set.</para>
|
||
|
||
<para>Although it is not recommended to delete this directory, to
|
||
do so you will need to unset the <literal>schg</literal> flag
|
||
first. See the &man.chflags.1; manual page for more information
|
||
(and bear in mind the answer to <link linkend="unsetting-schg">
|
||
the question on unsetting the schg flag</link>).</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="x">
|
||
<title>Το Σύστημα X Windows και οι Εικονικές Κονσόλες</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="whatis-X">
|
||
<para>What is the X Window System?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>The X Window System (commonly <literal>X11</literal>) is the
|
||
most widely available windowing system capable of running on
|
||
&unix; or &unix; like systems, including
|
||
&os;. <ulink url= "http://www.x.org">The X.Org
|
||
Foundation</ulink> administers the <ulink
|
||
url="http://en.wikipedia.org/wiki/X_Window_System_core_protocol">
|
||
X protocol standards</ulink>, with the current reference
|
||
implementation, version 11 release &xorg.version;,
|
||
so you will often see references shortened to
|
||
<literal>X11</literal>.</para>
|
||
|
||
<para>Many implementations are available for different
|
||
architectures and operating systems. An
|
||
implementation of the server-side code is properly known
|
||
as an <literal>X server</literal>.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="which-X">
|
||
<para>Which X implementations are available for &os;?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>Historically, the default implementation of X on
|
||
&os; has been
|
||
&xfree86; which is maintained by
|
||
<ulink url="http://www.xfree86.org">The XFree86 Project,
|
||
Inc.</ulink> This software was installed by default on
|
||
&os; versions up until 4.10 and 5.2. Although &xorg;
|
||
itself maintained an implementation during that time
|
||
period, it was basically only provided as a reference
|
||
platform, as it had suffered greatly from bitrot over
|
||
the years.</para>
|
||
|
||
<para>However, early in 2004, some XFree86 developers left
|
||
that project
|
||
over issues including the pace of code changes, future
|
||
directions, and interpersonal conflicts, and are now contributing
|
||
code directly to &xorg; instead. At that time, &xorg; updated its
|
||
source tree to the last &xfree86; release before its subsequent
|
||
licensing change (<application>XFree86 version 4.3.99.903</application>), incorporated
|
||
many changes that had previously been maintained separately,
|
||
and has released that software as <application>X11R6.7.0</application>. A separate but
|
||
related project, <ulink url="http://www.freedesktop.org">
|
||
freedesktop.org</ulink> (or <literal>fd.o</literal> for short),
|
||
is working on rearchitecting the original &xfree86; code to
|
||
offload more work onto the graphics cards (with the goal of
|
||
increased performance) and make it more modular
|
||
(with the goal of increased maintainability, and thus faster
|
||
releases as well as easier configuration). &xorg; intends to
|
||
incorporate the freedesktop.org changes in its future releases.</para>
|
||
|
||
<para>As of July 2004, in &os.current;,
|
||
&xfree86; has been replaced with &xorg; as the default
|
||
implementation. The &xfree86; ports
|
||
(<filename role="package">x11/XFree86-4</filename> and
|
||
subports) remain in the ports collection. But &xorg; is
|
||
the default X11 implementation for &os; 5.3 and later.</para>
|
||
|
||
<para>For further information, read the <ulink
|
||
url="&url.books.handbook;/x11.html">X11</ulink> section of the
|
||
FreeBSD Handbook.</para>
|
||
|
||
<note>
|
||
<para>The above describes the default X implementation installed.
|
||
It is still possible to install either implementation by
|
||
following the instructions in the entry for 20040723 in
|
||
<filename>/usr/ports/UPDATING</filename>.</para>
|
||
</note>
|
||
|
||
<warning>
|
||
<para>It is not currently
|
||
possible to mix-and-match pieces of each implementation;
|
||
one must choose one or the other.</para>
|
||
</warning>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="xorg-compatibility">
|
||
<para>Will my existing applications run with the &xorg; suite?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The &xorg; software is written to the same X11R6 specification
|
||
that &xfree86; is, so basic applications should work
|
||
unchanged. A few lesser-used protocols have been deprecated
|
||
(<literal>XIE</literal>, <literal>PEX</literal>, and
|
||
<literal>lbxproxy</literal>), but in the first two cases, the
|
||
&os; port of &xfree86; did not support them either.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="xfree86-split">
|
||
<para>Why did the X projects split, anyway?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The answer to this question is outside the scope of
|
||
this FAQ. Note that there are voluminous postings in various
|
||
mailing list archives on the Internet; please use your favorite
|
||
search engine to investigate the history instead of asking this
|
||
question on the &os; mailing lists. It may even be the case
|
||
that only the participants will ever know for certain.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="why-choose-xorg">
|
||
<para>Why did &os; choose to go with the &xorg; ports by default?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The &xorg; developers claim that their goal is to release
|
||
more often and incorporate new features more quickly. If they
|
||
are able to do so, this will be very attractive. Also, their
|
||
software still uses the traditional X license, while &xfree86;
|
||
is now using their modified one.</para>
|
||
|
||
<note>
|
||
<para>This decision is still controversial. Only time will
|
||
tell which implementation proves technically superior. Each
|
||
&os; user should decide which they prefer.</para>
|
||
</note>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="running-X">
|
||
<para>I want to run X, how do I go about it?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>If you would like to add X to an existing installation, you
|
||
should use the <filename role="package">x11/xorg</filename>
|
||
meta-port, which will build and install all the necessary
|
||
components.</para>
|
||
|
||
<para>Then read and follow the documentation on the
|
||
&man.xorgconfig.1; tool, which assists you in
|
||
configuring &xorg; for your particular graphics
|
||
card/mouse/etc. You may also wish to examine the
|
||
&man.xorgcfg.1; tool, which provides a graphical interface
|
||
to the X configuration process.</para>
|
||
|
||
<para>For further information, read the <ulink
|
||
url="&url.books.handbook;/x11.html">X11</ulink> section of the
|
||
FreeBSD Handbook.</para>
|
||
|
||
<para>You may also wish to investigate the Xaccel server.
|
||
See the section on <link linkend="xig">Xi Graphics</link>
|
||
for more details.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="running-X-securelevels">
|
||
<para>I <emphasis>tried</emphasis> to run X, but I get an
|
||
<errorname>KDENABIO failed (Operation not permitted)</errorname>
|
||
error when I type <command>startx</command>. What do I do
|
||
now?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Your system is probably running at a raised securelevel.
|
||
It is not possible to start X at a raised securelevel because
|
||
X requires write access to <devicename>/dev/io</devicename>.
|
||
For more information, see at the &man.init.8; manual
|
||
page.</para>
|
||
|
||
<para>So the question is what else you should do instead,
|
||
and you basically have two choices: set your securelevel
|
||
back down to zero (usually from <filename>/etc/rc.conf</filename>),
|
||
or run &man.xdm.1; at boot time (before the securelevel is
|
||
raised).</para>
|
||
|
||
<para>See <xref linkend="xdm-boot"> for more information about
|
||
running &man.xdm.1; at boot time.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="x-and-moused">
|
||
<para>Why does my mouse not work with X?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you are using syscons (the default console driver),
|
||
you can configure FreeBSD to support a mouse pointer on each
|
||
virtual screen. In order to avoid conflicting with X, syscons
|
||
supports a virtual device called
|
||
<devicename>/dev/sysmouse</devicename>. All mouse events received
|
||
from the real mouse device are written to the sysmouse device
|
||
via moused. If you wish to use your mouse on one or more
|
||
virtual consoles, <emphasis>and</emphasis> use X, see
|
||
<xref linkend="moused" remap="another section"> and set up
|
||
moused.</para>
|
||
|
||
<para>Then edit <filename>/etc/X11/xorg.conf</filename> and make
|
||
sure you have the following lines:</para>
|
||
|
||
<programlisting>Section "InputDevice"
|
||
Option "Protocol" "SysMouse"
|
||
Option "Device" "/dev/sysmouse"
|
||
.....</programlisting>
|
||
|
||
<para>Some people prefer to use
|
||
<devicename>/dev/mouse</devicename> under X. To make this
|
||
work, <devicename>/dev/mouse</devicename> should be linked
|
||
to <devicename>/dev/sysmouse</devicename> (see
|
||
&man.sysmouse.4;):</para>
|
||
|
||
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
||
&prompt.root; <userinput>rm -f mouse</userinput>
|
||
&prompt.root; <userinput>ln -s sysmouse mouse</userinput></screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="x-and-wheel">
|
||
<para>My mouse has a fancy wheel. Can I use it in X?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes.</para>
|
||
|
||
<para>You need to tell X that you have a 5 button mouse.
|
||
To do this, simply add the lines
|
||
<literal>Buttons 5</literal> and
|
||
<literal>ZAxisMapping 4 5</literal> to the
|
||
<quote>InputDevice</quote> section of
|
||
<filename>/etc/X11/xorg.conf</filename>. For example, you
|
||
might have the following <quote>InputDevice</quote> section
|
||
in <filename>/etc/X11/xorg.conf</filename>.</para>
|
||
|
||
<example>
|
||
<title><quote>InputDevice</quote> Section for Wheeled Mouse
|
||
in &xorg; configuration file</title>
|
||
|
||
<programlisting>Section "InputDevice"
|
||
Identifier "Mouse1"
|
||
Driver "mouse"
|
||
Option "Protocol" "auto"
|
||
Option "Device" "/dev/sysmouse"
|
||
Option "Buttons" "5"
|
||
Option "ZAxisMapping" "4 5"
|
||
EndSection</programlisting>
|
||
</example>
|
||
|
||
<example>
|
||
<title><quote>.emacs</quote> example for naive page
|
||
scrolling with Wheeled Mouse (optional)</title>
|
||
<programlisting>;; wheel mouse
|
||
(global-set-key [mouse-4] 'scroll-down)
|
||
(global-set-key [mouse-5] 'scroll-up)</programlisting>
|
||
</example>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="no-remote-x11">
|
||
<para>How do I use remote X displays?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>For security reasons, the default setting is to not allow a
|
||
machine to remotely open a window.</para>
|
||
|
||
<para>To enable this feature, simply start
|
||
<application>X</application> with the optional
|
||
<option>-listen_tcp</option> argument:</para>
|
||
<screen>&prompt.user; <userinput>startx -listen_tcp</userinput>
|
||
</screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="window-menu-weird">
|
||
<para>Why do X Window menus and dialog boxes not work
|
||
right?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Try turning off the <keycap>Num Lock</keycap> key.</para>
|
||
|
||
<para>If your <keycap>Num Lock</keycap> key is on by default
|
||
at boot-time, you may add the following line in the
|
||
<literal>Keyboard</literal> section of the
|
||
<filename>/etc/X11/xorg.conf</filename> file.</para>
|
||
|
||
<programlisting># Let the server do the NumLock processing. This should only be
|
||
# required when using pre-R6 clients
|
||
ServerNumLock</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="virtual-console">
|
||
<para>What is a virtual console and how do I make more?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Virtual consoles, put simply, enable you to have several
|
||
simultaneous sessions on the same machine without doing anything
|
||
complicated like setting up a network or running X.</para>
|
||
|
||
<para>When the system starts, it will display a login prompt on
|
||
the monitor after displaying all the boot messages. You can
|
||
then type in your login name and password and start working (or
|
||
playing!) on the first virtual console.</para>
|
||
|
||
<para>At some point, you will probably wish to start another
|
||
session, perhaps to look at documentation for a program
|
||
you are running or to read your mail while waiting for an
|
||
FTP transfer to finish. Just do <keycombo
|
||
action="simul"><keycap>Alt</keycap><keycap>F2</keycap></keycombo>
|
||
(hold down the <keycap>Alt</keycap> key and press the
|
||
<keycap>F2</keycap> key), and you will find a login prompt
|
||
waiting for you on the second <quote>virtual
|
||
console</quote>! When you want to go back to the original
|
||
session, do <keycombo
|
||
action="simul"><keycap>Alt</keycap><keycap>F1</keycap></keycombo>.</para>
|
||
|
||
<para>The default FreeBSD installation has eight virtual
|
||
consoles enabled. <keycombo
|
||
action="simul"><keycap>Alt</keycap><keycap>F1</keycap></keycombo>,
|
||
<keycombo
|
||
action="simul"><keycap>Alt</keycap><keycap>F2</keycap></keycombo>,
|
||
<keycombo
|
||
action="simul"><keycap>Alt</keycap><keycap>F3</keycap></keycombo>,
|
||
and so on will switch between these virtual
|
||
consoles.</para>
|
||
|
||
<para>To enable more of them, edit
|
||
<filename>/etc/ttys</filename> (see &man.ttys.5;)
|
||
and add entries for <devicename>ttyv4</devicename>
|
||
to <devicename>ttyvc</devicename> after the comment on
|
||
<quote>Virtual terminals</quote>:</para>
|
||
|
||
<programlisting># Edit the existing entry for ttyv3 in /etc/ttys and change
|
||
# "off" to "on".
|
||
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
|
||
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
|
||
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
|
||
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
|
||
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
|
||
ttyv8 "/usr/libexec/getty Pc" cons25 on secure
|
||
ttyv9 "/usr/libexec/getty Pc" cons25 on secure
|
||
ttyva "/usr/libexec/getty Pc" cons25 on secure
|
||
ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting>
|
||
|
||
<para>Use as many or as few as you want. The more virtual
|
||
terminals you have, the more resources that are used; this
|
||
can be important if you have 8MB RAM or less. You may also
|
||
want to change the <literal>secure</literal>
|
||
to <literal>insecure</literal>.</para>
|
||
|
||
<important>
|
||
<para>If you want to run an X server you
|
||
<emphasis>must</emphasis> leave at least one virtual
|
||
terminal unused (or turned off) for it to use. That is to
|
||
say that if you want to have a login prompt pop up for all
|
||
twelve of your Alt-function keys, you are out of luck - you
|
||
can only do this for eleven of them if you also want to run
|
||
an X server on the same machine.</para>
|
||
</important>
|
||
|
||
<para>The easiest way to disable a console is by turning it off.
|
||
For example, if you had the full 12 terminal allocation
|
||
mentioned above and you wanted to run X, you would change
|
||
settings for virtual terminal 12 from:</para>
|
||
|
||
<programlisting>ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting>
|
||
|
||
<para>to:</para>
|
||
|
||
<programlisting>ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
|
||
|
||
<para>If your keyboard has only ten function keys, you would
|
||
end up with:</para>
|
||
|
||
<programlisting>ttyv9 "/usr/libexec/getty Pc" cons25 off secure
|
||
ttyva "/usr/libexec/getty Pc" cons25 off secure
|
||
ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
|
||
|
||
<para>(You could also just delete these lines.)</para>
|
||
|
||
<para>Next, the easiest (and cleanest) way to activate the
|
||
virtual consoles is to reboot. However, if you really do not
|
||
want to reboot, you can just shut down the X Window system
|
||
and execute (as <username>root</username>):</para>
|
||
|
||
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
|
||
|
||
<para>It is imperative that you completely shut down X Window if
|
||
it is running, before running this command. If you do not,
|
||
your system will probably appear to hang/lock up after
|
||
executing the kill command.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="vty-from-x">
|
||
<para>How do I access the virtual consoles from X?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Use <keycombo action="simul">
|
||
<keycap>Ctrl</keycap>
|
||
<keycap>Alt</keycap>
|
||
<keycap>F<replaceable>n</replaceable></keycap>
|
||
</keycombo> to switch back to a virtual console.
|
||
<keycombo action="simul">
|
||
<keycap>Ctrl</keycap>
|
||
<keycap>Alt</keycap>
|
||
<keycap>F1</keycap>
|
||
</keycombo> would return you to the first virtual console.</para>
|
||
|
||
<para>Once you are back to a text console, you can then use
|
||
<keycombo action="simul">
|
||
<keycap>Alt</keycap>
|
||
<keycap>F<replaceable>n</replaceable></keycap>
|
||
</keycombo> as normal to move between them.</para>
|
||
|
||
<para>To return to the X session, you must switch to the
|
||
virtual console running X. If you invoked X from the
|
||
command line, (e.g., using <command>startx</command>) then
|
||
the X session will attach to the next unused virtual
|
||
console, not the text console from which it was invoked.
|
||
If you have eight active virtual terminals then X will be
|
||
running on the ninth, and you would use
|
||
<keycombo action="simul">
|
||
<keycap>Alt</keycap>
|
||
<keycap>F9</keycap>
|
||
</keycombo> to return.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="xdm-boot">
|
||
<para>How do I start XDM on boot?</para>
|
||
</question><answer>
|
||
|
||
<para>There are two schools of thought on how to start
|
||
&man.xdm.1;. One school starts xdm from
|
||
<filename>/etc/ttys</filename> (see &man.ttys.5;) using
|
||
the supplied example, while the other simply runs xdm from
|
||
<filename>rc.local</filename> (see &man.rc.8;) or from a
|
||
<filename>X.sh</filename> script in
|
||
<filename>/usr/local/etc/rc.d</filename>. Both are equally
|
||
valid, and one may work in situations where the other does
|
||
not. In both cases the result is the same: X will pop up
|
||
a graphical login: prompt.</para>
|
||
|
||
<para>The ttys method has the advantage of documenting which
|
||
vty X will start on and passing the responsibility of
|
||
restarting the X server on logout to init. The rc.local
|
||
method makes it easy to kill xdm if there is a problem
|
||
starting the X server.</para>
|
||
|
||
<para>If loaded from rc.local, <command>xdm</command> should
|
||
be started without any arguments (i.e., as a daemon). xdm must
|
||
start AFTER getty runs, or else getty and xdm will conflict,
|
||
locking out the console. The best way around this is to have
|
||
the script sleep 10 seconds or so then launch xdm.</para>
|
||
|
||
<para>If you are to start <command>xdm</command> from
|
||
<filename>/etc/ttys</filename>, there still is a chance of
|
||
conflict between <command>xdm</command> and
|
||
&man.getty.8;. One way to avoid this is to add the
|
||
<literal>vt</literal> number in the
|
||
<filename>/usr/local/lib/X11/xdm/Xservers</filename>
|
||
file.</para>
|
||
|
||
<programlisting>:0 local /usr/local/bin/X vt4</programlisting>
|
||
|
||
<para>The above example will direct the X server to run in
|
||
<devicename>/dev/ttyv3</devicename>. Note the number is offset by
|
||
one. The X server counts the vty from one, whereas the FreeBSD
|
||
kernel numbers the vty from zero.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="xconsole-failure">
|
||
<para>Why do I get <errorname>Couldn't open console</errorname>
|
||
when I run xconsole?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you start <application>X</application>
|
||
with
|
||
<command>startx</command>, the permissions on
|
||
<devicename>/dev/console</devicename> will
|
||
<emphasis>not</emphasis> get changed, resulting in
|
||
things like
|
||
<command>xterm -C</command> and
|
||
<command>xconsole</command> not working.</para>
|
||
|
||
<para>This is because of the way console permissions are set
|
||
by default. On a multi-user system, one does not necessarily
|
||
want just any user to be able to write on the system console.
|
||
For users who are logging directly onto a machine with a VTY,
|
||
the &man.fbtab.5;
|
||
file exists to solve such problems.</para>
|
||
|
||
<para>In a nutshell, make sure an uncommented line of the
|
||
form</para>
|
||
|
||
<programlisting>/dev/ttyv0 0600 /dev/console</programlisting>
|
||
|
||
<para>is in <filename>/etc/fbtab</filename> (see
|
||
&man.fbtab.5;) and it will ensure that whomever logs in on
|
||
<devicename>/dev/ttyv0</devicename> will own the
|
||
console.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="xfree86-root">
|
||
<para>Before, I was able to run &xfree86; as a regular user. Why does
|
||
it now say that I must be <username>root</username>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>All X servers need to be run as
|
||
<username>root</username> in order to get direct access to
|
||
your video hardware. Older versions of &xfree86; (<=
|
||
3.3.6) installed all bundled servers to be automatically
|
||
run as <username>root</username> (setuid to
|
||
<username>root</username>). This is obviously a security
|
||
hazard because X servers are large, complicated programs.
|
||
Newer versions of &xfree86; do not install the servers
|
||
setuid to <username>root</username> for just this
|
||
reason.</para>
|
||
|
||
<para>Obviously, running an X server as the
|
||
<username>root</username> user is not acceptable, nor a
|
||
good idea security-wise. There are two ways to be able to
|
||
use X as a regular user. The first is to use
|
||
<command>xdm</command> or another display manager (e.g.,
|
||
<command>kdm</command>); the second is to use the
|
||
<command>Xwrapper</command>.</para>
|
||
|
||
<para><command>xdm</command> is a daemon that handles graphical
|
||
logins. It is usually started at boot time, and is responsible
|
||
for authenticating users and starting their sessions; it is
|
||
essentially the graphical counterpart of
|
||
&man.getty.8; and &man.login.1;. For
|
||
more information on <command>xdm</command> see
|
||
<ulink url="http://www.xfree86.org/sos/resources.html">the &xfree86;
|
||
documentation</ulink>, and the <link linkend="xdm-boot">the FAQ
|
||
entry</link> on it.</para>
|
||
|
||
<para><command>Xwrapper</command> is the X server wrapper; it is
|
||
a small utility to enable one to manually run an X server while
|
||
maintaining reasonable safety. It performs some sanity checks
|
||
on the command line arguments given, and if they pass, runs the
|
||
appropriate X server. If you do not want to run a display
|
||
manager for whatever reason, this is for you. If you have
|
||
installed the complete ports collection, you can find the port in
|
||
<filename>/usr/ports/x11/wrapper</filename>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ps2-x">
|
||
<para>Why does my PS/2 mouse misbehave under X?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Your mouse and the mouse driver may have somewhat become
|
||
out of synchronization.</para>
|
||
|
||
<para>
|
||
In rare cases the driver may erroneously report
|
||
synchronization problem and you may see the kernel
|
||
message:</para>
|
||
|
||
<programlisting>psmintr: out of sync (xxxx != yyyy)</programlisting>
|
||
|
||
<para>and notice that your mouse does not work properly.</para>
|
||
|
||
<para>If this happens, disable the synchronization check code
|
||
by setting the driver flags for the PS/2 mouse driver to 0x100.
|
||
Enter <emphasis>UserConfig</emphasis> by giving the
|
||
<option>-c</option> option at the boot prompt:</para>
|
||
|
||
<screen>boot: <userinput>-c</userinput></screen>
|
||
|
||
<para>Then, in the <emphasis>UserConfig</emphasis> command
|
||
line, type:</para>
|
||
|
||
<screen>UserConfig> <userinput>flags psm0 0x100</userinput>
|
||
UserConfig> <userinput>quit</userinput></screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ps2-mousesystems">
|
||
<para>Why does my PS/2 mouse from MouseSystems not
|
||
work?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>There have been some reports that certain model of PS/2
|
||
mouse from MouseSystems works only if it is put into the
|
||
<quote>high resolution</quote> mode. Otherwise, the mouse
|
||
cursor may jump to the upper-left corner of the screen every
|
||
so often.</para>
|
||
|
||
<para>Specify the flags 0x04 to the PS/2 mouse driver to put
|
||
the mouse into the high resolution mode. Enter
|
||
<emphasis>UserConfig</emphasis> by giving the
|
||
<option>-c</option> option at the boot prompt:</para>
|
||
|
||
<screen>boot: <userinput>-c</userinput></screen>
|
||
|
||
<para>Then, in the <emphasis>UserConfig</emphasis> command line,
|
||
type:</para>
|
||
|
||
<screen>UserConfig> <userinput>flags psm0 0x04</userinput>
|
||
UserConfig> <userinput>quit</userinput></screen>
|
||
|
||
<para>See the previous section for another possible cause of mouse
|
||
problems.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="xfree86-version">
|
||
<para>I want to install different X server.</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>&os; versions prior 5.3 will use the default
|
||
<application>&xfree86; 4.X</application>,
|
||
while latter versions will default to
|
||
<application>&xorg;</application>.
|
||
If you want to run a different X11 implementation
|
||
than the default one, add the following line to
|
||
<filename>/etc/make.conf</filename>, (if you
|
||
do not have this file, create it):</para>
|
||
|
||
<programlisting>X_WINDOW_SYSTEM= xorg</programlisting>
|
||
|
||
<para>This variable may be set to <literal>xorg</literal>,
|
||
<literal>xfree86-4</literal>, or
|
||
<literal>xfree86-3</literal>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="mouse-button-reverse">
|
||
<para>How do I reverse the mouse buttons?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Run the command
|
||
<command>xmodmap -e "pointer = 3 2 1"</command> from your
|
||
<filename>.xinitrc</filename> or <filename>.xsession</filename>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="install-splash">
|
||
<para>How do I install a splash screen and where do I find
|
||
them?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>&os; have a feature to allow the display of
|
||
<quote>splash</quote> screens during the boot
|
||
messages. The splash screens currently must be a 256 color
|
||
bitmap (<filename>*.BMP</filename>) or ZSoft PCX
|
||
(<filename>*.PCX</filename>) file. In addition, they must
|
||
have a resolution of 320x200 or less to work on standard
|
||
VGA adapters. If you compile VESA support into your
|
||
kernel, then you can use larger bitmaps up to 1024x768.
|
||
The actual VESA support can either be compiled directly
|
||
into the kernel with the <literal>VESA</literal> kernel
|
||
config option or by loading the VESA kld module during
|
||
bootup.</para>
|
||
|
||
<para>To use a splash screen, you need to modify the startup
|
||
files that control the boot process for &os;.</para>
|
||
|
||
<para>You need to create
|
||
a <filename>/boot/loader.rc</filename> file that contains
|
||
the following lines:</para>
|
||
|
||
<programlisting>include /boot/loader.4th
|
||
start</programlisting>
|
||
|
||
<para>and a <filename>/boot/loader.conf</filename> that
|
||
contains the following:</para>
|
||
|
||
<programlisting>splash_bmp_load="YES"
|
||
bitmap_load="YES"</programlisting>
|
||
|
||
<para>This assumes you are using
|
||
<filename>/boot/splash.bmp</filename> for your splash
|
||
screen. If you would rather use a PCX file, copy it to
|
||
<filename>/boot/splash.pcx</filename>, create a
|
||
<filename>/boot/loader.rc</filename> as instructed above,
|
||
and create a <filename>/boot/loader.conf</filename> that
|
||
contains:</para>
|
||
|
||
<programlisting>splash_pcx_load="YES"
|
||
bitmap_load="YES"
|
||
bitmap_name="/boot/splash.pcx"</programlisting>
|
||
|
||
<para>Now all you need is a splash screen. For that you can
|
||
surf on over to the gallery at
|
||
<ulink url="http://www.baldwin.cx/splash/"></ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="windows-keys">
|
||
<para>Can I use the &windows;
|
||
keys on my keyboard in X?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes. All you need to do is use &man.xmodmap.1; to define
|
||
what function you wish them to perform.</para>
|
||
|
||
<para>Assuming all <quote>&windows;</quote> keyboards
|
||
are standard then the keycodes for the 3 keys are</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>115 - &windows; key, between
|
||
the left-hand Ctrl and Alt keys</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>116 - &windows; key, to the
|
||
right of the <keycap>AltGr</keycap> key</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>117 - <keycap>Menu</keycap> key, to the left of
|
||
the right-hand <keycap>Ctrl</keycap> key</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>To have the left &windows; key print a comma,
|
||
try this.</para>
|
||
|
||
<screen>&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput></screen>
|
||
|
||
<para>You will probably have to re-start your window manager
|
||
to see the result.</para>
|
||
|
||
<para>To have the &windows;
|
||
key-mappings enabled automatically every time you start X either
|
||
put the <command>xmodmap</command> commands in your
|
||
<filename>~/.xinitrc</filename> file or, preferably, create a file
|
||
<filename>~/.xmodmaprc</filename> and include the
|
||
<command>xmodmap</command> options, one per line, then add the
|
||
line</para>
|
||
|
||
<programlisting>xmodmap $HOME/.xmodmaprc</programlisting>
|
||
|
||
<para>to your <filename>~/.xinitrc</filename>.</para>
|
||
|
||
<para>For example, you could map the 3 keys to be
|
||
<keycap>F13</keycap>, <keycap>F14</keycap>, and
|
||
<keycap>F15</keycap>, respectively. This would make it
|
||
easy to map them to useful functions within applications
|
||
or your window manager, as demonstrated further
|
||
down.</para>
|
||
|
||
<para>To do this put the following in
|
||
<filename>~/.xmodmaprc</filename>.</para>
|
||
|
||
<programlisting>keycode 115 = F13
|
||
keycode 116 = F14
|
||
keycode 117 = F15</programlisting>
|
||
|
||
<para>If you use <command>fvwm2</command>, for example, you
|
||
could map the keys so that <keycap>F13</keycap> iconifies
|
||
(or de-iconifies) the window the cursor is in,
|
||
<keycap>F14</keycap> brings the window the cursor is in to
|
||
the front or, if it is already at the front, pushes it to
|
||
the back, and <keycap>F15</keycap> pops up the main
|
||
Workplace (application) menu even if the cursor is not on
|
||
the desktop, which is useful if you do not have any part
|
||
of the desktop visible (and the logo on the key matches
|
||
its functionality).</para>
|
||
|
||
<para>The following entries in
|
||
<filename>~/.fvwmrc</filename> implement the
|
||
aforementioned setup:</para>
|
||
|
||
<programlisting>Key F13 FTIWS A Iconify
|
||
Key F14 FTIWS A RaiseLower
|
||
Key F15 A A Menu Workplace Nop</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="x-3d-acceleration">
|
||
<para>How can I get 3D hardware acceleration for
|
||
&opengl;?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The availability of 3D acceleration depends on the
|
||
version of &xfree86; or &xorg; that you are using and the type of video chip
|
||
you have. If you have an NVIDIA chip, you can use the binary
|
||
drivers provided for FreeBSD on the
|
||
<ulink url="http://www.nvidia.com/content/drivers/drivers.asp">
|
||
Drivers</ulink> section of their website. For other cards
|
||
with &xfree86;-4 or &xorg;, including the Matrox G200/G400, ATI Rage
|
||
128/Radeon, and 3dfx Voodoo 3, 4, 5, and Banshee,
|
||
information on hardware acceleration is available on the
|
||
<ulink
|
||
url="http://people.FreeBSD.org/~anholt/dri/">XFree86-4
|
||
Direct Rendering on FreeBSD</ulink> page.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="networking">
|
||
<title>Δικτύωση</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="diskless-booting">
|
||
<para>Where can I get information on
|
||
<quote>diskless booting</quote>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para><quote>Diskless booting</quote> means that the FreeBSD
|
||
box is booted over a network, and reads the necessary files
|
||
from a server instead of its hard disk. For full details,
|
||
please read <ulink url="&url.books.handbook;/network-diskless.html">the
|
||
Handbook entry on diskless booting</ulink></para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="router">
|
||
<para>Can a FreeBSD box be used as a dedicated network
|
||
router?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes. Please see the Handbook entry on <ulink
|
||
url="&url.books.handbook;/advanced-networking.html"> advanced
|
||
networking</ulink>, specifically the section on <ulink
|
||
url="&url.books.handbook;/network-routing.html">routing
|
||
and gateways</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="win95-connection">
|
||
<para>Can I connect my &windows; box to the Internet via
|
||
FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Typically, people who ask this question have two PCs
|
||
at home, one with FreeBSD and one with some version of
|
||
&windows; the idea is to use the FreeBSD box to connect to
|
||
the Internet and then be able to access the Internet from
|
||
the &windows; box through the FreeBSD box. This is really
|
||
just a special case of the previous question and works
|
||
perfectly well.</para>
|
||
|
||
<para>If you are using dialup to connect to the Internet
|
||
user-mode &man.ppp.8; contains a <option>-nat</option>
|
||
option. If you run &man.ppp.8; with the
|
||
<option>-nat</option> option, set
|
||
<literal>gateway_enable</literal> to
|
||
<emphasis>YES</emphasis> in
|
||
<filename>/etc/rc.conf</filename>, and configure your
|
||
&windows; machine correctly, this should work fine. For more
|
||
information, please see the &man.ppp.8; manual page or the
|
||
<ulink url="&url.books.handbook;/userppp.html">Handbook entry on
|
||
user PPP</ulink>.</para>
|
||
|
||
<para>If you are using kernel-mode PPP or have an Ethernet
|
||
connection to the Internet, you need to use
|
||
&man.natd.8;. Please look at the <ulink
|
||
url="&url.books.handbook;/network-natd.html">natd</ulink> section
|
||
of the Handbook for a tutorial.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="slip-ppp-support">
|
||
<para>Does FreeBSD support SLIP and PPP?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes. See the manual pages for &man.slattach.8;,
|
||
&man.sliplogin.8;, &man.ppp.8;, and &man.pppd.8;. &man.ppp.8;
|
||
and &man.pppd.8; provide support for both incoming and outgoing
|
||
connections, while &man.sliplogin.8; deals exclusively with
|
||
incoming connections, and &man.slattach.8; deals exclusively
|
||
with outgoing connections.</para>
|
||
|
||
<para>For more information on how to use these, please see the
|
||
<ulink url="&url.books.handbook;/ppp-and-slip.html">Handbook chapter on
|
||
PPP and SLIP</ulink>.</para>
|
||
|
||
<para>If you only have access to the Internet through a
|
||
<quote>shell account</quote>, you may want to have a look
|
||
at the <filename role="package">net/slirp</filename>
|
||
package. It can provide you with (limited) access to
|
||
services such as ftp and http direct from your local
|
||
machine.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="natd">
|
||
<para>Does FreeBSD support NAT or Masquerading?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes. If you want to use NAT over a user PPP
|
||
connection, please see the <ulink
|
||
url="&url.books.handbook;/userppp.html">Handbook entry on user
|
||
PPP</ulink>. If you want to use NAT over some other sort
|
||
of network connection, please look at the <ulink
|
||
url="&url.books.handbook;/network-natd.html">natd</ulink> section
|
||
of the Handbook.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="parallel-connect">
|
||
<para>How do I connect two FreeBSD systems over a parallel line
|
||
using PLIP?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Please see the <ulink url="&url.books.handbook;/network-plip.html">PLIP
|
||
section</ulink> of the Handbook.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="create-dev-net">
|
||
<para>Why can I not create a <devicename>/dev/ed0</devicename>
|
||
device?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Because they are not necessary. In the Berkeley
|
||
networking framework, network interfaces are only directly
|
||
accessible by kernel code. Please see the
|
||
<filename>/etc/rc.network</filename> file and the manual
|
||
pages for the various network programs mentioned there for
|
||
more information. If this leaves you totally confused,
|
||
then you should pick up a book describing network
|
||
administration on another BSD-related operating system;
|
||
with few significant exceptions, administering networking
|
||
on FreeBSD is basically the same as on &sunos; 4.0 or
|
||
Ultrix.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ethernet-aliases">
|
||
<para>How can I set up Ethernet aliases?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If the alias is on the same subnet as an address
|
||
already configured on the interface, then add
|
||
<literal>netmask 0xffffffff</literal> to your
|
||
&man.ifconfig.8; command-line, as in the following:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff</userinput></screen>
|
||
|
||
<para>Otherwise, just specify the network address and
|
||
netmask as usual:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00</userinput></screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="port-3c503">
|
||
<para>How do I get my 3C503 to use the other network
|
||
port?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you want to use the other ports, you will have to specify
|
||
an additional parameter on the
|
||
&man.ifconfig.8; command line. The default port is
|
||
<literal>link0</literal>. To use the AUI port instead of the
|
||
BNC one, use <literal>link2</literal>. These flags should be
|
||
specified using the ifconfig_* variables in
|
||
<filename>/etc/rc.conf</filename> (see &man.rc.conf.5;).</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="nfs">
|
||
<para>Why am I having trouble with NFS and FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Certain PC network cards are better than others (to put
|
||
it mildly) and can sometimes cause problems with network
|
||
intensive applications like NFS.</para>
|
||
|
||
<para>See <ulink url="&url.books.handbook;/network-nfs.html">
|
||
the Handbook entry on NFS</ulink> for more information on
|
||
this topic.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="nfs-linux">
|
||
<para>Why can I not NFS-mount from a &linux; box?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Some versions of the &linux; NFS code only accept mount
|
||
requests from a privileged port; try</para>
|
||
|
||
<screen>&prompt.root; <userinput>mount -o -P linuxbox:/blah /mnt</userinput></screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="nfs-sun">
|
||
<para>Why can I not NFS-mount from a Sun box?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>&sun; workstations running &sunos; 4.X only accept mount
|
||
requests from a privileged port; try</para>
|
||
|
||
<screen>&prompt.root; <userinput>mount -o -P sunbox:/blah /mnt</userinput></screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="exports-errors">
|
||
<para>Why does <command>mountd</command> keep telling me it
|
||
<errorname>can't change attributes</errorname> and that I have a
|
||
<errorname>bad exports list</errorname> on my FreeBSD NFS
|
||
server?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The most frequent problem is not understanding the
|
||
correct format of <filename>/etc/exports</filename>.
|
||
Please review &man.exports.5; and the <ulink
|
||
url="&url.books.handbook;/network-nfs.html">NFS</ulink> entry in the
|
||
Handbook, especially the section on <ulink
|
||
url="&url.books.handbook;/network-nfs.html#CONFIGURING-NFS">configuring
|
||
NFS</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-nextstep">
|
||
<para>Why am I having problems talking PPP to NeXTStep
|
||
machines?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>Try disabling the TCP extensions in
|
||
<filename>/etc/rc.conf</filename> (see &man.rc.conf.5;) by
|
||
changing the following variable to NO:</para>
|
||
|
||
<programlisting>tcp_extensions=NO</programlisting>
|
||
|
||
<para>Xylogic's Annex boxes are also broken in this regard
|
||
and you must use the above change to connect through
|
||
them.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ip-multicast">
|
||
<para>How do I enable IP multicast support?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>FreeBSD supports multicast host operations by
|
||
default. If you want your box to run as a multicast
|
||
router, you need to recompile your kernel with the
|
||
<literal>MROUTING</literal> option and run
|
||
&man.mrouted.8;. FreeBSD will start &man.mrouted.8; at
|
||
boot time if the flag <literal>mrouted_enable</literal> is
|
||
set to <literal>"YES"</literal> in
|
||
<filename>/etc/rc.conf</filename>.</para>
|
||
|
||
<para>MBONE tools are available in their own ports category,
|
||
<ulink
|
||
url="http://www.FreeBSD.org/ports/mbone.html">mbone</ulink>.
|
||
If you are looking for the conference tools
|
||
<command>vic</command> and <command>vat</command>, look
|
||
there!</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="dec-pci-chipset">
|
||
<para>Which network cards are based on the DEC PCI
|
||
chipset?</para>
|
||
</question><answer>
|
||
|
||
<para>Here is a list compiled by Glen Foster
|
||
<email>gfoster@driver.nsta.org</email>,
|
||
with some more modern additions:</para>
|
||
|
||
<table>
|
||
<title>Network cards based on the DEC PCI chipset</title>
|
||
|
||
<tgroup cols=2>
|
||
<thead>
|
||
<row>
|
||
<entry>Vendor</entry>
|
||
<entry>Model</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry>ASUS</entry>
|
||
<entry>PCI-L101-TB</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Accton</entry>
|
||
<entry>ENI1203</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Cogent</entry>
|
||
<entry>EM960PCI</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Compex</entry>
|
||
<entry>ENET32-PCI</entry>
|
||
</row>
|
||
<row>
|
||
<entry>D-Link</entry>
|
||
<entry>DE-530</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Dayna</entry>
|
||
<entry>DP1203, DP2100</entry>
|
||
</row>
|
||
<row>
|
||
<entry>DEC</entry>
|
||
<entry>DE435, DE450</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Danpex</entry>
|
||
<entry>EN-9400P3</entry>
|
||
</row>
|
||
<row>
|
||
<entry>JCIS</entry>
|
||
<entry>Condor JC1260</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Linksys</entry>
|
||
<entry>EtherPCI</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Mylex</entry>
|
||
<entry>LNP101</entry>
|
||
</row>
|
||
<row>
|
||
<entry>SMC</entry>
|
||
<entry>EtherPower 10/100 (Model 9332)</entry>
|
||
</row>
|
||
<row>
|
||
<entry>SMC</entry>
|
||
<entry>EtherPower (Model 8432)</entry>
|
||
</row>
|
||
<row>
|
||
<entry>TopWare</entry>
|
||
<entry>TE-3500P</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Znyx (2.2.x)</entry>
|
||
<entry>ZX312, ZX314, ZX342, ZX345, ZX346, ZX348</entry>
|
||
</row>
|
||
<row>
|
||
<entry>Znyx (3.x)</entry>
|
||
<entry>ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444,
|
||
ZX474, ZX478, ZX212, ZX214 (10mbps/hd)</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="fqdn-hosts">
|
||
<para>Why do I have to use the FQDN for hosts on my
|
||
site?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You will probably find that the host is actually in a
|
||
different domain; for example, if you are in foo.example.org and
|
||
you wish to reach a host called <hostid>mumble</hostid> in the
|
||
<hostid role="domainname">example.org</hostid> domain, you will
|
||
have to refer to it by the fully-qualified domain name, <hostid
|
||
role="fqdn">mumble.example.org</hostid>, instead of just
|
||
<hostid>mumble</hostid>.</para>
|
||
|
||
<para>Traditionally, this was allowed by BSD BIND resolvers.
|
||
However the current version of
|
||
<application>bind</application> (see &man.named.8;)
|
||
that ships with FreeBSD no longer provides default
|
||
abbreviations for non-fully qualified domain names other than
|
||
the domain you are in. So an unqualified host
|
||
<hostid>mumble</hostid> must either be found as <hostid
|
||
role="fqdn">mumble.foo.example.org</hostid>, or it will be searched
|
||
for in the root domain.</para>
|
||
|
||
<para>This is different from the previous behavior, where the
|
||
search continued across
|
||
<hostid role="domainname">mumble.example.org</hostid>, and
|
||
<hostid role="domainname">mumble.edu</hostid>. Have a look at
|
||
RFC 1535 for why this was considered bad practice, or even a
|
||
security hole.</para>
|
||
|
||
<para>As a good workaround, you can place the line</para>
|
||
|
||
<programlisting>search foo.example.org example.org</programlisting>
|
||
|
||
<para>instead of the previous</para>
|
||
|
||
<programlisting>domain foo.example.org</programlisting>
|
||
|
||
<para>into your <filename>/etc/resolv.conf</filename> file
|
||
(see &man.resolv.conf.5;). However, make sure that the
|
||
search order does not go beyond the <quote>boundary
|
||
between local and public administration</quote>, as RFC
|
||
1535 calls it.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="network-permission-denied">
|
||
<para>Why do I get an error, <errorname>Permission
|
||
denied</errorname>, for all networking operations?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you have compiled your kernel with the
|
||
<literal>IPFIREWALL</literal> option, you need to be aware
|
||
that the default policy is to deny all packets that are
|
||
not explicitly allowed.</para>
|
||
|
||
<para>If you had unintentionally misconfigured your system
|
||
for firewalling, you can restore network operability by
|
||
typing the following while logged in as
|
||
<username>root</username>:</para>
|
||
|
||
<screen>&prompt.root; <userinput>ipfw add 65534 allow all from any to any</userinput></screen>
|
||
|
||
<para>You can also set
|
||
<literal>firewall_type="open"</literal> in
|
||
<filename>/etc/rc.conf</filename>.</para>
|
||
|
||
<para>For further information on configuring a FreeBSD
|
||
firewall, see the <ulink url="&url.books.handbook;/firewalls.html">
|
||
Handbook chapter</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ipfw-overhead">
|
||
<para>How much overhead does IPFW incur?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Please see the Handbook's <ulink
|
||
url="&url.books.handbook;/firewalls.html">Firewalls</ulink>
|
||
section, specifically the section on <ulink
|
||
url="&url.books.handbook;/firewalls.html#IPFW-OVERHEAD">IPFW
|
||
Overhead & Optimization</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ipfw-fwd">
|
||
<para>Why is my <command>ipfw</command> <quote>fwd</quote> rule
|
||
to redirect a service to another machine not working?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Possibly because you want to do network address translation
|
||
(NAT) and not just forward packets. A <quote>fwd</quote> rule
|
||
does exactly what it says; it forwards packets. It does not
|
||
actually change the data inside the packet. Say we have a rule
|
||
like:</para>
|
||
|
||
<screen>01000 fwd <replaceable>10.0.0.1</replaceable> from any to <replaceable>foo 21</replaceable></screen>
|
||
|
||
<para>When a packet with a destination address of
|
||
<replaceable>foo</replaceable> arrives at the machine with this
|
||
rule, the packet is forwarded to
|
||
<replaceable>10.0.0.1</replaceable>, but it still has the
|
||
destination address of <replaceable>foo</replaceable>! The
|
||
destination address of the packet is <emphasis>not</emphasis>
|
||
changed to <replaceable>10.0.0.1</replaceable>. Most machines
|
||
would probably drop a packet that they receive with a
|
||
destination address that is not their own. Therefore, using a
|
||
<quote>fwd</quote> rule does not often work the way the user
|
||
expects. This behavior is a feature and not a bug.</para>
|
||
|
||
<para>See the <link linkend="service-redirect">FAQ about
|
||
redirecting services</link>, the &man.natd.8; manual, or one of
|
||
the several port redirecting utilities in the <ulink
|
||
url="&url.base;/ports/index.html">ports collection</ulink> for a correct way to do
|
||
this.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="service-redirect">
|
||
<para>How can I redirect service requests from one machine to
|
||
another?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You can redirect FTP (and other service) request with
|
||
the <literal>socket</literal> package, available in the ports
|
||
tree in category <quote>sysutils</quote>. Simply replace the
|
||
service's command line to call socket instead, like so:</para>
|
||
|
||
<programlisting>ftp stream tcp nowait nobody /usr/local/bin/socket socket <replaceable>ftp.example.com</replaceable> <replaceable>ftp</replaceable></programlisting>
|
||
|
||
<para>where <replaceable>ftp.example.com</replaceable> and
|
||
<replaceable>ftp</replaceable> are the host and port to
|
||
redirect to, respectively.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="bandwidth-mgr-tool">
|
||
<para>Where can I get a bandwidth management tool?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>There are three bandwidth management tools available
|
||
for FreeBSD. &man.dummynet.4; is integrated into FreeBSD
|
||
as part of &man.ipfw.4;. <ulink
|
||
url="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</ulink>
|
||
is available for free on FreeBSD 4.X and has been
|
||
integrated into FreeBSD 5.X as part of &man.pf.4;.
|
||
Bandwidth Manager from <ulink
|
||
url="http://www.etinc.com/">Emerging Technologies</ulink>
|
||
is a commercial product.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="bpf-not-configured">
|
||
<para>Why do I get <errorname>/dev/bpf0: device not
|
||
configured</errorname>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You are running a program that requires the Berkeley
|
||
Packet Filter (&man.bpf.4;), but it is not in your kernel.
|
||
Add this to your kernel config file and build a new
|
||
kernel:</para>
|
||
|
||
<programlisting>pseudo-device bpf # Berkeley Packet Filter</programlisting>
|
||
|
||
<para>On FreeBSD 4.X and earlier, you must also create the
|
||
device node. After rebooting, go to the
|
||
<filename>/dev</filename> directory and run:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sh MAKEDEV bpf0</userinput></screen>
|
||
|
||
<para>Please see the <ulink
|
||
url="&url.books.handbook;/kernelconfig-nodes.html"> Handbook entry
|
||
on device nodes</ulink> for more information on managing
|
||
devices.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="mount-smb-share">
|
||
<para>How do I mount a disk from a &windows; machine that is on my
|
||
network, like smbmount in &linux;?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Use the <application>SMBFS</application> toolset. It
|
||
includes a set of kernel modifications and a set of
|
||
userland programs. The programs and information are
|
||
available as <filename role="package">net/smbfs</filename>
|
||
in the ports collection, or in the base system as of
|
||
4.5-RELEASE and later.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="icmp-response-bw-limit">
|
||
<para>What are these messages about <quote>icmp-response
|
||
bandwidth limit 300/200 pps</quote> in my log
|
||
files?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>This is the kernel telling you that some activity is
|
||
provoking it to send more ICMP or TCP reset (RST)
|
||
responses than it thinks it should. ICMP responses are
|
||
often generated as a result of attempted connections to
|
||
unused UDP ports. TCP resets are generated as a result of
|
||
attempted connections to unopened TCP ports. Among
|
||
others, these are the kinds of activities which may cause
|
||
these messages:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Brute-force denial of service (DoS) attacks (as
|
||
opposed to single-packet attacks which exploit a
|
||
specific vulnerability).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Port scans which attempt to connect to a large
|
||
number of ports (as opposed to only trying a few
|
||
well-known ports).</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>The first number in the message tells you how many
|
||
packets the kernel would have sent if the limit was not in
|
||
place, and the second number tells you the limit. You can
|
||
control the limit using the
|
||
<varname>net.inet.icmp.icmplim</varname> sysctl variable
|
||
like this, where <literal>300</literal> is the limit in
|
||
packets per second:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim=300</userinput></screen>
|
||
|
||
<para>If you do not want to see messages about this in your
|
||
log files, but you still want the kernel to do response
|
||
limiting, you can use the
|
||
<varname>net.inet.icmp.icmplim_output</varname> sysctl
|
||
variable to disable the output like this:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim_output=0</userinput></screen>
|
||
|
||
<para>Finally, if you want to disable response limiting, you
|
||
can set the <varname>net.inet.icmp.icmplim</varname>
|
||
sysctl variable (see above for an example) to
|
||
<literal>0</literal>. Disabling response limiting is
|
||
discouraged for the reasons listed above.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="unknown-hw-addr-format">
|
||
<para>What are these <errorname>arp: unknown hardware
|
||
address format</errorname> error messages?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>This means that some device on your local Ethernet is
|
||
using a MAC address in a format that FreeBSD does not
|
||
recognize. This is probably caused by someone
|
||
experimenting with an Ethernet card somewhere else on the
|
||
network. You will see this most commonly on cable modem
|
||
networks. It is harmless, and should not affect the
|
||
performance of your FreeBSD machine.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="cvsup-missing-libs">
|
||
<para>I have just installed CVSup but trying to execute it
|
||
produces errors. What is wrong?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>First, see if the error message you are receiving is
|
||
like the one shown below.</para>
|
||
|
||
<programlisting>/usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found</programlisting>
|
||
|
||
<para>Errors like these are caused by installing the
|
||
<filename role="package">net/cvsup</filename> port on a
|
||
machine which does not have the
|
||
<application>&xfree86;</application> suite. If you want to
|
||
use the <acronym>GUI</acronym> included with
|
||
<application>CVSup</application> you will need to install
|
||
<application>&xfree86;</application> now. Alternatively if
|
||
you just wish to use <application>CVSup</application> from
|
||
a command line you should delete the package previously
|
||
installed. Then install the <filename
|
||
role="package">net/cvsup-without-gui</filename> port. This
|
||
is covered in more detail in the <ulink
|
||
url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html">CVSup
|
||
section</ulink> of the Handbook.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="security">
|
||
<title>Ασφάλεια</title>
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="sandbox">
|
||
<para>What is a sandbox?</para>
|
||
</question><answer>
|
||
|
||
<para><quote>Sandbox</quote> is a security term. It can
|
||
mean two things:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
|
||
<para>A process which is placed inside a set of virtual
|
||
walls that are designed to prevent someone who breaks
|
||
into the process from being able to break into the wider
|
||
system.</para>
|
||
|
||
<para>The process is said to be able to
|
||
<quote>play</quote> inside the walls. That is,
|
||
nothing the process does in regards to executing code is
|
||
supposed to be able to breech the walls so you do not
|
||
have to do a detailed audit of its code to be able to
|
||
say certain things about its security.</para>
|
||
|
||
<para>The walls might be a userid, for example. This is
|
||
the definition used in the &man.security.7; and &man.named.8; man
|
||
pages.</para>
|
||
|
||
<para>Take the <literal>ntalk</literal> service, for
|
||
example (see /etc/inetd.conf). This service used to run
|
||
as userid <username>root</username>. Now it runs as userid
|
||
<username>tty</username>. The <username>tty</username> user
|
||
is a sandbox designed to make it more difficult for
|
||
someone who has successfully hacked into the system via
|
||
ntalk from being able to hack beyond that user id.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
|
||
<para>A process which is placed inside a simulation of the
|
||
machine. This is more hard-core. Basically it means that
|
||
someone who is able to break into the process may believe
|
||
that he can break into the wider machine but is, in fact,
|
||
only breaking into a simulation of that machine and not
|
||
modifying any real data.</para>
|
||
|
||
<para>The most common way to accomplish this is to build a
|
||
simulated environment in a subdirectory and then run the
|
||
processes in that directory chroot'd (i.e.
|
||
<filename>/</filename> for that process is this
|
||
directory, not the real <filename>/</filename> of the
|
||
system).</para>
|
||
|
||
<para>Another common use is to mount an underlying
|
||
filesystem read-only and then create a filesystem layer
|
||
on top of it that gives a process a seemingly writeable
|
||
view into that filesystem. The process may believe it is
|
||
able to write to those files, but only the process sees
|
||
the effects - other processes in the system do not,
|
||
necessarily.</para>
|
||
|
||
<para>An attempt is made to make this sort of sandbox so
|
||
transparent that the user (or hacker) does not realize
|
||
that he is sitting in it.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>&unix; implements two core sandboxes. One is at the
|
||
process level, and one is at the userid level.</para>
|
||
|
||
<para>Every &unix; process is completely firewalled off from every
|
||
other &unix; process. One process cannot modify the address
|
||
space of another. This is unlike &windows; where a process
|
||
can easily overwrite the address space of any other, leading
|
||
to a crash.</para>
|
||
|
||
<para>A &unix; process is owned by a particular userid. If
|
||
the userid is not the <username>root</username> user, it
|
||
serves to firewall the process off from processes owned by
|
||
other users. The userid is also used to firewall off
|
||
on-disk data.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="securelevel">
|
||
<para>What is securelevel?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The securelevel is a security mechanism implemented in the
|
||
kernel. Basically, when the securelevel is positive, the
|
||
kernel restricts certain tasks; not even the superuser (i.e.,
|
||
<username>root</username>) is allowed to do them. At the time
|
||
of this writing, the securelevel mechanism is capable of, among
|
||
other things, limiting the ability to,</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>unset certain file flags, such as
|
||
<literal>schg</literal> (the system immutable flag),</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>write to kernel memory via
|
||
<devicename>/dev/mem</devicename> and
|
||
<devicename>/dev/kmem</devicename>,</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>load kernel modules, and</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>alter firewall rules.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>To check the status of the securelevel on a running system,
|
||
simply execute the following command:</para>
|
||
|
||
<screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
|
||
|
||
<para>The output will contain the name of the &man.sysctl.8;
|
||
variable (in this case, <varname>kern.securelevel</varname>)
|
||
and a number. The latter is the current value of the
|
||
securelevel. If it is positive (i.e., greater than 0), at
|
||
least some of the securelevel's protections are enabled.</para>
|
||
|
||
<para>You cannot lower the securelevel of a running system; being
|
||
able to do that would defeat its purpose. If you need to do a
|
||
task that requires that the securelevel be non-positive (e.g.,
|
||
an <maketarget>installworld</maketarget> or changing the date),
|
||
you will have to change the securelevel setting in
|
||
<filename>/etc/rc.conf</filename> (you want to look for the
|
||
<varname>kern_securelevel</varname> and
|
||
<varname>kern_securelevel_enable</varname> variables) and
|
||
reboot.</para>
|
||
|
||
<para>For more information on securelevel and the specific things
|
||
all the levels do, please consult the &man.init.8; manual
|
||
page.</para>
|
||
|
||
<warning>
|
||
<para>Securelevel is not a silver bullet; it has many known
|
||
deficiencies. More often than not, it provides a false
|
||
sense of security.</para>
|
||
|
||
<para>One of its biggest problems is that in order for it to
|
||
be at all effective, all files used in the boot process up
|
||
until the securelevel is set must be protected. If an
|
||
attacker can get the system to execute their code prior to
|
||
the securelevel being set (which happens quite late in the
|
||
boot process since some things the system must do at
|
||
start-up cannot be done at an elevated securelevel), its
|
||
protections are invalidated. While this task of protecting
|
||
all files used in the boot process is not technically
|
||
impossible, if it is achieved, system maintenance will
|
||
become a nightmare since one would have to take the system
|
||
down, at least to single-user mode, to modify a
|
||
configuration file.</para>
|
||
|
||
<para>This point and others are often discussed on the
|
||
mailing lists, particularly the &a.security;. Please search
|
||
the archives <ulink
|
||
url="&url.base;/search/index.html">here</ulink> for an
|
||
extensive discussion. Some people are hopeful that
|
||
securelevel will soon go away in favor of a more
|
||
fine-grained mechanism, but things are still hazy in this
|
||
respect.</para>
|
||
|
||
<para>Consider yourself warned.</para>
|
||
</warning>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="extra-named-port">
|
||
<para>BIND (<command>named</command>) is listening on port 53 and
|
||
some other high-numbered port. What is going on?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>BIND uses a random high-numbered port for outgoing
|
||
queries. If you want to use port 53 for outgoing queries,
|
||
either to get past a firewall or to make yourself feel
|
||
better, you can try the following in
|
||
<filename>/etc/namedb/named.conf</filename>:</para>
|
||
|
||
<programlisting>options {
|
||
query-source address * port 53;
|
||
};</programlisting>
|
||
|
||
<para>You can replace the <literal>*</literal> with a single IP
|
||
address if you want to tighten things further.</para>
|
||
|
||
<para>Congratulations, by the way. It is good practice to read
|
||
your &man.sockstat.1; output and notice odd
|
||
things!</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="sendmail-port-587">
|
||
<para>Sendmail is listening on port 587 as well as the
|
||
standard port 25! What is going on?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Recent versions of Sendmail support a
|
||
mail submission feature that runs over port 587. This is
|
||
not yet widely supported, but is growing in
|
||
popularity.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="toor-account">
|
||
<para>What is this UID 0 <username>toor</username> account? Have I
|
||
been compromised?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Do not worry. <username>toor</username> is an
|
||
<quote>alternative</quote> superuser account (toor is root
|
||
spelt backwards). Previously it was created when the
|
||
&man.bash.1; shell was installed but now it is created by
|
||
default. It is intended to be used with a non-standard shell so
|
||
you do not have to change <username>root</username>'s default
|
||
shell. This is important as shells which are not part of the
|
||
base distribution (for example a shell installed from ports or
|
||
packages) are likely to be installed in
|
||
<filename>/usr/local/bin</filename> which, by default, resides
|
||
on a different filesystem. If <username>root</username>'s shell
|
||
is located in <filename>/usr/local/bin</filename> and
|
||
<filename>/usr</filename> (or whatever filesystem contains
|
||
<filename>/usr/local/bin</filename>) is not mounted for some
|
||
reason, <username>root</username> will not be able to log in to
|
||
fix a problem (although if you reboot into single user mode
|
||
you will be prompted for the path to a shell).</para>
|
||
|
||
<para>Some people use <username>toor</username> for
|
||
day-to-day <username>root</username> tasks with a
|
||
non-standard shell, leaving <username>root</username>,
|
||
with a standard shell, for single user mode or
|
||
emergencies. By default you cannot log in using
|
||
<username>toor</username> as it does not have a password,
|
||
so log in as <username>root</username> and set a password
|
||
for <username>toor</username> if you want to use
|
||
it.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="suidperl">
|
||
<para>Why is <command>suidperl</command> not working
|
||
properly?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>For security reasons, <command>suidperl</command> is
|
||
installed without the suid bit by default. The system
|
||
administrator can enable suid behavior with the following
|
||
command.</para>
|
||
|
||
<screen>&prompt.root; <userinput>chmod u+s /usr/bin/suidperl</userinput></screen>
|
||
|
||
<para>If you want <command>suidperl</command> to be built
|
||
suid during upgrades from source, edit
|
||
<filename>/etc/make.conf</filename> and add
|
||
<varname>ENABLE_SUIDPERL=true</varname> before you run
|
||
<command>make buildworld</command>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="ppp">
|
||
<title>PPP</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="userppp">
|
||
<para>I cannot make &man.ppp.8; work. What am I doing wrong?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You should first read the &man.ppp.8; manual page and
|
||
the <ulink url="&url.books.handbook;/ppp-and-slip.html#USERPPP">
|
||
PPP section of the handbook</ulink>. Enable logging with
|
||
the command</para>
|
||
|
||
<programlisting>set log Phase Chat Connect Carrier lcp ipcp ccp command</programlisting>
|
||
|
||
<para>This command may be typed at the &man.ppp.8; command
|
||
prompt or it may be entered in the
|
||
<filename>/etc/ppp/ppp.conf</filename> configuration file
|
||
(the start of the <literal>default</literal> section is
|
||
the best place to put it). Make sure that
|
||
<filename>/etc/syslog.conf</filename> (see
|
||
&man.syslog.conf.5;) contains the lines</para>
|
||
|
||
<programlisting>!ppp
|
||
*.* /var/log/ppp.log</programlisting>
|
||
|
||
<para>and that the file <filename>/var/log/ppp.log</filename>
|
||
exists. You can now find out a lot about what is going on
|
||
from the log file. Do not worry if it does not all make sense.
|
||
If you need to get help from someone, it may make sense to
|
||
them.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-hangs">
|
||
<para>Why does &man.ppp.8; hang when I run it?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>This is usually because your hostname will not resolve.
|
||
The best way to fix this is to make sure that
|
||
<filename>/etc/hosts</filename> is consulted by your
|
||
resolver first by editing <filename>/etc/host.conf</filename>
|
||
and putting the <literal>hosts</literal> line first. Then,
|
||
simply put an entry in <filename>/etc/hosts</filename> for
|
||
your local machine. If you have no local network, change your
|
||
<hostid>localhost</hostid> line:</para>
|
||
|
||
<programlisting>127.0.0.1 foo.example.com foo localhost</programlisting>
|
||
|
||
<para>Otherwise, simply add another entry for your host.
|
||
Consult the relevant manual pages for more details.</para>
|
||
|
||
<para>You should be able to successfully <command>ping -c1
|
||
`hostname`</command> when you are done.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-nodial-auto">
|
||
<para>Why will &man.ppp.8; not dial in <literal>-auto</literal>
|
||
mode?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>First, check that you have got a default route. By
|
||
running <command>netstat -rn</command> (see
|
||
&man.netstat.1;), you should see two entries like
|
||
this:</para>
|
||
|
||
<programlisting>Destination Gateway Flags Refs Use Netif Expire
|
||
default 10.0.0.2 UGSc 0 0 tun0
|
||
10.0.0.2 10.0.0.1 UH 0 0 tun0</programlisting>
|
||
|
||
<para>This is assuming that you have used the addresses from the
|
||
handbook, the manual page or from the ppp.conf.sample file.
|
||
If you do not have a default route, it may be because you are
|
||
running an old version of &man.ppp.8;
|
||
that does not understand the word <literal>HISADDR</literal>
|
||
in the ppp.conf file.</para>
|
||
|
||
<para>Another reason for the default route line being
|
||
missing is that you have mistakenly set up a default
|
||
router in your <filename>/etc/rc.conf</filename> (see
|
||
&man.rc.conf.5;) file
|
||
and you have omitted the line saying</para>
|
||
|
||
<programlisting>delete ALL</programlisting>
|
||
|
||
<para>from <filename>ppp.conf</filename>. If this is the
|
||
case, go back to the <ulink
|
||
url="&url.books.handbook;/ppp-and-slip.html#USERPPP-FINAL"> Final
|
||
system configuration</ulink> section of the
|
||
handbook.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="no-route-to-host">
|
||
<para>What does <errorname>No route to host</errorname> mean?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>This error is usually due to a missing</para>
|
||
|
||
<programlisting>MYADDR:
|
||
delete ALL
|
||
add 0 0 HISADDR</programlisting>
|
||
|
||
<para>section in your <filename>/etc/ppp/ppp.linkup</filename>
|
||
file. This is only necessary if you have a dynamic IP address
|
||
or do not know the address of your gateway. If you are using
|
||
interactive mode, you can type the following after entering
|
||
<literal>packet mode</literal> (packet mode is
|
||
indicated by the capitalized <acronym>PPP</acronym> in the
|
||
prompt):</para>
|
||
|
||
<programlisting>delete ALL
|
||
add 0 0 HISADDR</programlisting>
|
||
|
||
<para>Refer to the <ulink
|
||
url="&url.books.handbook;/ppp-and-slip.html#USERPPP-DYNAMICIP">
|
||
PPP and Dynamic IP addresses</ulink> section of the handbook
|
||
for further details.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="connection-threeminutedrop">
|
||
<para>Why does my connection drop after about 3 minutes?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The default PPP timeout is 3 minutes. This can be
|
||
adjusted with the line</para>
|
||
|
||
<programlisting>set timeout <replaceable>NNN</replaceable></programlisting>
|
||
|
||
<para>where <replaceable>NNN</replaceable> is the number of
|
||
seconds of inactivity before the connection is closed. If
|
||
<replaceable>NNN</replaceable> is zero, the connection is never
|
||
closed due to a timeout. It is possible to put this command in
|
||
the <filename>ppp.conf</filename> file, or to type it at the
|
||
prompt in interactive mode. It is also possible to adjust it on
|
||
the fly while the line is active by connecting to
|
||
<application>ppp</application>'s server socket using
|
||
&man.telnet.1; or &man.pppctl.8;.
|
||
Refer to the
|
||
&man.ppp.8; man
|
||
page for further details.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-drop-heavy-load">
|
||
<para>Why does my connection drop under heavy load?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you have Link Quality Reporting (LQR) configured,
|
||
it is possible that too many LQR packets are lost between
|
||
your machine and the peer. Ppp deduces that the line must
|
||
therefore be bad, and disconnects. Prior to FreeBSD version
|
||
2.2.5, LQR was enabled by default. It is now disabled by
|
||
default. LQR can be disabled with the line</para>
|
||
|
||
<programlisting>disable lqr</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-drop-random">
|
||
<para>Why does my connection drop after a random amount of
|
||
time?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Sometimes, on a noisy phone line or even on a line with
|
||
call waiting enabled, your modem may hang up because it
|
||
thinks (incorrectly) that it lost carrier.</para>
|
||
|
||
<para>There is a setting on most modems for determining how
|
||
tolerant it should be to temporary losses of carrier. On a
|
||
USR &sportster; for example, this is measured by the S10
|
||
register in tenths of a second. To make your modem more
|
||
forgiving, you could add the following send-expect sequence
|
||
to your dial string:</para>
|
||
|
||
<programlisting>set dial "...... ATS10=10 OK ......"</programlisting>
|
||
|
||
<para>Refer to your modem manual for details.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-hangs-random">
|
||
<para>Why does my connection hang after a random amount of
|
||
time?</para>
|
||
</question><answer>
|
||
|
||
<para>Many people experience hung connections with no apparent
|
||
explanation. The first thing to establish is which side of
|
||
the link is hung.</para>
|
||
|
||
<para>If you are using an external modem, you can simply try
|
||
using &man.ping.8; to see if the <acronym>TD</acronym>
|
||
light is flashing when you transmit data. If it flashes
|
||
(and the <acronym>RD</acronym> light does not), the
|
||
problem is with the remote end. If <acronym>TD</acronym>
|
||
does not flash, the problem is local. With an internal
|
||
modem, you will need to use the <literal>set
|
||
server</literal> command in your
|
||
<filename>ppp.conf</filename> file. When the hang occurs,
|
||
connect to &man.ppp.8; using &man.pppctl.8;. If your
|
||
network connection suddenly revives (PPP was revived due
|
||
to the activity on the diagnostic socket) or if you cannot
|
||
connect (assuming the <literal>set socket</literal>
|
||
command succeeded at startup time), the problem is
|
||
local. If you can connect and things are still hung,
|
||
enable local async logging with <literal>set log local
|
||
async</literal> and use &man.ping.8; from another window
|
||
or terminal to make use of the link. The async logging
|
||
will show you the data being transmitted and received on
|
||
the link. If data is going out and not coming back, the
|
||
problem is remote.</para>
|
||
|
||
<para>Having established whether the problem is local or remote,
|
||
you now have two possibilities:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>If the problem is remote, read on entry <xref
|
||
linkend="ppp-remote-not-responding">.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>If the problem is local, read on entry <xref
|
||
linkend="ppp-hung">.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-remote-not-responding">
|
||
<para>The remote end is not responding. What can I do?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>There is very little you can do about this. Most ISPs
|
||
will refuse to help if you are not running a Microsoft OS.
|
||
You can <literal>enable lqr</literal> in your
|
||
<filename>ppp.conf</filename> file, allowing &man.ppp.8; to detect
|
||
the remote failure and hang up, but this detection is
|
||
relatively slow and therefore not that useful. You may want to
|
||
avoid telling your ISP that you are running user-PPP...</para>
|
||
|
||
<para>First, try disabling all local compression by adding the
|
||
following to your configuration:</para>
|
||
|
||
<programlisting>disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
|
||
deny pred1 deflate deflate24 protocomp acfcomp shortseq vj</programlisting>
|
||
|
||
<para>Then reconnect to ensure that this makes no difference.
|
||
If things improve or if the problem is solved completely,
|
||
determine which setting makes the difference through trial
|
||
and error. This will provide good ammunition when you contact
|
||
your ISP (although it may make it apparent that you are not
|
||
running a Microsoft product).</para>
|
||
|
||
<para>Before contacting your ISP, enable async logging
|
||
locally and wait until the connection hangs again. This
|
||
may use up quite a bit of disk space. The last data read
|
||
from the port may be of interest. It is usually ascii
|
||
data, and may even describe the problem (<quote>Memory
|
||
fault, core dumped</quote>?).</para>
|
||
|
||
<para>If your ISP is helpful, they should be able to enable
|
||
logging on their end, then when the next link drop occurs,
|
||
they may be able to tell you why their side is having a
|
||
problem. Feel free to send the details to &a.brian;, or
|
||
even to ask your ISP to contact me directly.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-hung">
|
||
<para>&man.ppp.8; has hung. What can I do?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Your best bet here is to rebuild &man.ppp.8; by adding
|
||
<literal>CFLAGS+=-g</literal> and
|
||
<literal>STRIP=</literal> to the end of the Makefile, then
|
||
doing a <command>make clean && make &&
|
||
make install</command>. When &man.ppp.8; hangs, find the
|
||
&man.ppp.8; process id with <command>ps ajxww | fgrep
|
||
ppp</command> and run <command>gdb ppp
|
||
<replaceable>PID</replaceable></command>. From the gdb
|
||
prompt, you can then use <command>bt</command> to get a
|
||
stack trace.</para>
|
||
|
||
<para>Send the results to &a.brian;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-loginok-thennothing">
|
||
<para>Why does nothing happen after the <quote>Login OK!</quote>
|
||
message?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Prior to FreeBSD version 2.2.5, once the link was
|
||
established, &man.ppp.8; would wait for the peer to
|
||
initiate the Line Control Protocol (LCP). Many ISPs will
|
||
not initiate negotiations and expect the client to do so.
|
||
To force &man.ppp.8; to initiate the LCP, use the
|
||
following line:</para>
|
||
|
||
<programlisting>set openmode active</programlisting>
|
||
|
||
<note>
|
||
<para>It usually does no harm if both sides initiate
|
||
negotiation, so openmode is now active by default.
|
||
However, the next section explains when it
|
||
<emphasis>does</emphasis> do some harm.</para>
|
||
</note>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-same-magic">
|
||
<para>I keep seeing errors about magic being the same. What does
|
||
it mean?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Occasionally, just after connecting, you may see messages
|
||
in the log that say <quote>magic is the same</quote>.
|
||
Sometimes, these messages are harmless, and sometimes one side
|
||
or the other exits. Most PPP implementations cannot survive
|
||
this problem, and even if the link seems to come up, you will see
|
||
repeated configure requests and configure acknowledgments in
|
||
the log file until &man.ppp.8; eventually gives up and closes the
|
||
connection.</para>
|
||
|
||
<para>This normally happens on server machines with slow
|
||
disks that are spawning a getty on the port, and executing
|
||
&man.ppp.8; from a login script or program after login. I
|
||
have also heard reports of it happening consistently when
|
||
using slirp. The reason is that in the time taken between
|
||
&man.getty.8; exiting and &man.ppp.8; starting, the
|
||
client-side &man.ppp.8; starts sending Line Control
|
||
Protocol (LCP) packets. Because ECHO is still switched on
|
||
for the port on the server, the client &man.ppp.8; sees
|
||
these packets <quote>reflect</quote> back.</para>
|
||
|
||
<para>One part of the LCP negotiation is to establish a
|
||
magic number for each side of the link so that
|
||
<quote>reflections</quote> can be detected. The protocol
|
||
says that when the peer tries to negotiate the same magic
|
||
number, a NAK should be sent and a new magic number should
|
||
be chosen. During the period that the server port has
|
||
ECHO turned on, the client &man.ppp.8; sends LCP packets,
|
||
sees the same magic in the reflected packet and NAKs
|
||
it. It also sees the NAK reflect (which also means
|
||
&man.ppp.8; must change its magic). This produces a
|
||
potentially enormous number of magic number changes, all
|
||
of which are happily piling into the server's tty
|
||
buffer. As soon as &man.ppp.8; starts on the server, it is
|
||
flooded with magic number changes and almost immediately
|
||
decides it has tried enough to negotiate LCP and gives
|
||
up. Meanwhile, the client, who no longer sees the
|
||
reflections, becomes happy just in time to see a hangup
|
||
from the server.</para>
|
||
|
||
<para>This can be avoided by allowing the peer to start
|
||
negotiating with the following line in your ppp.conf
|
||
file:</para>
|
||
|
||
<programlisting>set openmode passive</programlisting>
|
||
|
||
<para>This tells &man.ppp.8; to wait for the server to initiate LCP
|
||
negotiations. Some servers however may never initiate
|
||
negotiations. If this is the case, you can do something
|
||
like:</para>
|
||
|
||
<programlisting>set openmode active 3</programlisting>
|
||
|
||
<para>This tells &man.ppp.8; to be passive for 3 seconds, and then to
|
||
start sending LCP requests. If the peer starts sending
|
||
requests during this period, &man.ppp.8; will immediately respond
|
||
rather than waiting for the full 3 second period.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-lcp-constant">
|
||
<para>LCP negotiations continue until the connection is
|
||
closed. What is wrong?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>There is currently an implementation mis-feature in
|
||
&man.ppp.8; where it does not associate
|
||
LCP, CCP & IPCP responses with their original requests. As
|
||
a result, if one PPP
|
||
implementation is more than 6 seconds slower than the other
|
||
side, the other side will send two additional LCP configuration
|
||
requests. This is fatal.</para>
|
||
|
||
<para>Consider two implementations,
|
||
<hostid>A</hostid> and
|
||
<hostid>B</hostid>. <hostid>A</hostid> starts
|
||
sending LCP requests immediately after connecting and
|
||
<hostid>B</hostid> takes 7 seconds to start. When
|
||
<hostid>B</hostid> starts, <hostid>A</hostid>
|
||
has sent 3 LCP REQs. We are assuming the line has ECHO switched
|
||
off, otherwise we would see magic number problems as described in
|
||
the previous section. <hostid>B</hostid> sends a
|
||
REQ, then an ACK to the first of
|
||
<hostid>A</hostid>'s REQs. This results in
|
||
<hostid>A</hostid> entering the <acronym>OPENED</acronym>
|
||
state and sending and ACK (the first) back to
|
||
<hostid>B</hostid>. In the meantime,
|
||
<hostid>B</hostid> sends back two more ACKs in response to
|
||
the two additional REQs sent by <hostid>A</hostid>
|
||
before <hostid>B</hostid> started up.
|
||
<hostid>B</hostid> then receives the first ACK from
|
||
<hostid>A</hostid> and enters the
|
||
<acronym>OPENED</acronym> state.
|
||
<hostid>A</hostid> receives the second ACK from
|
||
<hostid>B</hostid> and goes back to the
|
||
<acronym>REQ-SENT</acronym> state, sending another (forth) REQ
|
||
as per the RFC. It then receives the third ACK and enters the
|
||
<acronym>OPENED</acronym> state. In the meantime,
|
||
<hostid>B</hostid> receives the forth REQ from
|
||
<hostid>A</hostid>, resulting in it reverting to the
|
||
<acronym>ACK-SENT</acronym> state and sending
|
||
another (second) REQ and (forth) ACK as per the RFC.
|
||
<hostid>A</hostid> gets the REQ, goes into
|
||
<acronym>REQ-SENT</acronym> and sends another REQ. It
|
||
immediately receives the following ACK and enters
|
||
<acronym>OPENED</acronym>.</para>
|
||
|
||
<para>This goes on until one side figures out that they are
|
||
getting nowhere and gives up.</para>
|
||
|
||
<para>The best way to avoid this is to configure one side to be
|
||
<literal>passive</literal> - that is, make one side
|
||
wait for the other to start negotiating. This can be done
|
||
with the</para>
|
||
|
||
<programlisting>set openmode passive</programlisting>
|
||
|
||
<para>command. Care should be taken with this option. You
|
||
should also use the</para>
|
||
|
||
<programlisting>set stopped N</programlisting>
|
||
|
||
<para>command to limit the amount of time that
|
||
&man.ppp.8; waits for the peer to begin
|
||
negotiations. Alternatively, the</para>
|
||
|
||
<programlisting>set openmode active N</programlisting>
|
||
|
||
<para>command (where <replaceable>N</replaceable> is the
|
||
number of seconds to wait before starting negotiations) can be
|
||
used. Check the manual page for details.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-shell-test-lockup">
|
||
<para>Why does &man.ppp.8; lock up when I shell out to test
|
||
it?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>When you execute the <command>shell</command> or
|
||
<command>!</command> command, &man.ppp.8; executes a
|
||
shell (or if you have passed any arguments,
|
||
&man.ppp.8; will execute those arguments). Ppp will
|
||
wait for the command to complete before continuing. If you
|
||
attempt to use the PPP link while running the command, the link
|
||
will appear to have frozen. This is because
|
||
&man.ppp.8; is waiting for the command to
|
||
complete.</para>
|
||
|
||
<para>If you wish to execute commands like this, use the
|
||
<command>!bg</command> command instead. This will execute
|
||
the given command in the background, and &man.ppp.8; can
|
||
continue to service the link.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-nullmodem">
|
||
<para>Why does &man.ppp.8; over a null-modem cable never exit?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>There is no way for &man.ppp.8; to
|
||
automatically determine that a direct connection has been
|
||
dropped. This is due to the lines that are used in a
|
||
null-modem serial cable. When using this sort of connection,
|
||
LQR should always be enabled with the line</para>
|
||
|
||
<programlisting>enable lqr</programlisting>
|
||
|
||
<para>LQR is accepted by default if negotiated by the peer.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-auto-noreasondial">
|
||
<para>Why does &man.ppp.8; dial for no reason in -auto mode?</para>
|
||
</question><answer>
|
||
|
||
<para>If &man.ppp.8; is dialing unexpectedly, you must
|
||
determine the cause, and set up Dial filters (dfilters) to
|
||
prevent such dialing.</para>
|
||
|
||
<para>To determine the cause, use the following line:</para>
|
||
|
||
<programlisting>set log +tcp/ip</programlisting>
|
||
|
||
<para>This will log all traffic through the connection. The
|
||
next time the line comes up unexpectedly, you will see the
|
||
reason logged with a convenient timestamp next to
|
||
it.</para>
|
||
|
||
<para>You can now disable dialing under these circumstances.
|
||
Usually, this sort of problem arises due to DNS lookups.
|
||
To prevent DNS lookups from establishing a connection
|
||
(this will <emphasis>not</emphasis> prevent &man.ppp.8;
|
||
from passing the packets through an established
|
||
connection), use the following:</para>
|
||
|
||
<programlisting>set dfilter 1 deny udp src eq 53
|
||
set dfilter 2 deny udp dst eq 53
|
||
set dfilter 3 permit 0/0 0/0</programlisting>
|
||
|
||
<para>This is not always suitable, as it will effectively
|
||
break your demand-dial capabilities - most programs will
|
||
need a DNS lookup before doing any other network related
|
||
things.</para>
|
||
|
||
<para>In the DNS case, you should try to determine what is
|
||
actually trying to resolve a host name. A lot of the
|
||
time, &man.sendmail.8; is the culprit. You should make
|
||
sure that you tell sendmail not to do any DNS lookups in
|
||
its configuration file. See the section on <ulink
|
||
url="&url.books.handbook;/smtp-dialup.html">using email with a
|
||
dialup connection</ulink> in the FreeBSD Handbook for
|
||
details on how to create your own configuration file and
|
||
what should go into it. You may also want to add the
|
||
following line to your <filename>.mc</filename>
|
||
file:</para>
|
||
|
||
<programlisting>define(`confDELIVERY_MODE', `d')dnl</programlisting>
|
||
|
||
<para>This will make sendmail queue everything until the
|
||
queue is run (usually, sendmail is invoked with
|
||
<option>-bd -q30m</option>, telling it to run the queue
|
||
every 30 minutes) or until a <command>sendmail
|
||
-q</command> is done (perhaps from your ppp.linkup
|
||
file).</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ccp-errors">
|
||
<para>What do these CCP errors mean?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>I keep seeing the following errors in my log file:</para>
|
||
|
||
<programlisting>CCP: CcpSendConfigReq
|
||
CCP: Received Terminate Ack (1) state = Req-Sent (6)</programlisting>
|
||
|
||
<para>This is because &man.ppp.8; is trying to negotiate Predictor1
|
||
compression, and the peer does not want to negotiate any
|
||
compression at all. The messages are harmless, but if you
|
||
wish to remove them, you can disable Predictor1 compression
|
||
locally too:</para>
|
||
|
||
<programlisting>disable pred1</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-connectionspeed">
|
||
<para>Why does &man.ppp.8; not log my connection speed?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>In order to log all lines of your modem
|
||
<quote>conversation</quote>, you must enable the
|
||
following:</para>
|
||
|
||
<programlisting>set log +connect</programlisting>
|
||
|
||
<para>This will make &man.ppp.8; log
|
||
everything up until the last requested <quote>expect</quote>
|
||
string.</para>
|
||
|
||
<para>If you wish to see your connect speed and are using PAP
|
||
or CHAP (and therefore do not have anything to
|
||
<quote>chat</quote> after the CONNECT in the dial script - no
|
||
<literal>set login</literal> script), you must make sure that
|
||
you instruct &man.ppp.8; to <quote>expect</quote> the whole CONNECT
|
||
line, something like this:</para>
|
||
|
||
<programlisting>set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \
|
||
\"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"</programlisting>
|
||
|
||
<para>Here, we get our CONNECT, send nothing, then expect a
|
||
line-feed, forcing &man.ppp.8; to read
|
||
the whole CONNECT response.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-ignores-backslash">
|
||
<para>Why does &man.ppp.8; ignore the <literal>\</literal> character
|
||
in my chat script?</para>
|
||
</question><answer>
|
||
|
||
<para>Ppp parses each line in your config files so that it can
|
||
interpret strings such as
|
||
<literal>set phone "123 456 789"</literal> correctly and
|
||
realize that the number is actually only
|
||
<emphasis>one</emphasis> argument. In order to specify a
|
||
<literal>"</literal> character, you must escape it
|
||
using a backslash (<literal>\</literal>).</para>
|
||
|
||
<para>When the chat interpreter parses each argument, it
|
||
re-interprets the argument in order to find any special
|
||
escape sequences such as <literal>\P</literal> or
|
||
<literal>\T</literal> (see the manual page). As a result of this
|
||
double-parsing, you must remember to use the correct number of
|
||
escapes.</para>
|
||
|
||
<para>If you wish to actually send a <literal>\</literal>
|
||
character to (say) your modem, you would need something
|
||
like:</para>
|
||
|
||
<programlisting>set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"</programlisting>
|
||
|
||
<para>resulting in the following sequence:</para>
|
||
|
||
<programlisting>ATZ
|
||
OK
|
||
AT\X
|
||
OK</programlisting>
|
||
|
||
<para>or</para>
|
||
|
||
<programlisting>set phone 1234567
|
||
set dial "\"\" ATZ OK ATDT\\T"</programlisting>
|
||
|
||
<para>resulting in the following sequence:</para>
|
||
|
||
<programlisting>ATZ
|
||
OK
|
||
ATDT1234567</programlisting>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-segfault-nocore">
|
||
<para>Why does &man.ppp.8; get a seg-fault, but I see no
|
||
<filename>ppp.core</filename> file?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Ppp (or any other program for that matter) should
|
||
never dump core. Because &man.ppp.8; runs with an
|
||
effective user id of 0, the operating system will not
|
||
write &man.ppp.8;'s core image to disk before terminating
|
||
it. If, however &man.ppp.8; is actually terminating due
|
||
to a segmentation violation or some other signal that
|
||
normally causes core to be dumped,
|
||
<emphasis>and</emphasis> you are sure you are using the
|
||
latest version (see the start of this section), then you
|
||
should do the following:</para>
|
||
|
||
<screen>&prompt.user; <userinput>tar xfz ppp-*.src.tar.gz</userinput>
|
||
&prompt.user; <userinput>cd ppp*/ppp</userinput>
|
||
&prompt.user; <userinput>echo STRIP= >>Makefile</userinput>
|
||
&prompt.user; <userinput>echo CFLAGS+=-g >>Makefile</userinput>
|
||
&prompt.user; <userinput>make clean all</userinput>
|
||
&prompt.user; <userinput>su</userinput>
|
||
&prompt.root; <userinput>make install</userinput>
|
||
&prompt.root; <userinput>chmod 555 /usr/sbin/ppp</userinput></screen>
|
||
|
||
<para>You will now have a debuggable version of &man.ppp.8;
|
||
installed. You will have to be <username>root</username>
|
||
to run &man.ppp.8; as all of its privileges have been
|
||
revoked. When you start &man.ppp.8;, take a careful note
|
||
of what your current directory was at the time.</para>
|
||
|
||
<para>Now, if and when &man.ppp.8; receives the segmentation
|
||
violation, it will dump a core file called
|
||
<filename>ppp.core</filename>. You should then do the
|
||
following:</para>
|
||
|
||
<screen>&prompt.user; <userinput>su</userinput>
|
||
&prompt.root; <userinput>gdb /usr/sbin/ppp ppp.core</userinput>
|
||
<prompt>(gdb)</prompt> <userinput>bt</userinput>
|
||
.....
|
||
<prompt>(gdb)</prompt> <userinput>f 0</userinput>
|
||
....
|
||
<prompt>(gdb)</prompt> <userinput>i args</userinput>
|
||
....
|
||
<prompt>(gdb)</prompt> <userinput>l</userinput>
|
||
.....</screen>
|
||
|
||
<para>All of this information should be given alongside your
|
||
question, making it possible to diagnose the problem.</para>
|
||
|
||
<para>If you are familiar with gdb, you may wish to find out some
|
||
other bits and pieces such as what actually caused the dump and
|
||
the addresses & values of the relevant variables.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-autodialprocess-noconnect">
|
||
<para>Why does the process that forces a dial in auto mode never
|
||
connect?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>This was a known problem with
|
||
&man.ppp.8; set up to negotiate a
|
||
dynamic local IP number with the peer in auto mode. It is
|
||
fixed in the latest version - search the manual page for
|
||
<literal>iface</literal>.</para>
|
||
|
||
<para>The problem was that when that initial program calls
|
||
&man.connect.2;, the IP number of the tun interface is assigned
|
||
to the socket endpoint. The kernel creates the first outgoing
|
||
packet and writes it to the tun device.
|
||
&man.ppp.8; then reads the packet and
|
||
establishes a connection. If, as a result of
|
||
&man.ppp.8;'s dynamic IP assignment, the
|
||
interface address is changed, the original socket endpoint will
|
||
be invalid. Any subsequent packets sent to the peer will
|
||
usually be dropped. Even if they are not, any responses will
|
||
not route back to the originating machine as the IP number is
|
||
no longer owned by that machine.</para>
|
||
|
||
<para>There are several theoretical ways to approach this
|
||
problem. It would be nicest if the peer would re-assign the
|
||
same IP number if possible <literal>:-)</literal>
|
||
The current version of &man.ppp.8; does
|
||
this, but most other implementations do not.</para>
|
||
|
||
<para>The easiest method from our side would be to never
|
||
change the tun interface IP number, but instead to change
|
||
all outgoing packets so that the source IP number is
|
||
changed from the interface IP to the negotiated IP on the
|
||
fly. This is essentially what the
|
||
<literal>iface-alias</literal> option in the latest
|
||
version of &man.ppp.8; is doing (with the help of
|
||
&man.libalias.3; and &man.ppp.8;'s <option>-nat</option>
|
||
switch) - it is maintaining all previous interface
|
||
addresses and NATing them to the last negotiated
|
||
address.</para>
|
||
|
||
<para>Another alternative (and probably the most reliable) would
|
||
be to implement a system call that changes all bound sockets
|
||
from one IP to another. &man.ppp.8; would
|
||
use this call to modify the sockets of all existing programs
|
||
when a new IP number is negotiated. The same system call could
|
||
be used by dhcp clients when they are forced to re-bind() their
|
||
sockets.</para>
|
||
|
||
<para>Yet another possibility is to allow an interface to be
|
||
brought up without an IP number. Outgoing packets would be
|
||
given an IP number of 255.255.255.255 up until the first
|
||
SIOCAIFADDR ioctl is done. This would result in fully binding
|
||
the socket. It would be up to &man.ppp.8;
|
||
to change the source IP number, but only if it is set to
|
||
255.255.255.255, and only the IP number and IP checksum would
|
||
need to change. This, however is a bit of a hack as the kernel
|
||
would be sending bad packets to an improperly configured
|
||
interface, on the assumption that some other mechanism is
|
||
capable of fixing things retrospectively.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ppp-nat-games">
|
||
<para>Why do most games not work with the -nat switch?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The reason games and the like do not work when libalias
|
||
is in use is that the machine on the outside will try to open a
|
||
connection or send (unsolicited) UDP packets to the machine on
|
||
the inside. The NAT software does not know that it should send
|
||
these packets to the interior machine.</para>
|
||
|
||
<para>To make things work, make sure that the only thing
|
||
running is the software that you are having problems with, then
|
||
either run tcpdump on the tun interface of the gateway or
|
||
enable &man.ppp.8; tcp/ip logging (<literal>set log +tcp/ip</literal>)
|
||
on the gateway.</para>
|
||
|
||
<para>When you start the offending software, you should see
|
||
packets passing through the gateway machine. When
|
||
something comes back from the outside, it will be dropped
|
||
(that is the problem). Note the port number of these
|
||
packets then shut down the offending software. Do this a
|
||
few times to see if the port numbers are consistent. If
|
||
they are, then the following line in the relevant section
|
||
of <filename>/etc/ppp/ppp.conf</filename> will make the
|
||
software functional:</para>
|
||
|
||
<programlisting>nat port <replaceable>proto</replaceable> <replaceable>internalmachine</replaceable>:<replaceable>port</replaceable> <replaceable>port</replaceable></programlisting>
|
||
|
||
<para>where <replaceable>proto</replaceable> is either
|
||
<literal>tcp</literal> or <literal>udp</literal>,
|
||
<replaceable>internalmachine</replaceable> is the machine that
|
||
you want the packets to be sent to and
|
||
<replaceable>port</replaceable> is the destination port number
|
||
of the packets.</para>
|
||
|
||
<para>You will not be able to use the software on other machines
|
||
without changing the above command, and running the software
|
||
on two internal machines at the same time is out of the question
|
||
- after all, the outside world is seeing your entire internal
|
||
network as being just a single machine.</para>
|
||
|
||
<para>If the port numbers are not consistent, there are three
|
||
more options:</para>
|
||
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>Submit support in libalias. Examples of
|
||
<quote>special cases</quote> can be found in
|
||
<filename>/usr/src/lib/libalias/alias_*.c</filename>
|
||
(<filename>alias_ftp.c</filename> is a good
|
||
prototype). This usually involves reading certain
|
||
recognised outgoing packets, identifying the
|
||
instruction that tells the outside machine to initiate
|
||
a connection back to the internal machine on a
|
||
specific (random) port and setting up a
|
||
<quote>route</quote> in the alias table so that the
|
||
subsequent packets know where to go.</para>
|
||
|
||
<para>This is the most difficult solution, but it is the
|
||
best and will make the software work with multiple
|
||
machines.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Use a proxy. The application may support socks5
|
||
for example, or (as in the <quote>cvsup</quote> case)
|
||
may have a <quote>passive</quote> option that avoids
|
||
ever requesting that the peer open connections back to
|
||
the local machine.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Redirect everything to the internal machine using
|
||
<literal>nat addr</literal>. This is the
|
||
sledge-hammer approach.</para>
|
||
</listitem>
|
||
</orderedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="useful-port-numbers">
|
||
<para>Has anybody made a list of useful port numbers?</para>
|
||
</question><answer>
|
||
|
||
<para>Not yet, but this is intended to grow into such a list
|
||
(if any interest is shown). In each example,
|
||
<replaceable>internal</replaceable> should be replaced with
|
||
the IP number of the machine playing the game.</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><application>Asheron's Call</application></para>
|
||
|
||
<para><literal>nat port udp
|
||
<replaceable>internal</replaceable>
|
||
:65000 65000</literal></para>
|
||
|
||
<para>Manually change the port number within the game to
|
||
65000. If you have got a number of machines that you wish
|
||
to play on assign a unique port number for each (i.e.
|
||
65001, 65002, etc) and add a <literal>nat port</literal>
|
||
line for each one.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><application>Half Life</application></para>
|
||
|
||
<para><literal>nat port udp
|
||
<replaceable>internal</replaceable>:27005
|
||
27015</literal></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><application>PCAnywhere 8.0</application></para>
|
||
|
||
<para><literal>nat port udp
|
||
<replaceable>internal</replaceable>:5632
|
||
5632</literal></para>
|
||
|
||
<para><literal>nat port tcp
|
||
<replaceable>internal</replaceable>:5631
|
||
5631</literal></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><application>Quake</application></para>
|
||
|
||
<para><literal>nat port udp
|
||
<replaceable>internal</replaceable>:6112
|
||
6112</literal></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><application>Quake 2</application></para>
|
||
|
||
<para><literal>nat port udp
|
||
<replaceable>internal</replaceable>:27901
|
||
27910</literal></para>
|
||
<para><literal>nat port udp
|
||
<replaceable>internal</replaceable>:60021
|
||
60021</literal></para>
|
||
<para><literal>nat port udp
|
||
<replaceable>internal</replaceable>:60040
|
||
60040</literal></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><application>Red Alert</application></para>
|
||
|
||
<para><literal>nat port udp
|
||
<replaceable>internal</replaceable>:8675
|
||
8675</literal></para>
|
||
|
||
<para><literal>nat port udp
|
||
<replaceable>internal</replaceable>:5009
|
||
5009</literal></para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="fcs-errors">
|
||
<para>What are FCS errors?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>FCS stands for <literal>F</literal>rame
|
||
<literal>C</literal>heck <literal>S</literal>equence.
|
||
Each PPP packet has a checksum attached to ensure that the
|
||
data being received is the data being sent. If the FCS of
|
||
an incoming packet is incorrect, the packet is dropped and
|
||
the HDLC FCS count is increased. The HDLC error values
|
||
can be displayed using the <literal>show hdlc</literal>
|
||
command.</para>
|
||
|
||
<para>If your link is bad (or if your serial driver is dropping
|
||
packets), you will see the occasional FCS error. This is not
|
||
usually worth worrying about although it does slow down the
|
||
compression protocols substantially. If you have an external
|
||
modem, make sure your cable is properly shielded from
|
||
interference - this may eradicate the problem.</para>
|
||
|
||
<para>If your link freezes as soon as you have connected and you
|
||
see a large number of FCS errors, this may be because your link
|
||
is not 8 bit clean. Make sure your modem is not using software
|
||
flow control (XON/XOFF). If your datalink
|
||
<emphasis>must</emphasis> use software flow control, use the
|
||
command <literal>set accmap 0x000a0000</literal> to tell
|
||
&man.ppp.8; to escape the <literal>^Q</literal> and
|
||
<literal>^S</literal> characters.</para>
|
||
|
||
<para>Another reason for seeing too many FCS errors may be
|
||
that the remote end has stopped talking
|
||
<acronym>PPP</acronym>. You may want to enable
|
||
<literal>async</literal> logging at this point to
|
||
determine if the incoming data is actually a login or
|
||
shell prompt. If you have a shell prompt at the remote
|
||
end, it is possible to terminate &man.ppp.8; without
|
||
dropping the line by using the <literal>close
|
||
lcp</literal> command (a following <literal>term</literal>
|
||
command will reconnect you to the shell on the remote
|
||
machine.</para>
|
||
|
||
<para>If nothing in your log file indicates why the link might
|
||
have been terminated, you should ask the remote administrator
|
||
(your ISP?) why the session was terminated.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry id=PPPoEwithNAT>
|
||
<question id="macos-win98-pppoe-freeze">
|
||
<para>Why do &macos; and &windows; 98 connections freeze when
|
||
running PPPoE on the gateway?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Thanks to Michael Wozniak
|
||
<email>mwozniak@netcom.ca</email> for figuring this out and
|
||
Dan Flemming <email>danflemming@mac.com</email> for the Mac
|
||
solution:</para>
|
||
|
||
<para>This is due to what is called a <quote>Black Hole</quote>
|
||
router. &macos; and &windows; 98 (and maybe other Microsoft OSs)
|
||
send TCP packets with a requested segment size too big to fit
|
||
into a PPPoE frame (MTU is 1500 by default for Ethernet)
|
||
<emphasis>and</emphasis> have the <quote>do not
|
||
fragment</quote> bit set (default of TCP) and the Telco router
|
||
is not sending ICMP <quote>must fragment</quote> back to the
|
||
www site you are trying to load. (Alternatively, the router is
|
||
sending the ICMP packet correctly, but the firewall at the www
|
||
site is dropping it.) When the www server is sending
|
||
you frames that do not fit into the PPPoE pipe the Telco router
|
||
drops them on the floor and your page does not load (some
|
||
pages/graphics do as they are smaller than a MSS.) This seems
|
||
to be the default of most Telco PPPoE configurations (if only
|
||
they knew how to program a router... sigh...)</para>
|
||
|
||
<para>One fix is to use regedit on your 95/98 boxes to add the
|
||
following registry entry...</para>
|
||
|
||
<programlisting>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU</programlisting>
|
||
|
||
<para>It should be a string with a value
|
||
<quote>1436</quote>, as some ADSL routers are reported to
|
||
be unable to deal with packets larger than this. This
|
||
registry key has been changed to
|
||
<literal>Tcpip\Parameters\Interfaces\<replaceable>ID for
|
||
adapter</replaceable>\MTU</literal> in &windows; 2000 and
|
||
becomes a DWORD.</para>
|
||
|
||
<para>Refer to the Microsoft Knowledge Base documents <ulink
|
||
url="http://support.microsoft.com/support/kb/articles/Q158/4/74.asp">Q158474
|
||
- Windows TCPIP Registry Entries</ulink> and <ulink
|
||
url="http://support.microsoft.com/support/kb/articles/Q120/6/42.asp">Q120642
|
||
- TCPIP & NBT Configuration Parameters for &windowsnt;
|
||
</ulink> for more information on changing &windows; MTU to
|
||
work with a NAT router.</para>
|
||
|
||
<para>Another regedit possibility under &windows; 2000 is to
|
||
set the
|
||
<literal>Tcpip\Parameters\Interfaces\<replaceable>ID for
|
||
adapter</replaceable>\EnablePMTUBHDetect</literal> DWORD
|
||
to 1 as mentioned in the Microsoft document 120642
|
||
mentioned above.</para>
|
||
|
||
<para>Unfortunately, &macos; does not provide an interface for
|
||
changing TCP/IP settings. However, there is commercial software
|
||
available, such as OTAdvancedTuner (OT for OpenTransport, the
|
||
&macos; TCP/IP stack) by <ulink
|
||
url="http://www.softworks.com/">Sustainable Softworks</ulink>,
|
||
that will allow users to customize TCP/IP settings. &macos; NAT
|
||
users should select <literal>ip_interface_MTU</literal> from
|
||
the drop-down menu, enter <literal>1450</literal> instead of
|
||
<literal>1500</literal> in the box, click the box next to
|
||
<literal>Save as Auto Configure</literal>, and click
|
||
<literal>Make Active</literal>.</para>
|
||
|
||
<para>The latest version of &man.ppp.8;
|
||
(2.3 or greater) has an <command>enable tcpmssfixup</command>
|
||
command that will automatically adjust the MSS to an appropriate
|
||
value. This facility is enabled by default. If you are stuck
|
||
with an older version of &man.ppp.8;, you
|
||
may want to look at the <application>tcpmssd</application>
|
||
port.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="desperation">
|
||
<para>None of this helps - I am desperate! What can I do?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If all else fails, send as much information as you can,
|
||
including your config files, how you are starting
|
||
&man.ppp.8;, the relevant parts of your
|
||
log file and the output of the <command>netstat -rn</command>
|
||
command (before and after connecting) to the &a.questions; or
|
||
the <ulink url="news:comp.unix.bsd.freebsd.misc">
|
||
comp.unix.bsd.freebsd.misc</ulink> news group, and someone
|
||
should point you in the right direction.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="serial">
|
||
<title>Σειριακές Επικοινωνίες</title>
|
||
|
||
<para>This section answers common questions about serial
|
||
communications with FreeBSD. PPP and SLIP are covered in the
|
||
<link linkend="networking">Networking</link> section.</para>
|
||
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="found-serial">
|
||
<para>How do I tell if FreeBSD found my serial ports?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>As the FreeBSD kernel boots, it will probe for the serial
|
||
ports in your system for which the kernel was configured.
|
||
You can either watch your system closely for the messages it
|
||
prints or run the command</para>
|
||
|
||
<screen>&prompt.user; <userinput>dmesg | grep sio</userinput></screen>
|
||
|
||
<para>after your system is up and running.</para>
|
||
|
||
<para>Here is some example output from the above command:</para>
|
||
|
||
<programlisting>sio0 at 0x3f8-0x3ff irq 4 on isa
|
||
sio0: type 16550A
|
||
sio1 at 0x2f8-0x2ff irq 3 on isa
|
||
sio1: type 16550A</programlisting>
|
||
|
||
<para>This shows two serial ports. The first is on irq 4, is
|
||
using port address <literal>0x3f8</literal>, and has a
|
||
16550A-type UART chip. The second uses the same kind of chip
|
||
but is on irq 3 and is at port address <literal>0x2f8</literal>.
|
||
Internal modem cards are treated just like serial ports---except
|
||
that they always have a modem <quote>attached</quote> to the
|
||
port.</para>
|
||
|
||
<para>The <filename>GENERIC</filename> kernel includes support
|
||
for two serial ports using the same irq and port address
|
||
settings in the above example. If these settings are not
|
||
right for your system, or if you have added modem cards or have
|
||
more serial ports than your kernel is configured for, just
|
||
reconfigure your kernel. See section
|
||
<link linkend="make-kernel">about building a kernel</link> for
|
||
more details.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="found-modem">
|
||
<para>How do I tell if FreeBSD found my modem cards?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Refer to the answer to the previous question.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="access-serial-ports">
|
||
<para>How do I access the serial ports on FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The third serial port, <devicename>sio2</devicename>
|
||
(see &man.sio.4;, known as <devicename>COM3</devicename> in DOS), is on
|
||
<devicename>/dev/cuaa2</devicename> for dial-out devices,
|
||
and on <devicename>/dev/ttyd2</devicename> for dial-in
|
||
devices. What is the difference between these two classes
|
||
of devices?</para>
|
||
|
||
<para>You use
|
||
<devicename>ttyd<replaceable>X</replaceable></devicename>
|
||
for dial-ins. When opening
|
||
<devicename>/dev/ttyd<replaceable>X</replaceable></devicename>
|
||
in blocking mode, a process will wait for the
|
||
corresponding
|
||
<devicename>cuaa<replaceable>X</replaceable></devicename>
|
||
device to become inactive, and then wait for the carrier
|
||
detect line to go active. When you open the
|
||
<devicename>cuaa<replaceable>X</replaceable></devicename>
|
||
device, it makes sure the serial port is not already in
|
||
use by the
|
||
<devicename>ttyd<replaceable>X</replaceable></devicename>
|
||
device. If the port is available, it <quote>steals</quote>
|
||
it from the
|
||
<devicename>ttyd<replaceable>X</replaceable></devicename>
|
||
device. Also, the
|
||
<devicename>cuaa<replaceable>X</replaceable></devicename>
|
||
device does not care about carrier detect. With this
|
||
scheme and an auto-answer modem, you can have remote users
|
||
log in and you can still dial out with the same modem and
|
||
the system will take care of all the conflicts.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="enable-multiport-serial">
|
||
<para>How do I enable support for a multiport serial
|
||
card?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Again, the section on kernel configuration provides
|
||
information about configuring your kernel. For a multiport
|
||
serial card, place an &man.sio.4; line for each serial
|
||
port on the card in the kernel configuration file. But
|
||
place the irq and vector specifiers on only one of the
|
||
entries. All of the ports on the card should share one
|
||
irq. For consistency, use the last serial port to specify
|
||
the irq. Also, specify the
|
||
<literal>COM_MULTIPORT</literal> option.</para>
|
||
|
||
<para>The following example is for an AST 4-port serial card on
|
||
irq 7:</para>
|
||
|
||
<programlisting>options "COM_MULTIPORT"
|
||
device sio4 at isa? port 0x2a0 tty flags 0x781
|
||
device sio5 at isa? port 0x2a8 tty flags 0x781
|
||
device sio6 at isa? port 0x2b0 tty flags 0x781
|
||
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr</programlisting>
|
||
|
||
<para>The flags indicate that the master port has minor number 7
|
||
(<literal>0x700</literal>), diagnostics enabled during probe
|
||
(<literal>0x080</literal>), and all the ports share an irq
|
||
(<literal>0x001</literal>).</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="multiport-serial-share-irq">
|
||
<para>Can FreeBSD handle multiport serial cards sharing
|
||
irqs?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Not yet. You will have to use a different irq for each
|
||
card.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="default-serial-params">
|
||
<para>Can I set the default serial parameters for a
|
||
port?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The
|
||
<devicename>ttyd<replaceable>X</replaceable></devicename>
|
||
(or
|
||
<devicename>cuaa<replaceable>X</replaceable></devicename>)
|
||
device is the regular device you will want to open for
|
||
your applications. When a process opens the device, it
|
||
will have a default set of terminal I/O settings. You can
|
||
see these settings with the command</para>
|
||
|
||
<screen>&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput></screen>
|
||
|
||
<para>When you change the settings to this device, the settings
|
||
are in effect until the device is closed. When it is reopened,
|
||
it goes back to the default set. To make changes to the
|
||
default set, you can open and adjust the settings of the
|
||
<quote>initial state</quote> device. For example, to turn on
|
||
<acronym>CLOCAL</acronym> mode, 8 bits, and
|
||
<acronym>XON/XOFF</acronym> flow control by default for
|
||
ttyd5, do:</para>
|
||
|
||
<screen>&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput></screen>
|
||
|
||
<para>A good place to do this is in
|
||
<filename>/etc/rc.serial</filename>. Now, an application
|
||
will have these settings by default when it opens
|
||
<filename>ttyd5</filename>. It can still change these
|
||
settings to its liking, though.</para>
|
||
|
||
<para>You can also prevent certain settings from being
|
||
changed by an application by making adjustments to the
|
||
<quote>lock state</quote> device. For example, to lock
|
||
the speed of <devicename>ttyd5</devicename> to 57600 bps,
|
||
do</para>
|
||
|
||
<screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen>
|
||
|
||
<para>Now, an application that opens
|
||
<devicename>ttyd5</devicename> and tries to change the
|
||
speed of the port will be stuck with 57600 bps.</para>
|
||
|
||
<para>Naturally, you should make the initial state and lock
|
||
state devices writable only by
|
||
<username>root</username>. The &man.MAKEDEV.8; script does
|
||
<emphasis>NOT</emphasis> do this when it creates the
|
||
device entries.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="enable-dialup">
|
||
<para>How can I enable dialup logins on my modem?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>So you want to become an Internet service provider, eh?
|
||
First, you will need one or more modems that can auto-answer.
|
||
Your modem will need to assert carrier-detect when it detects a
|
||
carrier and not assert it all the time. It will need to hang up
|
||
the phone and reset itself when the data terminal ready
|
||
(<acronym>DTR</acronym>) line goes from on to off. It should
|
||
probably use <filename>RTS/CTS</filename> flow control or no
|
||
local flow control at all. Finally, it must use a constant
|
||
speed between the computer and itself, but (to be nice to your
|
||
callers) it should negotiate a speed between itself and the
|
||
remote modem.</para>
|
||
|
||
<para>For many Hayes command-set--compatible modems, this
|
||
command will make these settings and store them in
|
||
nonvolatile memory:</para>
|
||
|
||
<programlisting>AT &C1 &D3 &K3 &Q6 S0=1 &W</programlisting>
|
||
|
||
<para>See the section <link linkend="direct-at">on sending AT
|
||
commands</link> below for information on how to make these
|
||
settings without resorting to an &ms-dos; terminal program.</para>
|
||
|
||
<para>Next, make an entry in <filename>/etc/ttys</filename>
|
||
(see &man.ttys.5;) for the modem. This file lists all the
|
||
ports on which the operating system will await logins.
|
||
Add a line that looks something like this:</para>
|
||
|
||
<programlisting>ttyd1 "/usr/libexec/getty std.57600" dialup on insecure</programlisting>
|
||
|
||
<para>This line indicates that the second serial port
|
||
(<devicename>/dev/ttyd1</devicename>) has a modem
|
||
connected running at 57600 bps and no parity
|
||
(<literal>std.57600</literal>, which comes from the file
|
||
<filename>/etc/gettytab</filename>, see &man.gettytab.5;).
|
||
The terminal type for this port is
|
||
<literal>dialup</literal>. The port is
|
||
<literal>on</literal> and is
|
||
<literal>insecure</literal>---meaning
|
||
<username>root</username> logins on the port are not
|
||
allowed. For dialin ports like this one, use the
|
||
<devicename>ttyd<replaceable>X</replaceable></devicename>
|
||
entry.</para>
|
||
|
||
<para>It is common practice to use <literal>dialup</literal>
|
||
as the terminal type. Many users set up in their
|
||
<filename>.profile</filename> or
|
||
<filename>.login</filename> files a prompt for the actual
|
||
terminal type if the starting type is dialup. The example
|
||
shows the port as insecure. To become
|
||
<username>root</username> on this port, you have to login
|
||
as a regular user, then &man.su.1; to become
|
||
<username>root</username>. If you use
|
||
<literal>secure</literal> then <username>root</username>
|
||
can login in directly.</para>
|
||
|
||
<para>After making modifications to
|
||
<filename>/etc/ttys</filename>, you need to send a hangup
|
||
or <acronym>HUP</acronym> signal to the &man.init.8;
|
||
process:</para>
|
||
|
||
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
|
||
|
||
<para>This forces the &man.init.8; process to reread
|
||
<filename>/etc/ttys</filename>. The init process will
|
||
then start getty processes on all <literal>on</literal>
|
||
ports. You can find out if logins are available for your
|
||
port by typing</para>
|
||
|
||
<screen>&prompt.user; <userinput>ps -ax | grep '[t]tyd1'</userinput></screen>
|
||
|
||
<para>You should see something like:</para>
|
||
|
||
<programlisting>747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="dumb-terminal">
|
||
<para>How can I connect a dumb terminal to my FreeBSD
|
||
box?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you are using another computer as a terminal into your
|
||
FreeBSD system, get a null-modem cable to go between the two
|
||
serial ports. If you are using an actual terminal, see its
|
||
accompanying instructions.</para>
|
||
|
||
<para>Then, modify <filename>/etc/ttys</filename> (see
|
||
&man.ttys.5;), like above. For example, if you are
|
||
hooking up a WYSE-50 terminal to the fifth serial port,
|
||
use an entry like this:</para>
|
||
|
||
<programlisting>ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure</programlisting>
|
||
|
||
<para>This example shows that the port on
|
||
<devicename>/dev/ttyd4</devicename> has a wyse50 terminal
|
||
connected at 38400 bps with no parity
|
||
(<literal>std.38400</literal> from
|
||
<filename>/etc/gettytab</filename>, see &man.gettytab.5;)
|
||
and <username>root</username> logins are allowed
|
||
(<literal>secure</literal>).</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="cannot-tip">
|
||
<para>Why can I not run <command>tip</command> or
|
||
<command>cu</command>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>On your system, the programs &man.tip.1; and
|
||
&man.cu.1; are probably executable only by
|
||
<username>uucp</username> and group
|
||
<groupname>dialer</groupname>. You can use the group
|
||
<groupname>dialer</groupname> to control who has access to
|
||
your modem or remote systems. Just add yourself to group
|
||
dialer.</para>
|
||
|
||
<para>Alternatively, you can let everyone on your system run
|
||
&man.tip.1; and &man.cu.1; by typing:</para>
|
||
|
||
<screen>&prompt.root; <userinput>chmod 4511 /usr/bin/cu</userinput>
|
||
&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="hayes-unsupported">
|
||
<para>My stock Hayes modem is not supported---what
|
||
can I do?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Actually, the manual page for &man.tip.1; is out of
|
||
date. There is a generic Hayes dialer already built in.
|
||
Just use <literal>at=hayes</literal> in your
|
||
<filename>/etc/remote</filename> (see &man.remote.5;)
|
||
file.</para>
|
||
|
||
<para>The Hayes driver is not smart enough to recognize some of
|
||
the advanced features of newer modems---messages like
|
||
<literal>BUSY</literal>, <literal>NO DIALTONE</literal>, or
|
||
<literal>CONNECT 115200</literal> will just confuse it. You
|
||
should turn those messages off when you use &man.tip.1;
|
||
(using <literal>ATX0&W</literal>).</para>
|
||
|
||
<para>Also, the dial timeout for &man.tip.1; is 60
|
||
seconds. Your modem should use something less, or else tip
|
||
will think there is a communication problem. Try
|
||
<literal>ATS7=45&W</literal>.</para>
|
||
|
||
<para>Actually, as shipped &man.tip.1; does not yet
|
||
support it fully. The solution is to edit the file
|
||
<filename>tipconf.h</filename> in the directory
|
||
<filename>/usr/src/usr.bin/tip/tip</filename>. Obviously you
|
||
need the source distribution to do this.</para>
|
||
|
||
<para>Edit the line <literal>#define HAYES 0</literal>
|
||
to <literal>#define HAYES 1</literal>. Then
|
||
<command>make</command> and <command>make install</command>.
|
||
Everything works nicely after that.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="direct-at">
|
||
<para>How am I expected to enter these AT commands?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Make what is called a <quote>direct</quote> entry in
|
||
your <filename>/etc/remote</filename> file (see
|
||
&man.remote.5;). For example, if your modem is hooked up
|
||
to the first serial port,
|
||
<devicename>/dev/cuaa0</devicename>, then put in the
|
||
following line:</para>
|
||
|
||
<programlisting>cuaa0:dv=/dev/cuaa0:br#19200:pa=none</programlisting>
|
||
|
||
<para>Use the highest bps rate your modem supports in the br
|
||
capability. Then, type <command>tip
|
||
<devicename>cuaa0</devicename></command> (see &man.tip.1;)
|
||
and you will be connected to your modem.</para>
|
||
|
||
<para>If there is no <devicename>/dev/cuaa0</devicename> on your
|
||
system, do this:</para>
|
||
|
||
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
||
&prompt.root; <userinput>sh MAKEDEV cuaa0</userinput></screen>
|
||
|
||
<para>Or use cu as <username>root</username> with the
|
||
following command:</para>
|
||
|
||
<screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen>
|
||
|
||
<para>with <replaceable>line</replaceable> being the serial
|
||
port (e.g. <devicename>/dev/cuaa0</devicename>) and
|
||
<replaceable>speed</replaceable> being the speed
|
||
(e.g.<literal>57600</literal>). When you are done
|
||
entering the AT commands hit <literal>~.</literal> to
|
||
exit.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="gt-failure">
|
||
<para>Why does the <literal><@></literal> sign for the pn
|
||
capability not work?</para></question><answer>
|
||
|
||
<para>The <literal><@></literal> sign in the phone
|
||
number capability tells tip to look in
|
||
<filename>/etc/phones</filename> for a phone number. But
|
||
the <literal><@></literal> sign is also a special
|
||
character in capability files like
|
||
<filename>/etc/remote</filename>. Escape it with a
|
||
backslash:</para>
|
||
|
||
<programlisting>pn=\@</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="dial-command-line">
|
||
<para>How can I dial a phone number on the command
|
||
line?</para>
|
||
</question><answer>
|
||
|
||
<para>Put what is called a <quote>generic</quote> entry in
|
||
your <filename>/etc/remote</filename> file (see
|
||
&man.remote.5;). For example:</para>
|
||
|
||
<programlisting>tip115200|Dial any phone number at 115200 bps:\
|
||
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
|
||
tip57600|Dial any phone number at 57600 bps:\
|
||
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:</programlisting>
|
||
|
||
<para>Then you can do something like <command>tip -115200
|
||
5551234</command>. If you prefer &man.cu.1; over
|
||
&man.tip.1;, use a generic cu entry:</para>
|
||
|
||
<programlisting>cu115200|Use cu to dial any number at 115200bps:\
|
||
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:</programlisting>
|
||
|
||
<para>and type <command>cu 5551234 -s 115200</command>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="set-bps">
|
||
<para>Do I have to type in the bps rate every time I do
|
||
that?</para>
|
||
</question><answer>
|
||
|
||
<para>Put in an entry for <literal>tip1200</literal> or
|
||
<literal>cu1200</literal>, but go ahead and use whatever
|
||
bps rate is appropriate with the br capability.
|
||
&man.tip.1; thinks a good default is 1200 bps which is why
|
||
it looks for a <literal>tip1200</literal> entry. You do
|
||
not have to use 1200 bps, though.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="terminal-server">
|
||
<para>How can I more easily access a number of hosts through a
|
||
terminal server?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Rather than waiting until you are connected and typing
|
||
<literal>CONNECT <replaceable>host</replaceable></literal>
|
||
each time, use tip's <literal>cm</literal> capability. For
|
||
example, these entries in
|
||
<filename>/etc/remote</filename> (see &man.remote.5;):</para>
|
||
|
||
<programlisting>pain|pain.deep13.com|Forrester's machine:\
|
||
:cm=CONNECT pain\n:tc=deep13:
|
||
muffin|muffin.deep13.com|Frank's machine:\
|
||
:cm=CONNECT muffin\n:tc=deep13:
|
||
deep13:Gizmonics Institute terminal server:\
|
||
:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:</programlisting>
|
||
|
||
<para>will let you type <command>tip pain</command> or
|
||
<command>tip muffin</command> to connect to the hosts
|
||
<hostid>pain</hostid> or <hostid>muffin</hostid>; and
|
||
<command>tip deep13</command> to get to the terminal
|
||
server.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="tip-multiline">
|
||
<para>Can tip try more than one line for each site?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>This is often a problem where a university has several
|
||
modem lines and several thousand students trying to use
|
||
them...</para>
|
||
|
||
<para>Make an entry for your university in
|
||
<filename>/etc/remote</filename> (see &man.remote.5;) and
|
||
use <literal><\@></literal> for the
|
||
<literal>pn</literal> capability:</para>
|
||
|
||
<programlisting>big-university:\
|
||
:pn=\@:tc=dialout
|
||
dialout:\
|
||
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:</programlisting>
|
||
|
||
<para>Then, list the phone numbers for the university in
|
||
<filename>/etc/phones</filename> (see &man.phones.5;):</para>
|
||
|
||
<programlisting>big-university 5551111
|
||
big-university 5551112
|
||
big-university 5551113
|
||
big-university 5551114</programlisting>
|
||
|
||
<para>&man.tip.1;
|
||
will try each one in the listed order, then give
|
||
up. If you want to keep retrying, run &man.tip.1;
|
||
in a while loop.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="multi-controlp">
|
||
<para>Why do I have to hit <keycombo
|
||
action="simul"><keycap>CTRL</keycap><keycap>P</keycap></keycombo>
|
||
twice to send <keycombo
|
||
action="simul"><keycap>CTRL</keycap><keycap>P</keycap></keycombo>
|
||
once?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para><keycombo
|
||
action="simul"><keycap>CTRL</keycap><keycap>P</keycap></keycombo>
|
||
is the default <quote>force</quote> character, used to
|
||
tell &man.tip.1; that the next character is literal data.
|
||
You can set the force character to any other character
|
||
with the <literal>~s</literal> escape, which means
|
||
<quote>set a variable</quote>.</para>
|
||
|
||
<para>Type <literal>~sforce=<replaceable>single-char
|
||
</replaceable></literal> followed by a newline.
|
||
<replaceable>single-char</replaceable> is any single
|
||
character. If you leave out
|
||
<replaceable>single-char</replaceable>, then the force
|
||
character is the nul character, which you can get by
|
||
typing <keycombo
|
||
action="simul"><keycap>CTRL</keycap><keycap>2</keycap></keycombo>
|
||
or <keycombo
|
||
action="simul"><keycap>CTRL</keycap><keycap>SPACE</keycap></keycombo>.
|
||
A pretty good value for
|
||
<replaceable>single-char</replaceable> is <keycombo
|
||
action="simul"><keycap>SHIFT</keycap><keycap>CTRL</keycap><keycap>6</keycap></keycombo>,
|
||
which I have seen only used on some terminal
|
||
servers.</para>
|
||
|
||
<para>You can have the force character be whatever you want
|
||
by specifying the following in your
|
||
<filename>$HOME/.tiprc</filename> file:</para>
|
||
|
||
<programlisting>force=<replaceable>single-char</replaceable></programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="uppercase">
|
||
<para>Why is everything I type suddenly in UPPER CASE?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You must have pressed <keycombo
|
||
action="simul"><keycap>CTRL</keycap><keycap>A</keycap></keycombo>,
|
||
&man.tip.1; <quote>raise character</quote>, specially
|
||
designed for people with broken <keycap>Caps Lock</keycap>
|
||
keys. Use <literal>~s</literal> as above and set the
|
||
variable <quote>raisechar</quote> to something reasonable.
|
||
In fact, you can set it to the same as the force
|
||
character, if you never expect to use either of these
|
||
features.</para>
|
||
|
||
<para>Here is a sample .tiprc file perfect for Emacs users
|
||
who need to type <keycombo
|
||
action="simul"><keycap>CTRL</keycap><keycap>2</keycap></keycombo>
|
||
and <keycombo
|
||
action="simul"><keycap>CTRL</keycap><keycap>A</keycap></keycombo>
|
||
a lot:</para>
|
||
|
||
<programlisting>force=^^
|
||
raisechar=^^</programlisting>
|
||
|
||
<para>The ^^ is <keycombo action="simul"><keycap>SHIFT</keycap><keycap>CTRL</keycap><keycap>6</keycap></keycombo>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="tip-filetransfer">
|
||
<para>How can I do file transfers with
|
||
<command>tip</command>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>If you are talking to another &unix; system, you can
|
||
send and receive files with <literal>~p</literal> (put)
|
||
and <literal>~t</literal> (take). These commands run
|
||
&man.cat.1; and &man.echo.1; on the remote system to
|
||
accept and send files. The syntax is:</para>
|
||
|
||
<programlisting>~p <local-file> [<remote-file>]
|
||
~t <remote-file> [<local-file>]</programlisting>
|
||
|
||
<para>There is no error checking, so you probably should use
|
||
another protocol, like zmodem.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="zmodem-tip">
|
||
<para>How can I run zmodem with
|
||
<application>tip</application>?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>First, install one of the zmodem programs from the
|
||
ports collection (such as one of the two from the comms
|
||
category, <application>lrzsz</application> or
|
||
<application>rzsz</application>.</para>
|
||
|
||
<para>To receive files, start the sending program on the
|
||
remote end. Then, press enter and type <literal>~C
|
||
rz</literal> (or <literal>~C lrz</literal> if you
|
||
installed <application>lrzsz</application>) to begin
|
||
receiving them locally.</para>
|
||
|
||
<para>To send files, start the receiving program on the
|
||
remote end. Then, press enter and type <literal>~C sz
|
||
<replaceable>files</replaceable></literal> (or <literal>~C
|
||
lsz <replaceable>files</replaceable></literal>) to send
|
||
them to the remote system.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="misc">
|
||
<title>Διάφορες Ερωτήσεις</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="more-swap">
|
||
<para>FreeBSD uses far more swap space than &linux;. Why?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>FreeBSD only appears to use more swap than &linux;. In
|
||
actual fact, it does not. The main difference between FreeBSD
|
||
and &linux; in this regard is that FreeBSD will proactively move
|
||
entirely idle, unused pages of main memory into swap in order
|
||
to make more main memory available for active use. &linux; tends
|
||
to only move pages to swap as a last resort. The perceived
|
||
heavier use of swap is balanced by the more efficient use of
|
||
main memory.</para>
|
||
|
||
<para>Note that while FreeBSD is proactive in this regard, it
|
||
does not arbitrarily decide to swap pages when the system is
|
||
truly idle. Thus you will not find your system all paged
|
||
out when you get up in the morning after leaving it idle
|
||
overnight.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="top-freemem">
|
||
<para>Why does <command>top</command> show very little free
|
||
memory even when I have very few programs running?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The simple answer is that free memory is wasted
|
||
memory. Any memory that your programs do not actively
|
||
allocate is used within the FreeBSD kernel as disk
|
||
cache. The values shown by &man.top.1; labeled as
|
||
<literal>Inact</literal>, <literal>Cache</literal>, and
|
||
<literal>Buf</literal> are all cached data at different
|
||
aging levels. This cached data means the system does
|
||
not have to access a slow disk again for data it has
|
||
accessed recently, thus increasing overall performance.
|
||
In general, a low value shown for <literal>Free</literal>
|
||
memory in &man.top.1; is good, provided it is not
|
||
<emphasis>very</emphasis> low.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="chmod-symlinks">
|
||
<para>Why will <command>chmod</command> not change the
|
||
permissions on symlinks?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Symlinks do not have permissions, and by default,
|
||
&man.chmod.1; will not follow symlinks to change the
|
||
permissions on the target file. So if you have a file,
|
||
<filename>foo</filename>, and a symlink to that file,
|
||
<filename>bar</filename>, then this command will always
|
||
succeed.</para>
|
||
|
||
<screen>&prompt.user; <userinput>chmod g-w bar</userinput></screen>
|
||
|
||
<para>However, the permissions on <filename>foo</filename> will
|
||
not have changed.</para>
|
||
|
||
<para>You have to use either <option>-H</option> or
|
||
<option>-L</option> together with the <option>-R</option>
|
||
option to make this work. See the &man.chmod.1; and
|
||
&man.symlink.7; manual pages for more info.</para>
|
||
|
||
<warning>
|
||
<para>The <option>-R</option> option does a
|
||
<emphasis>RECURSIVE</emphasis> &man.chmod.1;. Be
|
||
careful about specifying directories or symlinks to
|
||
directories to &man.chmod.1;. If you want to change
|
||
the permissions of a directory referenced by a
|
||
symlink, use &man.chmod.1; without any options and
|
||
follow the symlink with a trailing slash
|
||
(<filename>/</filename>). For example, if
|
||
<filename>foo</filename> is a symlink to directory
|
||
<filename>bar</filename>, and you want to change the
|
||
permissions of <filename>foo</filename> (actually
|
||
<filename>bar</filename>), you would do something
|
||
like:</para>
|
||
|
||
<screen>&prompt.user; <userinput>chmod 555 foo/</userinput></screen>
|
||
|
||
<para>With the trailing slash, &man.chmod.1; will follow
|
||
the symlink, <filename>foo</filename>, to change the
|
||
permissions of the directory,
|
||
<filename>bar</filename>.</para>
|
||
</warning>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="dos-binaries">
|
||
<para>Can I run DOS binaries under FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes, you can use <filename
|
||
role="package">emulators/doscmd</filename>, a DOS emulation
|
||
program, available in the &os; Ports Collection.</para>
|
||
|
||
<note>
|
||
<para>The <application>doscmd</application> program used to be an
|
||
integrated part of &os;, but was removed before the release of
|
||
&os; 5.3.</para>
|
||
</note>
|
||
|
||
<para>If <application>doscmd</application> will not suffice,
|
||
the add-on utility <filename
|
||
role="package">emulators/pcemu</filename> emulates an 8088 and
|
||
enough BIOS services to run many DOS text mode
|
||
applications. It requires the X Window System.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="translation">
|
||
<para>What do I need to do to translate a FreeBSD document into
|
||
my native language?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>See the <ulink url="&url.books.fdp-primer;/translations.html">
|
||
Translation FAQ</ulink> in the FreeBSD Documentation Project
|
||
Primer.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="freebsd-mail-bounces">
|
||
<para>Why does my email to any address at FreeBSD.org bounce?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The FreeBSD.org mail system implements some of the
|
||
stricter Postfix checks on incoming mail and rejects mail that is
|
||
either misconfigured or is potential spam. Your mail
|
||
might bounce for one of the following reasons:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>The email is being sent from a known spam
|
||
domain or IP block.</para>
|
||
|
||
<para>The FreeBSD mail servers reject email from known
|
||
spam sources. If you have service through a company
|
||
or domain who generates or relays spam, please switch
|
||
to a service provider who does not.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>The body of the email only contains HTML.</para>
|
||
|
||
<para>Mail should be sent in plain text only. Please
|
||
configure your mail user agent to send plain
|
||
text.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>The mailer at FreeBSD.org cannot resolve the IP
|
||
address of the connecting host back to a symbolic
|
||
name.</para>
|
||
|
||
<para>Working reverse DNS is a standard requirement for
|
||
accepting mail from a host. Set up reverse DNS for
|
||
your mail server's IP address. Many home services
|
||
(DSL, cable, dialup, etc.) will not give you this
|
||
option. In this case, relay your email through your
|
||
service provider's mail server.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>The hostname given in the EHLO/HELO part of the SMTP
|
||
exchange cannot be resolved to an IP address.</para>
|
||
|
||
<para>A fully qualified, resolvable host name is necessary
|
||
in this part of the SMTP dialogue before mail will be
|
||
accepted. If you do not have a host name that is registered
|
||
in the DNS, then you should use your service provider's mail
|
||
server to relay your mail.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Your message had a message ID ending with the string
|
||
<quote>localhost</quote>.</para>
|
||
|
||
<para>Some mail user agents generate bad message IDs which will
|
||
not be accepted. You will need to persuade your mail user
|
||
agent to generate a valid message ID or else configure your
|
||
mail transfer agent to rewrite them.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="free-account">
|
||
<para>Where can I find a free FreeBSD account?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>While FreeBSD does not provide open access to any of their
|
||
servers, others do provide open access &unix; systems. The
|
||
charge varies and limited services may be available.</para>
|
||
|
||
<para><ulink url="http://www.arbornet.org/">Arbornet,
|
||
Inc</ulink>, also known as M-Net, has been providing open
|
||
access to &unix; systems since 1983. Starting on an Altos
|
||
running System III, the site switched to BSD/OS in 1991. In
|
||
June of 2000, the site switched again to FreeBSD. M-Net can be
|
||
accessed via telnet and SSH and provides basic access to the
|
||
entire FreeBSD software suite. However, network access is
|
||
limited to members and patrons who donate to the system, which
|
||
is run as a non-profit organization. M-Net also provides an
|
||
bulletin board system and interactive chat.</para>
|
||
|
||
<para><ulink url="http://www.grex.org/">Grex</ulink> provides a
|
||
site very similar to M-Net including the same bulletin board
|
||
and interactive chat software. However, the machine is a &sun;
|
||
4M and is running &sunos;.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="sup-define">
|
||
<para>What is <command>sup</command>, and how do I use
|
||
it?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para><ulink url="http://www.FreeBSD.org/cgi/ports.cgi?^sup">
|
||
SUP</ulink> stands for Software Update Protocol, and was
|
||
developed by CMU for keeping their development trees in sync.
|
||
We used it to keep remote sites in sync with our central
|
||
development sources.</para>
|
||
|
||
<para>SUP is not bandwidth friendly, and has been retired.
|
||
The current recommended method to keep your sources up to
|
||
date is <ulink url="&url.books.handbook;/synching.html#CVSUP">
|
||
CVSup</ulink></para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="daemon-name">
|
||
<para>What is the cute little red guy's name?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>He does not have one, and is just called <quote>the BSD
|
||
daemon</quote>. If you insist upon using a name, call him
|
||
<quote>beastie</quote>. Note that <quote>beastie</quote>
|
||
is pronounced <quote>BSD</quote>.</para>
|
||
|
||
<para>You can learn more about the BSD daemon on his <ulink
|
||
url="http://www.mckusick.com/beastie/index.html">home
|
||
page</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="use-beastie">
|
||
<para>Can I use the BSD daemon image?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Perhaps. The BSD daemon is copyrighted by Marshall
|
||
Kirk McKusick. You will want to check his <ulink
|
||
url="http://www.mckusick.com/beastie/mainpage/copyright.html">Statement
|
||
on the Use of the BSD Daemon Figure</ulink> for detailed
|
||
usage terms.</para>
|
||
|
||
<para>In summary, you are free to use the image in a tasteful
|
||
manner, for personal use, so long as appropriate credit is
|
||
given. If you want to use him commercially, you must
|
||
contact Kirk McKusick. More details are available on the
|
||
<ulink
|
||
url="http://www.mckusick.com/beastie/index.html">BSD
|
||
Daemon's home page</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="daemon-images">
|
||
<para>Do you have any BSD daemon images I could use?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>You will find eps and Xfig drawings under
|
||
<filename>/usr/share/examples/BSD_daemon/</filename>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="glossary">
|
||
<para>I have seen an acronym or other term on the mailing
|
||
lists and I do not understand what it means. Where should
|
||
I look?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Please see the <ulink
|
||
url="&url.books.handbook;/freebsd-glossary.html">
|
||
&os Glossary</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="bikeshed-painting">
|
||
<para>Why should I care what color the bikeshed is?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The really, really short answer is that you should not.
|
||
The somewhat longer answer is that just because you are
|
||
capable of building a bikeshed does not mean you should stop
|
||
others from building one just because you do not like the
|
||
color they plan to paint it. This is a metaphor indicating
|
||
that you need not argue about every little feature just
|
||
because you know enough to do so. Some people have
|
||
commented that the amount of noise generated by a change is
|
||
inversely proportional to the complexity of the
|
||
change.</para>
|
||
|
||
<para>The longer and more complete answer is that after a very
|
||
long argument about whether &man.sleep.1; should take
|
||
fractional second arguments, &a.phk; posted a long
|
||
message entitled <quote><ulink
|
||
url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">A bike
|
||
shed (any color will do) on greener grass...</ulink></quote>.
|
||
The appropriate portions of that message are quoted
|
||
below.</para>
|
||
|
||
<blockquote>
|
||
<attribution>&a.phk; on freebsd-hackers, October
|
||
2, 1999</attribution>
|
||
|
||
<para>
|
||
<quote>What is it about this bike shed?</quote> Some
|
||
of you have asked me.</para>
|
||
|
||
<para>It is a long story, or rather it is an old story, but
|
||
it is quite short actually. C. Northcote Parkinson wrote
|
||
a book in the early 1960s, called <quote>Parkinson's
|
||
Law</quote>, which contains a lot of insight into the
|
||
dynamics of management.</para>
|
||
|
||
<para>[snip a bit of commentary on the book]</para>
|
||
|
||
<para>In the specific example involving the bike shed, the
|
||
other vital component is an atomic power-plant, I guess
|
||
that illustrates the age of the book.</para>
|
||
|
||
<para>Parkinson shows how you can go into the board of
|
||
directors and get approval for building a multi-million or
|
||
even billion dollar atomic power plant, but if you want to
|
||
build a bike shed you will be tangled up in endless
|
||
discussions.</para>
|
||
|
||
<para>Parkinson explains that this is because an atomic
|
||
plant is so vast, so expensive and so complicated that
|
||
people cannot grasp it, and rather than try, they fall
|
||
back on the assumption that somebody else checked all the
|
||
details before it got this far. Richard P. Feynmann
|
||
gives a couple of interesting, and very much to the point,
|
||
examples relating to Los Alamos in his books.</para>
|
||
|
||
<para>A bike shed on the other hand. Anyone can build one
|
||
of those over a weekend, and still have time to watch the
|
||
game on TV. So no matter how well prepared, no matter how
|
||
reasonable you are with your proposal, somebody will seize
|
||
the chance to show that he is doing his job, that he is
|
||
paying attention, that he is
|
||
<emphasis>here</emphasis>.</para>
|
||
|
||
<para>In Denmark we call it <quote>setting your
|
||
fingerprint</quote>. It is about personal pride and
|
||
prestige, it is about being able to point somewhere and
|
||
say <quote>There! <emphasis>I</emphasis> did that.</quote>
|
||
It is a strong trait in politicians, but present in most
|
||
people given the chance. Just think about footsteps in
|
||
wet cement.</para>
|
||
</blockquote>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="funnies">
|
||
<title>Χιούμορ και FreeBSD</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="very-very-cool">
|
||
<para>How cool is FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Q. Has anyone done any temperature testing while
|
||
running FreeBSD? I know &linux; runs cooler than DOS, but have
|
||
never seen a mention of FreeBSD. It seems to run really
|
||
hot.</para>
|
||
|
||
<para>A. No, but we have done numerous taste tests on
|
||
blindfolded volunteers who have also had 250 micrograms of
|
||
LSD-25 administered beforehand. 35% of the volunteers said that
|
||
FreeBSD tasted sort of orange, whereas &linux; tasted like purple
|
||
haze. Neither group mentioned any significant variances in
|
||
temperature. We eventually had to throw the
|
||
results of this survey out entirely anyway when we found that
|
||
too many volunteers were wandering out of the room during the
|
||
tests, thus skewing the results. We think most of the volunteers
|
||
are at Apple now, working on their new <quote>scratch and
|
||
sniff</quote> GUI. It is a funny old business we are in!</para>
|
||
|
||
<para>Seriously, both FreeBSD and &linux; use the
|
||
<acronym>HLT</acronym> (halt) instruction when the system is
|
||
idle thus lowering its energy consumption and therefore the
|
||
heat it generates. Also if you have APM (advanced power
|
||
management) configured, then FreeBSD can also put the CPU into
|
||
a low power mode.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="letmeoutofhere">
|
||
<para>Who is scratching in my memory banks??</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Q. Is there anything <quote>odd</quote> that FreeBSD
|
||
does when compiling the kernel which would cause the memory to
|
||
make a scratchy sound? When compiling (and for a brief moment
|
||
after recognizing the floppy drive upon startup, as well), a
|
||
strange scratchy sound emanates from what appears to be the
|
||
memory banks.</para>
|
||
|
||
<para>A. Yes! You will see frequent references to
|
||
<quote>daemons</quote> in the BSD documentation, and what most
|
||
people do not know is that this refers to genuine, non-corporeal
|
||
entities that now possess your computer. The scratchy sound
|
||
coming from your memory is actually high-pitched whispering
|
||
exchanged among the daemons as they best decide how to deal
|
||
with various system administration tasks.</para>
|
||
|
||
<para>If the noise gets to you, a good
|
||
<command>fdisk /mbr</command> from DOS will get rid of them,
|
||
but do not be surprised if they react adversely and try to stop
|
||
you. In fact, if at any point during the exercise you hear the
|
||
satanic voice of Bill Gates coming from the built-in speaker,
|
||
take off running and do not ever look back! Freed from the
|
||
counterbalancing influence of the BSD daemons, the twin demons
|
||
of DOS and &windows; are often able to re-assert total control
|
||
over your machine to the eternal damnation of your soul.
|
||
Now that you know, given a choice you would probably prefer to get
|
||
used to the scratchy noises, no?</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="changing-lightbulbs">
|
||
<para>How many FreeBSD hackers does it take to change a
|
||
lightbulb?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>One thousand, one hundred and sixty-nine:</para>
|
||
|
||
<para>Twenty-three to complain to -CURRENT about the lights
|
||
being out;</para>
|
||
|
||
<para>Four to claim that it is a configuration problem, and
|
||
that such matters really belong on -questions;</para>
|
||
|
||
<para>Three to submit PRs about it, one of which is misfiled
|
||
under doc and consists only of <quote>it's dark</quote>;</para>
|
||
|
||
<para>One to commit an untested lightbulb which breaks
|
||
buildworld, then back it out five minutes later;</para>
|
||
|
||
<para>Eight to flame the PR originators for not including
|
||
patches in their PRs;</para>
|
||
|
||
<para>Five to complain about buildworld being broken;</para>
|
||
|
||
<para>Thirty-one to answer that it works for them, and they
|
||
must have cvsupped at a bad time;</para>
|
||
|
||
<para>One to post a patch for a new lightbulb to -hackers;</para>
|
||
|
||
<para>One to complain that he had patches for this three years
|
||
ago, but when he sent them to -CURRENT they were just ignored,
|
||
and he has had bad experiences with the PR system; besides,
|
||
the proposed new lightbulb is non-reflexive;</para>
|
||
|
||
<para>Thirty-seven to scream that lightbulbs do not belong in
|
||
the base system, that committers have no right to do things
|
||
like this without consulting the Community, and WHAT IS
|
||
-CORE DOING ABOUT IT!?</para>
|
||
|
||
<para>Two hundred to complain about the color of the bicycle
|
||
shed;</para>
|
||
|
||
<para>Three to point out that the patch breaks &man.style.9;;</para>
|
||
|
||
<para>Seventeen to complain that the proposed new lightbulb is
|
||
under GPL;</para>
|
||
|
||
<para>Five hundred and eighty-six to engage in a flame war
|
||
about the comparative advantages of the GPL, the BSD
|
||
license, the MIT license, the NPL, and the personal hygiene
|
||
of unnamed FSF founders;</para>
|
||
|
||
<para>Seven to move various portions of the thread to -chat
|
||
and -advocacy;</para>
|
||
|
||
<para>One to commit the suggested lightbulb, even though it
|
||
shines dimmer than the old one;</para>
|
||
|
||
<para>Two to back it out with a furious flame of a commit
|
||
message, arguing that FreeBSD is better off in the dark than
|
||
with a dim lightbulb;</para>
|
||
|
||
<para>Forty-six to argue vociferously about the backing out
|
||
of the dim lightbulb and demanding a statement from
|
||
-core;</para>
|
||
|
||
<para>Eleven to request a smaller lightbulb so it will fit
|
||
their Tamagotchi if we ever decide to port FreeBSD to that
|
||
platform;</para>
|
||
|
||
<para>Seventy-three to complain about the SNR on -hackers and
|
||
-chat and unsubscribe in protest;</para>
|
||
|
||
<para>Thirteen to post <quote>unsubscribe</quote>,
|
||
<quote>How do I unsubscribe?</quote>, or <quote>Please
|
||
remove me from the list</quote>, followed by the usual
|
||
footer;</para>
|
||
|
||
<para>One to commit a working lightbulb while everybody is too
|
||
busy flaming everybody else to notice;</para>
|
||
|
||
<para>Thirty-one to point out that the new lightbulb would shine
|
||
0.364% brighter if compiled with TenDRA (although it will have
|
||
to be reshaped into a cube), and that FreeBSD should therefore
|
||
switch to TenDRA instead of GCC;</para>
|
||
|
||
<para>One to complain that the new lightbulb lacks
|
||
fairings;</para>
|
||
|
||
<para>Nine (including the PR originators) to ask
|
||
<quote>what is MFC?</quote>;</para>
|
||
|
||
<para>Fifty-seven to complain about the lights being out two
|
||
weeks after the bulb has been changed.</para>
|
||
|
||
<para><emphasis>&a.nik; adds:</emphasis></para>
|
||
|
||
<para><emphasis>I was laughing quite hard at
|
||
this.</emphasis></para>
|
||
|
||
<para><emphasis>And then I thought, <quote>Hang on,
|
||
shouldn't there be '1 to document it.' in that list
|
||
somewhere?</quote></emphasis></para>
|
||
|
||
<para><emphasis>And then I was enlightened :-)</emphasis></para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="dev-null">
|
||
<para>Where does data written to <filename>/dev/null</filename>
|
||
go?</para>
|
||
</question>
|
||
<answer>
|
||
<para>It goes into a special data sink in the CPU where it
|
||
is converted to heat which is vented through the heatsink
|
||
/ fan assembly. This is why CPU cooling is increasingly
|
||
important; as people get used to faster processors, they
|
||
become careless with their data and more and more of it
|
||
ends up in <filename>/dev/null</filename>, overheating
|
||
their CPUs. If you delete <filename>/dev/null</filename>
|
||
(which effectively disables the CPU data sink) your CPU
|
||
may run cooler but your system will quickly become
|
||
constipated with all that excess data and start to behave
|
||
erratically. If you have a fast network connection you
|
||
can cool down your CPU by reading data out of
|
||
<filename>/dev/random</filename> and sending it off
|
||
somewhere; however you run the risk of overheating your
|
||
network connection and <filename>/</filename> or angering
|
||
your ISP, as most of the data will end up getting
|
||
converted to heat by their equipment, but they generally
|
||
have good cooling, so if you do not overdo it you should be
|
||
OK.</para>
|
||
|
||
<para><emphasis>Paul Robinson adds:</emphasis></para>
|
||
|
||
<para>There are other methods. As every good sysadmin knows,
|
||
it is part of standard practice to send data to the screen
|
||
of interesting variety to keep all the pixies that make up
|
||
your picture happy. Screen pixies (commonly mis-typed or
|
||
re-named as <quote>pixels</quote> are categorized by the type of hat
|
||
they wear (red, green or blue) and will hide or appear
|
||
(thereby showing the color of their hat) whenever they
|
||
receive a little piece of food. Video cards turn data into
|
||
pixie-food, and then send them to the pixies - the more
|
||
expensive the card, the better the food, so the better
|
||
behaved the pixies are. They also need constant stimulation
|
||
- this is why screen savers exist.</para>
|
||
|
||
<para>To take your suggestions further, you could just throw
|
||
the random data to console, thereby letting the pixies
|
||
consume it. This causes no heat to be produced at all,
|
||
keeps the pixies happy and gets rid of your data quite
|
||
quickly, even if it does make things look a bit messy on
|
||
your screen.</para>
|
||
|
||
<para>Incidentally, as an ex-admin of a large ISP who
|
||
experienced many problems attempting to maintain a stable
|
||
temperature in a server room, I would strongly discourage
|
||
people sending the data they do not want out to the
|
||
network. The fairies who do the packet switching and
|
||
routing get annoyed by it as well.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="advanced">
|
||
<title>Προχωρημένα Θέματα</title>
|
||
|
||
<qandaset>
|
||
<qandaentry>
|
||
<question id="learn-advanced">
|
||
<para>How can I learn more about FreeBSD's internals?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>At this time, there is only one book on FreeBSD-specific OS
|
||
internals, namely <quote>The Design and Implementation of the
|
||
FreeBSD Operating System</quote> by Marshall Kirk McKusick and
|
||
George V. Neville-Neil, ISBN 0-201-70245-2, which
|
||
focuses on version 5.X of FreeBSD.</para>
|
||
|
||
<para>Additionally, much general &unix; knowledge is directly
|
||
applicable to FreeBSD.</para>
|
||
|
||
<para>For a list of relevant books, please check the Handbook's <ulink
|
||
url="&url.books.handbook;/bibliography-osinternals.html">Operating
|
||
System Internals Bibliography</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="how-to-contribute">
|
||
<para>How can I contribute to FreeBSD?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Please see the article on <ulink
|
||
url="&url.articles.contributing;/article.html">Contributing
|
||
to FreeBSD</ulink> for specific advice on how to do this.
|
||
Assistance is more than welcome!</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="define-snap-release">
|
||
<para>What are SNAPs and RELEASEs?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>There are currently three active/semi-active branches
|
||
in the FreeBSD <ulink
|
||
url="http://www.FreeBSD.org/cgi/cvsweb.cgi"> CVS
|
||
Repository</ulink>. (Earlier branches are only changed
|
||
very rarely, which is why there are only three active
|
||
branches of development):</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>RELENG_5</literal> AKA
|
||
<emphasis>5-STABLE</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>RELENG_6</literal> AKA
|
||
<emphasis>6-STABLE</emphasis></para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para><literal>HEAD</literal> AKA
|
||
<emphasis>-CURRENT</emphasis> AKA
|
||
<emphasis>7.X-CURRENT</emphasis></para>
|
||
</listitem>
|
||
|
||
</itemizedlist>
|
||
|
||
<para><literal>HEAD</literal> is not an actual branch tag,
|
||
like the other two; it is simply a symbolic constant for
|
||
<quote><emphasis>the current, non-branched development
|
||
stream</emphasis></quote> which we simply refer to as
|
||
<quote>-CURRENT</quote>.</para>
|
||
|
||
<para>Right now, <quote>-CURRENT</quote> is the 7.X development
|
||
stream; the <literal>5-STABLE</literal> branch,
|
||
<symbol>RELENG_5</symbol>, forked off from
|
||
<quote>-CURRENT</quote> in October 2004, and
|
||
the <literal>6-STABLE</literal> branch,
|
||
<symbol>RELENG_6</symbol>, forked off from
|
||
<quote>-CURRENT</quote> in November 2005.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="custrel">
|
||
<para>How do I make my own custom release?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Please see the <ulink
|
||
url="&url.articles.releng;/article.html">
|
||
Release Engineering</ulink> article.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="makeworld-clobbers">
|
||
<para>Why does <command>make world</command> clobber my existing
|
||
installed binaries?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes, this is the general idea; as its name might suggest,
|
||
<command>make world</command> rebuilds every system binary from
|
||
scratch, so you can be certain of having a clean and consistent
|
||
environment at the end (which is why it takes so long).</para>
|
||
|
||
<para>If the environment variable <literal>DESTDIR</literal>
|
||
is defined while running <command>make world</command> or
|
||
<command>make install</command>, the newly-created binaries
|
||
will be deposited in a directory tree identical to the
|
||
installed one, rooted at <literal>${DESTDIR}</literal>.
|
||
Some random combination of shared libraries modifications and
|
||
program rebuilds can cause this to fail in <command>make
|
||
world</command> however.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="cvsup-round-robin">
|
||
<para>Why isn't cvsup.FreeBSD.org a round robin DNS entry to
|
||
share the load amongst the various CVSup servers?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>While CVSup mirrors update from the master CVSup
|
||
server hourly, this update might happen at any time during
|
||
the hour. This means that some servers have newer code
|
||
than others, even though all servers have code that is
|
||
less than an hour old. If <hostid role="fqdn">cvsup.FreeBSD.org</hostid> was a round
|
||
robin DNS entry that simply redirected users to a random
|
||
CVSup server, running CVSup twice in a row could download
|
||
code older than the code already on the system.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="bus-speed-defaulted">
|
||
<para>Why does my system say <quote>(bus speed
|
||
defaulted)</quote> when it boots?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>The Adaptec 1542 SCSI host adapters allow the user to
|
||
configure their bus access speed in software. Previous versions
|
||
of the 1542 driver tried to determine the fastest usable speed
|
||
and set the adapter to that. We found that this breaks some
|
||
users' systems, so you now have to define the
|
||
<symbol>TUNE_1542</symbol> kernel configuration option in order
|
||
to have this take place. Using it on those systems where it
|
||
works may make your disks run faster, but on those systems
|
||
where it does not, your data could be corrupted.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="ctm">
|
||
<para>Can I follow -CURRENT with limited Internet access?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Yes, you can do this <emphasis>without</emphasis>
|
||
downloading the whole source tree by using the <ulink
|
||
url="&url.books.handbook;/synching.html#CTM">CTM facility</ulink>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="split-240k">
|
||
<para>How did you split the distribution into 240k files?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Newer BSD based systems have a <option>-b</option>
|
||
option to &man.split.1; that allows them to split files on arbitrary
|
||
byte boundaries.</para>
|
||
|
||
<para>Here is an example from
|
||
<filename>/usr/src/Makefile</filename>.</para>
|
||
|
||
<programlisting>bin-tarball:
|
||
(cd ${DISTDIR}; \
|
||
tar cf - . \
|
||
gzip --no-name -9 -c | \
|
||
split -b 240640 - \
|
||
${RELEASEDIR}/tarballs/bindist/bin_tgz.)</programlisting>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="submitting-kernel-extensions">
|
||
<para>I have written a kernel extension, who do I send it
|
||
to?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>Please take a look at the article on <ulink
|
||
url="&url.articles.contributing;/article.html">Contributing
|
||
to FreeBSD</ulink> to learn how to submit code.</para>
|
||
|
||
<para>And thanks for the thought!</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="pnp-initialize">
|
||
<para>How are Plug N Play ISA cards detected and
|
||
initialized?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>By: Frank Durda IV
|
||
<email>uhclem@nemesis.lonestar.org</email></para>
|
||
|
||
<para>In a nutshell, there a few I/O ports that all of the
|
||
PnP boards respond to when the host asks if anyone is out
|
||
there. So when the PnP probe routine starts, it asks if there
|
||
are any PnP boards present, and all the PnP boards respond with
|
||
their model # to a I/O read of the same port, so the probe
|
||
routine gets a wired-OR <quote>yes</quote> to that question. At
|
||
least one bit will be on in that reply. Then the probe code is
|
||
able to cause boards with board model IDs (assigned by
|
||
Microsoft/Intel) lower than X to go <quote>off-line</quote>. It
|
||
then looks to see if any boards are still responding to the
|
||
query. If the answer was <literal>0</literal>, then there are
|
||
no boards with IDs above X. Now probe asks if there are any
|
||
boards below <literal>X</literal>. If so, probe knows there are
|
||
boards with a model numbers below X. Probe then asks for boards
|
||
greater than X-(limit/4) to go off-line. If repeats the query.
|
||
By repeating this semi-binary search of IDs-in-range enough
|
||
times, the probing code will eventually identify all PnP boards
|
||
present in a given machine with a number of iterations that is
|
||
much lower than what 2^64 would take.</para>
|
||
|
||
<para>The IDs are two 32-bit fields (hence 2ˆ64) + 8 bit
|
||
checksum. The first 32 bits are a vendor identifier. They never
|
||
come out and say it, but it appears to be assumed that
|
||
different types of boards from the same vendor could have
|
||
different 32-bit vendor ids. The idea of needing 32 bits just
|
||
for unique manufacturers is a bit excessive.</para>
|
||
|
||
<para>The lower 32 bits are a serial #, Ethernet address,
|
||
something that makes this one board unique. The vendor must
|
||
never produce a second board that has the same lower 32 bits
|
||
unless the upper 32 bits are also different. So you can have
|
||
multiple boards of the same type in the machine and the full 64
|
||
bits will still be unique.</para>
|
||
|
||
<para>The 32 bit groups can never be all zero. This allows the
|
||
wired-OR to show non-zero bits during the initial binary
|
||
search.</para>
|
||
|
||
<para>Once the system has identified all the board IDs present,
|
||
it will reactivate each board, one at a time (via the same I/O
|
||
ports), and find out what resources the given board needs, what
|
||
interrupt choices are available, etc. A scan is made over all
|
||
the boards to collect this information.</para>
|
||
|
||
<para>This info is then combined with info from any ECU files
|
||
on the hard disk or wired into the MLB BIOS. The ECU and BIOS
|
||
PnP support for hardware on the MLB is usually synthetic, and
|
||
the peripherals do not really do genuine PnP. However by
|
||
examining the BIOS info plus the ECU info, the probe routines
|
||
can cause the devices that are PnP to avoid those devices the
|
||
probe code cannot relocate.</para>
|
||
|
||
<para>Then the PnP devices are visited once more and given
|
||
their I/O, DMA, IRQ and Memory-map address assignments. The
|
||
devices will then appear at those locations and remain there
|
||
until the next reboot, although there is nothing that says you
|
||
cannot move them around whenever you want.</para>
|
||
|
||
<para>There is a lot of oversimplification above, but you
|
||
should get the general idea.</para>
|
||
|
||
<para>Microsoft took over some of the primary printer status
|
||
ports to do PnP, on the logic that no boards decoded those
|
||
addresses for the opposing I/O cycles. I found a genuine IBM
|
||
printer board that did decode writes of the status port during
|
||
the early PnP proposal review period, but MS said
|
||
<quote>tough</quote>. So they do a write to the printer status
|
||
port for setting addresses, plus that use that address +
|
||
<literal>0x800</literal>, and a third I/O port for reading that
|
||
can be located anywhere between <literal>0x200</literal> and
|
||
<literal>0x3ff</literal>.</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="major-numbers">
|
||
<para>Can you assign a major number for a device driver I have
|
||
written?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
|
||
<para>&os.current; after February 2003 has a facility for
|
||
dynamically and automatically allocating major numbers for
|
||
device drivers at runtime. This mechanism is highly
|
||
preferred to the older procedure of statically allocating
|
||
device numbers. Some comments on this subject can be
|
||
found in <filename>src/sys/conf/majors</filename>.</para>
|
||
|
||
<para>If you are forced for some reason to use a static
|
||
major number, the procedure for obtaining one depends on
|
||
whether or not you plan on making the driver publicly
|
||
available. If you do, then please send us a copy of the
|
||
driver source code, plus the appropriate modifications to
|
||
<filename>files.i386</filename>, a sample configuration
|
||
file entry, and the appropriate &man.MAKEDEV.8; code to
|
||
create any special files your device uses. If you do not,
|
||
or are unable to because of licensing restrictions, then
|
||
character major number 32 and block major number 8 have
|
||
been reserved specifically for this purpose; please use
|
||
them. In any case, we would appreciate hearing about your
|
||
driver on the &a.hackers;.</para>
|
||
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="alternate-directory-layout">
|
||
<para>What about alternative layout policies for
|
||
directories?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>In answer to the question of alternative layout policies
|
||
for directories, the scheme that is currently in use is
|
||
unchanged from what I wrote in 1983. I wrote that policy for
|
||
the original fast filesystem, and never revisited it. It works
|
||
well at keeping cylinder groups from filling up. As several of
|
||
you have noted, it works poorly for find. Most filesystems are
|
||
created from archives that were created by a depth first search
|
||
(aka ftw). These directories end up being striped across the
|
||
cylinder groups thus creating a worst possible scenario for
|
||
future depth first searches. If one knew the total number of
|
||
directories to be created, the solution would be to create
|
||
(total / fs_ncg) per cylinder group before moving on.
|
||
Obviously, one would have to create some heuristic to guess at
|
||
this number. Even using a small fixed number like say 10 would
|
||
make an order of magnitude improvement. To differentiate
|
||
restores from normal operation (when the current algorithm is
|
||
probably more sensible), you could use the clustering of up to
|
||
10 if they were all done within a ten second window. Anyway, my
|
||
conclusion is that this is an area ripe for
|
||
experimentation.</para>
|
||
|
||
<para>Kirk McKusick, September 1998</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="kernel-panic-troubleshooting">
|
||
<para>How can I make the most of the data I see when my kernel
|
||
panics?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para><emphasis>[This section was extracted from a mail
|
||
written by &a.wpaul; on the freebsd-current
|
||
<link linkend="mailing">mailing list</link> by &a.des;, who
|
||
fixed a few typos and added the bracketed comments]
|
||
</emphasis></para>
|
||
|
||
<programlisting>From: Bill Paul <wpaul@skynet.ctr.columbia.edu>
|
||
Subject: Re: the fs fun never stops
|
||
To: Ben Rosengart
|
||
Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
|
||
Cc: current@FreeBSD.org</programlisting>
|
||
|
||
<para><emphasis>Ben Rosengart posted the following
|
||
panic message]</emphasis></para>
|
||
|
||
<programlisting>> Fatal trap 12: page fault while in kernel mode
|
||
> fault virtual address = 0x40
|
||
> fault code = supervisor read, page not present
|
||
> instruction pointer = 0x8:0xf014a7e5
|
||
^^^^^^^^^^
|
||
> stack pointer = 0x10:0xf4ed6f24
|
||
> frame pointer = 0x10:0xf4ed6f28
|
||
> code segment = base 0x0, limit 0xfffff, type 0x1b
|
||
> = DPL 0, pres 1, def32 1, gran 1
|
||
> processor eflags = interrupt enabled, resume, IOPL = 0
|
||
> current process = 80 (mount)
|
||
> interrupt mask =
|
||
> trap number = 12
|
||
> panic: page fault</programlisting>
|
||
|
||
<para>[When] you see a message like this, it is not enough to just
|
||
reproduce it and send it in. The instruction pointer value that
|
||
I highlighted up there is important; unfortunately, it is also
|
||
configuration dependent. In other words, the value varies
|
||
depending on the exact kernel image that you are using. If
|
||
you are using a GENERIC kernel image from one of the snapshots,
|
||
then it is possible for somebody else to track down the
|
||
offending function, but if you are running a custom kernel then
|
||
only <emphasis>you</emphasis> can tell us where the fault
|
||
occurred.</para>
|
||
|
||
<para>What you should do is this:</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<para>Write down the instruction pointer value. Note that
|
||
the <literal>0x8:</literal> part at the beginning is not
|
||
significant in this case: it is the
|
||
<literal>0xf0xxxxxx</literal> part that we want.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>When the system reboots, do the following:
|
||
|
||
<screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxxx</userinput></screen>
|
||
|
||
where <literal>f0xxxxxx</literal> is the instruction
|
||
pointer value. The odds are you will not get an exact
|
||
match since the symbols in the kernel symbol table are
|
||
for the entry points of functions and the instruction
|
||
pointer address will be somewhere inside a function, not
|
||
at the start. If you do not get an exact match, omit the
|
||
last digit from the instruction pointer value and try
|
||
again, i.e.:
|
||
|
||
<screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxx</userinput></screen>
|
||
|
||
If that does not yield any results, chop off another
|
||
digit. Repeat until you get some sort of output. The
|
||
result will be a possible list of functions which caused
|
||
the panic. This is a less than exact mechanism for
|
||
tracking down the point of failure, but it is better than
|
||
nothing.</para>
|
||
</step>
|
||
</procedure>
|
||
|
||
<para>I see people constantly show panic messages like this
|
||
but rarely do I see someone take the time to match up the
|
||
instruction pointer with a function in the kernel symbol
|
||
table.</para>
|
||
|
||
<para>The best way to track down the cause of a panic is by
|
||
capturing a crash dump, then using &man.gdb.1; to generate
|
||
a stack trace on the crash dump.</para>
|
||
|
||
<para>In any case, the method I normally use is this:</para>
|
||
|
||
<procedure>
|
||
<step>
|
||
<para>Set up a kernel config file, optionally adding
|
||
<literal>options DDB</literal> if you think you need
|
||
the kernel debugger for something. (I use this mainly
|
||
for setting breakpoints if I suspect an infinite loop
|
||
condition of some kind.)</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Use <command>config -g
|
||
<replaceable>KERNELCONFIG</replaceable></command> to set
|
||
up the build directory.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para><command>cd /sys/compile/<replaceable>KERNELCONFIG</replaceable>; make</command></para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>Wait for kernel to finish compiling.</para>
|
||
</step>
|
||
|
||
<step>
|
||
<para><command>make install</command></para>
|
||
</step>
|
||
|
||
<step>
|
||
<para>reboot</para>
|
||
</step>
|
||
</procedure>
|
||
|
||
<para>The &man.make.1; process will have built two kernels.
|
||
<filename>kernel</filename> and
|
||
<filename>kernel.debug</filename>.
|
||
<filename>kernel</filename> was installed as
|
||
<filename>/kernel</filename>, while
|
||
<filename>kernel.debug</filename> can be used as the
|
||
source of debugging symbols for &man.gdb.1;.</para>
|
||
|
||
<para>To make sure you capture a crash dump, you need edit
|
||
<filename>/etc/rc.conf</filename> and set
|
||
<literal>dumpdev</literal> to point to your swap
|
||
partition. This will cause the &man.rc.8; scripts to use
|
||
the &man.dumpon.8; command to enable crash dumps. You can
|
||
also run &man.dumpon.8; manually. After a panic, the
|
||
crash dump can be recovered using &man.savecore.8;; if
|
||
<literal>dumpdev</literal> is set in
|
||
<filename>/etc/rc.conf</filename>, the &man.rc.8; scripts
|
||
will run &man.savecore.8; automatically and put the crash
|
||
dump in <filename>/var/crash</filename>.</para>
|
||
|
||
<note>
|
||
<para>FreeBSD crash dumps are usually the same size as the
|
||
physical RAM size of your machine. That is, if you have
|
||
64MB of RAM, you will get a 64MB crash dump. Therefore you
|
||
must make sure there is enough space in
|
||
<filename>/var/crash</filename> to hold the dump.
|
||
Alternatively, you run &man.savecore.8;
|
||
manually and have it recover the crash dump to another
|
||
directory where you have more room. It is possible to limit
|
||
the size of the crash dump by using <literal>options
|
||
MAXMEM=(foo)</literal> to set the amount of memory the
|
||
kernel will use to something a little more sensible. For
|
||
example, if you have 128MB of RAM, you can limit the
|
||
kernel's memory usage to 16MB so that your crash dump size
|
||
will be 16MB instead of 128MB.</para>
|
||
</note>
|
||
|
||
<para>Once you have recovered the crash dump, you can get a
|
||
stack trace with &man.gdb.1; as follows:</para>
|
||
|
||
<screen>&prompt.user; <userinput>gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0</userinput>
|
||
<prompt>(gdb)</prompt> <userinput>where</userinput></screen>
|
||
|
||
<para>Note that there may be several screens worth of
|
||
information; ideally you should use
|
||
&man.script.1; to capture all of them. Using the
|
||
unstripped kernel image with all the debug symbols should show
|
||
the exact line of kernel source code where the panic occurred.
|
||
Usually you have to read the stack trace from the bottom up in
|
||
order to trace the exact sequence of events that lead to the
|
||
crash. You can also use &man.gdb.1; to print out
|
||
the contents of various variables or structures in order to
|
||
examine the system state at the time of the crash.</para>
|
||
|
||
<para>Now, if you are really insane and have a second computer,
|
||
you can also configure &man.gdb.1; to do remote
|
||
debugging such that you can use &man.gdb.1; on
|
||
one system to debug the kernel on another system, including
|
||
setting breakpoints, single-stepping through the kernel code,
|
||
just like you can do with a normal user-mode program. I have not
|
||
played with this yet as I do not often have the chance to set up
|
||
two machines side by side for debugging purposes.</para>
|
||
|
||
<para><emphasis>[Bill adds: "I forgot to mention one thing: if
|
||
you have DDB enabled and the kernel drops into the debugger,
|
||
you can force a panic (and a crash dump) just by typing 'panic'
|
||
at the ddb prompt. It may stop in the debugger again during the
|
||
panic phase. If it does, type 'continue' and it will finish the
|
||
crash dump." -ed]</emphasis></para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="dlsym-failure">
|
||
<para>Why has dlsym() stopped working for ELF executables?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>The ELF toolchain does not, by default, make the symbols
|
||
defined in an executable visible to the dynamic linker.
|
||
Consequently <function>dlsym()</function> searches on handles
|
||
obtained from calls to <function>dlopen(NULL,
|
||
flags)</function> will fail to find such symbols.</para>
|
||
|
||
<para>If you want to search, using
|
||
<function>dlsym()</function>, for symbols present in the
|
||
main executable of a process, you need to link the
|
||
executable using the <option>-export-dynamic</option>
|
||
option to the ELF linker (&man.ld.1;).</para>
|
||
</answer>
|
||
</qandaentry>
|
||
|
||
<qandaentry>
|
||
<question id="change-kernel-address-space">
|
||
<para>How can I increase or reduce the kernel address space?</para>
|
||
</question>
|
||
|
||
<answer>
|
||
<para>By default, the kernel address space is 256 MB on
|
||
FreeBSD 3.X and 1 GB on FreeBSD 4.X. If you run a
|
||
network-intensive server (e.g. a large FTP or HTTP server),
|
||
you might find that 256 MB is not enough.</para>
|
||
|
||
<para>So how do you increase the address space? There are two
|
||
aspects to this. First, you need to tell the kernel to reserve
|
||
a larger portion of the address space for itself. Second, since
|
||
the kernel is loaded at the top of the address space, you need
|
||
to lower the load address so it does not bump its head against
|
||
the ceiling.</para>
|
||
|
||
<para>The first goal is achieved by increasing the value of
|
||
<literal>NKPDE</literal> in
|
||
<filename>src/sys/i386/include/pmap.h</filename>. Here is what
|
||
it looks like for a 1 GB address space:</para>
|
||
|
||
<programlisting>#ifndef NKPDE
|
||
#ifdef SMP
|
||
#define NKPDE 254 /* addressable number of page tables/pde's */
|
||
#else
|
||
#define NKPDE 255 /* addressable number of page tables/pde's */
|
||
#endif /* SMP */
|
||
#endif</programlisting>
|
||
|
||
<para>To find the correct value of <literal>NKPDE</literal>,
|
||
divide the desired address space size (in megabytes) by four,
|
||
then subtract one for UP and two for SMP.</para>
|
||
|
||
<para>To achieve the second goal, you need to compute the
|
||
correct load address: simply subtract the address space size
|
||
(in bytes) from 0x100100000; the result is 0xc0100000 for a 1
|
||
GB address space. Set <symbol>LOAD_ADDRESS</symbol> in
|
||
<filename>src/sys/i386/conf/Makefile.i386</filename> to that
|
||
value; then set the location counter in the beginning of the
|
||
section listing in
|
||
<filename>src/sys/i386/conf/kernel.script</filename> to the
|
||
same value, as follows:</para>
|
||
|
||
<programlisting>OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
|
||
OUTPUT_ARCH(i386)
|
||
ENTRY(btext)
|
||
SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib);
|
||
SECTIONS
|
||
{
|
||
/* Read-only sections, merged into text segment: */
|
||
. = 0xc0100000 + SIZEOF_HEADERS;
|
||
.interp : { *(.interp) }</programlisting>
|
||
|
||
<para>Then reconfig and rebuild your kernel. You will
|
||
probably have problems with &man.ps.1; &man.top.1; and the
|
||
like; <command>make world</command> should take care of it
|
||
(or a manual rebuild of <filename>libkvm</filename>,
|
||
&man.ps.1; and &man.top.1; after copying the patched
|
||
<filename>pmap.h</filename> to
|
||
<filename>/usr/include/vm/</filename>.</para>
|
||
|
||
<para>NOTE: the size of the kernel address space must be a
|
||
multiple of four megabytes.</para>
|
||
|
||
<para>[&a.dg; adds: <emphasis>I think the kernel address space
|
||
needs to be a power of two, but I am not certain about that. The
|
||
old(er) boot code used to monkey with the high order address bits
|
||
and I think expected at least 256MB
|
||
granularity.]</emphasis></para>
|
||
</answer>
|
||
</qandaentry>
|
||
</qandaset>
|
||
</chapter>
|
||
|
||
<chapter id="acknowledgments">
|
||
<title>Ευχαριστίες</title>
|
||
|
||
<para>This innocent little Frequently Asked Questions document has
|
||
been written, rewritten, edited, folded, spindled, mutilated,
|
||
eviscerated, contemplated, discombobulated, cogitated,
|
||
regurgitated, rebuilt, castigated, and reinvigorated over the
|
||
last decade, by a cast of hundreds if not thousands.
|
||
Repeatedly.</para>
|
||
|
||
<para>We wish to thank every one of the people responsible, and we
|
||
encourage you to to <ulink
|
||
url="&url.articles.contributing;/article.html">join them</ulink>
|
||
in making this FAQ even better.</para>
|
||
|
||
</chapter>
|
||
|
||
&bibliography;
|
||
</book>
|