Installation de Debian GNU/Linux
sur l'ultraportable NEC LaVie MX LX60T/5

par mike dentifrice
fluor@poivron.org
http://dentifrice.poivron.org/


L'OBJET - L'INSTALLATION - LA CONFIGURATION


L'OBJET

VUE D'ENSEMBLE

Le NEC LaVie MX est un "ultra-portable" pour le moins séduisant. Son design est très soigné: ultra fin (21mm), petit (x x x) et léger (1,37kg); et ses composants intéressants: processeur Crusoe TM5600 de Transmeta, écran TFT réflexif et batterie li-ion. Ceux-ci lui donnent des possibilités d'autonomie largement supérieures à la moyenne, allant jusqu'à 9h environ. S'il me semble exagéré de qualifier cette machine "d'écologique" (je doute que son processus de fabrication le soit!), ses mécanismes d'économie d'énergie demeurent très intéressants.

Le NEC LaVie MX est une machine japonaise, dont seuls quelques rares exemplaires semblent avoir été distribués en Europe et aux États-Unis. Il m'a donc été très difficile de trouver de la documentation (il semble cependant en exister un certain nombre en japonais), aussi bien technique que relative à l'utilisation de GNU/Linux sur cet appareil. Les quelques liens utiles que j'ai glanés se trouvent dans la section références de ce document.

Seule déception, et de taille: l'absence de rétro-éclairage. Les quelques documents de références sont souvent restés timides sur cette caractéristique, et la confusion est de rigueur, quand on sait que certains modèles très similaires (comme le LX60T/7, apparemment) disposent d'un rétro-éclairage optionnel et réglable. Impossible d'utiliser cette machine dans le noir, donc, mais possibilité de s'en servir en plein soleil, ce qui n'est pas commun!

STATISTIQUES

blah blah lspci

L'INSTALLATION

(RE)PARTITIONNEMENT DU DISQUE DUR

La machine est livrée avec une copie de Windows 2000 pré-installée. Bien que tenté de la supprimer sur le champ, j'ai préféré la conserver dans un premier temps, celle-ci constituant alors ma seule possibilité d'interrogation et de test du matériel.

Premier objectif: réduire la partition Windows, occupant alors tout l'espace disque. J'ai logiquement cherché du côté des logiciels libres un outil le permettant. Mais s'il est désormais facile de redimensionner des partitions FAT16 ou FAT32 (avec GNU parted, par exemple), ce n'est pas encore le cas des partitions NTFS utilisées par Windows 2000. Il semblerait cependant que Diskdrake, développé par Mandrake, le permette dans ses dernières versions (celle accompagnant la distribution 9.1). Je ne l'ai pas testé, mais il suffit probablement de démarrer le système avec un CD d'installation de Mandrake. Pour ma part, j'ai donc honteusement fait appel à un logiciel propriétaire que je ne citerai pas, cracké pour l'occasion.

LANCEMENT DE L'INSTALLATION

J'ai choisi la distribution Debian. C'est l'une des meilleures techniquement, et la meilleure "politiquement", par son respect de la philosophie des logiciels libres et son indépendance.

J'ai lancé l'installation grâce au lecteur CD-ROM USB et un jeu de CD Debian Woody r0, et ai continué par le réseau.

La première étape est de démarrer sur le CD-ROM. Pour ce faire, il suffit de presser "esc" au démarrage, quand apparaît le logo NEC, et un menu proposant de booter depuis un CD-ROM USB ou lecteur de disquette USB apparaît. Pour accéder au BIOS, presser F2 au démarrage.

Le programme d'installation a démarré sans problème, et m'a permis de partitionner l'espace libéré sur le disque dur (soit 18go, ayant temporairement laissé 2go à Windows), puis de procéder à l'installation à proprement parler.

Ici, les choses se compliquent si vous n'avez pas d'accès à l'internet, de préférence haut-débit et via un réseau local. Car s'il est possible de démarrer depuis le CD-ROM, celui-ci n'est pas reconnu par le noyau du CD d'install, et on ne peut donc y chercher les paquets d'installation.

Le plus simple consiste alors à configurer le réseau, en indiquant l'adresse de votre passerelle et les DNS de votre FAI, puis de continuer l'installation en allant chercher les paquets de données sur l'internet. Si vous n'avez pas de réseau local, il vous faudra configurer la liaison PPP vers votre provider à ce niveau.

