Obligement - L'Amiga au maximum

Mercredi 06 mai 2026 - 08:42  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur Mastodon




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


En pratique : Installation et utilisation de Linux Debian 68k sur Amiga 4000
(Article écrit par Sander van der Burg et extrait de sandervanderburg.blogspot.com - janvier 2025)


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.

Linux Debian A4000

Certains lecteurs se demanderont sans doute pourquoi je souhaite installer Linux sur une machine aussi ancienne ? Outre la nostalgie et les projets de programmation ludiques, j'entretiens un lien particulier avec les machines Amiga et Linux. En réalité, c'est mon expérience avec l'Amiga qui m'a finalement conduit à Linux. À mon avis, c'est une histoire intéressante, mais n'hésitez pas à passer directement à la section suivante. :-)

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 :
  • Il était très performant en multitâche - je pouvais facilement exécuter plusieurs programmes en même temps.
  • Il existait une interface en ligne de commande qui était plutôt agréable et plus puissante (par exemple, la complétion par tabulation) que l'interface en ligne de commande MS-DOS de Windows 95, qui était quelque peu considérée comme un citoyen de seconde zone.
  • Les systèmes de fichiers Linux natifs (par exemple Ext2) avaient plus de capacités que le système de fichiers FAT32 de Windows 95 : des noms de fichiers longs natifs et une notion de propriété et de permissions.
  • Grâce à un système de fichiers plus performant et à sa notion de propriété, la sécurité était considérablement renforcée. En particulier, le fait que le système de fichiers racine appartienne à l'utilisateur "root" et qu'un utilisateur non privilégié n'ait accès en écriture qu'aux fichiers de son propre répertoire personnel constituait une amélioration majeure par rapport à Windows 95, 98 et Me, où l'utilisateur disposait d'un accès complet à tous les fichiers, y compris ceux du système d'exploitation.
  • De nombreuses distributions Linux étaient assez modulaires. Elles proposaient des gestionnaires de paquets permettant d'installer, de mettre à jour et de supprimer facilement des paquets supplémentaires. Il était également relativement facile de déployer un système allégé si besoin. Windows 95 offrait aussi la possibilité d'activer ou de désactiver certains composants, mais même dans sa version la plus simple, il me paraissait lourd.
  • Les environnements de bureau graphiques étaient plutôt réussis. J'ai testé KDE et GNOME, et même s'ils n'étaient pas parfaits, leur apparence et leur ergonomie me convenaient.
  • Je pourrais facilement mettre en place un serveur et fournir des services tels que la messagerie électronique, un serveur Web et le FTP.
  • Des applications et des jeux commerciaux populaires sont devenus disponibles pour Linux, comme Netscape, Real Player, WordPerfect, Quake 3 Arena et Unreal Tournament. Je me souviens que Quake 3 et Unreal Tournament fonctionnaient très bien avec ma carte graphique NVidia Riva TNT2.
J'ai également progressivement appris comment Linux a été développé : Linus Torvalds a lancé le projet Linux alors qu'il était encore étudiant à l'université d'Helsinki, mais les paquets logiciels d'une distribution Linux sont développés par un mouvement plus large :
  • Le composant portant le nom de Linux est un noyau de système d'exploitation, et non un système d'exploitation complet. La plupart des systèmes Linux sont généralement complétés par des paquets du projet GNU, tels que GNU Bash, GNU Coreutils, GNU Texinfo, etc. C'est pourquoi le projet GNU considère que GNU/Linux est une appellation plus précise pour les distributions Linux.
  • Linus Torvalds dirige le projet Linux, mais il ne réalise pas tout le développement seul ; en réalité, de nombreux développeurs participent au développement du noyau et d'autres projets.
  • L'objectif de Linux et des projets GNU est de fournir une version libre d'UNIX. Les concepts mis en oeuvre par ces paquets existent déjà dans des systèmes d'exploitation UNIX non libres et commerciaux.
  • D'autres composants d'une distribution Linux sont développés par d'autres communautés. Par exemple, les environnements de bureau KDE et GNOME sont développés par leurs propres communautés.
  • La plupart des logiciels fournis par les distributions Linux sont des logiciels libres et en code source ouvert. Leur code source est disponible ; vous pouvez l'étudier, le modifier et distribuer vos propres copies (modifiées).
