Debian sur un iMac G3

Publié le 30/12/2022, dans informatique, retro, apple

J'adore faire les vide-greniers à la recherche d'objets amusants, insolites ou de vieux ordinateurs. J'ai une petite collection d'anciens ordinateurs Apple en état de marche, je parlerai surement de chacun dans des articles séparés. Mais cette année j'ai trouvé un iMac G3 et j'ai décidé d'installer Debian dessus.

La machine

Voici la bête :

iMac G3

C'est un iMac G3 modèle « Kiva » de 2001, couleur « Graphite ». Il a un processeur PowerPC 750 (500 MHz), 512 MiB de ram et un disque dur Maxtor de 30 GB. Il a également une carte graphique ATI Rage 128 Pro.

Avec j'ai pu avoir un clavier et une souris Mac « Pro ».

L'installation de Debian

Il a fallu faire un choix, car toutes les distributions Linux ne supportent pas (ou plus) les architectures PowerPC. Debian met à disposition des iso des dernières versions pour l'architecture PowerPC. C'est donc une Debian que j'ai installé car ça me semblait être le choix le plus simple.

Bien que cet iMac ait un lecteur CD je ne savais pas s'il fonctionnait bien et surtout je n'ai pas de CD à graver avec moi. Mais en fouillant un peu sur le web je vois qu'il est possible de le faire boot à partir d'un support USB. Je déploie donc mon iso sur une clé USB et je la branche.

Pour afficher les options de boot, il faut démarrer la machine en gardant enfoncée la touche « Alt » à gauche du clavier (Celle avec une sorte de casserole dessinée dessus). Là si tout va bien un écran avec un curseur « montre » apparaît, tourne un moment et affiche les options de boot, dont notre clé USB.

À partir de là c'est comme n'importe quelle installation de Debian.

L'interface graphique

Une fois l'installation terminée tout fonctionne bien. Je décide donc d'installer Xorg et i3 pour voir si l'interface graphique marche et… bien sûr que non ! Le message d'erreur indique « No screens found ».

En fait comme je l'ai dit plus tôt, il y a une carte graphique ATI et il faut donc le driver qui va avec. Pour cette carte graphique il existe un driver xf86-video-r128, voilà comment l'installer :

En premier j'installe les dépendances utiles :

# apt install autoconf xutils-dev automake libtool pkg-config m4 xorg xorg-dev git make

Puis je clone le dépôt du driver :

# git clone https://gitlab.freedesktop.org/xorg/driver/xf86-video-r128
# cd xf86-video-r128/

De base le driver ne fonctionne pas avec les architectures non-compatibles x86, mais il existe un patch pour ça, donc on le récupère et on l'applique :

# wget https://raw.githubusercontent.com/void-linux/void-packages/master/srcpkgs/xf86-video-r128/patches/fix-non-x86.patch
# git apply fix-non-x86.patch

Il ne nous reste plus qu'à compiler et installer le driver :

# ./autogen.sh
# ./configure
# make
# make install

Une fois fait, le driver est installé dans /usr/local/lib/xorg/modules/drivers. Il ne nous reste plus qu'à mettre la configuration /etc/X11/xorg.conf qui va bien :

Section "Files"
    ModulePath  "/usr/lib/xorg/modules"
    ModulePath  "/usr/local/lib/xorg/modules"
    ModulePath  "/usr/local/lib/xorg/modules/drivers"
EndSection

Section "Module"
    Load "i2c"
    Load "ddc"
    Load "dri"
    Load "dri2"
    Load "record"
    Load "extmod"
    Load "freetype"
    Load "type1"
EndSection

Section "InputClass"
    Identifier      "Keyboard Defaults"
    MatchIsKeyboard "yes"
    Option          "XkbModel"      "pc105"
    Option          "XkbLayout"     "fr"
    Option          "XkbVariant"    "mac"
    Option          "XkbOptions"    "lv3:rwin_switch,lv3:lwin_switch,terminate:ctrl_alt_bksp,srvrkeys:none"
EndSection

Section "Monitor"
    Identifier  "Monitor0"
    VendorName  "iMac"
    ModelName   "Monitor Model"
    Option      "DPMS"
    HorizSync   58-62
    VertRefresh 75-117
EndSection

Section "Device"
    Identifier  "Card0"
    Driver      "r128"
    BusID       "PCI:0:16:0"
    Option      "NoInt10"               "true"
    Option      "CCEusecTimeout"        "100000"
    Option      "UseFBDev"              "false"
    Option      "XAANoOffscreenPixmaps" "true"
    Option      "SWcursor"              "false"
    Option      "DMAForXv"              "true"
EndSection

Section "Screen"
    Identifier      "Screen0"
    Device          "Card0"
    Monitor         "Monitor0"
    DefaultDepth    24
    SubSection      "Display"
        Viewport  0 0
        Depth     24
        Modes   "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

Section "Extensions"
    Option      "Composite" "Enable"
EndSection

Section "DRI"
    Mode        0666
EndSection

Et voilà, on lance notre interface graphique… et ça marche !

J'ai installé GNUStep dessus pour tester et ça rend bien malgré quelques soucis graphiques que je tenterai peut-être de corriger.


Vous pouvez commenter en envoyant un mail via ce bouton (votre adresse ne sera pas publié).

Commenter par mail