|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Dans un récent article sur mon blog, j'avais décrit comment j'utilise mon Amiga 4000 en 2024, notamment comment installer les versions 3.1 et 3.9 d'AmigaOS et présenter quelques cas d'utilisation intéressants. Après avoir mené à bien ce projet, j'ai poursuivi mes expérimentations avec l'Amiga 4000. Récemment, j'ai réussi à y faire fonctionner Linux. Il s'avère que faire fonctionner Linux sur une machine aussi ancienne (et dotée d'une architecture matérielle assez rare) est un véritable défi. On trouve beaucoup d'informations sur Internet expliquant comment procéder, mais leur qualité est inégale, certaines ressources sont obsolètes et les informations utiles sont dispersées. C'est pourquoi j'ai décidé de rédiger cet article afin de partager mes connaissances et mon expérience. ![]() 1. Mon petit historique Linux 1.1 La disparition du Commodore Après la disparition de Commodore en 1994, l'Amiga est resté mon principal ordinateur pendant plusieurs années, mais j'ai fortement ressenti son déclin dans les années qui ont suivi. Tout d'abord, aucun nouveau modèle d'Amiga n'est apparu. En 1995, un important magazine néerlandais dédié à l'Amiga (Amiga X) a cessé de paraître. Je ne recevais plus aucune mise à jour logicielle et j'utilisais toujours les mêmes applications et jeux. Lorsque l'Internet et le Web sont devenus des services courants (mi-1996), j'ai réalisé que le PC avait surpassé l'Amiga dans tous les domaines. Il était clair pour moi que l'Amiga était devenu une plate-forme obsolète et qu'il était temps de passer à autre chose. Ma transition vers le PC ne s'est pas faite brutalement. Dans les années précédant la disparition de Commodore, je m'étais déjà progressivement familiarisé avec l'utilisation des PC : je savais déjà utiliser MS-DOS, car j'avais accès aux PC de mes amis et à ceux de mon école primaire. De plus, j'ai également bénéficié d'une solide expérience pratique grâce à la carte KCS PowerPC de mon Amiga 500, capable d'émuler un PC basé sur XT. 1.2 Passer au PC comme machine principale Bien que je n'aie jamais détesté MS-DOS, je l'ai toujours considéré comme un environnement de travail primitif comparé à AmigaOS. Il était principalement orienté texte : un écran noir avec du texte gris. Son système de fichiers était rudimentaire et ne permettait d'utiliser que des noms de fichiers de huit caractères maximum (avec une extension optionnelle de trois caractères). En outre, il ne gérait pas le multitâche. Note : si vous souhaitez un environnement de bureau graphique, vous pouvez lancer une interface graphique, comme Windows 3.1. Windows 3.1 était une application DOS, et non un système d'exploitation complet. Bien qu'agréable à utiliser, il n'était généralement pas nécessaire pour jouer à des jeux. Fin 1996, mes parents ont acheté un PC flambant neuf avec Windows 95, le successeur de Windows 3.1. J'étais à la fois ravi et un peu déçu. Avant tout, j'étais ravi des nouvelles possibilités offertes par ce nouvel ordinateur : une meilleure qualité graphique et sonore, des jeux à succès indisponibles sur Amiga (notamment Wolfenstein 3D et Doom), des applications de productivité plus récentes et plus complètes que celles sur Amiga, ainsi qu'un accès à Internet et au Web. De plus, Windows 95 corrigeait plusieurs limitations de MS-DOS (et de Windows 3.1 en tant qu'interface), comme le multitâche préemptif, les noms de fichiers longs et une meilleure qualité graphique. Visuellement, l'environnement de travail sous Windows 95 n'avait rien de primitif comparé à AmigaOS ou à un environnement hybride MS-DOS/Windows 3.1. En revanche, la stabilité de Windows 95 laissait à désirer. Il plantait fréquemment, affichant un écran bleu de la mort. Par ailleurs, je le trouvais lourd et gourmand en ressources. AmigaOS n'occupait que quelques Mo sur le disque dur, tandis que Windows 95 en nécessitait plusieurs centaines. Du point de vue de l'espace disque, Windows 95 représentait un sacrifice considérable. À l'époque, notre disque dur ne faisait que 2 Go. Le processus de démarrage de Windows 95 était également bien plus long que celui du Workbench Amiga. AmigaOS est plus modulaire : il peut facilement être allégé au point de pouvoir démarrer à partir d'une simple disquette double densité. Bien qu'il soit possible de créer une disquette MS-DOS amorçable et personnalisable, il est impossible de démarrer une version allégée et personnalisée de Windows par les moyens conventionnels. Windows 95 était encore un système d'exploitation hybride MS-DOS/Windows, même s'il mettait en oeuvre plusieurs mécanismes pour masquer son héritage MS-DOS. Par exemple, il ne démarrait pas sur une invite de commandes DOS, mais on pouvait tout de même constater, au démarrage, le chargement des pilotes DOS. Pour l'utilisation classique des applications bureautiques Windows, il n'était généralement pas nécessaire de connaître cet héritage DOS. Cependant, la plupart des jeux auxquels je jouais fin 1996/début 1997 étaient encore basés sur MS-DOS. Faire fonctionner certains de ces jeux MS-DOS représentait un véritable défi, en raison du modèle de mémoire segmentée hérité du processeur Intel. Par exemple, certains jeux nécessitent encore suffisamment de mémoire vive disponible. Dans l'installation par défaut de Windows 95, la quantité de mémoire vive libre était parfois insuffisante. J'ai beaucoup utilisé MEMMAKER pour optimiser mon système et augmenter la quantité de mémoire vive disponible. L'utilisation de MEMMAKER provoquait parfois le blocage du processus de démarrage de Windows 95. De plus, de nombreux bogues gênants pouvaient rendre mon système inutilisable. Je me souviens encore qu'Active Movie, une application fournie avec Windows, avait signalé avoir perdu ses associations de fichiers. Lorsqu'elle m'a demandé de les restaurer, elle a associé tous les types de fichiers à Active Movie, y compris les fichiers ".EXE", rendant mon système inutilisable. À plusieurs reprises, j'ai également appris à mes dépens que certains programmes d'installation pouvaient corrompre le registre Windows et rendre mon système inutilisable. À cause de ces problèmes, j'ai réinstallé Windows 95 tellement de fois que je me souviens encore de sa clé de produit... 1.3 Première rencontre avec Linux : la lecture d'un magazine À un moment donné, mon père s'est abonné à un magazine informatique : c't magazine. Windows 95 jouissant d'une excellente réputation en matière de stabilité, les magazines parlaient parfois d'alternatives. C'est grâce à eux que j'ai découvert Linux début 1997. À la première lecture, j'avais du mal à croire qu'un simple étudiant, Linus Torvalds (alors étudiant à l'université d'Helsinki), ait pu créer un système d'exploitation capable de rivaliser avec Windows (développé par une multinationale) et même de faire mieux sur certains points. Je n'étais pas convaincu que Linux soit une alternative réaliste à Windows. De plus, il y avait beaucoup de choses que je ne comprenais pas. J'y reviendrai plus tard. :) 1.4 Deuxième exposition : DOS UAE Au début de 1997, j'ai découvert l'émulateur Amiga ultime/inutilisable/UNIX (UAE), qui permet d'émuler un Amiga sur différents systèmes informatiques. UAE est un émulateur portable, disponible en plusieurs versions pour divers systèmes d'exploitation. La première version que j'ai utilisée était DOS UAE. Comme j'appréciais toujours l'Amiga, j'ai décidé de tenter l'expérience. Faire fonctionner DOS UAE n'a pas été une mince affaire. J'ai dû étudier le manuel et j'ai découvert que la distribution DOS UAE incluait également la documentation de la distribution principale d'UAE. En lisant cette documentation, j'ai appris quelques informations intéressantes. Par exemple, j'ai été surpris de constater qu'il était possible d'accéder au code source d'UAE. La distribution principale d'UAE était principalement développée pour les systèmes de type UNIX (à l'époque, UNIX était un terme totalement nouveau pour moi), et plus particulièrement pour Linux. Pour les systèmes d'exploitation autres que UNIX, UAE a été décliné en plusieurs variantes, telles que : DOS UAE pour MS-DOS, WinUAE pour Windows et MacUAE pour le Macintosh classique d'Apple. Les modifications apportées à ces variantes étaient régulièrement intégrées à la distribution UAE principale. Le manuel d'UAE fournit également des instructions de configuration pour tous les autres systèmes d'exploitation compatibles. L'étude de ce manuel m'a permis de découvrir Linux une seconde fois. J'y ai appris l'existence d'une interface en ligne de commande et de nombreux utilitaires, comme : "cat", "ls", "cp", "gzip" et "bzip2". Le manuel utilisait fréquemment les termes "Linux" et "UNIX", ce qui a engendré une certaine confusion : s'agit-il de la même chose ou de deux systèmes différents ? Quel était leur lien ? 1.5 Troisième rencontre : expérience pratique réelle Après avoir réussi à faire fonctionner DOS UAE, il m'a fallu un certain temps avant de redécouvrir Linux. Ma troisième rencontre avec Linux remonte à la fin de 1999. Un cousin a commencé des études d'informatique et a été le premier à me montrer concrètement ce que signifiait travailler avec Linux. J'ai également eu l'occasion de l'essayer moi-même à plusieurs reprises. Je me souviens encore d'avoir utilisé d'anciennes versions de Red Hat Linux et de Corel Linux. Utiliser Linux pour la première fois n'a pas été une expérience effrayante pour moi, y compris la ligne de commande : je connaissais déjà les interfaces en ligne de commande d'AmigaOS et de MS-DOS, et je connaissais déjà plusieurs commandes Linux grâce à l'étude du manuel de DOS UAE. J'ai été très impressionné par plusieurs choses :
2. Quatrième expérience : installer Linux moi-même Aux alentours de l'an 2000, j'ai décidé d'installer Linux sur mon ordinateur personnel, convaincu de son utilité au quotidien. La prise en main fut un véritable défi : j'ai essayé deux distributions Linux, SuSE et Red Hat. Avec les deux, je me suis heurté à un problème de pilote : le contrôleur Ultra ATA/66 auquel mon disque dur était connecté n'était pas encore implémenté. Après un certain temps, j'ai abandonné et j'ai finalement connecté mon disque dur au contrôleur Ultra ATA/33. Plus tard, j'ai réussi à trouver un correctif pour le noyau ajoutant un pilote Ultra ATA/66. J'ai dû compiler moi-même un noyau modifié à partir du code source. En consultant kernel.org pour obtenir le code source du noyau Linux, j'ai découvert une autre propriété intéressante de Linux : c'est un système d'exploitation portable qui fonctionne sur de nombreuses architectures matérielles, en plus du PC (avec un processeur compatible Intel x86). J'ai même constaté qu'il est possible d'exécuter Linux sur un Amiga si l'on possède un modèle équipé d'un processeur Motorola 68000 avec MMU : les 68020, 68030 et 68040 (hors versions EC). Ces processeurs équipaient uniquement les modèles Amiga haut de gamme : les Amiga 2500, 3000 et 4000. Dans les années 90, je ne possédais qu'un Amiga 500 doté d'un processeur 68000 de première génération (sans MMU et sans FPU), je savais donc qu'il serait impossible d'y faire tourner Linux. 2.1 Comment débuter avec Linux sur Amiga ? Maintenant que je possède enfin un Amiga 4000 compatible Linux (avec un processeur 68040 et une MMU), j'ai décidé de me replonger dans mon vieux projet d'installer Linux sur cet Amiga. Se lancer n'est pas dénué d'obstacles. Pour les PC, les distributions Linux ne manquent pas, et leur publicité est omniprésente, mais pour le m68k, c'est quasiment impossible. Je me souviens encore, en consultant d'anciennes versions du site Web du noyau Linux, qu'il existait une page dédiée à Linux/m68k. Il s'avère que ce site n'a pas été mis à jour depuis très longtemps. Certains liens sont cassés et certaines fonctionnalités ne fonctionnent plus correctement ; par exemple, j'ai essayé de m'inscrire comme utilisateur Linux m68k, mais le formulaire d'inscription semble hors service. La page des distributions explique qu'il n'y a eu que trois distributions Linux : un ancien portage non officiel de Red Hat, Whiteline Linux/68k (une ancienne distribution Linux pour Atari ST en allemand) et Debian. Il s'avère que Debian est la seule distribution activement développée qui maintient encore un portage pour m68k. Je sais que les versions actuelles du noyau Linux gèrent toujours le m68k et que des développeurs continuent de le maintenir. J'ai donc décidé de faire une recherche sur Internet pour en savoir plus sur l'utilisation des versions modernes de Linux sur Amiga. La discussion la plus récente que j'ai trouvée se trouve sur le forum English Amiga Board. Apparemment, les mêmes questions que moi y ont été posées. Le message renvoie à une ancienne discussion de 2013 contenant des instructions d'installation de base, rédigées par un développeur Debian, expliquant comment installer une version de test de Debian (antérieure à Wheezy) sur un disque dur Amiga (par exemple, une carte CompactFlash) depuis un ordinateur hôte Linux. J'ai suivi ces instructions et cela a fonctionné. Cependant, j'ai également constaté que cette version de test de Debian ne fonctionnait pas correctement sur mon Amiga 4000. Apparemment, les instructions indiquent que 64 Mo de mémoire Fast sont le minimum requis (32 Mo peut être suffisant, mais cela n'a pas été testé). Il s'avère que les instructions étaient correctes : mon Amiga 4000 ne dispose que de 48 Mo de mémoire Fast. En conséquence, le noyau Linux démarre et le processus d'initialisation se lance, mais dès que udev est appelé (un outil qui charge les pilotes de périphériques), le noyau génère toutes sortes d'erreurs liées à la mémoire. À mi-chemin, le processus de démarrage se bloque complètement. 2.2 Sélectionner une version Debian appropriée Après avoir rencontré des problèmes de mémoire insuffisante du noyau, j'ai compris que je devais faire un choix : soit acquérir toutes les mises à niveau matérielles nécessaires, soit trouver une version plus ancienne de Debian compatible avec les capacités de ma machine actuelle. J'ai donc examiné différentes versions de Debian. En me penchant sur l'historique de Debian, j'ai appris qu'un portage m68k a été introduit avec la version 2.0. Il est resté disponible jusqu'à la version 3.1. Sa version suivante, Debian 4.0, a abandonné la gestion du m68k (ou du moins, je n'ai trouvé aucune image disque dans les archives). La version de test mentionnée dans le message du forum était une version antérieure à Wheezy (7.0). Le portage m68k a fait son retour dans Debian 9.x et les versions ultérieures. J'ai d'abord essayé le portage Debian le plus récent que j'ai pu trouver (12.0). Le disque d'installation semble fournir un programme d'installation pour Amiga, mais une fois le noyau chargé, mon système se bloque : l'écran reste gris. Le même problème s'est produit avec les versions 11.x, 10.x et 9.x. Je ne comprends pas pourquoi cet écran gris reste bloqué. Peut-être que la version Amiga est défectueuse, tandis que les autres plates-formes m68k (comme l'Atari ST ou les Macintosh classiques) fonctionnent encore. Cela pourrait aussi être lié à une consommation accrue de ressources système, mais je n'en sais rien. J'ai ensuite essayé d'anciennes distributions Debian. Le noyau Debian 3.0 semble avoir des difficultés à détecter mon disque dur ; il semble avoir du mal à accepter sa capacité supérieure à 4 Go. Debian 3.1, quant à elle, démarre correctement et ne présente pas de problème de mémoire. J'ai donc opté pour cette version. 2.3 Création d'images ISO Debian 3.1 Sarge m68k Mon Amiga 4000 n'a pas de carte réseau. Par défaut, Debian privilégie le téléchargement des paquets depuis le dépôt Debian via Internet. Le seul moyen dont je dispose pour connecter mon Amiga à une autre machine est un câble null modem, trop lent pour transférer de gros volumes de données, comme les paquets nécessaires à une installation complète de Linux. Je suis donc contraint d'utiliser des lecteurs CD-ROM/DVD-ROM. J'ai appris que Debian 3.0 est la dernière version proposant des fichiers ISO téléchargeables pour la distribution complète. Bien que sa version suivante, Debian 3.1, ne propose pas d'ISO de distribution téléchargeables (elle propose une image NETBOOT avec un système minimal), il est toujours possible de générer des ISO de distribution avec l'outil Jigdo. J'ai suivi les instructions du guide pratique Debian Jigdo en téléchargeant les fichiers Jigdo requis et en exécutant les commandes suivantes :
Les commandes ci-dessus téléchargent automatiquement tous les paquets nécessaires depuis les miroirs Debian appropriés et génèrent des images ISO autonomes. Lorsque jigdo m'a demandé un miroir Debian, j'ai fourni :
Pour les anciennes distributions Debian, il s'avère que les paquets ne sont plus disponibles à leurs emplacements d'origine. Concernant le DVD 2, un paquet présente une somme de contrôle différente : zope-quotafolder_0.1.1-1_all.deb. J'ai ignoré l'erreur, car ce paquet ne m'intéresse pas, et j'ai simplement supprimé l'extension ".tmp" du fichier ISO généré. L'ISO obtenu semble fonctionner parfaitement. Après avoir généré les deux images ISO de DVD, je les ai gravées sur des DVD-ROM. Heureusement, mon ordinateur de bureau possède encore un lecteur Blu-ray capable de graver des DVD. 2.4 Installation de Debian 3.1 sur Amiga Je peux installer Debian sur mon Amiga en insérant le premier DVD-ROM dans le lecteur DVD-ROM de mon Amiga et en démarrant l'installateur. En ouvrant le répertoire suivant sur le Workbench : "CD0:install/tools/amiga", on trouve plusieurs fichiers exécutables : ![]() L'installation de Debian est relativement simple. J'ai laissé un peu d'espace libre (plus ou moins 5 Go sur les 32 Go) à la fin de mon disque dur Amiga, qui contient déjà une installation de Workbench 3.1. Je peux utiliser cet espace pour mon installation Linux et la stocker à côté de mon installation AmigaOS. Lors de l'étape de partitionnement, j'ai choisi l'option "partitionnement manuel" et ajouté les deux partitions suivantes :
2.5 Configuration du processus de démarrage Le programme d'installation ne configure pas le processus de démarrage Linux sur l'Amiga. Vous devez le faire vous-même. Le démarrage d'un noyau Linux est un processus complexe. Bien que le noyau soit le composant du système d'exploitation qui interagit avec le matériel et contrôle le système, il n'est pas présent en mémoire dès la mise sous tension de l'ordinateur ; il doit d'abord être chargé depuis un support externe, puis démarré pour prendre le contrôle de la machine. Un chargeur de démarrage est une application généralement responsable de ce processus. Il existe différentes manières de charger et de démarrer le noyau Linux, et par conséquent, différents types de chargeurs de démarrage. Note : je sais que les anciennes versions du noyau Linux (2.6.x et inférieures) sur l'architecture x86 peuvent démarrer sans chargeur d'amorçage, comme décrit dans le guide pratique Bootdisk. Au lieu d'utiliser un chargeur d'amorçage, il est également possible d'écrire une image du noyau dans le secteur de démarrage principal (MBR) d'un disque dur. Cette image contient du code d'amorçage permettant de placer le processeur en mode protégé et de démarrer le noyau. Cette fonctionnalité est peu utilisée car elle complique la mise à jour du noyau. De nos jours, sur les PC, il est courant de charger le noyau Linux le plus rapidement possible après le démarrage de la machine (un processus que j'appellerai "démarrage à froid"). LILO était parmi les premiers chargeurs d'amorçage à gérer cette fonctionnalité ; il pouvait charger une sélection de noyaux depuis le disque dur avec des paramètres préconfigurés. LILO a finalement été remplacé par GRUB (l'une de ses améliorations est qu'il ne nécessite pas de mise à jour lorsqu'une nouvelle image du noyau est disponible) et systemd-boot (destiné aux systèmes UEFI). À l'époque de MS-DOS, il était également possible de démarrer un noyau Linux après avoir déjà démarré sous MS-DOS. MS-DOS étant un système d'exploitation relativement primitif sans protection de la mémoire, cela était facile : LOADLIN est un programme DOS capable de charger un noyau depuis une partition MS-DOS en mémoire, puis de le démarrer afin qu'il prenne le contrôle du système. Démarrer un noyau à partir d'un système d'exploitation existant en cours d'exécution est un processus que j'appellerai "démarrage à chaud". Sur Amiga, il s'avère que le démarrage à chaud de Linux depuis AmigaOS est la pratique privilégiée : amiboot est un programme Amiga capable de charger un noyau Linux en mémoire depuis AmigaOS, puis de le démarrer afin qu'il prenne le contrôle du système. Note : j'ai également trouvé des traces d'un paquet nommé "amiga-lilo". Je suppose que ce paquet sert à faciliter le démarrage à froid sur Amiga. En théorie, il devrait aussi être possible de contourner en grande partie le système d'exploitation Amiga en créant un bloc de démarrage personnalisé sur une partition. Ce bloc de démarrage personnalisé lance un programme de chargement d'amorçage. Je suppose que cette méthode de démarrage à froid sur Amiga n'a jamais rencontré un grand succès. Pour configurer le processus de démarrage de l'installation Debian sur mon Amiga, j'ai suivi les étapes suivantes :
![]() Après le démarrage de mon système Linux, l'installateur Debian reprend l'installation. Il me demande de configurer mon fuseau horaire, le nom d'hôte, le gestionnaire de paquets (en analysant les deux DVD d'installation), un compte utilisateur sans privilèges, etc. C'est généralement un processus simple, mais lent (car l'installateur est un script Perl). 2.7 Quelques cas d'utilisation Une fois l'installation terminée, comme décrit précédemment, mon système Linux basé sur Amiga est prêt à l'emploi. J'ai testé plusieurs cas d'utilisation. 3. Contrôle de la mémoire tampon de trame J'ai précédemment démontré qu'il est possible de modifier les paramètres du tampon de trame au démarrage grâce au paramètre noyau "video=" (par exemple, le mode PAL/NTSC, la profondeur de couleur et la résolution). Il est également possible de modifier ces paramètres en cours d'exécution à l'aide de l'utilitaire "fbset". L'installation de fbset se fait comme suit :
Pour utiliser correctement fbset, il faut configurer la vidéo dans le fichier "/etc/fb.modes". Or, l'installation par défaut ne fournit pas les paramètres nécessaires pour les puces vidéo OCS/ECS/AGA de l'Amiga. Heureusement, en consultant le code source, j'ai trouvé un fichier de configuration contenant les paramètres requis : fb.modes.PAL. J'ai remplacé le fichier "fb.modes" par défaut par celui-ci. Grâce à ce fichier, je peux passer en mode entrelacé en exécutant :
![]()
Lorsque j'utilise ma carte CyberVision64/3D, je souhaite également pouvoir changer de résolution et de mode couleur en cours d'exécution. N'ayant pas trouvé de fichier fb.modes préconfiguré pour ma carte RTG, j'ai dû recourir à une procédure peu orthodoxe pour obtenir les paramètres de configuration du tampon de trame. J'ai finalement démarré le noyau dans un mode vidéo spécifique, puis enregistré les paramètres du tampon de trame en exécutant la commande suivante :
J'ai ensuite redémarré et changé de mode d'affichage jusqu'à ce que tous les modes disponibles aient été utilisés. J'ai répété la procédure pour les paramètres vidéo du noyau suivants :
Lors de la capture de la configuration, le nom de la configuration résultante ne tient pas compte de la profondeur de couleur. Par exemple, lors de la capture de la configuration 640x480-8, fbset génère un mode nommé 640x480-50, où "-50" correspond à la fréquence de rafraîchissement. J'ai donc modifié les noms de configuration pour utiliser une convention de nommage de type "largeur"x"hauteur"x"profondeur de couleur", similaire aux paramètres vidéo du noyau présentés précédemment. Après avoir capturé tous les modes d'écran, je peux basculer entre eux à l'exécution. Par exemple, la commande suivante permet de passer à une résolution de 1024x768 avec une profondeur de couleur de 8 bits :
![]() 4. Le système X Window Après avoir expérimenté avec le tampon de trame, j'ai décidé d'essayer le système X Window. Les applications X11 étant gourmandes en ressources, j'ai opté pour une installation minimale. En suivant les instructions de cette page (instructions obsolètes, j'ai donc cherché les paquets équivalents pour Debian 3.1), j'ai installé les paquets suivants pour obtenir une installation X11 très légère :
Lors de l'installation des paquets ci-dessus, le script de maintenance de xserver-xfree86 me demande de fournir un certain nombre de paramètres de configuration. J'ai utilisé les valeurs suivantes :
OpenGL n'est pas requis et ne fonctionnera probablement pas sur Amiga, faute de ressources système suffisantes. Par conséquent, je peux désactiver les modules suivants en les commentant :
Le module suivant peut également être désactivé. Il est inutile car il sert à effectuer un appel d'interruption BIOS sur les systèmes 80x86 :
J'ai également constaté que le clavier ne fonctionne pas correctement avec XKB et qu'il doit être désactivé. Je peux désactiver complètement XKB en commentant les options suivantes :
Et en ajoutant la propriété suivante :
J'ai également installé TWM comme gestionnaire de fenêtres et xterm comme application de terminal :
Je peux démarrer le système X Window depuis le terminal en exécutant :
Il en résulte l'environnement graphique suivant : ![]() 5. Utilisation de l'émulateur de disquette GoTek Tout comme Linux sur PC, Linux sur Amiga peut également gérer les disquettes et divers systèmes de fichiers. Par exemple, il sait lire et écrire sur disquettes grâce au système de fichiers rapide (FFS) d'Amiga et au système de fichiers FAT de MS-DOS. J'utilise un émulateur de disquette GoTek comme lecteur de disquette supplémentaire. Cet émulateur utilise des images disque depuis une clé USB plutôt que de véritables disquettes. Le lecteur GoTek se connecte au port de disquette externe et est affecté sur le lecteur DF2:. Pour utiliser le lecteur DF2: sous Linux, je dois créer des fichiers de périphérique supplémentaires ("/dev/fd2", etc.). Cela se fait en exécutant les commandes suivantes :
J'utilise les entrées suivantes dans le fichier "/etc/fstab" pour monter les lecteurs de disquette :
Bien sûr, je dois aussi m'assurer que les répertoires des points de montage existent. Je peux les créer en exécutant :
Par exemple, je peux monter une disquette Amiga virtuelle "insérée" dans le lecteur GoTek, telle que la disquette Workbench, en exécutant la commande suivante :
Je peux ensuite accéder au contenu de la disquette en ouvrant le répertoire "/media/floppy2". 6. Établissement d'une connexion terminale entre l'Amiga et le PC à l'aide d'un câble null modem De la même manière que pour connecter mon Amiga 4000 (sous AmigaOS) à mon PC Linux, je peux également établir une connexion terminale entre mon PC Linux et mon installation Amiga Linux à l'aide d'un câble null modem. Par exemple, je peux transformer mon PC de bureau (sous NixOS) en serveur de terminal en exécutant la commande suivante en tant qu'utilisateur "root" :
La commande ci-dessus ouvre une session terminale via le port USB vers RS232, utilisant le contrôle de flux matériel (RTS/CTS) et un débit de 19 200 bits par seconde. Je peux me connecter avec minicom depuis mon Amiga 4000 pour administrer à distance mon PC de bureau et échanger des fichiers via le protocole ZMODEM. L'inverse est également possible. Avec la commande suivante (en tant qu'utilisateur "root") sur mon installation Linux Amiga 4000, je peux la transformer en serveur de terminaux :
Je pourrai alors utiliser minicom depuis mon PC de bureau pour me connecter à l'Amiga :
Le résultat de ce processus de liaison est visible sur cette image : Comme vous pouvez le constater, mon ordinateur portable de droite utilise minicom pour ouvrir une session Shell sur ma machine Amiga 4000. 7. Se connecter à Internet Une autre caractéristique intéressante de Linux est sa gestion native de la pile de protocoles Internet (note : la connectivité Internet est également possible sur AmigaOS, mais nécessite l'installation d'un logiciel supplémentaire). Outre la connexion via un terminal, je peux également établir une liaison PPP entre mon Amiga et mon PC de bureau à l'aide d'un câble null modem afin d'utiliser les protocoles Internet pour communiquer entre eux. Mon PC de bureau est censé avoir l'adresse IP 192.168.1.1 et mon Amiga 4000, 192.168.1.2. Je me suis inspiré du guide PPP, qui est quelque peu obsolète. Je dois d'abord configurer un point de terminaison de liaison sur mon Amiga 4000, avec la commande suivante :
Je peux ensuite configurer mon PC de bureau (qui est connecté à Internet via une carte Ethernet) :
Je devrais alors pouvoir tester la connectivité de mon PC de bureau depuis l'Amiga en exécutant :
En suivant quelques étapes supplémentaires, je peux également connecter mon Amiga 4000 à Internet en utilisant mon ordinateur de bureau comme passerelle. Tout d'abord, je dois activer le transfert IP sur mon ordinateur de bureau :
Ensuite, sur mon PC de bureau, je peux activer la traduction d'adresses réseau (NAT) comme suit :
Dans l'exemple ci-dessus : "ppp0" désigne l'interface de liaison PPP et "enp6s0" l'interface Ethernet connectée à Internet. Pour résoudre les noms de domaine sur l'Amiga 4000, je dois copier les paramètres du serveur de noms depuis le fichier "/etc/resolv.conf" de mon ordinateur vers l'Amiga 4000. Je pourrai ensuite, par exemple, utiliser Lynx pour accéder à ma page d'accueil. La navigation sur Internet n'est pas particulièrement rapide via un câble null modem (avec un débit de 19 200 bits par seconde), mais c'est possible. :) 8. Échange de fichiers Il est parfois nécessaire d'échanger des fichiers entre mon installation Linux sur Amiga 4000 et mon système, notamment des logiciels téléchargés depuis Internet. Plusieurs méthodes permettent d'y parvenir. 8.1 Échange de fichiers avec la carte mémoire de mon PC Linux Outre l'utilisation d'un câble null modem, lent car limité à 19 200 bits par seconde, je peux aussi simplement insérer la carte CompactFlash du périphérique CF2IDE dans le lecteur de cartes de mon PC. Une partition Ext2 sur Amiga est identique à une partition Ext2 sur PC. Le seul problème est qu'il faut trouver une solution : Linux sur mon PC ne peut pas interpréter une table de partition RDB (Rigid Disk Block), le format de partitionnement utilisé par l'Amiga. Les PC utilisent un format différent. Il existe une solution : si l'on connaît le décalage et la longueur d'une partition dans un fichier (par exemple, une image disque ou un fichier de périphérique faisant référence à un disque dur), on peut utiliser un périphérique boucle ("loopback") pour la monter. GNU Parted est capable de lire une table de partition RDB.
Dans l'extrait de code ci-dessus, j'ai lancé "GNU parted" pour lire la table de partitions de mon disque Amiga ("/dev/sdb"), j'ai converti l'unité en octets, puis j'ai affiché la table. La dernière entrée (numéro 7) correspond à la partition Linux Ext2 de mon Amiga 4000. Je peux utiliser les champs "Start" (début) et "Size" (taille) de cette table pour configurer une interface de bouclage ("/dev/loop0") pointant vers la partition Linux de ma carte CompactFlash Amiga.
Je peux ensuite monter la partition (via le fichier de périphérique boucle) dans un répertoire :
Je peux ensuite transférer des fichiers vers la partition Linux de l'Amiga en accédant à "/mnt/amiga-linux-partition". Une fois le travail terminé, je dois démonter la partition et déconnecter le périphérique de bouclage.
8.2 Échange de fichiers entre les systèmes d'exploitation AmigaOS et Linux J'ai deux systèmes d'exploitation installés sur mon Amiga 4000. Un autre cas d'utilisation important est la possibilité d'échanger des fichiers entre AmigaOS et Linux. Comme je l'ai déjà expliqué, le noyau Linux gère la lecture et l'écriture des partitions du système de fichiers FastFileSystem Amiga. Par exemple, si l'une de mes partitions de disque dur a été formatée avec FFS, je peux simplement la monter au démarrage en ajoutant l'entrée suivante au fichier "/etc/fstab" :
Malheureusement, en raison de la capacité de mon disque dur (bien supérieure à 4 Go), j'ai opté pour le système de fichiers SmartFileSystem (SFS) plutôt que pour le FastFileSystem pour mes partitions Amiga. Il semblerait qu'un module noyau Linux pour SFS ait été développé, mais il n'a jamais été intégré au noyau Linux principal et son développement semble avoir été abandonné depuis longtemps. Par conséquent, il m'est impossible de lire mes partitions AmigaOS depuis Linux. Heureusement, l'inverse est possible : il est possible de lire et d'écrire sur une partition Linux Ext2 depuis AmigaOS grâce au gestionnaire de système de fichiers ext2fs disponible pour AmigaOS. Son installation se déroule en trois étapes :
La commande ci-dessus examine le premier lecteur sur le bus SCSI et écrit les entrées de la liste de montage dans le répertoire "DH0:T". Par exemple, pour ma première partition de disque dur, GiggleDisk a généré le fichier DOSDriver suivant ("DH0:T/DH0") :
Heureusement, la plupart des propriétés des entrées de la liste de montage sont identiques pour toutes les partitions. Les seules différences entre les partitions sont les suivantes :
Il nous faut ensuite calculer les valeurs LowCyl et HighCyl. Dans la section précédente, nous avons déjà récupéré les décalages (en octets) de toutes les partitions à l'aide de GNU Parted. Nous pouvons utiliser ces décalages pour calculer les propriétés LowCyl et HighCyl. Tout d'abord, il faut calculer le nombre de blocs par cylindre. Cette valeur peut être calculée avec la formule suivante :
Nous pouvons faire correspondre les variables de la formule ci-dessus aux propriétés indiquées dans l'entrée de montage précédente :
À partir du nombre de blocs par cylindre, je peux déduire la quantité d'octets par cylindre grâce à la formule suivante :
En renseignant la valeur BlockSize dans le fichier de configuration, on obtient le résultat suivant :
À partir de la valeur ci-dessus, je peux déduire le cylindre bas grâce à la formule suivante :
En renseignant le décalage de début (en octets) de la partition Linux à partir de la sortie de GNU Parted, on obtient :
Je peux utiliser la même valeur pour calculer également la taille en cylindres :
La valeur du cylindre haut peut être calculée comme suit :
Note : il faut soustraire 1 car le cylindre de départ est pris en compte dans le calcul de la taille. En mettant à jour le fichier de montage avec les valeurs LowCyl et HighCyl ci-dessus, j'ai renseigné toutes les propriétés de configuration requises. Malheureusement, j'ai constaté que fournir les paramètres corrects ne suffit pas. Un autre petit problème se pose : il s'avère que le pilote du système de fichiers Ext2 est également limité par la limitation de 4 Go du pilote SCSI. J'ai appris, grâce au fichier README d'ext2fs, qu'il est possible de contourner cette limite en installant un programme appelé td64patch. td64patch est un programme qui doit s'exécuter en arrière-plan. Bien que ce programme soit fonctionnel, je préfère ne pas l'intégrer à la startup-sequence car je n'en ai pas besoin en permanence. En guise de solution alternative, j'ai créé un script de montage (MountEXT6) :
Le script ci-dessus effectue deux opérations :
![]() 9. Exécution de Linux dans FS-UAE Une autre question qui m'intriguait était de savoir s'il était possible d'exécuter Linux pour Amiga dans FS-UAE, un émulateur Amiga. L'utilisation d'un émulateur est pratique pour l'expérimentation. De plus, UAE n'utilise pas une émulation au cycle près pour les processeurs 68020 et les modèles ultérieurs. Il émule plutôt la plus rapide possible. Par conséquent, sur mon PC de bureau moderne, un Amiga 4000 émulé fonctionne beaucoup plus rapidement que mon Amiga 4000 réel. Pour expérimenter avec Linux, par exemple en compilant des paquets à partir du code source, cette vitesse accrue est très appréciable. Il s'avère qu'exécuter Linux dans FS-UAE est effectivement possible, mais nécessite l'activation de certains paramètres. Le principal obstacle réside dans la manière dont UAE "émule" les disques durs et les lecteurs CD-ROM. En réalité, FS-UAE ne les émule pas réellement, mais fournit ses propres pilotes de remplacement pour AmigaOS : uaehf.device et uaescsi.device, qui interagissent avec le système de fichiers et les pilotes de périphériques de l'hôte. Linux ne fonctionne pas avec les pilotes de périphériques AmigaOS : une fois le noyau démarré, il prend le contrôle du matériel. Il est possible, en alternative, d'émuler des contrôleurs IDE. Lorsque l'émulation IDE est activée, AmigaOS utilise son propre pilote scsi.device pour interagir avec les périphériques de stockage. Linux peut alors contrôler les contrôleurs IDE de manière autonome. Pour un disque dur, il faut créer un fichier de configuration (le montage d'un répertoire depuis le système de fichiers hôte utilise uaehf.device ) et spécifier un contrôleur IDE. Pour ce faire, il suffit d'ajouter les propriétés suivantes à un fichier de configuration FS-UAE :
Dans l'extrait de code ci-dessus, le disque dur 0 utilise mydrive.hdf comme fichier de partition, un contrôleur IDE nommé "ide" et la propriété "type" indique que le fichier contient une table de partitions RDB et non une partition unique. Cette dernière propriété est nécessaire uniquement si le fichier est vide. Une fois le partitionnement terminé, FS-UAE détecte automatiquement le type de fichier. Pour le lecteur CD-ROM, il est également nécessaire d'activer un contrôleur IDE.
Après avoir configuré les contrôleurs IDE, nous devrions pouvoir installer Debian dans FS-UAE sur l'image disque. J'ai constaté que l'émulation d'un contrôleur IDE combinée à un lecteur CD-ROM émulé n'est pas parfaite. Parfois, les accès des entrées/sorties sont très lents sous AmigaOS. Lors de l'installation de Debian à partir des DVD-ROM, j'ai remarqué que pendant le processus d'installation des paquets, je rencontre parfois des erreurs de lecture. Heureusement, je peux contourner ce problème en exécutant une session Shell depuis l'installateur Debian et en remontant le lecteur CD-ROM.
Je reprends ensuite l'installation là où je l'avais laissée. Après quelques essais, l'installation devrait réussir. Je peux ainsi exécuter Linux facilement dans FS-UAE. La capture d'écran ci-dessus montre mon système Linux NixOS (fonctionnant sur un processeur x64) exécutant FS-UAE, qui fait tourner Debian Linux pour m68k. Plutôt sympathique, non ? De la même manière qu'avec la carte mémoire du périphérique SCSI2SD de mon Amiga 500, je peux insérer la carte CompactFlash de mon Amiga 4000 dans le lecteur de cartes de mon PC et lancer son installation Linux sous FS-UAE. Pour cela, je dois modifier les paramètres du disque dur afin d'utiliser le fichier de périphérique correspondant à mon lecteur de cartes.
Dans l'extrait de code ci-dessus, "/dev/sdb" correspond au fichier de périphérique représentant le lecteur de cartes. Je dois également m'assurer que ce fichier est accessible à un utilisateur non privilégié en lui attribuant des permissions publiques. Pour ce faire, je dois exécuter la commande suivante en tant qu'utilisateur "root" :
Conclusion Dans cet article, je décris mon utilisation de Linux sur mon Amiga 4000. J'espère que ces informations seront utiles à tous ceux qui envisagent d'installer Linux sur leur Amiga. De plus, j'espère que la documentation disponible sur la page d'accueil Linux/m68k sera mise à jour prochainement. Les informations de cet article pourront peut-être y contribuer. Debian 3.1 fonctionne correctement chez moi, mais tout est beaucoup plus lent que sur un PC. Ce n'est pas vraiment surprenant si l'on utilise un système d'exploitation (dont la dernière mise à jour date de 2008) sur un processeur du début des années 1990 cadencé à 25 MHz ! La plupart des utilitaires en ligne de commande (écrits en C) fonctionnent à une vitesse acceptable, mais les applications comme les scripts Perl ou le système X Window sont généralement assez lentes. J'ai également constaté que la quantité de ressources système nécessaires au noyau Linux augmente à chaque nouvelle version. Même pour l'Amiga, une plate-forme matérielle obsolète, il est possible de répondre à ces exigences système plus élevées, par exemple en achetant une carte accélératrice avec un processeur nettement plus rapide (par exemple un 68060 à 100 MHz) et beaucoup plus de mémoire (par exemple 512 Mo de mémoire Fast). Bien qu'une carte accélératrice puisse considérablement améliorer les performances de mon Amiga, je ne souhaite pas effectuer de telles mises à niveau. Si j'aime bidouiller avec mon Amiga, c'est justement parce que c'est une machine aux capacités limitées. Je l'utilise par nostalgie et pour des raisons créatives, comme le développement de logiciels adaptés à ses capacités. J'ai tout de même effectué une petite mise à niveau de mon Amiga 4000 : ma carte d'extension Fastlane Z3 peut encore accueillir 32 Mo de mémoire Fast supplémentaires. J'ai donc décidé d'en acheter 16 Mo de plus, portant ainsi la quantité de mémoire Fast de mon Amiga de 48 Mo à 64 Mo. J'apprécie grandement les efforts de Debian pour maintenir des distributions Linux et GNU peu courantes. D'un point de vue commercial, je pense qu'il y a peu de motivation à maintenir le portage m68k, mais c'est toujours encourageant de voir qu'un projet communautaire comme Debian continue à s'y investir. Cela m'a aussi donné envie de voir si je peux exécuter certains de mes logiciels sous Linux sur l'Amiga 4000. Les paquets de mon projet expérimental sur le format de fichier IFF seraient des candidats évidents. Il me faut trouver plus de temps libre pour voir si c'est possible. :) Une autre question que je m'attends à ce que l'on me pose (surtout ceux qui me connaissent un peu mieux grâce à mon expérience avec Linux) concerne le portage du gestionnaire de paquets Nix et de la distribution Linux qui en découle : NixOS vers m68k-linux. Je n'ai encore rien prévu, mais qui sait ? Ces outils sont essentiels à mon processus de développement logiciel personnel et j'ai déjà réalisé une expérience intéressante mêlant l'Amiga à ces outils par le passé. :)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||