Nouvelles
- 26 septembre 2006 : mise à jour de la doc pour linux-2.6.18. Le support des smart batteries est maintenant intégré au noyau !
- 23 juin 2006 : mise à jour de la doc pour linux-2.6.17, xorg-7. Mise à jour et correction de certain liens.
- 14 novembre 2005 : mise à jour de la documentation (nouvelle méthode pour faire marcher les smart batteries)
Distribution et Noyau
- Version de Debian : Sid/unstable
- Configuration du noyau (version de Debian) : 2.6.18
- Configuration de X : Xorg 7.0 ou 7.1, Xorg 6.9 ou 6.8, XFree86.
Machine
Matériel | Statut | Notes |
---|---|---|
Intel Centrino 1.6 GHz (Dothan) | OK | Speedstep ok |
ACPI | OK | - |
512 Mo de RAM | OK | - |
80 Go de disque dur | OK | - |
ATI Radeon 9700 - M11 | OK | Driver 3D libre uniquement avec Xorg7 |
Intel Corp. 82801DB/DBL/DBM AC'97 Audio Controller | OK | module snd_intel8x0 |
Broadcom BCM4401 100Base-T | OK | module b44 |
Intel Corp. PRO/Wireless 2200BG | OK | module ipw2200 (firmware non libre) |
Intel Corp. 82801DB/DBL/DBM AC'97 Modem Controller | Non testé | - |
Graveur DVD | OK | - |
Firewire | Non testé | - |
Cardbus bridge | Non testé | - |
CPU : Intel Centrino 1.6 GHz (Dothan)
Pour faire fonctionner la variation de fréquence du CPU c'est relativement simple, il suffit de compiler son noyau avec les options suivantes :
- CONFIG_CPU_FREQ=y - CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y - CONFIG_CPU_FREQ_GOV_PERFORMANCE=m - CONFIG_CPU_FREQ_GOV_POWERSAVE=m - CONFIG_CPU_FREQ_TABLE=y - CONFIG_X86_ACPI_CPUFREQ=m - CONFIG_X86_SPEEDSTEP_CENTRINO=y - CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y - CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
Pour les personnes qui ne sont pas des habitués de la compilation de noyaux, je vous conseille la lecture de ce document. Dans le noyau, les options sont dans les catégories suivantes :
- Processor type and features - Power management options (ACPI, APM) CPU Frequency scaling --->
Ensuite il faut penser à charger le module acpi (sauf bien sur si vous l'avez compilé en "dur"), et vous pourrez faire varier la fréquence de votre CPU:
cd /sys/devices/system/cpu/cpu0/cpufreq/ echo -n 600000 > scaling_setspeed
Je vous conseille l'utilisation de laptop-mode, il n'est pas très dur à configurer et permet une bonne gestion de l'energie.
ACPI et gestion de l'énergie
A lire
- Power Management Guide de Gentoo.
- HOWTO: Fix Common ACPI Problems de Gentoo
État des lieux
Fonctionnalité | Statut | Remarques |
---|---|---|
batterie/ac | OK | nécessite de recompiler le noyau |
button | OK | - |
fan | OK | - |
mem (mode S3) | KO | ne ressort pas de la veille |
processor | OK | - |
standy (mode S1) | KO | ne fait rien du tout |
termal | OK | - |
« smart battery system »
Linux >= 2.6.18
Le support des smart batteries a été intégré dans le noyau à partir de la version 2.6.18. Il n'est maintenant plus necessaire de patcher son noyau !
Il faut juste activer l'option suivante :
- Power Management support ---> ACPI ... ---> <*> Smart Battery System (EXPERIMENTAL)
Cela devrait maintenant marcher out of the box !
Vous pouvez tout de même vérifier que le noyau a bien activé le Smart Battery System :
$ dmesg | grep Smart ACPI: Smart Battery System [SBS0]
Linux <= 2.6.17
Le nom du projet sourceforge est sbs-linux. Il est nécessaire de recompiler son noyau pour faire marcher les SBS, la procédure est bien décrite dans le README. Il est important d'avoir déjà un noyau compilé qui marche, et si vous ne savez pas compiler un noyau, lisez « compiler un noyau à la sauce Debian ».
Pre-requis
Vous aurez besoin des composants suivants :
- paquet Debian iasl (ou les sources acpica-unix-20050930)
- acpi-dsdt-initrd-v0.8.2-2.6.17.patch
- sbs-cm-20051112
- Si vous utilisez un noyau 2.6.16 (ou plus) : acpi-ec-nospinlock-2.6.16.patch
Étape 1 : Patcher votre DSDT (Differentiated System Description Table).
# cd sbs-cm-20051112 # cat /proc/acpi/dsdt > dsdt.dat # iasl -d dsdt.dat # patch < acer-tm32xx-sbs-cm.diff # iasl dsdt.dsl # cp DSDT.aml /boot/DSDT.aml
Étape 2 : Patcher votre noyau pour qu'on puisse lui donner nouvelle DSDT.
$ patch -p1 -d /usr/src/linux-soure-2.6.17 < acpi-dsdt-initrd-v0.8.2-2.6.17.patch
Étape 3 : Activer les bonnes options dans le noyau.
- Power Management support ---> ACPI ... ---> [*] Read Custom DSDT - Device Drivers ---> Block devices ---> <*> RAM disk support [*] Initial RAM disk (initrd) support
Étape 4 : (re)Patcher votre noyau
(facultatif, mais si vous ne le faites pas, certains caractères tapés au clavier seront oubliés).
$ patch -p1 -d /usr/src/linux-source-2.6.17 < acpi-ec-nospinlock-2.6.16.patch
Étape 5 : Compiler votre noyau.
Il est indispensable de compiler votre noyau avec l'option —initrd. Dans cette documentation, j'explique comment créer votre initrd avec yaird (si quelqu'un sais comment le faire avec initramfs, je prend :)).
$ cd /usr/src/linux-source-2.6.17 $ make-kpkg --rootcmd fakeroot clean $ make-kpkg --rootcmd fakeroot --append-to-version -debian-sbs-1 --initrd kernel-image
Étape 6 : Installer le noyau et configurer Grub.
Il faut maintenant ajouter votre DSDT dans l'initrd. Il faut placer le fichier DSDT.aml à la racine de votre initrd.
Si vous utilisez initramfs-tools, il suffit de copier votre fichier DSDT.aml dans /etc/initramfs-tools :
$ cp /boot/DSDT.aml /etc/initramfs-tools/
Il faut ensuite installer votre noyau :
# dpkg -i .../linux-image-2.6.17-debian-sbs-1_1.0_i386.deb
Étape 7 : Reboot.
Ca a marché :
$ dmesg | grep DSDT ACPI: Looking for DSDT in initramfs... successfully read 25853 bytes from /DSDT.aml. ACPI (tbget-0290): Table [DSDT] replaced by host OS [20060127] $ cat /proc/acpi/battery/BAT0/state present: yes capacity state: ok charging state: charged present rate: 0 mA remaining capacity: 936 mAh present voltage: 16505 mV
laptop-mode-tools
Pour profiter le plus longtemps de votre batterie, je vous conseille d'installer laptop-mode-tools (paquet Debian du même nom). Pour le configurer, rien de plus simple, il suffit de lire et de modifier le fichier de configuration : /etc/laptop-mode/laptop-mode.conf
Je vous conseille d'activer les options suivantes :
- ENABLE_LAPTOP_MODE_ON_BATTERY=1
- CONTROL_CPU_FREQUENCY=1
- CONTROL_DPMS_STANDBY=1
ATI Radeon 9700 [M11]
Avec Xorg7, il est possible de bénéficier de l'acceleration graphique 3D avec un driver libre !
Explications à venir :)
Intel Corp. 82801DB/DBL/DBM AC'97 Audio Controller
Voila la liste des modules qui sont chargés (avec un noyau 2.6.9) :
- snd_intel8x0 - snd_ac97_codec - snd_pcm - snd_timer - snd_page_alloc - snd_mpu401_uart - snd_rawmidi - snd_seq_device - snd - soundcore
J'utilise ALSA (sans émulation OSS). Il n'y a rien de très spécial dans la configuration de la carte son. Ça marche avec un noyau Debian pré-compilé (linux-image-2.6).
Broadcom BCM4401 100Base-T
Pas grand chose à faire pour faire marcher le driver : il suffit juste de charger le module b44, la carte marche bien et ne consomme pas trop de CPU.
Intel Corp. PRO/Wireless 2200BG
Le module IPW2200 est maintenant intégré au noyau, il suffit de l'activer. Il vous faudra quand même le firmware disponible sur le site du driver.
Pour le compiler, il faut qu'il soit activé dans la configuration du noyau :
- Device Drivers ---> Network device support ---> Wireless LAN (non hamradio) ---> <M> Intel PRO/Wireless 2200BG and 2915ABG Network Connection
Besoin d'aide ?
Je suis tout à fait prêt à vous aider à installer une distrib sur votre portable. Vous pouvez me contacter facilement le week end.
© 2005, 2006 Olivier Tétard