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
Voici les étapes pour essayer Core 14.0 sur le Thinkpad 600X:
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:
gparted
sudo mount /mnt/sr0
. On en aura besoin
pendant l'installation Frugal.
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
.
F
pour l'installation Frugal sur disque dur.
2
pour utiliser la partition existante et
ÉVITER le disque en entier.
y
4
. Même si la partition est déjà présente
l'installeur demande de préciser le format pour continuer.
/mnt/sr0
. Si on n'entre rien, l'installeur ne continuera pas.
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.
sda
. J'avais déjà fait une sauvegarde et la partition
est vide de toute manière. Il faut accepter pour continuer.
sudo umount /mnt/sr0
sudo eject /dev/sr0
sudo reboot
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é
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:
Il faut ajuster l'adresse IP à son propre réseau.
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
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.
À ce point-ci, j'ai éteint le 560Z et j'ai modifié les partitions avec
gparted
dans Debian pour atteindre cette configuration:
UUID="d39a00cb-d63f-470e-8c46-0bdbd1db2d6f"
UUID="3541ff21-9683-4df0-9ecd-a5a3fce0014c"
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:
et le résultat que l'on veut:
sudo mount /dev/sda1
cd /mnt/sda1/tce/boot/extlinux/
vi extlinux.conf
Le
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
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
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.
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
.
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.
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!
extlinux.conf
Voici un exemple de fichier extlinux.conf
:
J'ai initialement changé ces lignes:
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
TIMEOUT 1
. La valeur initiale était 100 pour attendre 10
secondes à l'écran de sélection du système d'exploitation. J'aurais pu
effacer le bloc de code du début et de la fin et ne garder que le bloc
du milieu à la place.
APPEND vga=788 syslog showapps tce=UUID="3541ff21-9683-4df0-9ecd-a5a3fce0014c" swapfile=UUID="a53d3aa0-1607-44a2-8c43-bf71d35edf59"
qui avait l'air de ceci à l'origine
APPEND quiet vga=normal syslog showapps waitusb=5 tce=sda1 waitusb=5:UUID="d39a00cb-d63f-470e-8c46-0bdbd1db2d6f" tce=UUID="d39a00cb-d63f-470e-8c46-0bdbd1db2d6f"
.
L'erreur d'avoir deux fois tce=
était due à l'installation
avec tce-install.sh
. Ça ne cause pas de problème de
démarrage bien sûr, mais il vaut mieux n'avoir qu'une occurence.
swapfile=UUID="a53d3aa0-1607-44a2-8c43-bf71d35edf59"
. Les
fichiers d'échange sont différents des partitions d'échange. TC trouve
automatiquement les partitions d'échanges. Les partitions d'échanges
sont plus rapides que les fichiers d'échange.
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:
J'ai trouvé que
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.
/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.
Merci à
getlocale.tcz
et à juanito, cheslavic et
Nicholas Marriott pour tmux.tcz
getlocale.tcz
Dernière mise à jour 2023-10-22.