\documentclass[a4paper,11pt]{report}
	
    \input{../includes/headers_global.tex}

	\def\sitename{Debian GNU/Linux :: Laptops }
	\def\shorttitre{HP 8510p}
	\def\titre{Debian Sid \& HP Compaq 8510p}
	\def\autheur{Matthieu Vogelweith}
	\def\subject{Installation de Debian GNU/Linux HP Compaq 8510p}
	\def\keywords{Debian, Linux, Matthieu, Vogelweith, Sid, Laptop, HP, Compaq, 8510p, radeonhd}

	\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 donc de détailler l'installation de Debian GNU/Linux \cite{debian} sur un HP Compaq 8510p \cite{hp8510p}. Notons que la procédure expliquée ci-dessous est basée sur une Debian Sid.\\

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

\chapter*{News}
    
    \begin{itemize}
        \item \textbf{22/11/2007} : ...
    \end{itemize}

\tableofcontents
		
\chapter{Introduction}

	\section{Caratéristiques Téchniques}

\begin{itemize}
\item Processeur : Intel Core 2 Duo T7100 à 1,8 GHz 
\item Mémoire : 2 Go 667 DDR2 - 2x1 Go SO-DIMMs
\item Disque dur : Serial ATA de 120 Go (7200 trs/min)
\item Carte Graphique : ATI Mobility Radeon HD2600 256 Mo de SDRAM GDDR3 
\item Lecteur Optique : SuperDrive 6x (DVD+R DL/DVD RW/CD-RW)
\item Ecran : 15.4" large TFT 1680 x 1050 ( WSXGA+ )
\end{itemize}

	\section{lspci}

Un petit tour d'horizon des périphériques installés avec \textbf{lspci} :

\vspace{1em}
\begin{lstlisting} 
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c)
00:01.0 PCI bridge: Intel Corporation Mobile PM965/GM965/GL960 PCI Express Root Port (rev 0c)
00:19.0 Ethernet controller: Intel Corporation 82566MM Gigabit Network Connection (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HBM (ICH8M-E) LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03)
01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 9581
01:00.1 Audio device: ATI Technologies Inc RV630 audio device [Radeon HD 2600 Series]
02:06.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b9)
02:06.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b9)
02:06.2 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 03)
02:06.3 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 20)
02:06.4 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller (rev 10)
10:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 02)
\end{lstlisting}
\vspace{1em}

    \section{Installation et configuration de base}

Les éléments ci-dessous ne sont pas spécifiques à cette machine et sont détaillés dans la page suivante : \cite{base}.
\begin{itemize}
    \item Installation Etch minimale
    \item Son
    \item Gestion de l'energie
\end{itemize}

\chapter{Wireless}

Depuis la version 2.6.26 du kernel, la carte Broadcom 4311 (BCM94311MCG rev 02) fonctionne très bien avec la module \textbf{b43} : il n'est donc plus necéssaire d'utiliser ndiswrapper. La carte requiert tout de même un firmware externe mais qu'il est très facile d'installer avec les outils Debian.

    \section{Extraction du firmware}

Comme indiqué précedemment, il existe un paquet Debian qui télécharge et extrait les firmwares indispensable au fonctionnement des carte BCM4311 : \textbf{b43-fwcutter}.

\vspace{1em}
\begin{lstlisting} 
# aptitude install b43-fwcutter
\end{lstlisting}
\vspace{1em}

Pour information, tous les fichiers extrait sont dans /lib/firmware.

    \section{Chargement du module}

Chargement du module :

\vspace{1em}
\begin{lstlisting} 
# modprobe b43
\end{lstlisting}
\vspace{1em}

Examemn du syslog :

\vspace{1em}
\begin{lstlisting} 
[  809.513264] b43-phy0: Broadcom 4311 WLAN found
[  809.580426] phy0: Selected rate control algorithm 'pid'
[  809.581844] Broadcom 43xx driver loaded [ Features: PMLR, Firmware-ID: FW13 ]
[  821.459793] input: b43-phy0 as /class/input/input12
[  821.555064] firmware: requesting b43/ucode13.fw
[  821.561427] firmware: requesting b43/lp0initvals13.fw
[  821.688760] b43-phy0: Loading firmware version 351.126 (2006-07-29 05:54:02)
[  821.688771] b43-phy0 warning: You are using an old firmware image. Support for old firmware will be removed in July 2008.
[  821.688775] b43-phy0 warning: You must go to http://linuxwireless.org/en/users/Drivers/b43#devicefirmware and download the latest firmware (version 4).
[  822.930850] Registered led device: b43-phy0::tx
[  822.930875] Registered led device: b43-phy0::rx
[  822.930895] Registered led device: b43-phy0::radio
\end{lstlisting}
\vspace{1em}

