L’Apple TV original est un appareil un peu particulier : c’est un Mac Intel qui fonctionne sous Mac OS X Tiger avec une interface adaptée. Dès les débuts du boîtier, au milieu des années 2000, des gens ont tenté de le hacker. On peut installer facilement Mac OS X Tiger, j’ai vu passer Mac OS X Leopard ou Snow Leopard au fil des années, mais DistrosProjects a choisi un système particulier : Windows XP.
L’Apple TV, c’est donc un Mac Intel avec un Pentium M à 1 GHz (un vieux processeur), 256 Mo de RAM, une carte graphique GeForce 7300 Go (avec 64 Mo de mémoire) et un disque dur PATA. Le problème, bien expliqué dans la page dédiée aux explications sur le portage, c’est que l’Apple TV n’a qu’un EFI Apple. Windows XP repose encore en partie sur le BIOS des PC pour certaines choses, comme l’affichage, et c’est absent ici. Avec Boot Camp, Apple avait ajouté le nécessaire dans l’EFI des Mac en 2006, mais pas sur l’Apple TV.
Pour le démarrage, je vais tenter de simplifier. L’EFI de l’Apple TV cherche un fichier spécifique signé par Apple (boot.efi
) et il est possible de le modifier et de mettre un loader, un programme qui va charger un autre système. Il a adapté le FreeLoader de ReactOS (un système open source pensé pour singer Windows, en gros) et trouvé un moyen de faire reconnaître le disque dur PATA. Le contrôleur de disque de l’Apple TV démarre dans un mode particulier (rare) mais on peut le passer manuellement dans le mode de compatibilité plus classique.
Pour la partie vidéo, c’est plus compliqué. Les pilotes Nvidia ne fonctionnent pas et les modes de compatibilité VGA non plus (ce qui m’a bloqué avec Doom, plus bas). Mais si j’ai bien compris, il utilise un pilote spécifique qui fait appel à l’EFI et remplace le pilote de base que Windows charge quand il ne trouve pas de pilote dédié. On peut installer des pilotes précis tout de même, je l’explique à la fin.
Installer Windows
Très franchement, je ne me suis pas cassé la tête. Vous pouvez soit installer Windows XP en suivant les instructions (et c’est intéressant pour comprendre comment ça fonctionne), soit faire comme moi et prendre l’image disque qui est disponible en ligne. Elle fait une dizaine de gigaoctets une fois décompressée et il suffit de la restaurer sur un disque dur compatible. Pour le test, j’ai pris un SSD M.2 SATA de 32 Go que j’avais en stock avec un adaptateur M.2 SATA vers PATA et un adaptateur USB vers PATA. Ça prend un peu de temps en USB 2.0 pour restaurer, mais ça a a ensuite démarré correctement.
Ce qui marche et ce qui ne marche pas
Question matériel, ça reste assez léger mais c’est suffisant pour Windows XP. On a donc un disque dur (ici un SSD) PATA, un CPU Pentium M à 1 GHz et 256 Mo de RAM. dosdude1 a une version avec 512 Mo de RAM, mais il a soudé de nouvelles puces.
Dans ce qui marche, on a l’accès au disque dur, le Wi-Fi (en installant les pilotes Boot Camp), l’Ethernet (idem) et globalement l’ordinateur. Avant de parler de la vidéo, parlons de ce qui ne marche pas : quelques trucs internes en SM Bus, le récepteur pour la télécommande infrarouge, l’audio en HDMI et la possibilité de redémarrer ou éteindre l’ordinateur. C’est un problème qui existait déjà avec Mac OS X : on ne peut pas éteindre sans tirer la prise. Pour l’audio, la sortie audio numérique (optique) fonctionne a priori et les sorties RCA aussi, mais avec un volume très faible.
Parlons USB, parce que l’Apple TV a un port USB. Vous aurez évidemment besoin d’un hub, mais dans mon cas, je n’ai pas eu de soucis particuliers. J’ai branché un clavier avec un trackpad intégré qui utilise un dongle USB et une clé USB sur un hub non alimenté sans problèmes. Pour des périphériques filaires (souris, claviers), je vous conseille quand même de trouver un hub USB alimenté, certains périphériques consomment un peu trop.
Le problème principal vient de la vidéo. Lors de mes premiers essais en HDMI, je me suis retrouvé avec une image en 720p (la limite de l’appareil) et des couleurs faussées. Pour MacG, j’ai choisi une solution basique : un moniteur en 1 280 x 1 024 avec un adaptateur HDMI vers DVI. Mais en passant sur une seconde carte d’acquisition, j’ai réussi à avoir une image correcte en HDMI. J’ai forcé le mode 480p au démarrage sur la carte d’acquisition, puis je suis repassé en 720p ensuite. C’est probablement lié à la manière d’encoder les couleurs dans les moniteurs. Avec la sortie de ma carte d’acquisition, ça marche ensuite correctement sur un moniteur.
Même si c’est un peu anecdotique, la sortie vidéo composante fonctionne, mais uniquement en 480p (720 x 480) sur mon moniteur et ma carte d’acquisition, ce qui est moyennement pratique avec Windows XP.
Lors de mes premiers essais, même si la partie vidéo fonctionnait techniquement, il n’y avait aucune accélération vidéo. Pas d’OpenGL, pas de DirectX, rien. De même, les modes DOS ou VGA ne fonctionnaient pas et il était impossible de modifier la définition. Un peu après avoir écrit le sujet, une solution a été trouvée, elle est à la fin.
J’en ai profité pour lancer CPU-Z pour voir un peu ce que le programme indique. On a donc bien un Pentium M. C’est un coeur Dothan en 90 nm et il a visiblement 2 Mo de cache, ce qui est inhabituel étant donné qu’il est identifié comme un A100. On a de la DDR2 pour la mémoire.
Et Doom ?
Ca peut sembler idiot, mais j’ai essayé de lancer Doom. Et ça n’a pas été simple. En fait, c’est lié à la manière d’afficher : Doom et pas mal de ses portages reposent sur des modes vidéo standardisés (absents ici) ou OpenGL (absent ici). J’en ai donc testé une dizaine sans trop de résultats (même si Doom95 affiche un truc) avant d’en trouver un qui fonctionne. C’est ZDoom 2.81.
Dans tous les cas, même si c’est inutile et franchement limité sur la partie vidéo, c’est assez incroyable de voir ce que certains arrivent à faire avec un peu de temps. Près de deux ans ici.
L’accélération vidéo
C’est expliqué là, il faut aller télécharger de vieux pilotes Nvidia. Sur cette page, il faut prendre les pilotes vidéo pour GeForce 7300 Go du 29/09/2006 pour Windows XP. Il faut décompresser le .cab
, soit directement sous Windows XP, soit avec votre ordinateur principal (je l’ai fait sur le Mac). Pour les installer, il faut aller dans le Device Manager de Windows XP, choisir la carte graphique, aller dans l’onglet Driver et choisir Update Driver. Là, il suffit de sélectionner le dossier décompressé. Ensuite, il faut redémarrer, même si le boîtier ne le permet pas (en gros, laisser faire, puis éteindre en tirant la prise).
Une fois que c’est fait, il faut activer l’accélération vidéo. Dans Display Properties -> Settings -> Advanced -> Troubleshoot, il faut mettre l’accélération vidéo sur Full.
Enfin, il faut désactiver le Turbo Cache Nvidia, qui prend une partie de la RAM. Il faut lancer regedit
, aller dans HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Video/Votre_Pilote
. Pour le trouver, c’est celui qui a de nombreuses données dans /000/
. Il faut créer une nouvelle entrée (clic droit -> New -> Binary Value) avec comme nom RmDisableRenderToSysmem
et comme valeur 01 00 00 00
. La carte vidéo à 64 Mo de mémoire dédiée et peut employer une partie de la RAM par défaut, mais comme l’Apple TV n’a que 256 Mo par défaut, il vaut mieux le désactiver et se contenter de la RAM dédiée.
Si l’accélération vidéo est plus agréable à l’usage, ça ne règle pas mon problème avec Doom. La version d’origine ne se lance pas à case de l’absence des modes VGA, et GZDoom (OpenGL) demande une version plus récente que celle de la carte vidéo et ses pilotes. Par contre, gros avantage, j’ai une image propre en 1 920 x 1 080. Et ça rend le boîtier plutôt efficace avec Windows XP, même si un peu limité en RAM.