Si vous n'avez pas d'accès internet haut-débit, il vous faudra trouver un noyau supportant vos périphériques USB à ce stade de l'installation. Il existe un set de disquettes à télécharger ici: http://people.debian.org/~blade/bf3024/

INSTALLATION

Le reste de l'installation ne diffère pas de n'importe quelle autre installation de Debian. Aussi je vous renvoie aux documentations déjà existantes à ce sujet: site Debian, dpt, ecp/alexis

Pour bénéficier de la stabilité de la Debian comme de programmes relativement récents, j'ai aussitôt mis à jour mon système, passant de la Woody (Debian 3.0) à la Sarge (Debian 3.1). Opération simplement effectuée par l'ajout dans /etc/apt/sources.list de:

        deb http://debian.mirrors.easynet.fr/ sarge main  
        deb http://non-us.debian.org/debian-non-US sarge/non-US main
        deb http://security.debian.org/ sarge/updates main
  

...suivi du classique:

	$ apt-get update && apt-get dist-upgrade
  

LA CONFIGURATION

LE NOYAU

L'une des premières étapes de la configuration du système est de recompiler un noyau contenant les pilotes pour ses différents composants, et optimisé pour le processeur utilisé (Crusoe).

Tout le matériel est supporté, sauf, *peut-être*, le port infrarouge, que je n'ai pas testé.

J'ai d'abord utilisé les sources Debian du noyau Linux 2.4.18, dont voici le fichier de configuration (à copier dans le répertoire contenant les sources de votre noyau, probablement /usr/src/linux): ici

Par la suite, j'ai utilisé la version 4.1s de WOLK (Working Overloaded Linux Kernel), disponible sur http://wolk.sourceforge.net. Entre autres patchs, il intègre les derniers pilotes ACPI. Mon fichier de configuration se trouve ici.

LE CLAVIER

Deux des 86 touches du clavier ne fonctionnent pas sans bidouillage, et trois autres ne sont assignées à aucun caractère ou fonction. A noter que ces touches ne fonctionnent pas non plus sous Windows 2000.

Les touches en question sont "Alt Gr" et "X X". Plutôt préoccupant, vu que "Alt Gr" donne accès à des symboles importants, pour configurer le système notamment (par exemple, "|", "~", "@", etc.). Heureusement, sous GNU/Linux, il est facile d'y remédier.

Pour ce faire, il suffit d'éditer une table de caractères fonctionnelle, et d'y changer certains "keycodes" - chaque touche ayant un keycode particulier.

Il faut donc tout d'abord obtenir le keycode des touches non reconnues, ce qui est possible avec le programme showkey.

Ceci fait, il reste à assigner à ce keycode la fonction désirée. Le plus simple est de prendre une table de caractères existante comme base...

        $ cd /usr/share/keymaps/i386/azerty
        $ cp fr-latin9.kmap.gz custom.kmap.gz
  

...et de la modifier:

Pour la touche Alt Gr, remplacer "keycode 92 = " par:

        keycode  92 = AltGr
                alt     keycode  92 = Compose
  

Pour les touches de redirection, remplacer "keycode 89 = " par:

        keycode  89 = +less             +greater          bar
                alt     keycode  89 = Meta_less
  

Il reste 3 touches pour lesquelles aucune fonction n'est définie, auxquelles vous êtes libres d'assigner la fonction que vous voulez. Il m'a cependant été impossible de redéfinir l'une des trois (située entre Alt Gr et la touche "menu de windows"), chaque pression entraînant l'affichage d'un pénible "keyboard: unrecognized scancode (70) - ignored", y compris sous le programme scankey...

Une fois les modifications effectuées, il reste à charger cette nouvelle table de caractères, et apprécier les changements:

	$ loadkeys custom
  

Pour que ceux-ci soient dorénavant pris en compte à chaque démarrage:

        $ install-keymap custom
        $ dpkg-reconfigure console-common
  

...et choisir "don't touch keymap".

Pour référence, voici mon keymap modifié: custom.kmap.gz

LE TOUCHPAD

Pour utiliser le touchpad en console, installer le paquetage gpm, avec la configuration suivante: /etc/gpm.conf

Note: pour que le touchpad puisse fonctionner simultanément en console et sous X, il faut donner la valeur "raw" à l'option "repeat_type".

LE SON

La machine est équipée d'un chipset ESS Technology ES1969 Solo-1 Audiodrive, qui fonctionne avec le pilote "esssolo1" (à sélectionner lors de la compilation du noyau, dans la section "Sound").