%    \section{Installation de Ndiswrapper}
%
%La carte WLAN présente dans la machine est une Broadcom 4311 (BCM94311MCG rev 02). Pour l'instant je n'ai pas réussi à la faire fonctionner avec le driver bcm43xx, ni avec b43 ou b43legacy. Il reste donc la solution de ndiswrapper pour faire fonctionner la carte. L'installation de ndiswrapper nécessite la compilation d'un module noyau puis le chargement d'un pilote windows à l'aide d'utilitaires fournit par le paquet ndiswrapper-utils-1.9 :
%
%\vspace{1em}
%\begin{lstlisting} 
%# aptitude install build-essential module-assistant ndiswrapper-source ndiswrapper-utils-1.9 linux-headers-`uname -r`
%\end{lstlisting}
%\vspace{1em}
%
%\vspace{1em}
%\begin{lstlisting} 
%# m-a prepare
%# m-a a-i ndiswrapper
%\end{lstlisting}
%\vspace{1em}
%
%Avant de continuer, il est sage d'enlever le module bcm43xx et d'éviter qu'il ne se charge automatiquement au démarrage de la machine:
%
%\vspace{1em}
%\begin{lstlisting}
%# modprobe -r bcm43xx
%# modprobe -r ssb
%# echo "blacklist bcm43xx" >> /etc/modprobe.d/blacklist
%# echo "blacklist ssb" >> /etc/modprobe.d/blacklist
%\end{lstlisting}
%\vspace{1em}
%
%Le module noyau de ndiswrapper est maintenant près, il reste à charger le pilote provenant du pilote windows.
%
%    \section{Installation du pilote}
%
%Le pilote de la carte est disponible directement sur le site de HP. Il suffit de le télécharger puis d'extraire l'archive afin d'obtenir le fichier INF qui sera utilisé par ndiswrapper :
%
%\vspace{1em}
%\begin{lstlisting}
%# aptitude install cabextract
%# wget ftp://ftp.hp.com/pub/softpaq/sp36501-37000/sp36684.exe 
%# cabextract sp36684.exe -dpilote_win
%# ndiswrapper -i pilote_win/bcmwl5.inf
%# ndiswrapper -m
%# depmod -a
%\end{lstlisting}
%\vspace{1em}
%
%Il est possible de vérifier que le driver a bien été chargé en éxecutant la commande suivante :
%
%\vspace{1em}
%\begin{lstlisting} 
%# ndiswrapper -l
%bcmwl5 : driver installed
%        device (14E4:4311) present (alternate driver: bcm43xx)
%\end{lstlisting}
%\vspace{1em}

On peut enfin faire un premier test en scannant les points d'accès disponibles :

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

    \section{Problèmes courants}

Si en suivant les indications ci-dessus la carte ne fonctionne toujours pas, la cause du problème est sans doute listée ci-dessous :

\begin{itemize}
\item La carte n'est pas allumée : le fonctionnement de la carte WLAN est controlé par un interrupteur qui est éteint par défaut. Pour que la carte fonctionne, il faut activer la carte en pressant sur l'icône Wifi située dans la barre tactile située au dessus du clavier. Lorsque la carte est allumée, le bouton et le vyant en façade s'allume en bleu.
\item La carte est mal configurée dans le BIOS : Dans le BIOS de la machine, une option permet de basculer entre la carte LAN et la carte WLAN. Il semble que cette option désactive la carte WLAN si la carte ethernet est branchée. En cas de problème, désactiver cette option ou faire le test en débranchant la carte ethernet.
\end{itemize}