Dans les années 1990 et au début des années 2000, cela était considéré comme assez inhabituel : la plupart des logiciels connus étaient des produits propriétaires dont le code source restait confidentiel.

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 :

$ jigdo-lite debian-31r8-m68k-binary-1.jigdo
$ jigdo-lite debian-31r8-m68k-binary-2.jigdo
$ jigdo-lite debian-31r8-i386-binary-1.jigdo
$ jigdo-lite debian-31r8-i386-binary-2.jigdo

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 :

http://archive.kernel.org/debian-archive/debian/

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 :

Linux Debian A4000

Seuls deux des exécutables ci-dessus me sont utiles. L'icône StartInstall lance un noyau Linux utilisant le pilote de tampon de trame ("framebuffer") pour les puces vidéo OCS/ECS/AGA de l'Amiga. Le problème de cet installateur est que le pilote est configuré par défaut pour utiliser un affichage en mode "double NTSC" (ce mode est similaire au NTSC standard, mais avec une fréquence de rafraîchissement deux fois supérieure). Comme mon écran PAL ne gère pas le mode double NTSC, l'affichage est déformé. Je peux corriger ce problème en copiant le script StartInstall et en ajoutant le paramètre noyau "video=amifb:pal" pour forcer le noyau à utiliser un mode PAL standard au démarrage. Il existe une autre icône d'installateur nommée "StartInstall_CV3D". Ce script configure le noyau pour utiliser le pilote de tampon de trame CyberVision64/3D. J'ai choisi cet installateur pour mon installation, car j'ai une carte RTG installée sur ma machine.

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 :
  • Une partition d'échange de 128 Mo.
  • La partition racine ("/") utilise l'espace disque disponible restant. La partition racine utilise le système de fichiers Ext2.
L'installation des paquets prend un temps considérable sur mon Amiga : la décompression et l'installation sont bien plus lentes que sur une machine moderne. Je n'ai pas mesuré précisément la durée totale de l'installation, mais il a fallu plusieurs heures avant que le système de base ne soit installé. De plus, bien que l'installateur fonctionne, il est très lent et peu réactif. Il semble être écrit en Perl, et l'interprétation de scripts Perl sur mon Amiga est nettement plus lente que l'exécution de fichiers compilés en C. J'ai parfois l'impression que le processus est complètement bloqué, mais en exécutant la commande "ps" dans un second terminal, je constate que la machine effectue en réalité un travail important.

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 :
  • J'ai créé un répertoire sur ma première partition AmigaOS : "DH0:boot-debian" et j'y ai ajouté une icône Workbench.
  • J'ai copié le programme amiboot et les fichiers de documentation associés depuis le dossier suivant du premier DVD d'installation Debian : "CD0:install/tools/amiga" vers "DH0:boot-debian".
  • J'ai copié le noyau Linux pour Amiga depuis l'emplacement suivant : "CD0:install/kernels/vmlinuz-2.4.27-amiga" vers "DH0:boot-debian".
  • J'ai renommé les fichiers StartInstall_#? en Start_#? car ces scripts ne servent plus à démarrer l'installateur, mais à démarrer mon système Linux.
  • J'ai modifié l'instruction amiboot du script de démarrage avec les paramètres suivants :

    amiboot-5.6 -d -k vmlinuz-2.4.27-amiga root=/dev/hda7 video=amifb:pal video=virge:off
    

    La commande ci-dessus invoque amiboot pour charger le noyau Linux à partir d'une image située dans le même répertoire avec les paramètres suivants :
    • La partition racine pointe vers la septième partition du disque dur : "/dev/hda7".
    • J'ai configuré le tampon de trame Amiga pour qu'il démarre en mode PAL, au lieu du mode "double NTSC" par défaut. Le mode "double NTSC" perturbe l'affichage.
    • J'ai désactivé le pilote S3 Virge (la puce vidéo de ma carte CyberVision64/3D), car il provoque une exception de division par zéro dans le noyau au démarrage.
  • J'ai modifié l'instruction amiboot du script Start_CV3D en conservant pour la plupart les mêmes ajustements :

    amiboot-5.6 -d -k vmlinuz-2.4.27-amiga root=/dev/hda7 video=virge:640x480-8
    

    La seule différence est que la commande ci-dessus indique au noyau d'utiliser ma carte CyberVision64/3D avec une résolution de 640x480 et une profondeur de couleur de 8 bits.
  • J'ai créé un fond d'écran avec les icônes "Start" et "Start_CV3D" (en sélectionnant les icônes, puis en choisissant "Icône -> Exclure" dans le menu) afin de pouvoir démarrer Linux facilement depuis le bureau :

    Linix Debian A4000

