\documentclass[a4paper,11pt]{report}

	\input{../includes/headers_global.tex}

	\def\sitename{Debian GNU/Linux :: Laptops }
	\def\shorttitre{Base}
	\def\titre{Portable Debian - Installation de base}
	\def\autheur{Matthieu Vogelweith}
	\def\subject{Installation de Debian GNU/Linux sur les PC portables}
	\def\keywords{Debian, Linux, Matthieu, Vogelweith, Sid, Laptop, ACPI, Etch, cpufreq, wifi, batterie, suspend, bluetooth, hibernate, veille, hibernation}

	\input{../includes/headers.tex}

\begin{document}

\renewcommand{\bibname}{R\'ef\'erences}

\begin{titlepage}
	\maketitle
\end{titlepage}

\chapter*{Résumé}

	L'objectif de ce document est de détailler les grandes lignes de l'installation de Debian GNU/Linux \cite{debian} sur un PC portable. Tous les portables étant très différents, j'ai réalisé des pages spécifiques pour les quelques modèles qui me passent entre les mains mais cette page regroupe les manipulations à faire dans la plupart des cas. Notons que la procédure expliquée ci-dessous est basée sur une Debian Sid afin que le support matériel soit le meilleur possible mais il est souvent possible de tout faire fonctionner sur une Debian stable avec un noyau récent.\\

\input{../includes/licence.tex}

\chapter*{News}
    
    \begin{itemize}
        \item \textbf{19/12/2007} : Version initiale du document.
    \end{itemize}

\tableofcontents
		
\chapter{Introduction}

\chapter{Installation}

    - Installation Etch minimale

\vspace{1em}
\begin{lstlisting} 
# aptitude install vim postfix mtr-tiny less iproute ssh pciutils dnsutils ntp
\end{lstlisting}
\vspace{1em}

\chapter{Son}

    \section{Installation d'ALSA}

\vspace{1em}
\begin{lstlisting} 
# aptitude install alsa-base alsa-utils
\end{lstlisting}
\vspace{1em}

    \section{Gestion de la carte}

Après le chargement des modules noyaux et l'installation d'ALSA, il se peut que le son ne fonctionne toujours pas : le son est peut-être tout simplement coupé. Pour modifier les paramètres de la carte son il faut utiliser un "mixer" qui va permettre, entre autre, d'activer ou désactiver chaque module de la carte.

Le mixer le plus connu est \textbf{alsamixer}, fourni par le paquet alsa-utils. Pour avoir un mixer plus complet et graphique, on peut installer \textbf{gamix} :

\vspace{1em}
\begin{lstlisting} 
# aptitude install gamix
\end{lstlisting}
\vspace{1em}

\chapter{Wireless}

Gestion des cartes WLAN :

\vspace{1em}
\begin{lstlisting} 
# aptitude install wireless-tools
\end{lstlisting}
\vspace{1em}

Dans /etc/network/interface :

\vspace{1em}
\begin{lstlisting} 
iface ath1 inet dhcp
    wireless-essid Mon_ESSID
    wireless-key xxxxxxxxxxxxxxxxxxxxxxxxxx
    wireless-keymode open
\end{lstlisting}
\vspace{1em}


\chapter{Gestion de l'énergie}

Le gestion de l'énergie des ordinateurs portables sous linux est assez complexe et malheureusement pas toujours évident (et pas toujours possible) à mettre en place. Je détaillerai dans ce chapitre deux aspects très important pour l'économie d'énergie la fréquence du processeur et la gestion de l'ACPI (\textbf{A}dvanced \textbf{C}onfiguration and \textbf{P}ower \textbf{I}nterface).
Comme pour les autres chapitres de ce document, vous trouverez les informations spécifiques à quelques mofèles dans les pages dédiées de cette rubrique.

    \section{Fréquence CPU}

La gestion de la fréquence CPU fonctionne maintenant très bien sur quasiment tous les processeurs "mobiles". L'idée est descendre la fréquence du processeur lorsqu'elle n'est pas nécessaire ou lorsque le niveau de batterie est trop faible. Pour que ce système fonctionne correctement, il faut charger les modules noyaux appropriés et choisir une politique de gestion de la fréquence.
Sous Debian, le paquet \textbf{cpufrequtils} se charge de tout faire automatiquement : il charge les modules noyaux nécessaires et permet de définir le "governor" qui va gérer la fréquence CPU.

L'installation des paquets se fait tout simplement à l'aide de la commande suivante :

\vspace{1em}
\begin{lstlisting}
# aptitude install cpufrequtils
\end{lstlisting}
\vspace{1em}

Pour connaitre l'état du processeur, toutes les informations sont disponibles dans les différents fichiers du répertoire /sys/devices/system/cpu/cpu0/cpufreq/. Il est également possible d'obtenir des informations un peu plus lisible avec la commande \textbf{cpufreq-info} fournie par le paquet qui vient d'être installé :

\vspace{1em}
\begin{lstlisting}
# cpufreq-info 
cpufrequtils 004: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to cpufreq@lists.linux.org.uk, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 1000 MHz - 2.33 GHz
  available frequency steps: 2.33 GHz, 2.17 GHz, 2.00 GHz, 1.83 GHz, 1.67 GHz, 1.50 GHz, 1.33 GHz, 1000 MHz
  available cpufreq governors: userspace, powersave, ondemand, conservative, performance
  current policy: frequency should be within 1000 MHz and 2.33 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1000 MHz (asserted by call to hardware).
  cpufreq stats: 2.33 GHz:3.72%, 2.17 GHz:0.00%, 2.00 GHz:0.00%, 1.83 GHz:0.01%, 1.67 GHz:0.00%, 1.50 GHz:0.00%, 1.33 GHz:0.06%, 1000 MHz:96.21%  (127)
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 1
  hardware limits: 1000 MHz - 2.33 GHz
  available frequency steps: 2.33 GHz, 2.17 GHz, 2.00 GHz, 1.83 GHz, 1.67 GHz, 1.50 GHz, 1.33 GHz, 1000 MHz
  available cpufreq governors: userspace, powersave, ondemand, conservative, performance
  current policy: frequency should be within 1000 MHz and 2.33 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1000 MHz (asserted by call to hardware).
  cpufreq stats: 2.33 GHz:3.03%, 2.17 GHz:0.03%, 2.00 GHz:0.00%, 1.83 GHz:0.01%, 1.67 GHz:0.03%, 1.50 GHz:0.09%, 1.33 GHz:0.12%, 1000 MHz:96.69%  (133)
\end{lstlisting}
\vspace{1em}

Notons que par défaut, le governor utilisé est \textbf{ondemand}, c'est à dire que la fréquence CPU augmente en fonction des besoins du système.

    \section{Mise en veille}

La mise en veille ou en hibernation des portables a longtemps été très difficile à faire fonctionner correctement mais les choses ont maintenant beaucoup évolué. Sous Debian, trois paquets sont indispensable pour que la mise en veille fonctionne :
\begin{itemize}
    \item acpid : démon qui charge les modules nécessaires au support de l'ACPI dans le noyau linux et permet de récupérer les évènements déclenchés par l'ACPI
    \item acpi-support : ensemble de scripts shell permettant de modifier le comportement du système en fonction des évènements ACPI
    \item acpi : client qui affiche les informations ACPI disponibles (température, état de la batterie, ...)
\end{itemize}

L'installation des paquets se fait toujours de la même manière :
\vspace{1em}
\begin{lstlisting} 
# aptitude install acpid acpi-support acpi
\end{lstlisting}
\vspace{1em}

Maintenant, pour mettre la machine en veille (suspend to RAM), il suffit d'exécuter la commande suivante en root :

\vspace{1em}
\begin{lstlisting} 
# /etc/acpi/sleep.sh
\end{lstlisting}
\vspace{1em}

Une fois la machine en veille, seule la RAM est alimentée et on peut estimer que la batterie perd un pour-cent d'autonomie par heure. Pour sortir de la veille, en général il suffit de presser sur le bouton "Power".

Pour mettre la machine en hibernation (suspend to DISK), il faut de la même façon, exécuter la commande suivante :

\vspace{1em}
\begin{lstlisting} 
# /etc/acpi/hibernate.sh
\end{lstlisting}
\vspace{1em}

Dans cet état, la machine n'est plus du tout alimentée, toutes les données de la RAM sont écrites dans la partition de SWAP de la machine (d'où l'intérêt d'avoir une partition de SWAP de taille supérieur à la taille de la RAM).

En cas de problèmes lors de la mise en veille ou lors de la sortie de veille, certain paramètres peuvent être ajustés dans le fichier /etc/default/acpi-support.

    \section{Mise en veille automatique}

Pour que le système se mette en veille automatiquement après un certain temps d'inactivité ou si la batterie est trop faible, on peut utiliser \textbf{sleepd} disponible dans le paquet du même nom.

\vspace{1em}
\begin{lstlisting} 
# aptitude install sleepd
\end{lstlisting}
\vspace{1em}

Par défaut, sleepd utilise APM et hibernate (uswsusp) pour gérer la mise en veille. Si la mise en veille directement avec les scripts fournit par acpi-support, il suffit de configurer sleepd pour qu'il utilise ces scripts. Pour cela éditez le fichier /etc/default/sleepd et modifiez la variable PARAMS comme indiqué ci-dessous.

\vspace{1em}
\begin{lstlisting} 
PARAMS=" -u 900 --sleep-command /etc/acpi/sleep.sh --hibernate-command /etc/acpi/hibernate.sh"
\end{lstlisting}
\vspace{1em}

Avec cette configuration, le système se mettra en veille (suspend to ram) au bout de 15 minutes d'inactivité et en hibernation (suspend to disk) lorsque le niveau de la batterie deviendra critique. Pour activer ces changement, il faut bien sûr redémarrer le démon avec la commande suivante :

\vspace{1em}
\begin{lstlisting} 
# /etc/init.d/sleepd restart
\end{lstlisting}
\vspace{1em}

\chapter{Cryptage des partitions}
    
    \section{Introduction}

Les machines portables étant plus sujette au vol, elles sont certainement les plus concernées par le cryptage de partitions. En effet, dès l'instant ou il est possible d'avoir un accès physique au disque dur, l'authentification réalisée par le système d'exploitation devient inutile pour protéger les données confidentielles présentes sur le disque dur; il suffit par exemple de booter un live-CD et de lire les partitions sans aucun soucis.

Il est donc importants de crypter les partitions contenant des donnés sensibles pour qu'elles soient illisibles par un personne non autorisée. Attention, il par exemple important de crypter la partition de SWAP : si la machine est en hibernation est que le SWAP n'est pas crypter il est tout a fait possible de récupérer des informations, voir de sortir simplement la machine de l'hibernation et d'accéder à l'ensemble des données présentes sur le disque.

\textbf{Important :} Il n'est pas possible de convertir une partition existante en une partition cryptée. Il faut obligatoirement refaire complètement la partition.

    \section{Utilisation du Debian-installer}

    \section{Initialisation de la partition}

    \section{Montage de la partition}


\chapter{Serveur Graphique}

	\section{Carte graphique}

Différent sur tous les modèles.

	\section{TouchPAD}

\vspace{1em}
\begin{lstlisting} 
# aptitude install xserver-xorg-input-synaptics
\end{lstlisting}
\vspace{1em}

Sous Mac OS X, le bouton droit peut être émuler avec un "clic à deux doigts". De la même façon, le défilement vertical est obtenu en déplaçant 2 doigts simultanément sur le trackpad. Pour obtenir un comportement similaire à Mac OS X, il suffit d'éditer la section "InputDevice" du fichier /etc/X11/xorg.conf :

\vspace{1em}
\begin{lstlisting} 
Section "InputDevice"
    Identifier  "Synaptics Touchpad"
    Driver      "synaptics"
    Option      "Protocol" "auto-dev"
    Option      "SendCoreEvents" "true"
    Option      "SHMConfig" "true"
EndSection
\end{lstlisting}
\vspace{1em}

Le driver Synaptics permet de régler très finement le comportement du trackpad, toutes les options sont disponibles dans la page man. Une petite astuce pour ne pas redémarrer à chaque modification de la configuration : utiliser \textbf{synclient} qui applique les modifications à chaud.

\chapter{Bluetooth}

\vspace{1em}
\begin{lstlisting}
# aptitude install bluetooth
\end{lstlisting}
\vspace{1em}

    \section{Connexion GPRS}

\clearpage
\nocite{*}
\bibliographystyle{unsrt}
\bibliography{\jobname}

%\ifpdf
%\else
%\chapter{Vos commentaires}
%\fi
\end{document}
