attempt to fix build breakage

If I understand correctly the build broke because the non-english articles
import from the english version of fbsd-from-scratch.

Remove the translated articles for the articles I removed in English
This commit is contained in:
Eitan Adler 2015-04-03 05:08:29 +00:00
parent 4e77ebb874
commit db5df9d85f
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=46443
31 changed files with 0 additions and 4977 deletions
de_DE.ISO8859-1/articles
el_GR.ISO8859-7/articles
es_ES.ISO8859-1/articles
fr_FR.ISO8859-1/articles
hu_HU.ISO8859-2/articles
ja_JP.eucJP/articles
ru_RU.KOI8-R/articles

View file

@ -9,7 +9,6 @@ SUBDIR = contributing
SUBDIR+= contributing-ports
SUBDIR+= explaining-bsd
SUBDIR+= freebsd-update-server
SUBDIR+= laptop
SUBDIR+= linux-comparison
SUBDIR+= nanobsd
SUBDIR+= new-users

View file

@ -1,24 +0,0 @@
#
# The FreeBSD Documentation Project
# The FreeBSD German Documentation Project
#
# $FreeBSD$
# $FreeBSDde: de-docproj/articles/laptop/Makefile,v 1.2 2005/01/06 20:22:43 mheinen Exp $
# basiert auf: 1.4
#
# Article: FreeBSD und Notebooks
DOC?= article
FORMATS?= html html-split
WITH_ARTICLE_TOC?= YES
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.xml
URL_RELPREFIX?= ../../../..
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,342 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!-- The FreeBSD Documentation Project
The FreeBSD German Documentation Project
$FreeBSD$
$FreeBSDde: de-docproj/articles/laptop/article.xml,v 1.6 2007/01/16 18:56:31 jkois Exp $
basiert auf: 1.25
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="de">
<info><title>FreeBSD und Notebooks</title>
<abstract>
<para>FreeBSD läuft, von wenigen Ausnahmen abgesehen, auf
den meisten Notebooks problemlos. In diesem Artikel werden
einige Probleme diskutiert, die beim Einsatz von FreeBSD
auf Notebooks auftreten können. Der Hauptgrund für
diese Probleme ist die im Vergleich zu Desktoprechnern oft
unterschiedliche Hardware.</para>
<para><emphasis>Übersetzt von Fabio Tosques</emphasis>.</para>
</abstract>
<legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.linux;
&tm-attrib.microsoft;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
</info>
<para>FreeBSD wird oft für ein reines Server-Betriebssystem
gehalten, obwohl es auch auf Desktoprechnern sehr gut einsetzbar
ist. Falls Sie es auf einem Notebook einsetzen möchten, können
Sie auch hier die Vorzüge von FreeBSD nutzen: Ein systematisches
und stringentes Layout, einfache Administration und
Aktualisierung, das Ports- und Packagesystem für die
Softwareinstallation und vieles andere mehr. Weitere Vorzüge, wie
lange Laufzeiten, Netzwerkperformance und gute Performance unter
hoher Last sind natürlich auf einem Notebookrechner nicht ganz so
wichtig. Auf Notebookrechnern können aber während der
Installation Probleme auftreten, die bei Desktoprechnern nicht
existieren und die daher hier diskutiert werden (Notebooks sind
&ndash; anders als Desktoprechner &ndash; oft auf
&microsoft.windows; abgestimmt). In diesem Artikel sollen solche
Probleme angesprochen werden. Einige Leute haben Ihre Erfahrungen
mit dem Betrieb von &os; auf Notebooks auf eigenen Webseiten
veröffentlicht, die nicht Teil der &os;-Dokumentation sind. Wenn
Sie den Namen Ihres Notebooks zusammen mit <quote>&os;</quote> in
der Suchmaschine Ihrer Wahl eingeben, ist es gut möglich, dass Sie
Informationen finden, die Ihnen weiterhelfen. Zusätzlich
existiert eine &os;-spezifische Online-Datenbank unter <link xlink:href="http://laptop.bsdgroup.de/freebsd/">The &os; Laptop
Compatibility List</link>.</para>
<para>Um in Kontakt mit anderen &os;-Notebook-Besitzern zu treten,
können Sie die Mailingliste &a.mobile.name; abonnieren.
Weitere Informationen zur Nutzung von Notebooks unter &os; finden
sich auch unter <uri xlink:href="http://tuxmobil.org/mobile_bsd.html">http://tuxmobil.org/mobile_bsd.html</uri>.</para>
<sect1 xml:id="xorg">
<title>&xorg;</title>
<para>Neuere Versionen von <application>&xorg;</application>
funktionieren mit den meisten Grafikkarten (Grafikchips), die
heutzutage in Notebooks eingebaut werden. Es ist zwar
möglich, dass die 3D-Beschleunigung nicht unterstützt
wird, die generische SVGA-Konfiguration sollte aber problemlos
funktionieren.</para>
<para>Lesen Sie das Handbuch Ihres Notebooks, um herauszufinden,
welche Grafikkarte (oder welcher Grafikchip) eingebaut wurde.
Danach überprüfen Sie die
<application>&xorg;</application>-Dokumentation, um
festzustellen, ob Ihre Grafikkarte unterstützt wird. Ist dies
nicht der Fall, verwenden Sie einen allgemeinen Treiber.
Versuchen Sie nicht, einfach einen Treiber mit einem ähnlichen
Namen zu verwenden. Mit <userinput>Xorg -configure</userinput>
lassen sich viele Konfigurationsparameter automatisch
einstellen.</para>
<para>Manchmal verursacht auch die Konfiguration des Displays
Probleme. Die verfügbaren &xorg;-Ressourcen
beschränken sich auf die Konfiguration von CRT-Monitoren.
Brauchbare Einstellungen für ein LCD zu finden, ist daher
nicht immer einfach. Vielleicht haben Sie aber auch Glück,
und Sie müssen keine Modelines angeben, da die einfache
Angabe von horizontaler und vertikalen Wiederholrate ausreicht.
Reichen diese Angaben nicht aus, sollten Sie im Internet nach
Seiten suchen, die sich mit der Konfiguration von X auf
Notebooks beschäftigen (diese beziehen sich zwar oft auf Linux,
da allerdings sowohl &os; als auch Linux &xorg; verwenden,
spielt dies keine Rolle). Von dort können Sie sich eine
Modeline kopieren, die für ähnliche Hardware gültig ist.</para>
<para>Die meisten Notebooks haben zwei Maustasten, die unter X nur
selten Probleme verursachen (abgesehen von der mittleren
Maustaste, die oft zum Einfügen von Text benutzt wird). Sie
können aber die mittlere Maustaste emulieren, indem Sie die
linke und rechte Maustaste gleichzeitig drücken. Dazu
müssen Sie die Zeile</para>
<programlisting>Option "Emulate3Buttons"</programlisting>
<para>im Abschnitt <literal>InputDevice</literal> der Datei
<filename>xorg.conf</filename> einfügen.</para>
</sect1>
<sect1 xml:id="modems">
<title>Modems</title>
<para>Notebooks verfügen in der Regel über ein internes
Modem (On-Board-Modem). Leider handelt es sich dabei meist um
so genannte <quote>Winmodems</quote>, deren Funktionalität
in Software implementiert ist, und für die auch nur
Windows-Treiber verfügbar sind (auch wenn einige Hersteller
damit begonnen haben, Treiber für andere Betriebssysteme
bereitzustellen). Besitzt Ihr Modem beispielsweise einen
Lucent&nbsp;LT-Chipsatz, wird dieser wahrscheinlich vom
<package>comms/ltmdm</package>-Port
unterstützt. Hat Ihr Notebook aber ein <quote>Winmodem</quote>
eingebaut, müssen Sie sich ein externes Modem kaufen: Die
kompakteste Lösung sind hier PCMCIA-Modems, die weiter unten
besprochen werden. Serielle oder über USB angeschlossene Modems
sind aber deutlich billiger. In der Regel sollten
<quote>normale</quote> Modems (so genannte Non-Winmodems)
problemlos funktionieren.</para>
</sect1>
<sect1 xml:id="pcmcia">
<title>PCMCIA (PC-Card)-Geräte</title>
<para>Die meisten Notebooks verfügen über PCMCIA- oder
PC-Card-Slots. Diese werden von FreeBSD sehr gut
unterstützt. Verwenden Sie &man.dmesg.8;, um festzustellen,
ob die PCMCIA-Geräte beim Systemstart korrekt erkannt wurden.
Ist dies der Fall, sollten Einträge ähnlich den folgenden
auftauchen: <filename>pccard0</filename>,
<filename>pccard1</filename> sowie Geräte wie
<filename>pcic0</filename>.</para>
<para>&os;&nbsp;4.X unterstützt nur 16-Bit PCMCIA-Karten,
&os;&nbsp;5.X unterstützt sowohl 16-Bit-Karten als auch
32-Bit-Karten. Eine Liste der unterstützten Karten finden Sie
in <filename>/etc/defaults/pccard.conf</filename>. Kaufen Sie
möglichst nur Karten, die in dieser Liste aufgeführt sind. Ist
Ihre Karte nicht aufgeführt, kann sie aber trotzdem
funktionieren, da die meisten 16-Bit-Modems trotzdem unterstützt
werden, vorausgesetzt, es handelt sich nicht um
<quote>Winmodems</quote> (diese gibt es auch bei PCMCIA-Karten,
sie sollten daher beim Kauf der Karte aufpassen). Sollte Ihre
Karte als generisches Modem (<foreignphrase>generic
modem</foreignphrase>) erkannt werden, müssen Sie daran denken,
dass in der Defaultkonfiguration von
<filename>pccard.conf</filename> eine Verzögerung von
10&nbsp;Sekunden angegeben ist (dies verhindert das Einfrieren
bestimmter Modems). Für Ihr Modem kann dieser Eintrag
überflüssig sein, Sie sollten daher versuchen, die Zeit zu
reduzieren oder die Zeile komplett zu entfernen.</para>
<para>Einige Abschnitte der Datei <filename>pccard.conf</filename>
müssen angepasst werden. Prüfen Sie die Zeile, in der
die IRQs aufgeführt werden und entfernen sie jede Zahl, die
schon in Gebrauch ist: Besonders wichtig ist IRQ&nbsp;5, falls
Ihr Notebook eine On-Board-Soundkarte enthält (ansonsten ist
es möglich, dass das System abstürzt). Prüfen Sie
auch die vorhandenen Speicherressourcen: Sollte Ihr Modem nicht
erkannt werden, probieren Sie verschiedene erlaubte Werte aus
(diese sind in &man.pccardc.8; aufgeführt).</para>
<para>Sollte die Karte noch immer nicht funktionieren, starten Sie
den &man.pccardd.8;-Daemon manuell. Um diesen schon beim Booten
zu aktivieren, fügen Sie die Zeile
<programlisting>pccard_enable="YES"</programlisting> in
<filename>/etc/rc.conf</filename> ein. Ihre Karte sollte
nun erkannt werden, und Sie sollten eine Statusmeldung
darüber erhalten, dass neue Geräte vorhanden sind.</para>
<para>Seit &os;&nbsp;4.4-RELEASE wurde der PCMCIA-Code komplett
überarbeitet. Auch die Unterstützung von ISA-Routing
für Interrupts, auf denen &os; nicht in der Lage war, das
PCI-BIOS zu nutzen, ist jetzt enthalten. Falls Sie
PCMCIA-Probleme haben, sollten Sie daher Ihr System
aktualisieren.</para>
</sect1>
<sect1 xml:id="power-management">
<title>Power-Management</title>
<para>Leider sind die Power-Management-Funktionen unter FreeBSD
noch nicht sehr stabil. Mit etwas Glück funktioniert die
eine oder andere Funktion. Oder es funktioniert keine.</para>
<para>Was die Sache nicht einfacher macht, ist, dass es zwei
verschiedene Standards für das Power-Management gibt: APM
und ACPI. Letzteres ist zwar leistungsfähiger und besitzt
mehr Funktionen, verursacht aber auch mehr Probleme.</para>
<para>Manche Laptops unterstützen sowohl APM als auch ACPI
(bis zu einem gewissen Grad), andere unterstützen nur einen
der beiden Standards. Sie sollten also mit beiden
experimentieren, um ein funktionsfähiges Power-Management
zu erhalten.</para>
<note>
<para>Es ist nicht möglich, APM und ACPI gleichzeitig zu
benutzen, auch wenn Ihr Notebook beide unterstützt.</para>
</note>
<sect2>
<title>APM</title>
<para>Das BIOS von APM (Advanced Power Management) stellt
verschiedene Power-Management-Funktionen bereit, darunter
Standby, Suspend, Hibernation, die Drosselung des Prozessors,
und andere mehr. APM wird sowohl von &os;&nbsp;4.X als auch
von &os;&nbsp;5.X unterstützt.</para>
<para>Um die APM-Unterstützung zu aktivieren, können
Sie einen Kernel mit Power-Management-Unterstützung
bauen (<literal>device apm0</literal> bei &os;&nbsp;4.X und
<literal>device apm</literal> bei &os;&nbsp;5.X). Unter
&os;&nbsp;5.X ist auch ein APM-Modul vorhanden. Sie
können das APM-Modul beim Systemstart laden, indem Sie in
<filename>/boot/loader.conf</filename> die Zeile
<literal>apm_load="YES"</literal> einfügen.</para>
<para>Unter &os;&nbsp;5.X müssen Sie in
<filename>/boot/device.hints</filename> folgende Einstellung
vornehmen: <literal>hint.apm.0.disabled="0"</literal>.</para>
<para>Um APM beim Systemstart zu aktivieren, müssen Sie in
<filename>/etc/rc.conf</filename> außerdem folgende Zeile
einfügen: <literal>apm_enable="YES"</literal>. Falls Sie
den &man.apmd.8;-Daemon automatisch starten wollen, fügen
Sie die Zeile <literal>apmd_enable="YES"</literal> in
<filename>/etc/rc.conf</filename> ein. Dieser Daemon
kümmert sich um verschiedene APM-Ereignisse und die
Benachrichtigung des BIOS. Damit kann das Notebook durch
Drücken einer definierten Taste oder durch das
Schließen des Deckels in den Ruhemodus versetzt
werden.</para>
<para>Die verschiedenen APM-Befehle sind in &man.apm.8;
aufgeführt. <command>apm -b</command> zeigt den
aktuellen Akkustatus an, wird dies nicht unterstützt,
den Code 255. <command>apm -Z</command> versetzt das
Notebook in den Standby-Modus, <command>apm -z</command>
(oder <command>zzz</command>) in den Suspend-Modus. Mit
<command>shutdown -p</command> wird das Notebook
heruntergefahren und ausgeschaltet. Es ist möglich,
dass nur einige oder keiner dieser Befehle
funktionieren.</para>
<para>Vielleicht können Sie den Suspend-/Standby-Modus nur auf
der Konsole aktivieren, aber nicht unter X (dann bleibe der
Bildschirm nach dem Reaktivieren dunkel). Seit &os;&nbsp;5.X
könnte eine Lösung darin bestehen, die Zeile <literal>options
SC_NO_SUSPEND_VTYSWITCH</literal> in die
Kernel-Konfigurationsdatei aufzunehmen und den Kernel neu zu
kompilieren. Eine andere Lösung wäre es, vor dem
&man.apm.8;-Aufruf in den Konsolen-Modus zu wechseln, indem
die Tastenkombination <keycombo action="simul"><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo>
oder eine andere Funktionstaste gedrückt wird. Dieser Vorgang
kann mit &man.apmd.8; automatisiert werden, falls der
&man.apmd.8;-Daemon läuft. Dazu fügen Sie die folgenden
Abschnitte in <filename>/etc/apmd.conf</filename>
ein:</para>
<programlisting>apm_event SUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "/etc/rc.suspend";
}
apm_event USERSUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "sync &amp;&amp; sync &amp;&amp; sync";
exec "sleep 1";
exec "apm -z";
}
apm_event NORMRESUME, STANDBYRESUME {
exec "/etc/rc.resume";
exec "vidcontrol -s 9 &lt; /dev/console";
} </programlisting>
</sect2>
<sect2>
<title>ACPI</title>
<para>ACPI (Advanced Configuration and Power Management
Interface) stellt nicht nur Power-Management-Funktionen
bereit, sondern ist auch in der Lage, von Ihnen eingesetzte
Hardware zu erkennen (es ersetzt damit PnP und das PCI-BIOS).
ACPI steht seit &os;&nbsp;5.X zur Verfügung und ist dort
standardmäßig eingeschaltet. Die ACPI-Funktionen
können mit &man.acpiconf.8; gesteuert werden.</para>
<para>Leider werden Notebooks oft mit fehlerhaften
ACPI-Implementierungen verkauft. Ist ACPI in so einem Fall
aktiviert, verursacht es oft mehr Probleme als Nutzen. Es
kann sogar so weit kommen, dass &os; auf manchen Notebooks
nicht startet, wenn ACPI aktiviert ist.</para>
<para>Sollte ACPI auf Ihrem Notebook Probleme verursachen,
sollten Sie prüfen, ob der Hersteller Ihres Notebooks eine
neuere BIOS-Version bereitstellt, in der die ACPI-Fehler
behoben sind. Da die ACPI-Implementierung von &os; sich noch
im Entwicklungsstatus befindet, könnten Sie auch Ihr System
aktualisieren. Die Chancen stehen gut, dass sich Ihre
Probleme damit beheben lassen.</para>
<para>Möchten Sie ACPI abschalten, bearbeiten Sie die
Zeile <literal>hint.acpi.0.disabled="1"</literal> in
<filename>/boot/device.hints</filename>. Falls Sie beim
Systemstart Probleme mit ACPI feststellen, können Sie
ACPI auch am Bootprompt vorläufig deaktivieren, indem Sie
<literal>unset acpi_load</literal> eingeben.
Seit &os;&nbsp;5.1-RELEASE gibt es ein Bootmenü, in dem
Sie unter anderem ACPI deaktivieren können. Dazu
müssen Sie die Option <guimenuitem>2. Boot &os; with ACPI
disabled</guimenuitem> auswählen.</para>
</sect2>
<sect2>
<title>Den Status des Power-Managements anzeigen</title>
<para>Das X-Window-System <application>&xorg;</application>
besitzt eine eigene Funktion, um den Status der
Power-Management-Funktionen anzuzeigen (suchen Sie in
&man.xset.1; nach <quote>dpms</quote>). Leider funktioniert
auch diese Funktion nicht auf allen Notebooks. Oft wird zwar
das Display abgeschaltet, nicht aber die
Hintergrundbeleuchtung.</para>
</sect2>
</sect1>
</article>

View file

@ -11,7 +11,6 @@ SUBDIR+= explaining-bsd
SUBDIR+= freebsd-questions
SUBDIR+= gjournal-desktop
SUBDIR+= greek-language-support
SUBDIR+= laptop
SUBDIR+= linux-users
SUBDIR+= mailing-list-faq
SUBDIR+= nanobsd

View file

