Du début jusqu'à tmux

Le matériel

J'ai un IBM ThinkPad 560Z Pentium II d'octobre 1998 et un IBM ThinkPad 600X Pentium III produit en avril 2000. Le 600X a un lecteur CD et le 560Z n'a pas de lecteur disquette ni de lecteur CD. Les deux portables fonctionnent encore très bien. C'est très étonnant pour moi le 560Z qui a maintenant 25 ans.

À travers mes recherches, j'ai trouvé qu'il est possible d'installer la version sans interface graphique de TinyCoreLinux sur le 600X par un CD de CoreLinux 14. Ensuite, il est possible de prendre le SSD et de le transférer directement au 560Z et il va fonctionner. Le 560Z dispose d'un port USB. Avec un adapteur USB à Fast Ethernet, on peut atteindre des vitesses de 1,1 Mbits/seconde. C'est très bon à mon avis pour un aussi vieil ordinateur!

J'ai trouvé cet IBM ThinkPad 560Z PII Mobile 233 @ 300 MHz avec 64 MB RAM vers 2012 si je me souviens bien. Le couvercle est craqué comme si une brique était tombée dessus. Tout le reste est fonctionnel. La RAM peut être augmentée d'un autre 64 Mo parce qu'il y a une fente libre sous le portable, mais je n'ai pas encore trouvé de module bon marché.

J'utilise un adapteur USB vers IDE 44 pins pour pouvoir faire des sauvegardes du disque avec la commande dd. Un adapteur comme celui-ci: FIDECO SATA/IDE to USB 3.0 Adapter, Hard Drive Adapter Cable Converter for Universal 2.5/3.5 Inch SATA and IDE HDD, 2.5 Inch SSD, 5.25-Inch DVD-ROM/CD-ROM/CD-RW/DVD-RW/DVD+RW .

J'ai utilisé un SSD et un adapteur IDE 44 pins vers M.2 NGFF SATA comme celui-ci: M.2 NGFF SATA SSD to 2.5 IDE 44pin Converter Adapter with Case Black . Pour le SSD, j'ai utilisé le WDS500G2B0B WD Blue™ 3D NAND SATA M.2 2280 SSD, 500GB

L'installation de Core Linux 14

Voici les étapes pour essayer Core 14.0 sur le Thinkpad 600X:

  1. Créer un CD bootable à partir des instructions sur tinycorelinux.net/install.html
  2. Connecter un adapteur USB 2.0 vers Ethernet 10/100 au seul port USB port du 600X. J'ai trouvé le mien sur eBay en juillet 2023: Adaptateur Réseau Clé USB Ethernet Lan RJ45 Carte Pour Windows 7 8 10 Vista XP. Sur certaines machines il apparaît comme un Realtek FE (Fast Ethernet). Core 14.0 le détecte automatiquement.
  3. Démarrer le 600X à partir du CD. Après le démarrage, il est possible de vérifier l'adresse ip avec ifconfig

À ce point-ci, on utilise le CD directement et rien n'est installé sur le disque dur encore. Les vieux portables comme le 600X et le 560Z ont des capacités de disque dur limitées. J'ai trouvé que la première partition sur le disque ne peut pas dépasser 7Go. Par défaut l'installation sur disque dur de Core 14 va prendre tout le disque et comme j'ai installé un SSD de 500 Go, ce n'est pas vraiment une option. Core 14 s'installera, mais le portable ne démarrera pas ensuite. Voici mes étapes pour surmonter ce problème. L'idée est de commencer avec une petite partition. Plus tard, on pourra repartitionner le disque et utiliser tout l'espace du SSD. Si la partition est trop grande, vous verrez Boot Error sur l'écran et puis rien d'autre ne se passera. Il faudra fermer de force en maintenant le bouton d'allumage.

Voici les étapes d'installation Frugal de Core 14:

  1. Créer une partition ext4 de 1 GB au début du disque IDE en connectant le disque à un autre ordinateur debian et en utilisant gparted
  2. Remettre le SSD dans le 600X et le démarrer.
  3. Monter le CD avec sudo mount /mnt/sr0. On en aura besoin pendant l'installation Frugal.
  4. Télécharger le script d'installation tce-load -wi tc-install.tcz et l'exécuter avec sudo tc-install.sh J'ai choisi l'installation par réseau, mais l'installation par CD devrait fonctionner aussi N.
  5. Choisir F pour l'installation Frugal sur disque dur.
  6. Choisir l'option 2 pour utiliser la partition existante et ÉVITER le disque en entier.
  7. Installer le bootloader y
  8. Choisir ext4 4. Même si la partition est déjà présente l'installeur demande de préciser le format pour continuer.
  9. Lorsque l'installeur demande un chemin vers les extension, on peut entrer /mnt/sr0. Si on n'entre rien, l'installeur ne continuera pas.
  10. Entrer les options de démarrage vga=normal syslog showapps waitusb=5 tce=sda1. On les changera plus tard pour avoir une meilleure résolution entre autre. vga=normal est le mode le plus compatible.
  11. L'installeur va demander s'il est corect de détruire toutes les données sur sda. J'avais déjà fait une sauvegarde et la partition est vide de toute manière. Il faut accepter pour continuer.
  12. Laisser l'installeur se compléter et ensuite éjecter le CD et redémarrer pour tester l'installation:
    sudo umount /mnt/sr0
    sudo eject /dev/sr0
    sudo reboot
    

