<?xml version="1.0" encoding="utf-8"?>

<sect1 id="gettingready">

        <title>On se prépare pour SquashFS</title>

<sect2 id="acquiring">

<title>Acquisition de SquashFS</title>

<para>

Le site principal de SquashFS est basé à l'adresse <ulink 
url="http://squashfs.sourceforge.net/"/>&nbsp;; il contient les 
informations pour les dernières versions et la liste des changements 
apportés, ainsi que les informations générales sur SquashFS. On peut 
obtenir la dernière version de SquashFS en allant sur la <ulink 
url="http://sourceforge.net/project/showfiles.php?group_id=63835">page</ulink> 
du projet SquashFS de SourceForge.

</para>

</sect2>

<sect2 id="preparing">

        <title>Préparation d’un noyau compatible SquashFS</title>

<para>

Pour pouvoir l’utiliser, SquashFS doit être supporté dans votre noyau, 
exactement comme s’il s’agissait d’un système de fichiers 
<filename>reiserfs</filename> ou <filename>ext3</filename> . Il faut 
s'assurer qu'il existe un correctif approprié pour la version de votre 
noyau&nbsp;; il devrait être dans le sous-répertoire 
<filename>linux-2.x.y</filename> de l'arborescence de SquashFS. En 
outre, rappelez vous que dans la plupart des cas vous aurez besoin d'un 
noyau source Linux <emphasis>propre</emphasis> (original) récupérer sur 
<ulink url="http://kernel.org/">kernel.org</ulink>. Si votre noyau 
source vient d’un revendeur de distribution, il aura peut-être été 
pré-corrigé par le revendeur, et l’application du correctif de SquashFS 
ne donnera très certainement aucun résultat, car les correctifs SquashFS 
sont faits par rapport aux noyaux Linux <emphasis>d’origine</emphasis>

</para>

<sect3 id="patching">

        <title>Application du correctif sur la source du noyau</title>

<para>

Avec la source du noyau et le correctif SquashFS qui convient, il n’y a qu’à 
faire ceci (on suppose que la source de votre noyau est dans 
<filename>/usr/src/linux</filename> et que la source de SquashFS est 
dans <filename>/usr/src/squashfs</filename>)&nbsp;:

</para>

<para>

