Aller au contenu principal
Accueil

Navigation principale

  • News
  • Émulateurs
  • Forum
  • Bestofs
  • Dossiers
Menu du compte de l'utilisateur
  • Se connecter

Fil d'Ariane

  1. Accueil
  2. Le grimoire de l'émulation sur Mac

Mettre Mac OS 9 en réseau à travers Qemu ou SheepShaver

Par sky, 27 février, 2018
Obsolète
Émulateurs
SheepShaver
QEMU
Plateforme
Macintosh

Cet article est dédié aux utilisateurs avancés, ayant quelques notions et une certaine maitrise du réseau et du terminal.

Continuons notre exploration des capacités de Qemu, avec la mise en réseau de notre Mac OS 9.2.2 fraichement installé, peut-être avec un OpenBios maison. Et pour ceux qui préfère SheepShaver pour l'émulation de leur Mac OS classique et qui ont de bonnes notions, nous verrons aussi comment faire car il s'agit basiquement des mêmes mécaniques.

La solution consiste en la mise en place d'un pont depuis votre Mac hôte vers vos Mac émulés. Une fois mis en place, ces derniers auront accès à l'ensemble de votre réseau local, mais aussi à internet si votre configuration est correcte. Si besoin les autres appareils disponibles sur le réseau auront la capacité de voir vos Mac OS 9.

Seul bémol sur lequel je travaille encore, les Mac émulés ne voient pas le Mac hôte et vice versa, certainement à cause d'une histoire de routage réseau. Ce qui peut être très limitant si votre objectif est, comme le mien, de partager "facilement" des données entre votre Mac et vos Mac OS 9.

Petits détails qui refroidiront peut être certains, il faudra :

  • disposer des droits administrateurs
  • utiliser une fois de plus le terminal, mais surtout à chaque fois que vous relancerez votre émulateur
  • installer un kernel tierce
  • laisser tourner les émulateurs en mode administrateur (et leur laisser, potentiellement l'accès à l'ensemble de votre machine)
  • éventuellement modifier les droits sur des fichiers du système d'exploitation

Autrement dit, même si les risques sont mesurés et les explications complètes, il ne s'agit pas d'actions anodines et vous les effectuerez à vos risques et périls. Je ne pourrais être responsable d'un plantage plus ou moins violent de votre Mac.

A noter aussi, qu'il faut avoir un macOS en version Montain Lion (10.8) minumum pour mettre en place cette solution. Pour ma part, cela a parfaitement fonctionné sur Sierra (10.12).

 

Mise en place d'un pont


Pour commencer, il faut installer TunTapOSX, un kernel qui va permettre la connexion du pont à des interfaces réseaux virtuelles.

L'installation se fait automatiquement, il suffit de télécharger le programme et de lancer l'installation du paquet.

C'est ensuite que les choses se corsent !

Ouvrez un terminal et exécutez la commande suivante

ifconfig

pour trouver la connexion réseau utilisée par votre macOS à votre réseau local, c'est à dire celle qui contient votre adresse IP. Si vous êtes cablé, cela sera certainement en0 (attention sur les Mac Pro, avec les deux cartes réseaux internes, il se peut que ce soit en1 qui soit utilisé), si vous êtes en wifi, cela sera plutôt wlan0. Dans tous les cas, il est nécessaire de regarder pour être sûr !

Puis créons le pont

sudo ifconfig bridge0 create

attachons lui notre connexion (remplacez en0 par la connexion que vous avez trouvé dans ifconfig)

sudo ifconfig bridge0 addm en0

et enfin activons cette connexion réseau un peu particulière :

sudo ifconfig bridge0 up

Votre pont est désormais en place et en attente de liaison(s).

Gardez cet onglet/fenêtre du terminal de côté, car nous allons en avoir besoin un peu plus tard.

 

Configuration du réseau sur Qemu


Pour activer le réseau sur Qemu, il faut compléter la ligne de commande qui sert à lancer l'émulateur pour indiquer la prise en charge du réseau.

Ouvrez un nouvel onglet pour lancer Qemu, avec un petit ajout à faire à la commande habituelle :

-netdev tap,id=network01,script=no,downscript=no -device sungem,netdev=network01

