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

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