@ -1,16 +0,0 @@
# $FreeBSD$
#
# %SOURCE% en_US.ISO8859-1/articles/laptop/Makefile
# %SRCID% 1.4
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.xml
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,352 +0,0 @@
<?xml version="1.0" encoding="iso-8859-7"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!--
Χρησιμοποιώντας το FreeBSD Σε Φορητούς Υπολογιστές
The FreeBSD Greek Documentation Project
%SOURCE% en_US.ISO8859-1/articles/laptop/article.xml
%SRCID% 1.25
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="el">
<info><title>Χρησιμοποιώντας το FreeBSD σε Φορητούς</title>
<abstract>
<para>Το FreeBSD δουλεύει άψογα στους περισσότερους φορητούς
υπολογιστές, με πολύ λίγα σημεία που χρίζουν προσοχής.
Μερικά πράγματα που αφορούν το FreeBSD και τους φορητούς,
σχετικά με τις διαφορές που υπάρχουν σε απαιτήσεις υλικού
από τους υπολογιστές γραφείου, περιγράφονται παρακάτω.</para>
</abstract>
<legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.linux;
&tm-attrib.microsoft;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
</info>
<para>Συχνά το FreeBSD χρησιμοποιείται σαν λειτουργικό σύστημα
σε εξυπηρετητές, αλλά μπορεί το ίδιο καλά να χρησιμοποιηθεί και σε
σταθμούς εργασίας, κι αν σκέφτεστε να το χρησιμοποιήσετε στον
φορητό υπολογιστή σας μπορείτε να απολαμβάνετε όλα τα συνηθισμένα
πλεονεκτήματα που έχει: συστηματική οργάνωση, εύκολη διαχείριση
και αναβάθμιση, τα ports και τα πακέτα για εύκολη εγκατάσταση
λογισμικού, κοκ. (Τα άλλα πλεονεκτήματά του, όπως η σταθερότητα,
η απόδοση σε δικτυακές εφαρμογές, και η απόδοση σε συνθήκες υψηλού
φόρτου, μπορεί να μην γίνονται πολύ φανερά σε ένα φορητό
υπολογιστή, βέβαια.) Όμως, η εγκατάσταση σε φορητούς υπολογιστές
συχνά παρουσιάζει προβλήματα τα οποία δεν εμφανίζονται σε
υπολογιστές γραφείου και δεν αποτελούν συχνά θέμα συζήτησης (οι
φορητοί, ακόμα περισσότερο από τους υπολογιστές γραφείου, είναι
ρυθμισμένοι για να τρέχουν καλά με &microsoft.windows;). Αυτό το
άρθρο έχει σαν στόχο να παρουσιάσει κάποια από αυτά τα
θέματα. Στο διαδίκτυο μπορείτε να βρείτε πολλές σελίδες στις οποίες
περιγράφουν τις εμπειρίες τους με ένα συγκεκριμένο μοντέλο φορητού
υπολογιστή και το &os; οι συγγραφείς τους. Αυτές οι σελίδες δεν είναι
διαθέσιμες ως μέρος της επίσημης τεκμηρίωσης του &os;, αλλά μπορεί να
περιέχουν χρήσιμες πληροφορίες. Είναι καλή ιδέα να ψάξετε για τέτοιες
σελίδες, γράφοντας το μοντέλο του φορητού σας και τη
λέξη <quote>&os;</quote> σε μερικές μηχανές αναζήτησης. Υπάρχει επίσης
και μια βάση πληροφοριών με αναλυτικές περιγραφές από πολλούς φορητούς
υπολογιστές στη διεύθυνση <link xlink:href="http://laptop.bsdgroup.de/freebsd/">The &os;
Laptop Compatibility List</link>.</para>
<para>Αν θέλετε να επικοινωνήσετε με άλλους χρήστες που τρέχουν &os; στο
φορητό τους, μπορείτε να γραφτείτε και στην λίστα &a.mobile.name;.
Περισσότερες πληροφορίες για τη συμβατότητα του &os; με φορητύς
υπολογιστές θα βρείτε και στη
σελίδα <uri xlink:href="http://tuxmobil.org/mobile_bsd.html">http://tuxmobil.org/mobile_bsd.html</uri>.</para>
<sect1 xml:id="xorg">
<title>Το γραφικό περιβάλλον &xorg;</title>
<para>Οι πρόσφατες εκδόσεις των <application>&xorg;</application> δουλεύουν με τις
περισσότερες μοντέρνες κάρτες οθόνης που χρησιμοποιούνται σε
φορητούς υπολογιστές. Η επιτάχυνση (acceleration) μπορεί να μην
υποστηρίζεται, αλλά μια βασική SVGA κατάσταση θά 'πρεπε να
δουλεύει χωρίς προβλήματα.</para>
<para>Ελέγξτε την τεκμηρίωση του φορητού σας για να δείτε ποια
κάρτα οθόνης έχει και μετά συμβουλευτείτε την τεκμηρίωση του
<application>&xorg;</application> για να δείτε αν υπάρχει
υποστήριξη για την συγκεκριμένη κάρτα. Αν όχι, τότε
χρησιμοποιήστε ένα βασικό οδηγό συσκευής (μην προσπαθήσετε να
χρησιμοποιήσετε κάποιο οδηγό που να μοιάζει κάπως στο όνομα).
Μπορείτε να δοκιμάσετε την τύχη σας
με την εντολή <userinput>Xorg -configure</userinput> που
βρίσκει αυτόματα πολλές από τις σωστές ρυθμίσεις.</para>
<para>Το πρόβλημα είναι πολλές φορές να ρυθμιστεί σωστά η οθόνη.
Συχνά η τεκμηρίωση επικεντρώνει στις CRT οθόνες. Το να βρείτε
τις κατάλληλες ρυθμίσεις (modelines) για μια LCD οθόνη μπορεί να
μην είναι και τόσο εύκολο. Μπορεί να είστε τυχεροί και να μην
χρειάζεται να βρείτε κάποια γραμμή ρυθμίσεων για την οθόνη, ή να
αρκεί απλώς να δώσετε τις σωστές τιμές στα <literal>HorizSync</literal> και
<literal>VertRefresh</literal>. Αν αυτό δεν δουλέψει, η καλύτερη επιλογή που έχετε
είναι να ψάξετε στο δίκτυο για πηγές σχετικές με ρύθμιση των X
σε φορητούς (συχνά οι οδηγίες που υπάρχουν είναι σχετικές με το
Linux, αλλά δεν έχει σημασία αφού και τα δυο συστήματα
χρησιμοποιούν την ίδια έκδοση των <application>&xorg;</application>) και να αντιγράψετε
τις κατάλληλες γραμμές ρυθμίσεων που έχει στείλει κάποιος ο
οποίος έχει το ίδιο υλικό.</para>
<para>Οι περισσότεροι φορητοί έρχονται με δυο κουμπιά στις
συσκευές δείκτη που έχουν, που είναι αρκετά ενοχλητικό όταν
κάποιος δουλεύει σε X (αφού το μεσαίο κουμπί είναι αυτό που
συχνά χρησιμοποιείται για επικόλληση κειμένου). Μπορείτε να
αντιστοιχήσετε το ταυτόχρονο πάτημα του δεξιού και αριστερού
κουμπιού στις ρυθμίσεις των X σας να εξομοιώνει το πάτημα του
μεσαίου κουμπιού με την γραμμή</para>
<programlisting>
Option "Emulate3Buttons"
</programlisting>
<para>στο αρχείο <filename>xorg.conf</filename>, στο
τμήμα <literal>InputDevice</literal>.</para>
</sect1>
<sect1 xml:id="modems">
<title>Modems</title>
<para>Οι φορητοί έρχονται συνήθως με εσωτερικά (on-board) μόντεμ.
Δυστυχώς, αυτό σημαίνει πως σχεδόν πάντα είναι
<quote>win-μόντεμ</quote> των οποίων η λειτουργικότητα είναι
υλοποιημένη σε λογισμικό, για το οποίο οδηγοί υπάρχουν μόνο για
&windows;. (Ορισμένοι οδηγοί για τέτοια μόντεμ έχουν αρχίσει να βγαίνουν και για
άλλα λειτουργικά συστήματα. Για παράδειγμα, αν το μόντεμ σας
χρησιμοποιεί chipset τύπου Lucent LT μπορεί να υποστηρίζεται από το
πακέτο <package>comms/ltmdm</package>.)
Αν το μόντεμ που έχει ο φορητός σας δεν υποστηρίζεται,
θα χρειαστεί να αγοράσετε ένα εξωτερικό μόντεμ.
Η πιο καλή λύση από άποψη χώρου είναι να αγοράσετε ένα PC Card
(PCMCIA) μόντεμ, που περιγράφεται παρακάτω, αλλά υπάρχουν και
φτηνά USB ή σειριακά μόντεμ που μπορεί να σας κοστίσουν
λιγότερο. Γενικά, τα κανονικά (όχι win-μόντεμ) μόντεμ πρέπει να
δουλεύουν χωρίς κανένα πρόβλημα.</para>
</sect1>
<sect1 xml:id="pcmcia">
<title>Συσκευές PCMCIA (PC Card)</title>
<para>Οι πιο πολλοί φορητοί έρχονται με υποδοχές PCMCIA (γνωστές
και ως PC Card). Αυτές υποστηρίζονται αρκετά καλά από το
FreeBSD. Κοιτάξτε τα μηνύματα της εκκίνησης του υπολογιστή σας
(χρησιμοποιώντας την εντολή &man.dmesg.8;) και δείτε
αν το FreeBSD έχει βρει τις θύρες αυτές (πρέπει να εμφανίζονται
σαν <filename>pccard0</filename>,
<filename>pccard1</filename> κλπ. σε συσκευές όπως ή
<filename>pcic0</filename>).</para>
<para>Οι εκδόσεις 4.X του &os; έχουν υποστήριξη για 16-bit PCMCIA
κάρτες. Οι εκδόσεις 5.Χ και οι νεότερες υποστηρίζουν τόσο 16-bit όσο
και 32-bit (<quote>CardBus</quote>) κάρτες. Μια
λίστα από κάρτες που υποστηρίζονται υπάρχει το αρχείο
<filename>/etc/defaults/pccard.conf</filename>. Κοιτάξτε αυτό
το αρχείο, και προτιμήστε να αγοράσετε κάρτες που υπάρχουν σε
αυτή τη λίστα. Οι κάρτες που δεν υπάρχουν στη λίστα, μπορεί να
υποστηρίζονται σαν <quote>generic</quote> συσκευές: συγκεκριμένα
τα πιο πολλά μόντεμ (16-bit) θα πρέπει να δουλεύουν μια χαρά,
αρκεί να μην είναι win-μόντεμ (τέτοια μόντεμ υπάρχουν ακόμη και
σαν PC Card συσκευές, γι' αυτό να προσέχετε). Αν η κάρτα σας
αναγνωρίζεται σαν generic μόντεμ, σημειώστε πως το αρχείο
<filename>pccard.conf</filename> ορίζει μια καθυστέρηση 10
δευτερολέπτων (για να αποφύγει τα κολλήματα που παθαίνουν κάποια
μόντεμ). Αυτός ο χρόνος μπορεί να είναι πολύ μεγάλος για το
δικό σας μόντεμ, οπότε αξίζει να πειραματιστείτε, μειώνοντάς
τον ή ακόμα κι αφαιρώντας τον τελείως.</para>
<para>Μερικά μέρη του <filename>pccard.conf</filename> μπορεί να
χρειάζονται διορθώσεις. Ελέγξτε την γραμμή irq, και βεβαιωθείτε
ότι δεν γράφει κάποια irq γραμμή που ήδη χρησιμοποιείται από
κάποια άλλη συσκευή. Πιο συγκεκριμένα, αν έχετε κάποια on-board
κάρτα ήχου, αφαιρέστε την γραμμή irq 5 (αλλιώς μπορεί να
κολλήσει ο φορητός σας μόλις εισάγετε μια PC Card συσκευή).
Επίσης ελέγξτε ότι χρησμοποιούνται ελεύθερες περιοχές μνήμης.
Αν η κάρτα σας δεν αναγνωρίζεται, τότε προσπαθήστε να αλλάξετε
την περιοχή μνήμης σε κάποια άλλη επιτρεπόμενη τιμή (από αυτές
που υπάρχουν στην σελίδα τεκμηρίωσης &man.pccardc.8;).
</para>
<para>Αν δεν τρέχει ήδη, ξεκινήστε τον δαίμονα
&man.pccardd.8;. (Για να ξεκινάει όταν ανοίγετε τον
υπολογιστή σας, προσθέστε στο αρχείο
<filename>/etc/rc.conf</filename> τη γραμμή
<programlisting>pccard_enable="YES"</programlisting>.) Τώρα οι
κάρτες σας θα πρέπει να αναγνωρίζονται όταν τις βάζετε σε κάποια
θύρα ή τις αφαιρείτε, και να βλέπετε μηνύματα για νέες συσκευές
που ενεργοποιούνται.</para>
<para>Ακριβώς πριν την διανομή της έκδοσης 4.4 του FreeBSD έγιναν
αρκετές αλλαγές στον κώδικα για τις PC Card συσκευές (μέσα σε
αυτές ήταν και αλλαγές στον κώδικα δρομολόγησης των διακοπών
ISA, για εκείνες τις μηχανές που το &os; δεν μπορούσε να
χρησιμοποιήσει το PCI BIOS). Αν έχετε προβλήματα με αυτή την
έκδοση του &os;, δοκιμάστε να την αναβαθμίσετε σε κάποια πιο
καινούρια.</para>
</sect1>
<sect1 xml:id="power-management">
<title>Power management</title>
<para>Δυστυχώς, το power management δεν υποστηρίζεται πολύ καλά
από το FreeBSD. Αν είστε τυχεροί, ίσως κάποιες από τις
λειτουργίες να δουλεύουν αξιόπιστα. Συνήθως πάντως, δεν
δουλεύουν καθόλου.</para>
<para>Κάτι που περιπλέκει λίγο τα πράγματα είναι η ύπαρξη δύο διαφορετικών
προτύπων για power management: του APM και του ACPI. Το δεύτερο έχει ως
στόχο να αντικαταστήσει το πρώτο, επεκτείνοντας ταυτόχρονα τα
χαρακτηριστικά του APM. Σε πολλές περιπτώσεις το ACPI το πετυχαίνει
αυτό, αλλά μερικές φορές δημιουργεί και προβλήματα που δεν τα έχει το
APM.</para>
<para>Ορισμένοι φορητοί υπολογιστές υποστηρίζουν και το APM και το ACPI.
Κάποιοι άλλοι φορητοί υπολογιστές υποστηρίζουν μόνο το ένα από τα δύο.
Πιθανόν να χρειαστεί να δοκιμάσετε και το APM και το ACPI, για να δείτε
πιο από τα δύο υποστηρίζει καλύτερα και με πιο αξιόπιστο τρόπο τα
χαρακτηριστικά power management του φορητού σας.</para>
<note>
<para>Δεν έχει νόημα (και πολλές φορές δε γίνεται καν) να ενεργοποιήσετε
ταυτόχρονα και το APM και το ACPI, ακόμη κι αν ο φορητός σας
υποστηρίζει και τα δύο πρότυπα.</para>
</note>
<sect2>
<title>APM</title>
<para>Το APM (Advanced Power Management) BIOS παρέχει υποστήριξη για
διάφορες λειτουργίες power management, όπως standby, suspend,
hibernation, μείωση της ταχύτητας του επεξεργαστή, κλπ. Οι
λειτουργίες APM υποστηρίζονται από τις εκδόσεις 4.Χ και 5.Χ του
&os;.</para>
<para>Για να ενεργοποιήσετε την υποστήριξη APM στον πυρήνα του &os;,
πρέπει να μεταγλωττίσετε τον πυρήνα σας με τις επιλογές για power
management (<literal>device apm0</literal> για το &os;&nbsp;4.X
και <literal>device apm</literal> για το &os;&nbsp;5.X). Στο
&os;&nbsp;5.Χ υπάρχει και ξεχωριστό άρθρωμα πυρήνα για το APM, το
οποίο μπορείτε να φορτώσετε κατά την εκκίνηση του συστήματος
προσθέτοντας στο αρχείο <filename>/boot/loader.conf</filename> τη
γραμμή <literal>apm_load="YES"</literal>.</para>
<para>Στο &os;&nbsp;5.X πρέπει να προσθέσετε και τη
γραμμή <literal>hint.apm.0.disabled="0"</literal> στο
αρχείο <filename>/boot/device.hints</filename>.</para>
<para>Για να ενεργοποιούνται αυτόματα οι λειτουργίες APM κατά την
εκκίνηση του συστήματος πρέπει να προσθέσετε και τη
γραμμή <literal>apm_enable="YES"</literal> στο
αρχείο <filename>/etc/rc.conf</filename>. Στο βασικό σύστημα του &os;
περιλαμβάνεται και η υπηρεσία &man.apmd.8;, που ξεκινάει αυτόματα αν
προσθέσετε τη γραμμή <literal>apmd_enable="YES"</literal> στο
αρχείο <filename>/etc/rc.conf</filename>. Η υπηρεσία αυτή χειρίζεται
τα διάφορα μηνύματα APM που στέλνει το BIOS. Μπορεί, για παράδειγμα,
να βάλει το φορητό σας σε κατάσταση suspend ή να το ενεργοποιήσει πάλι
με το πάτημα ενός πλήκτρου στο πληκτρολόγιο ή όταν ανοιγοκλείνετε την
οθόνη του φορητού σας.</para>
<para>Οι εντολές APM περιγράφονται στη σελίδα βοήθειας &man.apm.8;. Για
παράδειγμα, η εντολή <command>apm -b</command> τυπώνει πληροφορίες για
την κατάσταση της μπαταρίας (ή 255 αν δεν υποστηρίζεται), η
εντολή <command>apm -Z</command> θέτει τον φορητό σε κατάσταση
standby, η εντολή <command>apm -z</command> (ή η
εντολή <command>zzz</command>) θέτει τον φορητό σε κατάσταση suspend.
Για να κλείσει εντελώς ο φορητός μπορείτε να δώσετε την
εντολή <command>shutdown -p</command>. Προσοχή όμως: μερικές από
αυτές τις εντολές μπορεί να μη δουλεύουν σωστά ή να μη δουλεύουν
καθόλου.</para>
<para>Σε μερικούς φορητούς δουλεύει σωστά η αλλαγή κατάστασης σε standby
ή suspend μόνο από την κονσόλα, κι όχι μέσα από το περιβάλλον X
(μπορεί π.χ. η οθόνη να μην επανέρχεται σωστά). Σε αυτή την περίπτωση
κι αν χρησιμοποιείτε την έκδοση 5.Χ του &os; (ή κάποια νεότερη), ίσως
έχει νόημα να προσθέσετε την επιλογή <literal>options
SC_NO_SUSPEND_VTYSWITCH</literal> στο αρχείο ρυθμίσεων του πυρήνα σας
και να μεταγλωττίσετε πάλι τον πυρήνα. Κάτι άλλο που μπορείτε να
δοκιμάσετε είναι να γυρίσετε σε κατάσταση κονσόλας πριν τρέξετε το
&man.apm.8; (μπορείτε να γυρίσετε σε κατάσταση κονσόλας από το
περιβάλλον Χ γράφοντας <keycombo action="simul">
<keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap>
</keycombo>). Το εργαλείο &man.vidcontrol.1; μπορεί να αλλάξει
αυτόματα σε κατάσταση κονσόλας. Απλά προσθέστε στο
αρχείο <filename>/etc/apmd.conf</filename> τις παρακάτω
ρυθμίσεις:</para>
<programlisting>apm_event SUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "/etc/rc.suspend";
}
apm_event USERSUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "sync &amp;&amp; sync &amp;&amp; sync";
exec "sleep 1";
exec "apm -z";
}
apm_event NORMRESUME, STANDBYRESUME {
exec "/etc/rc.resume";
exec "vidcontrol -s 9 &lt; /dev/console";
}</programlisting>
</sect2>
<sect2>
<title>ACPI</title>
<para>Το ACPI (Advanced Configuration and Power Management Interface)
παρέχει λειτουργίες διαχείρισης κατάναλωσης (power management) αλλά
και αναγνώρισης συσκευών συστήματος (αντικαθιστώντας το PnP και το PCI
BIOS). Το &os; έχει υποστήριξη για λειτουργίες ACPI από την έκδοση
5.Χ κι ύστερα, και η υποστήριξη για λειτουργίες ACPI είναι
ενεργοποιημένη εξ' ορισμού. Οπότε δε χρειάζεται να κάνετε κάτι για να
λειτουργήσει το ACPI. Μπορείτε να ρυθμίσετε το ACPI με το εργαλείο
&man.acpiconf.8;.</para>
<para>Δυστυχώς, ορισμένοι κατασκευαστές πουλούν φορητούς υπολογιστές με
προβληματικές υλοποιήσεις του προτύπου ACPI, οπότε μπορεί να
παρουσιαστούν προβλήματα αν ενεργοποιήσετε το ACPI. Μπορεί ακόμη και
να μην ξεκινάει καθόλου to &os; με το ACPI ενεργοποιημένο.</para>
<para>Αν το ACPI σας δημιουργεί προβλήματα, κοιτάξτε αν ο κατασκευαστής
του φορητού σας έχει βγάλει κάποια καινούρια έκδοση από το BIOS του
φορητού σας. Η υλοποίηση του ACPI στο &os; βελτιώνεται κι αυτή
συνεχώς, οπότε μπορεί να έχει νόημα να αναβαθμίσετε το σύστημά σας σε
πιο καινούρια έκδοση. Μπορεί κάποια από τα προβλήματα να διορθωθούν
έτσι.</para>
<para>Αν θέλετε να απενεργοποιήσετε το ACPI, μπορείτε να προσθέσετε τη
γραμμή <literal>hint.acpi.0.disabled="1"</literal> στο
αρχείο <filename>/boot/device.hints</filename>. Για λιγότερο μόνιμες
αλλαγές, μπορείτε να απενεργοποιήσετε προσωρινά το ACPI τρέχοντας την
εντολή <literal>unset acpi_load</literal> στην προτροπή του boot
loader. Στην έκδοση 5.1-RELEASE του &os; και τις νεότερες εκδόσεις
υπάρχει ένα μενού επιλογών εκκίνησης. Μία από τις επιλογές επιτρέπει
την εκκίνηση χωρίς ACPI. Επιλέγοντας <guimenuitem>2. Boot &os; with
ACPI disabled</guimenuitem> μπορείτε να ξεκινήσετε το σύστημά σας με
απενεργοποιημένες όλες τις λειτουργίες ACPI.</para>
</sect2>
<sect2>
<title>Διαχείριση Κατανάλωσης Ισχύος της Οθόνης</title>
<para>Το γραφικό περιβάλλον X έχει επίσης κάποιου είδους
υποστήριξη για power management (διαβάστε την τεκμηρίωση της
εντολής &man.xset.1;, και ψάξτε για <quote>dpms</quote>). Είναι
καλή ιδέα να δοκιμάσετε να το χρησιμοποιήσετε, αλλά κι αυτό το
χαρακτηριστικό των X δεν λειτουργεί πάντα σωστά. Μερικές φορές
κλείνει την οθόνη αλλά δεν κλείνει το φως.</para>
</sect2>
</sect1>
</article>

View file

@ -6,9 +6,7 @@ SUBDIR+= casestudy-argentina.com
SUBDIR+= contributing
SUBDIR+= cvs-freebsd
SUBDIR+= explaining-bsd
SUBDIR+= fbsd-from-scratch
SUBDIR+= fdp-es
SUBDIR+= laptop
SUBDIR+= linux-comparison
SUBDIR+= linux-users
SUBDIR+= mailing-list-faq

View file

