

\documentclass[a4paper, 12pt]{article}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage{fullpage}
\usepackage{verbatim}
\usepackage{eurosym}
\usepackage[ps2pdf=true, colorlinks=true, urlcolor=blue,
bookmarks=true, pdftitle={Howto Acer TravelMate4001 LMi},
pdfauthor={François Valenduc}]{hyperref}
\usepackage{html}
\newcommand{\command}[1]{\\\indent{\tt\$ #1}\\}
\newcommand{\commandroot}[1]{\\\indent{\tt\# #1}\\}
\newcommand{\commandnospace}[1]{\\\indent{\tt\$ #1}}
\newcommand{\commandrootnospace}[1]{\\\indent{\tt\# #1}}
\begin{document}
\title{Acer TravelMate 4001 LMi}
\author{François Valenduc\\Francois.Valenduc@skynet.be}
\date{\today}
\maketitle{}
\tableofcontents{}
\newpage
\begin{quote}
    Copyright \copyright  2004 François Valenduc.
    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.2
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    A copy of the license is included in the section entitled "GNU
    Free Documentation License".
\end{quote}

\newpage
\setcounter{section}{-1}

\section{Introduction}
Ce HowTo a pour but de documenter l'installation de GNU/Linux sur le portable ACER TravelMate 4001Lmi. La plupart du matériel présent sur ce pc peux être utilisé relativement facilement sous GNU/Linux. Comme j'utilise \textit{Debian}, je donnerai quelquefois des conseils se rapportant exclusivement à cette distribution. Néanmoins, je fournirai toujours des indications générales qui devraient pouvoir convenir pour n'importe quelle distribution linux. 

Par ailleurs, je suis loin d'être un expert de Linux. Il est donc possible que je commette quelques erreurs. Je vous remercie par avance de me les signaler. Enfin, si vous avez réussi à faire fonctionner quelque chose dont je ne suis pas venu à bout, faites le moi savoir. Je corrigerai le howto et cela profitera ainsi à tout le monde.

\section{Organisation du document}
Les sections suivantes vont chacune traiter d'un aspect matériel particulier. Sur le \htmladdnormallink{site web}{http://tm4001lmi.tuxfamily.org/download.html} du howto, vous trouverez différents fichiers sur lesquels vous pouvez vous baser pour configurer votre installation.
Les lignes commençant par {\tt\$} sont des commandes que vous pouvez exécuter en mode utilisateur. Celles commençant par {\tt\#} doivent être exécutées en tant que \textit{root}. Dans la suite de ce document, vous trouverez des indications concernant la configuration du noyau. La dernière version disponible est la version 2.6.22.2. Je vous conseille donc de l'utiliser. Pour la liste des nouveautés, voyez l'annonce de \htmladdnormallink{LinuxFR}{http://linuxfr.org/2007/07/09/22676.html}

Si vous ne savez pas comment compiler un noyau, vous pouvez lire l'article disponible sur le site \htmladdnormallink{Léa}{http://lea-linux.org/cached/index/Kernel-kernel26.html}. Si vous êtes perdus dans la configuration du noyau, vous pouvez utiliser mon \htmladdnormallink{fichier de configuration}{http://tm4001lmi.tuxfamily.org/fichiers/config-2.6.22} disponible dans la section téléchargement. Lorsque je décris les options de configuration du noyau, \textit{*} signifie que l'option doit être compilée dans le noyau, \textit{M} indique que l'option peut être compilée en module ou dans le noyau (mais de préférence en module). Enfin, si vous utilisez \textit{Debian}, vous pouvez utiliser les paquets disponibles dans la section \htmladdnormallink{téléchargement}{http://tm4001lmi.tuxfamily.org/download.html} du site web du howto. 

\section{Clavier}
Le clavier ne pose aucune difficulté. Pour utiliser les touches de fonctions ou les touches \euro{}  et \$ situées à côté des flèches ou les touches de fonctions, il faut définir leurs \textit{keycodes} avec la commande \textit{setkeycode}. Vous pouvez créer le script suivant et faire en sorte qu'il soit exécuté au démarrage.
\verbatiminput{/home/francois/scripts/acerkeys}
Pour que ce script soit exécuté lors du démarrage, enregistrez dans le dossier \textit{/etc/init.d}. Avec \textit{Debian}, vous pouvez effectuez la commande suivante pout que ce script soit executé au démarrage:
\commandroot{update-rc.d acerkeys start 99 2 3 4 5 .}
Pour utiliser les touches de fonctions, vous pouvez utiliser le programme \htmladdnormallink{hotkeys}{http://freshmeat.net/projects/hotkeys/}. Vous devez créer un fichier de configuration à placer dans le dossier \textit{/usr/share/hotkeys}. Un exemple de \htmladdnormallink{fichier}{http://tm4001lmi.tuxfamily.org/fichiers/hotkeys.conf} se trouve sur mon site. Il peut également être nécessaire de modifier les commandes \textit{WebBrowser} et \textit{Email} dans le fichier \textit{/etc/hotkeys.conf}. Dans ce même fichier, vous devez modifier la ligne commançant par \textit{Kbd} en ajoutant le nom de fichier de configuration du clavier (il s'agit du nom du fichier sans l'extension \textit{.def}). J'ai placé un tel \htmladdnormallink{fichier}{http://tm4001lmi.tuxfamily.org/fichiers/acertm4001.def} dans la section téléchargement. Adaptez-le éventuellement à vos besoins et à la configuration de votre clavier (utilisez \textit{xev} pour obtenir les keycodes dans X). Ensuite, lancez le programme avec la commande 
\command{hotkeys \&}

\section{Touchpad}
Le Touchpad fonctionne grâce au pilote \htmladdnormallink{synaptics}{http://w1.894.telia.com/~u89404340/touchpad/index.html}. Celui-ci permet d'utiliser le \textit{scrolling} vertical et horizontal. Si vous utilisez \textit{Debian etch} ou \textit{Debian sid}, vous pouvez utiliser le package fourni. Celui-ci s'installe avec la commande suivante:
\commandroot{aptitude install  xserver-xorg-input-synaptics}
Pour pouvoir utiliser ce pilote, il faut compiler en module les options suivantes du noyau:
\begin{itemize}
\item Device driver $\Rightarrow$ Input device support
\item Mouse interface
\item Provide legacy /dev/psaux device (*)
\item Event interface (M)
\item Mouse (*) $\Rightarrow$ PS/2 Mouse (M) 
\end{itemize}

Modifiez ensuite votre fichier \textit{/etc/X11/xorg.conf} comme ceci :
\begin{verbatim}
Section "Module"
...
    Load "synaptics"
...
EndSection
...
Section "InputDevice"
  Driver        "synaptics"
  Identifier    "TouchPad"
  Option        "Device"        "/dev/psaux"
  Option        "Protocol"      "auto-dev"
  Option        "LeftEdge"      "1450"
  Option        "RightEdge"     "4300"
  Option        "TopEdge"       "1700"
  Option        "BottomEdge"    "4200"
  Option        "FingerLow"     "25"
  Option        "FingerHigh"    "30"
  Option        "MaxTapTime"    "180"
  Option        "MaxTapMove"    "220"
  Option        "VertScrollDelta" "100"
  Option        "MinSpeed"      "0.02"
  Option        "MaxSpeed"      "0.18"
  Option        "AccelFactor" "0.0010"
  Option        "SHMConfig"     "on"
EndSection
...
Section "ServerLayout"
...
    InputDevice "TouchPad" "CorePointer"
...
EndSection
\end{verbatim}
Redémarrez alors \textit{Xorg} et votre touchpad devrait fonctionner. Après une première installation du serveur X, il devrait y avoir une ligne faisant référence au touchpad dans la section \textit{ServerLayout} à la section \textit{InputDevice}. Vous devez la supprimer et la remplacer par celle indiquée ci-dessus. De plus,vous devez charger les modules \textit{evdev} et \textit{psmouse} avant de démarrer \textit{Xorg} (ceux-ci sont normalement automatiquement chargés par \textit{hotplug} ou \textit{udev}).

\section{Carte graphique}
La carte graphique fonctionne soit avec avec un pilote propriétaire fourni par  \htmladdnormallink{ATI}{http://www.ati.com/} soit avec un pilote sous licence GPL (\textit{r300}). Le pilote \textit{ATI} permet d'utiliser la sortie vidéo \textit{S-VHS} mais est incompatible avec les extensions \textit{AIGLX} et \textit{composite} de \textit{Xorg}. Il est donc impossible d'utiliser des gestionnaires de fenêtres tels que \htmladdnormallink{Beryl}{http://www.beryl-project.org/} ou \htmladdnormallink{Compiz}{http://wiki.compiz-fr.org/} avec ce pilote.

Quelque soit le pilote que vous choisissez, il est nécessaire de sélectionner les options suivantes dans la configuration du noyau:
\begin{itemize}
\item Device Drivers $\rightarrow$ Character devices
\item $\rightarrow$ /dev/agpgart AGP Support (M)
\item $\rightarrow$ Intel 440LX/BX/GX, I8xx and E7x05 chipset support (M)
\end{itemize}

\subsection{Utilisation du pilote Radeon}
Pour utiliser ce pilote, les options suivantes doivent être sélectionnées dans la configuration du noyau:
\begin{itemize}
\item Device Drivers $\rightarrow$ Character devices
\item $\rightarrow$ Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) (M)
\item $\rightarrow$ ATI Radeon (M)
\end{itemize}
Vous devez également installer le pilote \textit{r300}. Dans \textit{Debian}, ce dernier est contenu dans le paquet \textit{libgl1-mesa-dri}. Vous devez également modifier le fichier \textit{/etc/X11/xorg.conf} en y ajoutant les lignes suivantes:
\begin{verbatim}
Section "Device"
        Identifier  "ATI radeon"
        Driver      "radeon"
        Option      "AGPMode" "4"
        Option      "RenderAccel" "on"
        Option      "AddARGBGLXVisuals" "true"
        Option      "DepthBits" "24"
        Option      "AccelMethod" "XAA"
        Option      "backingstore" "true"

        # This two lines are needed to prevent fonts from being scrambled
        Option      "XaaNoScanlineImageWriteRect"
        Option      "XaaNoScanlineCPUToScreenColorExpandFill"
         # Misc
        BusID       "PCI:1:0:0"
EndSection
\end{verbatim}
Si vous souhaitez activer le mode \textit{composite} (nécessaire pour utiliser \htmladdnormallink{Beryl}{http://www.beryl-project.org/}), ajoutez les lignes suivantes à la fin du fichier \textit{xorg.conf}:
\begin{verbatim}
Section "ServerFlags"
        Option     "AIGLX" "true"
EndSection

Section "Extensions"
  Option "Composite" "Enable"
EndSection
\end{verbatim}
Vouz pouvez obtenir de plus amples informations concernant l'installation de \textit{Beryl} dans \textit{Debian} sur le site web du projet \htmladdnormallink{Beryl}{http://wiki.beryl-project.org/wiki/Install/Debian}.

\subsection{Utilisation du pilote ATI}
La version actuelle du pilote \textit{ATI} est la version 8.39.4. Cette dernière semble toutefois problématique. J'ai notamment constaté que l'écran devient noir et inutilisable dés que l'on bascule dans une console texte. Je vous conseille donc d'utiliser l'avant dernière version (8.38.6) disponible sur le site d'\htmladdnormallink{ATI}{http://ati.amd.com/support/drivers/linux/radeonprevious-linux.html}.
Pour l'installez, téléchargez le fichier d'installation et effectuez ensuite les opérations suivantes (dans une console texte):
\commandnospace{chmod +x .../ati-driver-installer-8.38.6-x86.x86\_64.run}
\commandroot{.../ati-driver-installer-8.38.6-x86.x86\_64.run}

Si vous utilsez \textit{Debian}, je vous conseille d'installer le pilote au moyen de packages crées par le fichier d'installation \textit{ATI}. L'utilisation de ces paquets est décrite dans l'annexe. Enfin, vous devez configurer \textit{xorg} pour qu'il utilise le pilote \textit{fglrx} en exécutant la commande suivante: 
\commandroot{aticonfig --initial -o /etc/X11/xorg.conf}
La section relative à la configuration du pilote \textit{fglrx} devrait ressembler à ceci:
\begin{verbatim}
Section "Device"
        Identifier  "aticonfig-Device[0]"
        Driver      "fglrx"
        #Une des deux options suivantes doit être choisie:
        Option      "VideoOverlay" "on"
        Option      "OpenGLOverlay" "on"
EndSection
\end{verbatim}
Vous ne pouvez pas activer simultanément les options \textit{VideoOverlay} et \textit{OpenGLOverlay}. Le choix d'une de ces deux options détermine le pilote à utiliser pour les programmes de lecture vidéo (\textit{mplayer} ou \textit{xine} par exemple).

Vous trouverez dans la section téléchargement du site un exemple de fichier de configuration \textit{xorg.conf}. Normalement, tout est à présent correctement configuré et il ne reste plus qu'à démarrer le serveur X avec la commande suivante :
\command{startx}
Vous pouvez vérifier que l'accélération matérielle fonctionne correctement avec les commandes suivantes:
\command{glxinfo | grep OpenGL} et \command{glxinfo | grep rendering}
Ceci doit produire les résultats suivants:
\begin{verbatim}
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: MOBILITY RADEON 9700 Generic
OpenGL version string: 2.0.5814 (8.38.6)
OpenGL extensions:
\end{verbatim}
\begin{verbatim}
direct rendering: Yes
\end{verbatim}

\section{Ecran, sortie VGA, sortie TV}
L'écran ne vous posera aucun problème. Voici la partie de mon fichier \textit{xorg.conf} concernant l'écran:
\begin{verbatim}
Section "Monitor"
    Identifier  "Monitor0"
    HorizSync   31.5 - 37.9
    VertRefresh 50 - 70
    Option "DPMS"
End Section
...
Section "Screen"
    Identifier  "Screen0"
    Device      "aticonfig-Device[0]"

    Monitor     "Monitor0"
    DefaultDepth 24	#16 bit is not supported
    #Option "backingstore"

    Subsection "Display"
        Depth       24
        Modes       "1024x768" "800x600" "640x480"	#1024x768 is the default
        ViewPort    0 0  # initial origin if mode is smaller than desktop
        #Virtual     1280 1024	#Don't enable this. Clone doesn't support scrolling and panning
    EndSubsection
EndSection
\end{verbatim}
Dans la section \textit{Screen}, vous devez modifier la ligne commençant par \textit{Device} en fonction du pilote graphique que vous utilisez. Cette ligne doit faire référence à l'identifiant de la section \textit{Device} concernant le pilote de la carte graphique dans le fichier \textit{xorg.conf} (voir section précédente).

Pour utiliser la sortie \textit{VGA}, vous devez ajouter une section \textit{Monitor} similaire à celle renseignée ci-dessus ayant un autre identifiant et en adaptant éventuellement les vitesses de rafraîchissement. Ceci vous permettra d'utiliser \textit{xorg} en mode \textit{clone} (la même chose sera affichée sur les deux écrans). Pour ce faire, vérifier que dans la section \textit{Device}, l'option \textit{DesktopSetup} à bien la valeur \textit{clone}.

Si vous utilisez le pilote \textit{fglrx}, vous pouvez utiliser la sortie vidéo \textit{S-VHS}. Pour ce faire, vous devez modifier la section \textit{Device} consacrée à la carte \textit{ATI} comme ceci.
\begin{verbatim}
# === TV-out Management ===
	Option	    "TVFormat" "PAL-B"
	Option	    "TVStandard" "VIDEO"
\end{verbatim}
Les réglages mentionnés ci-dessus dépendent de votre téléviseur et du signal TV (PAL, SECAM, ...). Vous pouvez obtenir plus de détails sur les options possibles en exécutant la commande
\command{aticonfig}
Malheureusement, il est possible que l'image ne soit qu'en noir et blanc si vous utilisez un câble \textit{S-VHS} $\rightarrow$ \textit{PERITEL}. Un bricolage expliqué sur le site \htmladdnormallink{Trucs et astuces Express}{http://www.trucsastuces.com/Forums/topic-2544.html} permettrait de résoudre le problème.

\section{Framebuffer et fbsplash}
Il est possible d'utiliser le \textit{Framebuffer} de la carte graphique avec le pilote \textit{vesafb-tng} créé par \htmladdnormallink{Michał Januszewski}{http://dev.gentoo.org/~spock/projects/vesafb-tng/}. Les versions actuelles de ce pilote et de \textit{fbsplash} sont disponibles dans les patches \htmladdnormallink{genpatches}{http://dev.gentoo.org/~dsd/genpatches/} Pour les utiliser, téléchargez le \htmladdnormallink{patch}{http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.22/4205_vesafb-tng-1.0-rc2.patch} nécessaire et appliquez le comme ceci:
\commandnospace{cd /usr/src/<répertoire contenant les sources du noyau>}
\command{patch -p1 <.../4205\_vesafb-tng-1.0-rc2.patch}
Ce pilote permet d'utiliser \textit{fbsplash}, ce qui permet d'avoir une image en fond d'écran et une barre de progression lors du démarrage. 
Si vous voulez utiliser \textit{fbsplash}, récupérez un autre \htmladdnormallink{patch}{http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.22/4200_fbsplash-0.9.2-r5.patch} et appliquez le comme ceci:
\command{patch -p1 <.../4200\_fbsplash-0.9.2-r5.patch}
Voici les options du noyau à sélectionner:
\begin{itemize}
\item Device Drivers $\rightarrow$ graphics support (*)
\item $\rightarrow$ Support for framebuffer devices (*)
\item $\rightarrow$ VESA VGA graphics support (*) $\rightarrow$ VESA driver type: vesafb-tng
\item $\rightarrow$ Console display driver support
\item $\rightarrow$ Framebuffer Console support (*)
\item $\rightarrow$ Support for the framebuffer splash (*)
\end{itemize}
\emph{Il semble que le pilote radeonfb ne permette pas d'utiliser le fbsplash}. Pour activer le \textit{framebuffer}, il faut ajouter un paramètre \textit{video=vesafb:ywrap,mtrr,1024x768-32@70} au démarrage du noyau. Pour utiliser \textit{fbsplash}, vous devez créer une image \textit{initrd} contenant le thème graphique que vous aurez choisi. Vous devez pour celà utiliser l'utilitaire \htmladdnormallink{splashutils}{http://dev.gentoo.org/~spock/projects/gensplash}. 

 L'intégration de \textit{fbsplash} dans \textit{Debian} est décrite sur cette \htmladdnormallink{page}{http://jeandamiendurand.free.fr/debian/splashutils/}. Vous devez installer le paquet \textit{splashutils} après avoir ajouté une source de paquets à votre fichier \textit{/etc/apt/sources.list}. Pour ce faire, ajoutez cette ligne à ce fichier:
\begin{verbatim}
deb http://jeandamiendurand.free.fr/debian/splashutils sid contrib
\end{verbatim}
Dans \textit{Gentoo}, la modification des scripts de démarrage et l'installation de tous les outils nécessaires à \textit{fbsplash} se fait en installant le package \textit{splashutils}. Je ne sait pas ce qu'il en est pour les autres distributions linux. La procédure décrivant l'installation d'un thème pour \textit{fbsplash} est décrite sur le \htmladdnormallink{wiki gentoo}{http://fr.gentoo-wiki.com/HOWTO_fbsplash}.

\section{Carte son}
La carte son fonctionne avec le pilote \htmladdnormallink{ALSA}{http://www.alsa-project.org} \textit{intel8x0}. Voici les options du noyau à sélectionner:
\begin{itemize}
\item  Device Drivers $\rightarrow$ Sound support (M)
\item  Advanced Linux Sound Architecture $\rightarrow$ PCI Device $\rightarrow$ 
\item Advanced Linux Sound Architecture (M)
\item Sequencer support (M)
\item Sequencer dummy client (M)
\item OSS Mixer API (*)
\item OSS PCM (digital audio) API (M)
\item OSS Sequencer API (M)
\item RTC Timer support (M) 
\item PCI Devices$\rightarrow$ Intel/SiS/nVidia/AMD/ALi AC97 Controller (M)
\end{itemize}
Ensuite, il faut créer un fichier de configuration des modules à placer dans le dossier \textit{/etc/modutils} et contenant les lignes suivantes:
\begin{verbatim}
# ALSA portion
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-0 snd-intel8x0
# OSS/Free portion - card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss
# Set this to the correct number of cards.
options snd cards_limit=1
\end{verbatim} 
Pour pouvoir écouter plus d'un son en même temps, il faut utiliser le plugin \textit{dmix} et créer un fichier \textit{/etc/asoundrc.conf}:
\verbatiminput{/home/francois/config/asoundrc.conf}
Pour pouvoir réellement bénéficier de cette possibilité, il faut parfois reconfigurer les applications en veillant à ce qu'elles utilisent effectivement \textit{ALSA} comme sortie audio.

\section{ACPI}
Cet ordinateur utilise une batterie de type \textit{smart battery} qui n'est pas prise en charge par les pilotes \textit{ACPI} standards.  On peut néanmoins obtenir le niveau de chargement de la batterie et d'autres informations en utilisant un pilote ayant un statut expérimental. Ceci nécessite également la compilation du support \textit{I2C}. Par ailleurs, pour pouvoir utiliser l'\textit{ACPI} plus facilement, il faut aussi installer le paquet \textit{acpid}. 

Voici donc les options du noyau à activer pour pouvoir utiliser l'ACPI:
\begin{itemize}
\item Device drivers $\rightarrow$ I2C support 
\item $\rightarrow$ I2C support (*)
\item  $\rightarrow$ I2C device interface (M) 
\item Power management options (ACPI, APM)
\item $\rightarrow$ ACPI (Advanced Configuration and Power Interface) Support) 
\item $\rightarrow$ ACPI Support (*)
\item $\rightarrow$ AC Adapter (M)
\item $\rightarrow$ Battery (M)
\item $\rightarrow$ Button (M)
\item $\rightarrow$ Fan (M)
\item $\rightarrow$ Processor (M)
\item $\rightarrow$ Thermal Zone (M)
\item $\rightarrow$ Smart Battery System (EXPERIMENTAL) (M)
\item $\rightarrow$ Disable ACPI for systems before Jan 1st this year (0)
\end{itemize}

\subsection{Frequency scaling}
Cet ordinateur utilisant un processeur \textit{Intel Centrino \copyright} pourvu de la technologie \textit{Speedstep \copyright}, il est possible de modifier en temps réel la vitesse de fonctionnement du processeur à des fins d'économie d'énergie. Voici les options du noyau à sélectionner pour pouvoir utiliser cette technologie:
\begin{itemize}
\item Power management options (ACPI, APM) $\rightarrow$ CPU Frequency scaling
\item CPU Frequency scaling $\rightarrow$ CPU Frequency scaling (*)
\item $\rightarrow$ Default CPUFreq governor (userspace)
\item $\rightarrow$ 'performance' governor' (M)
\item $\rightarrow$ 'ondemand' cpufreq policy governor (M)
\item $\rightarrow$ CPU frequency table helpers (M)
\item $\rightarrow$ ACPI Processor P-States driver (M)
\end{itemize}
Une fois votre noyau recompilé, vous devez charger les modules \textit{cpufreq\_performance}, \textit{cpufreq\_ondemand} et \textit{acpi-cpufreq}. Vous pouvez ajouter ces modules au fichier \textit{/etc/modules} pour qu'ils soient automatiquement chargés au démarrage.
  
Les fichiers relatifs au \textit{frequency scaling} se trouvent dans le dossier \\ 
\textit{/sys/devices/system/cpu/cpu0/cpufreq}.
La commande \commandnospace{cat /sys/devices/system/cpu/cpu0/cpufreq/scaling\_cur\_freq} affiche la fréquence à laquelle le processeur fonctionne. 
La commande \commandnospace{cat /sys/devices/system/cpu/cpu0/cpufreq/scaling\_available\_frequencies} permet d'afficher toutes les fréquences supportées.
Enfin, la commande e
\commandrootnospace{echo -n X >> /sys/devices/system/cpu/cpu0/cpufreq/scaling\_setspeed}  règle la vitesse du processeur à  X MHz. L'utilitaire \textit{cpudyn} permet de régler la fréquence automatiquement en fonction de l'utilisation du processeur.

\section{Graveur}
Le graveur fonctionne parfaitement. Pour l'utiliser, il faut installer les paquets \textit{wodim}, \textit{genisoimage}, \textit{dvd+rw-tools} et éventuellement \textit{cdrdao}. 

Il est également possible d'utiliser l'écriture par paquet sur des DVD ou CD réinscriptibles. Celà permet d'utiliser ces médias comme des disquettes. Vous pouvez vous référer au guide de \htmladdnormallink{Léa}{http://lea-linux.org/cached/index/Hardware-hard_plus-packet-writing.html} qui explique la procédure en détails. Il faut sélectionner les options suivantes dans la configuration du noyau:
\begin{itemize}
\item Device drivers $\rightarrow$ Block devices
\item $\rightarrow$ Packet writing on CD/DVD media (M)
\item File systems $\rightarrow$ CD-ROM/DVD Filesystems
\item $\rightarrow$ UDF file system support (M)
\end{itemize}

Après celà, il faut installer le paquet \textit{udftools}. Dans \textit{Debian}, vous pouvez modifier le fichier \textit{/etc/default/udftools} comme ceci:
\begin{verbatim}
DEVICES="/dev/hdc"
\end{verbatim}

\section{Carte réseau}
La carte réseau fonctionne grâce au pilote \textit{Broadcom 4400 Ethernet Support}. Les options du noyau à sélectionner sont les suivantes:
\begin{itemize}
\item Device Drivers $\rightarrow$ Network device support 
\item Ethernet (10 or 100Mbit) $\rightarrow$ Ethernet (10 or 100 Mbit) (*)
\item $\rightarrow$ Generic Media Independent Interface device support (M)
\item $\rightarrow$ EISA, VLB, PCI and on board controllers (*)
\item $\rightarrow$ Broadcom 4400 ethernet support (M)
\end{itemize}

\section{Carte WIFI}
La carte Wifi (modèle \textit{Intel PRO/Wireless 2200BG}) fonctionne avec le pilote \textit{ipw2200}. Au préalable, il est nécessaire d'activer les options suivantes du noyau:
\begin{itemize}
\item Device drivers 
\item $\rightarrow$ Generic Drivers Options $\rightarrow$ Hotplug firmware loading support (M)
\item Networking 
\item $\rightarrow$ Networking options $\rightarrow$ Packet Socket (*)
\item $\rightarrow$ Generic IEEE 802.11 Networking Stack (M)
\item $\rightarrow$ IEEE 802.11 WEP encryption (802.1x) (M)
\item $\rightarrow$ IEEE 802.11i CCMP support (M)
\item $\rightarrow$ IEEE 802.11i TKIP encryption (M)
\item Cryptographic options 
\item $\rightarrow$ ARC4 cipher algorithm (M)
\item $\rightarrow$ Michael MIC (M)
\item $\rightarrow$ AES (M)
\end{itemize}
Les deux dernières options sont nécessaires si vous utilisez l'encryption \textit{WPA}. L'option \textit{ARC4 cipher algorithm} est nécessaire pour l'encryption \textit{WEP}.

Le pilote \textit{ipw2200} est disponible sur le site \htmladdnormallink{sourceforge}{http://ipw2200.sourceforge.net}. La version 1.2.0 a été intégrée au noyau 2.6.22. Pour utiliser ce pilote, choisissez les options suivantes dans la configuration du noyau:
\begin{itemize}
\item Device Drivers $\rightarrow$ Network device support $\rightarrow$  Wireless LAN (non-hamradio)
\item $\rightarrow$ Wireless LAN drivers (non-hamradio) and Wireless Extensions (*)
\item $\rightarrow$ Intel PRO/Wireless 2200BeG and 2915ABG Network Connection (M)
\end{itemize}

Il faut également télécharger le firmware sur le site du  \htmladdnormallink{projet sourceforge}{http://ipw2200.sourceforge.net/firmware.php}. Veillez à choisir la version la plus récente adaptée à la version du pilote que vous utilisez. Décompressez le et placez les fichiers ainsi obtenus dans le répertoire \textit{/usr/lib/hotplug/firmware}.

La version de développement la plus à jour est la 1.2.2. Si vous souhaitez utiliser cette version, téléchargez les sources  sur  \htmladdnormallink{sourceforge}{http://ipw2200.sourceforge.net}. Vous devrez aussi vous procurer les \htmladdnormallink{pilotes}{http://ieee80211.sourceforge.net} \textit{ieee802011} (version 1.2.18). Effectuez ensuite les opérations suivantes pour intégrer cette version du pilote aux sources du noyau:
\commandnospace{cd /usr/src}
\commandnospace{tar zxvf .../ieee80211-1.2.18.tgz}
\commandnospace{tar zxvf .../ipw2200-1.2.2.tgz}
\commandnospace{cd /usr/src/ieee80211-1.2.18}
\commandnospace{make patch\_kernel}
\commandnospace{cd /usr/src/ipw2200-1.2.2}
\command{make patch\_kernel}
Configurez ensuite le noyau comme expliqué ci-dessus.

Pour pouvoir utiliser une carte \textit{wifi}, il faut installer le paquet \textit{wireless-tools}. Ensuite, il faut régler les paramètres de votre réseau sans fil à l'aide de la commande 
\commandroot{iwconfig eth1 essid <Votre ESSID>}

Il y a moyen de faire fonctionner la diode indicant l'activité de la carte wifi en passant le paramètre \textit{led=1} lors du chargement du pilote \textit{ipw2200}. Pour ce faire, créez un fichier nommé \textit{ipw2200} dans le répertoire \textit{/etc/modutils} contenant la ligne suivante:
\begin{verbatim}
options ipw2200 led=1
\end{verbatim}
Si vous constatez des ralentissements de la connexion, vous pouvez modifiez ce fichier comme ceci:
\begin{verbatim}
options ipw2200 ... hwcrypto=0
\end{verbatim}

Si vous utilisez l'encryption \textit{WPA}, vous devez installer la version 0.48 ou supérieure de \htmladdnormallink{wpasupplicant}{http://hostap.epitest.fi/wpa_supplicant/}. Une version adéquate est disponible dans \textit{Debian sid} ou \textit{Debian etch}.
Il suffit alors d' installer le paquet \textit{wpasupplicant}. \textit{Mandrivia 2007} ou \textit{Gentoo} fournissent également une version appropriée de \textit{wpasupplicant}. 

Il faut ensuite créer un fichier \textit{etc/wpa\_supplicant.conf}. Vous trouverez des renseignements utiles à cette \htmladdnormallink{adresse}{http://www.gentoo.org/doc/fr/handbook/handbook-x86.xml?part=4&chap=4}. Si vous utilisez \textit{WPA-PSK}, le contenu de ce fichier devrait ressembler à ceci:
\begin{verbatim}
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1

network={
    ssid=<votre ESSID>
    proto=WPA
    key_mgmt=WPA-PSK
    pairwise=TKIP
    group=CCMP TKIP WEP104 WEP40
    psk=<votre phrase secrète>
    priority=2
}
\end{verbatim}
Dans \textit{Debian}, vous devez configurer votre connexion em modifiant le fichier \textit{/etc/network/interfaces}. Ce fichier devrait contenir les lignes suivantes:
\begin{verbatim}
auto eth1
iface eth1 inet manual
        wpa-driver wext
        wpa-roam /etc/wpa_supplicant.conf

iface default inet dhcp
\end{verbatim}
Si vous n'utilisez pas \textit{DHCP}, vous devez spécifier l'adresse IP, le masque de sous-réseau et la passerelle et remplacer \textit{dhcp} par \textit{static}.

\section{Modem}
Il est possible de faire fonctionner le modem grâce au pilote \htmladdnormallink{Linuxant}{http://www.linuxant.com/drivers/hsf/full/downloads.php}.
Ceci est en fait une mauvaise nouvelle car ce pilote est payant. Néanmoins, il est possible d'utiliser une version gratuite mais la vitesse de connexion est alors limitée à 14,4 Kbps et on ne peut pas utiliser le modem pour faxer. Pour pouvoir utiliser ce pilote, il faut activer les options suivantes du noyau:
\begin{itemize}
\item Device drivers $\rightarrow$ Network device support
\item PPP (point-to point protocol) (M)
\item PPP filtering (*)
\item PPP support for async serial ports (M)
\item PPP deflate compression (M)
\item PPP BSD-Compress compression (M)
\end{itemize}
Ensuite, exécuter les commandes suivantes:  
\commandnospace{cd /usr/src/}
\commandnospace{tar zxvf <download directory>/hsfmodem-7.60.00.09full.tar.gz}
\commandnospace{cd hsfmodem-7.60.00.09full}
\commandrootnospace{make install}
\commandroot{hsfconfig}
Au moment où il est demandé d'entrer la clé de licence, appuyez sur ENTER si vous comptez utiliser le modem gratuitement ou entrez la clé que vous aurez obtenue.

Pour vous connectez à Internet, vous pouvez utiliser \textit{wvdial}, \textit{pppconfig} ou \textit{kppp}. Vérifiez que c'est
bien \textit{/dev/modem} qui est utilisé comme périphérique de connexion et réglez le temps d'attente maximum de \textit{pppd} à la valeur la plus élevée possible.

\section{Port IEEE 1394}
Le port IEEE 1394 fonctionne parfaitement. Il faut activer les options suivantes lors de la configuration du noyau:
\begin{itemize}
\item Device drivers $\rightarrow$ IEEE 1394 (FireWire) support 
\item $\rightarrow$ IEEE 1394 (FireWire) support (M).
\item $\rightarrow$ OHCI-1394 support (M).
\item Dans la section \textit{Protocol Drivers}, il faut également
  activer les options nécessaires pour le matériel que vous souhaitez
  utiliser.
\end{itemize}

\section{Ports USB}
Les ports USB fonctionnent en activant les options suivantes du noyau:
\begin{itemize}
\item Device drivers $\rightarrow$ USB support 
\item $\rightarrow$ Support for Host-side USB (M).
\item $\rightarrow$ USB device filesystem (*)
\item $\rightarrow$ EHCI HCD (USB 2.0) support (M)
\item $\rightarrow$ UHCI HCD (most Intel and VIA) support (M)
\end{itemize}
Ajoutez ensuite les pilotes spécifiques pour votre matériel si vous en trouvez. En principe, si vous installez les paquets \textit{libusb} et \textit{hotplug} ou \textit{udev}, il n'est pas nécessaire de modifier les fichiers de configuration des modules.

\section{Port PCMCIA}
Il est possible d'utiliser le port PCMCIA en activant les options suivantes dans le
noyau :
\begin{itemize}
\item Device drivers $\rightarrow$
\item Bus options (PCI, PCMCIA, EISA, MCA, ISA)  $\rightarrow$ PCMCIA/CardBus support $\rightarrow$
  PCMCIA/CardBus support
\item General setup $\rightarrow$ PCMCIA/CardBus support $\rightarrow$
\item $\rightarrow$ CardBus yenta-compatible bridge support (M)
\item $\rightarrow$ i82092 compatible bridge support (M)
\item $\rightarrow$ i82365 compatible bridge support (M)
\item $\rightarrow$ Databook TCIC host bridge support (M)
\end{itemize}

\section{Suspend2 (tuxonice)}
Le \textit{Software Suspend} permet de mettre l'ordinateur en veille et de l'arrêter en enregistrant dans la partition de swap ou dans un fichier l'état de la mémoire vive. Ainsi, lorsque l'on redémarre, on retrouve les programmes à l'état dans lequel on les a laissés avant la mise en veille. Il s'agit en quelque sorte d'un équivalent de la mise en veille prolongée de \textit{Windows}. Il existe une telle fonctionnalité intégrée aux pilotes \textit{ACPI} du noyau mais j'ai choisi ici d'expliquer le fonctionnement de \htmladdnormallink{Suspend 2}{http://www.tuxonice.net}. Ce projet a récémment changé de nom et s'appelle maintenant \textit{tuxonice}. Néanmoins, la version stable actuelle (2.2.10) s'appelle toujours \textit{Suspend2}. Afin de pouvoir l'utiliser, il faut récupérer la version \htmladdnormallink{2.2.10}{http://www.suspend2.net/downloads/all/suspend2-2.2.10-for-2.6.22.patch.bz2}. Ensuite, appliquez ce patch comme ceci:
\commandnospace{cd  /usr/src/<répertoire contenant les sources du noyau>}
\command{bunzip2 -c .../suspend2-2.2.10-for-2.6.22.bz2 | patch -p1}

Il faut ensuite configurer le noyau pour activer \textit{Suspend 2}. Pour cela, il faut cocher les options suivantes:
\begin{itemize}
\item General features
\item Power management options (ACPI, APM)
\item $\rightarrow$ ACPI (Advanced Configuration and Power Interface) Support $\rightarrow$ Sleep States (*)
\item $\rightarrow$ Device drivers $\rightarrow$ USB Support
\item $\rightarrow$ Suspend 2
\item $\rightarrow$ Compression support (*)
\item $\rightarrow$ Userspace User Interface support (*)
\item $\rightarrow$ Replace swsusp by default (*)
\item Une des deux options suivantes:
\item $\rightarrow$ File allocator
\item $\rightarrow$ Swap allocator
\item  Cryptographic options  $\rightarrow$ LZF compression (*)
\end{itemize}

Si vous avez choisi le \textit{swap writer}, il faut ajouter \textit{resume2=swap:/dev/hdax} comme paramètre du noyau dans votre chargeur de démarrage (où \textit{hdax} doit être remplacé par l'emplacement de la partition de swap). Il est conseillé de fixer une taille de swap supérieure de 30\% à celle de la mémoire vive.

L'option \textit{file writer} permet de stocker l'image dans un fichier. Si vous voulez l'utiliser, il faut tout d'abord créer le fichier nécessaire de cette manière:
\commandroot{echo Suspend2 ><votre swapfile>} (où \textit{<votre swapfile>} doit être remplacé par l'emplacement approprié.
\commandroot{dd if=/dev/zero > my\_padding bs=4096 count=x} où
x est la taille désirée et se calcule de cette manière 1024*1024*MB/4096 où MB est la taille désirée en mégabytes de votre fichier swap.
\commandrootnospace{cat my\_padding >> <votre swapfile>}
\commandrootnospace{rm -f my\_padding}
\commandrootnospace{sync}
\commandroot{echo <votre swapfile> >> /sys/power/suspend2/file/target}
Ensuite, notez le résultat de la commande \commandroot{cat /sys/power/suspend2/resume2} et ajoutez le comme paramètre de  démarrage du noyau. 

Dans les 2 cas, il est recommandé d'ajouter une entrée supplémentaire votre chargeur de démarrage avec le paramètre \textit{noresume2}. Ceci permet de démarrer le PC sans tenir compte de la mise en veille au cas où ça ne fonctionnerait pas.

Recompilez alors le noyau et installez-le dans le répertoire \textit{/boot}. Si le nouveau noyau ne pose pas de problèmes, on peut alors installer le script qui va déclencher la mise en veille. Il faut télécharger la version \htmladdnormallink{1.96}{http://www.suspend2.net/downloads/all/hibernate-script-1.96.tar.gz}.
Ensuite, il faut l'installer comme ceci:
\commandnospace{cd <download\_directory>}
\commandnospace{tar xzvf hibernate-script-1.96.tar.gz}
\commandnospace{cd hibernate-script-1.96}
\commandrootnospace{./install.sh}

Ensuite, il faut modifier quelque peu la configuration de la mise en
veille en changeant quelques paramètres dans le fichier
\textit{/etc/hibernate/hibernate.conf}:
\begin{itemize}
\item Décommentez et modifier la ligne commençant par \textit{SwsuspVT} comme ceci: \textit{SwsuspVT 9}
\item Décommentez et modifier la ligne commençant par \textit{UnloadModules} et ajoutez y \textit{button}
\item Décommentez et modifier la ligne commençant par \textit{LoadModules} et ajoutez \textit{button}, \textit{psmouse} et \textit{hsfmc97ich}. Sur certaines distributions, il peut-être nécessaire d'ajouter encore les modules \textit{snd-mixer-oss}, \textit{snd-seq-oss} et \textit{snd-pcm-oss}
\item Décommentez et modifier la ligne \textit{RestartServices} et ajoutez-y le service \textit{hsf}
\item Décommentez la ligne commençant par \textit{SwitchToTextMode} et régler ce paramètre à la valeur \textit{yes}
Vous trouverez dans la section téléchargement un exemple de fichier \textit{hibernate.conf}
\end{itemize}
Si vous souhaitez utiliser la compression \textit{LZF} pour stocker l'image, vous devez ajouter la ligne suivante au fichier \textit{hibernate.conf}:
\begin{verbatim}
Compressor lzf
\end{verbatim}
Si vous utilisez le pilote \textit{fglrx}), vous devez également ajouter la ligne suivante à ce fichier:
\begin{verbatim}
ProcSetting extra_pages_allowance 5000
\end{verbatim}

Si vous avez choisi le système \textit{Userspace user interface}, vous devez télécharger la version 0.7.1 de ce programme sur cette \htmladdnormallink{page}{http://www.suspend2.net/downloads/}. La compilation de ce programme nécessite l'installation de certains fichiers d'entêtes. Dans \textit{Debian}, ceux-ci sont fournis par les paquets \textit{libpng12-dev}, \textit{libmng-dev}, \textit{libfreetype6-dev}, \textit{libusplash-dev} et \textit{libttf-dev}. Effectuez les commandes suivantes pour compiler et installer ce programme:
\commandnospace{cd /usr/src/}
\commandnospace{tar zxvf <download directory>/suspend2-userui-0.7.1.tar.gz}
\commandnospace{cd suspend2-userui-0.7.1}
\commandnospace{make}
\commandroot{make install}
Ensuite, ajoutez cette ligne au fichier \textit{hibernate.conf}
\begin{verbatim}
ProcSetting userui_program /usr/local/sbin/suspend2ui_text 
\end{verbatim}
Pour utiliser \textit{fbsplash}, vous devez remplacer \textit{suspendui\_text} par \textit{suspendui\_fbsplash}). 
%Il existe un paquet \textit{Debian} (\textit{suspend2-userui}) que vous pouvez donc installer. Si vous l'utilisez, les programmes s'installent dans le dossier \textit{/usr/sbin/}. Il faut donc modifier le paramètre \textit{userui\_program} cité ci-dessus en conséquence. 

Vous pouvez alors tester la mise en veille avec la commande
\commandroot{hibernate}

Si celà ne fonctionne pas, il y a peut-être un problème de compatibilté avec un de vos périphériques. Dans ce cas, il peut être nécessaire de décharger le module gérant celui-ci et de le recharger au redémarrage. Il est aussi possible qu'il s'agisse d'un conflit avec un des programmes que vous utilisez. 

La page de manuel de \textit{hibernate.conf} ou le \htmladdnormallink{howto}{http://www.suspend2.net/HOWTO} vous donneront de nombreuses indications sur les options non détaillées dans ce document. Par ailleurs, il est possible de déclencher la mise en veille lorsque l'on referme
l'écran du portable. Pour ce faire, il faut installer le paquet \textit{acpid}. Ensuite, il faut éditer ou créer le fichier
\textit{/etc/acpi/events/lid} et y placer les lignes suivantes :
\begin{verbatim}
event=button/lid | LID
action=hibernate
\end{verbatim}
Pour activer la touche veille (\textit{Fn-F4}), créez un fichier \textit{sleep} contenant les lignes suivantes:
\begin{verbatim}
event=button[ /]sleep
action=hibernate
\end{verbatim}

\section{Chargeur de démarrage}
Vous trouverez ci-dessous des examples de configuration pour \textit{GRUB} et \textit{LILO} du chargeur de démarrage reprennant toutes les options expliquées précédemment (remplacez <> par les paramètres appropriés). 

Si vous utilisez \textit{GRUB}:
\begin{verbatim}
title Debian GNU/Linux, noyau 2.6.22.2
root  (<>)
kernel /boot/vmlinuz-2.6.22.2 root=<> ro resume2=swap:<>  \
	video=vesafb:ywrap,mtrr,1024x768-32@70 quiet splash=silent,fadein,theme:<>
 CONSOLE=/dev/tty1
initrd /boot/<fichier initrd>
savedefault
boot
\end{verbatim}
Si vous utilisez \textit{LILO}:
\begin{verbatim}
image=/boot/vmlinuz-2.6.22.2
	label=Linux-2.6.22.2
	root=<>
	append="resume2=swap:<> video=vesafb:ywrap,mtrr,1024x768-32@70 quiet \
	splash=silent,fadein,theme:<>
	initrd /boot/<fichier initrd>
\end{verbatim}

\appendix
\section*{Annexes}
\section{Utilisation des paquets Debian pour installer le noyau}
Si vous utilisez \textit{Debian}, vous pouvez utiliser les paquets \textit{Debian} disponibles sur mon \htmladdnormallink{site}{http://tm4001lmi.tuxfamily.org/download.html}. J'ai mis à votre disposition un paquet du noyau 2.6.22.2 ainsi qu'un paquet contenant le pilote de la carte graphique. Vous trouverez également un paquet contenant les fichiers entêtes du noyau. Je me suis basé sur les sources officielles auxquelles j'ai ajouté des patches pour \textit{Suspend 2}, pour le pilote de framebuffer \textit{vesafb-tng} ainsi que pour \textit{fbsplash}.
Si vous désirer compiler des modules sans recompiler le noyau (à condition d'avoir installé le paquet du noyau que j'ai réalisé), vous pouvez installer le paquet \textit{linux-headers} et créer un lien symbolique adéquat de cette manière:
\commandrootnospace{ln -sf /usr/src/linux-headers-2.6.22.2/ /lib/modules/2.6.22.2/build}

\section{Création de paquets contenant le pilote de la carte graphique}
Le fichier d'installation fourni par \textit{ATI} permet de créer des paquets contenant le pilote de la carte graphique pour diverses distributions Linux. Des paquets \textit{Debian} sont également disponibles dans la section \textit{non-free} de \textit{debian sid} ou de \textit{debian etch}. La version actuellement disponible est la version 8.38.6. Ainsi, vous pouvez installez les paquets \textit{fglrx-driver} et \textit{fglrx-kernel-src}.

Si vous voulez utiliser une version différente du pilote \textit{fglrx}, vous pouvez utilisez le fichier auto-extractible mentionné plus haut (voir section consacrée à la carte graphique) et créer des packages pour \textit{Debian}. Pour ce faire, exécutez la commande suivante (en adaptant éventuellement les numéros de version):
\command{.../ati-driver-installer-8.38.6-x86.x86\_64.run {-}{-}buildpkg Debian/etch}
Il est également possible de créer des paquets pour \textit{Debian sid} en modifiant de façon appropriée la commande donnée ci-dessus. La commande
\command{.../ati-driver-installer-8.38.6-x86.x86\_64.run {-}{-}listpkg}
donne la liste des paquets disponibles. Installez ensuite les paquets \textit{fglrx-kernel-src\_8.38.6-1 \_i386.deb} et \textit{fglrx-driver\_8.38.6-1\_i386.deb}.
Quelque soit la manière dont les pilotes \textit{ATI} ont été installés, vous devez maintenant effectuez les opérations suivantes pour compiler le module \textit{fglrx}:
\commandnospace{cd /usr/src}
\commandnospace{tar jxvf fglrx.tar.bz2}
\commandnospace{cd /usr/src/linux}
\command{fakeroot make-kpkg --added-modules fglrx modules\_clean modules\_image}
Installez ensuite le paquet \textit{fglrx-kernel-<n° de version>.deb} qui doit se trouver dans le répertoire \textit{/usr/src}.

\section{GNU Free Documentation License}
\input{/home/francois/docs_linux/Howto/fdl}
\end{document}