Sauvegarder le disque IDE

Si l'installation démarre, ça vaut la peine de faire une sauvegarde grâce au convertisseur IDE vers USB et en utilisant:
sudo dd if=/dev/sdX of=core14.dd conv=sync,noerror bs=512M count=3 status=progress
Il faut remplacer sdX par la bonne lettre pour le disque une fois connecté à un autre ordinateur. Il est possible de trouver la lettre du disque avec sudo fdisk -l. Le count=3 indique à dd d'arrêter la lecture du disque après 3 fois la taille de bloc. On spécifie bs=512M pour avoir une taille de bloc de 512 Mo pour pouvoir se retrouver avec une copie de sauvegarde d'une taille de 1,5 Go. C'est assez pour s'assurer de copier le premier 1 Go du disque qui contient l'entièreté de la table de partition ainsi que la partition de 1 Go où Core 14 est installé

Connecter le ThinkPad 560Z à un réseau IP

On peut maintenant passer au ThinkPad 560Z. Il faut mettre le disque IDE dans le 560Z et puis l'allumer. Il devrait démarrer comme si c'était le 600X. On peut aussi connecter l'adapteur USB vers Ethernet pour se connecter à un réseau TCP/IP filaire moderne! On peut vérifier que l'adresse IP est là avec sudo ifconfig eth0.

Pour une raison inconnue, le 560Z ne trouve pas toujours son adresse IP après le redémarrage. Dans ce cas, on peut utiliser des commandes pour configurer manuellement le réseau lorsqu'on connaît les adresses IP qui y sont valides:

sudo ifconfig eth0 192.168.0.180
sudo route add default gw 192.168.0.1
sudo cat /etc/resolv.conf
sudo echo "nameserver 1.1.1.1" > /etc/resolv.conf
Il faut ajuster l'adresse IP à son propre réseau. ifconfig configure l'adresse IP du portable, route ajoute le gateway par défaut qui est typiquement le routeur quand on est à la maison. cat /etc/resolv.conf montre les serveur de noms (DNS servers) qui permettent de traduire un nom d'hôte vers une adresse IP. 1.1.1.1 est le serveur de noms de cloudflare. Il devrait être possible d'ajouter jusqu'à 3 serveurs dans le fichier.

Ajouter une partition d'échange et modifier la résolution

À ce point-ci, j'ai éteint le 560Z et j'ai modifié les partitions avec gparted dans Debian pour atteindre cette configuration:

  1. Une partition primaire de 1 Go formattée ext4 pour démarrer Core Linux. UUID="d39a00cb-d63f-470e-8c46-0bdbd1db2d6f"
  2. Une 2e partition primaire d'environ 495 Go formattée ext4 pour tous mes fichiers. UUID="3541ff21-9683-4df0-9ecd-a5a3fce0014c"
  3. Une dernière partition primaire de 3 Go pour servir de partition d'échange (swap partition). UUID="a53d3aa0-1607-44a2-8c43-bf71d35edf59"

On peut ajuster la résolution à vga=788. Il faut monter sudo mount /dev/sda1 pour pouvoir accéder au fichier extlinux.conf. On doit cd /mnt/sda1/tce/boot/extlinux/ et sudo vi extlinux.conf.

Donc, pour accéder au fichier:

sudo mount /dev/sda1
cd /mnt/sda1/tce/boot/extlinux/
vi extlinux.conf
et le résultat que l'on veut:
DEFAULT core 
LABEL core 
KERNEL /tce/boot/vmlinuz 
INITRD /tce/boot/core.gz
APPEND vga=788 syslog showapps tce=UUID="3541ff21-9683-4df0-9ecd-a5a3fce0014c" home=UUID="3541ff21-9683-4df0-9ecd-a5a3fce0014c" opt=UUID="3541ff21-9683-4df0-9ecd-a5a3fce0014c" nozswap lang=fr_CA.UTF-8
Le home=, le opt= et le nozswap permettent de sauver de la RAM en ne chargeant pas en mémoire vive les dossiers home et opt. Le code lang=fr_CA.UTF-8 est expliqué plus tard dans la section où je décris tce-load -wi getlocale.tcz.

