GNU/Linux sur le Toshiba Libretto L1/060TNMM


Mise à jour janvier 2002 : noyau 2.4.17 + ACPI
Mise à jour octobre 2001 : noyau 2.4 (USB, son, etc)

Liste des fichiers annexes :

Antiopikon III a été atteint par une paralysie du clavier aussi horrible qu'irréversible le vendredi 6 juillet 2001, après plus de six mois d'un travail d'esclave à mon service. Ne pouvant plus servir en mode "ordinateur de bureau", et la maison Fujitsu refusant de me vendre un clavier en pièce détachéee, il poursuivra sa carrière comme serveur.

En attendant, j'ai besoin d'un nouvel esclave pour pouvoir accomplir mon propre travail d'esclave... Vu l'amabilité des commerciaux tenant lieu de service après vente de chez Fujitsu, qui préfère investir dans des photos de Kimura (le bellâtre de SMAP, par ailleurs en contrat avec une chaîne de salons de beauté) pour faire la pub de ses machines, plutôt que de contenter ses clients, je m'en vais de ce pas changer de crémerie.

Ca tombe bien, la maison Tosh' vient de se décider à se retirer les doigts du cul et à sortir un ordinateur portatif à base de processeur Crusoe comme tous ses concurrents qui font fortune. Un Libretto, ça m'a laissé de bons souvenirs, alors... je cours à Akihabara... Vive Antiopikon IV !

Antiopikon IV

Antiopikon IV est un Toshiba Libretto L1/060TNMM, commercialisé il y a environ deux mois, et dont voici les caractéristiques techniques :

De surcroît, vu qu'on est en plein dans le Festival Electrique de Akihabara, j'ai eu droit en prime à une paire de cartes réseau 10/100 baseT PCMCIA compatibles NE2000, deux càbles 10/100/1000 baseT de 3m, un de 10m, un croisé de 3m, une nouvelle sacoche de luxe et quelques babioles publicitaires. Le tout pour un prix ridicule qui me laisse encore rêveur.

Bon, après la quicaillerie, on va passer au logiciel. La bestiole est livréee avec son disque dur de 10 Go déjà en partie occupé par cette puante merde infâme qu'est ZindoZ. Comme je remplace ce disque par un autre, de 30 Go, vierge, je n'aurai pas à m'embarrasser de booter et de planter à la mode de Redmond.

BIOS

Si vous trouvez le truc pour entrer dans le menu du BIOS au démarrage (si toutefois il en existe un), je serais très heureux de l'apprendre. Rien à ce sujet dans la doc (et je l'ai scrupuleusement lue de bout en bout), et je n'ai pas trouvé après une assez longue recherche expérimentale (mais j'ai trouvé d'autres trucs intéressants)... à croire que micro$oft a payé Toshiba pour le supprimer. Du coup, certaines choses me sont pour le moment impossible, mais bon, le niveau de fonctionnalité atteint pour le moment est suffisant pour mon boulot, et le reste finira forcément par suivre.

BUT DU JEU

Installer GNU/Linux sur cette machine afin de pouvoir m'en servir normalement.

INSTALLATION PRÉLIMINAIRE

On ne va pas mégoter : le lecteur de disquettes externe est un USB non supporté par les noyaux des disquettes d'installation des distributions actuelles. Bon sang de bonsoir, ça devrait maintenant faire des mois que ce problème devrait être oublié ! Du coup, une seule option pour installer, en dehors de transplanter le disque sur un ordinateur de bureau pour ce faire : l'installation par le réseau en utilisant la PCMCIA.

M'sieur Debian ne sachant toujours pas ce qu'est une carte PCMCIA dans un disque de boot, on va faire comme il y a 6 mois avec le Loox et préinstaller une RedHat avec sa disquette "pcmcia.img" pour finir en debian... Mais...

Comme M'sieur RedHat a pris la grosse tête sous son châpeau rouge, son "pcmcia.img" pour la 7.1 (actuelle) est accompagné d'une seconde disquette contenant les drivers PCMCIA ! Mais quelle bande de grosses tâches, chez RedHat ! Après avoir booté, leur noyau ne sait même pas reconnaître le lecteur de disquettes externe ! Du coup, râpé pour la préinstall' en se servant d'une redhat 7.1 ...

Mais dis-moi mon ami... La 7.0, elle, est bourrée de bugs et de défauts, mais elle a l'immense avantage d'avoir une disquette unique "pcmcia.img"... aaaaaah, ouf.

Ah, oui, un petit détail qui ne manque pas de piquant : il semblerait que l'installation par défaut du Libretto L1 ne permette que de booter depuis le disque dur, si celui-ci est bootable... Les finauds, c'est à croire que Micro$oft les a payés pour faire en sorte que le client soit obligé de booter sur Windoze pour pouvoir changer ce réglage et installer GNU/Linux, rendant ainsi impossible son remboursement. C'est le genre de petit détail qui permet d'apprécier la liberté de ne pas avoir à utiliser les produits de la firme de Redmond.