@ -1,27 +0,0 @@
#
# $FreeBSD$
#
# Article: FreeBSD From Scratch
DOC?= article
FORMATS?= html
MAINTAINER= schweikh@FreeBSD.org
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
#
WITH_ARTICLE_TOC?=YES
# XML content
SRCS= article.xml fase_1.sh fase_2.sh fase_3.mk
DOC_PREFIX?= ${.CURDIR}/../../..
afterinstall:
${INSTALL_DOCS} ${.CURDIR}/fase_1.sh ${.CURDIR}/fase_2.sh \
${.CURDIR}/fase_3.mk ${DESTDIR}
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,709 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
<!ENTITY scratch.ap "<application xmlns='http://docbook.org/ns/docbook'>FreeBSD From Scratch</application>">
]>
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="es">
<info><title>FreeBSD From Scratch</title>
<author><personname><firstname>Jens</firstname><surname>Schweikhardt</surname></personname><affiliation>
<address><email>schweikh@FreeBSD.org</email></address>
</affiliation></author>
<copyright>
<year>2002</year>
<holder>Jens Schweikhardt</holder>
</copyright>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>&scratch.ap; explica la instalación totalmente automatizada
de un sistema &os; hecho a medida y compilado desde las fuentes,
proceso que incluye además la compilación de sus
<quote>ports</quote> favoritos y configurado para coincidir con
su idea del sistema perfecto. Si cree que
<command>make world</command> es un concepto fascinante
&scratch.ap; lo amplía hasta ser
<command>make evenmore</command>. N. del T. : Juego de palabras
intraducible basado en el nombre que en &os; se da al proceso de
recompilar todo el sistema desde los fuentes, <command>make world</command>,
que podría traducirse muy libremente como <quote>hacer, o más bien rehacer el
mundo entero</quote> y <command>make evenmore</command>, osea, <quote>hacer más
aún</quote>. </para>
&trans.es.carvay;
</abstract>
</info>
<sect1 xml:id="introduction">
<title>Introducción</title>
<para>?Ha actualizado alguna vez su sistema mediante
<command>make world</command>?. Si solamente tiene un sistema
en sus discos se encontrará con un problema. Si
<buildtarget>installworld</buildtarget> falla a la mitad
su sistema quedará dañado e incluso
puede ser incapaz de arrancar de nuevo. O quizás
<buildtarget>installworld</buildtarget> se ha ejecutado sin problemas
pero el nuevo kernel no arranca. Se impone buscar el CD de
Rescate y tratar de encontrar algo útil en aquellos
<quote>backups</quote> que hizo hace seis meses.</para>
<para>Creo en el paradigma de <quote>al actualizar sistemas operativos
instala desde cero</quote>. Haciéndolo así, esto es,
al borrar sobreescribiendo en los discos o mejor dicho las particiones,
nos aseguraremos de no dejar datos antiguos en ellos, un aspecto
éste del que la mayoría de los procesos de
actualización no se preocupan en absoluto.
Por otra parte borrar las particiones significa
que tendrá que recompilar/reinstalar todos sus
<quote>ports</quote> y <quote>packages</quote> y después de eso
rehacer todas y cada una de las configuraciones que con muchos esfuerzos
atesoraba. Si usted también piensa que ésta tarea
debería automatizarse siga leyendo.</para>
</sect1>
<sect1 xml:id="why">
<title>?Por qué (no) debería interesarme
&scratch.ap;?</title>
<para>Esa es una pregunta muy razonable. Tenemos
<application>sysinstall</application>, una compilación
del kernel que funciona sin sorpresas y tenemos también
las herramientas de entorno de usuario.</para>
<para>El problema que tiene <application>sysinstall</application>
es que está extremadamente limitado cuando se trata de
qué, dónde y cómo queremos que haga la
instalación.</para>
<itemizedlist>
<listitem>
<para>Normalmente se usa para instalar distribuciones precompiladas
y <quote>packages</quote> desde diversas fuentes (CD, DVD,
FTP). No puede instalar el resultado de
<literal>make buildworld</literal>.</para>
</listitem>
<listitem>
<para>No puede instalar un segundo sistema en un directorio
de un sistema en funcionamiento.</para>
</listitem>
<listitem>
<para>No puede hacer una instalación en particiones
<application>Vinum</application>.</para>
</listitem>
<listitem>
<para>No puede compilar <quote>ports</quote>, sólo
instala <quote>packages</quote> precompilados.</para>
</listitem>
<listitem>
<para>Es difícil automatizar mediante
<quote>scripts</quote> o incluso hacer de forma manual
los cambios que considere
necesarios después de la instalación</para>
</listitem>
<listitem>
<para>Por si todo esto fuera poco
<application>sysinstall</application>
está semioficialmente al final de su
<quote>Ciclo de Vida Útil</quote>.</para>
</listitem>
</itemizedlist>
<para>El archiconocido proceso de <quote>construír/instalar
el mundo</quote> (<quote>build/install world</quote>), explicado en
<link xlink:href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html">el
Handbook</link>, por defecto realiza la tarea de sustituír el
sistema existente. Sólo respeta el kernel y los
módulos. Los binarios del sistema, los ficheros de
cabecera y muchos otros ficheros son sobreescritos; hay ficheros
obsoletos que se quedan donde estaban y pueden causar
sorpresas. Si el proceso de actualización falla por alguna
razón puede ser difícil o incluso imposible volver a
dejar el sistema en el estado inicial.</para>
<para>&scratch.ap; resuelve todos esos problemas. La estrategia es
simple: utiliza un sistema en funcionamiento para instalar un nuevo
sistema en un árbol de directorios y montar nuevas particiones
limpiamente en ese árbol. Muchos ficheros de
configuración pueden copiarse al sitio que les corresponda y
&man.mergemaster.8; se encargará de aquellos a los que
no. Pueden hacerse cambios discrecionales tras la
instalación del nuevo sistema desde el viejo,
como si el nuevo sistema estuviera dentro de un
<quote>chroot</quote>. El proceso tiene tres fases,
cada una de los cuales consiste en ejecutar un
<quote>script de shell</quote> o invocar
<command>make</command>:</para>
<orderedlist>
<listitem>
<para><filename>fase_1.sh</filename>:
Crea un sistema nuevo y capaz de arrancar en un directorio
vacío y combina o copia tantos ficheros como sea
necesario. Una vez acabado esto arranca el nuevo sistema.</para>
</listitem>
<listitem>
<para><filename>fase_2.sh</filename>:
Instala los <quote>ports</quote> que hayamos elegido.</para>
</listitem>
<listitem>
<para><filename>fase_3.mk</filename>:
Remata la configuración del software instalado en la
fase anterior.</para>
</listitem>
</orderedlist>
<para>Una vez que ha usado &scratch.ap; para construír un
segundo sistema y ha comprobado que funciona satisfactoriamente
durante unas cuantas semanas puede usarlo de nuevo para reinstalar
el sistema original. Desde ese momento cada vez que crea que
debe actualizar un sistema simplemente elija las particiones que
hay que borrar y reinstalar.</para>
<para>Puede que haya oído hablar o incluso haya usado ya
<link xlink:href="http://www.linuxfromscratch.org/">Linux From Scratch</link>,
LFS para ser más breve. LFS abarca también cómo
construír e instalar un sistema desde cero en particiones
vacías partiendo de un sistema en funcionamiento. El
objetivo de LFS parece ser mostrar la razón de ser y de estar
de todas y cada una de las partes del sistema (como el kernel,
el compilador, los dispositivos, la shell, la base de datos de
terminales, etc.) y los detalles de la instalación de cada
parte. &scratch.ap; no entra en detalles tan exahustivos. Mi
intención es facilitar una instalación automatizada y
completa, no explicar cada detalle escabroso del ciclópeo
proceso que arrancamos cuando hacemos un
<command>make world</command>. Si desea usted explorar &os; de
modo tan profundo comience por leer
<filename>/usr/src/Makefile</filename> y siga cuidadosamente lo
que sucede al teclear
<command>make buildworld</command>.</para>
<para>Hay también algunos detalles delicados con los que
me encontré durante el desarrollo de &scratch.ap; que
debería tener muy en cuenta.</para>
<!-- XXX: Sería una buena idea escribir el fase_2.sh usando un
"jail" situada en el sistema nuevo instalado en la primera
fase. Si disponemos de una dirección de red bien configurada
como IP primaria de esa "jail" podría ser posible incluso
compilar "ports" en un "chroot" sin desinstalar nada del
sistema anfitrión. No obstante tenga en cuenta que incluso
las "jail" están ejecutando el kernel anfitrión.-->
<itemizedlist>
<listitem>
<para>El sistema no puede ser usado normalmente
durante la compilación de los <quote>ports</quote>
que tiene lugar en la segunda fase. Si va a ejecutar
el proceso en un servidor en producción tenga en cuenta
el tiempo de parada provocado por la fase dos. Los
<quote>ports</quote> compilados por
<filename>fase_2.sh</filename> necesitan aproximadamente 4 horas
para acabar en un sistema SCSI AMD1800+ con discos de 10.000 rpm
y 1GB de RAM.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="prerequisites">
<title>Requisitos previos</title>
<para>Para poder usar &scratch.ap;
necesitará lo siguiente:</para>
<itemizedlist>
<listitem>
<para>Un sistema &os; con el árbol de <quote>ports</quote> y
los fuentes instalados.</para>
</listitem>
<listitem>
<para>Al menos una partición vacía donde instalaremos
el nuevo sistema.</para>
</listitem>
<listitem>
<para>Experiencia en el uso de &man.mergemaster.8; o al menos no
tener miedo de usarlo.</para>
</listitem>
<listitem>
<para>Si su acceso a Internet es lento o si no dispone del mismo
necesitará los <quote>distfiles</quote> de los ports que
vaya a instalar.</para>
</listitem>
<listitem>
<para>Conocimientos básicos de confección de
<quote>scripts</quote> de shell con la shell Bourne,
&man.sh.1;</para>
</listitem>
<listitem>
<para>Finalmente, debería ser capaz de decirle a su
<quote>boot loader</quote> (cargador de arranque) cómo arrancar el nuevo
sistema, en modo interactivo o mediante un fichero de
configuración.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="stage1">
<title>Primera Fase: Instalación del Sistema</title>
<para>Lo que vamos a explicar más adelante es mi
<filename>fase_1.sh</filename>. Tendrá que modificarlo
en varios sitios para que cuadre con su propia idea del
<quote>sistema perfecto</quote>. He intentado incluír
todos los comentarios posibles en los sitios donde debería
usted introducir sus cambios. Los puntos a estudiar son:</para>
<itemizedlist>
<listitem>
<para>Esquema de particiones.</para>
<para>No estoy de acuerdo con la idea de una sola
partición inmensa en la que instalar todo el
sistema. Mis sistemas tienen generalmente al menos
una partición para
<filename>/</filename>,
<filename>/usr</filename> y
<filename>/var</filename> con
<filename>/tmp</filename> enlazado simbólicamente a
<filename>/var/tmp</filename>.
Además comparto los sistemas de ficheros en los que
ubico
<filename>/home</filename> (los directorios de los usuarios),
<filename>/home/ncvs</filename> (réplica del repositorio
de &os;,
<filename>/usr/ports</filename> (el árbol de ports),
<filename>/src</filename> (diversos árboles de fuentes de
procedencias varias) y
<filename>/share</filename> (otros datos compartidos que no
necesitan ser guardados, por ejemplo mensajes de
<quote>news</quote>.</para>
</listitem>
<listitem>
<para><quote>Lujos</quote>.</para>
<para>Me refiero a lo que usaremos inmediatamente tras el arranque
del nuevo sistema e incluso antes de la segunda fase. En mi caso
se trata de <package>shells/zsh</package> puesto
que es la shell que aparece en mi cuenta de usuario en <filename>
/etc/passwd</filename>. De todos modos la tarea puede culminarse
sin esos <quote>lujos</quote> (de ahí su nombre), todo lo
que necesita es entrar en el sistema como root y pasar a la
siguiente fase.</para>
<para>?Por qué no instalar entonces todos mis ports
en la primera fase?: en teoría y en la práctica
nos encontraremos con problemas de arranque y de consistencia:
durante la primera fase tendrá funcionando su viejo kernel
mientras el entorno <quote>chroot</quote> dispone de sus propios
binarios y ficheros de cabecera todos nuevos. Si por ejemplo el
sistema nuevo integra una nueva llamada al sistema (conforme a sus
cabeceras) algunos <quote>scripts</quote> de configuración
podrían intentar usarla y en concuencia ver <quote>
muertos</quote> sus procesos al tratar de ejecutarse en el viejo
kernel. He tenido problemas de otro tipo al intentar
construír <package>lang/perl5</package>.</para>
</listitem>
</itemizedlist>
<para>Antes de ejecutar <filename>fase_1.sh</filename> asegúrese
de haber cumplido con las tareas previas a un
<command>make installworld installkernel</command>, es decir:</para>
<itemizedlist>
<listitem>
<para>haber adaptado el fichero de configuración de su
kernel</para>
</listitem>
<listitem>
<para>haber completado sin errores <command>
make buildworld</command></para>
</listitem>
<listitem>
<para>haber completado sin errores<command>
KERNCONF=
nombre_de_su_kernel</command></para>
</listitem>
</itemizedlist>
<para>Cuando ejecute <filename>fase_1.sh</filename> por primera vez
y copie sus ficheros de configuración de su sistema en
funcionamiento a su nuevo sistema no están al día
con respecto a lo que hay bajo
<filename>/usr/src</filename>, así que <command>
mergemaster</command> le preguntará por lo que quiere
hacer. Le recomiendo combinar los cambios. (Nota del traductor:
merge (to): unir, fusionar, mezclar). Si se cansa de pelear con
los diálogos de <command>mergemaster</command> puede
simplemente actualizar sus ficheros una vez en el sistema <emphasis>
original</emphasis> (pero sólo si existe esa opció:
por ejemplo, si uno de sus sistemas usa <literal>-STABLE</literal> y
el otro <literal>-CURRENT</literal> los cambios tienen bastantes
probabilidades de ser incompatibles). En posteriores usos
de <command>mergemaster</command> detectará que los ID de
las versiones RCS de esos ficheros coinciden con los que están
bajo <filename>/usr/src</filename> y no les prestará más
atención.</para>
<para>El <quote>script</quote> <filename>fase_1.sh</filename>
detendrá su ejecución si falla alguno de los
comandos que contiene (si alguno da una salida distinta de
cero) por incluír <command>set -e</command>, así
que es imposible que pase por alto algún error. Antes
de seguir adelante debería asegurarse de que no hay errores
en su versión de
<filename>fase_1.sh</filename>.</para>
<para>En <filename>fase_1.sh</filename> invocamos
<command>mergemaster</command>. Tanto si alguno de los ficheros
requiere ser combinado como si no, <command>mergemaster</command>
emitirá el siguiente mensaje</para>
<screen>*** Comparison complete
Do you wish to delete what is left of /var/tmp/temproot.fase1? [no] <userinput>no</userinput></screen>
<para>es decir</para>
<screen>*** Comparación completada
?Quiere borrar el contenido de /var/tmp/temproot.fase1? [no] <userinput>no</userinput></screen>
<para>Por favor, responda <literal>no</literal> o simplemente pulse
<keycap>Enter</keycap>. Eso es debido a que <command>
mergemaster</command> habrá dejado unos cuantos ficheros
de longitud igual a cero en <filename>
/var/tmp/temproot.fase1</filename> y los copiará al nuevo
sistema (a menos que ya estén ahí).</para>
<para>Después mostrará los ficheros que ha instalado
mediante &man.more.1; o si lo prefiere mediante &man.less.1;):</para>
<screen>*** You chose the automatic install option for files that did not
exist on your system. The following were installed for you:
/rootnuevo/etc/defaults/rc.conf
...
/rootnuevo/COPYRIGHT
(END)</screen>
<para>es decir</para>
<screen>*** Ha elegido la opción de instalar automáticamente
los ficheros que no existen en su sistema. Han sido instalados los
siguientes:
/rootnuevo/etc/defaults/rc.conf
...
/rootnuevo/COPYRIGHT
</screen>
<para>Teclée <keycap>q</keycap> para salir del
paginador. Ahora se le informará sobre <filename>
login.conf</filename>:</para>
<screen>*** You installed a login.conf file, so make sure that you run
'/usr/bin/cap_mkdb /newroot/etc/login.conf'
to rebuild your login.conf database
Would you like to run it now? y or n [n]</screen>
<para>es decir</para>
<screen>*** Ha instalado un fichero login.conf así que
asegúrese de ejecutar '/usr/bin/cap_mkdb /rootnuevo/etc/login.conf'
para reconstruír la base de datos de login.conf
?Quiere ejecutarlo ahora mismo? (s)i o (n)o [n]</screen>
<para>La respuesta no tiene importancia puesto que ejecutaremos
&man.cap.mkdb.1; en todos los casos.</para>
<para>Todo lo que hace <filename>fase_1.sh</filename> queda registrado
en un fichero <quote>log</quote> para que pueda examinarse con
detalle si es preciso.</para>
<para>Éste es el <filename>fase_1.sh</filename> del autor,
así que tendrá que modificarlo a conciencia,
en especial los pasos 1, 2, 5 y 6.</para>
<warning>
<para>Por favor, ponga una atención esmerada a las
entradas en las que aparece &man.newfs.8;. Si bien
es cierto que es imposible crear nuevos sistemas de archivos en
particiones montadas nuestro <quote>script</quote> no tendrá
ningún inconveniente en borrar cualquier partición
que no esté montada y con los nombres que aparezcan en
él, en nuestro caso
<filename>/dev/da3s1a</filename>, <filename>/dev/vinum/var_a</filename>
y <filename>/dev/vinum/usr_a</filename>. Puede provocar un desastre,
así que asegúrese de cambiar los nombres de los
dispositivos como corresponda.</para>
</warning>
<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="fase_1.sh" parse="text" encoding="iso-8859-1"/></programlisting>
<para>Descargue <link xlink:href="fase_1.sh"><filename>fase_1.sh</filename></link>.</para>
<para>La ejecución de éste <quote>script</quote> instala
un sistema equipado con lo siguiente:</para>
<itemizedlist>
<listitem>
<para>Usuarios y grupos heredados del anterior sistema.</para>
</listitem>
<listitem>
<para>Acceso a Internet mediante Ethernet y PPP protegido por
un cortafuegos.</para>
</listitem>
<listitem>
<para>NTP y zona horaria correctas.</para>
</listitem>
<listitem>
<para>Algunos ficheros secundarios como
<filename>/etc/ttys</filename> e
<command>inetd</command>.</para>
</listitem>
</itemizedlist>
<para>Hay otras áreas listas para ser configuradas pero
no las tocaremos hasta concluír la segunda fase. Por ejemplo,
hemos copiado unos cuantos ficheros para configurar la impresión
y X11. Sin embargo la impresión suele necesitar de aplicaciones
que no se encuentran en el sistema base, por ejemplo PostScript. X11
no funcionará hasta que no compilemos el servidor, las
bibliotecas y los programas.</para>
</sect1>
<sect1 xml:id="stage2">
<title>Segunda Fase: Instalación de <quote>
ports</quote></title>
<note>
<para>En ésta fase es posible instalar <quote>packages</quote>
(que vienen precompilados) en lugar de compilar <quote>
ports</quote>. Para poder hacerlo convertiremos <filename>
fase_2.sh</filename> en poco más que una lista de
comandos <command>pkg_add</command>. Confío en que
será usted capaz de escribir un <quote>script</quote>
como ese. Ahora nos concentraremos en el sistema tradicional
y mucho más flexible de funcionamiento de los
<quote>ports</quote>.</para>
</note>
<para>El siguiente <quote>script</quote> <filename>
fase_2.sh</filename> es el que yo uso para instalar mis <quote>
ports</quote> favoritos. Puede ejecutarse tantas veces como sea
preciso y no prestará atención a los <quote>
ports</quote> que ya estén instalados. Incluye también
soporte para la
opción <option>-n</option> que hace un <emphasis>ensayo
general con todo</emphasis>, es decir, muestra lo que hubiera sucedido
si se hubiera ejecutado. Seguro que tiene que editar la lista de
<quote>ports</quote> y probablemente tenga que cambiar unas cuantas
variables de entorno.</para>
<para>La lista de <quote>ports</quote> consiste en líneas
de dos o más palabras separadas por espacios: la categoría
y el <quote>port</quote>. Es opcional situar detrás
un comando de instalación que compilará e instalará
el <quote>port</quote> (por defecto <command>make install</command>).
Se ignoran las líneas vacís y las que comienzan
por #. La mayoría de las veces es suficiente incluír el
nombre del <quote>port</quote> y la categoría a que pertenece pero
existen unos pocos <quote>ports</quote> en cuya compilación
podemos afinar mucho asignando valores a variables de <command>
make</command>; veamos un ejemplo:</para>
<programlisting>www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_CHATZILLA=yes install
mail procmail make BATCH=yes install</programlisting>
<para>De hecho puede usted usar comandos de <quote>shell</quote> a
su criterio, así que no tiene que limitarse a simples
invocaciones de <command>make</command>:</para>
<programlisting>java linux-sun-jdk13 yes | make install
news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install</programlisting>
<para>Observe que la línea de <package>news/inn-stable</package> es un ejemplo de una
asignación de entrada a la variable del intérprete de
mandatos <literal>CONFIGURE_ARGS</literal>. El fichero <filename>Makefile</filename>
del <quote>port</quote> la usará como valor inicial y la
completará con otros argumentos esenciales. La diferencia respecto a
a especificar la variable para <filename>make</filename> en la línea de
comandos mediante </para>
<programlisting>news inn-stable make CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" install</programlisting>
<para>está en que esto último sustituye directamente el valor
en lugar de completarlo. El método más adecuado depende de cada
<quote>port</quote> en particular.</para>
<para>Compruebe cuidadosamente que ninguno de sus <quote>ports</quote>
tenga una instalación interactiva, es decir, que ninguno
deberí intentar recibir de stdin nada que no le dé
usted en stdin. Si alguno lo hace leerá la siguiente o
siguientes líneas de éste documento y no entenderá
nada de nada. Si <filename>fase_2.sh</filename> pasa por alto
un <quote>port</quote> o cesa su ejecución sin razón
aparente es muy posible que esa sea la razón.</para>
<para>He aquí <filename>fase_2.sh</filename>. Crea un fichero
<quote>log</quote> por cada port que instala y les da nombres
según el esquema <filename>
DIRECTORIO_LOG/categoría+port</filename>. Si no tiene una
copia de su <filename>fase_2.sh</filename> en una partición
compartida no olvide copiarlo al sistema nuevo antes de
arrancarlo.</para>
<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="fase_2.sh" parse="text" encoding="iso-8859-1"/></programlisting>
<para>Descargue <link xlink:href="fase_2.sh"><filename>fase_2.sh</filename></link>.</para>
</sect1>
<sect1 xml:id="stage3">
<title>Tercera Fase</title>
<para>Ya hemos concluído la segunda fase y ya están
instalados sus queridísimos <quote>ports</quote>, pero
algunos de ellos requieren un poco de configuración. En
eso consistirá la tercera fase, añadir los
detalles específicos de las configuraciones. Podría
haberlos integrado en el <quote>script</quote> <filename>
fase_2.sh</filename> pero creo que hay una diferencia conceptual
entre instalar un <quote>port</quote> y en modificar la
configuración con la que viene por defecto para adaptarla
a nuestros gustos o necesidades y creo por lo tanto que esa
diferencia justifica una separación en una fase
propia.</para>
<para>He creído más conveniente implementar la
tercera fase como un <filename>Makefile</filename> porque
admiten la selección de lo que quiera configurar
tecleando simplemente:</para>
<informalexample>
<screen>&prompt.root; <userinput>make -f fase_3.mk
nombre_del_port</userinput></screen>
</informalexample>
<para>Al igual que con <filename>fase_2.sh</filename> asegúrese
de que dispone de una copia de su <filename>fase_3.mk</filename> una
vez que arranca el sistema nuevo, bien situándolo en una
partición compartida bien copiándolo en algún
lugar dentro del nuevo sistema.</para>
<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="fase_3.mk" parse="text" encoding="iso-8859-1"/></programlisting>
<para>Descargue <link xlink:href="fase_3.mk"><filename>fase_3.mk</filename></link>.</para>
</sect1>
<sect1 xml:id="limitations">
<title>Restricciones</title>
<para>La instalación automatizada de un <quote>port</quote>
puede resultar difícil si es interactiva y no soporta
<command>make BATCH=YES install</command>. En algunos casos
la interacción se reduce a teclear <literal>yes</literal>
cuando se le pregunta si acepta alguna licencia. Si esa entrada de
datos ha de llegar por la entrada estándar simplemente
redirigiremos las respuestas pertinentes a la orden de
instalación (que suele ser <command>make install</command>;
ese es el modo en el que hemos procedido con <package>java/linux-sun-jdk13</package> en
<filename>fase_2.sh</filename>).</para>
<para>No obstante ésta estrategia no funciona con <package>editors/staroffice52</package>, que exige que X11
esté funcionando. El proceso de instalación comprende
un buen número de pulsaciones de ratón y de tecleo,
con lo que es imposible automatizarlo tal y como se hace con otros
<quote>ports</quote>. Sin embargo el siguiente atajo workaround
nos soluciona el problema: previamente he creado un <filename>
staroffice</filename> en el sistema original con</para>
<informalexample>
<screen>&prompt.root; <userinput>cd /usr/ports/editors/staroffice52</userinput>
&prompt.root; <userinput>make package</userinput>
===&gt; Building package for staroffice-5.2_1
Creating package /usr/ports/editors/staroffice52/staroffice-5.2_1.tbz
Registering depends:.
Creating bzip'd tar ball in '/usr/ports/editors/staroffice52/staroffice-5.2_1.tbz'</screen>
</informalexample>
<para>y durante la segunda fase usamos:</para>
<informalexample>
<screen>&prompt.root; <userinput>pkg_add /usr/ports/editors/staroffice52/staroffice-5.2_1.tbz</userinput></screen>
</informalexample>
<para>Debe usted también tener muy en cuenta posibles
problemas con los ficheros de configuración a la hora de
actualizar. En general no sabemos cuándo van a hacerse cambios
en el formato o el contenido de un fichero de configuración.
Es posible que haya que añadir un nuevo grupo a <filename>
/etc/group</filename>, o quizás <filename>/etc/passwd</filename>
necesite un nuevo campo en sus entradas. Éstas cosas han
sucedido en alguna ocasión anteriormente. Si simplemente
copiamos un fichero de configuración del sistema viejo al nuevo
será suficiente la mayoría de la veces pero ya hemos
visto dos casos en los que no lo era. Si actualiza su sistema siguiendo
el sistema ortodoxo (sobreescribiendo los ficheros antíguos)
tendrá que usar <command>mergemaster</command> para proceder
con los cambios que quiera incluír en
la configuración de su nuevo sistema, teniendo en cuenta que
entre esos cambios hay o puede haber nuevos ficheros. Por desgracia
<command>mergemaster</command> sólo es útil con ficheros
del sistema base y no para aquellos relacionados con los <quote>
ports</quote>. Además, ciertas aplicaciones parecen
especialmente diseñadas para sacarme de mis casillas por el
procedimiento de cambiar el fichero de configuración cada quince
días. Lo único que puede hacerse es estar alerta,
sobre todo cuando cambia el número de versión.
En ocasiones anteriores he tenido que modificar o reescribir
ficheros para servidores web, servidores y clientes de <quote>news</quote>.
Cualquier tipo de software cuyo mantenimiento sea muy activo es un firme
candidato a que sus ficheros de configuración merezcan nuestro
examen.</para>
<para>He usado &scratch.ap; varias veces para actualizar un sistema
<literal>5-CURRENT</literal> a <literal>5-CURRENT</literal>, esto es,
nunca he intentado instalar <literal>5-CURRENT</literal> desde un
sistema <literal>4-STABLE</literal> o viceversa, pero dada la
cantidad de cambios existentes entre las diferentes <quote>
RELEASE</quote> no sería insensato esperar que esa tarea
sea un tanto compleja. Usar &scratch.ap; para actualizaciones
dentro del campo de <literal>4-STABLE</literal> debería
ser mucho menos penoso (aunque yo aún no lo he
intentado). Si quiere hacerlo debería tener en cuenta
lo siguiente:</para>
<itemizedlist>
<listitem>
<para>Si no usa el sistema de ficheros de dispositivo
(<literal>devfs</literal>) puede necesitar crear los
dispositivos necesarios para su hardware con &man.MAKEDEV.8;
en la primera fase, sexto paso.</para>
</listitem>
</itemizedlist>
</sect1>
</article>

View file

@ -1,243 +0,0 @@
#!/bin/sh
#
# fase_1.sh - FreeBSD From Scratch, Primera Fase: Instalación del Sistema.
# Uso: ./fase_1.sh
#
# $FreeBSD$
set -x -e
PATH=/bin:/usr/bin:/sbin:/usr/sbin
# Requisitos:
#
# a) Haber completado sin errores "make buildworld" y "make buildkernel"
# b) Particiones sin usar (al menos una para el sistema de ficheros raíz,
# probablemente más para los nuevos /usr y /var, a gusto de cada uno.)
# El punto montaje de la raíz bajo la que va usted a crear el sistema nuevo.
# Sólo va a usarse como punto de montaje; que no se usará espacio en él
# puesto que todos los ficheros serán depositados en el o los sistemas
# de ficheros que están efectivamente montados.
DESTDIR=/rootnuevo
SRC=/usr/src # Aquí está su árbol de fuentes.
# ---------------------------------------------------------------------------- #
# Primer Paso: Creación de un árbol de directorios vacío bajo $DESTDIR.
# ---------------------------------------------------------------------------- #
step_one () {
# El nuevo raíz del sistema de ficheros. Obligatorio.
# Cambie los nombres de dispositivo (DEV_*) para hacerlos acordes con
# sus necesidades o el "script" le
# estallará en la cara.
DEV_ROOT=/dev/da3s1a
mkdir -p ${DESTDIR}
newfs ${DEV_ROOT}
tunefs -n enable ${DEV_ROOT}
mount -o noatime ${DEV_ROOT} ${DESTDIR}
# Sistemas de ficheros extra y sus correspondientes puntos de montaje.
# Opcional.
DEV_VAR=/dev/vinum/var_a
newfs ${DEV_VAR}
tunefs -n enable ${DEV_VAR}
mkdir -m 755 ${DESTDIR}/var
mount -o noatime ${DEV_VAR} ${DESTDIR}/var
DEV_USR=/dev/vinum/usr_a
newfs ${DEV_USR}
tunefs -n enable ${DEV_USR}
mkdir -m 755 ${DESTDIR}/usr
mount -o noatime ${DEV_USR} ${DESTDIR}/usr
mkdir -m 755 -p ${DESTDIR}/usr/ports
mount /dev/vinum/ports ${DESTDIR}/usr/ports
# Aquí crearemos los demás directorios. Obligatorio.
cd ${SRC}/etc; make distrib-dirs DESTDIR=${DESTDIR}
# Personalmente me gusta enlazar tmp a var/tmp. Opcional.
cd ${DESTDIR}; rmdir tmp; ln -s var/tmp
}
# ---------------------------------------------------------------------------- #
# Segundo Paso: Poblamos el árbol de directorios /etc que está vacío aún y
# ubicamos unos cuantos ficheros en /.
# ---------------------------------------------------------------------------- #
step_two () {
# Añada o borre de ésta lista según su criterio. La mayoría son obligatorios.
for f in \
/.profile \
/etc/group \
/etc/hosts \
/etc/inetd.conf \
/etc/ipfw.conf \
/etc/make.conf \
/etc/master.passwd \
/etc/nsswitch.conf \
/etc/ntp.conf \
/etc/printcap \
/etc/profile \
/etc/rc.conf \
/etc/resolv.conf \
/etc/start_if.xl0 \
/etc/ttys \
/etc/ppp/* \
/etc/mail/aliases \
/etc/mail/aliases.db \
/etc/mail/hal9000.mc \
/etc/mail/service.switch \
/etc/ssh/*key* \
/etc/ssh/*_config \
/etc/X11/XF86Config-4 \
/boot/splash.bmp \
/boot/loader.conf \
/boot/device.hints ; do
cp -p ${f} ${DESTDIR}${f}
done
# Borre el temproot que haya creado mergemasger. Si lo ha creado.
TEMPROOT=/var/tmp/temproot.fase1
if test -d ${TEMPROOT}; then
chflags -R 0 ${TEMPROOT}
rm -rf ${TEMPROOT}
fi
mergemaster -i -m ${SRC}/etc -t ${TEMPROOT} -D ${DESTDIR}
cap_mkdb ${DESTDIR}/etc/login.conf
pwd_mkdb -d ${DESTDIR}/etc -p ${DESTDIR}/etc/master.passwd
# Mergemaster no crea ficheros vacíos por ejemplo en /var/log. Lo haremos
# aquí pero sin sobreescribir (y destruír) ficheros copiados en el bucle
# de más arriba.
cd ${TEMPROOT}
find . -type f | sed 's,^\./,,' |
while read f; do
if test -r ${DESTDIR}/${f}; then
echo "${DESTDIR}/${f} ya existe; no copiado"
else
echo "Creando ${DESTDIR}/${f} vacío"
cp -p ${f} ${DESTDIR}/${f}
fi
done
chflags -R 0 ${TEMPROOT}
rm -rf ${TEMPROOT}
}
# ---------------------------------------------------------------------------- #
# Tercer Paso: Instalando el mundo (install world).
# ---------------------------------------------------------------------------- #
step_three () {
cd ${SRC}
make installworld DESTDIR=${DESTDIR}
}
# ---------------------------------------------------------------------------- #
# Cuarto Paso: Instalación del kernel y los módulos.
# ---------------------------------------------------------------------------- #
step_four () {
cd ${SRC}
# loader.conf y device.hints son necesarios para installkernel.
# Si en el segundo paso no los ha copiado hágalo tal y como se muestra en
# las dos líneas siguientes.
# cp sys/boot/forth/loader.conf ${DESTDIR}/boot/defaults
# cp sys/i386/conf/GENERIC.hints ${DESTDIR}/boot/device.hints
make installkernel DESTDIR=${DESTDIR} KERNCONF=NOMBRE_DE_SU_KERNEL
}
# ---------------------------------------------------------------------------- #
# Quinto Paso: Instalación y modificación de algunos ficheros clave.
# ---------------------------------------------------------------------------- #
step_five () {
# Creamos /etc/fstab; obligatorio. Modifíquelo para que coincida con sus
# dispositivos.
cat <<EOF >${DESTDIR}/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/da3s1b none swap sw 0 0
/dev/da4s2b none swap sw 0 0
/dev/da3s1a / ufs rw 1 1
/dev/da1s2a /src ufs rw 0 2
/dev/da2s2f /share ufs rw 0 2
/dev/vinum/var_a /var ufs rw 0 2
/dev/vinum/usr_a /usr ufs rw 0 2
/dev/vinum/home /home ufs rw 0 2
/dev/vinum/ncvs /home/ncvs ufs rw,noatime 0 2
/dev/vinum/ports /usr/ports ufs rw,noatime 0 2
#
/dev/cd0 /dvd cd9660 ro,noauto 0 0
/dev/cd1 /cdrom cd9660 ro,noauto 0 0
proc /proc procfs rw 0 0
EOF
# Más directorios; opcional.
mkdir -m 755 -p ${DESTDIR}/src; chown root:wheel ${DESTDIR}/src
mkdir -m 755 -p ${DESTDIR}/share; chown root:wheel ${DESTDIR}/share
mkdir -m 755 -p ${DESTDIR}/dvd; chown root:wheel ${DESTDIR}/dvd
mkdir -m 755 -p ${DESTDIR}/home; chown root:wheel ${DESTDIR}/home
mkdir -m 755 -p ${DESTDIR}/usr/ports; chown root:wheel ${DESTDIR}/usr/ports
# Configuración de la zona horaria; no es obligatorio pero casi.
cp ${DESTDIR}/usr/share/zoneinfo/Antarctica/South_Pole ${DESTDIR}/etc/localtime
if test -r /etc/wall_cmos_clock; then
cp -p /etc/wall_cmos_clock ${DESTDIR}/etc/wall_cmos_clock
fi
}
# ---------------------------------------------------------------------------- #
# Sexto Paso: Lo que considero importante tener cuando accedo a un sistema
# nuevo por primera vez.
# NOTA: No instale demasiados binarios en éste paso. Con el sistema viejo
# en funcionamiento y los nuevos binarios y ficheros de cabecera instalados
# es casi seguro tener problemas de bootstrap. Los "ports" deberían compilarse
# después de haber arrancado el nuevo sistema.
# ---------------------------------------------------------------------------- #
step_six () {
chroot ${DESTDIR} sh -c "cd /usr/ports/shells/zsh; make clean install clean"
chroot ${DESTDIR} sh -c "cd /etc/mail; make install" # configuración
# de sendmail
# Si no enlazamos simbólicamente compat los ficheros de linux_base
# irán a parar al sistema de ficheros raíz.
cd ${DESTDIR}; mkdir -m 755 usr/compat
chown root:wheel usr/compat; ln -s usr/compat
mkdir -m 755 usr/compat/linux
mkdir -m 755 boot/grub
# Creación de los directorios "spool" para las impresoras que hay en
# mi /etc/printcap
cd ${DESTDIR}/var/spool/output/lpd; mkdir -p as od ev te lp da
touch ${DESTDIR}/var/log/lpd-errs
# Más ficheros que quiero heredar del sistema antíguo.
for f in \
/var/cron/tabs/root \
/var/mail/* \
/boot/grub/*; do
cp -p ${f} ${DESTDIR}${f}
done
# Si no tiene /home en una partición compartida es un buen momento para
# copiarlo al sitio correcto.
# mkdir -p ${DESTDIR}/home
# cd /home; tar cf - . | (cd ${DESTDIR}/home; tar xpvf -)
# Como novedad en FreeBSD 5.x perl está en /usr/local/bin pero la
# mayoría de "scripts" esperan encontrarlo en /usr/bin/perl y así lo
# reflejan en su primera línea; use un enlace simbólico para que funcionen.
cd ${DESTDIR}/usr/bin; ln -s ../local/bin/perl
cd ${DESTDIR}/usr; rmdir src; ln -s ../src/current src
}
do_steps () {
step_one
step_two
step_three
step_four
step_five
step_six
}
do_steps 2>&1 | tee fase_1.log
# EOF $RCSfile: fase_1.sh,v $ vim: tabstop=2:expandtab:

View file

@ -1,148 +0,0 @@
#!/bin/sh
#
# fase_2.sh - FreeBSD From Scratch, Segunda Fase: Instalación de Ports.
# Uso: ./fase_2.sh
#
# $FreeBSD$
DBDIR=/var/db/pkg
PORTS=/usr/ports
LOGDIR=/home/root/setup/ports.log; mkdir -p ${LOGDIR}
# Creamos unas cuantas variables que usa más de un port.
PAPERSIZE=a4; export PAPERSIZE
USA_RESIDENT=NO; export USA_RESIDENT
MYNAME=$(basename $0)
usage () {
exec >&2
echo "uso: ${MYNAME} [-hn]"
echo ""
echo " Opciones:"
echo " -h éste mensaje de ayuda."
echo " -n muestra qué pasaría si se hubiera ejecutado."
echo ""
exit 1
}
args=`getopt hn $*`
if test $? != 0; then
usage
fi
set -- $args
DRYRUN=
for i; do
case "$i" in
-n) DRYRUN=yes;;
--) break;;
*) usage;;
esac
done
cat << EOF |
lang perl5
security sudo
x11-servers XFree86-4-Server
x11 wrapper
x11 XFree86-4-libraries
x11 XFree86-4-clients
x11-fonts XFree86-4-font75dpi
x11-fonts XFree86-4-font100dpi
x11-fonts XFree86-4-fontScalable
x11-fonts urwfonts
x11-fonts webfonts
x11-toolkits open-motif
x11 rxvt
x11-wm ctwm
security openssh-askpass
astro xplanet
astro setiathome make BATCH=yes install
astro xephem
editors vim
print ghostscript-gnu make A4=yes BATCH=yes install
print a2ps-a4
print psutils-a4
print gv
print acroread5
print transfig
archivers zip
archivers unzip
java linux-sun-jdk13 yes | make install
java jdk13
www apache2
www weblint
www amaya
www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_CHATZILLA=yes install
www netscape48-navigator
www checkbot
www privoxy
graphics xfig
graphics xv
graphics fxtv
lang expect
news tin
net freebsd-uucp
net cvsup-without-gui
net pathchar make NO_CHECKSUM=yes install
ftp wget
ftp ncftp3
textproc ispell
german ispell-neu
german ispell-alt
textproc docproj make JADETEX=yes HAVE_MOTIF=yes install
sysutils samefile
sysutils pstree
sysutils mkisofs
sysutils cdrtools
sysutils grub
devel ddd
devel ctags
devel ElectricFence
mail procmail make BATCH=yes install
mail metamail
mail mutt
mail spamoracle
emulators mtools
sysutils portupgrade
news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install
misc figlet-fonts
textproc gmat
EOF
while read CATEGORY NAME CMD; do
case "${CATEGORY}" in
\#*) continue;;
'') continue;;
esac
DIR="${PORTS}/${CATEGORY}/${NAME}"
if ! test -d "${DIR}"; then
echo "$DIR no existe -- ignorado"
continue
fi
cd ${DIR}
PKGNAME=`make -V PKGNAME`
if test -d "${DBDIR}/${PKGNAME}"; then
echo "${CATEGORY}/${NAME} ya instalado como ${PKGNAME}"
continue
fi
LOG="${LOGDIR}/${CATEGORY}+${NAME}"
echo "==> Instalando ${CATEGORY}/${NAME}; registrando instalación en ${LOG}"
test -n "${CMD}" || CMD="make install"
if test -n "${DRYRUN}"; then
echo "${CMD}"
continue
fi
date "++++++++++ %v %T +++++++++" > ${LOG}
echo "CMD: ${CMD}" >> ${LOG}
(
make clean
eval "${CMD}"
# make clean # Descoméntelo si no le sobra espacio bajo ${PORTS}.
) 2>&1 | tee -a ${LOG}
done
# Instalamos StarOffice como "package", previamente creado en el sistema
# antíguo mediante "make package" porque el "port" usa una instalación
# interactiva en X11.
#pkg_add ${PORTS}/editors/staroffice52/staroffice-*.tbz
# EOF $RCSfile: fase_2.sh,v $ vim: tabstop=4:

View file

@ -1,150 +0,0 @@
# fase_3.mk - FreeBSD From Scratch, Tercera Fase: Ajustes Personalizados
# de la Configuración de
# los Ports.
# Uso: make -f fase_3.mk all (configurar todos los ports)
# or make -f fase_3.mk target (configurar sólo target)
#
# Es una buena idea asegurarse de que ningún "target" pueda hacerse más de
# una vez sin efectos no deseados.
#
# $FreeBSD$
.POSIX:
message:
@echo "Por favor, use uno de los siguientes \"targets\":"
@echo "config_apache"
@echo "config_inn"
@echo "config_javaplugin"
@echo "config_privoxy"
@echo "config_setiathome"
@echo "config_sgml"
@echo "config_sudo"
@echo "config_TeX"
@echo "config_tin"
@echo "config_uucp"
@echo "all -- todos los anteriores"
all: config_apache \
config_inn \
config_javaplugin \
config_privoxy \
config_setiathome \
config_sgml \
config_sudo \
config_TeX \
config_tin \
config_uucp
config_apache:
# 1. Modificación httpd.conf.
perl -pi \
-e 's/#ServerName new.host.name/ServerName hal9000.s.shuttle.de/;' \
-e 's/^ServerAdmin.*/ServerAdmin schweikh\@schweikhardt.net/;' \
-e 's,/usr/local/www/cgi-bin/,/home/opt/www/cgi-bin/,;' \
/usr/local/etc/apache2/httpd.conf
# 2. Restituír los enlaces simbólicos a los sitios web.
cd /usr/local/www/data; \
ln -fs /home/schweikh/prj/homepage schweikhardt.net; \
ln -fs /home/opt/www/test .
config_inn:
pw usermod -n news -d /usr/local/news -s /bin/sh
# Facilitar al sistema de news su configuración inicial.
cd /home/root/setup; \
install -C -o news -g news -m 664 active newsgroups /usr/local/news/db
# El innd.sh que viene con el "port" falla: busca
# history.pag, fichero que no existe.
cd /home/root/setup; \
install -C -o root -g wheel -m 555 innd.sh /usr/local/etc/rc.d
# Configuración del método de almacenamiento.
cd /home/root/setup; \
printf "%s\n%s\n%s\n%s\n" \
"method tradspool {" \
" newsgroups: *" \
" class: 0" \
"}" \
>storage.conf; \
install -C -o news -g news -m 664 storage.conf /usr/local/news/etc
# Configuración de newsfeeds.
printf "%s\n%s\n" \
"ME:*::" \
"shuttle/news2.shuttle.de:!junk,!control:B32768/512,Tf,Wfb:" \
>/usr/local/news/etc/newsfeeds
# Configuración de inn.conf
perl -pi \
-e 's/^(organization:\s*).*/$$1 An Open Pod Bay Door/;' \
-e 's/^(pathhost:\s*).*/$$1 hal9000.schweikhardt.net/;' \
-e 's/^(server:).*/$$1 localhost/;' \
-e 's/^(domain:).*/$$1 schweikhardt.net/;' \
-e 's/^(fromhost:).*/$$1 schweikhardt.net/;' \
-e 's,^(moderatormailer:).*,$$1 \%s\@moderators.isc.org,;' \
-e 's,/usr/local/news/spool,/share/news/spool,;' \
/usr/local/news/etc/inn.conf
config_javaplugin:
cd /usr/local/lib/netscape-linux/plugins; \
if ! test -h javaplugin.so; then \
ln -s ../../../linux-sun-jdk1.3.1/jre/plugin/i386/ns4/javaplugin.so; \
fi; \
ls -l javaplugin.so
config_privoxy:
install -C -o root -g wheel -m 644 config /usr/local/etc/privoxy
config_setiathome:
perl -pi \
-e 's,^.*seti_wrkdir.*#,seti_wrkdir=/home/nobody/setiathome #,;' \
/usr/local/etc/rc.setiathome.conf
config_sgml:
cp -p /usr/local/share/gmat/sgml/ISO_8879-1986/entities/* \
/usr/local/share/xml/docbook/4.1
config_sudo:
if ! grep -q schweikh /usr/local/etc/sudoers; then \
echo 'schweikh ALL = (ALL) NOPASSWD: ALL' >> /usr/local/etc/sudoers; \
fi
config_TeX:
# En el fichero textproc/docproj se especifica: para generar el FreeBSD
# Handbook con JadeTex cambie los siguientes parámetros a los valores que se
# indican a continuación:
#
perl -pi \
-e 's/^% original texmf.cnf/% texmf.cnf/;' \
-e 's/^(hash_extra\s*=).*/$$1 60000/;' \
-e 's/^(pool_size\s*=).*/$$1 1000000/;' \
-e 's/^(max_strings\s*=).*/$$1 70000/;' \
-e 's/^(save_size\s*=).*/$$1 10000/;' \
/usr/local/share/texmf/web2c/texmf.cnf
config_tin:
# Dirigimos tin a nuestros archivos.
printf "%s\n%s\n%s\n" \
"activefile=/usr/local/news/db/active" \
"newsgroupsfile=/usr/local/news/db/newsgroups" \
"spooldir=/share/news/spool/articles" \
>/usr/local/etc/tin.defaults
config_uucp:
# UUCP cuenta con encontrar /usr/bin/rnews.
cd /usr/bin; ln -fs ../local/news/bin/rnews .
# Configuración de UUCP.
echo nodename js2015 > /usr/local/etc/uucp/config
echo shuttle js2015 `cat uucp` > /usr/local/etc/uucp/call
printf 'port tcp\ntype tcp\n' > /usr/local/etc/uucp/port
printf "%s\n%s\n%s\n%s\n%s\n%s\n%s\n" \
"call-login *" \
"call-password *" \
"time any" \
"system shuttle" \
"address mail.s.shuttle.de" \
"commands rmail rnews" \
"port tcp" \
>/usr/local/etc/uucp/sys
cd /usr/local/etc/uucp; chown uucp:uucp *; chmod o-rwx *
# Activar uucico tras el arranque del sistema.
mkdir -p /usr/local/etc/rc.d; cp uucp.sh /usr/local/etc/rc.d
# EOF $RCSfile: fase_3.mk,v $ vim: tabstop=4:

View file

@ -1,22 +0,0 @@
#
# $FreeBSD$
#
# Article about using FreeBSD on laptops
# "Article" sobre FreeBSD en computadoras portátiles.
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
#
WITH_ARTICLE_TOC?=YES
SRCS= article.xml
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,360 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="es">
<info><title>FreeBSD en ordenadores portátiles</title>
<abstract>
<para>FreeBSD funciona perfectamente en la mayoría de
portátiles aunque siempre haya excepciones. En éste
artículo trataremos de las diferencias existentes
en el hardware de portátiles
y sistemas de escritorio y de cómo afecta esto al uso
de FreeBSD.</para>
&trans.es.bazcar;
</abstract>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
</info>
<para>Es frecuente que se piense en FreeBSD como un sistema operativo
para servidores pero funciona muy bien como sistema de escritorio y
si quiere usarlo en su portátil dispondrá de todo su
potencial:
facilidad de administración y actualización, el
sistema de <quote>ports</quote> y <quote>packages</quote> para
añadir software, etc. Otras de sus características
más interesantes, como la estabilidad, el rendimiento en
red y bajo grandes cargas de trabajo pueden, por razones obvias,
no ser tan evidentes en un sistema portátil. La
instalación en portátiles puede, sin embargo,
acarrear problemas que no encontraríamos en sistemas de
escritorio y cuyas soluciones no podemos encontrar por doquier
a lo largo y ancho de Internet; los equipos portátiles suelen
estar diseñados para Microsoft Windows, aún con más
frecuencia que en sistemas de escritorio. Éste artículo
tratará de aclarar alguno de estos problemas. Hay quien ha
documentado sus experiencias con &os; en modelos concretos de
portátiles y las ha incluído en páginas web
que no forman parte de la documentación oficial de &os;.
Es muy posible que encuentre información si introduce la
marca y modelo de su portátil y la palabra <quote>&os;</quote>
en un buscador.</para>
<sect1>
<title>XFree86</title>
<para>Las versiones recientes de <application>XFree86</application>
funcionarán con la mayoría de tarjetas gráficas
disponibles actualmente en portátiles. La aceleración
gráfica tal vez no esté soportada pero una
configuración SVGA genérica debería
funcionar.</para>
<para>Consulte la documentación de su portátil.
Ahí deberí encontrar todos los detalles de su tarjeta,
tras lo cual debería recurrir a la
documentación de <application>XFree86</application>
(o el programa de configuración) para saber si está
soportada o no. Si no lo está utilice un dispositivo
genérico pero <emphasis>NO</emphasis> use uno cuyo
nombre simplemente le resulte parecido. En la versión 4 de
<application>XFree86</application> puede probar suerte tecleando
<userinput>XFree86 -configure</userinput>, que ejecuta un proceso de
autodetección y le puede facilitar una gran cantidad de
información muy útil.</para>
<para>Con frecuencia el problema es la configuración del
monitor. La información sobre
<application>XFree86</application>
se centra en monitores CRT, por lo que disponer de una
configuración para una pantalla LCD puede ser
peliagudo. Quizás esté de suerte y no
tenga que especificar rangos de
<literal>HorizSync</literal> y <literal>VertRefresh</literal>.
Si esto no funciona la mejor opción es recurrir a la web
en busca de páginas dedicadas a la configuración de X
en portátiles; suelen estar orientadas a Linux pero no importa
dado que ambos sistemas operativos usan
<application>XFree86</application>, por lo que puede usar la
configuración que alguien haya usado sobre un hardware
similar.</para>
<para>La mayoría de portátiles incluyen dos
botones para las funciones de botón primario y
secundario del ratón (mouse), lo que puede resultar
problemático en X ya que el botón central se
usa para pegar texto; puede <quote>mapear</quote> una
pulsación simultánea de ambos botones en la
configuración de X que realice la función del
botón central con la línea</para>
<programlisting>
Option "Emulate3Buttons"
</programlisting>
<para>en el fichero <filename>XF86Config</filename>
en la sección <literal>InputDevice</literal>
de <application>XFree86</application> versión 4; para la
versión 3 simplemente añada la línea
<literal>Emulate3Buttons</literal>, sin comillas, en la sección
<literal>Pointer</literal> .</para>
</sect1>
<sect1>
<title>Modems</title>
<para>
Los equipos portátiles suelen incluír
modems internos. Desgraciadamente eso casi siempre significa
que son <quote>winmodems</quote> cuyo funcionamiento depende
de software y para los cuales sólo hay disponibles
controladores para windows. A pesar de ello están
empezando a aparecer controladores para otros sistemas
operativos; por ejemplo, si su modem tiene un chipset
Lucent LT es muy posible que esté soportado por
el port
<package>comms/ltmdm</package>. Si ese no
es su caso tendrá que buscar un modem externo: la
solución más compacta probablemente sea un
modem PC Card (PCMCIA), de los que hablaremos más
adelante, pero
los modem serie o USB serán seguramente más
baratos. Normalmente
los modems normales (es decir, los que no son winmodems),
deberían funcionar sin problemas.</para>
</sect1>
<sect1>
<title>Dispositivos PCMCIA (PC Card)</title>
<para> Muchos portátiles incluyen bahías
PCMCIA, también conocidas como PC Card, que suelen
estar soportadas perfectamente por FreeBSD. Consulte el
mensaje de arranque de su sistema (mediante &man.dmesg.8;)
para saber si fueron detectadas correctamente; deberían
figurar como
<filename>pccard0</filename>,
<filename>pccard1</filename> etc. en dispositivos como
<filename>pcic0</filename>).</para>
<para>&os;&nbsp;4.X soporta tarjetas PCMCIA de 16 bits y
&os;&nbsp;5.X soporta tanto éstas tarjetas de 16 bits
como tarjetas de 32 bits
<quote>CardBus</quote>. Hay una lista de tarjetas soportadas en
el fichero
<filename>/etc/defaults/pccard.conf</filename>. Léalo
cuidadosamente y siempre que sea posible compre tarjetas que
aparezcan en ese fichero. Las que no aparecen es posible que funcionen
como dispositivos <quote>genéricos</quote>; en concreto
la mayoría de los modem de 16 bits deberían funcionar
correctamente siempre y cuando no sean winmodems (existen
también como PC Cards, así que tenga cuidado). Si su
sistema reconoce su tarjeta como un modem genérico tenga en
cuenta que el fichero <filename>pccard.conf</filename> especifica
por defecto un retardo de 10 segundos para evitar bloqueos en algunos
modelos; eso puede ser una precaución excesiva para su
modem así que es posible que quiera cambiar ese valor,
reducirlo o incluso eliminarlo.</para>
<para>Algunas partes de
<filename>pccard.conf</filename> pueden necesitar un poco de
edición.
Busque la línea donde figura la irq y asegúrese de
eliminar cualquier número que esté en uso; si tiene
una tarjeta de sonido integrada borre irq 5, si no puede sufrir
bloqueos del sistema al insertar la tarjeta. Consulte también
la memoria disponible para las bahías; si su tarjeta sigue sin ser
detectada pruebe a cambiar alguno de los valores posibles que
aparecen en la página man de &man.pccardc.8;.
</para>
<para>Si aún no funciona puede lanzar el daemon
&man.pccardd.8;. Para activarlo en el arranque añada
<programlisting>pccard_enable="YES"</programlisting> en el
fichero
<filename>/etc/rc.conf</filename>. Tras ese paso sus tarjetas
deberían ser detectadas cuando las inserte y cuando las
extraiga; deberían asímismo aparecer entradas en
ficheros <quote>log</quote> reflejando el momento en el que
los nuevos dispositivos son activados.</para>
<para>Ha habido cambios de gran calado en el código
de pccard, como la inclusión de enrutado de
interrupciones ISA, muy útil en máquinas en
las que hasta la irrupción de FreeBSD 4.4 no
era posible usar la BIOS PCI. Si tiene problemas con
esto pruebe a actualizar su sistema.</para>
</sect1>
<sect1>
<title>Administración de energía</title>
<para>Desgraciadamente no existe un soporte demasiado bueno
en FreeBSD. Si tiene suerte algunas características
pueden ser funcionales mientras que otras no lo serán
en absoluto.</para>
<para>Para complicar un poco más las cosas hay dos
estándares de administración de energía,
APM y ACPI. El segundo se hizo para sustituír el primero
e incluye nuevas características pero también
más problemas.</para>
<para>Algunos portátiles soportan tanto APM como ACPI
(hasta cierto punto) mientras que otros sólo soportan uno de
ellos así que no tendrá más remedio que
experimentar con ambos para saber si dispone de administración
de energía y hasta qué punto.</para>
<note>
<para>No puede tener APM y ACPI activados simultáneamente,
aunque su portátil soporte ambos.</para>
</note>
<sect2>
<title>APM</title>
<para>Una BIOS con APM (Advanced Power Management,
Administración
Avanzada de Energía) provée de soporte
para diversas características de administración de
energía tales como <quote>standby</quote>, suspensión,
hibernación, reducción de la velocidad del
reloj de la CPU, etc. y existe tanto en
&os;&nbsp;4.X como en &os;&nbsp;5.X.</para>
<para>Para activar el soporte de APM deberá compilar
su kernel: añada
<literal>device apm0</literal> en
&os;&nbsp;4.X y <literal>device apm</literal> en
&os;&nbsp;5.X. El soporte APM como módulo existe en
&os;&nbsp;5.X; para cargarlo en el arranque añada
la línea
<literal>apm_load="YES"</literal> al fichero
<filename>/boot/loader.conf</filename>.</para>
<para>En &os;&nbsp;5.X tendrá que asignar
<literal>hint.apm.0.disabled="0"</literal> en el fichero
<filename>/boot/device.hints</filename>.</para>
<para>APM puede activarse en el arranque añadiendo
<literal>apm_enable="YES"</literal> en el fichero
<filename>/etc/rc.conf</filename>. El daemon &man.apmd.8;
se puede lanzar añadiendo
<literal>apmd_enable="YES"</literal> al fichero
<filename>/etc/rc.conf</filename>, que se encarga de transmitir
ciertos eventos a la BIOS, de manera que sea posible
suspender/reanudar presionando alguna tecla concreta o
al abrir y al cerrar la pantalla.</para>
<para>Los comandos APM figuran en la página man de
&man.apm.8;. Por ejemplo <command>apm -b</command> suministra
el estado de la batería (o 255 si no está soportado),
<command>apm -Z</command> pone el portátil en
<quote>standby</quote>, <command>apm -z</command>
(o <command>zzz</command>) lo suspende. Para apagar el
sistema use <command>shutdown -p</command>. Le recordamos
una vez más que alguna o incluso todas éstas
funciones pueden no funcionar del todo bien o incluso no hacerlo
en absoluto.</para>
<para>Es posible que la suspensión o
el modo <quote>standby</quote> funcione en consola pero
no en X (esto es, la pantalla no se recupera). Si usa
&os;&nbsp;5.X una posible solución es añadir
<literal>options
SC_NO_SUSPEND_VTYSWITCH</literal>
al fichero de configuración de su kernel y que lo
recompile. Otra forma de solucionarlo es cambiar a otra
consola virtual (mediante
<keycombo action="simul"><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo>
u otra tecla de función) y ejecutar &man.apm.8;.
Si está usando &man.apmd.8; puede automatizar
esto con &man.vidcontrol.1;: edite
<filename>/etc/apmd.conf</filename> y cámbielo del
siguiente modo:</para>
<programlisting>apm_event SUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "/etc/rc.suspend";
}
apm_event USERSUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "sync &amp;&amp; sync &amp;&amp; sync";
exec "sleep 1";
exec "apm -z";
}
apm_event NORMRESUME, STANDBYRESUME {
exec "/etc/rc.resume";
exec "vidcontrol -s 9 &lt; /dev/console";
}</programlisting>
</sect2>
<sect2>
<title>ACPI</title>
<para>ACPI (Advanced Configuration and Power Management
Interface, Interfaz para la Administración de Energía
y Configuración Avanzada) facilita no solo la
administración de energía sino también
la detección de hardware (sustituyendo la detección
PnP y PCI). ACPI sólo está disponible en
&os;&nbsp;5.X y está activado por defecto, así que
no tiene que hacer nada especial para que funcione. Puede
controlar el comportamiento de ACPI con
&man.acpiconf.8;.</para>
<para>Desgraciadamente los fabricantes ponen a la venta sus
portátiles con implementaciones ACPI defectuosas,
haciendo que habilitar ACPI algunas veces genere más
problemas que ventajas, hasta el punto de no poder siquiera
arrancar &os; en algunas máquinas con ACPI
habilitado.</para>
<para>Si ACPI le está causando problemas debería
comprobar si el fabricante de su portátil ha
liberado una nueva versión de la BIOS que solucione
alguno de esos problemas. Dado que la implementación de
ACPI en &os; está en constante evolución debería
también actualizar su sistema; tal vez así sus
problemas se solucionen.</para>
<para>Si desea deshabilitar ACPI añada
<literal>hint.acpi.0.disabled="1"</literal> al fichero
<filename>/boot/device.hints</filename>. ACPI puede
deshabilitarse temporalmente en el <quote>prompt</quote>
del arranque tecleando
<literal>unset acpi_load</literal> en caso de tener problemas
para arrancar una máquina con ACPI
habilitado. &os;&nbsp;5.1-RELEASE y posteriores disponen de
un menú en el arranque que controla cómo &os;
arranca. Una de las opciones que se suministran es la de
dehabilitar ACPI. Para hacerlo simplemente seleccione
<guimenuitem>2. Boot &os; with ACPI
disabled</guimenuitem> (Arrancar &os; con ACPI deshabilitado)
en el menú.</para>
</sect2>
<sect2>
<title>Administración de Energía de la Pantalla</title>
<para>El sistema X window (<application>XFree86</application>) incluye
administración de energía de la pantalla (consulte
la página man de &man.xset.1; y busque en ella
<quote>dpms</quote>). Tendrá que investigar. Sin embargo
tenga en cuenta que también esto funciona de manera muy poco
fiable en portátiles: con frecuencia apaga la pantalla pero
no apaga la retroiluminación.</para>
</sect2>
</sect1>
</article>

