Si vous avez un Mac mini (ou un Mac Pro) qui fonctionne sans écran, vous l’avez peut-être déjà remarqué : les performances en prise en main à distance sont exécrables dans certains cas. Utiliser un navigateur récent pour aller vérifier une information, par exemple, est une expérience assez désagréable : l’affichage est particulièrement lent, les vidéos sont saccadées, certains logiciels ne se lancent pas. Et le problème ne vient pas, comme on pourrait le penser, de la vitesse de l’interface réseau, étant donné qu’il survient autant à travers une connexion ADSL qu’avec une liaison directe en Ethernet gigabit, mais de l’absence d’accélération vidéo.
La raison est simple : OS X n’active pas Quartz Extreme et Core Image quand il n’y a pas d’écran connecté à la carte graphique. De même, si un écran est connecté, mais n’est pas allumé, les deux technologies ne sont pas activées. Dans le cadre d’un usage serveur, ces technologies peuvent paraître superflues, mais ce n’est pas le cas en pratique. Beaucoup d’applications modernes que l’on peut imaginer lancer depuis une machine headless (sans écran) utilisent les API liées à ces deux technologies et sont donc très ralenties en l’absence d’écran.
Il existe plusieurs solutions pour régler le problème, la plus simple étant tout simplement de brancher un écran, mais elle n’est pas toujours pratique, voire possible. La seconde, que nous allons suivre maintenant, consiste à simuler un écran, qui va permettre d’activer Quartz Extreme et Core Image et aussi — un effet secondaire intéressant — différentes définitions dans la prise en main à distance.
L’adaptateur VGA
Macminicolo, un hébergeur spécialisé dans les Mac mini, proposait il y a un an une solution efficace, mais pas très propre : bidouiller un adaptateur VGA pour qu’il indique à la carte graphique (et donc à OS X) qu’un écran est branché. La manipulation fonctionne sur un adaptateur Mini DVI vers VGA (pour les anciens Mac mini) et Mini DisplayPort vers VGA. Elle devrait aussi fonctionner directement sur la carte sortie VGA d’un Xserve ou sur un adaptateur HDMI vers VGA, mais nous n’avons pas testé ces configurations.
Il suffit d’installer une résistance de 100 ohms environ (Macminicolo recommande une résistance de 85 ohms, nous avons utilisé une résistance de 100 ohms et certains donnent des valeurs différentes, mais proches) dans la prise, entre les pins 1 et 6 du connecteur. Il s’agit des deux connecteurs qui servent à gérer le canal gérant le rouge en VGA (qui est un connecteur analogique) et la résistance permet de simuler la présence d’un écran.
Une fois la résistance en place et l’adaptateur connecté, OS X détecte un écran VGA, sans plus de précisions, et active Quartz Extreme et Core Image si la carte graphique est compatible, ce qui est le cas dans la grande majorité des ordinateurs d’Apple, en dehors de quelques vieux modèles de Xserve PowerPC.
Point intéressant, alors qu’un Mac mini sans écran ne propose que le 1 280 x 1 024 comme définition d’écran en prise en main à distance, d’autres sont proposées avec notre adapteur modifié. Sous Mavericks, la liste commence au 800 x 600 et permet de monter en 2 048 x 1 536 et toutes les définitions ont un rapport largeur/hauteur de 4:3, alors que d’anciens systèmes proposent parfois d’autres valeurs.
La solution de l’adaptateur VGA a surtout l’avantage du prix : on trouve des adaptateurs VGA à partir de quelques euros (en fonction de la connectique et de la marque) et une résistance se trouve facilement pour quelques centimes. Par contre, l’adaptateur nécessite un peu de place derrière la machine et ce n’est pas très propre dans l’absolu.
L’adaptateur Headless
Pour ceux qui veulent une solution un peu plus professionnelle, la société américaine CompuLab propose un produit intéressant : le fit-Headless. Ce petit adaptateur HDMI vendu une quinzaine de dollars (15 € en Europe, chez Amazon en Allemagne et au Royaume-Uni, mais rien en France) simule en effet un écran HDMI, sans devoir modifier un adaptateur VGA. Le fit-Headless se destine aux appareils équipés d’une sortie HDMI directement (comme les Mac mini depuis 2010), mais fonctionne aussi sur d’anciens modèles en utilisant un adaptateur DVI vers HDMI et éventuellement un adaptateur Mini DVI ou Mini DisplayPort vers DVI.
Au niveau des performances, le résultat est exactement le même qu’avec un adaptateur VGA : le système d’exploitation détecte un écran et active l’accélération vidéo. Au niveau du choix des définitions, il y a une différence : avec le fit-Headless, OS X propose des définitions avec un rapport largeur/hauteur de 16:9, ce qui est plus adapté aux écrans modernes utilisés lors de la prise en main à distance. La version actuellement en vente, que nous avons testée, peut atteindre 1 920 x 1 080 px et une version simulant un écran Ultra HD (3 840 x 2 160 px) est prévue.
L’adaptateur fit-Headless a l’avantage d’être bon marché — il faut compter environ 20 € avec la livraison — et compact. Son seul défaut actuel est qu’il est compliqué de le trouver : il n’est disponible que chez Amazon (aux États-Unis, au Canada, au Royaume-Uni et en Allemagne) ou sur le site de la société, qui ne le vend pas à la pièce et ne propose que des packs de 5 adaptateurs, avec des frais de port assez élevés pour l’Europe.
Vérifier que ça fonctionne
Pour être certain que l’accélération est bien activée, la solution la plus simple consiste à aller télécharger les Graphics Tools for Xcode sur le site d’Apple (un simple compte iCloud suffit) et de lancer Quartz Debug pour vérifier si Quartz Extreme est bien activé. Quand c’est le cas, l’icône de l’utilitaire dans le dock est surmontée des lettres QE en vert.
Il est aussi possible d’utiliser Quartz Debug pour forcer manuellement l’activation de Quartz Extreme (Tools -> Enable Quartz Extreme), mais cette solution n’est pas très pratique, étant donné qu’il est nécessaire d’effectuer la manipulation à chaque démarrage de la machine.
En conclusion
Pour les personnes qui utilisent un Mac sans écran et prennent régulièrement la main à distance sur la machine, un adaptateur fit-Headless ou un adaptateur VGA modifié est une bouffée d’air salutaire au niveau des performances. Même si ces solutions restent assez simples à mettre en place, il est finalement assez étonnant de voir qu’Apple ne propose pas une option pour forcer automatiquement l’activation de Quartz Extreme et Core Image sans écran, surtout sur les Mac mini et feu les Xserve qui sont des machines rarement connectées à un écran.
Les deux solutions ont leurs avantages et leurs inconvénients, mais pour un appareil utilisé en permanence sans écran, la solution de CompuLab est plus propre et plus efficace, donc c’est celle que nous recommandons. Dommage toutefois que cet adaptateur HDMI soit si difficile à trouver en France…