(English version)

Nouvelles

Distribution et Noyau

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

É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 :

É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 :

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