298 lines
14 KiB
Text
298 lines
14 KiB
Text
<!--
|
|
The FreeBSD Documentation Project
|
|
The FreeBSD French Documentation Project
|
|
|
|
$FreeBSD$
|
|
Original revision: n.nn
|
|
-->
|
|
|
|
<!DOCTYPE ARTICLE PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
|
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
|
|
<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
|
|
<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
|
|
<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
|
|
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
|
|
|
|
<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN"> %authors;
|
|
<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//FR"> %mailing-lists;
|
|
<!ENTITY rel.current CDATA "3.2">
|
|
]>
|
|
|
|
<article lang="fr">
|
|
<articleinfo>
|
|
<title>Mise en oeuvre d'un terminal X sans disque dur</title>
|
|
|
|
<authorgroup>
|
|
<author>
|
|
<firstname> Jerry</firstname>
|
|
<surname>Kendall</surname>
|
|
<affiliation>
|
|
<address>
|
|
<email>jerry@kcis.com</email>
|
|
</address>
|
|
</affiliation>
|
|
</author></authorgroup>
|
|
|
|
<pubdate>28 Décembre 1996</pubdate>
|
|
|
|
<copyright>
|
|
<year>1996</year>
|
|
<holder>Jerry Kendall</holder>
|
|
</copyright>
|
|
|
|
<abstract>
|
|
<para>Avec l'aide de quelques amis de la &a.hackers;, j'ai pu mettre en service un terminal X sans disque dur. Pour cela, j'ai d'abord dû installer une station sans disque qui dispose d'un minimum d'utilitaires montés par NFS. J'ai répété l'opération pour disposer de deux systèmes sans disque. Pour les deux, j'ai procédé de la même façon. Le premier est <hostid role="fqdn">altair.kcis.com</hostid>. C'est un terminal X sur mon vieux 386DX-40. Il a bien un disque dur de 340 Mo, mais je ne voulais pas y toucher. Il démarre donc à partir de <hostid role="fqdn">antares.kcis.com</hostid> sur le réseau Ethernet. Le second est un 486DX2-66. J'ai installé un système FreeBSD (complet) qui n'utilise pas de disque local. Le serveur de démarrage est un Sun 670MP sous SunOs 4.1.3. Les deux systèmes FreeBSD sont configurés de la même façon.</para>
|
|
|
|
<para>Je suis sûr qu'il y a des choses à ajouter à ce document. Faites-moi s'il vous plaît part de vos commentaires.</para>
|
|
|
|
&abstract.license;
|
|
&abstract.disclaimer;
|
|
&trans.a.haby;
|
|
</abstract>
|
|
</articleinfo>
|
|
|
|
<sect1>
|
|
<title>Préparation de la disquette de démarrage (sur le système sans disque)</title>
|
|
|
|
<para>Les gestionnaires de démarrage via le réseau ne sont pas compatibles avec les TSRs et autres qu'utilise MS-DOS, il est préférable de préparer une disquette de démarrage, ou, si vous le pouvez, de mettre en place un menu MS-DOS qui (par l'intermédiaire des fichiers <filename>config.sys</filename>/<filename>autoexec.bat</filename>) vous demande au démarrage quelle configuration charger. C'est cette dernière méthode que j'ai utilisée et elle fonctionne à merveille. Voici mon menu MS-DOS :</para>
|
|
|
|
<example>
|
|
<title><filename>config.sys</filename></title>
|
|
|
|
<programlisting>[menu]
|
|
menuitem=normal, normal
|
|
menuitem=unix, unix
|
|
[normal]
|
|
....
|
|
config.sys habituel
|
|
...
|
|
[unix]</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title><filename>autoexec.bat</filename></title>
|
|
|
|
<programlisting>@ECHO OFF
|
|
goto %config%
|
|
|
|
:normal
|
|
...
|
|
autoexec.bat habituel
|
|
...
|
|
goto end
|
|
|
|
:unix
|
|
cd \netboot
|
|
nb8390.com
|
|
|
|
:end</programlisting>
|
|
</example>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Générer les programmes de démarrage en réseau (sur le serveur)</title>
|
|
|
|
<para>Compilez les programmes de “démarrage en réseau” que vous trouverez dans <filename>/usr/src/sys/i386/boot/netboot</filename>. Lisez les commentaires au début du <filename>Makefile</filename>. Faites les modifications nécessaires. Faites une sauvegarde de l'original, pour vous prémunir en cas de problèmes. Après compilation, vous devriez obtenir deux exécutables, <filename>nb8390.com</filename> et <filename>nb3c509.com</filename>. C'est l'un de ces programmes que vous devrez exécuter sur la machine sans disque. Il chargera le noyau depuis le serveur de démarrage. Recopiez alors ces deux programmes sur la disquette de démarrage que vous avez créée auparavant.</para>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Déterminer le programme à utiliser (sur la machine sans disque)</title>
|
|
|
|
<para>Si vous savez quel composant utilise votre carte Ethernet, c'est facile. Si vous avez un circuit NS8390 ou équivalent, servez vous de <filename>nb8390.com</filename>. Si vous avez un circuit de type 3Com 509, utilisez le programme de démarrage <filename>nb3C509.com</filename>. Si vous ne savez pas, essayez l'un et si vous avez le message “<errorname>No adapter found</errorname>”, essayez avec l'autre. Si rien ne marche, vous êtes livré à vous-même.</para>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Démarrer en réseau</title>
|
|
|
|
<para>Démarrez la station sans disque sans fichiers <filename>config.sys/autoexec.bat</filename>. Essayez d'exécuter le programme de démarrage qui correspond à votre carte Ethernet.</para>
|
|
|
|
<para>Ma carte Ethernet utilise le mode 16bit WD8013 16bit, j'exécute donc
|
|
<filename>nb8390.com</filename> :</para>
|
|
|
|
<screen><prompt>C:></prompt> <userinput>cd \netboot</userinput>
|
|
<prompt>C:></prompt> <userinput>nb8390</userinput>
|
|
|
|
<prompt>Boot from Network (Y/N) ?</prompt> <userinput>Y</userinput>
|
|
|
|
BOOTP/TFTP/NFS bootstrap loader ESC for menu
|
|
|
|
Searching for adapter..
|
|
WD8013EBT base 0x0300, memory 0x000D8000, addr 00:40:01:43:26:66
|
|
|
|
Searching for server...</screen>
|
|
|
|
<para>La machine sans disque essaye maintenant de trouver un serveur de démarrage. Notez la valeur de <literal>addr</literal> sur l'avant dernière ligne, vous en aurez besoin ensuite. Redémarrez la machine sans disque et modifiez vos
|
|
fichiers <filename>config.sys</filename> et <filename>autoexec.bat</filename> pour qu'ils fassent automatiquement ce que vous venez de faire à la main. Peut-être avec un menu. Si vous aviez dû utiliser <command>nb3c509.com</command> au lieu de <command>nb8390.com</command>, les messages seraient identiques. Si vous obtenez le message “<errorname>No adapter found</errorname>” après “<literal>Searching for adapter...</literal>”, vérifiez que vous avez défini les bonnes valeurs dans le <filename>Makefile</filename> au moment de compiler.</para>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>Permettre aux systèmes de démarrer via le réseau (sur le serveur)</title>
|
|
|
|
<para>Vérifiez qu'il y a bien des entrées pour <citerefentry><refentrytitle>tftp</refentrytitle></citerefentry> et <citerefentry><refentrytitle>bootps</refentrytitle></citerefentry> dans le fichier <filename>/etc/inetd.conf</filename>. Voici le mien :</para>
|
|
|
|
<programlisting>tftp dgram udp wait nobody /usr/libexec/tftpd tftpd
|
|
#
|
|
# Ajout de qui que vous soyez
|
|
bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab</programlisting>
|
|
|
|
<para>Si vous devez modifier le fichier <filename>/etc/inetd.conf</filename>, envoyez ensuite un signal <literal>HUP</literal> à <citerefentry><refentrytitle>inetd</refentrytitle></citerefentry>. Pour cela, utilisez la commande <command>ps -ax | grep inetd | grep -v grep</command> pour connaître le numéro de processus d'<citerefentry><refentrytitle>inetd</refentrytitle></citerefentry>. Une fois que vous l'avez, envoyez lui le signal HUP. Cela se fait avec <command>kill -HUP <pid></command>. Cela obligera <citerefentry><refentrytitle>inetd</refentrytitle></citerefentry> à relire ses fichiers de configuration.</para>
|
|
|
|
<para>Vous avez bien noté la valeur de <literal>addr</literal> dans les messages du programme de démarrage sur la machine sans disque ? C'est maintenant que vous allez en avoir besoin.</para>
|
|
|
|
<para>Ajoutez une entrée à <literal>/etc/bootptab</literal> (vous devrez peut-être créer ce fichier). Voici à quoi elle doit ressembler :</para>
|
|
|
|
<programlisting>altair:\
|
|
:ht=ether:\
|
|
:ha=004001432666:\
|
|
:sm=255.255.255.0:\
|
|
:hn:\
|
|
:ds=199.246.76.1:\
|
|
:ip=199.246.76.2:\
|
|
:gw=199.246.76.1:\
|
|
:vm=rfc1048:</programlisting>
|
|
|
|
<para>Ce qui, ligne par ligne, signifie :</para>
|
|
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>altair</literal></entry>
|
|
<entry>nom du système sans disque, sans nom de domaine</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>ht=ether</literal></entry>
|
|
<entry>type matériel “ethernet”</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>ha=004001432666</literal></entry>
|
|
<entry>adresse matérielle (le nombre que vous avez noté auparavant)</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>sm=255.255.255.0</literal></entry>
|
|
<entry>masque de sous-réseau</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>hn</literal></entry>
|
|
<entry>dit au serveur de donner au client son nom de machine</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>ds=199.246.76.1</literal></entry>
|
|
<entry>dit au client quel est son serveur de noms de domaine</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>ip=199.246.76.2</literal></entry>
|
|
<entry>dit au client quelle est son adresse IP</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>gw=199.246.76.1</literal></entry>
|
|
<entry>dit au client quelle est sa passerelle par défaut</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>vm=...</literal></entry>
|
|
<entry>laissez cela tel que</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<note>
|
|
<para>Veillez à bien définir les adresses IP, j'ai inventé celles de l'exemple.</para>
|
|
|
|
</note>
|
|
|
|
<para>Créez le répertoire <filename>/tftpboot</filename> sur le serveur. Il contiendra les fichiers de configuration pour les systèmes sans disque dont ce sera le serveur de démarrage. Ces fichiers s'appelleront <filename>cfg.<ip></filename>, où <ip> est l'adresse IP de la machine sans disque. Le fichier de configuration pour “altair” est <filename>/tftpboot/cfg.199.246.76.2</filename>. Voici son contenu :</para>
|
|
|
|
<programlisting>rootfs 199.246.76.1:/DiskLess/rootfs/altair
|
|
hostname altair.kcis.com</programlisting>
|
|
|
|
<para>La ligne <literal>hostname altair.kcis.com</literal> indique seulement au système sans disque quel est son nom qualifié.</para>
|
|
|
|
<para>La ligne <literal>rootfs 199.246.76.1:/DiskLess/rootfs/altair</literal> lui dit où est son système de fichiers racine qui sera monté par NFS.</para>
|
|
|
|
<note>
|
|
<para>Ce système de fichiers racine sera monté en <emphasis>lecture seule</emphasis> par NFS.</para>
|
|
</note>
|
|
|
|
<para>L'arborescence de la machine sans disque peut ensuite être remontée pour autoriser les opérations de lecture/écriture.</para>
|
|
|
|
<para>J'utilise mon 386DX-40 comme terminal X dédié.</para>
|
|
|
|
<para>Voici l'arborescence d'“altair” :</para>
|
|
|
|
<literallayout>/
|
|
/bin
|
|
/etc
|
|
/tmp
|
|
/sbin
|
|
/dev
|
|
/dev/fd
|
|
/usr
|
|
/var
|
|
/var/run</literallayout>
|
|
|
|
<para>Et la liste des fichiers qu'elle contient :</para>
|
|
|
|
<screen>-r-xr-xr-x 1 root wheel 779984 Dec 11 23:44 ./kernel
|
|
-r-xr-xr-x 1 root bin 299008 Dec 12 00:22 ./bin/sh
|
|
-rw-r--r-- 1 root wheel 499 Dec 15 15:54 ./etc/rc
|
|
-rw-r--r-- 1 root wheel 1411 Dec 11 23:19 ./etc/ttys
|
|
-rw-r--r-- 1 root wheel 157 Dec 15 15:42 ./etc/hosts
|
|
-rw-r--r-- 1 root bin 1569 Dec 15 15:26 ./etc/XF86Config.altair
|
|
-r-x------ 1 bin bin 151552 Jun 10 1995 ./sbin/init
|
|
-r-xr-xr-x 1 bin bin 176128 Jun 10 1995 ./sbin/ifconfig
|
|
-r-xr-xr-x 1 bin bin 110592 Jun 10 1995 ./sbin/mount_nfs
|
|
-r-xr-xr-x 1 bin bin 135168 Jun 10 1995 ./sbin/reboot
|
|
-r-xr-xr-x 1 root bin 73728 Dec 13 22:38 ./sbin/mount
|
|
-r-xr-xr-x 1 root wheel 1992 Jun 10 1995 ./dev/MAKEDEV.local
|
|
-r-xr-xr-x 1 root wheel 24419 Jun 10 1995 ./dev/MAKEDEV</screen>
|
|
|
|
<para>N'oubliez pas d'exécuter <command>MAKEDEV all</command> dans le répertoire <filename>dev</filename>.</para>
|
|
|
|
<para>Voici enfin mon <filename>/etc/rc</filename> pour <hostid>altair</hostid> :</para>
|
|
|
|
<programlisting>#!/bin/sh
|
|
#
|
|
PATH=/bin:/
|
|
export PATH
|
|
#
|
|
# configurer l'interface “en boucle”
|
|
/sbin/ifconfig lo0 127.0.0.1
|
|
#
|
|
# configurer la carte Ethernet
|
|
/sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00
|
|
#
|
|
# monter le système de fichiers racine via NFS
|
|
/sbin/mount antares:/DiskLess/rootfs/altair /
|
|
#
|
|
# monter le système de fichiers /usr via NFS
|
|
/sbin/mount antares:/DiskLess/usr /usr
|
|
#
|
|
/usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1
|
|
#
|
|
# Rédemarrer lorsque l'on quitte X
|
|
/sbin/reboot
|
|
#
|
|
# Nous avons planté ...
|
|
exit 1</programlisting>
|
|
|
|
<para>Vos commentaires et questions sont bienvenus.</para>
|
|
</sect1>
|
|
</article>
|
|
|
|
<!--
|
|
Local Variables:
|
|
mode: sgml
|
|
sgml-indent-data: t
|
|
sgml-omittag: nil
|
|
sgml-always-quote-attributes: t
|
|
End:
|
|
-->
|