Accélérez un Mac distant et sans écran

Antoine Collin |

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.

Un adaptateur VGA modifié

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.

Les définitions sous Mavericks

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…

avatar John Maynard Keynes | 

Je connaissais l'astuce de la résistance mais pas le produit le fit-Headless, merci pour l'info ;-)

avatar JabberWockie | 

Je viens d'apprendre qqch de très intéressant ! Ayant un Mac mini serveur au travail ... Sans écran ... Je pestais à chaque prise à distance !!
Merci !

avatar elneruda | 

C'est étonnant qu'il n'y ai pas d'astuce via terminal en ligne de commande pour forcer la prise en charge ecran. Il y'a sûrement moyen de faire une automation sur la dernière solution sitée

avatar world28 | 

Bravo j'avais constaté cela aussi avec un hackintosh qui sert principalement de serveur. Je pense aussi qu'il doit exister une solution logicielle

avatar senze | 

Yep,

moi aussi sur un thinkpad T43 à l'époque.

Mais point de résistance un simple bout de trombone au même emplacement pour avoir la video sur l'écran du portable au lieu de l'écran externe VGA.

(m' a fallu 10 nuits à l'époque pour comprendre qu'en fait j'installais Os X nickel à chaque fois mais que la fenètre de bienvenue et login basculait sur le VGA, jusqu'à ce que je branche un écran dessus ;) )

Sinon le plug HDMI à l'air bien chouette et pratique, c'est clair qu'un Mac distant sans rien sur les sorties vidéos c'est un enfer. On le voit bien quand l'écran est tout noir et qu'il faut balayer tout l'écran pour avoir un affichage.
Le plus simple en général c'est de relancer le windowserver.

sudo killall -HUP WindowServer

avatar hmmmr | 

J'ai cherché une astuce pendant des jours il y a 1 an pour simuler un écran (et sa résolution) afin d'éviter de devoir laissé ce dernier branché et allumé (grrr) derriere un mini. Cet adaptateur hdmi est plus que bienvenu ! Thanks !

avatar hmmmr | 

C'est quand même étonnant qu'un émulateur d'écran purement logiciel n'ai pas encore vu le jour au passage..

avatar manuinbangkok | 

Très fort ! Merci pour l'info !

avatar raleur | 

Je testerai ce soir en laissant mon scaler vidéo allume!!! Merci

avatar KeepAlive | 

Merci MacG, article fort intéressant !

Je gère plusieurs MacMini avec OS X Server et il m'est arrivé de vouloir lancer Final Cut Pro sur l'un deux par contrôle à distance en mode headless pour préparer un fichier à encoder durant la nuit. Message d'erreur comme quoi la carte graphique ne gère par Quartz Extreme ou qu'il n'y a pas assez de VRAM. Il faut absolument un écran branché.

avatar crash_47 | 

Bravo pour l'astuce qui ça me rendre service sur mon Mac Mini sous la télé quand elle est éteinte et que je prends la main à distance.

avatar chels75 | 

Un truc à la c... quand même, merci macg

avatar moochamerth | 

Je ne sais pas le tester d'ici, mais est-ce que qu'en ligne de commande ceci n'est pas suffisant pour activer Quartz Extreme? (à intégrer au démarrage)

# Ecrire préférences
defaults write /Library/Preferences/com.apple.windowserver GLCompositor -dict tileHeight -int 256 tileWidth -int 256
# Ensuite, killer loginwindow pour prendre effet
kill `ps ax | grep loginwindow | grep -v grep | sed -e 's/[[:blank:]]*//' | sed -e 's/[[:blank:]].*//'`

avatar dgilzz | 

J'utilise fit-headless depuis quelques mois et je dois dire que ça change la vie.
On peut le commander au Royaume-Uni sur ce site : https://store.tinygreenpc.com/fit-headless.html
C'est un peu cher pour un bout de resistence avec un connecteur hdmi, mais à l'usage ça devient vite indispensable avec un serveur sans écran.

avatar aldayo | 

Ca doit venir des versions récentes de osX ces histoires.

Car j'ai un Macbook Pro 15" (2007) sous 10.6 Serveur.
Son écran ayant été pété par la chute d'un iphone, il a été démonté proprement par l'ancien propriétaire.
Maintenant, il est donc devenu un mac mini avec batterie/clavier/trackpad intégré :D (seul inconvéniant : pas de wifi car les antennes étant derrière l'écran)

Je prend donc la main à distance et j'ai accès à toutes les résolutions (4/3, 16/9, 16/10) même celle au delà de la résolution native de son écran d'origine !!

avatar melaure | 

Merci pour ce tuto très intéressant …

Et sinon pour l'activation en ligne de commande, ça marche aussi ?

avatar sonpin | 

Bonjour.
Je voudrais mettre un Mac Mini sous ma télé avec prise de contrôle la distance. Avez-vous un Tutoriel ou des retour. Je veux contrôler mon Mac Mini avec mon iPad ou mon iPhone. Utilisation du Mac mini pour télécharger, regarder des séries et enregistrer si pour possible. Merci de votre retour

avatar droidente | 

J'ai un MacMini qui tourne sous Mavericks qui me sert comme serveur de fichier et comme serveur iTunes.
Il est vrai que, lorsque je dois faire une modif (même mineure) je préfère brancher Clavier Souris et Écran que de le faire en contrôle à distance tellement ça ram même en local. Cet article est génial, je vais le mettre de coté, et essayer de forcer l'activation de QE et voir ce que ça donne ;)

avatar boubloux | 

C'est fou j'avais remarquer la lenteur et j'étais sur que c'était cause par la conectique ! Merci Macg !!!!!!! Jvous serai éternellement reconnaissant

avatar Ponchan | 

Alléluia ! Je me disais bien qu'il y avait un truc. Article aussitôt commandé en Allemagne.
Merci du conseil !

avatar Darkomen78 | 

Alors pour avoir testé, la commande 'defaults write /Library/Preferences/com.apple.windowserver GLCompositor -dict tileHeight -int 256 tileWidth -int 256' ne fonctionne pas (en tous les cas pas sur 10.9.2) et la dernière version de Quartz Debug (4.2) ne propose pas le menu d'activation.

avatar yack | 

La solution logicielle suffit, si est un serveur! Vu qu'on ne le redémarre pas souvent (voire jamais) une fois qu'on a forcé QE, le problème est réglé, non?

avatar modamac | 

Merci MacG pour l'info!

Par contre, comment faire si le port HDMI est déjà utilisé (en l'occurrence pour une TV qui est évidemment éteinte quand je ne suis pas à la maison?)

Merci!

avatar trollol0l | 

T'y colle un switch et/ou un splitter hdmi pour avoir plus d'un port ?

avatar rakim | 

Excellente astuce !!!

Maintenant est ce qu'on peut forcer un mac mini a afficher comme résolution du 720*480 ou du 600*480 ?
Cette question me torture l'esprit.

avatar ekami | 

je comprends mieux pourquoi mon Mac Mini sous la télé refusait le "Partage d'écran" de temps en temps : c'est parce que la télé est éteinte.
Je vais essayer cet adaptateur HDMI (en plus du connecteur MiniDP vers VGA) et voit si cela règle le pb.
Mille mercis pour cette astuce et ces deux matériels.
edit : J'ai trouvé un équivalent sur eBay pour moins de 15 €
http://goo.gl/0n28pY

avatar DVP | 

Le terminator SCSI l'avait dit "I'll be back"
Le revoilà deguisé écran :)

avatar Francis Kuntz | 

Sinon Apple pourrait corriger ses bugs ...

avatar PS | 

Se pourrait-il que Mac OS 10.9.3 corrige le problème avec la gestion des écrans 4K ?...

avatar raleur | 

Super ça fonctionne avec le scaler ça va 5 fois plus vite! Merci pour l info!

avatar Olivier Faure | 

J'ai acheté des fit-Headless pour le MacMini. Ça fonctionne très bien mais en mode VNC uniquement.

J'essaye avec le partage d'écran d'ouvrir plusieurs sessions à distances sur plusieurs utilisateurs différents et les utilisateurs dans des sessions différentes ne reconnaissent pas l'adaptateur HDMI et du coup, ces connexions sont lentes comme avant.

Si quelqu'un a une idée...

Merci

avatar Karamazow | 

Article passionnant, merci Macgé !

avatar ericb2 | 

Article très intéressant. Merci beaucoup d'avoir diffusé cette information ! ça me fait penser à une galère avec un adaptateur mini display port-VGA : j'ai acheté (chez Darty je crois) un adaptateur qui n'est pas de marque Apple. On m'a dit que ça marchait bien, mais en fait, certains vidéo-projecteurs ne fonctionnent simplement pas avec. Est-ce que ce serait aussi lié à une résitance pas vue, ou je ne sais quelle connexion manquante dans ce connecteur ? Parce que je n'ai pas d'autre solution que de repasser à la caisse (faisant cours dans plusieurs amphis avec des vidéo-projecteurs différents, c'est dommage que rien ne fonctionne avec un amphi plein... )

Il s'agit d'une trentaine d'euros quand même :-/

avatar brutalkiller | 

Par contre j'ai essayé la combine de la résistance sur un adaptateur DVI vers VGA sur mon Mac Pro et ça ne marche pas. Est ce uniquement réservé aux adaptateurs HDMI vers VGA ??
Quelqu'un aurait il une solution à ce problème du Mac Pro ?
Merci

avatar Lagdaril | 

Merci mille fois, cela fait plusieurs années que je cherchais une solution, non pas directement à ce problème, mais à celui de la recopie Airplay en utilisant un AppleTV.
En effet, cette fonction nécessite également un écran physique connecté à mon mac-mini serveur (contrairement à Air Parrot qui n'en avait pas besoin)

Cela fonctionne donc avec une résistance (je n'ai trouvé que 10 Ohms dans mes tiroirs) sur un adaptateur hdmi-VGA et j'ai commandé sans aucun problème sur Amazon Allemagne le fit-headless.

avatar Mikakis | 

La manip ne fonctionne pas sur mon vieux mac mini PPC qui a une sortie écran DVI.
Mais j'ai trouvé la solution avec 3 résistances de 82 ohms sur la sortie VGA d'un adaptateur DVI-VGA.
Pin 1-6
Pin 2-7
Pin 3-8
Et là j'ai toutes les résolutions que je veux.

Merci à MacG

avatar brutalkiller | 

Merci vraiment beaucoup Mikakis, testé sur mon mac pro ( sortie DVI-VGA ) et ça fonctionne enfin vraiment bien !!
Vraiment super pour gérer Vienna ensemble pro à partir de mon Mac Mini !!
Merci encore !!

avatar brunitou | 

>sudo -s
>defaults read /Library/Preferences/com.apple.windowserver GLCompositor

si vous voyez les valeurs "-1", c'est désactivé

>defaults write /Library/Preferences/com.apple.windowserver GLCompositor -dict tileHeight -int 256 tileWidth -int 256

si vous re-vérifiez, vous verrez que les valeurs sont désormais à 256.

Pour ma part, je vois une amélioration mais pas foudroyante (résolution plus fine mais vitesse similaire). J'ignore si je rebooter est nécessaire... (je ne peux pas mtn). J'ignore donc si un plug serait plus efficace que cette solution logicielle.

Ah oui, Quartz Debug ne m'aide en rien: même en activant les menus cachés, il n'y a pas l'option "activate Quartz Extreme" dans l'onglet Tools comme vous l'écrivez (version 4.2).

Pour la petite histoire, j'allais me commander le plug aujourd'hui (35€ sur Amazon, port compris), mais je vais déménager et mon Mac Mini va retrouver un bureau et un écran, alors je laisse tomber).

CONNEXION UTILISATEUR