Passer dans le répertoire source de SquashFS et copiez le correctif du noyau 
(on supposera qu'il se nomme <filename>squashfs-patch</filename>) vers 
<filename>/usr/src/linux</filename>.

</para>

<programlisting>
bash# cd /usr/src/squashfs
bash# cp linux-2.x.y/squashfs-patch /usr/src/linux
</programlisting>

<para>

Allez dans le répertoire source du noyau Linux 
<filename>/usr/src/linux</filename>&nbsp;:

</para>

<programlisting>
bash# cd /usr/src/linux
</programlisting>

<note><para>

Il faut se rappeler qu'on ne quittera pas ce répertoire à aucun moment 
au cours des procédures prochaines liées au noyau, et que tous les 
chemins seront donnés par rapport au chemin 
<filename>/usr/src/linux</filename>.

</para></note>

<para>

Maintenant appliquez le correctif de SquashFS sur la source&nbsp;:

</para>

<programlisting>
bash# patch -p1 &lt; squashfs-patch
</programlisting>

</sect3>

<sect3 id="noyaux-2.6.x">

        <title>Compilation d’un noyau 2.6.x</title>

<para>

Nettoyez et préparez la source du noyau&nbsp;:

</para>

<programlisting>
bash# make distclean
bash# make mrproper
</programlisting>

<para>

Configurez le noyau en utilisant votre méthode préférée 
(config/menuconfig/xconfig/gconfig)&nbsp;:

</para>

<programlisting>
bash# make menuconfig
</programlisting>

<orderedlist>

<listitem><para>

Dans la partie <quote><emphasis>File systems</emphasis></quote>, 
sous-partie <quote><emphasis>Miscellaneous file 
systems</emphasis></quote>, activez l'option <quote><emphasis>Squashed 
filesystem</emphasis></quote>, aussi bien comme module ou empaqueté 
dans le noyau. Il n'est nécessaire de compiler SquashFS à l'intérieur du 
noyau que si vous prévoyez d'utiliser un disque RAM initial compressé 
(<command>initrd</command>).

</para></listitem>

<listitem><para>

Si vous voulez utiliser un disque RAM initial compressé, activez le 
<quote><emphasis>Initial RAM disk support</emphasis></quote> dans la 
partie <quote><emphasis>Device drivers</emphasis></quote>, sous-partie 
<quote><emphasis>Block devices</emphasis></quote>.

</para></listitem>

<listitem><para>

Si vous voulez avoir, à l'avenir, la possibilité de monter le système de 
fichier compressé via un <emphasis>périphérique local</emphasis>, vous 
devrez activer le <quote><emphasis>Loopback device 
support</emphasis></quote> dans la partie <quote><emphasis>Device 
drivers</emphasis></quote>, dans la sous-partie<quote><emphasis>Block 
devices</emphasis></quote>.

</para></listitem>

</orderedlist>

<para>

Maintenant on peut compiler le noyau et les modules&nbsp;:

</para>

<programlisting>
bash# make
</programlisting>

</sect3>

<sect3 id="noyaux-2.4.x">

<title>Compilation d'un noyau 2.4.x</title>

<para>

Configuration du noyau&nbsp;:

</para>

<programlisting>
bash# make menuconfig
</programlisting>

<orderedlist>

<listitem><para>

Dans la partie <quote><emphasis>File systems</emphasis></quote>, activez 
l'option <quote><emphasis>Squashed filesystems</emphasis></quote>, aussi 
bien comme module ou empaqueté dans le noyau. Il n'est pas nécessaire de 
compiler SquashFS à l'intérieur du noyau que si vous prévoyez d'utiliser 
un disque RAM initial compressé (<command>initrd</command>).

</para></listitem>

<listitem><para>

Si vous voulez utiliser un disque RAM initial compressé, activez le 
<quote><emphasis>Initial RAM disk support</emphasis></quote> dans la 
partie <quote><emphasis>Block devices</emphasis></quote>.

</para></listitem>

<listitem><para>

Si vous voulez avoir, à l'avenir, la possibilité de monter le système de 
fichiers compressé via un <emphasis>périphérique local</emphasis>, vous 
devrez activer le <quote><emphasis>Loopback device 
support</emphasis></quote> dans la partie <quote><emphasis>Block 
devices</emphasis></quote>.

</para></listitem>

</orderedlist>

<para>

Maintenant on peut compiler le noyau et les modules&nbsp;:

</para>

<programlisting>
bash# make dep
bash# make bzImage
bash# make modules
</programlisting>

</sect3>

<sect3 id="installkernel">

<title>Installation et test du noyau</title>

<para>

C’est maintenant que l’on va installer le nouveau noyau qui est prêt 
pour SquashFS. Les instructions ci-dessous expliquent l'installation et 
le démarrage du noyau sur la machine hôte. Si on veut, on peut 
l'installer et le tester sur le système cible.

</para>

<para>

On suppose que le noyau était compilé pour une architecture x86, et que 
l'image du noyau compressé est situé dans le sous-répertoire 
<filename>arch/i386/boot/</filename> de l'arborescence du noyau. 
Maintenant copiez le noyau dans le répertoire <filename>/boot</filename> 
(et appelez-le <filename>bzImage-sqsh</filename> par commodité si vous 
voulez)&nbsp;:

</para>

<programlisting>
bash# cp arch/i386/boot/bzImage /boot/bzImage-sqsh
</programlisting>

<para>

N'oubliez pas d'installer les modules du noyau si vous en avez&nbsp;:

</para>

<programlisting>
bash# make modules_install
</programlisting>

<para>

Modifiez la configuration de votre chargeur de démarrage pour inclure 
votre nouveau noyau et installez (mettez à jour) le chargeur de 
démarrage. Maintenant vous pouvez redémarrer avec votre nouveau noyau. 
Quand la machine redémarre, vérifiez que tout va bien&nbsp;:

</para>

<programlisting>
bash# cat /proc/filesystems
</programlisting>

<para>

Ou, si vous avez construit votre support de SquashFS un module du 
noyau&nbsp;:

</para>

<programlisting>
bash# insmod squashfs
bash# cat /proc/filesystems
</programlisting>

<para>

Si vous voyez la ligne <computeroutput>squashfs</computeroutput> à l'intérieur d'autres systèmes de fichiers, cela signifie que vous avez correctement activé SquashFS dans votre noyau.

</para>

</sect3>

</sect2>

<sect2 id="mksquashfs">

<title>Compilation de l'outil <command>mksquashfs</command></title>

<para>

Maintenant il faut compiler <command>mksquashfs</command>, l'outil pour 
créer des systèmes de fichiers compressés.

</para>

<programlisting>
bash# cd /usr/src/squashfs/squashfs-tools
</programlisting>

<para>

Compilez et installez <command>mksquashfs</command>&nbsp;:

</para>

<programlisting>
bash# make
bash# cp mksquashfs /usr/sbin
</programlisting>

<para>

Si tout s’est bien passé, en tapant <command>mksquashfs</command> dans 
un interpréteur de commandes vous devriez avoir le message 
sur<quote>l'utilisation</quote>.

</para>

</sect2>

</sect1>