Oui, c'est une nouvelle année et le moment de mettre ce vieux matériel Mac correctement nouveau utiliser….. en installant Linux. Bien sûr !
Ce guide vidéo vous montre comment configurer une installation sur un Macbook Pro (celui-ci en particulier est un Retina fin 2013, mais devrait fonctionner pour tous les Mac à partir de ). Il montre comment le WiFi ne fonctionne pas prêt à l'emploi et comment y remédier. Préparez-vous à avoir un dongle Ethernet Wi-Fi USB ou une autre forme de connexion afin que vous puissiez installer vos pilotes Wi-Fi !
La base de ce guide est enracinée dans notre guide complet sur l'installation de Linux sur un mac, que vous devriez consulter pour toute information complémentaire, car il couvre tout, du partitionnement de votre disque au déverrouillage du cryptage du disque. Si vous rencontrez des problèmes, commencez par là.
Sans plus tarder, voici le tutoriel vidéo :
Autres choses que vous voudrez régler…
Malheureusement, Apple ne favorise pas un écosystème matériel ou logiciel ouvert. En fait, je dirais qu'ils deviennent de plus en plus propriétaires et verrouillés chaque année, c'est pourquoi je voulais passer de macOS à Linux sur mon Macbook en premier lieu. Le matériel est excellent, mais il est propriétaire, et cela signifie que faire avancer les choses un peu plus ésotériques n'est pas simplement prêt à l'emploi dans la plupart des cas. Heureusement, la plupart des problèmes que j'ai trouvés auparavant (voyants du clavier, suspension/reprise, double moniteur et son) ont été résolus par la communauté au fil des ans, car de nombreuses personnes utilisent désormais des Mac avec Linux. Cependant, beaucoup disent toujours qu'ils ne peuvent pas faire fonctionner leur webcam FaceTime, et ils signalent également des problèmes de performances - le processeur consomme 80 à 100% sur un cœur. Lisez les points suivants pour savoir comment résoudre ces problèmes.
Problèmes de performances :
Si, comme moi, vous remarquez que le mac commence à chauffer et que les ventilateurs du processeur brûlent, jetez un œil à la sortie de l'historique du processeur dans la vue des ressources de l'application System Monitor (ou en utilisant top au terminal), vous constaterez probablement qu'un processus "kworker" ronge le processeur. Il s'agit d'un bogue bien connu, donc pour résoudre ce problème, exécutez les commandes suivantes sur le terminal :
$sudo -s
grep . -r /sys/firmware/acpi/interrupts/
Vous verrez une liste d'environ 70 lignes relatives au micrologiciel qui fonctionne avec ACPI (Advanced Configuration and Power Interface). La plupart d'entre eux font leur travail assez bien, mais vous en trouverez un qui a un numéro comme gpe16 a un grand nombre à côté. Cela ressemblera à ceci :
/sys/firmware/acpi/interrupts/gpe16: 225420 STS enabled unmasked
Lorsque vous pensez l'avoir trouvé, vous pouvez simplement le désactiver, mais d'abord, sauvegardez simplement le fichier, juste au cas où vous feriez le mauvais changement. Notez que j'utilise gpe16 car c'est celui avec lequel j'ai trouvé le problème, le vôtre est probablement différent :
cp /sys/firmware/acpi/interrupts/gpe16 /root/gpe16.backup
echo "disable" > /sys/firmware/acpi/interrupts/gpe16
Si après quelques secondes, les ventilateurs du processeur cessent de ronronner autant et que le moniteur supérieur/système commence à afficher des statistiques d'utilisation normales, alors vous savez que c'est le bon. Si ce n'est pas le bon, répétez simplement "activer", plutôt que désactiver.
Pour rendre le changement permanent, effectuez les tâches suivantes, toujours sur le terminal, en remplaçant la valeur '16' par la valeur que vous avez utilisée :
# crontab -e
--Add the below line to the crontab, so it will be executed every startup/reboot:
@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe16
-- Save/exit. Then, to make it work also after wakeup from suspend:
# touch /etc/pm/sleep.d/30_disable_gpe16
# chmod +x /etc/pm/sleep.d/30_disable_gpe16
# vim /etc/pm/sleep.d/30_disable_gpe16
-- Add this stuff:
#!/bin/bash
case "$1" in
thaw|resume)
echo disable > /sys/firmware/acpi/interrupts/gpe16 2>/dev/null
;;
*)
;;
esac
exit $?
Caméra FaceTime HD :
Vous aurez besoin du module FaceTime HD pour votre noyau. C'est un peu pénible de se lancer, mais ça marche une fois que vous l'avez configuré. La documentation complète est ici : https://github.com/patjak/bcwc_pcie/wiki/Get-Started#get-started-on-ubuntu
Voici les étapes que j'ai suivies pour que tout fonctionne sur Ubuntu. Vous devez exécuter une version assez récente d'Ubuntu (la version 16.04 devrait suffire), donc la version 18.10 ne posera aucun problème. Vous devrez exécuter toutes les commandes suivantes à partir du terminal.$
indique l'exécution de la commande en tant qu'utilisateur normal
$
indique l'exécution de la commande en tant qu'utilisateur normal#
indique en tant que root (utilisez la commande sudo), par exemple :$sudo apt-get install …
- Installez les dépendances :
# apt-get install linux-headers-`
uname -r`
git kmod libssl-dev checkinstall curl xzcat cpio - Extraire et installer le fichier du micrologiciel :
$ git clone https://github.com/patjak/bcwc_pcie.git
$ cd bcwc_pcie/firmware
make
sudo make install
- La sortie doit indiquer "
Copying firmware into '/usr/lib/firmware/facetimehd'
- Vous devez maintenant compiler le module du noyau (pilote). Accédez à ce répertoire :
$ cd ..
- (vous devriez maintenant être dans le dossier bcwc_pcie)
- Créez le module du noyau :
$ make
- Générez dkpg et installez le module du noyau, c'est facile à désinstaller plus tard :
# checkinstall
Exécutez depmod pour que le noyau puisse le trouver et le charger :# depmod
- Charger le module du noyau :
# modprobe facetimehd
- Essayez-le en l'installant comme "du fromage" et en voyant si votre webcam fonctionne.
/dev/video n'existe pas
J'ai eu un problème avec le pilote à ce stade, où /dev/video n'était pas là, qui a été facilement résolu en effectuant les étapes suivantes :
Dans certains scénarios, vous devrez décharger bdc_pci
avant d'insérer le module du noyau, ou /dev/video
(ou /dev/video0
) ne sera pas créé. Faites cela avec modprobe -r bdc_pci
. Si vous avez déjà fait un modprobe facetimehd, faites également un modprobe -r facetimehd, avant de relancer modprobehd. Cela a résolu le problème pour moi.
Faire fonctionner la caméra au démarrage
Si vous souhaitez que le pilote soit activé au démarrage, des étapes supplémentaires peuvent être nécessaires. Sur Ubuntu, les éléments suivants devraient fonctionner :
$sudo echo facetimehd >> /etc/modules
sudo gedit /lib/systemd/system-sleep/99facetimehd
ou si /lib/systemd/system-sleep n'existe pas : sudo gedit /usr/lib/systemd/system-sleep/99facetimehd
Collez ceci dans le fichier vide :
#!/bin/sh
case $1/$2 in
pre/*)
echo "Going to $2..."
modprobe -r facetimehd
;;
post/*)
echo "Waking up from $2..."
modprobe -r bdc_pci
modprobe facetimehd
;;
esac
Et économisez.
Rendez-le exécutable : sudo chmod a+x /lib/systemd/system-sleep/99facetimehd
ou sudo chmod a+x /usr/lib/systemd/system-sleep/99facetimehd
Assurez-vous que lorsque vous mettez à jour votre système, vos pilotes facetimehd sont également mis à jour
Lorsque vous effectuez une mise à jour du système dans Ubuntu, il met également souvent à jour le noyau. Lorsque vous mettez à jour le noyau, les modules doivent être mis à niveau pour fonctionner avec cette version du noyau. Comme vous avez créé un module personnalisé, vous devez également vous assurer que le module est à jour. Voici comment procéder :
Vous devrez vérifier dkms.conf
que le nom du module facetimehd
et le numéro de version 0.1
sont corrects et mettez à jour le dkms.conf
ou ajustez les instructions où -m
et -v
sont utilisés.
- Installez les packages nécessaires :
# apt install debhelper dkms
- Supprimez l'ancien package s'il est installé :
# dpkg -r bcwc-pcie
- Créez un répertoire à partir duquel travailler :
# mkdir /usr/src/facetimehd-0.1
- Passez dans le répertoire du référentiel git :
$ cd bcwc_pcie
- Copier les fichiers sur :
# cp -r * /usr/src/facetimehd-0.1/
- Passez dans ce répertoire :
# cd /usr/src/facetimehd-0.1/
- Supprimez tous les fichiers deb et sauvegardes précédents :
# rm backup-*tgz bcwc-pcie_*deb
- Effacer la compilation précédente :
# make clean
- Enregistrer le nouveau module auprès de DKMS :
# dkms add -m facetimehd -v 0.1
- Créez le module :
# dkms build -m facetimehd -v 0.1
- Créer un paquet source Debian :
# dkms mkdsc -m facetimehd -v 0.1 --source-only
- Créer un paquet binaire Debian :
# dkms mkdeb -m facetimehd -v 0.1 --source-only
- Copier deb localement :
# cp /var/lib/dkms/facetimehd/0.1/deb/facetimehd-dkms_0.1_all.deb /root/
- Débarrassez-vous des fichiers de compilation locaux :
# rm -r /var/lib/dkms/facetimehd/
- Installez le nouveau package deb :
# dpkg -i /root/facetimehd-dkms_0.1_all.deb
Si vous rencontrez des problèmes, veuillez lire ce guide sur la création d'un package DKMS :http://www.xkyle.com/building-linux-packages-for-kernel-drivers/