View file

@ -15,7 +15,6 @@ SUBDIR+= explaining-bsd
SUBDIR+= filtering-bridges
SUBDIR+= fonts
SUBDIR+= ipsec-must
SUBDIR+= laptop
SUBDIR+= linux-users
SUBDIR+= mh
SUBDIR+= nanobsd

View file

@ -1,22 +0,0 @@
#
# The FreeBSD Documentation Project
# The FreeBSD French Documentation Project
#
# $Id: Makefile,v 1.1 2002-04-20 21:07:09 gioria Exp $
# $FreeBSD$
# Original revision: 1.1
# Article about using FreeBSD on laptops
#
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.xml
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,222 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!--
The FreeBSD Documentation Project
The FreeBSD French Documentation Project
$FreeBSD$
$Id: article.xml,v 1.2 2002-09-22 18:49:48 blackend Exp $
Original revision: 1.5
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="fr">
<info><title>FreeBSD sur les ordinateurs portables</title>
<abstract>
<para>FreeBSD fonctionne bien sur la plupart des ordinateurs
portables, en tenant compte de quelques avertissements. Quelques
problèmes spécifiques &agrave; l'utilisation de
FreeBSD sur ordinateurs portables, provenant d'exigences
matérielles différentes de celles des stations de
travail, sont abordés ci-dessous.</para>
&trans.a.fonvieille;
</abstract>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
</info>
<para>On pense souvent &agrave; FreeBSD comme étant un système
d'exploitation pour serveur, mais il fonctionne très bien sur
une station de travail, et si vous désirez l'utiliser sur votre
ordinateur portable vous pouvez profiter de tous les avantages
habituels: implantation systématique, administration et mise &agrave;
jour aisées, le système de logiciels
portés/pré-compilés pour
ajouter des logiciels, et ainsi de suite (ses autres avantages,
tels que la stabilité, les performances réseau, la
performance sous une charge importante, cela ne peut ne pas
être évident sur un portable, bien sûr).
Cependant, l'installer sur des ordinateurs portables sous-entend
souvent des problèmes qui ne sont pas rencontrés
avec les stations de travail et qui ne sont
généralement pas débattus (les portables,
bien plus que les stations de travail, sont réglés
pour Microsoft Windows). Cet article a pour but de discuter de
certains de ces problèmes.</para>
<sect1>
<title>XFree86</title>
<para>Les versions récentes d'XFree86 fonctionnent avec la
plupart des systèmes d'affichage disponibles de nos jours
sur les ordinateurs portables. L'accélération peut
ne pas être supportée, mais une
configuration SVGA générique devrait fonctionner.</para>
<para>Avec la documentation de votre ordinateur portable
déterminez quelle carte vous disposez, et vérifiez
dans la documentation d'XFree86 (ou dans le programme de
configuration) si elle est spécifiquement supportée.
Si non, utilisez un pilote générique (ne pas en
utiliser un pour son nom qui semble similaire &agrave; celui de
la carte). Avec XFree86 version 4, vous
pouvez tenter votre chance avec la commande <userinput>XFree86
-configure</userinput> qui détecte automatiquement beaucoup
de configurations.</para>
<para>Souvent le problème est de configurer l'écran.
Les ressources générales pour XFree86 se concentrent
sur les moniteurs cathodiques; obtenir une modeline
adéquate pour un écran LCD peut s'avérer
difficile. Vous pouvez être chanceux et ne pas avoir
&agrave; spécifier de modeline, ou juste préciser
les plages HorizSync et VertRefresh qui conviennent. Si cela ne
fonctionne pas, la meilleure option est de se référer
aux ressources web consacrées &agrave; la configuration d'X
sur ordinateurs portables (ce sont souvent des sites
orientés linux mais cela n'a pas d'importance parce que les
deux systèmes utilisent XFree86) et copier une modeline
postée par quelqu'un pour un matériel similaire.</para>
<para>La plupart des ordinateurs portables viennent avec deux
boutons sur leur périphérique de pointage, ce qui
est assez problématique sous X (étant donné
que le bouton du milieu est généralement
utilisé pour coller du texte); vous pouvez faire
correspondre un click simultané sur les boutons gauche et
droite dans votre configuration d'X &agrave; un click sur le bouton
du milieu avec la ligne
<programlisting>
Option "Emulate3Buttons"
</programlisting>
dans le fichier XF86Config dans la section
<literal>InputDevice</literal> (pour XFree86 version 4; pour la
version 3, rajoutez juste la ligne <literal>Emulate3Buttons</literal>,
sans guillemets, dans la section <literal>Pointer</literal>).
</para>
</sect1>
<sect1>
<title>Modems</title>
<para>Les ordinateurs portables sont généralement
équipés de modems intégrés (on-board).
Malheureusement, cela veut presque toujours dire que ce sont des
<quote>winmodems</quote> dont les fonctions sont
réalisées par logiciel, pour lesquels seuls des
pilotes pour windows sont normalement disponibles (bien que
quelques pilotes pour d'autres systèmes commencent &agrave;
voir le jour). Dans le cas contraire, vous avez besoin d'acheter un
modem externe: la solution la plus compacte est un modem PC-Card
(PCMCIA), abordé ci-dessous, mais un modem série ou
USB peut être moins cher. Généralement les
modems habituels (non-winmodems) devraient fonctionner correctement.
</para>
</sect1>
<sect1>
<title>Périphériques PCMCIA (PC-Card)</title>
<para>La plupart des ordinateurs portables viennent avec des slots
PCMCIA (aussi appelés PC-Card); ceux-ci sont bien
supportés sous FreeBSD. Examinez vos messages de
démarrage (en utilisant dmesg) et regardez si ces derniers
ont été détectés correctement (ils
devraient apparaître comme <filename>pccard0</filename>,
<filename>pccard1</filename> etc sur des
périphériques comme
<filename>pcic0</filename>).</para>
<para>FreeBSD supporte actuellement les cartes PCMCIA 16-bits,
mais pas les cartes 32-bits (<quote>CardBus</quote>). Une base
de données des cartes supportées se trouve dans le
fichier <filename>/etc/defaults/pccard.conf</filename>.
Examinez-la, et achetez de préférence des cartes
listées. Les cartes non listées
peuvent aussi fonctionner comme périphériques
<quote>génériques</quote>: en particulier la plupart
des modems (16-bits) devraient fonctionner parfaitement,
dès lors que ce ne sont pas des winmodems (ils existent
aussi même en modèles PC-Card, donc faites attention).
Si votre carte est reconnue en tant que modem
générique, notez que le fichier pccard.conf de
défaut spécifie un délai de 10 secondes
(pour éviter le blocage de certains modems); cela peut
être bien plus que nécessaire pour votre
modèle, donc vous pouvez avoir envie de le modifier, le
réduire ou le retirer totalement.</para>
<para>Certaines parties de <filename>pccard.conf</filename>
peuvent nécessiter une édition. Contrôler la
ligne irq, et soyez sûr de retirer les nombres
déj&agrave; utilisés: en particulier si vous avez
une carte son intégrée, retirez l'irq 5 (sinon
vous risquez de subir des blocages quand vous insérez une
carte). Vérifiez également le slot mémoire
disponible; si votre carte n'est pas détectée,
essayez de le changer pour une autre des valeurs autorisées
(listée dans la page de manuel &man.pccardc.8;).</para>
<para>S'il ne tourne pas déj&agrave;, lancer le démon
pccardd (pour le lancer au démarrage, ajoutez
<programlisting>pccard_enable="YES"</programlisting> &agrave;
<filename>/etc/rc.conf</filename>). Maintenant vos cartes
devraient être détectées quand vous les
insérez et les retirez, et vous devriez obtenir des
messages dans vos traces système au sujet de nouveaux
périphériques activés.</para>
<para>Il y a eu des changements majeurs au code de pccard
(incluant le routage ISA des interruptions, pour les machines
dont le PCIBIOS semble être inutilisable par FreeBSD) avant
la sortie de FreeBSD 4.4. Si vous rencontrez des problèmes,
essayez de mettre &agrave; jour votre système.</para>
</sect1>
<sect1>
<title>Gestion d'énergie</title>
<para>Malheureusement, cela n'est pas supporté de
façon fiable par FreeBSD. Si vous êtes chanceux,
quelques fonctions pourraient fonctionner correctement, ou
pourraient ne pas fonctionner du tout.</para>
<para>Pour l'autoriser, vous aurez peut-être besoin de
compiler un noyau avec le support de la gestion d'énergie
(<literal>device apm0</literal>) ou rajoutez l'option
<literal>enable apm0</literal> au fichier
<filename>/boot/loader.conf</filename>, et aussi lancez le
démon apm au démarrage (ligne
<literal>apm_enable="YES"</literal> dans
<filename>/etc/rc.conf</filename>). Les commandes apm sont
énumérées dans la page de manuel &man.apm.8;.
Par exemple, <command>apm -b</command> vous donne l'état de
la batterie ( ou 255 si non supporté),
<command>apm -Z</command> met l'ordinateur portable en veille,
<command>apm -z</command> (ou zzz) le place en mode hibernation.
Pour arrêter la machine, utilisez
<command>shutdown -p</command>. Encore une fois, certaines ou
toutes ces fonctions peuvent ne pas fonctionner correctement ou pas
du tout. Il se peut qui vous trouviez que l'hibernation/veille
fonctionne en mode console mais pas sous X (c'est l'écran
qui ne se rallume pas, dans ce cas, basculez sur
une console virtuelle, en utilisant Ctrl-Alt-F1 ou une autre
touche de fonction, et alors exécuter la commande apm).
</para>
<para>Le système X window (XFree86) inclut aussi la gestion de
l'alimentation de l'affichage (lire la page de manuel
&man.xset.1; et y rechercher le terme dpms). Il se peut que vous
désiriez l'étudier en détail. Cependant, cela,
aussi, ne fonctionne pas correctement sur les ordinateurs portables:
souvent l'affichage est éteint mais pas le
rétro-éclairage.</para>
</sect1>
</article>