Cliquer sur l'icône "Start" m'affiche l'écran de démarrage suivant :

Linix Debian A4000

2.6 Achèvement de l'installation de Debian

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 :

$ apt-get install fbset

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 :

$ fbset pal-lace

Linix Debian A4000

Comme le montre l'image ci-dessus, l'exécution de la commande ci-dessus double le nombre de lignes de balayage sur mon écran (au prix d'un scintillement). Je peux revenir au mode PAL normal en exécutant :

$ fbset pal

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 :

$ fbset >> /etc/fb.modes

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 :

virge:640x480-8
virge:800x600-8
virge:1024x768-8
virge:1280x1024-8
virge:1600x1200-8
virge:640x480-16
virge:800x600-16
virge:1024x768-16

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 :

$ fbset 1024x768-8

Linix Debian A4000

Comme on peut le constater sur l'image ci-dessus, la résolution est passée de 640x480 à 1024x768.

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 :

$ apt-get install xfonts-base xfree86-common xlibs xserver-common \
    xserver-xfree86 xbase-clients

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 :
  • Sélectionnez le pilote de serveur X souhaité : fbdev.
  • Utiliser l'interface de périphérique de tampon de trame du noyau : oui.
  • Règle XKB à utiliser : xfree86.
  • Sélectionnez le modèle de clavier : amiga.
  • Disposition du clavier : us (ou "fr" pour les français).
  • Périphérique souris : /dev/amigamouse.
  • Votre moniteur est-il un écran LCD ? non.
  • Méthode pour choisir les caractéristiques de votre moniteur ? simple.
  • Taille de l'écran : 17 pouces.
  • Mode vidéo à utiliser : 640x480.
  • Profondeur de couleur par défaut en bits : 8.
Après avoir tenté de démarrer le système X Window, j'ai constaté qu'il plantait au démarrage lors du chargement de certains modules. J'ai résolu le problème en ouvrant le fichier "/etc/X11/XF86Config-4" dans un éditeur de texte et en désactivant les modules problématiques.

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 :

# Load "GLcore"
# Load "dri"
# Load "glx"

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 :

# Load "int10"

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 :

# Option "XkbRules" ...
# Option "XkbModel" ...
# Option "XkbLayout" ...

Et en ajoutant la propriété suivante :

Option "XkbDisable"

J'ai également installé TWM comme gestionnaire de fenêtres et xterm comme application de terminal :

$ apt-get install twm xterm

Je peux démarrer le système X Window depuis le terminal en exécutant :

$ startx

Il en résulte l'environnement graphique suivant :

Linix Debian A4000

Le système X Window fonctionne parfaitement avec ma carte CyberVision64/3D. Je ne sais pas encore s'il est possible de l'utiliser avec les puces AGA : cela provoque systématiquement une erreur de segmentation au démarrage.

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 :

$ cd /dev
$ ./MAKEDEV fd2

J'utilise les entrées suivantes dans le fichier "/etc/fstab" pour monter les lecteurs de disquette :

/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
/dev/fd1 /media/floppy1 auto rw,user,noauto 0 0
/dev/fd2 /media/floppy2 auto rw,user,noauto 0 0

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 :

$ mkdir /media/floppy0
$ mkdir /media/floppy1
$ mkdir /media/floppy2

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 :

$ mount /media/floppy2

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" :

$ agetty --flow-control ttyUSB0 19200

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 :

$ getty -h 19200 /dev/ttyS0

Je pourrai alors utiliser minicom depuis mon PC de bureau pour me connecter à l'Amiga :

$ minicom -b 19200 -D /dev/ttyUSB0

Le résultat de ce processus de liaison est visible sur cette image :

Linix Debian A4000

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 :

$ pppd -detach crtscts lock noauth defaultroute 192.168.1.2:192.168.1.1 /dev/ttyS0 19200

Je peux ensuite configurer mon PC de bureau (qui est connecté à Internet via une carte Ethernet) :

$ pppd -detach crtscts lock noauth proxyarp 192.168.1.1:192.168.1.2 /dev/ttyUSB0 19200

Je devrais alors pouvoir tester la connectivité de mon PC de bureau depuis l'Amiga en exécutant :

$ ping 192.168.1.1

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 :

echo 1 > /proc/sys/net/ipv4/ip_forward

Ensuite, sur mon PC de bureau, je peux activer la traduction d'adresses réseau (NAT) comme suit :

INTERNAL_INTERFACE_ID="ppp0"
ID_INTERFACE_EXTERNE="enp6s0"

iptables -t nat -A POSTROUTING -o $EXTERNAL_INTERFACE_ID -j MASQUERADE
iptables -A FORWARD -i $EXTERNAL_INTERFACE_ID -o $INTERNAL_INTERFACE_ID -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $INTERNAL_INTERFACE_ID -o $EXTERNAL_INTERFACE_ID -j ACCEPT

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.

Linix Debian A4000

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.

parted /dev/sdb
unit B
print
Model: Generic- USB3.0 CRW-CF/MD (scsi)
Disk /dev/sdb: 32019111936B
Sector size (logical/physical): 512B/512B
Partition Table: amiga
Disk Flags: 

Number  Start         End           Size          File system     Name  Flags
 1      1806336B      2149539839B   2147733504B   asfs            DH0   boot
 2      2149539840B   4297273343B   2147733504B   asfs            DH1
 3      4297273344B   6445006847B   2147733504B   asfs            DH2
 4      6445006848B   15090130943B  8645124096B   asfs            DH3
 5      15090130944B  25891117055B  10800986112B  asfs            DH4
 6      25891117056B  26019366911B  128249856B    linux-swap(v1)  DH5
 7      26019366912B  32019111935B  5999745024B   ext2            DH6
quit

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.

$ losetup --offset 26019366912 --sizelimit 5999745024 /dev/loop0 /dev/sdb

Je peux ensuite monter la partition (via le fichier de périphérique boucle) dans un répertoire :

$ mount /dev/loop0 /mnt/amiga-linux-partition

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.

$ umount /mnt/amiga-linux-partition
$ losetup -d /dev/loop0

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" :

/dev/hda1 /mnt/harddisk affs defaults 0 0

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 :
  • Extraire le contenu du fichier Lha dans un répertoire temporaire.
  • Copier le gestionnaire AmigaOS/Ext2FileSystem dans L:.
  • Créer une entrée DEVS:DOSDrivers spécifiant les paramètres de montage de la partition Linux Ext2.
Écrire le fichier DOSDriver pour la partition Ext2 est complexe : le paquet ext2fs suggère d'utiliser GiggleDisk pour générer automatiquement une liste de montage. Cet outil permet généralement de déduire les propriétés de configuration de la table de partitions RDB. J'ai rencontré un problème gênant avec GiggleDisk : à son exécution, il s'arrête avec une erreur "En-tête RDB invalide". Après quelques essais, j'ai constaté qu'il rencontre un problème avec les partitions Ext2 et swap. Si je supprime les partitions Linux, GiggleDisk parvient à générer une liste de montage pour toutes les partitions Amiga. Par conséquent, je recommande d'exécuter GiggleDisk avant de générer les partitions Linux et de conserver la liste de montage correspondante pour une utilisation ultérieure. Avant d'installer Linux, vous devez installer GiggleDisk et exécuter la commande suivante :

GiggleDisk DEVICE scsi.device UNIT 0 TO DH0:T

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") :

/*
** DosDriver automatically created by GiggleDisk
**
** GiggleDisk (c)2005 Guido Mersmann
**
*/

FileSystem       = df2:l/SmartFilesystem
Device           = scsi.device
Unit             = 0
BlockSize        = 512
Surfaces         = 7
SectorsPerBlock  = 2
BlocksPerTrack   = 252
Reserved         = 2
PreAlloc         = 0
Interleave       = 0
MaxTransfer      = 0x0001FE00
Mask             = 0x7FFFFFFE
LowCyl           = 2
HighCyl          = 2412
Buffers          = 80
BufMemType       = 0
StackSize        = 16384
Priority         = 0
GlobVec          = -1
DosType          = 0x43465300
Activate         = 1
Mount            = 1
/* Bootable      = TRUE */

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 :
  • Les champs FileSystem et DosType.
  • L'emplacement de la partition sur le disque dur, défini par les propriétés LowCyl et HighCyl.
En étudiant la documentation du paquet ext2fs, en utilisant les informations de GNU Parted (présentées dans la section précédente) et quelques calculs, je peux déduire les paramètres de configuration de la partition Ext2 à partir des configurations des partitions existantes. Je dois d'abord copier le fichier "DH0" et le nommer "EXT6". "EXT6:" désigne le périphérique de système de fichiers Ext2 équivalent à la partition DH6:. Ensuite, je modifie les deux champs suivants afin que le système d'exploitation sache qu'il doit s'agir d'une partition de système de fichiers Ext2 :

FileSystem = DH0:L/Ext2FileSystem
DosType = 0x45585432

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 :

blocksPerCylinder = heads * sectors (blocsParCylindre = têtes * secteurs)

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 :
  • "Heads" (têtes) correspondent à "Surfaces".
  • "Sectors" correspondent à "BlocksPerTrack".
Dans notre situation, cela donne :

blocksPerCylinder = 7 * 252 = 1764

À partir du nombre de blocs par cylindre, je peux déduire la quantité d'octets par cylindre grâce à la formule suivante :

bytesPerCylinder = blocksPerCylinder * BlockSize

En renseignant la valeur BlockSize dans le fichier de configuration, on obtient le résultat suivant :

bytesPerCylinder = 1764 * 512 = 903168

À partir de la valeur ci-dessus, je peux déduire le cylindre bas grâce à la formule suivante :

LowCyl = Start / bytesPerCylinder

En renseignant le décalage de début (en octets) de la partition Linux à partir de la sortie de GNU Parted, on obtient :

LowCyl = 26019366912 / 903168 = 28809

Je peux utiliser la même valeur pour calculer également la taille en cylindres :

sizeInCylinders = Size / bytesPerCylinder 
  = 5999745024 / 903168
  = 6643

La valeur du cylindre haut peut être calculée comme suit :

HighCyl = LowCyl + sizeInCylinders - 1
  = 28809 + 6643 - 1
  = 35451

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) :