Malheureusement pour moi, la prise en charge de la carte réseau "sungem" n'a pas fonctionné, j'ai donc continué en utilisant une carte réseau Realtek 8139, certainement la carte réseau la plus compatible de l'époque, mais qui nécessite l'ajout d'un driver dans Mac OS 9.

Pour cela il faut télécharger le driver sur le site de Realtek qui propose toujours son driver pour Mac OS 9.

Et l'ajouter à Mac OS 9, il s'agit d'une simple extension à activer.

Une fois la carte prise en charge dans Mac OS 9, vous pouvez éteindre le Mac émulé et nous allons le relancer avec le support du réseau. Pour cela il faut ajouter

-netdev tap,id=network01,script=no,downscript=no -device rtl8139,netdev=network01

à notre commande de lancement.

Mais surtout, quelque soit la carte virtuelle utilisée, il faut lancer notre commande avec sudo, afin que Qemu puisse accéder aux connexions virtuelles tap.

Dans mon cas, la commande sera donc (avec l'openbios et le réseau)

sudo qemu-system-ppc -bios openbios-qemu.elf -L pc-bios -boot c -m 512 -M mac99 -prom-env "auto-boot?=true" -prom-env  "boot-args=-v" -prom-env "vga-ndrv?=true" -drive file=MacOS9-fr.img,format=raw,media=disk -drive file=Shared.img,format=raw,media=disk -device usb-mouse -device usb-kbd -netdev tap,id=network01,script=no,downscript=no -device rtl8139,netdev=network01

et va donc demander un mot de passe administrateur pour continuer.

Une fois l'émulateur lancé avec ce petit ajout dédié au réseau, il faut retourner sur notre premier terminal, pour initier la connexion entre le pont et la connexion virtuelle :

sudo ifconfig bridge0 addm tap0

Une fois Mac OS 9 lancé, il faut aller dans le tableau de bord TCP/IP pour effectuer sa configuration réseau. Si vous disposez d'un serveur DHCP actif, comme votre box internet dans sa configuration par défaut, votre Mac émulé devrait obtenir une adresse IP automatiquement, sinon il faudra le configurer manuellement comme dans la capture d'écran ci dessous.

Pour vérifier que cela fonctionne, je lance Internet Explorer 5.0b1, le navigateur fourni avec ma version de Mac OS 9.2.2.

J'ai bien accès à internet. Bien sur cela n'a aucun intérêt, car le navigateur est complètement dépassé et n'affiche plus aucun site proprement. Pire, dès qu'il y a du HTTPS, la connexion est tout simplement impossible car il ne dispose pas des dernières technologies en terme de sécurité et sa base de certificats est plus qu'obsolète.

J'ai tout de même pu lancé MECL, un site que j'ai réalisé il y a très longtemps et n'utilisant pas forcément toutes les dernières technologies.

 

Par défaut, avec la commande indiquée, Qemu va utiliser l'interface tap0 mais il est possible d'utiliser une autre interface, en ajoutant un paramètre supplémentaire, par exemple, pour utiliser l'interface 2

-netdev tap,id=network01,ifname=tap2,script=no,downscript=no -device rtl8139,netdev=network01

Cette modification devient utile lorsque l'on souhaite lancer plusieurs instances de QEMU, il faudra penser à leur attribuer des interfaces différentes, ainsi qu'une adresse MAC différente sur le device

-netdev tap,id=network01,ifname=tap2,script=no,downscript=no -device rtl8139,netdev=network01,mac=52:54:00:12:34:66

A savoir, l'adresse MAC utilisée par défaut est 52:54:00:12:34:56.

Enfin, autre astuce, il est possible de monter automatiquement la connexion, en indiquant un script qui s'en occupera automatiquement.

Dans un fichier au format texte brut nommé tapup.sh, écrivez

#!/bin/sh
ifconfig bridge0 addm $1

et enregistrez le à côté de votre image disque.

De la même manière, on écrit le script tapdown.sh permettant de démonter automatiquement la connexion

#!/bin/sh
ifconfig bridge0 deletem $1

Il ne reste plus qu'à les indiquer dans notre commande

-netdev tap,id=network01,ifname=tap0,script=tapup.sh,downscript=tapdown.sh -device rtl8139,netdev=network01

Ainsi vous n'avez plus besoin de manuellement lancer la connexion.

 

Vérification de l'accès au réseau


Comme moi, vous l'avez certainement oublié, mais Mac OS 9 n'était pas forcément taillé pour le réseau. Il s'agissait d'un OS conçu pour une utilisation locale sur lequel une couche de gestion réseau avait été rajoutée. Du coup, contrairement à macOS ou Mac OS X que nous côtoyons depuis maintenant des années, Mac OS 9 ne disposait pas de tous les outils permettant de vérifier le bon fonctionnement du réseau.

Pour cela, il a fallu fouiller Internet pour retrouver quelques antiquités qui, malgré leur âge, vont tout de même nous servir.

Et c'est sur le site de Sustworks que j'ai pu trouver mon bonheur avec un logiciel nommé IPNetMonitor fonctionnant avec Mac OS 7.6 jusqu'aux dernières versions de Mac OS 9.

Une fois transféré et installé sur Mac OS 9, je lance un "Address Scan" sur l'ensemble de mon réseau local. Avec pour résultat, comme je vous le disais en introduction de voir l'ensemble du réseau local, excepté le macOS hôte qui reste malheureusement silencieux.

Après avoir lancé les "Address scan" sur les deux machines virtuelles, je suis allée sur la Retropie, qui est finalement un Linux avec une interface dédiée pour voir le résultat :

pi@retropie:~/RetroPie/roms $ arp -a
? (192.168.1.254) at 00:07:cb:b1:2a:f8 [ether] on wlan0
? (192.168.1.28) at 52:54:00:12:34:56 [ether] on wlan0
? (192.168.1.3) at 00:25:00:ee:2e:98 [ether] on wlan0
? (192.168.1.29) at fe:fd:00:00:5d:0f [ether] on wlan0

La Pie voit très bien dans l'ordre, le routeur, Mac OS 9.2.2 sur QEMU, mon Mac sous macOS et Mac OS 9.0.4 sur SheepShaver.

 

Configuration du réseau sur SheepShaver

Comme je suis têtu, je voulais vérifier ce comportement très spécial du mode "pont". Je me suis lancé dans la configuration du réseau sur SheepShaver même si cela est moins utile puisque que nous avons accès à un dossier partagé qui permet de transférer plus facilement les données depuis le Mac principal vers Mac OS 9.0.4.

La solution "officielle" est, comme pour Qemu, de lancer SheepShaver en ligne de commande, préfixé avec sudo, afin qu'il puisse accéder à l'interface tap.

Le principal prérequis est que les chemins vers les fichiers du disque principal, du dossier/disque partagé et de la rom soient en absolu dans le fichier de configuration de SheepShaver. Ainsi peut importe le dossier dans lequel vous vous trouvez (dans le terminal) lorsque vous lancez la commande, SheepShaver retrouvera toujours ses petits.

Aussi, toujours dans le fichier de configuration, il faut indiquer la connexion au réseau sur une interface tap. Afin de ne pas faire d'interférence avec la connexion de Qemu, je choisi l'interface tap1

ether tap1

Puis je lance la commande telle qu'énoncée dans la documentation

sudo /Applications/Emulation/SheepShaver/SheepShaver.app/Contents/MacOS/SheepShaver & sleep 10

ou vous prendrez soin de remplacer mon chemin vers l'application SheepShaver vers votre chemin.

Malheureusement pour moi, le résultat n'est pas le bon, avec un résultat plus qu'explicite :

zsh: killed     sudo 

… et rien d'autre. Si cela fonctionne chez vous, inutile de passer par le même hack que moi.

En effet, si SheepShaver n'arrive pas à démarrer en mode admin pour accéder à la connexion, nous allons "déprotéger" la connexion, en changeant ses permissions pour que SheepShaver puisse y accéder.

sudo chmod 0666 /dev/tap1

Ainsi je peux démarrer l'application SheepShaver, tout simplement en double-cliquant sur son icône et ce dernier devrait avoir accès à la connexion virtuelle.

À noter que cette astuce fonctionne aussi avec Qemu, permettant de ne pas le lancer en mode administrateur. Attention tout de même, car je ne suis pas sûr des implications que cette modification pourrait avoir sur le système mais aussi la sécurité de ce dernier.

Une fois SheepShaver lancé, je retourne sur mon premier terminal afin de connecter l'interface réseau virtuelle au pont

sudo ifconfig bridge0 addm tap1

Comme pour Qemu, il faut ensuite configurer Mac OS 9.0.4 dans TCP/IP.

Les résultats sont strictement les mêmes, ici avec l'ancêtre de Firefox, Mozilla 1.1. Il est possible d'accéder à internet sur des sites n'utilisant pas SSL et un affichage à l'ancienne.

 

Il est possible de voir l'intégralité du réseau local, mais impossible de se connecter au mac hôte toujours aussi invisible sur le réseau.

À noter que SheepShaver perd un peu en stabilité une fois le réseau activé. Par exemple, impossible de lancer la dernière version d'Internet Explorer 5.5.

 

Pour le fun, connexion de l'un à l'autre

Puisque mon but initial était de trouver une solution pour partager les données de macOS vers Mac OS 9.2.2 (Qemu), avec une solution aussi facile que sur SheepShaver(Mac OS 9.0.4), sans avoir à redémarrer Qemu à chaque fois que l'on soutaite transférer un fichier, voici une alternative, pas forcément aussi facile, mais franchement fun !

Rien ne nous empéche de lancer Qemu et SheepShaver en même temps ! Attention juste à la mémoire vive attribuée aux deux machines virtuelles, qu'il vous en reste un peu pour votre macOS.

Démarrons donc nos deux émulateurs et dans le terminal, réactivons les deux connexions au pont, puisque je vous le rappelle, il faut les réactiver à chaque lancement de l'émulateur (avec ou sans scripts).

Maintenant que nous avons nos 2 Mac OS 9 lancés, activons le partage de fichier sur 9.0.4 dans le tableau de bord du même nom, si tout se passe bien et que les extensions nécessaires sont bien disponibles, cela devrait se lancer sans soucis.

Retournons sur 9.2.2, et ouvrons l'Explorateur réseau, et, ho magie, il apparait directement.

Je peux ainsi accéder aux documents de Mac OS 9.0.4 depuis Mac OS 9.2.2. À noter que l'inverse est vrai aussi, il est possible d'activer le partage sur 9.2.2 et d'y accéder sur Mac OS 9.0.4. Malheureusement, il n'est pas possible de partager le disque Unix de Mac 9.0.4, dossier partagé entre macOS et Mac OS 9.0.4 (j'espère que vous suivez toujours).

Cependant, je peux toujours copier les fichiers depuis Unix vers le dossier Partagé sur 9.0.4 et y accéder ensuite depuis 9.2.2, sans avoir à le redémarrer à chaque fois. Un demi-succès !

 

Nettoyage


Une fois vos émulateurs arrêtés, vous pouvez si vous le souhaitez supprimer le pont créé via la commande

sudo ifconfig bridge0 destroy

Ce pont est normalement concervé ad-vitam, même lors d'un redémarrage et sa présence ne gène en rien, même s'il n'est pas utilisé.

Attention tout de même si d'autres logiciels se servaient de ce pont, ils peuvent être déconnectés aussi.



 

Mise à jour


Durant l'écriture de l'article, j'ai finalement trouvé comment rendre visible le système hôte et ses invités. Pour cela il suffit d'appliquer une adresse IP à notre pont lui indiquant un nouveau sous-réseau, juste après sa création

sudo ifconfig bridge0 192.168.2.1/24

puis de configurer les Mac OS 9 dans ce nouveau réseau, avec une adresse IP en 192.168.2.xxx. Malheureusement nous avons deux problèmes: Sans configuration du NAT, les Classics perdent l'accès à internet et à tous les autres appareils du réseau local. Second problème, à la tentative de connexion, nous obtenons

 

ce qui, finalement, ne nous avance pas plus.

La suite au prochain épisode…

Dossiers

  • Compiler et lancer DobieStation sur macOS
  • Débuter avec MAME sur macOS - Partie 1 - Introduction
  • Débuter avec MAME sur macOS - Partie 2 - Installation et configuration
  • Débuter avec MAME sur macOS - Partie 3 - La mémoire du jeu vidéo
  • Interview de Brad Oliver
  • L'interpréteur pour jouer nativement
  • Manipuler les images disques sous OSX (iso, dmg, bin, cue, et autres)
  • Neo Geo Arcade Stick Pro
  • Relancer ses applications OSX 32bits avec Virtualbox
  • Sigles et Abréviations
  • Bandai Pippin by Apple
  • BasiliskII et Mac OS 7/8 en 68k
  • Brad Oliver Interview (English)
  • Brancher sa manette avec ou sans fil sur macOS (Bluetooth, USB, PS3/PS4, Xbox/360/One, Wii)
  • Bungie - Le triste coup de maître de Microsoft
  • Compilation d'émulateurs (MAME)
  • Compiler son OpenBios pour Qemu sur macOS
  • DeSmuME, un émulateur de Nintendo DS
  • DosBox - Tutoriel
  • Débuter avec MAME sur macOS - Partie 4 - Aller plus loin avec les lignes de commande
  • Débuter avec MAME sur macOS - Partie 5 - Réglages graphiques
  • Débuter avec MAME sur macOS - Partie 5b - Simuler l'affichage d'un écran cathodique
  • Débuter avec MAME sur macOS - Partie 5b - Simuler l'affichage d'un écran cathodique
  • Débuter avec MAME sur macOS - Partie 6 - Vérification simple des ROMs
  • Débuter avec MAME sur macOS - Partie 7 - Vérification avancée des ROMs
  • Débuter avec MAME sur macOS - Partie 8 - Tri des ROMs par genres et catégories
  • Découvrir l'émulation sur macOS avec OpenEmu
  • Démarrer avec Redream
  • Emulation Playstation sous OSX
  • Emulation antérieure à MacOS X (sur MacOS 7/8/9)
  • GnGeo - Installation et utilisation
  • Graver des jeux Homebrew pour Dreamcast
  • Guest PC, le test
  • Guide pour débutant en émulation sur MacOS Classic (Mac OS 8 et Mac OS 9)
  • Guide pour débutants en émulation sur Mac OS X
  • Initiation à l'émulation d'un Amiga avec FS-UAE
  • Installation d'une RetroPie
  • Installer MacOS 9.2.2 sur QEMU
  • Installer PCSX2
  • Internet sur OS7, OS8 et OS9 via Basilisk et Sheepshaver
  • Jouer à Diablo nativement sur macOS
  • Jouer à Red Alert nativement sur macOS
  • Jouer à Rollercoaster Tycoon 2 nativement sur macOS
  • L'installation d'émulateurs sur iOS
  • La naissance de l'Amiga
  • Les applications Windows sur macOS avec Wine (WineBottler, Wineskin Winery, PlayOnMac et CrossOver)
  • Les multi-machines (Mess, Mednafen, Retroarch, OpenEmu etc.)
  • Les vieux OS de Microsoft sous OSX
  • Mettre Mac OS 9 en réseau à travers Qemu ou SheepShaver
  • Mini vMac
  • OpenMSX - tutoriel
  • PCSX, tutoriel sur son utilisation
  • Parallels Desktop, un émulateur Windows "NextGen"
  • PearPC ou un Mac OS X PPC sous Intel
  • Présentation de Darwine
  • Qu'est-ce que l'émulation ?
  • Quel logiciel pour jouer sur MAME ?
  • Réaliser une compilation de SBI pour Dreamcast
  • SNK ou l'arcade à la maison
  • ScummVM - Tutoriel
  • SheepShaver : Un Mac dans votre Mac
  • SheepShaver : quelques astuces
  • Tous les chemins mènent aux ROMs
  • USB Overdrive : mode d'emploi
  • Utilisation du terminal
  • Utiliser rsync pour mettre à  jour sa collection de ROMs MAME.
  • Virtualbox et nos anciens Mac OS X
  • Yabause - Installation
  • dosbox.conf, le fichier de configuration DOSBox
  • Émulation : Explication de la nomenclature des ROMs
  • Émulation Dreamcast, tutoriel pour lxdream.

contenu connexe

  • Sideloading : Installer Delta sur iOS avec AltServer

    NES, Super Nintendo
  • Débuter avec MAME sur macOS - Partie 8 - Tri des ROMs par genres et catégories

    Arcade
  • Débuter avec MAME sur macOS - Partie 8 - Tri des ROMs par genres et catégories

    Arcade, Amstrad CPC
  • Compiler et lancer DobieStation sur macOS

    PlayStation 2
  • Relancer ses applications OSX 32bits avec Virtualbox

    IBM PC, Windows
Flux RSS

Menu secondaire

  • Accueil
  • Credits
  • Liens
  • Rechercher un émulateur