View file

@ -12,7 +12,6 @@ SUBDIR = compiz-fusion
SUBDIR+= cups
SUBDIR+= explaining-bsd
SUBDIR+= gjournal-desktop
SUBDIR+= laptop
SUBDIR+= linux-comparison
SUBDIR+= linux-users

View file

@ -1,22 +0,0 @@
# $FreeBSD$
#
# Article: FreeBSD on Laptops
#
# %SOURCE% en_US.ISO8859-1/articles/laptop/Makefile
# %SRCID% 1.4
#
MAINTAINER= doc@FreeBSD.org
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.xml
URL_RELPREFIX?= ../../../..
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,442 +0,0 @@
<?xml version="1.0" encoding="iso-8859-2"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!-- The FreeBSD Hungarian Documentation Project
Translated by: PALI, Gabor <pgj@FreeBSD.org>
%SOURCE% en_US.ISO8859-1/articles/laptop/article.xml
%SRCID% 1.25
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="hu">
<info><title>&os; laptopon</title>
<abstract>
<para>A &os; néhány buktatótól eltekintve
remekül működik a legtöbb laptopon. A
következőkben nagyító alá vesszük
azokat a problémákat, amelyek a &os; laptopon
történő futtatását
akadályozhatják, az asztali
számítógépektől eltérő
hardverkövetelményekre vonatkozóan.</para>
<para><emphasis>Fordította: Páli Gábor,
utolsó ellenőrzés:
2010.11.28.</emphasis></para>
</abstract>
<legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.linux;
&tm-attrib.microsoft;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
</info>
<para>A &os;-t gyakran az Internetes kiszolgálók
operációs rendszerének vélik, ám
éppen ugyanolyan jól alkalmazható egy asztali
számítógépre is, és ha egy laptopon
kívánjuk használni, továbbra is
élvezhetjük a korábban megszokott előnyeit:
rendszerezett felépítés, könnyű
karbantarthatóság és
frissíthetőség, a programok
telepítéséhez kidolgozott port- és
csomagkezelő rendszer, és így tovább.
(Az egyéb előnyei, mint mondjuk a
megbízhatóság, kiemelkedő
hálózati teljesítmény, nagy
terhelés alatti teljesítmény, természetesen
nem feltétlenül szembetűnőek egy laptopon.)
Azonban a laptopokra történő telepítése
gyakran felvet olyan gondokat, amelyek az asztali
számítógépek esetén nem jelennek meg,
és ezért általában nem is kerülnek
szóba (a laptopok ugyanis az asztali
számítógépekénél jóval
nagyobb mértékben &microsoft.windows;-ra vannak
tervezve). Ebben a leírásban szeretnénk
megtárgyalni ezeket a problémákat.
Néhányan ugyan már előzetesen
feljegyezték a &os;-vel kapcsolatos tapasztalataikat bizonyos
modellek esetén olyan oldalakon, amelyek nem részei a &os;
hivatalos dokumentációjának. Emiatt könnyen
előfordulhat, hogy úgy is találhatunk hasznos
információkat a témában, ha egyszerűen
rákeresünk valamelyik népszerű
keresőben a laptopunk modelljére és a
<quote>&os;</quote> szóra. Ezen kívül
létezik még egy külön &os;-hez kialakított
Internetes adatbázis, ahol a különféle laptopok
hardveres problémáihoz találhatunk
segítséget: ez <link xlink:href="http://laptop.bsdgroup.de/freebsd/">A &os; laptop
kompabilitási lista</link>.</para>
<para>Amennyiben szeretnénk felvenni a kapcsolatot más &os;
laptop felhasználókkal, érdeklődjünk a
&a.mobile.name; listán. Valamint megéri még
ellátogatni <link xlink:href="http://tuxmobile.org/mobile_bsd.html">erre</link> a &os;-s
laptopokkal foglalkozó oldalra is. </para>
<sect1 xml:id="xorg">
<title>&xorg;</title>
<para>Az <application>&xorg;</application> legújabb
változatai képesek együttműködni a
napjainkban kapható laptopok videóvezérlőivel.
Habár a hardveres gyorsítás nem
feltétlenül támogatott, az általános
SVGA módnak használhatónak kell lennie.</para>
<para>Keressük meg a laptopunk kézikönyvében,
hogy milyen videóvezérlő található
benne, majd vessük össze ezt az
<application>&xorg;</application> dokumentációjával,
amiből kiderül, mennyire támogatja. Ha kiemelten nem
támogatná, használjuk az általános
eszközt (<emphasis>generic device</emphasis>, de ne hagyjuk
megtéveszteni magunkat semmi hasonlóval). Mellesleg
szerencsét próbálhatunk az
<userinput>&xorg; -configure</userinput> paranccsal is, amely
magától képes felderíteni
konfigurációnk nagy részét.</para>
<para>A legtöbb gondot egyébként a monitor
beállítása okozza. Az
<application>&xorg;</application>-ra vonatkozó források
többnyire kizárólag csak
katódsugárcsöves megjelenítőkre
összepontosítanak, így egy
folyadékkristályos megjelenítő
esetén némileg trükkös lehet eltalálni a
megfelelő <literal>modeline</literal>
beállításokat. Elképzelhető
egyébként, hogy szerencsénk van, és
egyáltalán nem is kell megadni modeline-t, vagy
egyszerűen csak a megfelelő <literal>HorizSync</literal>
és <literal>VertRefresh</literal>
értéktartományokat kell behangolni. Ha azonban
ezek sem működnének, a legjobb, amit ilyenkor
tehetünk, hogy további forrásokat nézünk
át az Interneten a helyes beállítások
után keresve (ezek gyakorta &linux;-os oldalak, de ez a mi
esetünkben most nem számít, hiszen ugyanazt az
<application>&xorg;</application>-ot használja mind a két
rendszer) és bemásoljuk a konfigurációs
állományba a mienkhez hasonló hardverre
talált modeline beállításokat.</para>
<para>A laptopok legtöbbjét a pozícionáló
eszközeiken két gombbal szállítják, ami
eléggé problémás tud lenni az X esetén
(tekintettel arra, hogy a középső gombot bevett
módon szövegek másolására
használják), ennek feloldására be lehet
állítani úgy az X-et, hogy a bal és jobb gomb
egyszerre történő lenyomása helyettesítse
a középső gombot. Ehhez adjuk meg a</para>
<programlisting>Option "Emulate3Buttons"</programlisting>
<para>sort az <filename>xorg.conf</filename> állományban, az
<literal>InputDevice</literal>szekcióban.</para>
</sect1>
<sect1 xml:id="modems">
<title>Modem</title>
<para>A laptopokba általában szerelnek belső
(beépített, integrált) modemeket is. Sajnos, ez
az esetek döntő részében valamilyen
<quote>winmodem</quote>, ahol a tényleges funkciókat
szoftveres úton valósítják meg és csak
a &windows;-hoz fejlesztett meghajtók képesek ezeket
elérhetővé tenni (ámbár
néhány ilyen meghajtó már szárnyra
kapott más operációs rendszerekhez is:
például, ha <emphasis>Lucent LT</emphasis> chipsetes
modemmel rendelkezünk, akkor előfordulhat, hogy
támogatja a <package>comms/ltmdm</package> port).
Ilyenkor kénytelenek vagyunk egy külső modemet
vásárolni: erre az egyik legjobb megoldás egy
PC-kártyás (PCMCIA) modem (ld. lentebb), de a soros vagy
USB-s modemek esetlegesen olcsóbbnak bizonyulhatnak.
Általánosságban elmondható, hogy a
hagyományos modemek (a nem winmodemek) minden
nehézség nélkül
használhatóak.</para>
</sect1>
<sect1 xml:id="pcmcia">
<title>PCMCIA (PC-kártyás) eszköz</title>
<para>A laptopokon általában találhatóak PCMCIA
(vagy más néven PC-kártya)
bővítőhelyek, ezek &os; alatt eléggé
jól támogatottak. Ellenőrizzük le a
rendszerindulás során megjelenő üzenetek
között (a &man.dmesg.8; segítségével),
hogy ezeket a rendszer megfelelően észlelte-e
(<filename>pccard0</filename>, <filename>pccard1</filename> stb.
neveken kell megjelenniük a bővítőhelyeknek,
valamint az így csatlakoztatott eszközöknek
<filename>pcic0</filename> stb. néven).</para>
<para>A &os;&nbsp;4.X a 16 bites PCMCIA-kártyákat
támogatja, a &os;&nbsp;5.X pedig már ismeri a
16 és 32 bites (<quote>CardBus</quote>) kártyákat
is. A jelenleg támogatott kártyák adatbázisa
fellelhető a <filename>/etc/defaults/pccard.conf</filename>
állományban. Vásárlás előtt az
itt szereplő kártyákban érdemes gondolkodni.
Az itt nem szereplő kártyák működhetnek
általános (<quote>generic</quote>) eszközként:
a legtöbb (16 bites) modem ragyogóan
használható, feltéve, hogy nem winmodem (ezek
gyakran PC-kártya formájában is megjelennek,
legyünk óvatosak). Érdemes megemlíteni, hogy
ha a kártyánkat általános modemként
ismerte fel a rendszer, a <filename>pccard.conf</filename>
állományban alapértelmezés szerinti
található egy 10 másodperces
késleltetés (hogy elkerüljük a fagyást
egyes modemeken), ami sok esetben túlzott
óvatosságra vall, így ha nem érezzük
szükségét és van kedvünk
állítgatni, csökkentsük ezt az időt vagy
akár teljesen ki is kapcsolhatjuk.</para>
<para>Előfordulhat, hogy a <filename>pccard.conf</filename> egyes
részei átírásra szorulnak.
Nézzük meg, hogy rendszerünkben melyik
megszakítások (IRQ) vannak már használatban
és töröljük őket. Tehát ha mondjuk
van egy hangkártyánk, amely az 5-ös IRQ-t
használja, vegyük ki a felsorolásból a
számát (máskülönben a rendszer
lefagyásába futhatunk bele egy kártya
behelyezése során). Ellenőrizzük
továbbá a szabad memória
bővítőhelyeket; ha a kártyánkat nem
ismerte még fel a rendszer, próbáljuk meg
átállítani egy másik megengedett
értékre (ezek megtalálhatóak a
&man.pccardc.8; kézikönyvében).</para>
<para>Ha még nem futna, indítsuk el a &man.pccardd.8;
daemont. (Ha minden indításkor szeretnénk
aktiválni, akkor tegyük bele az
<filename>/etc/rc.conf</filename> állományba a
<programlisting>pccard_enable="YES"</programlisting>
sort.) Innentől kezdve minden behelyezett és kivett
kártyát észlel a rendszerünk, amiről a
naplóban értesítést is ad.</para>
<para>A &os;&nbsp;4.4 kiadása előtt komolyabb
változások történtek a pccard
forrásában (pl. a megszakítások ISA-n
keresztüli közvetítése olyan
számítógépek esetén, ahol a &os; nem
tudja használni a PCI BIOS-t). Ha ezzel kapcsolatosan
felmerülne bármilyen probléma, érdemes
frissíteni a rendszert.</para>
</sect1>
<sect1 xml:id="power-management">
<title>Energiagazdálkodás</title>
<para>Sajnálatos módon ezek a funkciók
egyáltalán nem mondhatóak jól
támogatottnak &os; alatt. Ha szerencsénk van, akkor egyes
funkciók jól működnek, mások pedig
egyáltalán nem.</para>
<para>Hogy még bonyolultabb legyen a helyzet, két
szabvány is létezik az energiagazdálkodásra:
az APM és az ACPI, ahol az utóbbi bővebb és
kiterjedtebb szabvány, mint az előbbi, de több
problémát is felvet.</para>
<para>Egyes laptopok az APM-et és az ACPI-t is
támogatják (adott mértékig), mások
pedig csak az egyik szabványt ismerik. Emiatt mind a kettővel
kísérletezni kell egy elfogadható
energiagazdálkodási séma
kialakításához.</para>
<note><para>Egyszerre nem lehet bekapcsolni az APM-et és az ACPI-t,
még akkor sem, ha a laptop mind a kettőt
támogatja.</para></note>
<sect2>
<title>APM</title>
<para>Az APM (Advanced Power Management) BIOS támogatást ad
a különféle energiagazdálkodási
jellemzőkhöz, mint mondjuk a készenléti
állapot, hibernálás, a processzor
órajelének csökkentése stb., amelyek
el is érhetőek &os;&nbsp;4.X és &os;&nbsp;5.X
alatt.</para>
<para>Az APM támogatás bekapcsolásához
fordíthatunk energiagazdálkodásra
felkészített rendszermagot
(<literal>device apm0</literal> &os;&nbsp;4.X esetén és
<literal>device apm</literal> &os;&nbsp;5.X esetén) is, de
a &os;&nbsp;5.X vonal rendszermagjához már létezik
külön APM modul is, amelyet az indítás
során tudunk betöltetni úgy, hogy
<filename>/boot/loader.conf</filename> állományhoz
hozzávesszük az <literal>apm_load="YES"</literal>
sort.</para>
<para>Ezen felül &os;&nbsp;5.X esetén még be kell
írni a <literal>hint.apm.0.disabled="0"</literal> sort is a
<filename>/boot/device.hints</filename>
állományba.</para>
<para>Az APM-et minden indítással együtt
aktivizálhatjuk, ha megadjuk az
<literal>apm_enable="YES"</literal> sort a
<filename>/etc/rc.conf</filename> állományban. Ezen
kívül még hasznos lehet elindítani a
&man.apmd.8; daemont is, méghozzá a
<literal>apmd_enable="YES"</literal> sor
hozzávételével. Ez a daemon felügyeli a
BIOS-nak küldött különböző
APM-eseményeket, így készenléti
állapotba tudjuk helyezni a laptopunkat gombnyomásra,
vagy akár összecsukással is.</para>
<para>A APM-parancsok a &man.apm.8; kézikönyvében
szerepelnek. Például, az <command>apm -b</command>
paranccsal le lehet kérdezni az akkumulátor
töltöttségét (vagy 255-öt ad vissza, ha
nem támogatott ez funkció), a <command>apm -Z</command>
energiatakarékos állapotba, ill. a
<command>apm -z</command> (vagy a <command>zzz</command>) parancs
készenléti állapotba helyezi a laptopot. A
számítógép kikapcsolásához
és áramtalanításához a
<command>shutdown -p</command> parancsot kell használni.
Még egyszer megemlítjük, hogy a tárgyalt
funkciók közül nem mindegyik működik
megfelelően vagy akár egyáltalán
nem működik.</para>
<para>Esetenként tapasztalhatjuk, hogy a laptop
energiatakarékos vagy készenléti állapotba
helyezése ugyan működik konzolon, de X alatt
viszont nem (vagyis nem kapjuk vissza a képet). Ha
&os;&nbsp;5.X-et használunk, erre egy megoldás lehet,
ha beletesszük a
<literal>options SC_NO_SUSPEND_VTYSWITCH</literal> sort a
rendszermagunk konfigurációs
állományába és újrafordítjuk
azt. Másik lehetőség, hogy átváltunk
egy virtuális konzolra (a
<keycombo action="simul">
<keycap>Ctrl</keycap>
<keycap>Alt</keycap>
<keycap>F1</keycap>
</keycombo>
lenyomásával, vagy ugyanígy egy másik
funkcióbillentyűvel), majd elindítjuk az
&man.apm.8;-et. Ha &man.apmd.8;-t használunk,
automatizálhatjuk is ezt a rendszert a &man.vidcontrol.1;
segítségével. Ehhez nem kell mást
tennünk, csupán átírni a
<filename>/etc/apmd.conf</filename> állományt az
alábbiak szerint:</para>
<programlisting>apm_event SUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "/etc/rc.suspend";
}
apm_event USERSUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "sync &amp;&amp; sync &amp;&amp; sync";
exec "sleep 1";
exec "apm -z";
}
apm_event NORMRESUME, STANDBYRESUME {
exec "/etc/rc.resume";
exec "vidcontrol -s 9 &lt; /dev/console";
}</programlisting>
</sect2>
<sect2>
<title>ACPI</title>
<para>Az ACPI (Advanced Configuration and Power Management Interface)
nem csak energiagazdálkodást tesz lehetővé,
hanem hardver-felderítést is (ezzel szinte
feleslegessé téve a PnP-t és a PCI
BIOS-t). Az ACPI támogatása csak &os;&nbsp;5.X
alatt érhető el, és alapértelmezés
szerint aktív. Ilyenkor tehát nem kell semmit se
csinálni, hogy működésre bírjuk. Az
ACPI viselkedését az &man.acpiconf.8;-al tudjuk
vezérelni.</para>
<para>Sajnos azonban, a gyártók gyakorta hibás
ACPI-implementációval szállítják a
laptopokat, aminek következtében az ACPI
bekapcsolása több gondot okoz, mint hasznot, egészen
annyira, hogy akár a &os; bizonyos gépeken
képtelen elindulni aktív ACPI
támogatással.</para>
<para>Ha az ACPI használata gondokat okoz, ajánlott
érdeklődni a laptopunk
gyártójánál, hogy vajon
készült-e ACPI-vel kapcsolatos BIOS-frissítés
az utóbbi időben. Mivel a &os; ACPI
implementációja is még gyerekcipőben
jár, ezért érdemes még frissíteni a
rendszerünket is, elképzelhető ugyanis, hogy a
problémánkat azóta már
megoldották.</para>
<para>Az ACPI kikapcsolásához egyszerűen ki kell
bővíteni a <filename>/boot/device.hints</filename>
állományt a <literal>hint.acpi.0.disabled="1"</literal>
sorral. Ha gondunk lenne egy ACPI-t használó gép
indításával, ideiglenesen ki tudjuk kapcsolni az
ACPI-t az indítás során aktiválható
paranccsoron keresztül is, az <literal>unset acpi_load</literal>
parancs kiadásával. A &os;&nbsp;5.1-RELEASE
kiadásától kezdve már egy
rendszerindító menüben is kiválaszthatjuk,
hogyan induljon a rendszer: itt az egyik menüpont az
ACPI kikapcsolása. Ekkor tehát az ACPI
kikapcsolásához válasszuk a
<guimenuitem>2. Boot &os; with ACPI disabled</guimenuitem>
(2. A &os; indítása ACPI támogatás
nélkül) pontot a menüben.</para>
</sect2>
<sect2>
<title>A monitor energiagazdálkodása</title>
<para>Az X ablakkezelő rendszer (<application>&xorg;</application>)
is tartalmaz energiagazdálkodást a
megjelenítő eszközök számára
(ajánlott ezzel kapcsolatosan megnézni a &man.xset.1;
man oldalt, rákeresve a <quote>dpms</quote> szóra).
Valószínűleg ezt is hasznos lesz megismerni.
Azonban vegyük figyelembe, hogy sokszor nem következetesen
működik a laptopokon: előfordulhat, hogy kikapcsolja
ugyan a megjelenítőt, de nem kapcsolja ki
a háttérvilágítást.</para>
</sect2>
</sect1>
</article>

