website annotate doc/scratchbook/base-system.html @ rev 170

spelling: 'informations' => 'information'
author Mike D. Smith <MikeDSmith25@gmail.com>
date Fri Sep 19 20:54:02 2008 -0700 (2008-09-19)
parents 3adc3302fea8
children
rev   line source
pankso@66 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
pankso@66 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
pankso@66 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
pankso@66 4 <head>
pankso@66 5 <title>SliTaz Scratchbook - Base system - Créer la base du LiveCD</title>
pankso@66 6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
pankso@66 7 <meta name="description" content="SliTaz BusyBox création system gnu linux fonctionnant en RAM howto Documentation du projet SliTaz GNU/Linux création system gnu linux fonctionnant en RAM" />
pankso@66 8 <meta name="expires" content="never" />
pankso@66 9 <meta name="modified" content="2007-12-24 12:30:00" />
pankso@66 10 <meta name="publisher" content="www.slitaz.org" />
pankso@66 11 <meta name="author" content="Christophe Lincoln"/>
pankso@66 12 <link rel="shortcut icon" href="favicon.ico" />
pankso@66 13 <link rel="stylesheet" type="text/css" href="book.css" />
pankso@66 14 </head>
pankso@66 15 <body bgcolor="#ffffff">
pankso@66 16
pankso@66 17 <!-- Header and quick navigation -->
pankso@66 18 <div id="header">
pankso@66 19 <div align="right" id="quicknav">
pankso@66 20 <a name="top"></a>
pankso@66 21 <a href="index.html#intro">Introduction</a> |
pankso@66 22 <a href="index.html">Table des matières</a> |
pankso@66 23 <a href="base-apps.html">Base apps</a>
pankso@66 24 </div>
pankso@66 25 <h1><font color="#3E1220">SliTaz Scratchbook</font></h1>
pankso@66 26 </div>
pankso@66 27
pankso@66 28 <!-- Content. -->
pankso@66 29 <div id="content">
pankso@66 30 <div class="content-right"></div>
pankso@66 31
pankso@66 32
pankso@66 33 <h2><font color="#DF8F06">Système de base</font></h2>
pankso@66 34 <p>
pankso@66 35 Construire une distro SliTaz GNU/Linux utilisant Busybox et fonctionnant en RAM.
pankso@66 36 </p>
pankso@66 37 <ul>
pankso@66 38 <li><a href="#about">A propos de ce document.</a></li>
pankso@66 39 <li><a href="#src">Wget src.</a></li>
pankso@66 40 <li><a href="#prepa">Désarchiver et préparer le noyau Linux.</a></li>
pankso@66 41 <li><a href="#rootfs">Création de la racine du système</a>, the root
pankso@66 42 file System (rootfs).</li>
pankso@66 43 <li><a href="#config">Configurer sa box.</a></li>
pankso@66 44 <li><a href="#initramfs">Génération de l'initramfs</a>, archive cpio compressée.</li>
pankso@66 45 <li><a href="#rootcd">Construction de la racine du cdrom</a> (rootcd), et
pankso@66 46 des fichiers de config de Syslinux.</li>
pankso@66 47 <li><a href="#mkiso">Créer un image ISO avec genisoimage ou mkisofs.</a></li>
pankso@66 48 <li><a href="#testiso">Craver ou tester l'ISO avec Qemu.</a></li>
pankso@66 49 </ul>
pankso@66 50 <a name="about"></a>
pankso@66 51 <h3><font color="#6c0023">A propos</font></h3>
pankso@66 52 <p>
pankso@66 53 Ce document décrit la construction de la base de SliTaz, pour cela nous
pankso@66 54 utilisons: un noyau Linux, BusyBox, et Syslinux pour booter le système.
pankso@66 55 Slitaz utilise une archive initramfs décompressée en RAM par le
pankso@66 56 kernel au démarrage du système. Nous allons créer la box, pour qu'elle tienne
pankso@66 57 dans un système de fichier racine de 3 à 4 Mb, en utilisant 'strip' sur
pankso@66 58 les bibliothèques et les binaires, pour gagner de la place.
pankso@66 59 </p>
pankso@66 60 <p>
pankso@66 61 Les scripts et les fichiers de configuration sont crées avec GNU nano, il faut
pankso@66 62 utiliser la combinaison de touches &lt;Ctrl+X&gt; pour enregistrer et quitter.
pankso@66 63 Mais vous pouvez biensûr, utiliser votre éditeur de texte préféré à la place.
pankso@66 64 </p>
pankso@66 65 <p>
pankso@66 66 Ce document est inspiré d'un howto trouvé dans l'archive de BusyBox.
pankso@66 67 Qui est lui-même basé sur un papier présenté par Erik Andersen
pankso@66 68 à la conférence Embedded Systems en 2001.
pankso@66 69 </p>
pankso@66 70 <a name="src"></a>
pankso@66 71 <h3><font color="#6c0023">Wget src</font></h3>
pankso@66 72 <p>
pankso@66 73 Création d'un répertoire src pour le téléchargement et
pankso@66 74 la compilation:
pankso@66 75 </p>
pankso@66 76 <pre>
pankso@66 77 # mkdir -p src
pankso@66 78 # cd src
pankso@66 79 </pre>
pankso@66 80 <ul>
pankso@66 81 <li>Linux Kernel 2.6.20
pankso@66 82 (<a href="http://www.kernel.org/">http://www.kernel.org/</a>).
pankso@66 83 <pre># wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2</pre>
pankso@66 84 </li>
pankso@66 85 <li>Busybox 1.2.2
pankso@66 86 (<a href="http://www.busybox.net/">http://www.busybox.net/</a>).
pankso@66 87 <pre># wget http://www.busybox.net/downloads/busybox-1.2.2.tar.bz2</pre>
pankso@66 88 </li>
pankso@66 89 <li>Syslinux 3.35
pankso@66 90 (<a href="http://syslinux.zytor.com/">http://syslinux.zytor.com/</a>).
pankso@66 91 <pre># wget ftp://ftp.kernel.org/pub/linux/boot/syslinux/syslinux-3.35.tar.gz</pre>
pankso@66 92 </li>
pankso@66 93 <li>SliTaz tools 1.1
pankso@66 94 Télécharger SliTaz tools, détarrer, sauver l'archive dans src/, et c'est tout :
pankso@66 95 <pre>
pankso@66 96 # wget http://download.tuxfamily.org/slitaz/sources/tools/slitaz-tools-1.1.tar.gz
pankso@66 97 # tar xzf slitaz-tools-1.1.tar.gz</pre>
pankso@66 98 </li>
pankso@66 99 </ul>
pankso@66 100 <a name="prepa"></a>
pankso@66 101 <h3><font color="#6c0023">Désarchiver et préparer le noyau Linux</font></h3>
pankso@66 102 <p>
pankso@66 103 Nous allons commencer par compiler un noyau Linux, ce qui peut prendre un
pankso@66 104 peu de temps.
pankso@66 105 </p>
pankso@66 106 <h4>Noyau Linux</h4>
pankso@66 107 <p>
pankso@66 108 Votre kernel doit supporter le système de fichier intramfs, sinon le
pankso@66 109 cd-rom ne pourra démarrer. Vous pouvez aussi installer les modules dans
pankso@66 110 un répertoire donné afin de ne pas toucher au système hôte. La configuration
pankso@66 111 des sources du noyau Linux se fait avec <code>make menuconfig</code>, en
pankso@66 112 ncurser ou graphiquement avec <code>make gconfig</code> ou,
pankso@66 113 <code>make xconfig</code>. Pour cela il faut que les paquets de développements
pankso@66 114 GTK et/ou QT soient installés. Vous trouverez dans
pankso@66 115 <a href="http://www.slitaz.org/get/tools.html">SliTaz tools</a> les
pankso@66 116 Makefiles de divers noyau 2.6.xx.
pankso@66 117 </p>
pankso@66 118 <p>
pankso@66 119 Une fonctionnalité des noyaux 2.6 est que si nous lançons make menuconfig,
pankso@66 120 xconfig, ou config, pour la première fois, le menu de configuration affiché
pankso@66 121 est basé sur la configuration de notre noyau actuel.
pankso@66 122 </p>
pankso@66 123 <p>
pankso@66 124 Les options choisies dépendent de vos besoins, sachez que vous pouvez installer
pankso@66 125 module-init-tools pour prendre en charge les modules compressés. Pour un système
pankso@66 126 minimum vous pouvez ne choisir que les options vitales.
pankso@66 127 </p>
pankso@66 128 <p>
pankso@66 129 Nous commençons par un <code>cd</code> dans les sources, <code>mrproper</code>
pankso@66 130 pour mettre un peu d'ordre, puis on lance une interface de configuration,
pankso@66 131 <code>gconfig</code>, <code>xconfig</code>, <code>menuconfig</code>, ou
pankso@66 132 <code>oldconfig</code>:
pankso@66 133 </p>
pankso@66 134 <pre>
pankso@66 135 # tar xjf linux-2.6.20.tar.bz2
pankso@66 136 # cd linux-2.6.20
pankso@66 137 # make mrproper
pankso@66 138 # cp ../slitaz-tools-1.1/Makefiles/linux-2.6.20-slitaz.config .config
pankso@66 139 # make oldconfig
pankso@66 140 (# make menuconfig)
pankso@66 141 # make bzImage
pankso@66 142 # make modules
pankso@66 143 # make INSTALL_MOD_PATH=$PWD/_pkg modules_install
pankso@66 144 # cd ..
pankso@66 145 </pre>
pankso@66 146 <p>
pankso@66 147 Si vous désirez plus d'info sur la compilation du noyau, référez-vous aux
pankso@66 148 pages de manuels. A noter que vous pouvez installer ce noyau et
pankso@66 149 redémarrer dessus, vous compilerez la suite avec votre propre noyau.
pankso@66 150 </p>
pankso@66 151 <a name="rootfs"></a>
pankso@66 152 <h3><font color="#6c0023">Création de la racine du sytème (rootfs)</font></h3>
pankso@66 153 <p>
pankso@66 154 La prochaine étape créera un système de fichier racine nommé 'rootfs',
pankso@66 155 pour Root File System, dans l'espace de travail SliTaz.
pankso@66 156 </p>
pankso@66 157 <pre>
pankso@66 158 # mkdir ../rootfs
pankso@66 159 </pre>
pankso@66 160 <h4>Install BusyBox</h4>
pankso@66 161 <p>
pankso@66 162 BusyBox (<a href="http://www.busybox.net/">www.busybox.net</a>) est un
pankso@66 163 exécutable unique qui propose des versions allégées des principaux outils
pankso@66 164 indispensables pour utiliser un noyau Linux. Il est principalement destiné
pankso@66 165 à l'embarqué et permet de presque tout faire. C'est un shell proposant les
pankso@66 166 commandes de coreutils et des démons système. Il y a même un serveur web, et
pankso@66 167 un client/serveur DHCP (udhcpc).
pankso@66 168 </p>
pankso@66 169 <pre>
pankso@66 170 # tar xjf busybox-1.2.2.tar.bz2
pankso@66 171 </pre>
pankso@66 172 <p>
pankso@66 173 Pour configurer et compiler. N'oubliez pas les options dumpkmap, init, etc,
pankso@66 174 pour vous aider, vous trouverez le Makefile de BusyBox dans SliTaz tools. Le
pankso@66 175 make install créera un répertoire _install dans le répertoire courant:
pankso@66 176 </p>
pankso@66 177 <pre>
pankso@66 178 # cd busybox-1.2.2
pankso@66 179 # cp ../slitaz-tools-1.1/Makefiles/busybox-1.2.2.config .config
pankso@66 180 # make oldconfig
pankso@66 181 (# make menuconfig)
pankso@66 182 # make
pankso@66 183 # make install
pankso@66 184 # chmod 4755 _install/bin/busybox
pankso@66 185 </pre>
pankso@66 186 <p>
pankso@66 187 Copier les fichiers de la compilation de Busybox, se trouvant dans le
pankso@66 188 répertoire _install, dans le système de fichiers racine (rootfs):
pankso@66 189 </p>
pankso@66 190 <pre>
pankso@66 191 # cp -a _install/* ../../rootfs
pankso@66 192 </pre>
pankso@66 193 <p>
pankso@66 194 Le lien linuxrc pointant vers bin/busybox, les dossiers /bin, /lib, et /sbin,
pankso@66 195 on été ajoué au répertoire /rootfs. On peut le vérifier avec ls. Il se peut que
pankso@66 196 le lien linuxrc ne soit pas présent si vous n'avez pas séléctionner l'option du
pankso@66 197 support initrd dans BusyBox. Nous effaçons le lien linuxrc, et créons un lien
pankso@66 198 pour init qui pointe sur bin/busybox:
pankso@66 199 </p>
pankso@66 200 <pre>
pankso@66 201 # cd ../../rootfs
pankso@66 202 # ls -CF
pankso@66 203 bin/ linuxrc@ sbin/ usr/
pankso@66 204
pankso@66 205 # rm linuxrc
pankso@66 206 # ln -s bin/busybox init
pankso@66 207 </pre>
pankso@66 208 <h4>ldd sur BusyBox</h4>
pankso@66 209 <p>
pankso@66 210 La commande <code>ldd</code> permet de connaître les bibliothèques utilisées par
pankso@66 211 un programme. Les bibliothèques utilisées par Busybox peuvent différer sen fonction
pankso@66 212 du système hôte utilisé, sur Debian par exemple vous devrez copier les bibliothèques
pankso@66 213 situées dans /lib/tls. Les commandes ci-dessous sont donnée avec l'option '-v' pour
pankso@66 214 verbose ou volubile. Pour éliminer les symboles des binaires exécutable et des
pankso@66 215 bibliothèques partagées qui servent au débuggage nous utilison strip. A noter
pankso@66 216 que vous pourriez aussi utiliser les bibliothèques uClibc ou mklibs :
pankso@66 217 </p>
pankso@66 218 <pre>
pankso@66 219 # mkdir lib
pankso@66 220 </pre>
pankso@66 221 <p>
pankso@66 222 Exemple sur SliTaz ou autres:
pankso@66 223 </p>
pankso@66 224 <pre>
pankso@66 225 # cp /lib/{libcrypt.so.1,libm.so.6,libc.so.6} lib
pankso@66 226 # cp /lib/ld-linux.so.2 lib
pankso@66 227 </pre>
pankso@66 228 <p>
pankso@66 229 Exemple sur Debian Etch:
pankso@66 230 </p>
pankso@66 231 <pre>
pankso@66 232 # cp /lib/tls/{libcrypt.so.1,libm.so.6,libc.so.6} lib
pankso@66 233 # cp /lib/ld-linux.so.2 lib
pankso@66 234 </pre>
pankso@66 235 <p>
pankso@66 236 Nettoyage de bibliothèques avec <code>strip</code>:
pankso@66 237 </p>
pankso@66 238 <pre>
pankso@66 239 # strip -v lib/*
pankso@66 240 </pre>
pankso@66 241 <h4>Linux tree et config</h4>
pankso@66 242 <p>
pankso@66 243 Création de quelques répertoires pour créer une arborrescence Linux classique pour
pankso@66 244 SliTaz. /dev pour les devices, /etc, /home, /usr, /proc, /root, et compagnie.
pankso@66 245 Pour en savoir plus sur la hierarchie d'un système de fichiers, et son contenu, il
pankso@66 246 existe le Filesystem Hierarchy Standard, disponible en plusieurs formats sur
pankso@66 247 <a href="http://www.pathname.com/fhs/">www.pathname.com/fhs/</a>.
pankso@66 248 </p>
pankso@66 249 <p>
pankso@66 250 Vous êtes libre de créer votre propre arbre. Dans les systèmes unix traditionnels,
pankso@66 251 /usr contient généralement des fichiers provenant de la distribution, /dev contient
pankso@66 252 les périphériques (devices), /etc contient les fichiers de configuration, /lib des
pankso@66 253 bibliothèques, /home pour la maison des utilisateurs, et /var des données variables.
pankso@66 254 A noter que nous ne créons pas /lib, /bin, /sbin, ils seront crée lors de
pankso@66 255 l'installation de BusyBox:
pankso@66 256 </p>
pankso@66 257 <pre>
pankso@66 258 # mkdir -p dev etc root home proc media mnt sys tmp var
pankso@66 259 # mkdir -p usr/{lib,local,games,share} \
pankso@66 260 var/{cache,lib,lock,log,games,run,spool} \
pankso@66 261 media/{cdrom,flash,usbdisk}
pankso@66 262 </pre>
pankso@66 263 <p>
pankso@66 264 Changement des permissions sur le répertoire /tmp:
pankso@66 265 </p>
pankso@66 266 <pre>
pankso@66 267 # chmod 1777 tmp
pankso@66 268 </pre>
pankso@66 269 <p>
pankso@66 270 Configuration de base de la glibc, /etc/ld.so.conf et /etc/rpc ne sont pas
pankso@66 271 indispensable pour un micro système:
pankso@66 272 </p>
pankso@66 273 <pre>
pankso@66 274 # touch etc/ld.so.conf
pankso@66 275 # cp /etc/rpc etc
pankso@66 276 </pre>
pankso@66 277 <h4>Créer le devices dans /dev</h4>
pankso@66 278 <p>
pankso@66 279 Ceci peut se faire avec le script 'mkdevs.sh' trouvé dans busybox.
pankso@66 280 ou avec notre script 'mktazdevs.sh' contenu dans SliTaz tools. Si vous
pankso@66 281 voulez des détails, lisez les scripts. Si vous utilisé la version BusyBox,
pankso@66 282 il faut encore créer le réperoire pts:
pankso@66 283 </p>
pankso@66 284 <pre>
pankso@66 285 # cp ../src/slitaz-tools-1.1/utils/mktazdevs.sh bin
pankso@66 286 # ./bin/mktazdevs.sh dev
pankso@66 287 ou:
pankso@66 288 # cp ../src/busybox-1.2.2/examples/bootfloppy/mkdevs.sh bin
pankso@66 289 # ./bin/mkdevs.sh dev
pankso@66 290 # mkdir -p dev/{pts,input,shm,net,usb}
pankso@66 291 </pre>
pankso@66 292 <p>
pankso@66 293 A noter que nous démarrons mdev -s avec le script rcS, pour créer
pankso@66 294 les devices dynamiquement lors du boot.
pankso@66 295 </p>
pankso@66 296 <h4>Support de la résolution des noms d'hôtes (DNS)</h4>
pankso@66 297 <p>
pankso@66 298 Copie des bibliothèques libnss_* du système hôte, dans notre
pankso@66 299 système SliTaz, ces bibliothèques sont utilisées pour la résolution
pankso@66 300 des noms et nettoyage avec strip:
pankso@66 301 </p>
pankso@66 302 <pre>
pankso@66 303 # cp /lib/{libnss_dns.so.2,libnss_files.so.2} lib
pankso@66 304 # cp /lib/libresolv.so.2 lib
pankso@66 305 # strip -v lib/*.so*
pankso@66 306 </pre>
pankso@66 307 <a name="config"></a>
pankso@66 308 <h3><font color="#6c0023">Configuration de votre Box</font></h3>
pankso@66 309 <p>
pankso@66 310 Créer les fichiers nécessaires dans /etc. Pour plus d'infos, il faut
pankso@66 311 simplement regarder le contenu des fichiers. Nous commençons par créer
pankso@66 312 quelques fichiers utiles au fonctionnement de base du sytème:
pankso@66 313 </p>
pankso@66 314 <h4>Réseau</h4>
pankso@66 315 <p>
pankso@66 316 Création des fichiers de base utilisés pour configurer le réseau:
pankso@66 317 </p>
pankso@66 318 <pre>
pankso@66 319 # echo "127.0.0.1 localhost" > etc/hosts
pankso@66 320 # echo "localnet 127.0.0.1" > etc/networks
pankso@66 321 # echo "slitaz" > etc/hostname
pankso@66 322 # echo "order hosts,bind" > etc/host.conf
pankso@66 323 # echo "multi on" >> etc/host.conf
pankso@66 324 </pre>
pankso@66 325 <h4>/etc/nsswitch.conf</h4>
pankso@66 326 <p>
pankso@66 327 Fichier de configuration utilisé pour la résolution des noms:
pankso@66 328 </p>
pankso@66 329 <pre>
pankso@66 330 # nano etc/nsswitch.conf
pankso@66 331 </pre>
pankso@66 332 <pre class="script">
pankso@66 333 # /etc/nsswitch.conf: GNU Name Service Switch config.
pankso@66 334 #
pankso@66 335
pankso@66 336 passwd: files
pankso@66 337 group: files
pankso@66 338 shadow: files
pankso@66 339
pankso@66 340 hosts: files dns
pankso@66 341 networks: files
pankso@66 342
pankso@66 343 </pre>
pankso@66 344 <h4>/etc/securetty</h4>
pankso@66 345 <p>
pankso@66 346 Le fichier /etc/securetty, liste les terminaux sur lesquels root peut se
pankso@66 347 connecter:
pankso@66 348 </p>
pankso@66 349 <pre>
pankso@66 350 # nano etc/securetty
pankso@66 351 </pre>
pankso@66 352 <pre class="script">
pankso@66 353 # /etc/securetty: List of terminals on which root is allowed to login.
pankso@66 354 #
pankso@66 355 console
pankso@66 356
pankso@66 357 # For people with serial port consoles
pankso@66 358 ttyS0
pankso@66 359
pankso@66 360 # Standard consoles
pankso@66 361 tty1
pankso@66 362 tty2
pankso@66 363 tty3
pankso@66 364 tty4
pankso@66 365 tty5
pankso@66 366 tty6
pankso@66 367 tty7
pankso@66 368
pankso@66 369 </pre>
pankso@66 370 <h4>/etc/shells</h4>
pankso@66 371 <p>
pankso@66 372 Le fichier /etc/shells, liste les shells de connection valides. Ce fichier est
pankso@66 373 entre autre utilisé par le serveur SSH dropbear:
pankso@66 374 </p>
pankso@66 375 <pre>
pankso@66 376 # nano etc/shells
pankso@66 377 </pre>
pankso@66 378 <pre class="script">
pankso@66 379 # /etc/shells: valid login shells.
pankso@66 380 /bin/sh
pankso@66 381 /bin/ash
pankso@66 382 /bin/hush
pankso@66 383
pankso@66 384 </pre>
pankso@66 385 <h4>/etc/issue et /etc/motd</h4>
pankso@66 386 <p>
pankso@66 387 Création des fichiers /etc/issue affiché à la fin du boot, et du message du
pankso@66 388 jour affiché après le login:
pankso@66 389 </p>
pankso@66 390 <pre>
pankso@66 391 # echo "SliTaz GNU/Linux 1.0 Kernel \r \l" > etc/issue
pankso@66 392 # echo "" >> etc/issue
pankso@66 393 # nano etc/motd
pankso@66 394 </pre>
pankso@66 395 <pre class="script">
pankso@66 396
pankso@66 397 (°- { Get documentation in: /usr/share/doc.
pankso@66 398 //\ Use: 'less' or 'more' to read files, 'su' to be root. }
pankso@66 399 v_/_
pankso@66 400
pankso@66 401 SliTaz is distributed in the hope that it will be useful, but
pankso@66 402 with ABSOLUTELY NO WARRANTY.
pankso@66 403
pankso@66 404 </pre>
pankso@66 405 <h4>/etc/busybox.conf</h4>
pankso@66 406 <p>
pankso@66 407 Ce fichier est le fichiers de configuration de BusyBox, il permet
pankso@66 408 de configurer, entre autre des droits sur les applications Busybox.
pankso@66 409 Pour plus d'informations vous pouvez lire le document texte:
pankso@66 410 <a href="http://www.slitaz.org/doc/handbook/security.html">sécurité du système</a>
pankso@66 411 du Handbook. Fichier busybox.conf :
pankso@66 412 </p>
pankso@66 413 <pre>
pankso@66 414 # nano etc/busybox.conf
pankso@66 415 </pre>
pankso@66 416 <pre class="script">
pankso@66 417 # /etc/busybox.conf: SliTaz GNU/linux Busybox configuration.
pankso@66 418 #
pankso@66 419
pankso@66 420 [SUID]
pankso@66 421 # Allow command to be run by anyone.
pankso@66 422 su = ssx root.root
pankso@66 423 passwd = ssx root.root
pankso@66 424 loadkmap = ssx root.root
pankso@66 425 mount = ssx root.root
pankso@66 426 reboot = ssx root.root
pankso@66 427 halt = ssx root.root
pankso@66 428
pankso@66 429 </pre>
pankso@66 430 <p>
pankso@66 431 Pour plus de sécurité, on change les permission sur ce fichier:
pankso@66 432 </p>
pankso@66 433 <pre>
pankso@66 434 # chmod 600 etc/busybox.conf
pankso@66 435 </pre>
pankso@66 436 <h4>/etc/inittab</h4>
pankso@66 437 <p>
pankso@66 438 Fichier de configuration d'init minimal. Il permet d'avoir d'avoir une
pankso@66 439 console root sans passer par le login, et une console activable sur tty2.
pankso@66 440 </p>
pankso@66 441 <pre>
pankso@66 442 # nano etc/inittab
pankso@66 443 </pre>
pankso@66 444 <pre class="script">
pankso@66 445 # /etc/inittab: init configuration for SliTaz GNU/Linux.
pankso@66 446
pankso@66 447 ::sysinit:/etc/init.d/rcS
pankso@66 448 ::respawn:-/bin/sh
pankso@66 449 tty2::askfirst:-/bin/sh
pankso@66 450 ::ctrlaltdel:/bin/umount -a -r
pankso@66 451 ::ctrlaltdel:/sbin/reboot
pankso@66 452
pankso@66 453 </pre>
pankso@66 454 <p>
pankso@66 455 Vous trouverez aussi un large exemple d'un fichier inittab dans
pankso@66 456 l'archive de BusyBox.
pankso@66 457 </p>
pankso@66 458 <h4>/etc/profile</h4>
pankso@66 459 <p>
pankso@66 460 Ce fichier est lu lors de chaque login, et affecte tous les utilisateurs.
pankso@66 461 Il faut utiliser le fichier ~/.profile pour la config propre à chaque user.
pankso@66 462 </p>
pankso@66 463 <pre>
pankso@66 464 # nano etc/profile
pankso@66 465 </pre>
pankso@66 466 <pre class="script">
pankso@66 467 # /etc/profile: system-wide .profile file for the Bourne shells
pankso@66 468
pankso@66 469 PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
pankso@66 470 LD_LIBRARY_PATH="/usr/lib:/lib"
pankso@66 471
pankso@66 472 if [ "`id -u`" -eq 0 ]; then
pankso@66 473 PS1='\e[1m\u@\h:\w\#\e[m '
pankso@66 474 else
pankso@66 475 PS1='\e[1m\u@\h:\w\$\e[m '
pankso@66 476 fi
pankso@66 477
pankso@66 478 DISPLAY=:0.0
pankso@66 479
pankso@66 480 export PATH LD_LIBRARY_PATH PS1 DISPLAY ignoreeof
pankso@66 481 umask 022
pankso@66 482
pankso@66 483 </pre>
pankso@66 484 <h4>Utilisateurs, groupes, et mots de passes</h4>
pankso@66 485 <p>
pankso@66 486 Création des fichiers de configuration des utilisateurs, des groupes,
pankso@66 487 des mots de passes situé dans: etc/{passwd,shadow,group,gshadow},
pankso@66 488 et ajustage des permissions:
pankso@66 489 </p>
pankso@66 490 <pre>
pankso@66 491 # echo "root:x:0:0:root:/root:/bin/sh" > etc/passwd
pankso@66 492 # echo "root::13525:0:99999:7:::" > etc/shadow
pankso@66 493 # echo "root:x:0:" > etc/group
pankso@66 494 # echo "root:*::" > etc/gshadow
pankso@66 495 # chmod 640 etc/shadow
pankso@66 496 # chmod 640 etc/gshadow
pankso@66 497 </pre>
pankso@66 498 <p>
pankso@66 499 Vous pouvez ajouter d'autres utilisateurs, tel que <a href="hacker.txt">hacker</a>
pankso@66 500 utilisé par le mode liveCD de SliTaz. Vous pouvez aussi configuer un mot de passe pour
pankso@66 501 le super-utilisateur root, avec la commande passwd. Pour ajouter un utilisateur existant
pankso@66 502 dans un groupe existant, vous devez éditer les fichiers /etc/group et /etc/gshadow, car
pankso@66 503 l'applet adduser fourni avec busybox n'offre pas toutes les options fournies par le
pankso@66 504 programme original.
pankso@66 505 </p>
pankso@66 506 <h4>/etc/fstab et /etc/mtab</h4>
pankso@66 507 <p>
pankso@66 508 Liste les systèmes de fchiers à monter:
pankso@66 509 </p>
pankso@66 510 <pre>
pankso@66 511 # nano etc/fstab
pankso@66 512 </pre>
pankso@66 513 <pre class="script">
MikeDSmith25@170 514 # /etc/fstab: information about static file system.
pankso@66 515 #
pankso@66 516 proc /proc proc defaults 0 0
pankso@66 517 sysfs /sys sysfs defaults 0 0
pankso@66 518 devpts /dev/pts devpts defaults 0 0
pankso@66 519 tmpfs /dev/shm tmpfs defaults 0 0
pankso@66 520
pankso@66 521 </pre>
pankso@66 522 <p>
pankso@66 523 Le fichier /etc/mtab est utilisé entre autre par mkfs*, il liste les partitions montées.
pankso@66 524 Il a besoin de /proc, car c'est un lien sur /proc/mounts:
pankso@66 525 </p>
pankso@66 526 <pre>
pankso@66 527 # chroot . /bin/ash
pankso@66 528 /# ln -s /proc/mounts /etc/mtab
pankso@66 529 </pre>
pankso@66 530 <h4>Clavier</h4>
pankso@66 531 <p>
pankso@66 532 Vous pouvez créer un fichier .kmap spécifique à votre clavier grâce à la
pankso@66 533 commande dumpkmap fournie avec BusyBox. Vous trouverez quelques fichiers kmap
pankso@66 534 dans l'archive <a href="http://www.slitaz.org/get/tools.html">SliTaz tools</a>
pankso@66 535 tel que fr_CH. Pour créer un fichier .kmap (changez fr_CH à votre
pankso@66 536 configuration):
pankso@66 537 </p>
pankso@66 538 <pre>
pankso@66 539 /# mkdir /usr/share/kmap
pankso@66 540 /# /bin/busybox dumpkmap &gt; /usr/share/kmap/fr_CH.kmap
pankso@66 541 /# exit
pankso@66 542 </pre>
pankso@66 543 <p>
pankso@66 544 Une fois ceci fait vous pouvez charger automatiquement votre clavier
pankso@66 545 avec loadkmap dans un script tel que etc/ini.d/rcS, par exemple.
pankso@66 546 </p>
pankso@66 547 <h4>/usr/share/doc</h4>
pankso@66 548 <p>
pankso@66 549 Vous pouvez aussi ajouter divers documents, comme le manuel d'utilisateur
pankso@66 550 de SliTaz, que vous pouvez télécharger sous forme d'archive tar.gz, depuis le
pankso@66 551 site web de SliTaz.
pankso@66 552 </p>
pankso@66 553 <pre>
pankso@66 554 # mkdir -p usr/share/doc
pankso@66 555 </pre>
pankso@66 556 <h4>Installation du script udhcpc</h4>
pankso@66 557 <p>
pankso@66 558 Udhcpc est un client DHCP stable et rapide, fourni avec Busybox, mais
pankso@66 559 ayant un développemnt indépandent. Site web: <a href="http://udhcp.busybox.net/"
pankso@66 560 >http://udhcp.busybox.net/</a>. Vous pouvez utiliser default.script
pankso@66 561 de l'archive BusyBox. Ce script se met dans /usr/share/udhcpc/default.script,
pankso@66 562 mais cela peut être modifié en ligne de commande. Sur SliTaz le client est lancé au boot
pankso@66 563 par le script /etc/init.d/network.sh via le fichier de configuration /etc/network.conf:
pankso@66 564 </p>
pankso@66 565 <pre>
pankso@66 566 # mkdir usr/share/udhcpc
pankso@66 567 # cp ../src/busybox-1.2.2/examples/udhcp/simple.script \
pankso@66 568 usr/share/udhcpc/default.script
pankso@66 569 # chmod +x usr/share/udhcpc/default.script
pankso@66 570 </pre>
pankso@66 571 <h4>/etc/init.d/rcS</h4>
pankso@66 572 <p>
pankso@66 573 Pour finir cette première mouture il faut encore créer le script d'initialisation
pankso@66 574 /etc/init.d/rcS pour monter les systèmes de fichiers, et lancer quelques commandes.
pankso@66 575 Pour plus d'information vous pouvez jeter un coup d'oeil au chapitre sur
pankso@66 576 <a href="boot-scripts.html">les scripts de démarrage et d'arrêt</a>. Vous pouvez
pankso@66 577 changer la valeur de la variable KMAP= pour que le bon clavier soit chargé:
pankso@66 578 </p>
pankso@66 579 <pre>
pankso@66 580 # mkdir etc/init.d
pankso@66 581 # nano etc/init.d/rcS
pankso@66 582 </pre>
pankso@66 583 <pre class="script">
pankso@66 584 #! /bin/sh
pankso@66 585 # /etc/init.d/rcS: rcS initial script.
pankso@66 586 #
pankso@66 587
pankso@66 588 KMAP=fr_CH
pankso@66 589
pankso@66 590 echo "Processing /etc/init.d/rcS... "
pankso@66 591
pankso@66 592 /bin/mount proc
pankso@66 593 /bin/mount -a
pankso@66 594 /bin/hostname -F /etc/hostname
pankso@66 595 /sbin/ifconfig lo 127.0.0.1 up
pankso@66 596 /sbin/loadkmap &lt; /usr/share/kmap/$KMAP.kmap
pankso@66 597
pankso@66 598
pankso@66 599 </pre>
pankso@66 600 <pre>
pankso@66 601 # chmod +x etc/init.d/rcS
pankso@66 602 </pre>
pankso@66 603 <h4>Note</h4>
pankso@66 604 <p>
pankso@66 605 A noter que vous pouvez encore installer
pankso@66 606 <a href="http://www.slitaz.org/get/tazpkg.html">tazpkg</a> (10 Ko).
pankso@66 607 C'est un gestionnaire de paquets que nous avons créé, vous touverez toutes les
pankso@66 608 infos d'install dans l'archive source. Vous pouvez aussi installer divers
pankso@66 609 fichiers depuis SliTaz tools, tel les lisences.
pankso@66 610 </p>
pankso@66 611 <a name="initramfs"></a>
pankso@66 612 <h3><font color="#6c0023">Build a initramfs cpio archive</font></h3>
pankso@66 613 <p>
pankso@66 614 L'initramfs est une archive <code>cpio</code> du système générée depuis la racine,
pankso@66 615 elle est décompressée en RAM par le noyau Linux lors du démarrage (boot), pour créer
pankso@66 616 le système de fichiers en mémoire vive. Pour générer une archive initramfs, nous
pankso@66 617 nous plaçons dans le répertoire racine du système de fichiers (rootfs), nous fesons
pankso@66 618 une recherche avec <code>find</code>, et nous utilisons des pipes <code>|</code>.
pankso@66 619 Ensuite nous créons une archive<code>cpio</code> gzipée avec <code>gzip</code>,
pankso@66 620 que nous plaçons dans le répertoire de travail.
pankso@66 621 </p>
pankso@66 622 <p>
pankso@66 623 L'initramfs de SliTaz se nomme <strong>rootfs.gz</strong>, c'est le nom du
pankso@66 624 système racine, mais avec l'extension <code>.gz</code>. Si vous changé
pankso@66 625 le nom, il faudrat le spécifier dans le fichier isolinux.cfg pour isolinux,
pankso@66 626 ou menu.lst pour GRUB.
pankso@66 627 </p>
pankso@66 628 <p>
pankso@66 629 Génération de l'initramfs:
pankso@66 630 </p>
pankso@66 631 <pre>
pankso@66 632 # find . -print | cpio -o -H newc | gzip -9 &gt; ../rootfs.gz
pankso@66 633 </pre>
pankso@66 634 <p>
pankso@66 635 Vous devriez avoir un fichier rootfs.gz d'environ 1 à 2 Mb dans le
pankso@66 636 répertoire de travail de SliTaz.
pankso@66 637 </p>
pankso@66 638 <p>
pankso@66 639 Pour une nouvelle image, lors de modif dans rootfs, il suffit de copier
pankso@66 640 la nouvelle archive rootfs.gz dans rootcd/boot, et de créer une nouvelle
pankso@66 641 image ISO avec <code>genisoimage</code> ou <code>mkisofs</code>. Pour cela vous
pankso@66 642 pouvez utiliser <strong>mktaziso</strong> se trouvant dans SliTaz tools. Ce script
pankso@66 643 se chargera de vérifier si les répertoires sont bien présents, de générer une
pankso@66 644 nouvelle archive cpio compressée et de créer une nouvelle image ISO bootable.
pankso@66 645 </p>
pankso@66 646 <a name="rootcd"></a>
pankso@66 647 <h3><font color="#6c0023">Make rootcd files</font></h3>
pankso@66 648 <p>
pankso@66 649 Les étapes suivantes vont vous permettre de créer la racine du cd-rom
pankso@66 650 bootable. Nous commençons par créer le répertoire rootcd, boot, et isolinux
pankso@66 651 pour les fichiers déstinés au cd-rom:
pankso@66 652 </p>
pankso@66 653 <pre>
pankso@66 654 # cd ..
pankso@66 655 # mkdir -p rootcd/boot/isolinux
pankso@66 656 </pre>
pankso@66 657 <p>
pankso@66 658 En option vous pouvez créer d'autres repértoires pour y mettre divers données,
pankso@66 659 tel que des documents html ou des paquets.
pankso@66 660 </p>
pankso@66 661 <a name="linux"></a>
pankso@66 662 <h4>Copier le kernel</h4>
pankso@66 663 <p>
pankso@66 664 Il suffit de copier le noyau préalablement compilé, dans rootcd/boot:
pankso@66 665 </p>
pankso@66 666 <pre>
pankso@66 667 # cp src/linux-2.6.20/arch/i386/boot/bzImage rootcd/boot
pankso@66 668 </pre>
pankso@66 669 <h4>Copie de l'initramfs dans rootcd/boot</h4>
pankso@66 670 <p>
pankso@66 671 Il ne faut pas oublier de générer une nouvelle archive initramfs
pankso@66 672 lors de modification dans le rootfs (root file system).
pankso@66 673 </p>
pankso@66 674 <pre>
pankso@66 675 # cp rootfs.gz rootcd/boot
pankso@66 676 </pre>
pankso@66 677 <h4>Install du bootloader isolinux</h4>
pankso@66 678 <p>
pankso@66 679 Le bootloader isolinux, il suffit de copier isolinux.bin depuis l'archive
pankso@66 680 des source de Syslinux:
pankso@66 681 </p>
pankso@66 682 <pre>
pankso@66 683 # cd src
pankso@66 684 # tar xzf syslinux-3.35.tar.gz
pankso@66 685 # cp syslinux-3.35/isolinux.bin ../rootcd/boot/isolinux
pankso@66 686 # cd ..
pankso@66 687 </pre>
pankso@66 688 <h4>isolinux.cfg - Configuration d'isolinux</h4>
pankso@66 689 <p>
pankso@66 690 Voici un exemple du fichier isolinux.cfg qui devrait bien fonctionner. Vous
pankso@66 691 pouvez le modifier à volonté:
pankso@66 692 </p>
pankso@66 693 <pre>
pankso@66 694 # nano rootcd/boot/isolinux/isolinux.cfg
pankso@66 695 </pre>
pankso@66 696 <pre class="script">
pankso@66 697 display display.txt
pankso@66 698 default slitaz
pankso@66 699 label slitaz
pankso@66 700 kernel /boot/bzImage
pankso@66 701 append initrd=/boot/rootfs.gz rw root=/dev/null vga=788
pankso@66 702 implicit 0
pankso@66 703 prompt 1
pankso@66 704 timeout 80
pankso@66 705
pankso@66 706 </pre>
pankso@66 707 <p>
pankso@66 708 Voici quelques changements que vous pourriez faire dans isolinux.cfg:
pankso@66 709 </p>
pankso@66 710 <ul>
pankso@66 711 <li>La valeur timeout correspond au nombre de secondes à attendre
pankso@66 712 avantde booter. Vous pouvez la mettre à 0, ou hôter la ligne pour
pankso@66 713 démarrer instantanément, ou choisir un temps d'attente plus long tel
pankso@66 714 que 10 s.</li>
pankso@66 715 <li>prompt peut être mis à 0 pour désactiver le 'boot:' prompt.</li>
pankso@66 716 <li>Vous pouvez encore ajouter plus de lignes pour afficher le contenu
pankso@66 717 de plusieurs fichiers textes lorsque l'utilisateur appuie sur F1, F2,
pankso@66 718 F3, etc.</li>
pankso@66 719 </ul>
pankso@66 720 <h4>display.txt</h4>
pankso@66 721 <p>
pankso@66 722 Un petit message de bienvenue, propulsé par isolinux, à vous de modifier
pankso@66 723 ce fichier comme bon vous semble:
pankso@66 724 </p>
pankso@66 725 <pre>
pankso@66 726 # nano rootcd/boot/isolinux/display.txt
pankso@66 727 </pre>
pankso@66 728 <pre class="script">
pankso@66 729 /* _\|/_
pankso@66 730 (o o)
pankso@66 731 +----oOO-{_}-OOo---------------------------------------------------+
pankso@66 732 ____ _ _ _____
pankso@66 733 / ___|| (_)_ _|_ _ ____
pankso@66 734 \___ \| | | | |/ _` |_ /
pankso@66 735 ___) | | | | | (_| |/ /
pankso@66 736 |____/|_|_| |_|\__,_/___|
pankso@66 737
pankso@66 738 SliTaz GNU/Linux - Temporary Autonomous Zone
pankso@66 739
pankso@66 740 &lt;ENTER&gt; to boot.
pankso@66 741
pankso@66 742 */
pankso@66 743 </pre>
pankso@66 744 <a name="mkiso"></a>
pankso@66 745 <h3><font color="#6c0023">Créer un image ISO avec genisoimage ou mkisofs</font></h3>
pankso@66 746 <pre>
pankso@66 747 # genisoimage -R -o slitaz-cooking.iso -b boot/isolinux/isolinux.bin \
pankso@66 748 -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
pankso@66 749 -V "SliTaz" -input-charset iso8859-1 -boot-info-table rootcd
pankso@66 750 </pre>
pankso@66 751 <p>
pankso@66 752 Pour chaque nouvelle modification dans le système de fichier racine
pankso@66 753 de la box, vous devez créer une nouvelle image ISO.
pankso@66 754 </p>
pankso@66 755 <p>
pankso@66 756 Vous pouvez créer un petit script qui se chargera de générer une nouvelle
pankso@66 757 archive cpio compressée et une nouvelle image ISO, ou utiliser mktaziso se
pankso@66 758 trouvant dans SliTaz tools. A noter que vous pouvez aussi utiliser GRUB pour
pankso@66 759 booter la box.
pankso@66 760 </p>
pankso@66 761 <a name="testiso"></a>
pankso@66 762 <h3><font color="#6c0023">Craver ou tester l'ISO avec Qemu</font></h3>
pankso@66 763 <p>
pankso@66 764 Vous pouvez graver l'image ISO avec Graveman, k3b, ou wodim, et booter
pankso@66 765 dessus. Voisi un exemple de commande de gravure avec wodim (valable aussi pour
pankso@66 766 cdrecord), avec un kernel 2.6.*:
pankso@66 767 </p>
pankso@66 768 <pre>
pankso@66 769 # wodim -v -speed=24 -data slitaz-cooking.iso
pankso@66 770 </pre>
pankso@66 771 <h4>Qemu</h4>
pankso@66 772 <p>
pankso@66 773 A noter que vous pouvez tester l'image ISO avec le logiciel d'émulation Qemu
pankso@66 774 (Sur Debian # aptitude install qemu). Pour émuler l'image ISO fraîchement crée,
pankso@66 775 il suffit de taper :
pankso@66 776 </p>
pankso@66 777 <pre>
pankso@66 778 # qemu -cdrom slitaz-cooking.iso
pankso@66 779 </pre>
pankso@66 780 <h4>Suite</h4>
pankso@66 781 <p>
pankso@66 782 La suite logique du Cookbook est le chapitre <a href="base-apps.html"
pankso@66 783 >Base apps</a> fournissant toutes les instructions pour installer et
pankso@66 784 configurer les applications de base distribuée par SliTaz.
pankso@66 785 </p>
pankso@66 786
pankso@66 787
pankso@66 788 <!-- End of content -->
pankso@66 789 </div>
pankso@66 790
pankso@66 791 <!-- Footer. -->
pankso@66 792 <div id="footer">
pankso@66 793 <div class="footer-right"></div>
pankso@66 794 <a href="#top">Haut de la page</a> |
pankso@66 795 <a href="index.html">Table des matières</a>
pankso@66 796 </div>
pankso@66 797
pankso@66 798 <div id="copy">
pankso@66 799 Copyright © 2007 <a href="http://www.slitaz.org/">SliTaz</a> -
pankso@66 800 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
pankso@66 801 Documentation publiées sous
pankso@66 802 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
pankso@66 803 et codée en <a href="http://validator.w3.org/">xHTML 1.0 valide</a>.
pankso@66 804 </div>
pankso@66 805
pankso@66 806 </body>
pankso@66 807 </html>