Pour un projet, j’avais besoin d’un comportement particulier : un Mac qui se met en veille mais qui se réactive facilement pour du partage de fichiers. Dans mes premiers essais, la machine était reliée en direct à mon Mac (sans switch, donc) et ça ne fonctionnait pas : le Mac, quand il passait en veille, disparaissait de la barre latérale du Finder.
La solution la plus classique pour réveiller une machine en veille, le paquet « magique » du Wake On LAN, fonctionnait mais ce n’est pas très pratique : il faut lancer un logiciel dédié (macOS ne propose pas ça par défaut) et ensuite se rendre dans le Finder et attendre que la machine se réveille et décide de s’annoncer. Après quelques recherches – merci Twitter d’ailleurs -, j’ai trouvé une solution… qui nécessite des produits Apple.
Bonjour Sleep Proxy
Le comportement que j’attendais, c’est-à-dire que la machine ne disparaisse pas de la barre latérale, nécessite un petit service, le Bonjour Sleep Proxy. En simplifiant – si vous aimez les détails techniques, il y en a là -, les machines qui annoncent via Bonjour (les partages de fichiers, la prise en main à distance, le partage de données via iTunes, etc.) s’enregistrent sur un serveur qui va continuer à annoncer même si la machine est en veille. Le serveur en question, malheureusement, doit être un périphérique Apple : Time Capsule, borne AirPort (a priori 11n au minimum) ou Apple TV (depuis la seconde génération). Ça semble aussi fonctionner avec un Mac qui partage sa connexion à Internet. Mais sans matériel Apple, point de salut : je n’ai pas trouvé d’implémentation libre du serveur (j’ai peut-être mal cherché) mais uniquement des implémentations client. Il existe une solution pour un NAS (open source) qui permet d’utiliser le serveur et Apple propose un client Windows (j’en reparlerais) mais pas de serveur. Enfin, le système permet aussi de réveiller un Mac connecté en Wi-Fi (ce que, généralement, le Wake On LAN ne permet pas).
Dans mon cas, je n’ai pas eu le choix : j’ai mis la machine sur le même réseau que les autres appareils et ça fonctionne. Même quand le Mac est en veille, il apparaît dans la barre latérale du Finder et il suffit d’attendre (quelques secondes) qu’il se réveille pour y accéder. Une solution pratique mais – comme souvent avec Apple – franchement un peu trop fermée. Et va m’obliger à acheter un switch spécifique pour mon projet.
Intéressante techno que je ne connaissais pas. Il faut que je me replonge sur les possibilités de Bonjour.
De ce que je comprends de la technologie, ce n’est pas qu’Apple est fermé c’est que c’est le seul a avoir implémenté cette fonctionnalité (ou qu’on a pas bien cherché).
Bonjour / Zeroconf est ouvert et il est possible d’implémenter le même genre de chose sur d’autres plateformes.
Les sources de Bonjour sont publiées par Apple, avec ce Bonjour Sleep Proxy https://opensource.apple.com/source/mDNSResponder/ (vu la référence sur Wikipedia anglais https://en.wikipedia.org/wiki/Bonjour_Sleep_Proxy)
Sinon, as-tu essayé d’utiliser le client mac comme serveur, ce qui te permettrait de n’avoir que deux machines et pas 3?
Peut être n’ai-je pas compris le besoin dans sa globalité, mais j’aurais tenté un appel via editeur de scrips.
Avec un appel à l’applicaion « FINDER’ de la machine du réseau pour la réveiller ? je vois dans le dictionnaire la commande sleep, mais peut être l’appel à distance oblige le reveil de la machine si en veille.
A défaut, le dictionnaire de l’application « REMOTE DESKTOP » possède une commande explicite
wake up task - Wake up the target computers.
Bonjour Pierre,
J’utilise mdns-repeater sur ddwrt pour faire du proxying entre subnet. je ne sais pas comment il gère le sleep mais c’est opensource.
http://irq5.io/2011/01/02/mdns-repeater-mdns-across-subnets/
nicolas