Run C:td64patch DEVICE scsi.device
C:Mount DH0:Storage/DOSDrivers/EXT6

Le script ci-dessus effectue deux opérations :
  • Il lance le programme td64patch en arrière-plan pour contourner les limitations du pilote scsi.device d'AmigaOS.
  • Ensuite, il monte le lecteur EXT6: en utilisant la configuration de montage que nous avons créée précédemment.
J'ai également créé une icône pour le script ci-dessus, en utilisant "C:\IconX" comme outil par défaut, et j'ai ajouté un arrière-plan pour pouvoir le lancer facilement depuis le bureau lorsque j'en ai besoin :

Linix Debian A4000

La capture d'écran ci-dessus montre le résultat du clic sur l'icône MountEXT6. Le lecteur EXT6: est monté et je peux explorer son contenu sur le Workbench.

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 :

hard_drive_0 = mydrive.hdf
hard_drive_0_controller = ide
hard_drive_0_type = rdb

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.

cdrom_drive_0_controller = ide1

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.

umount /cdrom
# Eject the CD-ROM and reinsert it again with FS-UAE (F12)
mount /dev/cdroms/cdrom0 /cdrom
exit

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.

Linix Debian A4000

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.

hard_drive_0 = /dev/sdb

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" :

$ chmod 666 /dev/sdb

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é. :)


[Retour en haut] / [Retour aux articles]