Howto ACPI



Auteur : Sylvestre Ledru (questions, commentaires, n'hesitez pas ...)
English version
Retourner a la page linux
Si vous aimez cet howto et que vous voulez me remercier pour mon travail : voici ma wishlist sur Amazon - France ou celle sur Amazon US :)

Nouveau (25/08/2003), Kernel :
Depuis le nouveau kernel (2.4.22), ce patch ACPI est par defaut inclus dans le kernel.
Nnouveau (08/11/2003), suspend / hibernate :
J'ai enfin reussi a installer et configurer le mode hibernation !

Qu'est ce que l'ACPI ?
ACPI est une relativement vieille technologie mais qui est malheureusement plutot mal supportée par le noyau Linux. L'ACPI est développé par un consortium de quelques entreprises tel que Intel, Compaq ou encore IBM ... Le but de cette technologie est de fournir un remplaçant à l'APM.
Elle est surtout utile sur les portables (gestion d'énergie, température ...).
Malheureusement, les spécifications ne sont pas vraiment bien suivies, donc les développements restent assez difficiles.

Comment installer l'ACPI ?

Premièrement, visitez le site s'occupant du développement de la gestion de l'ACPI (http://acpi.sourceforge.net) et téléchargé le patch approprié pour la version de votre noyau.
Par exemple, j'ai un noyau 2.4.20. Donc, le fichier acpi-20021212-2.4.20.diff.gz est celui qui me fournira la mise à jour de mon noyau officiel (l'ACPI du noyau officiel ne marche pas bien).

Je suppose que vous avez les sources du noyau dans le répertoire /usr/src/linux.
Patcher le noyau
Nous devons patcher le noyau (pas de problèmé, c'est vraiment facile) :
# cd /usr/src/linux
# wget http://url/acpi-20021212-2.4.20.diff.gz
# gunzip acpi-20021212-2.4.20.diff.gz
# patch -p1 < acpi-20021212-2.4.20.diff

Ceci suffit a patcher le noyau.

Nouvelles options dans le noyau
Un nouveau menu apparait donc dans le menu du noyau dans 'General Setup'
'ACPI support'.
Dans le menu, vous pouvez ajouter ces options :
AC Adapter, Battery, Button, Fan, Processor, Thermal Zone.
Mais attention, parfois, le BIOS ne supporte pas ces options.
Selectionné ce dont vous avez besoin (comme module ou intégré), recompilez le noyau/modules, installez le tout et si nécessaire, redémarrez.

Programme de gestion de l'ACPI
Maintenant, votre noyau supporte l'ACPI, mais il vous reste à installer le programme qui pourra gérer l'ACPI.
Sous Debian, apt-get install acpid devrait etre assez.

Vous devriez avoir quelques fichiers dans le répertoire /proc/acpi comme par exemple /proc/acpi/info.
Si vous n'avez pas ce fichier, c'est qu'il y a une erreur (donc vérifier si vous n'avez pas fait d'erreur). Autrement, ACPI devrait marcher sans problème sur votre ordinateur.
Par exemple, cat /proc/acpi/battery/BAT1/state me donne (quand on portable est alimente (c'est BAT1 pour moi mais parfois c'est BAT0) :
present: yes
capacity state: ok
charging state: unknown
present rate: 0 mA
remaining capacity: 4192 mAh
present voltage: 16736 mV

Il est aussi possible d'obtenir plus d'informations comme dans /proc/acpi/battery/BAT1/info :
present: yes
design capacity: 4400 mAh
last full capacity: 4192 mAh
battery technology: rechargeable
design voltage: 14800 mV
design capacity warning: 300 mAh
design capacity low: 200 mAh
capacity granularity 1: 32 mAh
capacity granularity 2: 32 mAh
model number: 00 00 00 00
serial number: 30 00 00 00 00 00 00 00 00
battery type: 00 00 00 00
OEM info: 00 00 00 00

Si vous voulez une interface plus agréable que cat ou less, vous pouvez instaler acpi (apt-get install acpi) qui est un client.
Par exemple, actuellement, sur mon portable, l'ACPI fournir ces informations :

[11:39:58][sly@reloaded] /proc/acpi$ acpi -V
Battery 1: discharging, 82%, 01:56:53 remaining
Thermal 1: ok, 43.0 degrees C
AC Adapter 1: off-line

Il existe un plugin gkrellm appellé gkacpi. Il est un peu buggé mais le code (C) est assez facile à comprendre ...


Mode Suspend / hibernation (hibernate) :
Grace a Jan's Linux Log, je viens juste d'arriver a activer le mode hibernation (suspend) !! Ceci veut dire que je peux presser le bouton Power pour arreter l'ordinateur et presser encore pour qu'il reprenne la ou j'en etais !!! Super !!!
Pour obtenir cette fonctionnalite :
Vous devez patcher votre kernel avec swsup (Software Suspend For Linux) :

cd /usr/src/
wget http://heanet.dl.sourceforge.net/sourceforge/swsusp/swsusp-2.0-rc2-whole.bz2
bunzip2 swsusp-2.0-rc2-whole.bz2
cd linux
patch -p1 < ../swsusp-2.0-rc2-whole

Deselectionner l'option SMP (dans Processor type and features), selectionnez Software Suspend et Relaxed /proc/swsusp permissions (dans General Setup), selectionnez Enhanced Real Time Clock Support (dans Character devices). Recompilez votre kernel et installez le.
You devez aussi specifier dans votre chargeur linux (lilo ou grub) le nom de la partition swap ou il va pouvoir stocker l'image du systeme :
par exemple, avec lilo, ca va etre :

append="resume=/dev/hda7"

(changez 7 pour votre configuration).
Telechargez le script suspend.sh sur le meme site que le patch (ce script est appelle suspend-script) et installez le (./suspend.sh --install sous le c\ ompte root). Ce script va ajouter des choses selon votre distribution linux (il gere au moins Suse, Mandrake, Debian, Redhat, Gentoo et Slackware).
Editez le fichier /etc/suspend.conf et changez SWSUSP_FORCE_SUSPEND_MODE="0" pour SWSUSP_FORCE_SUSPEND_MODE="acpi"
Si vous avez reussi a tout installer correctement, vous devriez pouvoir eteindre votre portable en executant la commande /usr/local/sbin/hibernate.
Avec un portable, vous pouvez faire votre propre "raccourcis" : si vous pressez le bouton power, ca va mettre en hibernation votre portable. Editez le fichier /etc/acpi/events/power et ajoutez dedans :

event=button[ /]power
action=sudo /usr/local/sbin/hibernate

Et configurez sudo :

Host_Alias LOCALHOST=localhost,votremachine
ALL LOCALHOST=NOPASSWD: /usr/local/sbin/hibernate *

et ca devrait fonctionner !
Author : () poste le 30/11/2003 20:58
Comment :
Reply to this comment

Author : Fred (deon_01_at_hotmail.com) poste le 01/12/2003 13:29
Comment :
Bonjour, avec la commande "/usr/local/sbin/hibernate" ; cela marche sans prob ; par contre, après avoir config le btn power, cela fonctionne, puis de nouveau retour au kde ; et ensuite au bout de qques secondes, il se remet tout seul en hibernation :(
Une solution ?

En tout cas, bravo pour le boulot !
Reply to this comment

Author : Sergio31 (xxxxx_2001_at_yahoo.fr) poste le 08/12/2003 02:57
Comment :
Super howto, clair et facile a mettre en oeuvre
Je vais essayer ca voir si ca marche sur mon vaio
Reply to this comment

Author : Sergio31 (xxxxx_2001_at_yahoo.fr) poste le 08/12/2003 02:59
Comment :
Super howto, clair et facile a mettre en oeuvre
Je vais essayer ca voir si ca marche sur mon vaio
Reply to this comment

Author : Sergio Duran (sduran#webco.com.mx) poste le 08/12/2003 18:32
Comment :
Je viens de trouver cette website, c'est chouete... je n'ai pas tout lit, mais j'aimerais ajouter un petit detail...

C'est plus facil de patcher le kernel en utilisant un seul ligne de command, j'ecrirais:
$ bunzip -c file.tar.bz2 | patch -p1
Reply to this comment

Author : gcolpart () poste le 27/12/2003 12:37
Comment :
À noter de belles avancées avec le noyau 2.6.0 où l'ACPI fait de gros progrès (pour moi en tous cas), et il est bien sûr intégré au noyau...
Reply to this comment

Author : kyu (kyu_at_tinybox.net) poste le 26/05/2004 21:20
Comment :
Merci pour ce howto et pour rebondir au commentaire de Sergio, je dirai même :
$ bzcat patch.bz2 | patch -p1
Reply to this comment

Author : bernard d (dardy_at_ac-guyane.fr) poste le 25/06/2004 21:34
Comment :
bravo !!
j'ai un petit probleme avec l'ACPI sur mon TOSH satellite 1900 je suis obligé de le rebooter plusieur fois pour que le demarrage se fasse sans probleme
quelqu'un aurrait une idée ??
Reply to this comment
Author : Carl Grondin (moonlight_std_at_hotmail.com) poste le 07/04/2006 21:25
Comment :
Salut, je n'ai malheureusement pas de réponse à ta question mais j'ai aussi un petit probleme moi meme. J'ai aussi un Toshiba satellite 1900 série '000fs' et j'ai perdu mon cd de restauration XP. Je me demandais s'il serait possible que tu puisse m'envoyer une copie du tien.

Merci

Carl
Reply to this comment


Author : bluelambda (xvr232_at_voila.fr) poste le 17/08/2004 03:48
Comment :
J'ai testé le mode hibernation sur ma Mandrake 10.

Il a sauvegardé tous les trucs, et après lorsque j'allume le PC, il commence la restauration, puis reboote d'un coup. Comment faire pour ignorer la restauration et démarrer normalement ?
Reply to this comment

Author : Sébastien Orange (orange at worldoline dot fr) poste le 21/08/2004 22:58
Comment :
j'ai eu le même problème sur mon compaq 711 :
avec grub, on peut passer des options au noyau.
Je ne sais plus bien ce que j'ai fait mais il me semble que j'ai supprimé le resume=... ou alors j'ai mis acpi=off
La machine a pu redémarer.

En espérant t'avoir aidé..
Reply to this comment

Author : ggauthier (gauthier.geog_at_wanadoo.fr) poste le 23/10/2004 21:27
Comment :
Bonjour, je suis sous mandrake 10 official, packarbell easynote 3248, l'acpi est en fonction, deux choses : le ventilateur tourne tout le temps et lors de mise en veille il ne reaprt pas sur le bureau.
Merci de votre aide
Reply to this comment


Comment closed because of the spam