Réaliser un Hackintosh Virtuel sous RHEL8.x

Posted on

Dans un premier temps, verifier que votre Red Hat a les l ensemble des packages pour compiler avec « make ». Il faut aussi que KVM soit actif. On commence par compiler l Application QEMU5.1 suivant la puissance du PC ça peut prendre un certain temps (2heures). Il faut savoir que le QEMU fournit avec la commande YUM est une version assez ancienne ne permettant pas de gérer une VM « Hackintosh ». C’est pourquoi j ai lancé cette compilation….

wget https://download.qemu.org/qemu-5.1.0.tar.xz 
tar xvJf qemu-5.1.0.tar.xz 
cd qemu-5.1.0 
./configure 
make
sudo make install

Pour préparer le terrain du couple KVM/QEMU pour pouvoir lancer une « VM » tournant sur macOS

sudo dnf -y install git  libvirt virt-install qemu-kvm python3 python3-pip virt-manager

Pour lancer les process de KVM et l activer des le boot de la machine

sudo systemctl start libvirtd 
sudo systemctl enable libvirtd 
sudo dnf -y install virt-manager

Recuperation du Package pour avoir le kit de montage d une VM macOS

git clone https://github.com/foxlet/macOS-Simple-KVM.git

Recuperation de l image de boot de macOS pour faire le setup on peut choisir la version de macOS   avec les options suivantes « –high-sierra », « –mojave » ou  « –catalina »

./jumpstart.sh --catalina

Génération du disque virtuel pour KVM/QEMU qui contiendra macOS plu-tard

qemu-img create -f qcow2 macOS.qcow2 50G

On va modifier le fichier « basic.sh » contenant la config de la VM « Hackintosh », on va ajouter ces 2 lignes qui correspondent au disque dur virtuel qu on vient de générer. On peut aussi changer la taille de la RAM qui est a « 2G » soit 2Go minimum allouée a la VM « Hackintosh », pour la partie graphique on peut mettre « std » au lieu de « QXL » si ça ne fonctionne pas…Pour ceux qui ont des grosses cartes GPU on peut aussi configurer avec d autres paramètres.

Pour eviter d avoir un souci d offset avec la Souris et ce retrouvé avec 2 souris dur l ecran il suffit juste de remplacer le « usb-mouse » a cote du clavier par « -device usb-tablet »

-drive id=SystemDisk,if=none,file=macOS.qcow2 \ 
-device ide-hd,bus=sata.4,drive=SystemDisk \
!/bin/bash
OSK="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VMDIR=$PWD
OVMF=$VMDIR/firmware
#export QEMU_AUDIO_DRV=pa
#QEMU_AUDIO_DRV=pa
qemu-system-x86_64 \
-enable-kvm \
-m 8G \
-machine q35,accel=kvm \
-smp 4,cores=2 \
-cpu Penryn,vendor=GenuineIntel,kvm=on,+sse3,+sse4.2,+aes,+xsave,+avx,+xsav$
-device isa-applesmc,osk="$OSK" \
-smbios type=2 \
-drive if=pflash,format=raw,readonly,file="$OVMF/OVMF_CODE.fd" \
-drive if=pflash,format=raw,file="$OVMF/OVMF_VARS-1024x768.fd" \
-vga std \
-device ich9-intel-hda -device hda-output \
-usb -device usb-kbd -device usb-tablet \
-netdev user,id=net0 \
-device e1000-82545em,netdev=net0,id=net0,mac=52:54:00:c9:18:27\
-device ich9-ahci,id=sata \
-drive id=ESP,if=none,format=qcow2,file=ESP.qcow2 \
-device ide-hd,bus=sata.2,drive=ESP \
-drive id=InstallMedia,format=raw,if=none,file=BaseSystem.img \
-device ide-hd,bus=sata.3,drive=InstallMedia \
-drive id=SystemDisk,if=none,file=macOS.qcow2 \
-device ide-hd,bus=sata.4,drive=SystemDisk \

Ensuite on lance le script

./basic.sh

Ce script permet de preparer la VM en demarrant un serveur VNC, on peut utiliser le client Tight VNC

localhost:5900

Le processus d installation de la VM débute vraiment. On commence par initialiser le volume de disque dur pour installer macOS avec le format APFS via l utilitaire de disque dur. Ensuite on choisit l option reinstaller macOS Catalina. Le processus d installation de Catalina se lance…

Le seul bug actuellement que je n arrive pas a corrigé c’ est le Clavier dans la « VM Hackintosh ». Surement une limitation de QEMU/KVM 😀 qui ne gère pas le clavier Macintosh en natif. On excuse QEMU qui déjà fait beaucoup de choses il permet d emuler une panoplie de processeurs du celebre m68k de Motorola, PowerPC, ARM, AVR, Sparc 32bit /64bit, Intel, MIPS…

Pour importer la « VM Macintosh » dans « Virt-Manager » on peut exécuter le script « ./make.sh –add« , pour exécuter cette commande il faut lancer la syntaxe suivante

sudo ./make.sh --add

Pour l instant je n ai point reussi a ne pas avoir de message d’erreurs pour l instant j etudie une autre voie pour pouvoir utitliser la fonction Bridge et non pas la fonction NAT integrée qui ne permet pas dacces au reseau directement par la carte reseau physique …