\chapter{Lecteur d'empreintes digitales}

\section{aes2501}

Pour l'instant, le lecteur d'empreintes digitales ne permet pas de réaliser facilement l'authentification sur la machine mais le pilote matériel est déja fonctionnel. Il suffit d'installer les paquets suivants :

\vspace{1em}
\begin{lstlisting} 
# aptitude install aes2501-wy imagemagick
\end{lstlisting}
\vspace{1em}

Pour tester le scanner, executer la commande suivante avec un utilisateur standard, sous X :

\vspace{1em}
\begin{lstlisting} 
$ sudo aes2501
\end{lstlisting}
\vspace{1em}

Si tout fonctionne correctement, après un déplacement d'un doigt devant le scanner, une image de l'empreinte digitale devrait apparaitre.

\section{libfprint}

Le projet libfprint :

\vspace{1em}
\begin{lstlisting} 
# aptitude install libusb-dev libssl-dev libglib2.0-dev libmagick++9-dev libgtk2.0-dev libpam0g-dev
# cd /usr/local/src
# wget http://ovh.dl.sourceforge.net/sourceforge/fprint/libfprint-0.0.5.tar.bz2
# wget http://mesh.dl.sourceforge.net/sourceforge/fprint/fprint_demo-0.4.tar.bz2
# wget http://ovh.dl.sourceforge.net/sourceforge/fprint/pam_fprint-0.2.tar.bz2
# tar xvjf libfprint-0.0.5.tar.bz2
# tar xvjf fprint_demo-0.4.tar.bz2
\end{lstlisting}
\vspace{1em}

- compilation de libfprint

\vspace{1em}
\begin{lstlisting} 
# cd /usr/local/src/libfprint-0.0.5
# ./configure --prefix=/usr/local
# make
# make install
\end{lstlisting}
\vspace{1em}

- compilation de fprint\_demo

\vspace{1em}
\begin{lstlisting} 
# cd /usr/local/src/fprint_demo-0.4
# ./configure --prefix=/usr/local
# make
# make install
\end{lstlisting}
\vspace{1em}

\chapter{Serveur Graphique}

	\section{Pilotes ATI}

Les pilotes propriétaires fournit par ATI sont les seuls a fournir un support 3D complet pour les cartes ATI sous linux. En plus d'être propriétaire, ce pilote n'est malheureusement pas de grande qualité. Depuis peu, une alternative libre existe pour les cartes récentes, il s'agit du projet \textbf{radeonhd} \cite{radeonhd}. Ce pilote open-source est développé par Novell à partir des spécifications fournies par AMD. Le support 3D n'est pas vraiment complet mais il de très bonne qualité est beaucoup moins instable que le pilote propriétaire.

Ce pilote est disponible depuis sa version 1.0.0 dans Debian Sid. L'installation du pilote se fait donc tout simplement avec la commande suivante :

\vspace{1em}
\begin{lstlisting}
# aptitude update
# aptitude install xserver-xorg-video-radeonhd radeontool
\end{lstlisting}
\vspace{1em}

Reste enfin à configurer la section "Device" du fichier /etc/X11/xorg.conf comme indiqué ci-dessous :

\vspace{1em}
\begin{lstlisting}
Section "Device"
    Identifier  "ATI Mobility X1600"
    Driver      "radeonhd"
EndSection
\end{lstlisting}
\vspace{1em}

	\section{TouchPAD}

- Installation du module Xorg :

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

- Configuration de Xorg :

\vspace{1em}
\begin{lstlisting} 
Section "InputDevice"
    Identifier  "Synaptics Touchpad"
    Driver      "synaptics"
    Option      "SendCoreEvents" "true"
    Option      "TapButton3" "2"
    Option      "TapButton2" "3"
    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 config : utiliser \textbf{synclient} qui applique les modifications à chaud.

	\section{Fichier de configuration}

Mon fichier de configuration est disponible ici : \href{xorg-hp8510p.conf}{xorg.conf}

\chapter{Benchmarks}

	\section{Disque dur}

Hdparm permet de tester les performances du disque dur de la machine. L'installation se fait comme toujours avec aptitude :

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

Pour lancer le test, il suffit d'éxécuter la commande suivante :

\vspace{1em}
\begin{lstlisting} 
# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   5498 MB in  2.00 seconds = 2754.09 MB/sec
 Timing buffered disk reads:  120 MB in  3.03 seconds =  39.55 MB/sec
\end{lstlisting}
\vspace{1em}

	\section{Processeur}

Afin d'évaluer les performances du processeur, on peut par exemple mesurer le temps de compilation du noyau. Pour apprecier les effets du multi-core, le test est réalisé plusieurs fois en modifiant l'option -j de make. Cette option défini le nombre de process lancés simultanément par make.

\vspace{1em}
\begin{lstlisting} 
time make
real    8m46.063s

time make -j2
real    4m17.045s

time make -j3
real    4m7.875s

time make -j4
real    4m6.633s
\end{lstlisting}
\vspace{1em}


	\section{Carte graphique}

Pout tester les performances de la carte graphique, on peut utiliser \textbf{glxgears} qui est fourni avec le paquet \textbf{mesa-utils} :

\vspace{1em}
\begin{lstlisting} 
$ glxgears 
6257 frames in 5.1 seconds = 1236.405 FPS
6204 frames in 5.0 seconds = 1237.433 FPS
6293 frames in 5.1 seconds = 1243.875 FPS
6237 frames in 5.0 seconds = 1239.986 FPS
6237 frames in 5.1 seconds = 1230.079 FPS
\end{lstlisting}
\vspace{1em}

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

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