Mac Mini M1 : joies, galères et développement

Par:
francoistonic

ven, 22/01/2021 - 11:48

Utilisateur Mac depuis 30 ans, j’essaie de suivre les évolutions. J’adore mon iMac 5K 27’’, mais honnêtement, il prend de la place et le disque Fusion Drive n’est pas le plus performant. J’avais déjà changé ma configuration de production par un Mac Mini 2018, performant et en rajoutant la maximum de RAM pour être large avec Visual Studio Code, Xcode, Docker, la suite Adobe, etc. Le gros défaut du Mac Mini est dans la gestion de mes écrans 32’’ 4K que je connecte en HDMI et en Thunderbolt. Parfois, il perd le signal vidéo. Mais sinon, honnêtement, le Mac Mini Intel est une bonne machine que je laisse sous Mojave pour éviter tout problème de compatibilité logicielle. 

Bref, avec les processeurs M1, je me dis que je peux remplacer l’iMac. Je tente l’aventure il y a quelques jours. Je décide tout d’abord de passer par la configuration minimale : 8 Go de RAM + 256 Go de stockage interne. À cela je rajoute un SSD externe 1 To. En théorie, c’est cool.

Mais les problèmes se multiplient :

- l’écran me pose énormément de problèmes. J’ai en stock un 27’’ VGA. Donc adapteur VGA - HDMI. Image instable, perte du signal, etc. J’abandonne rapidement l’idée d’utiliser cet écran. Je prends un DELL 27’’ HDMI par défaut. Et là aucun souci. Donc : prenez un écran HDMI par défaut. 

- le clavier me pose aussi problème. J’avais un clavier USB assez ancien. Idem : perte du clavier, obligation de reconnecter x fois le clavier pour pouvoir l’utiliser. Je migre temporairement le clavier Apple de l’iMac sur le M1

Pour le disque externe j’opte pour joli Samsung X5 1 To en Thunderbolt 3. Et là les galères s’accumulent : impossible de formater en APFS sur le M1. Je passe en ligne via le Terminal pour formater le disque au bon format. Tout est OK. Pour installer proprement Big Sur, je passe via la procédure de récupération. Il reconnaît le disque externe, l’installation se passe bien. Le boot est OK. Mais impossible de faire la migration Time Machine vers le Samsung X5 alors que sur le disque interne, l’assistant migration fonctionne, mais il me faut beaucoup de Go… Je fais des resets du mot de passe (via le Terminal), je réinstalle 2-3 fois, j’essaie un peu tout et n’importe quoi. Rien à faire ! Toujours une erreur de déverrouillage du système depuis l’assistant de migration. 

Je décide de renvoyer le Mac Mini M1 et le Samsung X5. Je prends donc un modèle avec 512 Go interne et après quelques recherches, je décide de reprendre la même configuration que j’ai actuellement sur le Mac Mini de production : boîtier externe Thunderbolt 3 + barrette NVME 1 To. Les performances sont excellentes, c’est super stable et honnêtement moins cher qu’un disque équivalent d’un constructeur. 

Bref, je reçois le nouveau modèle M1. Je mets à jour Big Sur en 11.1. Tout est un OK. Je teste une récupération Time Machine (sauvegarde de mon iMac), j’ajuste les éléments à récupérer. Cette sauvegarde je l’avais faite sur un disque externe 1 To depuis l’iMac que je connecte directement sur le Mac Mini M1, en Thunderbolt. La sauvegarde est reconnue immédiatement. La récupération est super rapide. Une fois terminée, tout est OK. Je note juste que Rosetta n’était pas installé quand je lance Dropbox. L’installation se fait en quelques secondes. Tout est OK. Je saisis les mots de passe des différents comptes mail. Le 1er test se passe sans problème. 

Je passe maintenant au disque NVME que je viens de monter. Le disque est immédiatement reconnu. Je le formate en APFS. Pas de souci. Je fais un clonage avec Carbon Copy Cloner. Le clonage se réalise, mais impossible de démarrer sur le disque externe. 

J’opte pour une option radicale :

1 démarrage en mode récupération

2 formatage du NVME pour avoir un truc propre

3 installation clean de Big Sur depuis l’option de récupération