View file

@ -13,7 +13,6 @@ SUBDIR+= contributors
#SUBDIR+= cups
#SUBDIR+= custom-gcc
#SUBDIR+= explaining-bsd
SUBDIR+= fbsd-from-scratch
#SUBDIR+= filtering-bridges
SUBDIR+= fonts
#SUBDIR+= freebsd-questions
@ -22,7 +21,6 @@ SUBDIR+= fonts
#SUBDIR+= gjournal-desktop
#SUBDIR+= hubs
SUBDIR+= ipsec-must
#SUBDIR+= laptop
#SUBDIR+= ldap-auth
#SUBDIR+= linux-comparison
#SUBDIR+= linux-emulation

View file

@ -1,32 +0,0 @@
#
# $FreeBSD$
#
# Article: FreeBSD From Scratch
#
# Original revision: 1.6
DOC?= article
FORMATS?= html
MAINTAINER= schweikh@FreeBSD.org
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
EXTRAS= stage_1.conf.default
EXTRAS+= stage_1.sh
EXTRAS+= stage_2.conf.default
EXTRAS+= stage_2.sh
EXTRAS+= stage_3.mk
SRCS= article.xml
SRCS+= ${EXTRAS}
afterinstall:
.for entry in ${EXTRAS}
${INSTALL_DOCS} ${.CURDIR}/${entry} ${DESTDIR}
.endfor
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,692 +0,0 @@
<?xml version="1.0" encoding="euc-jp"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
<!ENTITY scratch.ap "<application xmlns='http://docbook.org/ns/docbook'>FreeBSD をゼロから設定する</application>">
]>
<!--
$FreeBSD$
Original revision: 1.11
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ja">
<info><title>FreeBSD をゼロから設定するには</title>
<author><personname><firstname>Jens</firstname><surname>Schweikhardt</surname></personname><affiliation>
<address><email>schweikh@FreeBSD.org</email></address>
</affiliation></author>
<copyright>
<year>2002</year>
<year>2003</year>
<year>2004</year>
<holder>Jens Schweikhardt</holder>
</copyright>
<legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.adobe;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>この記事は、「&scratch.ap; (FreeBSD From Scratch)」という、
わたしの個人的な経験をまとめたものです。
カスタマイズした &os; システムをソースからコンパイルし、
さらに好みの ports のコンパイルして、
あなたが望む構成のシステムの、
完全に自動化されたインストールを実現します。
<command>make world</command>
がすばらしい考え方だとお思いの方にとって、
&scratch.ap;」は、まさに <command>make world</command>
<command>make evenmore</command> (さらにその先)
へと広げるものになることでしょう。</para>
</abstract>
</info>
<sect1 xml:id="introduction">
<title>はじめに</title>
<para>今までに <command>make world</command>
を使ってシステムをアップグレードした経験はあるでしょうか?
もしディスクに一つのシステムしか入れていない場合は問題です。
<buildtarget>installworld</buildtarget> が途中で止まってしまったら、
あなたのシステムは壊れたまま、もう起動しなくなってしまうかも知れません。
あるいは、<buildtarget>installworld</buildtarget> が正常に終了しても、
新しいカーネルは起動に失敗してしまうかも知れません。
さて、そうなってしまったら、Fixit CD
を取り出して半年前のバックアップを戻す、
なんてはめになってしまうかも知れませんよね。</para>
<para>わたしは、<quote>アップグレードの時はディスクを初期化する</quote>
という方法がよいと考えています。パーティションではなくディスク全体のデータを
消去することで、アップグレードの手順では無視されるような古いデータが
残ってしまうことを防ぐことができます。ただ、
パーティションを全部初期化するということは、
ports/packages をすべて再コンパイル・再インストールしなければならず、
設定ファイルも注意深く作成し直さなければならないということです。
こういう作業を自動化したいと思いませんか?
そう思う人は、この先を読み進めましょう。</para>
</sect1>
<sect1 xml:id="why">
<title>どうして「&scratch.ap;」(あるいは「~しない」)
ことが必要なのか</title>
<para>これはもっともな質問です。
すでに <application>sysinstall</application> がありますし、
カーネルとユーザランドツールをコンパイルする方法には、
もっと有名な方法が他にもあるからです。</para>
<para><application>sysinstall</application>
の問題は、「何を、どこに、
どうやってインストールするのか」が非常に限定されているという点です。</para>
<itemizedlist>
<listitem>
<para><application>sysinstall</application>
は通常、構築ずみの配布物セットと packages を
(CD, DVD, FTP などの)
別の場所からインストールする時に使われるものであり、
<literal>make buildworld</literal>
の結果をインストールできるようにはできていません。</para>
</listitem>
<listitem>
<para>現在稼働中のシステム中にあるディレクトリに、
新しいシステムをインストールすることはできません。</para>
</listitem>
<listitem>
<para><application>Vinum</application>
パーティションへのインストールはできません。</para>
</listitem>
<listitem>
<para>構築ずみの packages はインストールできますが、
ports を構築することはできません。</para>
</listitem>
<listitem>
<para>スクリプトを使ったり、
インストール後に変更するための処理を自由に入れることは困難です。</para>
</listitem>
<listitem>
<para>最後の大きな理由として、<application>sysinstall</application>
が、公式にもう積極的に使わないプログラムと考えられている、
ということがあげられます。</para>
</listitem>
</itemizedlist>
<para>システム全体を構築してインストールする方法は、
<link xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html">ハンドブック</link>にある方法が有名です。
これはデフォルトで既存のシステムを置き換えるもので、
カーネルとモジュールだけが保存され、
システムバイナリ、ヘッダ、その他の多くのファイルは上書きされます。
使われなくなった古いファイルはそのまま残り、
動作に問題が出ることもあります。
何らかの理由でアップグレードに失敗すると、
システムを元の状態に戻することは不可能か、できても非常に困難です。</para>
<para>&scratch.ap;」方法は、これらの問題をすべて解決できます。
考え方は単純です。
稼働中のシステムを使って空のディレクトリにシステムをインストールします。
その時、その新しいシステムのディレクトリツリーには、
新しいパーティションを適切にマウントしておaきます。
数多くある設定ファイルは、コピーできるものは適切な場所にコピーし、
それができないものには &man.mergemaster.8; を使います。
新しいシステムに対するインストール後の設定は、
古いシステムを動作させながら、新しいシステムに対して chroot して
自由に行なうことができます。具体的には、
シェルスクリプト、もしくは <command>make</command>
の実行で構成される、次の 3 段階でこれらを実現します。</para>
<orderedlist>
<listitem>
<para><filename>stage_1.sh</filename>:
新しい起動可能なシステムを空のディレクトリ以下に作成し、
必要なファイルをマージ、もしくはコピーします。
そして、新しいシステムを起動します。
</para>
</listitem>
<listitem>
<para><filename>stage_2.sh</filename>:
必要な ports をインストールします。</para>
</listitem>
<listitem>
<para><filename>stage_3.mk</filename>:
ひとつ前の段階でインストールしたソフトウェアの、
インストール後の設定を行ないます。</para>
</listitem>
</orderedlist>
<para>新しいシステムを構築するために「&scratch.ap;」方法を使い、
それが数週間、満足する程度に動作していることを確認したら、
もう一度それを使って、大元のシステムを再インストールすることができます。
これからはいつでも好きな時にシステムを更新して、
初期化・再インストールしたパーティションに切り替えるだけでよくなるわけです。</para>
<para><link xlink:href="http://www.linuxfromscratch.org/">Linux From Scratch</link>
(もしくは省略して LFS) について耳にしたり、試された方がいらっしゃるかも知れません。
LFS も同じように、稼働中のシステムを使ってシステムをゼロから構築し、
空のパーティションにインストールする方法が書かれています。
LFS が話題の中心としているのは、(カーネル、コンパイラ、デバイス、
シェル、端末データベースなどの) 各システムコンポーネントの役割と、
それらのインストールの詳細を見せることのようです。
この「&scratch.ap;」では、そのような詳細には触れません。
わたしの目的は、インストールを終わりまで自動化することであり、
システム構築時の泥くさい過程を全部説明することではありません。
&os; をそのようなレベルで掘り下げてみたい人は、
<filename>/usr/src/Makefile</filename> を読んで、
<command>make buildworld</command>
の動作を追いかけるところから始めましょう。</para>
<para>また、「&scratch.ap;」方法にも、
次のような欠点があることを心に留めておいてください。</para>
<!-- XXX: A nice idea would be to write stage_2.sh using a jail
that runs into the newly installed world from stage_1. Having
properly set up a network address as the jail's primary IP
address, it might even be possible to build ports in a chroot
without uninstalling anything from the 'host' system. But
keep in mind that even jails run on the 'host' kernel. -->
<itemizedlist>
<listitem>
<para>第 2 段階で ports をコンパイルしている間、
システムは通常の用途に使用することができません。
もしプロダクションサーバを運用しているなら、
第 2 段階でダウンタイムが発生することを考慮に入れなければなりません。
<filename>stage_2.conf.default</filename> の ports のコンパイルには、
AMD1800+、10,000rpm SCSI、1GB の RAM を搭載したシステムで、
約 4 時間かかります。ports の代わりに package
をインストールすれば、この時間を 10 分程度にまで大幅に短縮することも可能です。</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="prerequisites">
<title>前提とする環境</title>
<para>&scratch.ap;」方法を実行するには、
次のものが必要です。</para>
<itemizedlist>
<listitem>
<para>ソースと ports ツリーを含む、稼働中の &os; システム</para>
</listitem>
<listitem>
<para>新しいシステムをインストールするための、
最低 1 個の未使用パーティション</para>
</listitem>
<listitem>
<para>&man.mergemaster.8; を実行した経験。もしくは、
それを実行する勇気。</para>
</listitem>
<listitem>
<para>インターネット接続環境がない、あるいは遅い場合には、
インストールしたい ports の配布ファイル</para>
</listitem>
<listitem>
<para>Bourne シェル (&man.sh.1;)
を使ってシェルスクリプトを作成するための基礎知識</para>
</listitem>
<listitem>
<para>新しいシステムを起動する方法を、
対話的あるいは設定ファイルを使ってブートローダに
教えることができること</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="stage1">
<title>第 1 段階: システムのインストール</title>
<para>この文書の初版では、第 1 段階にひとつのシェルスクリプトを使っていました。
カスタマイズはすべて、そのスクリプトを編集する必要があったのですが、
利用者からの意見を参考にして、スクリプトのコードとデータを分離することにしました。
そのため新しいスクリプトでは、コードスクリプトを変更せずに、
複数の異なるシステムに異なる構成のデータを置くことが可能になりました。</para>
<para>第 1 段階のコードスクリプトは
<filename>stage_1.sh</filename> であり、次のように 1
個の引数をつけて実行すると</para>
<informalexample>
<screen>&prompt.root; <userinput>./stage_1.sh default</userinput></screen>
</informalexample>
<para>設定ファイルとして
<filename>stage_1.conf.default</filename> を読み込み、
ログファイルとして
<filename>stage_1.log.default</filename> に書き込みます。</para>
<para>文末にわたしが使っている <filename>stage_1.conf.default</filename>
が添付してあります。
あなたが考える <quote>完璧なシステム</quote> に合わせて、
各設定をカスタマイズしてください。あなたが変更しそうな設定には、
詳細なコメントを追加してあります。設定スクリプトでは、
<command>create_file_systems</command>,
<command>create_etc_fstab</command>, <command>copy_files</command>,
<command>all_remaining_customization</command> という、
4 個のシェル関数を提供しなければなりません (これは、
<filename>stage_1.sh</filename> から呼ばれる順に書いてあります)。</para>
<para>考慮すべき点は、以下のとおりです。</para>
<itemizedlist>
<listitem>
<para>パーティションの配置</para>
<para>わたしは、システム全体を一つの大きな
パーティションに入れるという考え方が好きではないので、
普通は
<filename>/</filename>
<filename>/usr</filename>
<filename>/var</filename>
パーティションを分割し、<filename>/tmp</filename>
<filename>/var/tmp</filename> のシンボリックリンクにしています。
また、<filename>/home</filename> (ユーザのホームディレクトリ)、
<filename>/home/ncvs</filename> (&os; CVS リポジトリの複製),
<filename>/usr/ports</filename> (ports ツリー),
<filename>/src</filename> (チェックアウトした src ツリー)、
<filename>/share</filename> (news スプールなど、バックアップする必要がない、
その他の共有データ) といったファイルシステムを、
古いシステムと新しいシステムで共有しています。</para>
</listitem>
<listitem>
<para>その他の項目</para>
<para>これは、新しいシステムの起動後にすぐに実行したいことや、
第 2 段階の前に実行したい内容のことです。
なぜ第 1 段階で単純に新しいシステムに chroot してお気に入りの
ports をインストールしないのかというと、理論的にも、
実際の手順にも卵鶏問題があるからです。第 1 段階では、
古いカーネルが動作していますが、chroot 環境には、
新しいバイナリとヘッダが使われています。もしその新しいバイナリが、
古いカーネルには存在しない新しいシステムコールを使っていたら、
<literal>SIGSYS, Bad system call</literal>
というエラーが出て停止してしまうでしょう。わたしは
<package>lang/perl5</package>
を構築する時にも問題が発生することを確認しています。
</para>
</listitem>
</itemizedlist>
<para><filename>stage_1.sh</filename> を実行する前に、
<command>make installworld installkernel</command>
を実行するために通常行なう作業を完了させておいてください。
これらは、たとえば次のようなものです。</para>
<itemizedlist>
<listitem>
<para>カーネルコンフィグファイルの設定</para>
</listitem>
<listitem>
<para><command>make buildworld</command>
を正常終了させておくこと</para>
</listitem>
<listitem>
<para><command>make buildkernel
KERNCONF=whatever</command>
を正常終了させておくこと</para>
</listitem>
</itemizedlist>
<para>初めて <filename>stage_1.sh</filename> を実行した場合は、
稼働中のシステムから新しいシステムへとコピーされる設定ファイルは
<filename>/usr/src</filename> のものと比べると古いので、
<command>mergemaster</command> がどうするかを聞いてきます。
おすすめは、ここで変更点を統合しておくことです。
もし、何度も質問に答えるのが面倒であれば、
<emphasis>稼働中の</emphasis>システムのファイルを更新しておきましょう
(ただしこれは、そうできればの話です。
<literal>-STABLE</literal> のシステムを実行していて、
<literal>-CURRENT</literal> を構築する、
もしくはその逆のようなケースでは、そうしてはいけません)。
次に <command>mergemaster</command> を実行した時、
RCS バージョン ID が <filename>/usr/src</filename>
にあるファイルと一致しているものは、処理が飛ばされるようになります。</para>
<para><filename>stage_1.sh</filename> スクリプトは
<command>set -e</command> が指定されており、
最初のコマンドが失敗 (終了コードが 0 以外) すると停止します。
そのため、エラーを見逃してしまうということはないでしょう。
これは、タイプミスなどで未定義の変数を使った場合にもエラーになります。
次に進む前に、<filename>stage_1.conf.default</filename>
にあるエラーを全部修正しておいてください。</para>
<para><filename>stage_1.sh</filename> では
<command>mergemaster</command> が実行されます。
統合作業をしなければならないファイルが一つもない状態でも、
実行の終わりに次のメッセージが表示されます。</para>
<screen>*** Comparison complete
Do you wish to delete what is left of /var/tmp/temproot.stage1? [no] <userinput>no</userinput></screen>
<para><literal>no</literal> と答えるか、
単に <keycap>Enter</keycap> を押してください。
なぜかと言うと、<command>mergemaster</command>
<filename>/var/tmp/temproot.stage1</filename>
にサイズが 0 のファイルをいくつか残すからです。
これは、後で新しいシステムに (存在しなければ) コピーされます。</para>
<para>この後、インストールされたファイルのリストがページャ
(デフォルトでは &man.more.1; です。&man.less.1; を使うこともできます)
に表示されます。</para>
<screen>*** You chose the automatic install option for files that did not
exist on your system. The following were installed for you:
/newroot/etc/defaults/rc.conf
...
/newroot/COPYRIGHT
(END)</screen>
<para><keycap>q</keycap> を入力してページャを終了します。
すると <filename>login.conf</filename> に関して、次のように表示されます。</para>
<screen>*** You installed a login.conf file, so make sure that you run
'/usr/bin/cap_mkdb /newroot/etc/login.conf'
to rebuild your login.conf database
Would you like to run it now? y or n [n]</screen>
<para>これに対する答えはどちらでも構いません。
どう答えても、スクリプトから &man.cap.mkdb.1; が実行されます。</para>
<para>次に示すのは、筆者の使っている <filename>stage_1.conf.default</filename>
ですが、たくさんの部分を書き換える必要がありますので注意してください。
どこを書き換えればよいのかについては、コメントを読めば十分理解できると思います。</para>
<warning>
<para>&man.newfs.8; コマンドには注意してください。
マウントずみのパーティションに新しいファイルシステムを作成することはできないものの、
このスクリプトはマウントされていない
<filename>/dev/da0s1a</filename>, <filename>/dev/da0s1e</filename>,
<filename>/dev/da2s1e</filename> をすべて削除します。
ひとつ間違えれば、あなたの環境を破壊してしまう可能性がありますので、
デバイス名の変更は注意深く行なってください。</para>
</warning>
<programlisting>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stage_1.conf.default" parse="text" encoding="euc-jp"/>
</programlisting>
<para>ダウンロード: <link xlink:href="stage_1.conf.default"><filename>stage_1.conf.default</filename>
</link>.</para>
<para>このスクリプトを実行すると、
起動した時に次のような状態になっているシステムがインストールされます。</para>
<itemizedlist>
<listitem>
<para>稼働中のシステムと同じユーザとグループ</para>
</listitem>
<listitem>
<para>Ethernet と PPP を経由した、
ファイアウォールありのインターネット接続環境</para>
</listitem>
<listitem>
<para>正しいタイムゾーンと NTP 設定</para>
</listitem>
<listitem>
<para><filename>/etc/ttys</filename>
<command>inetd</command> など、その他の細かな設定。</para>
</listitem>
</itemizedlist>
<para>他の部分に対する設定は、第 2 段階が終わるまで動作しません。
たとえば、プリンタや X11 の設定ファイルもコピーされますが、
プリンタは &postscript; ユーティリティなど、
ベースシステムに含まれないアプリケーションを使うことが多いでしょう。
X11 はサーバ、ライブラリ、プログラムをコンパイルしないと動作しません。</para>
</sect1>
<sect1 xml:id="stage2">
<title>第 2 段階: ports のインストール</title>
<note>
<para>この段階で ports をコンパイルするのではなく、
(コンパイルずみの) packages をインストールすることもできます。
その場合、<filename>stage_2.sh</filename>
単に <command>pkg_add</command> コマンドを羅列するだけになるでしょう。
読者のみなさんにとって、そういうスクリプトを書くのは難しくないと思いますので、
ここではもっと柔軟で、ports
を使った伝統的な方法について考えることにします。</para>
</note>
<para>次に紹介する <filename>stage_2.sh</filename> スクリプトは、
わたしが好みの ports をインストールするために使ったものです。
これは何度でも実行でき、インストールずみの ports があれば、
飛ばして処理されます。スクリプトは <emphasis>実行せず、実行される内容だけ
を表示する (dryrun)</emphasis> オプション (<option>-n</option>)
があります。実行時には <filename>stage_1.sh</filename> と同様、
設定スクリプトを示すためのひとつの引数を指定します。</para>
<informalexample>
<screen>&prompt.root; <userinput>./stage_2.sh default</userinput></screen>
</informalexample>
<para>これは、ports のリストを
<filename>stage_2.conf.default</filename> というファイルから読み込みます。</para>
<para>ports リストは、空白で区切られた 2 個以上のキーワードからなっています。
カテゴリ、port 名に始まり、オプションとして
port をコンパイルしてインストールするためのコマンド
(デフォルトは <command>make install BATCH=yes &lt; /dev/null</command>) が続きます。
空白行と # から始まる行は無視されます。
おそらく多くの場合に考えなければならないのは、カテゴリ名と port 名だけでしょう。
ports によっては、たとえば次のように
<command>make</command> 変数を使って微調整することができます。</para>
<programlisting>www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_CHATZILLA=yes install</programlisting>
<para>実際には任意のシェルコマンドを指定できますので、
<command>make</command> を使う以外にも応用は可能です。</para>
<programlisting>java linux-sun-jdk13 yes | make install
news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install</programlisting>
<para><package>news/inn-stable</package> の行は、
<literal>CONFIGURE_ARGS</literal> という シェル変数を定義した例です。
この port の <filename>Makefile</filename> は、
この指定した値を変数の初期値として、その他の必須の引数と一緒に使います。
これと</para>
<programlisting>news inn-stable make CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" install</programlisting>
<para>のようにして
<application>make</application> 変数をコマンドラインに設定した場合との違いは、
こちらの場合に変数そのものを完全に上書きしてしまうという点です。
どの方法を使えばいいのかについては、各 port によります。</para>
<para>インストールしたい ports が、
対話的インストールを使っていないことを確認してください。
ports は、あなたが標準入力に明示的に指定したもの以外、
標準入力を読み込む動作をしてはいけません。
もし ports がそのように作られていると、ports はヒアドキュメントにある
ports リストの次の行を読み込んで混乱してしまいます。
<filename>stage_2.sh</filename> を実行した時、
ある port が飛ばされたり、動作が止まってしまうようなことがあれば、
おそらくこれが原因でしょう。</para>
<para>次に示すのは <filename>stage_2.conf.default</filename> です。
これは、インストールされる port それぞれに対して
<filename>LOGDIR/category+port</filename>
という名前のログファイルが作成されます。</para>
<programlisting>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stage_2.conf.default" parse="text" encoding="euc-jp"/>
</programlisting>
<para>ダウンロード: <link xlink:href="stage_2.conf.default"><filename>stage_2.conf.default</filename></link>.</para>
</sect1>
<sect1 xml:id="stage3">
<title>第 3 段階</title>
<para>第 2 段階で、好みの ports がインストールされましたが、
ports には、設定を必要とするものがあります。
第 3 段階は、インストール後の設定を行なう段階です。
<filename>stage_2.sh</filename> の最後にこの段階を統合することもできたのですが、
わたしは port をインストールすることと初期設定を変更することが異なる工程であると考えたため、
独立した段階としています。</para>
<para>第 3 段階は、<filename>Makefile</filename> として実装しています。
これは、次のように実行することで、設定対象を簡単に選ぶことができるからです。</para>
<informalexample>
<screen>&prompt.root; <userinput>make -f stage_3.mk target</userinput></screen>
</informalexample>
<para><filename>stage_2.sh</filename> の段階で、
<filename>stage_3.mk</filename> を共有パーティションに置くか、
新しいシステムのどこかにコピーするなどして、
新しいシステムが起動した時に
<filename>stage_3.mk</filename> が使えるようにしておきましょう。</para>
</sect1>
<sect1 xml:id="limitations">
<title>制限事項</title>
<para>対話的で、かつ <command>make BATCH=YES install</command>
でのインストールに対応していない port
の自動インストールは難しいかも知れません。
対話的にインストールする ports には、ライセンス条項の同意を尋ねられた時に
<literal>yes</literal> と入力するだけのものがいくつかあります。
そのように入力が標準入力から読みとられる場合は、
適切な回答をインストールコマンド (通常は <command>make
install</command>) にパイプで渡すことができます
(わたしが <filename>stage_2.conf.default</filename>
<package>java/linux-sun-jdk14</package>
でとった方法がそうです)。</para>
<para>しかしこの方法は、たとえば <package>editors/staroffice52</package> の場合にはうまく動きません。
これは X11 が実行されていることを要求するからです。
インストール手順には多くのクリックや文字入力が必要なので、
他の ports のように自動化することはできません。
わたしは、次のようにして問題を回避しました。
最初に古いシステムで staroffice の package を作成し、</para>
<informalexample>
<screen>&prompt.root; <userinput>cd /usr/ports/editors/staroffice52</userinput>
&prompt.root; <userinput>make package</userinput>
===&gt; Building package for staroffice-5.2_1
Creating package /usr/ports/editors/staroffice52/staroffice-5.2_1.tbz
Registering depends:.
Creating bzip'd tar ball in '/usr/ports/editors/staroffice52/staroffice-5.2_1.tbz'</screen>
</informalexample>
<para>その後、第 2 段階で次のようにしたわけです。</para>
<informalexample>
<screen>&prompt.root; <userinput>pkg_add /usr/ports/editors/staroffice52/staroffice-5.2_1.tbz</userinput></screen>
</informalexample>
<para>その他に、設定ファイルのアップグレード問題に気をつける必要があります。
一般的に、設定ファイルの書式や内容がいつ変更されるかを知ることはできません。
新しいグループが <filename>/etc/group</filename>
に追加されるかも知れませんし、<filename>/etc/passwd</filename>
に新しいフィールドが追加されるかも知れません。
このような例は、実際に過去にありました。
単純に古いシステムから新しいシステムに設定ファイルをコピーするだけで
ほとんどの場合は十分なのですが、時には不都合な場合もあります。
古いファイルを上書きする方法でシステムをアップグレードしたら、
ローカルにある設定ファイルに新しく追加されたかも知れない項目を統合する目的で
<command>mergemaster</command> を使うと思います。
しかし残念なことに、<command>mergemaster</command>
はベースシステムに存在するファイルだけで、インストールした
ports については何も処理を行なってくれません。
サードパーティ製ソフトウェアには、
リリースのたびに設定ファイルのフォーマットが変更され、
わたしをイライラさせるようなものもあります。
このような予告なしの変更を検出するために、
わたしは変更した設定ファイルを <filename>stage_3.mk</filename>
と同じディレクトリにコピーしておき、
<application>make</application> ルールを使って結果を比較しています。
たとえば、<application>apache</application>
<filename>httpd.conf</filename> であれば、次のような
<command>config_apache</command> というターゲットを用意しておきます。</para>
<programlisting>
@if ! cmp -s /usr/local/etc/apache2/httpd.conf httpd.conf; then \
echo "ATTENTION: the httpd.conf has changed. Please examine if"; \
echo "the modifications are still correct. Here is the diff:"; \
diff -u /usr/local/etc/apache2/httpd.conf httpd.conf; \
fi
</programlisting>
<para>差分が無害なものであると確認できたら、
<command>cp /usr/local/etc/apache2/httpd.conf
httpd.conf</command> を実行するわけです。</para>
<para>わたしは
<literal>5-CURRENT</literal> から <literal>5-CURRENT</literal>
に更新するために
&scratch.ap;」方法を数回使いましたが、
<literal>4-STABLE</literal><literal>5-CURRENT</literal>
の間で更新を行なった経験はありません。
異なるメジャーリリース番号の間は、非常の多数の変更が行なわれているため、
更新作業はもっと複雑なものになると思います。
(試したわけではないのですが)
<literal>4-STABLE</literal> から <literal>4-STABLE</literal>
への更新であれば、「&scratch.ap;」方法は問題なく動作するはずです。
<literal>4-STABLE</literal> のユーザは、次の点を考慮してください。</para>
<note>
<para>デバイスファイルシステム &man.devfs.5; を使ってなければ、
<command>all_remaining_customization</command> の中で
&man.MAKEDEV.8; を使い、
ハードウェア用のデバイスファイルを作成するとよいでしょう。</para>
</note>
</sect1>
<sect1 xml:id="files">
<title>ファイル</title>
<para>ここでは、すでに説明した設定ファイルの他に必要な、
3 個のファイルを示します。</para>
<para>これは <link xlink:href="stage_1.sh"><filename>stage_1.sh</filename></link>
スクリプトです。内容を変更する必要はないでしょう。</para>
<programlisting>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stage_1.sh" parse="text" encoding="euc-jp"/>
</programlisting>
<para>ダウンロード: <link xlink:href="stage_1.sh"><filename>stage_1.sh</filename></link>.</para>
<para>これは <link xlink:href="stage_2.sh"><filename>stage_2.sh</filename></link>
スクリプトです。最初の部分にある変数を変更しましょう。</para>
<programlisting>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stage_2.sh" parse="text" encoding="euc-jp"/>
</programlisting>
<para>ダウンロード: <link xlink:href="stage_2.sh"><filename>stage_2.sh</filename></link>.</para>
<para>これは、わたしが使っている <link xlink:href="stage_3.mk"><filename>stage_3.mk</filename></link> です。
設定を自動的におこなうための手順を、ここに入れます。</para>
<programlisting>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stage_3.mk" parse="text" encoding="euc-jp"/>
</programlisting>
<para>ダウンロード: <link xlink:href="stage_3.mk"><filename>stage_3.mk</filename></link>.</para>
</sect1>
</article>

