Thinkpad x61s, lecteur d'empreintes digitales qui chauffe

Propriétaire d’un choupy Lenovo Thinkpad x61s (remplacant de l’IBM thinkpad x31), j’ai remarqué, comme d’autres utilisateurs, que le lecteur d’empreintes digitales chauffait. Ceci pour une très bonne raison, il est alimenté en permanence, même si non utilisé.

L’ajout de usbcore.autosuspend=1 en paramètre du noyau dans mon menu.lst de GRUB n’a pas été suffisant. Ceci ne fait que specifier aux périphériques qu’ils peuvent utiliser la gestion d’énergie en automatique, mais le périphérique fait ce qui lui chante.

Pour régler le problème manuellement, on peut faire un echo « auto » > /sys/devices/[… ]/power/level. Après avoir, bien entendu, recherché le périphérique à coup de lsusb et de cat dans /sys/devices/. Pas très drôle :(

Heureusement udev est là. Il suffit alors d’ajouter une règle dans /etc/udev/rules.d/10-enable-fingerprint-autosuspend.rules, par exemple, contenant (sur une ligne) :
ACTION== »add », SUBSYSTEMS== »usb », SYSFS{idVendor}== »0483″,
SYSFS{idProduct}== »2016″, ATTR{power/level}= »auto »
Une autre solution serait de lancer un script avec :
ACTION== »add », SUBSYSTEMS== »usb », SYSFS{idVendor}== »0483″,
SYSFS{idProduct}== »2016″, RUN+= »/lib/udev/usb-enable-autosuspend »
/lib/udev/usb-enable-autosuspend contenant :
#!/bin/sh
if test -f /sys/$DEVPATH/power/level ; then
echo « auto » > /sys/$DEVPATH/power/level
fi
Mais c’est bien moins élégant.

On peut vérifier ensuite avec powertop -d si la manipulation est effectivement un succès :
Recent USB suspend statistics
Active  Device name
100,0%  Périphérique USB  5-1 : Mini Card (Sierra Wireless, Incorporated)
0,0%  Périphérique USB  1-2 : Biometric Coprocessor (STMicroelectronics) <——
0,0%  Périphérique USB usb6 : EHCI Host Controller (Linux 2.6.26-1-686 ehci_hcd)
100,0%  Périphérique USB usb5 : UHCI Host Controller (Linux 2.6.26-1-686 uhci_hcd)
0,0%  Périphérique USB usb4 : UHCI Host Controller (Linux 2.6.26-1-686 uhci_hcd)
0,0%  Périphérique USB usb3 : EHCI Host Controller (Linux 2.6.26-1-686 ehci_hcd)
0,0%  Périphérique USB usb2 : UHCI Host Controller (Linux 2.6.26-1-686 uhci_hcd)
0,0%  Périphérique USB usb1 : UHCI Host Controller (Linux 2.6.26-1-686 uhci_hcd)
Done !

Clef M6 Mobile 3G+ : Huwaei E160

Je suis aller faire un petit tout dans ma boutique Orange locale pour me prendre un nouveau mobile (Nokia 5220 au demeurant absolument choupy-convi). Là, le vendeur me fait remarquer que si j’ai un lappy (il a appelé cela un ordinateur portable le bougre), il y a une offre intéressante : une clef 3G+ rechargeable façon carte prépayée. La chose coute 69 € mais on me rembourse 30€ à cause de la promo plus encore 20€ pour je sais plus quoi en rapport avec mon nouveau Nokia. Bref, une clef USB 3G/GPRS/GSM/EDGE qui fait storage en plus (avec une micro-SD non incluse) pour 19€. À ce prix là, je me dis qu’avec un peu de chance si la boîte dit Mac OS X, il y a une forte probabilité pour que ça marche avec mes box GNU/Linux… et OUI ! Ça marche. Trop bonheur ! Mon X31 est aux anges et moi aussi…

Si vous pensez que les clefs USB 3G sont des périphériques mystiques galère à mettre en œuvre détrompez-vous. Celle-ci est une Huwaei E160 (une E220 avec un lecteur SD en plus semble-t-il) et elle est prise en charge pas mon noyau 2.6.26.
[73376.467478] usb 1-3: New USB device found, idVendor=12d1, idProduct=1003
[73376.467495] usb 1-3: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[73376.467504] usb 1-3: Product: HUAWEI Mobile
[73376.467510] usb 1-3: Manufacturer: HUAWEI Technology
[73970.701459] usb-storage: probe of 1-3:1.0 failed with error -5
[73970.701503] option 1-3:1.0: GSM modem (1-port) converter detected
[73970.701707] usb 1-3: GSM modem (1-port) converter now attached to ttyUSB0
[73970.706932] usb-storage: probe of 1-3:1.1 failed with error -5
[73970.706968] option 1-3:1.1: GSM modem (1-port) converter detected
[73970.707083] usb 1-3: GSM modem (1-port) converter now attached to ttyUSB1
Ça râle un peu parce qu’il n’y a pas de carte SD en place mais le plus importante c’est le premier port série ajouté. Hé oui, un port série !

Et savez-vous comment on parle à un modem, fut-il 3G ? On lui parle Hayes monsieur, à grand coup de AT*. Et effectivement, un petit screen /dev/ttyUSB0 suivi d’un ATZ et la bête répond OK. À ce moment précis je suis au bord de l’érection (si, si).

Un peu de Google et je tombe sur deux sympathiques liens :

http://arisme.free.fr/Novatel/
http://www.timberwolf.ukfsn.org/debian-orange-3g.html

Le E160 ne supporte pas toutes les commandes décrites mais les faits sont là : c’est un modem, ça parle Hayes et on se connecte en 3G ou GPRS avec… PPP. Voilà qui me rappel bien des souvenirs et des nuits blanches dans ma jeunesse aussi…

Un petit coup d’installe de démon PPP et on se lance. D’abord la configuration du peer dans /etc/ppp/peers/orange :
noauth
connect « /usr/sbin/chat -v -f /etc/chatscripts/orange »
debug
/dev/ttyUSB0
115200
defaultroute
noipdefault
user « orange »
password « orange »
usepeerdns
Puis le script de chat dans /etc/chatscripts/orange :
ABORT BUSY ABORT ‘NO CARRIER’ ABORT VOICE ABORT ‘NO DIALTONE’ ABORT ‘NO DIALTONE’ ABORT ‘NO ANSWER’ ABORT DELAYED
 » ATZ
OK-AT-OK ‘AT+CGDCONT=3, »IP », »orangeinternet »‘
OK-AT-OK ‘AT&FE0Q0V1’
OK-AT-OK ‘ATD*99***1#’
CONNECT «  »
Et hop, un coup de pon orange et l’affaire est dans le sac :
Nov 29 20:30:25 x31 chat[28923]: send (ATZ^M)
Nov 29 20:30:25 x31 chat[28923]: expect (OK)
Nov 29 20:30:25 x31 chat[28923]: ^M
Nov 29 20:30:25 x31 chat[28923]: OK
Nov 29 20:30:25 x31 chat[28923]:  — got it
Nov 29 20:30:25 x31 chat[28923]: send (AT+CGDCONT=3, »IP », »orangeinternet »^M)
Nov 29 20:30:26 x31 chat[28923]: expect (OK)
Nov 29 20:30:26 x31 chat[28923]: ^M
Nov 29 20:30:26 x31 chat[28923]: AT+CGDCONT=3, »IP », »orangeinternet »^M^M
Nov 29 20:30:26 x31 chat[28923]: OK
Nov 29 20:30:26 x31 chat[28923]:  — got it
Nov 29 20:30:26 x31 chat[28923]: send (AT&FE0Q0V1^M)
Nov 29 20:30:26 x31 chat[28923]: expect (OK)
Nov 29 20:30:26 x31 chat[28923]: ^M
Nov 29 20:30:26 x31 chat[28923]: AT&FE0Q0V1^M^M
Nov 29 20:30:26 x31 chat[28923]: OK
Nov 29 20:30:26 x31 chat[28923]:  — got it
Nov 29 20:30:26 x31 chat[28923]: send (ATD*99***1#^M)
Nov 29 20:30:26 x31 chat[28923]: expect (CONNECT)
Nov 29 20:30:26 x31 chat[28923]: ^M
Nov 29 20:30:26 x31 chat[28923]: ^M
Nov 29 20:30:26 x31 chat[28923]: CONNECT
Nov 29 20:30:26 x31 chat[28923]:  — got it
Nov 29 20:30:26 x31 chat[28923]: send (^M)
Nov 29 20:30:26 x31 pppd[28922]: Serial connection established.
Nov 29 20:30:26 x31 pppd[28922]: Using interface ppp0
Nov 29 20:30:26 x31 pppd[28922]: Connect: ppp0 <–> /dev/ttyUSB0
Nov 29 20:30:27 x31 pppd[28922]: CHAP authentication succeeded
Nov 29 20:30:27 x31 pppd[28922]: CHAP authentication succeeded
Nov 29 20:30:30 x31 pppd[28922]: Could not determine remote IP address: defaulting to 10.64.64.64
Nov 29 20:30:30 x31 pppd[28922]: local  IP address 10.32.128.8
Nov 29 20:30:30 x31 pppd[28922]: remote IP address 10.64.64.64
Nov 29 20:30:30 x31 pppd[28922]: primary   DNS address 80.10.46.232
Nov 29 20:30:30 x31 pppd[28922]: secondary DNS address 10.11.12.14
Ensuite, il faut aller sur le portail eWifi d’orange pour acheter un passe temporaire. Je trouve que c’est encore relativement cher mais pour une utilisation ponctuelle c’est toujours moins que les forfaits :

20mn pour 3€ (pass valable 24h)
1h pour 8€ (pass valable 15j)
1h + 1h entre 20h et 8h pour 10€ (pass valable 15j)
24h (ou 75Mo) pour 10€ (pass valable 24h)

En attendant que la SNCF offre un accès Wifi gratuit ou que les Fonera recouvrent le monde, c’est toujours mieux que rien. Me voici tout heureux, capable de me connecter de partout avec un OS du bien… Aller ! J’ouvre une bouteille de Pessac pour l’occasion ! Hop !

Bon j’ai une tonne de papier à remplir, à la main, avec un stylo à utiliser avec les doigts pour me faire rembourser mes 50€ moi…

Changement de disque LVM2 + Crypto et migration des données

Oh ! Le beau titre. Le disque dur de mon beau x31 montrait des faibles depuis quelques temps déjà. Le démon smartd m’informait régulièrement qu’un secteur défectueux avait été trouvé. On le sait tous, ça commence par un secteur et un beau jour on fini par perdre tout le disque. Il fallait réagir. Mais le disque est chiffré avec LUKS et LVM2. Comment migrer tout cela ? Procédure pas-à-pas…Comme détaillé dans un précédent billet, le démontage du disque et sa lecture une fois connecté sur une autre machine via USB n’est pas un problème.

Ouverture du disque chiffré
% cryptsetup luksOpen /dev/sde5 plop
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
Recherche des informations LVM2
% pvscan
PV /dev/dm-1 VG x31 lvm2 [37.02 GB / 0 free]
Total: 1 [37.02 GB] / in use: 1 [37.02 GB] / in no VG: 0 [0 ]

% vgscan
Reading all physical volumes. This may take a while…
Found volume group « x31 » using metadata type lvm2

% lvscan
inactive ‘/dev/x31/root’ [35.46 GB] inherit
inactive ‘/dev/x31/swap_1’ [1.56 GB] inherit

% lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
root x31 -wi— 35.46G
swap_1 x31 -wi— 1.56G
Activation des volumes logiques pour accès depuis /dev/x31/*
% vgchange -a y x31
2 logical volume(s) in volume group « x31 » now active
% ls /dev/x31/
root swap_1
Montage des FS (/ chiffré et /boot classique)
% mount -oro /dev/x31/root /mnt/X/root
% mount -oro /dev/sde1 /mnt/X/boot
Copie des données
% mkdir /mnt/mega20/x31/root
% mkdir /mnt/mega20/x31/boot

% cd /mnt/X/boot
% find . -xdev | cpio -pm /mnt/mega20/x31/boot

% cd /mnt/X/root
% find . -xdev | cpio -pm /mnt/mega20/x31/root
Démontage, désactivation LVM et fermeture LUKS
% umount /mnt/X/root
% umount /mnt/X/boot

% vgchange -a n x31
0 logical volume(s) in volume group « x31 » now active

% cryptsetup luksClose plop

Nouveau disque

Partitionnement
% fdisk /dev/sde
Command (m for help): p

Disk /dev/sde: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sde1 1 9729 78148161 b W95 FAT32

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-9729, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-9729, default 9729): 31

Command (m for help): p

Disk /dev/sde: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sde1 1 31 248976 83 Linux

Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (32-9729, default 32):
Using default value 32
Last cylinder or +size or +sizeM or +sizeK (32-9729, default 9729):
Using default value 9729

Command (m for help): p

Disk /dev/sde: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sde1 1 31 248976 83 Linux
/dev/sde2 32 9729 77899185 5 Extended

Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (32-9729, default 32):
Using default value 32
Last cylinder or +size or +sizeM or +sizeK (32-9729, default 9729):
Using default value 9729

Command (m for help): p

Disk /dev/sde: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sde1 1 31 248976 83 Linux
/dev/sde2 32 9729 77899185 5 Extended
/dev/sde5 32 9729 77899153+ 83 Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
Création FS pour /boot, montage et copie
% mke2fs /dev/sde1
% mount /dev/sde1 /mnt/X/boot/
% cd /mnt/mega20/x31/boot
% find . -xdev | cpio -pm /mnt/X/boot
Création LUKS
% cryptsetup –verbose –verify-passphrase luksFormat /dev/sde5
WARNING!
========
This will overwrite data on /dev/sde5 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.
Ouverture LUKS
% cryptsetup luksOpen /dev/sde5 plop
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
Création du volume physique
% pvcreate /dev/mapper/plop
Physical volume « /dev/mapper/plop » successfully created
Création du groupe x31
% vgcreate x31 /dev/mapper/plop
Volume group « x31 » successfully created

% pvscan
PV /dev/mapper/plop VG x31 lvm2 [74,29 GB / 74,29 GB free]
Total: 1 [74,29 GB] / in use: 1 [74,29 GB] / in no VG: 0 [0 ]
Création des volumes logiques
% lvcreate -L 1560M -n swap_1 x31
Logical volume « swap_1 » created
% lvcreate -l 100%FREE -n root x31
Logical volume « root » created

% lvscan
ACTIVE ‘/dev/x31/swap_1’ [1,52 GB] inherit
ACTIVE ‘/dev/x31/root’ [72,77 GB] inherit
Les volumes sont automatiquement actifs. Création du SWAP
% mkswap /dev/x31/swap_1
Setting up swapspace version 1, size = 1635774 kB
no label, UUID=989ba8ea-aab4-4b81-af31-06112abc66e1
Création FS racine et copie
% mke2fs -j /dev/x31/root
% mount /dev/mapper/x31-root /mnt/X/root/

% cd /mnt/mega20/x31/root
% find . -xdev | cpio -pm /mnt/X/root
Démontage, désactivation et fermeture LUKS
% umount /mnt/X/root
% umount /mnt/X/boot

% vgchange -a n x31
0 logical volume(s) in volume group « x31 » now active

% cryptsetup luksClose plop

Bootloader Grub
On install GRUB sur le disque USB hd2. stage2 est pointé sur hd2 mais par défaut il est cherché sur le même disque que stage1 (secteur de boot). menu.lst est bien pointé sur le futur hd0 seul disque du lappy

% grub
grub> install (hd2,0)/grub/stage1 (hd2) (hd2,0)/grub/stage2 (hd0,0)/grub/menu/lst
^D

Lecture d'un disque LVM2+crypto d'un lappy x31

Chiffrer et utiliser des volumes logique sur un portable/lappy c’est bien. Debian propose une installation directe avec LVM2 et LUKS. Mais comment lire les données et récupérer les info lorsqu’on sort le disque du lappy qui donne des signes de faiblesse et qu’on le branche en USB sur un autre système ?

Le Thinkpad x31 est un amour. Non seulement c’est configurable à souhait avec GNU/Linux mais, en plus, c’est du très bon matériel et il est bourré de petites choses qui font la différence avec du lappy bas de gamme. L’une de ces petites choses est la facilité avec laquelle on peut changer de disque dur. On retire une simple vis et on glisse le disque hors du boîtier. Le disque est, en effet, placé dans un petit berceau tout mignon. Ne reste, ensuite, qu’à utiliser un adaptateur IDE/ATA en USB2 et par ici les données…

Le reste est logiciel.

Connexion du disque en USB :
usb-storage: device found at 31
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 29:0:0:0: Direct-Access Generic USB Disk 9.02 PQ: 0 ANSI: 2
sd 29:0:0:0: [sdf] 78140160 512-byte hardware sectors (40008 MB)
sd 29:0:0:0: [sdf] Write Protect is off
sd 29:0:0:0: [sdf] Mode Sense: 03 00 00 00
sd 29:0:0:0: [sdf] Assuming drive cache: write through
sd 29:0:0:0: [sdf] 78140160 512-byte hardware sectors (40008 MB)
sd 29:0:0:0: [sdf] Write Protect is off
sd 29:0:0:0: [sdf] Mode Sense: 03 00 00 00
sd 29:0:0:0: [sdf] Assuming drive cache: write through
sdf: sdf1 sdf2 < sdf5 >
On retrouve les deux partitions de base, la première pour /boot, non chiffrée et la seconde chiffrée. On utilise ensuite cryptsetup pour « ouvrir » de périphérique bloc avec LUKS :
% cryptsetup luksOpen /dev/sdf5 plop
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
On se retrouve avec un /dev/mapper/plop qui est le périphérique bloc déchiffré. Seconde phase, trouver les données LVM2. C’est facile :
Volume physique :

% pvscan
PV /dev/dm-1 VG x31 lvm2 [37.02 GB / 0 free]
Total: 1 [37.02 GB] / in use: 1 [37.02 GB] / in no VG: 0 [0 ]
Groupe de volumes :

% vgscan
Reading all physical volumes. This may take a while…
Found volume group « x31 » using metadata type lvm2
Volumes logiques :

% lvscan
inactive ‘/dev/x31/root’ [35.46 GB] inherit
inactive ‘/dev/x31/swap_1’ [1.56 GB] inherit
% lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
root x31 -wi— 35.46G
swap_1 x31 -wi— 1.56G
Bien ! On retrouve nos petits. Il suffit ensuite d’activer les volumes pour pouvoir y accéder depuis /dev :
% vgchange -a y x31
2 logical volume(s) in volume group « x31 » now active
% ls /dev/x31/
root swap_1
Ne reste plus qu’à monter tout cela :
% mount -oro /dev/x31/root /mnt/loo/
% ls /mnt/loo/
bin home media sbin usr
boot initrd mnt selinux var
cdrom initrd.img opt srv vmlinuz
dev lib proc sys
etc lost+found root tmp
Et voilà, y’a plus qu’à…

Ensuite, démontage et déconnexion :
% umount /mnt/loo
% vgchange -a n x31
0 logical volume(s) in volume group « x31 » now active
% cryptsetup luksClose plop
Fini !

PS : il ne manque qu’une chose au x31, une séquence de touches magique permettant, comme sur un Mac, de démarrer le matériel en le transformant en périphérique USB Mass Storage… Je sais j’en demande beaucoups… mais ça manque…

Configurer un beau WDM pour mon x31

Les choix ne manquent pas en ce qui concerne les Display Managers. Le plus courant est sans doute maintenant le GDM de Gnome suivi par XDM pour les systèmes se voulant un peu plus léger. Pour ma part, j’aime bien WDM (WINGs Display Manager) parce qu’il s’agit d’un choix cohérent lorsqu’on utilise WindowMaker et parce qu’il est léger et implique peu de dépendances (comparé à GDM).

La configuration, sur un système Debian, passe par l’édition des fichiers présents dans /etc/X11/wdm. wdm-config est le plus important. On configure le fond d’écran avec :
DisplayManager*wdmBg: pixmap:/chemin/image.png
On en profite pour spécifier le gestionnaire de fenêtre :
DisplayManager*wdmWm: wmaker
Cette ligne sera réécrite automatiquement en fonction des gestionnaires installés. Pour éviter cela, c’est dans le wdm.options que nous commentons :
#auto-update-wmlist
En fonction du fond, il est peut-être souhaitable de ne pas laisser la fenêtre se placer toute seule au centre de l’écran. Il faut alors créer un fichier wdmlogin.conf et y spécifier la taille et l’emplacement correctes :
{
geometry = (520, 230, 490, 316);
}
Pour tuner un peu, on remplace aussi le logo qui fait un peu tache, c’est à nouveau dans le wdm-config que ça se passe :
DisplayManager*wdmLogo: /chemin/logo.png
L’astuce utilisée ici consiste simplement à faire une capture d’écran de WDM puis de jouer avec The Gimp pour intégrer proprement le nouveau logo en s’aidant au passage du fond choisi.

Faire une capture d’une ouverture de session WDM se fait simplement en utilisant Xnest. On commence par autoriser les connexion XDMCP dans le wdm-config :
DisplayManager.requestPort: 177
Puis, par exemple depuis une autre machine, on utilise :
% Xnest :1 -geometry 1024×768 -query nom_serveur_ou_IP
Capturez ensuite avec ce qui vous chante, import d’ImageMagick ou The Gimp…

Note : Si par curiosité vous vous demandez qui peut bien être ce sublime personnage, sachez que c’est Caprica-6, un Cylon de la série Battlestar Galactica. Wikipedia vous en dira plus…

Nouveau jouet : Thinkpad x31

Ah ! Noël ! La période des cadeaux. La période où on se fait de beaux cadeaux. Et dans la catégorie des cadeaux que je me suis fait cette année voici l’IBM Thinkpad x31.

La machine est du reconditionné constructeur acheté chez laptopservice pour quelques 399€ + 20€ pour 1 Go de mémoire + port (+ 40€ de batterie sur eBay, cf plus bas). Voici quelques tips pour utiliser Debian Etch/Lenny sur la chose.

Installation classique depuis le CD NetInst Debian avec sélection de paquets Laptop et (oups) Environnement graphique.
De base tout est reconnu : Wifi, Ethernet (Giga svp), FireWire, Bluetooth, USB, SpeedStep, touches de fonction, suspend to RAM, carte son, carte vidéo, PCMCIA
Mise en sommeil lors de la fermeture de l’écran :
% cd /etc/acpi
% mv lid.sh lid.sh.old
% ln -s sleep.sh lid.sh

Installation du module tp_smapi :
% aptitude install tp-smapi-source
% module-assistant prepare tp-smapi
% module-assistant auto-install tp-smapi
% modprobe -a tp_smapi

Maintenant on sait pourquoi le portable ne tient pas 1h sur batteries :
% cat /sys/devices/platform/smapi/BAT0/first_use_date
2004-07-24
% cat /sys/devices/platform/smapi/BAT0/cycle_count
489

modprobe de ibm_acpi, et hop hibernate marche au poilt . Il faut juste éditer /etc/acpi/events/ibm-hibernatebtn
Des boutons de fonction plus convi ? Simple :
aptitude install tpb

Je ne vais pas tout détailler ici, je pense faire un papier à ce propos dans GLMF. Ceci dit, c’est un achat que je regrette pas du tout. J’ai pris contacte avec la société qui m’a vendu le lappy à propos de la batterie annoncée pour 3h environ d’autonomie. On verra ce que ca donne.