Tout se passe bien. Puis je récupère les données, les comptes, etc. en migration les données depuis le disque interne du Mac Mini M1. Tout se passe bien et c’est super rapide. Un redémarrage, fin de la configuration. Les comptes messages sont OK. Je remets juste le compte Dropbox. 

En conclusion, Apple n’a pas facilité les choses pour exploiter les disques externes et il faut parfois persévérer. Mais les premières impressions sur la M1 sont plutôt bonnes. Maintenant je peux stresser plus la machine… En cas de doute : activer le TRIM à la main pour le disque externe. On gagne en performances et en durée de vie.

Apple M1 et les développeurs

Les processeurs Apple Silicon posent évidement des soucis de compatibilité et de fonctionnement natif. Cependant, la situation n’est pas aussi catastrophique qu’on aurait pu le croire. La compatibilité x86 via Rosetta est bonne, voire, très bonne, avec des performances très correctes. Le support natif arrivera au fur et à mesure. A noter que homebrew, pour installer les paquets, ne sera pas natif avant plusieurs mois… 

La virtualisation reste un des maillons faibles pour le moment. Virtualbox n’a annoncé aucun support natif d’Apple Silicon, du moins à court terme… Par contre, VMware et Parallels travaillent activement dessus. Dès décembre 2020, des patchs QEMU permettent d’installer l’outil sur les machines M1, notamment pour y installer Windows ARM !

Xcode : l’environnement d’Apple pour les développeurs. Les retours montrent des situations différentes selon le matériel M1. Globalement, c’est plutôt pas mal même si de nombreuses API et librairies restent en x86. Rosetta sera installé si ce n’est pas le cas. Les futures versions devraient logiquement améliorer la stabilité

Java : Azul annonçait en novembre 2020 le support d’OpenJDK 8, 11, 13 et 15 sur les machines M1. Il est possible d’utiliser Rosetta en attendant. Voir JEP 391 : openjdk.java.net/jeps/391

Docker : Docker propose pour le moment une préversion technique de Docker. Docker Desktop est en cours de finalisation. Rosetta est indispensable pour certains composants

Linux : Corellium s’est chargé de faire un premier portage sur les processeurs M1. Il s’agit de pouvoir booter sur Ubuntu présent sur un matériel USB. Une des limitations actuelles du M1 est l’impossibilité de faire du multi boot natif. Il faudra attendre encore un peu pour avoir des distributions totalement natives aux Apple Silicon et voir comment ces OS vont gérer les puces T2 (sécurité). Un autre projet a été lancé : Asahi Linux

Visual Studio Code : une version native est en préparation. On peut l’utiliser via les Insiders. La version actuelle fonctionne plutôt bien. 

IntelliJ IDEA : JetBrains a annoncé un premier support de M1 dès fin décembre. D’autres logiciels de l’éditeur suivront dont Pycharm, WebStorm, etc.

Angular : honnêtement nous avons eu de multiples problèmes. Pour éviter trop de contorsions, nous avons forcé le Terminal en mode Rosetta. Nous passons par Bash et non le mode Terminal classique. Installation et mise à jour de Homebrew, installation de node puis de Angular-cli via npm. Nous avons lancé les premiers hello world et le server sans problème. 

Flutter : sauf à utiliser Rosetta, attention, pas de support natif pour le moment. Le support est (très) partiel et toujours en cours de développement. 

.Net Core : pas de support natif avant .Net 6, donc pas avant novembre 2021

Electron : support natif depuis la version 11. 

Android Studio : l’IDE n’est pas encore natif mais les émulations le sont (prévision)

Python : la version 3.9.1 supporte Big Sur. Binaire universel. Attention le support Apple Silicon est précisé comme expérimental pour le moment. Sur l’installation, en passant par le Terminal, on installe la 3.8.x et non la dernière version. On passe alors par l’installeur que l’on récupère sur le site python. Là aucun problème ! Nous avons bien le Python 3.9.1 si on fait un petit python3 —version.

ATTENTION X2 : Homebrew n’est pas natif à Apple Silicon. Soit vous forcez l’utilisation de Terminal en mode Rosetta (via fenêtre informatique), soit vous faites :

arch -x86_64 brew [reste de la commande]

Par exemple : arch -x86_64 brew install python

Si vous n’ajoutez pas la commande arch [architecture matérielle] vous allez voir une erreur d’installation de brew. 

François Tonic