J'ai testé et découvert que je n'avais pas besoin de waitusb=10 et je l'ai retiré. J'ai pensé qu'en l'augmentant cela aiderait le 560Z à auto-détecter son réseau, mais pas du tout. J'ai aussi retiré waitusb=10:UUID="d39a00cb-d63f-470e-8c46-0bdbd1db2d6f" parce que ma partition est sur un disque IDE, par sur une clé USB.

Il est intéressant de noter que lorsque je remets le disque dans le 600X, que je l'allume, que je l'éteint et que je le remet dans le 560Z, le réseau se remet à être auto-détecté. Je ne sais pas exactement pourquoi, mais c'est utile.

Si vous êtes curieux de voir les espaces d'échange mémoire utilisés: cat /proc/meminfo et cat /proc/swaps

Accéder à des pages web avec curl

Une manière simple d'accéder à des pages web est la commande curl. On peut l'obtenir en tapant tce-load -wi curl.tcz. Installer cette extension installe aussi ca-certificates.tcz et openssl-1.1.1.tcz. C'est pour la prise en charge de TLS/HTTPS. On peut ensuite entrer la commande curl google.com/ et du code html provenant du site s'affichera au terminal. La commande envoie en fait un HTTP GET au site. C'est ce que les navigateurs font au tout début de l'accès à un site web. On peut consulter le manuel pour voir qu'il est possible de faire des HTTP POST et de passer un corps avec des données supplémentaires à la requête.

Configurer la langue et activer le support UTF-8

Par défaut, le terminal de Core n'a aucune langue et utilise ANSI 1968. Si on veut travailler en français avec UTF-8, il faut configurer la langue française. Si on veut utiliser des extensions comme tmux, il faut aussi prendre en charge UTF-8.

On peut installer tmux pour avoir plusieurs lignes de commandes à la fois. Il faut remettre le disque IDE dans le 600X pour compléter la génération des fichiers de configuration de localisation. Une fois dans le 600X, il faut entrer la commande tce-load -wi getlocale.tcz puis sudo getlocale.sh. Dans mon cas, j'ai choisi français Canada : fr_CA.UTF-8.

Une fois que la commande se complète, il faut modifier extlinux.conf pour ajouter le drapeau de démarrage lang=fr_CA.UTF-8.

Plusieurs terminaux avec tmux

Une fois que le support UTF-8 est activé, on peut installer tmux avec tce-load -wi tmux.tcz. Une fois dans tmux, on peut diviser le terminal en deux en appuyant sur CTRL + B et puis " ou %. Voir le manuel de tmux pour plus de détails.

Erreurs à éviter lors de la modification de extlinux.conf

Ce ne sont que de toutes petites erreurs qui n'empêcheront pas le portable de démarrer. Voici un exemple de fichier extlinux.conf avec des erreurs!

Quelques modifications erronées du fichier extlinux.conf

Voici un exemple de fichier extlinux.conf :

UI vesamenu.c32
MENU TITLE Tiny Core Bootloader 
TIMEOUT 1

DEFAULT core
LABEL core
KERNEL /tce/boot/vmlinuz
INITRD /tce/boot/core.gz
APPEND vga=788 syslog showapps tce=UUID="3541ff21-9683-4df0-9ecd-a5a3fce0014c" swapfile=UUID="a53d3aa0-1607-44a2-8c43-bf71d35edf59"

LABEL unknown
MENU LABEL Unknown OS
COM32 chain.c32
APPEND boot 1
    
J'ai initialement changé ces lignes:

Erreurs avec sudo getlocale.sh

Après avoir installé avec tce-load -wi getlocale.tcz, on peut exécuter sudo getlocale.sh. S'il manque de mémoire vive, comme sur le 560Z avec 64 Mo de RAM, on peut se retrouver avec ces messages au terminal:

cp: can't stat '/tmp/mylocale.tcz': No such file or directory
md5sum: can't open 'mylocale.tcz': No such file or directory
Done. The extension is at /mnt/sda2/tce/optional/mylocale.tcz and in onboot.lst
du: /mnt/sha2/tce/optional/mylocale.tcz: No such file or directory
sh: bad number
Reboot with lang=xyz (for example lang=fr_CA.UTF-8) to start using this.
Press enter to quit.
J'ai trouvé que /mnt/sha2/tce/optional/mylocale.tcz n'existait pas alors qu'il aurait dû. Je pense qu'avec 64 Mo de RAM et même si j'ai une partition d'échange, il y a peut-être un cas où il faut charger plus que ce qui reste comme mémoire vive de libre et qu'on entre dans une situation où on est continuellement en train d'échanger de la mémoire entre la mémoire vive et la partition d'échange ce qui fait échouer le script de cette manière inattendue. En remettant le disque IDE dans mon 600X qui a 512 Mo de RAM, tout s'est bien passé. J'ai remis le disque IDE dans le 560Z qui s'est démarré en français avec UTF-8.

Remerciements!

Merci à

Dernière mise à jour 2023-10-22.