Developpez.com - Linux
X

Choisissez d'abord la catégorieensuite la rubrique :


Linux sur un portable centrino

Date de publication : Work in Progress.... , Date de mise a jour : 20 mars 2005

Par Michel Blavin (homepage)
 

Nous allons voir comment installer Linux sur un portable acer TravelMate 371 TMi. De nombreuses partie de cet article peuvent etre appliqué à tous les portable centrino. La distribution utilisée sera la gentoo car c'est la distribution que j'utilise mais devrait être adaptable à la plupart des autres distributions.


Introduction
I. Récapitulatif de ce qui fonctionne
II. Installation
II-1. Quelques remarques avant de commencer.
II-2. Quelques informations sur ma configuration
II-3. Optimisation pour Pentium-M
III. Les options du noyaux
III-1. Gestion d'énergie (acpi)
III-2. variation de la fréquence du processeur
III-3. Software suspend 2 (hibernate)
III-4. [A Faire]Firewire
III-4. [A Faire]usb
III-4. [A Faire]Infrarouge
III-5. [A Faire]PC-Card PCMCIA
III-6. [A Faire]Modem intégré
IV. Configuration du système
IV-1. acpi
IV-2. [A Faire]Création d'un niveau d'execution battery
IV-3. [A Faire]Hibernation (Software Suspend 2)
IV-4. [A Faire]gestion d'energie des disques durs
IV-4-1. [A Faire]En utilisant hdparm
IV-4-2. [A Faire]Laptop-mode
IV-5. Configuration de X.org
IV-6. [A Faire]gestion de frequence du processeur
IV-7. Touchpad Synaptics


Introduction

