website annotate doc/cookbook/base-system.html @ rev 4

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