Solution définitive à la panne constante du partage wifi dans MacosX.
J'ai trouvé un système qui finalement travaux et lorsque, plus rarement, le partage wifi s'interrompt, il parvient à le récupérer automatiquement en une minute.
La solution est un ~/Library/LaunchAgents/com.me.wifisharingup.plist
daemon avec le contenu suivant :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.juanfal.wifisharingup</string>
<key>ProgramArguments</key>
<array>
<string>/Users/mi/bin/wifisharingup.sh</string>
</array>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>60</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/Users/me/Library/Logs/wifisharingup.err</string>
<key>StandardOutPath</key>
<string>/Users/me/Library/Logs/wifisharingup.out</string>
</dict>
</plist>
Vous pouvez voir que chaque minute, il exécute le simple script qui suit. Faites attention à ce que le plist précédent soit la propriété de la Racine et lancez-le avec :
sudo chown root com.me.wifisharingup.plist
sudo launchctl load /Users/me/Library/LaunchAgents/com.me.wifisharingup.plist
Le script qu'il lance chaque minute (n'oubliez pas de le rendre exécutable) est :
#!/bin/sh
if [[ ! `ipconfig getifaddr en1` ]]; then
/usr/sbin/networksetup -setairportpower en1 off
/usr/sbin/networksetup -setairportpower en1 on
echo `date` >> "/Users/me/Library/Logs/wifisharingup.err"
else
touch "/Users/me/Library/Logs/wifisharingup.out"
fi
Je pense que le simple appel périodique (à chaque minute) à ipconfig getifaddr en1
rafraîchit quelque chose dans ce qui est le démon de partage wifi. Quoi qu'il en soit, dès que le partage wifi échoue, il perd l'adresse IP qu'il s'était assignée, et ensuite.., ipconfig getifaddr en1
échoue, alors mon script réinitialise totalement le wifi, le faisant reconstruire son état précédent et récupérant le partage du wifi.
Jusqu'à présent, il a fonctionné pendant plusieurs jours à l'intérieur d'un MacMini sans clavier, souris ou écran, mais seulement branché sur l'Ethernet et donnant à mes gadgets wifi un accès au monde.