Installer Linux sur un portable à toujours été plus difficile que sur un desktop.

    Cela s'explique de plusieurs façon :
  • Le nombre de portable est moins important que celui des desktop (c'est de moins en moins vrai.)
  • Le matériel contenu dans les portable est souvent moins standard chaque fabriquant utilisant des solutions propiétaire.
  • La gestion d'energie est indispensable alors qu'elle souvent négligée sur pour les desktop.

I. Récapitulatif de ce qui fonctionne

Mon portable est une acer TravelMate 371 dont les principales caractéristiques sont les suivantes

fonctionalités Fonctione
Suspend to disk 2 (hibernation) OK
wifi b (module ipw2100) OK
Les touches supplémentaires  
PCMCIA Pas testé
Optimisation à la compilation pour procésseur Pentium-m (nécessite gcc 3.4 actuellement dans la branche instable) OK
Variation de la fréquence du processeur en fonction de la charge OK
Firewire OK
USB (souris, clé, DVD,...) OK
Lecteur multicarte intégré Pas testé
Port infrarouge Pas testé
Modem intégré OK
Touchpad synaptics OK
   
   
   
   
   

II. Installation


II-1. Quelques remarques avant de commencer.

Je ne vais pas détailler toute l'installation étant donné que la documentation de la gentoo est très bien faite. Ce qui va nous interressé c'est la configuration du système pour profiter au maximum du matériel à notre disposition. L'installation se déroulant en chroot vous pouvez installer votre distribution de plusieurs manière :

  • Installation standard, en utilisant le LiveCD gentoo
  • Installation à partir d'un autre live CD (knoppix ou autre)
  • Installation à partir d'une autre distribution déja installer sur le portable.
Mon portable ayant un lecteur de DVD externe (firewire) le Live CD Gentoo 2004.3 ne parvient pas à démarer correctement. Ce n'est pas vraiment un problème car la knoppix 3.7 démare parfaitement.

La première sollution est donc impossible pour moi, J'avais le chox entre les deux autres. La deuxième est la plus simple car la knoppix contient tous les outils qui permettent de repartitionner voir de redimmentionner la partition windows XP existant. Pensez à bien sauvegarder vos données avant de toucher aux partitions. J'ai choisit 3ème sollution car elle permet d'avoir une installation de secours si comme moi vous aimez expérimenter, cela permet de pourvoir dépanner votre PC sans avoir le lecteur optique ou de live CD avec soit.


II-2. Quelques informations sur ma configuration

Mon disque dur est de 60Go et la table de partition est la suivante

Partitionnement disque 60Go
# fdisk -l Disque /dev/hda: 56.7 Go, 56770882560 octets 255 têtes, 63 secteurs/piste, 6902 cylindres Unités = cylindres de 16065 * 512 = 8225280 octets Périphérique Amorce Début Fin Blocs Id Système /dev/hda1 * 1 2549 20474811 83 Linux /dev/hda2 2550 2679 1044225 82 Linux swap / Solaris /dev/hda3 2680 5815 25189920 5 Extended /dev/hda4 5816 6902 8731327+ 83 Linux /dev/hda5 2680 2729 401593+ 83 Linux /dev/hda6 2730 5815 24788263+ 83 Linux
/etc/fstab
# cat /etc/fstab # /etc/fstab for my acer TravelMate 370 # <fs> <mountpoint> <type> <opts> <dump/pass> # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts. /dev/hda5 /boot reiserfs noatime,notail 1 1 /dev/hda1 / reiserfs noatime,notail 0 0 /dev/hda6 /home reiserfs noatime,notail 0 0 /dev/hda4 /mnt/other ext3 noauto,noatime 0 0 /dev/hda2 none swap sw 0 0 /dev/cdroms/cdrom0 /mnt/dvd iso9660 noauto,user 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0

II-3. Optimisation pour Pentium-M

Si vous n'êtes pas sur de vous, sauter ce paragraphe, car ce qui suit peut compliquer grandement l'installation du système, et je ne peux vous garantir que le gain de performance soit réel. Rabatez vous sur l'architecture pentium3, le pentium-m étant une évolution du Pentium3-M et non pas du pentium4. Cependant certaines personnes conseillent d'utiliser l'architecture pentium4, comme toujours avec Linux et surtout avec la gentoo, à vous de faire vos propres choix.
La gentoo permet d'optimiser les binaires produit par le compilateur en fonction du processeur, ceci grace aux CFLAG. L'architecture pentium-m a été ajouté à gcc, à partir de la vesion 3.4. Le version de gcc pour la branche stable de la gentoo est gcc 3.3, il va donc nous falloir passer notre gcc en instable. Pour cela nous devrons ajouter les lignes suivantes au fichier /etc/portage/package.keywords.

/etc/portage/package.keywords
# To use the use the pentium-m architecture we need to use gcc 3.4 sys-devel/gcc ~x86 # This package is needed by gcc 3.4 sys-libs/libstdc++-v3 ~x86
Avant de pouvoir valider l'architecture pentium-m il faut mettre à jour gcc :

Mise à jour de gcc
# emerge -va gcc
Ensuite on peut modifier le fichier /etc/make.conf, voici donc mes CFLAG, ceci à titre informatif.

Mes CFLAG
# the march=pentium-m needs gcc >= 3.4 CFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CXXFLAGS="${CFLAGS}" MAKEOPTS="-j2"

III. Les options du noyaux

Sous gentoo, il est indispensable de recompiler son noyaux à la main, aucun noyaux binaire n'étant disponnible. Mais quelques soit votre distribution, vous n'avez aucune chance d'exploiter pleinement votre matériel sans passer par cette étape. C'est dans le noyaux que nous allons valider les options de gestions d'énergie, la possibilité d'utiliser les fonctions wireless (wifi, infrarouge, bluetooth ...).

En fonction du noyaux que vous utilisez il est probable que certaines options soit absentes étant donnés que certaines nécessitent de patcher votre noyaux.
Une des joie de gentoo c'est que certains utilisateurs avancés vous font des kernels prepatchés qui, bien que sans gatantie, vous simplifie la vie. Pour ma part j'utilise patchset morph-sources qui contients beaucoups de patchs interessant, ajoutant ainsi de nombreuses focntionnalités, dont software suspend 2 que nous utiliserons plus tart. Actuellement, j'utiliser un la version morph-sources 24 qui se base sur le noyau 2.6.10. Je vous met à disposition mon fichier .config


III-1. Gestion d'énergie (acpi)

Pour l'economie d'énergie il convient de privilégier l'acpi par rapport à l'apm qui est plus ancien.

Configuration de l'acpi
Power management options (ACPI, APM) ---> [*] Power Management support [ ] Power Management Debug Support ACPI (Advanced Configuration and Power Interface) Support ---> [*] ACPI Support [*] Sleep States (EXPERIMENTAfL) <M> AC Adapter <M> Battery <M> Button <M> Video <M> Fan <M> Processor <M> Thermal Zone < > ASUS/Medion Laptop Extras < > IBM ThinkPad Laptop Extras < > Toshiba Laptop Extras (0) Disable ACPI for systems before Jan 1st this year [ ] Debug Statements [*] Power Management Timer Support < > ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)

