Installation de Debian sur un ThinkPad Edge 11″
Vincent Bernat
Depuis plusieurs mois, mon portable, un Asus S5N, présentait de nombreuses faiblesses, dont notamment de nombreux problèmes avec Xorg liés à l’ancienneté du chipset graphique i855GME. Ce dernier supportait mal les diverses évolutions technologiques liées à Xorg, notamment l’utilisation de GEM et de KMS. Celles-ci révélaient de nombreux bugs dans le chipset.
Mon usage pour un portable étant plutôt limité, je n’ai pas tenté d’investir dans un portable plus récent jusqu’à croiser une promotion sur les ThinkPad Edge de la part de Lenovo. Me voilà donc propriétaire d’un ThinkPad Edge 11″.
Matériel#
Le ThinkPad Edge représente le bas de gamme de la série ThinkPad chez Lenovo. Il est courant de l’obtenir pour 500 € environ.
Caractéristiques techniques#
En France, Lenovo ne vend pas directement ses portables et il n’est alors pas possible de les configurer à sa guise. On doit donc choisir parmi les quelques modèles disponibles. Cela contraste fortement avec ce que pouvait proposer IBM.
Voici les principales caractéristiques de celui que j’ai acquis :
- un CPU Intel Core i3 380UM cadencé à 1,33 GHz.
- écran 11.6″ à LED, résolution de 1366x768
- 4 Gio de RAM
- 320 Gio de disque dur
- Wifi (Centrino Wireless-N) et bluetooth
- Carte 3G
C’est un petit portable mais son poids n’est pas négligeable (1,5 kg). Il n’est livré qu’avec son alimentation. Asus avait fourni avec mon ancien portable une souris sans fil, une housse, une sacoche, une clé USB, un graveur de CD et sans doute d’autres choses. Ici, le portable et l’alimentation. C’est tout.
D’un côté, deux ports USB, de l’autre côté, un port USB, un port HDMI, le port réseau et une prisque casque. Une prise VGA se trouve à l’arrière, tout comme le connecteur d’alimentation.
BIOS#
Première étape au niveau du BIOS, vérifier les réglages principaux. Ce dernier propose de désactiver tous les périphériques superflus (WiMAX par exemple). Le clavier peut également se configurer pour que les touches de fonction soient accessibles directement sans utiliser la touche « Fn ».
Notons une option nommée Computrace qui semble liée au produit du même nom de la société AbsoluteSoftware. Il s’agirait de tracer le portable où qu’il soit. Je désactive cette fonctionnalité.
Installation de Debian#
Je décide d’installer Debian depuis une clé USB (il n’y a pas de lecteur de CD de toute façon). La manipulation est relativement simple. Il suffit de récupérer l’image ISO que l’on souhaite installer (dans mon cas, celle pour AMD64 en testing car je compte mettre à jour en unstable ensuite) et de la copier sur la clé USB ainsi :
# dd if=debian-testing-amd64-netinst.iso of=/dev/sdb
La méthode consistant à rendre la clé USB bootable, y installer un noyau et un initrd n’est plus d’actualité.
Je m’évite d’ailleurs sans doute quelques ennuis en utilisant ainsi la version de développement de Debian vu qu’il semble que la carte réseau ne soit pas reconnue correctement avec le 2.6.32 de Squeeze. Un problème de moins à gérer.
Lors de l’installation, j’opte pour un partitionnement guidé utilisant
LVM et le chiffrement. Je choisis de séparer toutes les partitions car
je trouve cela très pratique que /tmp
et /var
ne viennent pas se
marcher dessus. Toutefois, j’ai noté à de nombreuses reprises que
dédier une partition pour /usr
posait de plus en plus de problèmes
et que de nombreux dévelopeurs souhaitaient la disparition de cette
pratique. Je modifie donc le partitionnement proposé pour intégrer
/usr
dans la racine et laisser de la place libre sur le LVM pour des
usages futurs.
L’installeur Debian n’est d’ailleurs pas d’une brillante simplicité pour modifier le partionnement puisqu’il faut détruire les volumes existants pour les recréer si on veut en changer simplement les tailles. Il est toutefois toujours plus rapide d’effectuer cette opération que de coder le correctif qui permettrait de l’accélérer.
Je aime n’avoir que le strict minimum. Je me passe donc de tasksel
au cours de l’installation pour installer moi-même le reste de
l’environnement à coup de aptitude
. Le reste de l’installation se
déroule sans problème.
Le système reboote sur un 2.6.38, me demande le mot de passe pour le déchiffrement du LVM et me présente ensuite l’invite de connexion en mode texte.
Configuration du système#
À première vue, le matériel semble bien supporté. Il n’y a donc pas d’incantations mystérieuses à lancer avant d’obtenir le support du sous-système disque ou du réseau. Je peux donc commencer par mettre en place mon environnement de travail habituel.
Mise en place de l’environnement#
Je configure généralement mon système au fil de l’eau. La
configuration de base est donc très rapide. Je commence par changer
/etc/apt/sources.list
pour utiliser unstable :
deb http://ftp.fr.debian.org/debian/ unstable main deb-src http://ftp.fr.debian.org/debian/ unstable main deb http://ftp.fr.debian.org/debian/ experimental main contrib non-free
Je veux ensuite que si je prends quelque chose dans experimental,
les mises à jour soient effectuées également dans experimental. Cela
évite d’avoir à se retrouver avec une vieille version de Firefox. Pour
réaliser ceci, il suffit de créer un fichier
/etc/apt/preferences.d/experimental
:
Package: * Pin: release experimental Pin-Priority: 101
J’installe ensuite les paquets suivants :
zsh
, mon shell de prédilection pour lequel je reprends la config sur un autre système. Il faudra sans doute que je mette ça un jour sur GitHub.mg
, mon éditeur léger pour éditer sous root les fichiers de configuration. Je n’aime pasvi
que j’utilise en dernier recours. J’ai longtemps utiliséjed
mais la configuration par défaut est plutôt casse-pied à couper les lignes et il manque pas mal de bindings emacs.emacs
, mon environnement de travail. Je l’utilise comme éditeur de texte et lecteur de mail (avec Gnus). Je ne navigue pas avec et je ne lui confie pas mes shells. J’ai aussi des fichiers de configuration tout fait. Pareil, faudra que je trie un peu un jour.fvwm
, mon environnement graphique depuis pas mal de temps. Je copie aussi la configuration depuis une autre machine. Cela mériterait sans doute d’attérir sur GitHub. J’ai également besoin defvwm-crystal
vu que ma configuration de FVWM dérive de cette personnalisation. J’utilise égalementconky
.rxvt-unicode
, mon terminal. Il supporte la transparence (en émulation ou par compositing). Il est léger, rapide, on peut facilement rechercher dans le backbuffer. Il a un système client serveur qui fait que s’il crashe, on perd toutes les fenêtres d’un coup. Cela n’arrive quasiment jamais.unison
, l’outil que j’utilise pour synchroniser mes différentes machines. En gros, je dois pouvoir travailler sur le portable comme je travaille sur mon fixe. Unison est un outil formidable pour ça.sudo
car je ne me loggue quasiment jamais en root.gdm3
comme programme d’accueil, c’est en effet le seul à savoir communiquer correctement avec ConsoleKit et donc configurer correctement les droits, y compris quand on passe d’une console à l’autre.
À noter également que je ne compile plus mon noyau depuis un petit bout de temps. Les noyaux fournis par Debian me conviennent parfaitement et la passion de recompiler mon noyau avant de brancher un périphérique USB m’est passée.
J’enlève ensuite les paquets rpcbind
et nfs-common
qui ne me sont
d’aucune utilité. Je mets de plus en place un firewall basique avec le
paquet ferm
. Voici mon ferm.conf
:
domain (ip ip6) { table filter { chain INPUT { policy DROP; mod state state INVALID DROP; mod state state (ESTABLISHED RELATED) ACCEPT; interface lo ACCEPT; proto tcp dport ssh ACCEPT; } chain OUTPUT { policy ACCEPT; mod state state (ESTABLISHED RELATED) ACCEPT; } chain FORWARD { policy DROP; } } }
Une fois les paquets installés, je configure unison
pour effectuer
la synchronisation. Le gros de la configuration est alors fini.
Configuration des différents éléments matériels#
Viens ensuite la partie assez pénible sur les portables récents :
configurer l’ensemble des périphériques pour que tout fonctionne (y
compris la webcam que l’on n’utilisera plus jamais ensuite). Un coup
de lspci
et de lsusb
plus tard et on se rend compte que les
éléments les plus importants vont fonctionner sans trop de problèmes.
En ce qui concerne lspci
:
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02) 00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02) 00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06) 00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06) 00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06) 00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06) 00:1c.1 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 (rev 06) 00:1c.5 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 6 (rev 06) 00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6) 00:1f.0 ISA bridge: Intel Corporation Mobile 5 Series Chipset LPC Interface Controller (rev 06) 00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 4 port SATA AHCI Controller (rev 06) 00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06) 00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 06) 03:00.0 Network controller: Intel Corporation Centrino Wireless-N 1000 09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02) ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02) ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02) ff:02.1 Host bridge: Intel Corporation Core Processor QPI Physical 0 (rev 02) ff:02.2 Host bridge: Intel Corporation Core Processor Reserved (rev 02) ff:02.3 Host bridge: Intel Corporation Core Processor Reserved (rev 02)
Et pour lsusb
(à noter que j’ai désactivé la carte 3G qui n’apparaît
donc pas ici) :
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 003: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader Bus 001 Device 004: ID 0a5c:217f Broadcom Corp. Bluetooth Controller Bus 002 Device 003: ID 5986:01a7 Acer, Inc Lenovo Integrated Webcam
On prendra également sous le coude la page dédiée au ThinkPad Edge 11″ sur ThinkWiki (ce wiki est un des gros avantages à acheter un ThinkPad, même si la multiplication des modèles par Lenovo dilue un peu l’information).
Le noyau fourni par Debian charge ainsi nombre de modules par
défaut. Certains d’entre eux aideront à différents moments de la
configuration, notammant thinkpad_acpi
.
À noter que je n’utilise pas un environnement de bureau type GNOME et
que je fais donc appel aux outils en ligne de commande pour configurer
la majeure partie des éléments. Je place les commandes adéquates dans
mon .xsession
quand la configuration est liée au serveur X. Il
existe la plupart du temps un équivalent graphique des commandes en
question.
Mise à jour du BIOS#
lshw
m’indique que mon BIOS est version 1.09 datée de février
2011. Il semble donc inutile de mettre à jour le BIOS. Lenovo fournit
des images ISO que l’on peut booter avec GRUB en utilisant un loader
intermédiaire fourni par syslinux. ThinkWiki fournit
la procédure à suivre. L’image memdisk
demandée est
dans le paquet syslinux
.
Carte graphique#
La carte graphique est intégrée directement dans le processeur. Comme Intel a pour habitude de contribuer à Xorg sauf pour quelques épisodes malheureux, le support est généralement assez bon à condition d’avoir un Xorg assez récent. ThinkWiki nous indique :
A very recent Linux distribution with kernel 2.6.33 and Intel Xorg driver 2.11 or newer is recommended. Note that XVideo (Xv) playback at certain frame sizes does not work properly unless you have at least version 2.12 of the Intel Xorg driver.
Sous Debian Wheezy, on est déjà à la version 2.15 et il n’y a donc
aucune difficulté à faire fonctionner le serveur X. La présence du
paquet xserver-xorg-video-intel
et l’absence du fichier
/etc/X11/xorg.conf
conduit directement à un serveur X fonctionnel.
Concernant les sorties VGA et HDMI, là encore, aucuns soucis, tout est
reconnu directement par xrandr
:
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192 LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 256mm x 144mm 1366x768 60.0*+ 50.0 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis)
Le compositing est parfaitement supporté (je n’utilise que la transparence, je ne sais donc pas quelle est la vitesse de l’ensemble sur un bureau plus moderne que le mien).
Enfin, en ce qui concerne l’accélération vidéo, l’extension XVideo
est supportée ainsi que le décodage matériel, comme l’atteste vainfo
une fois le paquet i965-va-driver
installé.
libva: libva version 0.32.0 libva: va_getDriverName() returns 0 libva: Trying to open /usr/lib/dri/i965_drv_video.so libva: va_openDriver() returns 0 vainfo: VA API version: 0.32 vainfo: Driver version: i965 Driver 0.1 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Baseline : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264High : VAEntrypointVLD
Sous Debian, on peut utiliser VLC pour tester. Il faut activer
l’accélération matérielle en mettant ffmpeg-hw=1
dans
~/.config/vlc/vlcrc
. On est alors salué par :
[0x2629040] avcodec decoder: Using VA API version 0.32 for hardware decoding.
Réseau#
La carte réseau fonctionne sans manipulation particulière. Elle ne semble pas nécessiter de firmware du tout. ThinkWiki indique que la carte réseau a des problèmes de stabilité en 2.6.36. Je n’ai pas rencontré de problème avec le 2.6.37 utilisé par l’installeur Debian et rien non plus avec le 2.6.38 qui tourne actuellement. Je suppose donc qu’il s’agit d’un problème qui n’est plus d’actualité.
UltraNav#
L’UltraNav est la combinaison du trackpad (que l’on retrouve sur de nombreux portables) et du trackpoint qui est généralement un périphérique propre aux portables IBM et qui se présente sous la forme d’un ergot que l’on pilote par pression du doigt.
La configuration d’un périphérique de pointage se fait désormais avec
l’utilitaire xinput
(ou avec un équivalent graphique). Voici la
sortie de xinput list
:
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] ⎜ ↳ TPPS/2 IBM TrackPoint id=12 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ Integrated Camera id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=13 [slave keyboard (3)]
On y trouve donc le touchpad et le trackpoint. On peut ensuite
utiliser la commande xinput list-props
pour obtenir des infos sur
chacun des périphériques ainsi découverts. On utilise ensuite xinput
set-prop
pour modifier celles qui nous intéressent. Je veux par
exemple activer le scrolling en utilisant les côtés et activer la
détection de la paume :
$ xinput set-int-prop "SynPS/2 Synaptics TouchPad" 'Synaptics Edge Scrolling' 8 1 1 0 $ xinput set-int-prop "SynPS/2 Synaptics TouchPad" 'Synaptics Palm Detection' 8 1
Ou alors, si on ne veut pas de touchpad du tout :
$ xinput set-int-prop "SynPS/2 Synaptics TouchPad" 'Synaptics Off' 8 1
Les explications sur les différents paramètres possibles, ainsi que
leurs types et leurs formats sont décrits dans man 4 synaptics
. Le
principe est le même pour le trackpoint mais on regardera man 4
evdev
pour avoir plus de renseignements. Par exemple, pour activer
le scrolling en utilisant le bouton du milieu, on peut faire :
$ xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 8 1 $ xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 8 2
On place tout ceci dans son ~/.xsession
.
Touches spéciales du clavier#
Les touches situées en haut du clavier et s’activant à l’aide de la touche Fn permettent d’accéder rapidement à certaines fonctionnalités :
- ajustement du volume sonore
- ajustement de la luminosité de l’écran
- activation de la caméra ou de l’écran externe
- activation du wifi
- touches multimédia
Tous les systèmes de touches ont été uniformisés au niveau du noyau. La
commande xinput list
donne une liste de claviers. Chaque touche va
arriver sur l’un de ces claviers. Ainsi, les touches de volume et les
touche multimédia arrivent directement sur le clavier
physique. L’activation du wifi, de la webcam et de l’écran externe
arrivent sur un clavier virtuel ThinkPad Extra Buttons
. Les touches
de luminosités arrivent sur le clavier Video bus
. Tout ceci peut se
vérifier avec l’utilitaire evtest
.
Le démon acpid
écoute sur tous les « claviers » pour obtenir les
évènements correspondant. C’est ainsi que la touche pour le wifi
déclenche le script ibm-wireless.sh
de la part de acpid
.
Le serveur X écoute également tous ces claviers et peut donc fournir aux applications les évènements associés. Tout fonctionne donc tout seul.
Carte son#
Comme pour la carte réseau, la carte son est reconnue et fonctionnelle directement.
J’utilise PulseAudio notamment car il permet de configurer les
volumes application par application mais également parce qu’il permet
de passer une application d’une carte son à une autre (par exemple
vers une oreillette Bluetooth). Je place donc dans mon ~/.asoundrc
les lignes suivantes :
pcm.!default { type pulse } ctl.!default { type pulse }
Cela permet de rendre compatible la plupart des applications avec
PulseAudio. J’utilise ensuite pavucontrol
comme mixer. Tout semble
fonctionner. Il est possible de choisir simplement la sortie HDMI au
cas où on branche le PC sur une télévision.
Wifi#
Un firmware est nécessaire pour faire fonctionner la carte
wifi. Celui-ci est contenu dans le paquet firmware-iwlwifi
. On peut
ensuite charger le driver iwlagn
. La commande rfkill list
nous
indique si le wifi est bien activé.
La commande iw list
nous donnera l’état de la carte wifi :
Wiphy phy0 Band 1: Capabilities: 0x872 HT20/HT40 Static SM Power Save RX Greenfield RX HT20 SGI RX HT40 SGI No RX STBC Max AMSDU length: 3839 bytes No DSSS/CCK HT40 Maximum RX AMPDU length 65535 bytes (exponent: 0x003) Minimum RX AMPDU time spacing: 4 usec (0x05) HT RX MCS rate indexes supported: 0-15, 32 TX unequal modulation not supported HT TX Max spatial streams: 1 HT TX MCS rate indexes supported may differ Frequencies: * 2412 MHz [1] (14.0 dBm) * 2417 MHz [2] (14.0 dBm) * 2422 MHz [3] (14.0 dBm) * 2427 MHz [4] (14.0 dBm) * 2432 MHz [5] (14.0 dBm) * 2437 MHz [6] (14.0 dBm) * 2442 MHz [7] (14.0 dBm) * 2447 MHz [8] (14.0 dBm) * 2452 MHz [9] (14.0 dBm) * 2457 MHz [10] (14.0 dBm) * 2462 MHz [11] (14.0 dBm) * 2467 MHz [12] (14.0 dBm) (passive scanning, no IBSS) * 2472 MHz [13] (14.0 dBm) (passive scanning, no IBSS) Bitrates (non-HT): * 1.0 Mbps * 2.0 Mbps (short preamble supported) * 5.5 Mbps (short preamble supported) * 11.0 Mbps (short preamble supported) * 6.0 Mbps * 9.0 Mbps * 12.0 Mbps * 18.0 Mbps * 24.0 Mbps * 36.0 Mbps * 48.0 Mbps * 54.0 Mbps max # scan SSIDs: 20 Supported interface modes: * IBSS * managed * monitor
Dans mon cas, tous les canaux 802.11a ont été désactivés.
iwlagn 0000:03:00.0: Detected Intel(R) Centrino(R) Wireless-N 1000 BGN, REV=0x6C iwlagn 0000:03:00.0: device EEPROM VER=0x15d, CALIB=0x6 iwlagn 0000:03:00.0: Device SKU: 0X9 iwlagn 0000:03:00.0: Valid Tx ant: 0X1, Valid Rx ant: 0X3 iwlagn 0000:03:00.0: Tunable channels: 13 802.11bg, 0 802.11a channels iwlagn 0000:03:00.0: irq 44 for MSI/MSI-X iwlagn 0000:03:00.0: loaded firmware version 128.50.3.1 build 13488
Cela doit sans doute pouvoir se régler quelque part mais étant donné que je n’ai jamais eu l’usage du 802.11a, je ne cherche pas plus loin.
Pour tout ce qui est wifi, j’utiliser Network Manager. Il me semble
que c’est beaucoup plus simple que de s’amuser en ligne de commande
avec iw
, lister les AP, en trouver une, s’y associer, jouer avec
wpa_supplicant
, etc. Pour une connexion 3G, il devient carrément
indispensable.
Il y a de plus eu un large débat dans debian-devel@ldo sur le fait que Network Manager puisse être utilisé sur des serveurs. A priori, cela parait choquant mais c’est dans le domaine du possible. Je vais tenter de capitaliser dessus.
Bluetooth#
Le chipset Bluetooth est monté sur un adaptateur USB et est reconnu
par le driver hci_usb
. Il supporte la norme AD2P qui permet
d’écouter de la musique dans les casques adéquats. Il
est possible de vérifier le bon fonctionnement du chipset avec la
commance hciconfig
.
Le bluetooth fait partie des périphériques qu’il vaut mieux configurer avec une application graphique plutôt qu’en ligne de commande. BlueZ, la pile Bluetooth de Linux, repose énormément sur DBus pour fonctionner et les utilitaires en ligne de commande ont été dépréciés. Si vous ne voulez pas vous battre avec un binding DBus pour piloter votre dongle Bluetooth, il semble donc préférable d’opter pour un utilitaire graphique.
Le paquet gnome-bluetooth
est fourni avec une applet qui assure le
strict minimum mais qui permet de s’associer sans problème avec un
périphérique Bluetooth. Après installation du paquet
pulseaudio-module-bluetooth
, le casque audio apparaît au niveau de
PulseAudio.
3G#
Pour configurer la carte 3G, le plus difficile est de récupérer les
firmwares adéquats. La page ThinkWiki dédiée fournie les
informations nécessaires pour les obtenir. Je n’ai pas gardé le
Windows qui était installé sur la machine. J’ai donc récupérés les
drivers Qualcomm Gobi 2000 Wireless WAN et je les ai
décompactés avec le premier Windows qui passait par là avec l’aide de
msiexec
. Contrairement à ce qui est dit sur le wiki, msiexec
ne
prend pas directement l’exécutable. Il faut l’exécuter pour obtenir le
.msi
.
Pour le firmware, j’ai pris celui par défaut étant donné que mon portable n’est pas SIM locké. Encore une fois, la page sur ThinkWiki explique quel firmware choisir.
Le paquet gobi-loader
doit être installé pour pouvoir faire
fonctionner la carte 3G. Les trois fichiers amss.mbn
, apps.mbn
et
UQCN.mbn
doivent être placés dans /lib/firmware/gobi
. Ils seront
alors chargés automatiquement par udev
au prochain boot. Pour les
charger dès mainetnant, on peut utiliser :
# /lib/udev/gobi_loader -2000 /dev/ttyUSB0 /lib/firmware/gobi
La configuration 3G peut ensuite être configurée avec Network
Manager qui est très pratique pour ça. Attention à vérifier que la
carte 3G n’est pas bloquée avec rfkill list
.
Pour le GPS, il faut l’activer depuis Windows. Je n’ai donc pas testé cette partie.
Webcam#
Les webcams USB sont standardisées autour du standard UVC et Linux
dispose d’un driver pour piloter ce type de webcam. Il n’y a
donc aucune difficulté à faire fonctionner la webcam. On vérifie que
le module uvcvideo
a été chargé et qu’il détecte bien la webcam :
uvcvideo: Found UVC 1.00 device Integrated Camera (5986:01a7)
On peut tester rapidement le bon fonctionnement de celle-ci avec
l’utilitaire cheese
.
Lecteur de cartes#
Encore une fois, il n’y a rien à faire. On insère la carte dans le lecteur et elle est tout de suite reconnue.
Mise en veille#
J’opte pour le paquet uswsusp
qui permet de gérer la mise en veille
en mémoire ainsi que la mise en veille prolongée. On exploite ensuite
les commandes du paquet pm-utils
.
La commande pm-suspend
active la veille en mémoire. Le retour de
veille est alors un peu fastidieux (une minute en tout). Le noyau
indique :
r8169 0000:09:00.0: eth0: unable to apply firmware patch PM: resume of devices complete after 60786.035 msecs PM: Finishing wakeup.
L’installation du paquet firmware-realtek
permet de résoudre ce
problème en attendant qu’il soit résolu dans le noyau. De temps en
temps, le retour de veille s’accompagne du message suivant :
[drm:i915_hangcheck_ring_idle] *ERROR* Hangcheck timer elapsed... render ring idle [waiting on 9297, at 9297], missed IRQ?
Ce message est accompagné d’un serveur X qui devient alors très
lent. Passer i915.semaphores=1
comme paramètre au noyau fait
disparaître ce message mais la lenteur persiste. Démarrer powertop
résoud le problème ! Il s’agirait d’un problème connu.
Notons que le portable tient plutôt bien la batterie quand il est en veille. Au bout de 6 heures, il ne perd que 2 % de batterie. Il est donc possible de le laisser plusieurs jours ainsi.
La commande pm-hibernate
active la veille sur disque. L’hibernation
se passe sans problème. Le retour d’hibernation ne fonctionne
cependant pas. L’image est bien chargée en mémoire mais le système est
alors freezé. Il existe un peu de
documentation pour déterminer le problème mais le 2.6.39
sortant bientôt, il me semble plus simple d’attendre de voir si cela
corrige le problème.
Gestion de l’énergie#
Penchons nous ensuite sur l’efficacité énergétique. L’installation du
paquet cpufrequtils
permet de changer le gouverneur utilisé par le
processeur pour utiliser ondemand
qui va descendre la vitesse du
processeur de 1,33 GHz à 666 MHz lorsque celui-ci n’est pas sollicité.
Pour le reste, il y a plusieurs approches possibles :
- L’utilisation du paquet
pm-utils
qui effectue un certain nombre d’actions selon les évènements ACPI reçus, comme par exemple activer certaines fonction d’économie d’énergie comme le mode « laptop ». Il n’agit toutefois que sur les évènements ACPI. Donc, pas d’ajustement de la luminosité de l’écran en cas d’inactivité et pas de mise en veille en cas de longue inactivité. On peut donc y adjoindresleepd
mais je n’ai rien trouvé pour la luminosité de l’écran. - L’utilisation du paquet
laptop-mode-tools
est très similaire, mais commepm-utils
doit de toute façon être installé, cela devient un peu redondant. - L’utilisation de
gnome-power-manager
qui s’interface avec le démonupowerd
. A priori,gnome-power-manager
est assez léger, du moment que l’on utilise aussi un environnement graphique fortement orienté GTK. Il couvre les fonctionnalités des deux précédents mais permet aussi d’amorcer une mise en veille en cas d’inactivité et de diminuer la luminosité de l’écran.
Mise à jour (06.2011)
Jetez un œil sur mon article à propos de GNOME Power Manager sans bureau GNOME pour connaître les défauts de GNOME Power Manager quand on n’utilise pas l’environnement GNOME au grand complet.
Il semblerait que l’avenir du desktop Linux se tourne vers la dernière
solution. À noter que upowerd
invoque le script pm-powersave
du
paquet pm-utils
et qu’il est donc possible d’exécuter des actions
supplémentaires lorsqu’on passe sur batterie. Cela paraît donc la
solution la plus complète.
Pour pm-utils
, les scripts utilisés lorsqu’on passe sur batterie ou
sur secteur se trouvent dans /usr/lib/pm-utils/power.d
. On peut en
ajouter dans /etc/pm/power.d
. Il est possible de changer le
comportement de certains scripts en ajoutant des fichiers de
configuration dans /etc/pm/config.d
. Par exemple pour activer le
mode SATA ALPM, il faut mettre la variable SATA_ALPM_ENABLE
à
true
.
Pour vérifier le bien fondé des optimisations mises en place, la
commande powertop
peut montrer ce qu’il reste à faire. Pour aller
plus loin, le site Less Watts donne des astuces
supplémentaires qu’il est possible de transformer en scripts à placer
dans /etc/pm/power.d
.
En laissant tout dans la configuration par défaut, il semble aisé d’atteindre cinq heures d’autonomie en ne faisant pas grand chose et quatre heures dans une utilisation plus poussée. Le constructeur annonce six heures d’autonomie.
Conclusion#
Ce Lenovo Edge semble d’un bon rapport qualité prix. Il dispose d’un équipement plutôt complet et d’un très bon clavier pour un portable de cette taille. Il n’est ni aussi fin, ni aussi léger que ce que j’aurais souhaité, mais cela reste raisonnable. Son autonomie est également assez bonne pour un portable de cette catégorie.
Le support logiciel sous GNU/Linux est très bon puisque presque tout marche sans nécessiter de configuration particulière. Il est possible que le 2.6.39 améliore les quelques points qui n’apportent pas encore satisfaction comme la mise en veille sur disque.