View file

@ -1,190 +0,0 @@
# このファイル: stage_1.conf.default は stage_1.sh から読み込まれます。
#
# $FreeBSD$
#
# Original Revision: 1.3
# 新しいシステムを作成する場所を示すルートマウントポイントを指定。
# マウントポイントとして使われるだけなので、マウントポイントのある
# ファイルシステムにファイルは置かれず、書き込みはすべてマウントした
# ファイルシステムに行なわれる。
DESTDIR="/newroot"
# src ツリーのある場所。
SRC="/usr/src"
# make buildkernel KERNCONF=... で指定するカーネルコンフィグレーションファイル名。
KERNCONF="HAL9000"
# 利用できるタイムゾーンは /usr/share/zoneinfo 以下のファイルに記載されている。
TIMEZONE="Europe/Berlin"
#
# create_file_systems 関数は、DESTDIR 下にマウントポイントを作成し、
# ファイルシステムを作成し、DESTDIR 下にマウントしなければならない。
#
create_file_systems () {
# 新しいルートファイルシステムを作成する。必須。
# DEVICE を変更すること。変更しないとシステムが壊れる危険性がある。
# grub から起動したい場合は、ルートファイルシステム作成には
# newfs -O 1 を使わなければならない。
DEVICE=/dev/da0s1a
mkdir -m 755 -p ${DESTDIR}
chown root:wheel ${DESTDIR}
newfs -U -O 1 ${DEVICE}
mount -o noatime ${DEVICE} ${DESTDIR}
# その他のファイルシステムと初期マウントポイント。オプション。
DEVICE=/dev/da0s1e
mkdir -m 755 -p ${DESTDIR}/var
chown root:wheel ${DESTDIR}/var
newfs -U ${DEVICE}
mount -o noatime ${DEVICE} ${DESTDIR}/var
DEVICE=/dev/da2s1e
mkdir -m 755 -p ${DESTDIR}/usr
chown root:wheel ${DESTDIR}/usr
newfs -U ${DEVICE}
mount -o noatime ${DEVICE} ${DESTDIR}/usr
}
#
# create_etc_fstab 関数は、create_file_systems で作成されたファイルシ
# ステムに対応する fstab を生成しなければならない。
#
create_etc_fstab () {
cat <<EOF >${DESTDIR}/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/da0s1b none swap sw 0 0
/dev/da1s1b none swap sw 0 0
/dev/da2s2b none swap sw 0 0
/dev/da3s2b none swap sw 0 0
/dev/da0s1a / ufs rw,noatime 1 1
/dev/da0s1e /var ufs rw,noatime 1 1
/dev/da2s1e /usr ufs rw,noatime 1 1
/dev/vinum/Share /share ufs rw,noatime 0 2
/dev/vinum/home /home ufs rw,noatime 0 2
/dev/vinum/ncvs /home/ncvs ufs rw,noatime 0 2
/dev/vinum/ports /usr/ports ufs rw,noatime 0 2
/dev/ad1s1a /flash ufs rw,noatime 0 0
/dev/ad0s1 /2k ntfs ro,noauto 0 0
/dev/ad0s6 /linux ext2fs ro,noauto 0 0
#
/dev/cd0 /cdrom cd9660 ro,noauto 0 0
/dev/cd1 /dvd cd9660 ro,noauto 0 0
proc /proc procfs rw 0 0
linproc /compat/linux/proc linprocfs rw 0 0
EOF
chmod 644 ${DESTDIR}/etc/fstab
chown root:wheel ${DESTDIR}/etc/fstab
}
#
# copy_files 関数は、mergemaster が実行される前にファイルをコピーするのに
# 使われる。
#
copy_files () {
# 好みに応じて、このリストに追加・削除すること。ほとんどの場合は必須。
for f in \
/.profile \
/etc/group \
/etc/hosts \
/etc/inetd.conf \
/etc/ipfw.conf \
/etc/make.conf \
/etc/master.passwd \
/etc/nsswitch.conf \
/etc/ntp.conf \
/etc/printcap \
/etc/profile \
/etc/rc.conf \
/etc/resolv.conf \
/etc/start_if.xl0 \
/etc/ttys \
/etc/ppp/* \
/etc/mail/aliases \
/etc/mail/aliases.db \
/etc/mail/hal9000.mc \
/etc/mail/service.switch \
/etc/ssh/*key* \
/etc/ssh/*_config \
/etc/X11/XF86Config-4 \
/var/cron/tabs/* \
/var/files \
/root/.profile \
/boot/*.bmp \
/boot/loader.conf \
/boot/device.hints ; do
cp -p ${f} ${DESTDIR}${f}
done
}
#
# ほかに新しいシステムで調整したいことすべて。
# 注意: あまり多くのバイナリをこの時点でインストールしないこと。稼働している
# 古いシステムと、インストールした新しいバイナリ・ヘッダを組み合わせると、
# ブートストラップ問題に陥る可能性がある。ports は新しいシステムが起動した後に
# 再構築する方がよい。
#
all_remaining_customization () {
# compat シンボリックリンクがないと、linux_base のファイル群が
# ルートファイルシステムに置かれてしまう。
cd ${DESTDIR}
mkdir -m 755 usr/compat; chown root:wheel usr/compat; ln -s usr/compat
mkdir -m 755 usr/compat/linux; chown root:wheel usr/compat/linux
mkdir -m 555 usr/compat/linux/proc; chown root:wheel usr/compat/linux/proc
mkdir -m 755 boot/grub; chown root:wheel boot/grub
mkdir -m 755 linux 2k; chown root:wheel linux 2k
mkdir -m 755 src; chown root:wheel src
mkdir -m 755 share; chown root:wheel share
mkdir -m 755 dvd cdrom flash; chown root:wheel dvd cdrom flash
mkdir -m 755 home; chown root:wheel home
mkdir -m 755 usr/ports; chown root:wheel usr/ports
# 私の好みは tmp を var/tmp にシンボリックリンクすること。オプション。
cd ${DESTDIR}; rmdir tmp; ln -s var/tmp
# /etc/printcap で指定したスプールディレクトリを作成。
cd ${DESTDIR}/var/spool/output/lpd; mkdir -p as od ev te lp da
touch ${DESTDIR}/var/log/lpd-errs
# /home パーティションを共有していなければコピーした方がよいかも知れない。
# mkdir -p ${DESTDIR}/home
# cd /home; tar cf - . | (cd ${DESTDIR}/home; tar xpvf -)
case ${REVISION} in
4.*)
# 4.x には devfs がないので、ハードウェアに合わせて非標準のデバイスを作成する。
cd ${DESTDIR}/dev
./MAKEDEV all
./MAKEDEV da0 da0s1h da0s2h da0s3h da0s4h
./MAKEDEV da1 da1s1h da1s2h da1s3h da1s4h
./MAKEDEV da2 da2s1h da2s2h da2s3h da2s4h
./MAKEDEV da3 da3s1h da3s2h da3s3h da3s4h
./MAKEDEV bktr0 cd1
if test -d /dev/vinum; then
# 'vinum makedev' は /dev にしかデバイスを作成できないので、cpio を使う。
cd /dev; find vinum -print | cpio -pv ${DESTDIR}/dev
fi
# floppy に wheel グループが書き込めるようにする。
chown root:wheel ${DESTDIR}/dev/fd0*
chmod g+w ${DESTDIR}/dev/fd0*
;;
5.*)
# floppy に wheel グループが書き込めるようにする。
printf '%s\n' 'own fd0 root:wheel' >> ${DESTDIR}/etc/devfs.conf
printf '%s\n' 'perm fd0 0660' >> ${DESTDIR}/etc/devfs.conf
;;
*)
printf '%s\n' "REVISION ${REVISION} not supported"
exit 1
;;
esac
}
# vim: tabstop=2:expandtab:shiftwidth=2:syntax=sh:
# EOF $RCSfile: stage_1.conf.default,v $

View file

@ -1,174 +0,0 @@
#!/bin/sh
#
# stage_1.sh - FreeBSD From Scratch, 第 1 段階: システムのインストール
# 使い方: ./stage_1.sh profile
# 読み込むファイル: ./stage_1.conf.profile
# 書き出すファイル: ./stage_1.log.profile
#
# 著者: Jens Schweikhardt
# $Id: stage_1.sh,v 1.2 2006-03-13 16:46:15 rushani Exp $
# $FreeBSD$
# Original revision: 1.5
PATH=/bin:/usr/bin:/sbin:/usr/sbin
# 前提とする環境:
#
# a) "make buildworld" と "make buildkernel" が正常に終了していること。
# b) 未使用パーティションがあること (ルートファイルシステム用に少なくとも 1 個、
# 好みに応じて /usr や /var 用のものを用意する)
# c) カスタマイズされた stage_1.conf.profile ファイル。
if test $# -ne 1; then
echo "usage: stage_1.sh profile" 1>&2
exit 1
fi
# ---------------------------------------------------------------------------- #
# ステップ 1: $DESTDIR 以下に空のディレクトリツリーを作成
# ---------------------------------------------------------------------------- #
step_one () {
create_file_systems
# ここで他のすべてのディレクトリを作成。必須。
cd ${SRC}/etc; make distrib-dirs DESTDIR=${DESTDIR}
}
# ---------------------------------------------------------------------------- #
# ステップ 2: /etc ディレクトリツリーと / にファイルを追加
# ---------------------------------------------------------------------------- #
step_two () {
copy_files
# mergemaster の作業ファイルがあれば削除。
TEMPROOT=/var/tmp/temproot.stage1
if test -d ${TEMPROOT}; then
chflags -R 0 ${TEMPROOT}
rm -rf ${TEMPROOT}
fi
export MAKEDEVPATH="/bin:/sbin:/usr/bin"
mergemaster -i -m ${SRC}/etc -t ${TEMPROOT} -D ${DESTDIR}
cap_mkdb ${DESTDIR}/etc/login.conf
pwd_mkdb -d ${DESTDIR}/etc -p ${DESTDIR}/etc/master.passwd
# mergemaster は /var/log に置かれる空ファイルを作成しないので、
# ここで作成。ただし copy_files でコピーされている場合は、それを使う。
cd ${TEMPROOT}
find . -type f | sed 's,^\./,,' |
while read f; do
if test -r ${DESTDIR}/${f}; then
echo "${DESTDIR}/${f} already exists; not copied"
else
echo "Creating empty ${DESTDIR}/${f}"
cp -p ${f} ${DESTDIR}/${f}
fi
done
chflags -R 0 ${TEMPROOT}
rm -rf ${TEMPROOT}
}
# ---------------------------------------------------------------------------- #
# ステップ 3: installworld を実行する
# ---------------------------------------------------------------------------- #
step_three () {
cd ${SRC}
make installworld DESTDIR=${DESTDIR}
# 追加の互換ライブラリをインストールする (オプション)。libc.so.4 を
# 動的リンクするプログラムがあれば、つまり、
# /usr/libexec/ld-elf.so.1: Shared object "libc.so.4" not found
# というエラーメッセージが見つかったら、これを利用すること。
cd lib/compat/compat4x.i386
make all install DESTDIR=${DESTDIR}
}
# ---------------------------------------------------------------------------- #
# ステップ 4: カーネルとモジュールをインストールする
# ---------------------------------------------------------------------------- #
step_four () {
cd ${SRC}
# installkernel ターゲットには、loader.conf と device.hints が必要。
# ステップ 2 でコピーしていなければ、次の 2 行を使ってコピーすること。
# cp sys/boot/forth/loader.conf ${DESTDIR}/boot/defaults
# cp sys/i386/conf/GENERIC.hints ${DESTDIR}/boot/device.hints
make installkernel DESTDIR=${DESTDIR} KERNCONF=${KERNCONF}
}
# ---------------------------------------------------------------------------- #
# ステップ 5: /etc/fstab とタイムゾーン情報のインストール
# ---------------------------------------------------------------------------- #
step_five () {
create_etc_fstab
# タイムゾーンの設定。ほとんどの場合は必須。
cp ${DESTDIR}/usr/share/zoneinfo/${TIMEZONE} ${DESTDIR}/etc/localtime
if test -r /etc/wall_cmos_clock; then
cp -p /etc/wall_cmos_clock ${DESTDIR}/etc/wall_cmos_clock
fi
}
# ---------------------------------------------------------------------------- #
# ステップ 6: 残りのカスタマイズ
# ---------------------------------------------------------------------------- #
step_six () {
all_remaining_customization
}
do_steps () {
echo "PROFILE=${PROFILE}"
echo "DESTDIR=${DESTDIR}"
echo "SRC=${SRC}"
echo "KERNCONF=${KERNCONF}"
echo "TIMEZONE=${TIMEZONE}"
echo "TYPE=${TYPE}"
echo "REVISION=${REVISION}"
echo "BRANCH=${BRANCH}"
echo "RELDATE=${RELDATE}"
step_one
step_two
step_three
step_four
step_five
step_six
}
# ---------------------------------------------------------------------------- #
# ここから実行開始
# ---------------------------------------------------------------------------- #
PROFILE="$1"
set -x -e -u # エラーが発生するか未定義変数を使用したら停止する。
. ./stage_1.conf.${PROFILE}
# world を make するのに使われたソースコードから変数をいくつか決定する。
# この変数は、たとえば 4.x と 5.x どちらのシステムをインストールするの
# かといった動作を変更するのに使われる。RELDATE に対する
# __FreeBSD_version は Port 作成者のためのハンドブック (Porter's Handbook)
# で説明されている。
# doc/en_US.ISO8859-1/books/porters-handbook/freebsd-versions.html
# 日本語版もあるが、最新の情報は英語版を参照のこと。
# doc/ja_JP.eucJP/books/porters-handbook/freebsd-versions.html
# 形式は、<メジャー番号><マイナー番号 2 桁><リリースブランチなら 0, それ以外は 1>xx
# 結果は次のようなものになる。
#
# TYPE="FreeBSD"
# REVISION="4.9"
# BRANCH="RC" { "CURRENT", "STABLE", "RELEASE" }
# RELDATE="502101"
#
eval $(awk '/^(TYPE|REVISION|BRANCH)=/' ${SRC}/sys/conf/newvers.sh)
RELDATE=$(awk '/^[ \t]*#[ \t]*define[ \t][ \t]*__FreeBSD_version[ \t]/ {
print $3
}' ${SRC}/sys/sys/param.h)
echo "=> Logging to stage_1.log.${PROFILE}"
do_steps 2>&1 | tee stage_1.log.${PROFILE}
# vim: tabstop=2:expandtab:shiftwidth=2:
# EOF $RCSfile: stage_1.sh,v $

View file

@ -1,89 +0,0 @@
# vim: syntax=sh
#
# $FreeBSD$
#
# Original Revision: 1.3
#
shells zsh
devel gettext make BATCH=yes install
lang perl5.8 make install; use.perl port
archivers unzip
archivers zip
security sudo
x11-servers XFree86-4-Server
x11 wrapper
x11 XFree86-4-clients
x11 XFree86-4-documents
x11-fonts XFree86-4-font75dpi
x11-fonts XFree86-4-font100dpi
x11-fonts XFree86-4-fontScalable
x11-fonts urwfonts
x11-fonts webfonts make WITH_NETSCAPE_ALIASES=yes install
x11-toolkits open-motif
x11-wm ctwm
security openssh-askpass
astro xplanet
astro xephem
editors vim
print ghostscript-gnu make A4=yes BATCH=yes install
print psutils-a4
print a2ps-a4
print gv
print acroread5
print transfig
print teTeX
# 注: jdk14 は linprocfs(5) がマウントされていないと、ハングアップした
# ままになります。
java linux-sun-jdk14 mount -a linproc; yes | make install
java jdk14 mount -a linproc; make -DNODEBUG install
www apache2
www weblint
www amaya
www firefox make BATCH=yes install
www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_COMPOSER=yes WITHOUT_LDAP=yes WITHOUT_CHATZILLA=yes WITHOUT_XMLTERM=yes install
www checkbot
www privoxy
graphics xfig
graphics xv
multimedia xawtv
graphics graphviz
lang expect
lang gawk
lang TenDRA unset MAKEOBJDIRPREFIX; make install
news tin
net freebsd-uucp
net cvsup-without-gui
net pathchar make NO_CHECKSUM=yes install
ftp wget
textproc ispell
german ispell-neu
german ispell-alt
textproc docproj make JADETEX=no HAVE_MOTIF=yes BATCH=yes install < /dev/null
sysutils samefile
sysutils lsof
sysutils pstree
sysutils cdrtools
sysutils grub
sysutils smartmontools
sysutils vobcopy
devel ddd
devel gindent
devel ctags
devel ElectricFence
devel strace
devel perltidy
mail procmail make BATCH=yes install
mail metamail
mail mutt-devel
emulators mtools
sysutils portupgrade
news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install
misc figlet-fonts
security gpa
mail spamoracle
multimedia mplayer make WITHOUT_RUNTIME_CPUDETECTION=yes WITH_GUI=yes BATCH=yes install
multimedia mplayer-fonts
audio wavplay
games xmahjongg
games xdemineur
editors openoffice-1.1

View file

@ -1,132 +0,0 @@
#!/bin/sh
#
# stage_2.sh - FreeBSD From Scratch, 第 2 段階: ports のインストール
# 使い方: ./stage_2.sh [-hnp] configname
#
# 著者: Jens Schweikhardt
# $Id: stage_2.sh,v 1.2 2006-03-13 16:46:15 rushani Exp $
# $FreeBSD$
# Original revision: 1.5
DBDIR="/var/db/pkg"
PORTS="/usr/ports"
: ${PACKAGES:=${PORTS}/packages}
LOGDIR="/home/root/setup/ports.log"; mkdir -p ${LOGDIR}
PKG_PATH="/cdrom/packages/All:/dvd/packages/All"
PKG=
MYNAME="$(basename $0)"
usage () {
exec >&2
echo "usage: ${MYNAME} [-hnp] configname"
echo ""
echo " Options:"
echo " -h Print this help text."
echo " -n Dryrun: just show what would be done."
echo " -p Install a precompiled package if one can be found."
echo ""
echo " The config file (stage_2.conf.configname) is a list of"
echo " ports to install with one entry per line. Each line"
echo " consists of two or three space separated fields:"
echo " category, port, and optionally a build command."
echo ""
exit 1
}
# これらの場所にあるパッケージを順に探す。
# 1 つ見つかり次第戻って、結果を標準出力に表示する。
#
# ${PORTS}/${CATEGORY}/${NAME}
# ${PACKAGES}/All
# ${PACKAGES}/${CATEGORY}
# ${PKG_PATH}
#
find_package () {
echo "${PORTS}/${CATEGORY}/${NAME}:${PACKAGES}/All:${PACKAGES}/${CATEGORY}:${PKG_PATH}" |
tr : '\n' |
while read d; do
test -d "${d}" || continue
PKG=$(ls ${d}/${PKGNAME}.* 2>/dev/null)
test $? -eq 0 && echo "${PKG}" && return
done
}
#
# コマンドライン引数を処理する。
#
args=`getopt hnp $*`
if test $? != 0; then
usage
fi
set -- $args
DRYRUN=
CHKPKG=
for i; do
case "$i" in
-n) DRYRUN="yes"; shift;;
-p) CHKPKG="yes"; shift;;
--) shift; break;;
*) usage;;
esac
done
if test $# -eq 1; then
DATAFILE="$1"
else
usage
fi
#
# ports 一覧に対して繰り返す。
#
while read CATEGORY NAME CMD; do
case "${CATEGORY}" in
\#*) continue;;
'') continue;;
esac
DIR="${PORTS}/${CATEGORY}/${NAME}"
if ! test -d "${DIR}"; then
echo "$DIR does not exist -- ignored"
continue
fi
cd ${DIR}
PKGNAME=`make -V PKGNAME`
if test -n "${CHKPKG}"; then
PKG=$(find_package)
else
PKG=""
fi
if test -d "${DBDIR}/${PKGNAME}"; then
echo "${CATEGORY}/${NAME} already installed as ${PKGNAME}"
continue
fi
LOG="${LOGDIR}/${CATEGORY}+${NAME}"
echo "===> Installing ${CATEGORY}/${NAME}; logging to ${LOG}"
test -n "${CMD}" || CMD="make install BATCH=yes < /dev/null"
if test -n "${DRYRUN}"; then
if test -n "${PKG}"; then
echo pkg_add -v ${PKG}
else
echo "${CMD}"
fi
continue
fi
date "++++ Started %v %T +++" > ${LOG}
STARTED=$(date +%s)
(
if test -n "${PKG}"; then
echo "Found package ${PKG}"
pkg_add -v ${PKG}
else
echo "CMD: ${CMD}"
make clean
eval "${CMD}"
make clean # ${PORTS} 以下のディスク容量がすくなければコメントをはずす
fi
) 2>&1 | tee -a ${LOG}
FINISHED=$(date +%s)
DURATION=$(dc -e "${FINISHED} ${STARTED} - p")
date "++++ Finished %v %T after ${DURATION} secs +++" >> ${LOG}
done < stage_2.conf.${DATAFILE}
# vim: tabstop=4:
# EOF $RCSfile: stage_2.sh,v $

View file

@ -1,235 +0,0 @@
# stage_3.mk - FreeBSD From Scratch, 第 3 段階: ports をインストールした後の設定
# Usage: make -f stage_3.mk all (すべての設定を行なう)
# or make -f stage_3.mk target (target の設定を行なう)
#
# 著者: Jens Schweikhardt
#
# すべての target が、複数回実行しても悪影響をおよぼさないように
# 確認しておくとよい。
#
# $Id: stage_3.mk,v 1.2 2006-03-13 16:46:15 rushani Exp $
# $FreeBSD$
# Original revision: 1.4
.POSIX:
message:
@echo "Please use one of the following targets:"
@echo "config_apache"
@echo "config_firefox"
@echo "config_inn"
@echo "config_javaplugin"
@echo "config_nullplugin"
@echo "config_privoxy"
@echo "config_smartd"
@echo "config_sudo"
@echo "config_TeX"
@echo "config_tin"
@echo "config_uucp"
@echo "all -- all of the above"
all: \
config_apache \
config_firefox \
config_inn \
config_javaplugin \
config_nullplugin \
config_privoxy \
config_smartd \
config_sudo \
config_TeX \
config_tin \
config_uucp
config_apache:
# 1. httpd.conf の変更
perl -pi \
-e 's/^\s*ServerAdmin.*/ServerAdmin schweikh\@schweikhardt.net/;' \
-e 's/^\s*Listen.*/Listen 127.0.0.1:80/;' \
-e 's/^\s*StartServers.*/StartServers 2/;' \
-e 's/^\s*MinSpareServers.*/MinSpareServers 2/;' \
-e 's,/usr/local/www/cgi-bin/,/home/opt/www/cgi-bin/,;' \
/usr/local/etc/apache2/httpd.conf
# 2. ウェブページに対するシンボリックリンクの作成
cd /usr/local/www/data; \
ln -fs /home/schweikh/prj/homepage schweikhardt.net; \
ln -fs /home/opt/www/test .
# httpd.conf が変更されていないか確認する。
@if ! cmp -s /usr/local/etc/apache2/httpd.conf httpd.conf; then \
echo "ATTENTION: the httpd.conf has changed. Please examine if"; \
echo "the modifications are still correct. Here is the diff:"; \
diff -u /usr/local/etc/apache2/httpd.conf httpd.conf; \
fi
if test -f /var/run/httpd.pid; then \
/usr/local/etc/rc.d/apache2.sh stop; \
/usr/local/etc/rc.d/apache2.sh start; \
else \
/usr/local/etc/rc.d/apache2.sh start; \
fi
config_firefox:
# wheel グループが書き込めるようにして、すべての extension をインストー
# ルできるようにする。
chmod -R g+w /usr/X11R6/lib/firefox/lib/mozilla-1.6/chrome
config_inn:
pw usermod -n news -d /usr/local/news -s /bin/sh
mkdir -p /share/news/spool/outgoing \
/share/news/spool/incoming \
/share/news/spool/articles \
/share/news/spool/overview \
/share/news/spool/tmp \
/share/news/db
chown -R news:news /share/news
# ニュースシステムの初期設定
cd /home/root/setup; \
if test ! -f /share/news/db/active; then \
echo "installing /share/news/db/active"; \
install -C -o news -g news -m 664 active /share/news/db; \
fi; \
if test ! -f /share/news/db/newsgroups; then \
echo "installing /share/news/db/newsgroups"; \
install -C -o news -g news -m 664 newsgroups /share/news/db; \
fi
# port の innd.sh は壊れていて、
# 存在しない history.pag をチェックしようとする。
cd /home/root/setup; \
install -C -o root -g wheel -m 555 innd.sh /usr/local/etc/rc.d
# 格納方法の設定
cd /home/root/setup; \
printf "%s\n%s\n%s\n%s\n" \
"method tradspool {" \
" newsgroups: *" \
" class: 0" \
"}" \
>storage.conf; \
install -C -o news -g news -m 664 storage.conf /usr/local/news/etc
# newsfeeds の設定
printf "%s\n%s\n" \
"ME:*::" \
"shuttle/news2.shuttle.de:!junk,!control:B32768/512,Tf,Wfb:" \
>/usr/local/news/etc/newsfeeds
# inn.conf の設定
perl -pi \
-e 's/^#*\s*(organization:\s*).*/$$1"An Open Pod Bay Door"/;' \
-e 's/^#*\s*(pathhost:\s*).*/$$1hal9000.schweikhardt.net/;' \
-e 's/^#*\s*(server:).*/$$1 localhost/;' \
-e 's/^#*\s*(domain:).*/$$1 schweikhardt.net/;' \
-e 's/^#*\s*(fromhost:).*/$$1 schweikhardt.net/;' \
-e 's,^#*\s*(moderatormailer:).*,$$1 \%s\@moderators.isc.org,;' \
-e 's,^#*\s*(pathdb:\s*).*,$$1/share/news/db,;' \
-e 's,/usr/local/news/spool,/share/news/spool,;' \
/usr/local/news/etc/inn.conf
# 履歴が全く存在しなければ、空の履歴を作成する。
# /usr/ports/news/inn-stable/Makefile の post-install 参照。
cd /share/news/db; \
if test ! -f history; then \
touch history; \
chmod 644 history; \
chown news:news history; \
su -fm news -c "/usr/local/news/bin/makedbz -i"; \
for s in dir hash index; do \
mv history.n.$${s} history.$${s}; \
done; \
fi
# send-uucp を設定する。
echo shuttle:shuttle >/usr/local/news/etc/send-uucp.cf
# inncheck を満足させる。
cd /usr/local/news/etc; \
chown news:news *; \
chmod 640 control.ctl expire.ctl nntpsend.ctl readers.conf
/usr/local/news/bin/inncheck
# inn.conf が変更されていないか確認する。
@if ! cmp -s /usr/local/news/etc/inn.conf inn.conf; then \
echo "ATTENTION: the inn.conf has changed. Please examine if"; \
echo "the modifications are still correct. Here is the diff:"; \
diff -u /usr/local/news/etc/inn.conf inn.conf; \
fi
if ! test -f /usr/local/news/run/innd.pid; then \
/usr/local/etc/rc.d/innd.sh start; \
fi
config_javaplugin:
# Mozilla Firefox:
cd /usr/X11R6/lib/firefox/lib/mozilla-1.6/plugins; \
ln -fs /usr/local/jdk1.4.2/jre/plugin/i386/ns610/libjavaplugin_oji.so
# Plain Mozilla:
#cd /usr/X11R6/lib/mozilla/plugins; \
#ln -fs /usr/local/jdk1.4.2/jre/plugin/i386/ns610/libjavaplugin_oji.so
# nullplugin を邪魔にならないように削除する。また、.mozilla/*/*/prefs.js に
# 次の項目を追加する。
# user_pref("plugin.display_plugin_downloader_dialog", false);
# これで入手できないプラグイン (flash 等) についてポップアップダイアログが
# 出ないようになる。
config_nullplugin:
find /usr/X11R6/lib -name libnullplugin.so -exec mv {} {}.orig \;
config_privoxy:
install -C -o root -g wheel -m 644 conf/privoxy/config \
/usr/local/etc/privoxy
install -C -o root -g wheel -m 755 conf/privoxy/privoxy.sh \
/usr/local/etc/rc.d
/usr/local/etc/rc.d/privoxy.sh restart
config_smartd:
cp smartd.sh /usr/local/etc/rc.d/smartd.sh
cp smartd.conf /usr/local/etc/smartd.conf
config_sudo:
if ! grep -q schweikh /usr/local/etc/sudoers; then \
echo 'schweikh ALL = (ALL) NOPASSWD: ALL' >> /usr/local/etc/sudoers; \
fi
config_TeX:
# textproc/docproj では、FreeBSD ハンドブックを JadeTeX で
# タイプセットするには、次の値を設定するよう指示されている
perl -pi \
-e 's/^% original texmf.cnf/% texmf.cnf/;' \
-e 's/^(hash_extra\s*=\s*).*/$${1}60000/;' \
-e 's/^(pool_size\s*=\s*).*/$${1}1000000/;' \
-e 's/^(max_strings\s*=\s*).*/$${1}70000/;' \
-e 's/^(save_size\s*=\s*).*/$${1}10000/;' \
/usr/local/share/texmf/web2c/texmf.cnf
# texmf.cnf が変更されていないか確認する。
@if ! cmp -s /usr/local/share/texmf/web2c/texmf.cnf texmf.cnf; then \
echo "ATTENTION: the texmf.cnf has changed. Please examine if"; \
echo "the modifications are still correct. Here is the diff:"; \
diff -u /usr/local/share/texmf/web2c/texmf.cnf texmf.cnf; \
fi
config_tin:
# tin が設定したファイルを読むように設定
printf "%s\n%s\n%s\n" \
"activefile=/share/news/db/active" \
"newsgroupsfile=/share/news/db/newsgroups" \
"spooldir=/share/news/spool/articles" \
>/usr/local/etc/tin.defaults
config_uucp:
cd /etc/mail; make install SENDMAIL_MC=/etc/mail/hal9000.mc
# su(1) が動作するように uucp ユーザのシェルを正しい uucico にする。
chpass -s /usr/local/libexec/uucp/uucico uucp
# UUCP が /usr/bin/rnews を見つけられるようにする
cd /usr/bin; ln -fs ../local/news/bin/rnews .
# 実際の UUCP の設定
echo nodename js2015 > /usr/local/etc/uucp/config
echo shuttle js2015 `cat uucp` > /usr/local/etc/uucp/call
printf 'port tcp\ntype tcp\n' > /usr/local/etc/uucp/port
printf "%s\n%s\n%s\n%s\n%s\n%s\n%s\n" \
"call-login *" \
"call-password *" \
"time any" \
"system shuttle" \
"address mail.s.shuttle.de" \
"commands rmail rnews" \
"port tcp" \
>/usr/local/etc/uucp/sys
cd /usr/local/etc/uucp; chown uucp:uucp *; chmod o-rwx *
# 起動後に uucico を実行する
mkdir -p /usr/local/etc/rc.d; cp uucp.sh /usr/local/etc/rc.d
# vim: tabstop=4:
# EOF $RCSfile: stage_3.mk,v $

View file

@ -23,7 +23,6 @@ SUBDIR+= geom-class
SUBDIR+= gjournal-desktop
SUBDIR+= hubs
SUBDIR+= ipsec-must
SUBDIR+= laptop
SUBDIR+= linux-comparison
SUBDIR+= mailing-list-faq
SUBDIR+= mh

View file

@ -1,22 +0,0 @@
#
# The FreeBSD Russian Documentation Project
#
# $FreeBSD$
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/laptop/Makefile,v 1.3 2005/12/20 11:38:53 gad Exp $
#
# Original revision: r39631
#
# Article: FreeBSD on Laptops
#
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.xml
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -1,301 +0,0 @@
<?xml version="1.0" encoding="koi8-r"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!--
The FreeBSD Russian Documentation Project
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/laptop/article.xml,v 1.15 2007/05/15 07:58:44 gad Exp $
Original revision: r43184
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
<info><title>FreeBSD на лэптопах</title>
<abstract>
<para><literal>Перевод на русский язык Виталий Богданов</literal></para>
<para>FreeBSD, за некоторым исключением, прекрасно работает на
большинстве лэптопов. Далее обсуждаются вопросы, специфичные для
работы FreeBSD на лэптопах, которые касаются аппаратных требований,
отличающихся от настольных компьютеров.</para>
</abstract>
<legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.linux;
&tm-attrib.microsoft;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
</info>
<para>FreeBSD часто воспринимается как операционная система для серверов, но
она прекрасно работает и на настольных компьютерах, а если вы захотите
использовать ее на вашем лэптопе, то вы получите все обычные преимущества:
строгое распределение дискового пространства, простота администрирования и
обновления, система портов/пакаджей для установки программного обеспечения
и так далее. (Ее остальные преимущества, такие, как стабильность, высокая
производительность сетевых операций и производительность при большой
нагрузке, конечно, могут быть необычными для лэптопа.) Однако при ее
установке на лэптопы часто возникают проблемы, которых нет на настольных
машинах и редко обсуждаются (лэптопы, гораздо чаще, чем настольные машины,
тонко настроены под &microsoft.windows;). Эта статья предназначена для
обсуждения этих проблем. Есть люди, которые задокументировали свой опыт
работы с &os; на отдельных моделях лэптопов на web страничках, не являющихся
частью &os; документации. Вы наверняка найдете некоторую информацию, если
воспользуйтесь вашим любимым поисковиком, введя в нём модель лэптопа и слово
<quote>&os;</quote>. Дополнительно существует специфичная для &os; база
данных, цель которой давать информацию по аппаратным вопросам, связанным
с лэптопами, <link xlink:href="http://laptop.bsdgroup.de/freebsd/">Список
лэптопов, совместимых с &os;</link>.</para>
<para>Если вы хотите пообщаться с другими пользователями &os; на лэптопах,
используйте список рассылки &a.mobile.name;. Вы также можете получить
дополнительную информацию о использовании лэптопов во &os; по адресу
<uri xlink:href="http://tuxmobil.org/mobile_bsd.html">http://tuxmobil.org/mobile_bsd.html</uri>.</para>
<sect1 xml:id="xorg">
<title>&xorg;</title>
<para>Последние версии <application>&xorg;</application> работают с большинством графических
адаптеров, применяемых в лэптопах в настоящее время. Ускорители могут не
поддерживаться, но обычная конфигурация для SVGA будет работать.</para>
<para>Обратитесь к документации по вашему лэптопу для выяснения того, какой
адаптер используется и к документации по <application>&xorg;</application> для
определения, поддерживается ли этот адаптер. Если он не
поддерживается, используйте стандартное устройство (не пытайтесь
использовать название, которое просто выглядит похожим). Вы можете попытать счастья с командой
<userinput>Xorg -configure</userinput>, которая автоматически
распознает много конфигураций.</para>
<para>Часто проблема заключается в настройке монитора. Доступные источники
информации по <application>&xorg;</application> посвящены CRT-мониторам, подбор подходящего режима
работы для LCD-монитора может оказаться не простым занятием. Вам может
повезти и вам не придется указывать режим, или будет достаточно указать
подходящие параметры <literal>HorizSync</literal> и <literal>VertRefresh</literal>. Если это не сработает,
лучше всего обратиться к ресурсам Интернет, посвященным настройке X на
лэптопах (часто это сайты, ориентированны на Linux, но это не имеет
значения, так как в обеих системах используется <application>&xorg;</application>) и скопировать
режим, опубликованный кем-то с похожим оборудованием.</para>
<para>Большинство лэптопов поставляются с двумя кнопками на позиционирующем
устройстве, что достаточно проблематично в X (так как средняя кнопка
часто используется для вставки текста); вы можете поставить в
соответствие одновременное нажатие на левую и правую кнопки в вашей
конфигурации X нажатию на среднюю кнопку строчкой</para>
<programlisting>
Option "Emulate3Buttons"
</programlisting>
<para>в файле <filename>xorg.conf</filename> в разделе
<literal>InputDevice</literal>.</para>
</sect1>
<sect1 xml:id="modems">
<title>Модемы</title>
<para>Лэптопы обычно поставляются со встроенными (интегрированными на
плате) модемами. К сожалению, это практически всегда означает, что это
<quote>winmodem</quote>ы, функциональность которых реализована программно, и для них
обычно имеются драйверы только для &windows; (хотя начали появляться
некоторые драйверы и для других операционных систем; например, если у вашего
модема Lucent LT чипсет, то он будет поддерживаться портом
<package>comms/ltmdm</package>). Если это ваш случай вам нужно
приобрести внешний модем; самым компактным решением, наверное, является
модем стандарта PC Card (PCMCIA), что обсуждается ниже, но модемы с
последовательным интерфейсом или интерфейсом USB могут оказаться дешевле.
В общем, обычные (не-winmodem) модемы должны работать нормально.</para>
</sect1>
<sect1 xml:id="pcmcia">
<title>Устройства PCMCIA (PC Card)</title>
<para>Большинство лэптопов поставляются с разъемами PCMCIA (также
называемые PC Card); они прекрасно поддерживаются во FreeBSD.
Просмотрите (при помощи &man.dmesg.8;) сообщения, выдаваемые при загрузке, и
определите, были ли они правильно распознаны (слоты должны распознаваться
как <filename>pccard0</filename>, <filename>pccard1</filename> и
так далее на устройствах типа <filename>pcic0</filename>).</para>
<para>&os;&nbsp;4.X поддерживает 16-разрядные карты PCMCIA, а &os;&nbsp;5.X
поддерживает как 16-разрядные, так и 32-разрядные (<quote>CardBus</quote>).
База данных поддерживаемых карт находится в файле <filename>/etc/defaults/pccard.conf</filename>.
Просмотрите его, и при покупке старайтесь выбрать карты, перечисленные
здесь. Карты, не указанные здесь, могут также работать как <quote>стандартные</quote>
устройства: в частности, большинство модемов (16-битных) должны работать
нормально, при условии, что это не win-модем (они существуют и в варианте
PC-карт(PC Cards), так что будьте внимательны). Если ваша карта распознается как
обычный модем, заметьте, что по умолчанию в файле <filename>pccard.conf</filename> задана
пауза в 10 секунд (во избежание зависания некоторых модемов); это может
оказаться излишним для вашего модема, так что вы можете изменить это
значение, уменьшим его или убрав совсем.</para>
<para>Некоторые разделы <filename>pccard.conf</filename> могут потребовать редактирования.
Проверьте строчку с irq и обязательно удалите любые значения, которые
уже используются: в частности, если у вас есть встроенный звуковой
адаптер, уберите irq 5 (в противном случае вы получите сбой при попытке
вставить карту). Проверьте также наличие доступных слотов для памяти;
если ваша карта не распознана, попробуйте изменить значение на одно из
других разрешенных (они перечислены на справочной странице
&man.pccardc.8;).</para>
<para>Запустите даемон &man.pccardd.8;, если он еще не запущен. Для запуска его
при загрузке добавьте в файл <filename>/etc/rc.conf</filename> строчку
<programlisting>pccard_enable="YES"</programlisting> Теперь ваши карты
должны обнаруживаться, когда вы их вставляете и вытаскиваете, и вы должны
получать диагностические сообщения о появлении новых устройств.</para>
<para>Перед релизом &os;&nbsp;4.4 в коде pccard произошли большие изменения
(включая перенаправление прерываний ISA для тех машин, с PCI BIOS которых
&os; работать не может). Если у вас возникли проблемы, попробуйте
обновить вашу систему.</para>
</sect1>
<sect1 xml:id="power-management">
<title>Управление электропитанием</title>
<para>К сожалению, оно не очень надежно поддерживается во FreeBSD. Если
вам повезло, то некоторые функции могут работать нормально; либо они не
будут работать вовсе.</para>
<para>Чтобы сделать вещи немножко сложнее, существует два стандарта по
управлению электропитанием: APM и ACPI, последний заменяет собой первый
и включает больше возможностей, но также вносит больше проблем.</para>
<para>Некоторые лэптопы поддерживают и APM и ACPI (в разной степени),
другие поддерживают только один из них, поэтому возможно вам придётся
поэкспериментировать с обоими для получения надёжного управления
питанием на вашем лэптопе.</para>
<note>
<para>Вы не можете иметь одновременно включенными APM и ACPI, даже
если если ваш лэптоп поддерживает и тот и другой стандарты.</para>
</note>
<sect2>
<title>APM</title>
<para>The APM (Advanced Power Management) BIOS предоставляет
поддержку различных возможностей по управлению электропитанием,
таких как ожидание (standby), приостановление (suspend),
режим пониженного электропотребления (hibernation), замедление
тактовых импульсов CPU (CPU clock) и так далее, и доступен во
&os;&nbsp;4.X и &os;&nbsp;5.X.</para>
<para>Чтобы включить поддержку APM, вы можете скомпилировать
ядро с поддержкой управления электропитанием
(<literal>device apm0</literal> во &os;&nbsp;4.X и
<literal>device apm</literal> во &os;&nbsp;5.X).
Во &os;&nbsp;5.X имеется модуль ядра для APM. Чтобы
загрузить модуль ядра поддержки APM во время загрузки
добавьте строчку <literal>apm_load="YES"</literal> в
<filename>/boot/loader.conf</filename>.</para>
<para>Во &os;&nbsp;5.X, вам также нужно установить
<literal>hint.apm.0.disabled="0"</literal> в
<filename>/boot/device.hints</filename>.</para>
<para>Вы можете запустить APM во время загрузки посредством
добавления <literal>apm_enable="YES"</literal> в файл
<filename>/etc/rc.conf</filename>. Вы возможно также
захотите запустить даемон &man.apmd.8;, добавив
<literal>apmd_enable="YES"</literal> в <filename>/etc/rc.conf</filename>,
который позаботится о различных событиях APM, посылаемых к
BIOS, так чтобы вы могли иметь на вашем лэптопе
приостановление/продолжение работы с помощью нажатия некой
функциональной клавиши на клавиатуре или с помощью
закрытия/открытия крышки.</para>
<para>Команды APM перечислены в справочной странице &man.apm.8;.
К примеру, <command>apm -b</command> выдаёт статус батарей
(или 255, если не поддерживается), <command>apm -Z</command>
переводит лэптоп в режим ожидания, <command>apm -z</command> (или
<command>zzz</command>) приостановит его. Для выключения и
отключения машины от питания, воспользуйтесь командой
<command>shutdown -p</command>. И снова, некоторые или все эти
функции могут не работать нормально или не работать вовсе.</para>
<para>Вы можете обнаружить, что переключение режимов suspension/standby
лэптопа работает в режиме консоли, но не работает в режиме X
(то есть экран не восстанавливается); если вы используйте
&os;&nbsp;5.X, то возможным решением может быть добавление
<literal>options SC_NO_SUSPEND_VTYSWITCH</literal> в ваш конфигурационный
файл ядра и перекомпилирование ядра. Другое решение - это
переключение на виртуальную консоль (при помощи
<keycombo action="simul"><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo>
или другой функциональной клавиши) и запуск &man.apm.8;.
Если вы используйте &man.apmd.8;, вы можете автоматизировать это
с помощью &man.vidcontrol.1;. Просто отредактируйте
<filename>/etc/apmd.conf</filename> и измените его на:</para>
<programlisting>apm_event SUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "/etc/rc.suspend";
}
apm_event USERSUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "sync &amp;&amp; sync &amp;&amp; sync";
exec "sleep 1";
exec "apm -z";
}
apm_event NORMRESUME, STANDBYRESUME {
exec "/etc/rc.resume";
exec "vidcontrol -s 9 &lt; /dev/console";
}</programlisting>
</sect2>
<sect2>
<title>ACPI</title>
<para>ACPI (Advanced Configuration and Power Management
Interface) предлагает не только управление электропитанием, но и
платформенное обнаружение оборудования (platform hardware
discovery) (вытесняющее PnP и PCI BIOS). ACPI доступен только
в &os;&nbsp;5.X и включён по умолчанию,
поэтому вам не нужно ничего специально делать чтобы включить
его. Вы можете контролировать поведение ACPI с помощью
&man.acpiconf.8;.</para>
<para>К сожалению, поставщики часто поставляют лэптопы
с некорректной реализацией ACPI, и поэтому наличие включённого
ACPI иногда вызывает больше проблем, чем приносит пользы,
вплоть до того, что вы не можете даже загрузить &os; на некоторых
машинах со включённым ACPI.</para>
<para>Если ACPI вызывает проблемы, проверьте, не выпустил ли
поставщик вашего лэптопа новую версию BIOS, устраняющую некоторые
ошибки. Так как реализация ACPI в &os; до сих пор быстро
развивающийся код, вы также можете обновить вашу систему, поэтому
есть шансы, что ваши проблемы исправлены.</para>
<para>Если вы хотите отключить ACPI, добавьте
<literal>hint.acpi.0.disabled="1"</literal> в файл
<filename>/boot/device.hints</filename>. Вы можете временно
отключить ACPI на стадии загрузчика, набрав команду
<literal>unset acpi_load</literal>, если у вас имеются проблемы с
загрузкой машины со включённым ACPI. &os;&nbsp;5.1-RELEASE и
последующие релизы содержат загрузочное меню, с помощью которого
можно контролировать загрузку &os;. Одна из предлагаемых опций -
это отключение ACPI. Итак, чтобы выключить ACPI, просто выберите
пункт <guimenuitem>2. Boot &os; with ACPI disabled</guimenuitem>
в меню.</para>
</sect2>
<sect2>
<title>Управление электропитанием дисплея</title>
<para>X window system (<application>&xorg;</application>) также включает в себя систему управления
электропитанием дисплея (обратитесь к справочной странице по &man.xset.1;
и поищите там ключевое слово <quote>dpms</quote>). Вы можете захотеть
поэкспериментировать с этой функцией. Однако это также на лэптопах
работает нестабильно; часто дисплей выключается не полностью.</para>
</sect2>
</sect1>
</article>