III-2. variation de la fréquence du processeur

Sur les dernier noyaux 2.6 la gestion de la fréquence variable des processeur Pentium-M est géré de manière tres simple depuis l'intégration du gouverneur "ondemand".

Fréquence variable pour le Pentium-M
Power management options (ACPI, APM) ---> CPU Frequency scaling ---> [*] CPU Frequency scaling <M> 'performance' governor <M> 'powersave' governor --- 'userspace' governor for userspace frequency scaling <M> 'ondemand' cpufreq policy governor <M> CPU frequency table helpers --- CPUFreq processor drivers <M> ACPI Processor P-States driver <M> Intel Enhanced SpeedStep [*] Use ACPI tables to decode valid frequency/voltage pairs
Le gouverneur "ondemand" ne peut être compilé qu'en tant que module, j'ai choisit de compiler tous les modules de gouverneur en tant que modules. Il ne faudra pas oublier de charger le ou les modules avant de les utiliser. Le plus simple étant d'ajouté les lignes suivantes au fichier /etc/modules.autoload/kernel-2.6. (Sur les autres distribution il peut s'agir d'un autre fichier, par exemple /etc/modules sur une Mandrake.)

/etc/modules.autoload/kernel-2.6 pour la fréquence variable du Pentium-M
# frequencies scaling speedstep-centrino cpufreq-ondemand cpufreq-performance cpufreq-powersave
Liste des gouverneurs disponnible
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors powersave performance ondemand userspace
Connaitre le gouverneur actuellement utilisé
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor userspace
changer de gouverneur manuellement
echo 'ondemand' > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
connaitre la frequence actuelle du processeur
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 600000
Nous verrons plus loin comment automatiser l'utilisation d'un gouverneur "ondemand" quand on est sur secteur et powersave sur batterie. Pour le moment terminons la configuration du noyaux


III-3. Software suspend 2 (hibernate)

Software suspend 2 n'est pas dans le noyau officiel, seul la version 1 y est, mais vu que j'ai lu de nombreuses éloge sur la version 2 je n'ai meme pas essayé la version 1. Comme indiqué plus haut j'utilise un noyaux deja patché, si ce n'est pas votre cas vous devrez appliquer le patch pour pouvoir les utiliser. En particulier pour Software Suspend.
Voici donc les options à valider dans le noyau

Software Suspend 2
(ACPI, APM) ---> Software Suspend 2 ---> <*> Software Suspend 2 --- Image Storage (you need at least one writer) <*> Swap Writer --- Page Transformers <*> LZF image compression (Preferred) --- User Interface Options <*> Text mode console support --- General Options (/dev/hda2) Default resume device name [*] Warn if possibility of filesystem corruption
Evidement il conviendra de remplacer /dev/hda2 par votre partition de swap si elle est differente.


III-4. [A Faire]Firewire



III-4. [A Faire]usb



III-4. [A Faire]Infrarouge



III-5. [A Faire]PC-Card PCMCIA



III-6. [A Faire]Modem intégré



IV. Configuration du système


IV-1. acpi