Bref. Pour préinstaller avec la debian pcmcia.img (et ensuite par le réseau, à travers la carte PCMCIA, je partitionne mon disque de la façon suivante:

Disk /dev/hda: 255 heads, 63 sectors, 3648 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1        66    530113+  83  Linux swap
/dev/hda2            67       197   1052257+  82  Linux
/dev/hda3           198      3648  27720157+  83  Linux
J'ai installé ce début de système sur /dev/hda2, /dev/hda1 étant pour le moment un swap, que la RedHat exige pour pouvoir s'installer. L'installation est minimale, avec juste ce qu'il faut (ftp, telnet) pour se connecter à un serveur sur mon réseau local afin de passer à la suite.

SECONDE PARTIE DE L'INSTALLATION

A partir de là, on peut se passer du lecteur de disquette, qui ne servira plus.
Je reboote sur le kernel 2.2.16 installé automatiquement par l'ami RedHat, puis je me connecte à mon réseau via la carte Réseau PCMCIA qui est reconnue.

J'établis une liaison ftp et une session telnet avec antiopikon III, qui est toujours vivant malgré son clavier mort. Je compile à distance un noyau 2.2.19 avec le support reiserfs (il faut aller chercher le patch reiserfs dans la section "download" du site de Reiser) et le package PCMCIA là où il est développé.

Je supprime le swap du /etc/fstab de mon installation provisoire, de façon à pouvoir convertir la partition /dev/hda1 en type 83 (Linux) puis à la formater en extfs2. Cette partition deviendra par la suite ma partition de boot. Il se trouve que lilo n'aime pas chercher le noyau sur un reiserfs, d'où une partition de boot en extfs, de taille réduite.

Je compile donc ce 2.2.19, ainsi que les modules et le package pcmcia-cs sur Antiopikon III, técharge le tout et installe dans /dev/hda1. J'ajoute dans le lilo de mon installation provisoire un nouveau kernel de boot sur /dev/hda1 dont le root est toujours sur /dev/hda2, de façon à garder la libc et les utilitaires de base que je viens d'installer, jusqu'à ce que j'aie fini.

Je compile mkreiserfs dans le kernel source tree du 2.2.19 et le transporte sur Antiopikon IV pour formater /dev/hda3 ...

Ensuite, je formate /dev/hda3 avec la commande :
	mkreiserfs -h r5 /dev/hda3
Après cela, je me prépare un dossier vide /space3 comme point de montage et ajoute la ligne
	/dev/hda3       /space3       reiserfs   defaults,noatime,nodiratime     0      0
dans /etc/fstab.

Il ne me reste plus qu'à rebooter sur le 2.2.19, de façon à pouvoir accéder à l'espace reiserfs, afin d'y fourguer le contenu d'Antiopikon III.

FIN DE L'INSTALLATION

Au final, mon root directory ressemble à ceci :
	drwxr-xr-x   14 root     root         4096 Jul  8 16:47 .
	drwxr-xr-x   14 root     root         4096 Jul  8 16:47 ..
	drwxr-xr-x    2 root     root         4096 Dec 31  2000 bin
	drwxr-xr-x    2 root     root         4096 Jul 11 10:51 boot
	drwxr-xr-x   11 root     root        98304 Jul 11 13:00 dev
	drwxr-xr-x   55 root     root         4096 Jul 11 13:01 etc
	lrwxrwxrwx    1 root     root           12 Jul  8 07:24 home -> /space3/home
	drwxr-xr-x    5 root     root         4096 Apr 17 07:26 lib
	drwxr-xr-x    2 root     root        16384 Jul  8 07:14 lost+found
	drwxr-xr-x    7 root     root         4096 Dec 28  2000 mnt
	dr-xr-xr-x   85 root     root            0 Jul 11 13:00 proc
	drwx------   10 root     root         4096 Jul 10 18:25 root
	drwxr-x---    2 root     root         4096 Jul  9 20:31 sbin
	drwxr-xr-x   10 root     root          171 Jul  8 19:09 space3
	lrwxrwxrwx    1 root     root           11 Jul  8 07:24 tmp -> /space3/tmp
	lrwxrwxrwx    1 root     root           11 Jul  8 07:24 usr -> /space3/usr
	lrwxrwxrwx    1 root     root           11 Jul  8 07:24 var -> /space3/var
Comme vous le voyez, la plupart des gros dossiers sont réunis sur /dev/hda3, un immense espace en reiserfs, très rapide, sûr et économe en espace disque. Ce qui donne la répartition des données suivante :
	Filesystem           1k-blocks      Used Available Use% Mounted on
	/dev/hda1               521748     43272    451972   9% /
	/dev/hda3             27719276   4427716  23291560  16% /space3
Oeuf corse, je me suis débarrassé de la redhat 7.0 et ai converti /dev/hda2 en zone de swap. Techniquement, le système est une debian avec quelques petites choses à moi.

PERSONNALISATION

Il est à présent temps de faire les ajustements nécessaires pour adapter le système au matériel sur lequel il tourne. Avec ce kernel, la machine est utilisable, mais comme le BIOS est un ACPI et non un APM, il n'y a pas de mode sommeil, de plus, la carte son est reconnue, mais son IRQ n'étant pas réglée par le BIOS, le kernel n'arrive pas à l'initialiser. Bon, pas trop grave, ça viendra.

L'USB fonctionne au poil. Pour brancher une souris USB j'ai créé un fichier spécial avec la commande

	mknod /dev/usb/mouse c 13 63
et j'ai eu la surprise de ne pas avoir à ajouter une section dans le XF86Config pour la gérer.

PREMIERES IMPRESSIONS

Yabon, oyez le /proc/cpuinfo :
	processor       : 0
	vendor_id       : GenuineTMx86
	cpu family      : 5
	model           : 4
	model name      : Transmeta(tm) Crusoe(tm) Processor TM5600
	stepping        : 3
	cpu MHz         : 597.646
	cache size      : 512 KB
	fdiv_bug        : no
	hlt_bug         : no
	sep_bug         : no
	f00f_bug        : no
	coma_bug        : no
	fpu             : yes
	fpu_exception   : yes
	cpuid level     : 1
	wp              : yes
	flags           : fpu vme de pse tsc msr cx8 sep cmov mmx
	bogomips        : 1189.47

L'écran est suuuuper bon, le clavier vraiment excellent. Un point négatif : le BIOS semble être inaccessible et la configuration de la machine semble devoir reposer sur l'OS qui devrait pourtant reposer au dessus et ne pas s'en occuper. Du coup, vu que certains composants sont trop récents, ils ne semblent pas être supportés pour le moment par le noyau Linux. Mais bon, ça viendra.

Suite: Comment changer le disque dur de cette machine...


Mise à jour d'octobre 2001 : kernel 2.4

En octobre 2001, j'ai compilé un kernel 2.4 (la version du jour était 2.4.12), principalement pour la VM améliorée et pour avoir le son.
Voici la config.

Pour le son, il faut patcher le driver PCI afin de lui rajouter la gestion du composant ALi M5451. Le patch déjà existant pour le 2.4.9 est utilisable.

Derrière, j'ai recompilé le package PCMCIA normal (pas le PCMCIA du noyau), vu que le matériel n'est toujours pas géré par la yenta socket, apparemment. Pour ce qui est de la gestion d'une souris USB, il faut modifier un peu le XF86Config. Voici le mien, qui au passage permet aussi de reconnaître la roulette des souris à roulette (le dernier gadget à la mode).

Après ça, c'est Roulez jeunesse, comme dans du beurre. Le son fonctionne immédiatement sans aucun problème, la souris USB à roulette aussi, la mémoire et le processeur sont bien mieux gérés par la VM du 2.4. C'est presque Byzance. Au prochain coup, je vais m'occuper de l'ACPI.


Mise à jour de janvier 2002 : kernel 2.4.17

En janvier 2002, j'ai compilé un kernel 2.4.17 (la dernière version en date) afin de me mettre à jour sur la branche "stable" et parce que
John Belmonte, développeur de l'ACPI sur le L1, a eu l'amabilité de me contacter pour me faire part de sa création. Après avoir appliqué le patch "son" et le patch ACPI, voici la config.

J'en ai profité aussi pour mettre à jour les modules PCMCIA (version du jour: 3.1.31), qui intègrent désormais en standard (entre autres) mon petit ajout concernant ma carte Réseau.

L'embryon de gestion ACPI, fort prometteur, permet de régler la luminosité de l'écran, et donc sa consommation, depuis la ligne de commande. Par exemple :

         echo "brightness:0" > /proc/acpi/toshiba/lcd
Va rendre l'écran très sombre, tandis que
         echo "brightness:7" > /proc/acpi/toshiba/lcd
Va pousser sa luminosité au maximum. Il y a bien entendu toutes les valeurs intermédiaires.

Ah, oui : pendant tout ce temps, j'avais oublié de compiler l'utilitaire LongRun, de chez Transmeta. Il nécessite d'activer les options relatives au CPUID dans le noyau (dont la configuration plus haut tient compte), et de créer les deux fichiers spéciaux suivants :

Ensuite, longrun permet de fixer la plage de fonctionnement du processeur très simplement. Par exemple 
        # longrun -s 0 33
va permettre d'économiser l'énergie sans trop sacrifier les performances... Le ventilateur n'aura même plus besoin de refroidir le processeur, quand il travaille beaucoup, comme dans le cas d'une compilation de noyau. Une option de longrun donne les valeurs possibles et leur effet :
        # longrun -l
        # %   MHz  Volts  usage
          0   300  1.200  0.281
         33   400  1.225  0.391
         66   500  1.400  0.638
        100   600  1.600  1.000
Bilan : encore quelques petits progrès qui augmentent l'utilisabilité de la bestiole. On approche de l'objectif.