Ja, es ist ein neues Jahr und eine Zeit, die alte Mac-Hardware richtig zu machen neu verwenden….. indem Sie Linux installieren. Natürlich!
Diese Videoanleitung zeigt Ihnen, wie Sie eine Installation auf einem Macbook Pro einrichten (diese spezielle ist eine Retina von Ende 2013, sollte jedoch für alle Macs ab funktionieren). Es zeigt, wie WLAN nicht sofort funktioniert und wie man das beheben kann. Bereiten Sie sich auf einen USB-WLAN-Ethernet-Dongle oder eine andere Form der Verbindung vor, damit Sie Ihre WLAN-Treiber installieren können!
Die Grundlage dieses Handbuchs ist in unserem umfassenden Handbuch zur Installation von Linux auf einem Mac verwurzelt, das Sie für weitere Informationen lesen sollten, da es alles von der Partitionierung Ihres Laufwerks bis zum Entsperren der Festplattenverschlüsselung abdeckt. Wenn Sie auf Probleme stoßen, beginnen Sie dort.
Ohne weitere Umschweife, hier ist das Video-Howto:
Andere Dinge, die Sie klären möchten ...
Leider bevorzugt Apple kein offenes Hardware- oder Software-Ökosystem. Tatsächlich würde ich argumentieren, dass sie jedes Jahr proprietärer und gesperrter werden, weshalb ich in erster Linie auf meinem Macbook von macOS zu Linux wechseln wollte. Die Hardware ist großartig, aber sie ist proprietär, und das bedeutet, dass es in den meisten Fällen nicht einfach so ist, die etwas esoterischen Dinge zum Laufen zu bringen. Glücklicherweise wurden die meisten Dinge, die ich zuvor als Problem gefunden habe (Tastaturbeleuchtung, Suspend/Resume, zwei Monitore und Ton), im Laufe der Jahre im Grunde von der Community behoben, da es jetzt viele Leute gibt, die Macs mit Linux verwenden. Viele sagen jedoch immer noch, dass sie ihre FaceTime-Webcam nicht zum Laufen bringen können, und sie berichten auch von Leistungsproblemen – die CPU frisst 80-100 % auf einem Kern. Lesen Sie die folgenden Punkte, um diese Probleme zu beheben.
Leistungsprobleme:
Wenn Sie, wie ich, bemerken, dass der Mac heiß wird und die CPU-Lüfter ausbrennen, dann schauen Sie sich die Ausgabe des CPU-Verlaufs in der Ressourcenansicht der Systemmonitor-App an (oder verwenden Sie top am Terminal), werden Sie wahrscheinlich feststellen, dass ein „kworker“-Prozess die CPU auffrisst. Dies ist ein bekannter Fehler, also führen Sie die folgenden Befehle am Terminal aus, um ihn zu beheben:
$sudo -s
grep . -r /sys/firmware/acpi/interrupts/
Sie sehen eine Liste von wahrscheinlich etwa 70 Zeilen, die sich auf die Firmware beziehen, die mit ACPI (Advanced Configuration and Power Interface) funktioniert. Die meisten von ihnen machen ihr Ding ziemlich glücklich, aber Sie werden einen von ihnen finden, der eine Nummer wie gpe16 hat hat eine große Zahl daneben. Es sieht so aus:
/sys/firmware/acpi/interrupts/gpe16: 225420 STS enabled unmasked
Wenn Sie denken, dass Sie es gefunden haben, können Sie es einfach deaktivieren, aber sichern Sie zuerst die Datei, nur für den Fall, dass Sie die falsche Änderung vornehmen. Beachten Sie, dass ich gpe16 verwende, da ich damit das Problem gefunden habe, Ihres ist wahrscheinlich anders:
cp /sys/firmware/acpi/interrupts/gpe16 /root/gpe16.backup
echo "disable" > /sys/firmware/acpi/interrupts/gpe16
Wenn nach ein paar Sekunden die CPU-Lüfter nicht mehr so stark surren und der Top-/Systemmonitor anfängt, normale Nutzungsstatistiken anzuzeigen, dann wissen Sie, dass es der richtige ist. Wenn es nicht das Richtige ist, echoen Sie einfach "aktivieren", anstatt zu deaktivieren.
Um die Änderung dauerhaft zu machen, führen Sie die folgenden Aufgaben erneut am Terminal aus und ändern Sie den Wert „16“ in den von Ihnen verwendeten Wert:
# 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 $?
FaceTime HD-Kamera:
Sie benötigen das FaceTime HD-Modul für Ihren Kernel. Es ist ein bisschen mühsam, loszulegen, aber es geht, sobald Sie es eingerichtet haben. Die vollständige Dokumentation finden Sie hier: https://github.com/patjak/bcwc_pcie/wiki/Get-Started#get-started-on-ubuntu
Hier sind die Schritte, die ich befolgt habe, um alles unter Ubuntu zum Laufen zu bringen. Sie müssen eine relativ aktuelle Version von Ubuntu ausführen (16.04 und höher sollte in Ordnung sein), sodass 18.10 keine Sorgen macht. Sie müssen alle folgenden Befehle über das Terminal ausführen.$
gibt an, dass der Befehl als normaler Benutzer ausgeführt wird
$
zeigt an, dass der Befehl als normaler Benutzer ausgeführt wird#
gibt als root an (verwenden Sie den sudo-Befehl), zB:$sudo apt-get install …
- Installieren Sie die Abhängigkeiten:
# apt-get install linux-headers-`
uname -r`
git kmod libssl-dev checkinstall curl xzcat cpio - Extrahieren und installieren Sie die Firmware-Datei:
$ git clone https://github.com/patjak/bcwc_pcie.git
$ cd bcwc_pcie/firmware
make
sudo make install
- Die Ausgabe sollte lauten:„
Copying firmware into '/usr/lib/firmware/facetimehd'
- Jetzt müssen Sie das Kernelmodul (Treiber) erstellen. Wechseln Sie in dieses Verzeichnis:
$ cd ..
- (Sie sollten sich jetzt im Ordner bcwc_pcie befinden)
- Kernelmodul erstellen:
$ make
- Generieren Sie dkpg und installieren Sie das Kernelmodul, das später einfach deinstalliert werden kann:
# checkinstall
Führen Sie depmod aus, damit der Kernel es finden und laden kann:# depmod
- Kernelmodul laden:
# modprobe facetimehd
- Probieren Sie es aus, indem Sie es wie „Cheese“ installieren und sehen, ob Ihre Webcam funktioniert.
/dev/video existiert nicht
Ich hatte an dieser Stelle ein Problem mit dem Treiber, wo /dev/video nicht vorhanden war, was leicht behoben werden konnte, indem die folgenden Schritte ausgeführt wurden:
In einigen Szenarien müssen Sie bdc_pci
entladen vor dem Einfügen des Kernelmoduls oder /dev/video
(oder /dev/video0
) wird nicht erstellt. Tun Sie dies mit modprobe -r bdc_pci
. Wenn Sie bereits eine modprobe facetimehd durchgeführt haben, führen Sie auch eine modprobe -r facetimehd durch, bevor Sie modprobehd erneut ausführen. Dies hat das Problem für mich behoben.
Die Kamera beim Start zum Laufen bringen
Wenn Sie möchten, dass der Treiber beim Start aktiviert wird, sind möglicherweise zusätzliche Schritte erforderlich. Unter Ubuntu sollte Folgendes funktionieren:
$sudo echo facetimehd >> /etc/modules
sudo gedit /lib/systemd/system-sleep/99facetimehd
oder falls /lib/systemd/system-sleep nicht existiert: sudo gedit /usr/lib/systemd/system-sleep/99facetimehd
Fügen Sie dies in die leere Datei ein:
#!/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
Und speichern.
Machen Sie es ausführbar: sudo chmod a+x /lib/systemd/system-sleep/99facetimehd
oder sudo chmod a+x /usr/lib/systemd/system-sleep/99facetimehd
Stellen Sie sicher, dass bei der Aktualisierung Ihres Systems auch Ihre facetimehd-Treiber aktualisiert werden
Wenn Sie in Ubuntu ein Systemupdate durchführen, wird häufig auch der Kernel aktualisiert. Wenn Sie den Kernel aktualisieren, müssen die Module aktualisiert werden, damit sie mit dieser Kernel-Version funktionieren. Wenn Sie ein benutzerdefiniertes Modul erstellt haben, müssen Sie sicherstellen, dass das Modul auch auf dem neuesten Stand ist. So geht's:
Sie müssen dkms.conf
überprüfen dass der Modulname facetimehd
und Versionsnummer 0.1
korrekt sind und entweder die dkms.conf
aktualisieren oder passen Sie die Anweisungen an, wo -m
und -v
verwendet werden.
- Installieren Sie benötigte Pakete:
# apt install debhelper dkms
- Altes Paket entfernen, falls installiert:
# dpkg -r bcwc-pcie
- Erstellen Sie ein Arbeitsverzeichnis:
# mkdir /usr/src/facetimehd-0.1
- Wechseln Sie in das Git-Repo-Verzeichnis:
$ cd bcwc_pcie
- Dateien kopieren über:
# cp -r * /usr/src/facetimehd-0.1/
- Wechseln Sie in dieses Verzeichnis:
# cd /usr/src/facetimehd-0.1/
- Entfernen Sie alle vorherigen Debs und Backups:
# rm backup-*tgz bcwc-pcie_*deb
- Vorherige Kompilierung löschen:
# make clean
- Registrieren Sie das neue Modul bei DKMS:
# dkms add -m facetimehd -v 0.1
- Modul erstellen:
# dkms build -m facetimehd -v 0.1
- Erstellen Sie ein Debian-Quellpaket:
# dkms mkdsc -m facetimehd -v 0.1 --source-only
- Erstellen Sie ein Debian-Binärpaket:
# dkms mkdeb -m facetimehd -v 0.1 --source-only
- Kopieren Sie deb lokal:
# cp /var/lib/dkms/facetimehd/0.1/deb/facetimehd-dkms_0.1_all.deb /root/
- Entfernen Sie die lokalen Build-Dateien:
# rm -r /var/lib/dkms/facetimehd/
- Installieren Sie das neue deb-Paket:
# dpkg -i /root/facetimehd-dkms_0.1_all.deb
Wenn Sie Probleme haben, lesen Sie bitte diese Anleitung zum Erstellen eines DKMS-Pakets:http://www.xkyle.com/building-linux-packages-for-kernel-drivers/