C'est la base toute la gestion d'énergie est basée sur ce système. Notre noyaux est configuré mais il va falloir que nous installions acpid qui est le démon permetant de gérer l'acpi. J'ai aussi installé le paquet nommé acpi mais je ne sais pas exactement quel est son utilité. Une fois installé il nous faut démarré le démon.

démarage manuel du démon acpid
# /etc/init.d/acpid start
Cette commande démare le démon immédiatement mais le démon ne sera pas relancé après un arret de la machine

démarage automatique du démon acpid
# rc-update add acpid default
Cette dernière commande ajoute acpid au runlevel default, le démon sera démaré au prochain démarage. A partir de maintenant si l'on appuis sur le bouton power le script /etc/acpi/default.sh sera executé. Par defaut, cela provoque un arret propre de votre machine, pensez à enregistrer votre travail avant d'appuyer sur cette touche car aucune confirmation ne sera demandé.


IV-2. [A Faire]Création d'un niveau d'execution battery



IV-3. [A Faire]Hibernation (Software Suspend 2)



IV-4. [A Faire]gestion d'energie des disques durs

Il suffit d'ajoute le script suivant issue du guide de la gestion d'energie de gentoo

#!/sbin/runscript # file coming from the power management guide start() { ebegin "Activating Power Management for Hard Drives" hdparm -q -S12 /dev/hda eend $? } stop () { ebegin "Deactivating Power Management for Hard Drives" hdparm -q -S253 /dev/hda eend $? }

IV-4-1. [A Faire]En utilisant hdparm



IV-4-2. [A Faire]Laptop-mode



IV-5. Configuration de X.org

Il y a encore peu de temps il était vraiment infernal de configurer un carte graphique à mémoire partagée, je n'ai pas eu de problème particulier pour configurer l'interface grace à la commande :

comande pour configurer X.org en ligne de commande
# xorgconfig
Pour le moment je n'ai pas essayer d'utiliser la sortie vga disponnible sur mon portable que ce soit en mode mirroir ou en mode mirroir.


IV-6. [A Faire]gestion de frequence du processeur



IV-7. Touchpad Synaptics

Le touchpad est la partie délicate de la configuration, je me suis contenté de récupérer la configuration obtenue lors de l'installation de la Mandrake. Une fois bien configurer ce genre de périphérique est assez agréable à mais il reste quelque chose d'assez agaçant : quand vous tapé sur votre clavier et que votre pousse touche la partie tactile, c'est souvent interprété comme un clic et c'est très agaçant car vous vous mettez à ecrire la ou votre souris se trouve :(. En installant le package synaptics vous avez acces au demon syndaemon qui vous permet de desactivé le touchpad pendant un certains temps, résolvant ainsi le problème. Lorsque j'utilisait windows sur ce meme portabble, cela m'avait tellement agacé que j'avais totalement dévalidé le taping.

Option du démon syndaemon
# syndaemon --help syndaemon: invalid option -- - Usage: syndaemon [-i idle-time] [-d] -i How many seconds to wait after the last key press before enabling the touchpad. (default is 2s) -d Start as a daemon, ie in the background. -t Only disable tapping, not mouse movements
L'utilisatation de ce démon est très simple, il suffit de le lancer avec X. Il est fournit avec des fichiers démarages /etc/conf.d/syndaemon et /etc/init.d/syndaemon mais je ne suis pas arrivé à les faire fonctionner correctement. J'ai donc ajouté à mes commandes à lancer avec X la ligne suivante (pour un lancement arrière plan (-d), pour une désactivation de 1 seconde (-i 1s), mais seulement le taping pour toujours pouvoir déplacer la souris (-t))

lancement du demon synaptics
syndaemon -d -i 1s -t

Access :
Introduction aux modules de classes
Enregistrement des références au démarage.
Formulaire calendrier en pop-up
blogs
Mon blog


Ce document issu de www.developpez.com et écrit par Michel Blavin est soumis à la licence GNU FDL traduit en français ici
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.

Contacter le responsable de la rubrique Linux