Si vous compilez le pilote sous la forme d'un module, il vous faut alors le charger avant de lancer une quelconque application sonore. En tant que root:

	$ modprobe esssolo1
  

Pour que celui-ci soit chargé automatiquement si une application sollicite le son, tapez en tant que root:

        $ echo "alias sound-slot-0 esssolo1" > /etc/modutils/sound
        $ update-modules
  

Au premier chargement du module, l'ordinateur a émis une série de larsens très désagréables. Impossible de toucher le clavier ou la machine sans causer des bruits stridents.

L'explication est simple: par défaut, le volume du micro est défini au maximum. Pour y remédier, il suffit d'installer le paquet "aumix" et d'ajuster le volume du micro. Une fois un réglage satisfaisant obtenu, depuis aumix, sauver la configuration avec la touche "S". Le fichier ainsi obtenu permet de définir une nouvelle configuration par défaut, chargée à chaque démarrage (sans quoi les larsens réapparaîtraient à chaque chargement du module). En tant que root:

	$ cp ~/.aumixrc /etc/aumixrc
  

Rappel: pour que le son soit accessible à l'utilisateur lambda, il ne faut pas oublier de l'ajouter au groupe sound:

	$ adduser lambda sound
  

L'ACPI

Le mécanisme de gestion de l'énergie utilisé sur cette machine est ACPI, pas APM. Malheureusement, l'implémentation d'ACPI dans le noyau Linux est encore très incomplète, et rend pour l'instant impossible l'utilisation de ses fonctions les plus alléchantes, comme le mode "suspend".

Pour utiliser l'ACPI, il faut patcher son noyau. J'ai utilisé les sources prépatchées du noyau WOLK, mais vous pouvez directement vous procurer les patchs ACPI sur http://acpi.sourceforge.net et les appliquer à votre noyau.

Une fois le noyau recompilé, vous devriez avoir un répertoire acpi dans /proc, contenant divers fichiers et sous-répertoires remplis de renseignements. Pour les interroger de manière plus conviviale, vous pouvez installer le client acpi (apt-get install acpi).

Pour que l'acpi fonctionne, il faut également installer le démon acpid (apt-get install acpid), qui permet de paramétrer le comportement de votre laptop face à divers "événements", grâce aux fichiers situés dans /etc/acpid.

L'USB et le CD-ROM

Je n'ai testé l'USB qu'avec le lecteur CD-ROM fourni avec la machine. Mais tout semble indiquer qu'il fonctionne avec d'autres périphériques, le bus USB étant reconnu et supporté par le pilote OHCI.

Dans les sources du noyau, il faut activer le support SCSI, ainsi que des périphériques HotPlug.

TODO: détailler l'installation de l'USB

LE DISQUE DUR

Pour tirer parti des capacités du disque dur, il faut installer l'utilitaire hdparm, et lui passer les paramètres suivants:

	$ hdparm -c 1 -d 1 /dev/hda
  

Ceci aura pour effet d'activer le mode DMA, désactivé par défaut, et de passer le disque dur en 32bits, au lieu des 16 de la configuration initiative. Les gains de performances sont tout simplement incroyables! Si vous trouviez votre machine anormalement lente, c'est probablement du à l'absence de cette configuration.

Pour que l'opération soit effectuée à chaque démarrage, il suffit de créer un petit script placé dans /etc/init.d et appelé hdparm, contenant:

        #!/bin/sh
        hdparm -c 1 -d 1 /dev/hda
  

Ceci fait, il reste à rendre le script exécutable:

	$ chmod +x /etc/init.d/hdparm
  

Et à créer les liens symboliques nécessaires à son exécution à chaque démarrage:

	$ update-rc.d hdparm defaults
  

LE MODEM

Le winmodem intégré fonctionne (!), grâce aux pilotes disponibles ici.

LE SERVEUR X

Je n'ai essayé que des versions 4 de XFree86 (pas les 3.3.x).

	$ xmodmap -e "keycode num = keysym"
  

Cela permet de tester la validité d'une instruction avant de l'insérer dans un fichier de configuration. Une fois les touches correctement configurées, il suffit de créer un fichier .xmodmaprc contenant les modifications (le mien se trouve ), et de le charger à chaque démarrage de X, en ajoutant, par exemple, ces lignes à son fichier .xsession ou .xinitrc:

        if [ -f $HOME/.xmodmaprc ]; then
          xmodmap $HOME/.xmodmaprc
        fi