Avril 2025 : Un peu de retro computing sur un Dell lattitude cpi
Introduction
Récemment, j'ai retrouvé chez moi deux vieux Dell Lattitude Cpi, avec une configuration matérielle tout à fait impressionante :
- Intel Pentium 2 (266 MHz)
- 128 Mo de RAM
- Un port USB
- Une carte d'extension pour CD-ROM, et une pour disquettes
Tiny Core Linux
Qu'est ce que c'est ?
Il s'agit une distribution qui se charge spécialement de ce cas de figure :
Cette distribution a pour optique de rester aussi légère que possible, et ainsi, elle peut fonctionner avec seulement 48Mo de RAM !
Autant dire que les 128 Mo à disposition sont plus que suffisant :)
D'ailleurs, la configuration de ce dell lattitude correspond exactement au mininimum recommandé pour utiliser TCL.
En pratique
Installation basique
Quasiment tout fonctionne initialement, l'interface graphique, la souris, le clavier... Mais malheureusement pas le réseau.
Rien d'étonnant à ça, cela dit : il n'y a pas de carte réseau disponible.
Cependant, un ordinateur sans réseau est tout de même assez limité, bien que l'on puisse évidemment rajouter des applications en
les stockant sur une clé usb par exemple.
C'est là où le port usb va démontrer toute son utilité : après tout, on peut l'utiliser pour faire un partage de connection.
Aussitôt dit, aussitôt fait, et je branche mon téléphone pour qu'il serve de modem (ce qui est un peu triste vu que le téléphone
est 40 fois plus puissant que l'ordinateur, mais l'on va passer outre ce détail).
Et évidemment, ça ne fonctionne pas.
Après quelques recherches, il apparait qu'il faut lancer le client dhcp (udhcpc dans ce cas précis, qui vient avec busybox,
une petite boite à outils pour les distros linux légères), en spécifiant le nom de l'interface :
sudo udhcpc -i usb0
Et là miracle, tout fonctionne correctement !
Enfin, il faut relancer cette commande à chaque fois que l'on effectue un partage usb.
Un peu de configuration
Il y a encore un léger soucis : le clavier est en azerty, alors que la disposition du clavier est initialement en qwerty.
Pour modifier ça, le mieux est de suivre les instructions données ici (de manière générale, les wiki d'archlinux et de gentoo sont d'excellentes sources d'informations).
Cependant, ça ne fonctionne pas pour une raison assez obscure, mais le fichier de configuration donné ici fonctionne correctement (00-keyboard.conf -> 10-keyboard.conf, et system-keyboard -> Keyboard Defaults).
Par ailleurs, pour obtenir le bon layout en ligne de commande, il faut ajouter la ligne suivante au ~/.profile :
sudo loadkmap < /usr/share/kmap/azerty/fr-pc.kmap (après avoir installé le paquet keymaps)
Et oui, mettre un sudo dans ~/.profile fonctionne grace à l'absence de mot de passe ! Il y a des manières plus propres de faire
avec systemd et openrc,
mais je ne me suis pas encore penché sur le système d'initialisation de TCL.
Pour que ces changements soient persistants, il faut suivre les instructions de cet article. Il faut être vigilant : pour que les changements soient bien enregistrés, il
faut redémarrer l'ordinateur avec l'utilitaire de déconnection fourni, en laissant en place le mode "backup".
Cette page indique qu'il faut ajouter des paramètres au noyau lors du lancement, ce qui se fait en éditant le fichier /mnt/your_hard_drive/tce/boot/extlinux/extlinux.conf si vous utilisez comme bootloader extlinux (ce qui est le cas pour l'installation par défaut).
On peut aussi ajouter le support de plusieurs terminaux virtuels avec le bootcode multivt , ce qui est appréciable.
Finalement, en ajoutant 128 Mo de swap (ajouter un fichier tc.swp de la taille voulue dans /mnt/sda1, puis ajouter le bootcode swapfile=sda1), on arrive à un système qui tourne plutôt pas mal !
Quelques nouveau logiciels
Par défaut, TCL charge tout les programmes téléchargés en RAM, et tout est perdu au reboot : c'est l'un des concepts de base de cette
distribution, qui s'explique car elle se veut avant tout une live distro.
Cependant, il est aussi possible d'installer en local des programmes, ce qui est tout de même pratique dans le cadre d'une utilisation courante.
Pour se faire, il faut sélectionner le paramètre "OnBoot" lors de l'installation avec le gestionnaire de paquets.
J'ai choisi d'installer les logiciels suivant, qui ont le mérite de tourner à une vitesse très raisonnable (et d'être immédiatement présents dans le gestionnaire de paquets) :
- Lillo : Un navigateur web étonnament léger
- XFE : Le gestionnaire de fichier de X
- neofetch : Car c'est rigolo
- htop
- vim
- python3
- compiletc : Un méta paquet qui contient tout ce qu'il faut pour compiler, notamment gcc, binutils, etc.
- tcc : Tiny C Compiler, plus léger que gcc, mais avec de bien moins belles erreurs et moins de fonctionnalités. Cependant, je recommande son utilisation : avec gcc, le temps de compilation d'un basique "Hello World" se compte en secondes (et utilise 10% de la RAM)...
- man : Je n'ai pas encore réussi à lancer mandb (qu'il faut installer à part), à cause du système de gestion d'utilisateur pour le moins bancal.
- git
- wget
- lbreakout
- flbrun : A cd burner
- flaxpdf : A pdf viewer
J'ai eu des problèmes au démarrage (manque de ram) quand shared-mim-info était installée, aussi je me suis assuré de n'installer que des applications n'ayant pas cette dépendance.
Quelques photos
Pour contempler la réalisation :)
Linux From Scratch (LFS)
Tiny Core Linux est une live distro très sympathique, et plutôt fonctionelle. Cependant, il lui manque un certain nombre d'outils
que l'on aimerait potentiellement avoir à disposition immédiatement, tels que lsusb, NetworkManager, etc.
Par ailleurs, je n'apprécie pas particulièrement la gestion des disques qui est faites, avec le concept de tout supprimer à chaque redémarrage,
et la gestion des utilisateurs est très "légère", il n'y a pas de mot de passe initialement à fournir, et il n'est pas non plus nécessaire
de créer un utilisateur particulier.
Cependant, de ce que j'ai pu voir, il s'agit de la seule distribution encore maintenue qui tourne avec un materiel aussi limité.
Alors, pourquoi ne pas créer sa propre petite distribution, et la faire ensuite tourner sur ce Dell ?
C'est là où entre en jeu LFS : il s'agit essentiellement d'un livre expliquant comment compiler depuis les sources un linux fonctionnel.
Cependant, comme je ne tiens pas à répéter tout le processus à chaque fois que je veux changer une petite chose dans la configuration,
je vais essayer de créer un petit utilitaire pour automatiser le processus.
J'expliquerai dans un prochain post comment je m'y suis pris.



