Dies ist eine aktualisierte Version meiner ersten Antwort, sie sollte für NixOS 15.09 funktionieren. Es enthält geringfügige Änderungen im Vergleich zur ursprünglichen Version, mit der ich NixOS 14.04 mit etwas Hilfe von nix-dev installiert habe Mailingliste.
Erste Einrichtung
-
MacBook 5,1 (2008) mit Mac OS 10.9 und wie folgt partitionierter Festplatte:
a) 200 MB große EFI-Systempartition mit der Bezeichnung „EFI“.
b) Zwei Partitionen, die von Mac OS (10.9) verwendet werden.
c) Zwei leere ext4-Partitionen mit den Bezeichnungen „nixos“ und „home“ und eine Linux-Swap-Partition mit der Bezeichnung „swap“.
Ich habe die folgenden Tools verwendet:
-
GPT fdisk (unter Mac OS),
-
mkfs.ext4
(unter NixOS auf einem bootfähigen USB-Laufwerk), -
mkswap
.
Hier ist meine Partitionstabelle, wie sie von
gdisk
gedruckt wird :Number Start (sector) End (sector) Size Code Name 1 40 409639 200.0 MiB EF00 EFI System Partition 2 409640 104603575 49.7 GiB AF00 Untitled 3 104865720 261418767 74.7 GiB AF00 Untitled 4 261680912 287071535 12.1 GiB 8302 home 5 287071536 307888927 9.9 GiB 8300 nixos 7 307888928 312581774 2.2 GiB 8200 swap
-
-
Kabel-Ethernet-Internetverbindung.
-
Ein USB-Laufwerk, das als FAT mit MBR formatiert und mit
NIXOS_ISO
gekennzeichnet ist , mit einer Kopie (Drag and Drop) des Inhalts des NixOS 15.09 64-Bit-ISO-Image (Live-CD oder Minimal).-
Die Bezeichnung des USB-Laufwerks muss sei
NIXOS_ISO
(Ich habe es mitFLASH
versucht einmal hat es nicht funktioniert). -
Es scheint, dass NixOS 15.09 ISO-Images nicht unter Mac OS gemountet werden können. Wenn das Image nicht gemountet werden kann, reicht es aus, seinen Inhalt zu extrahieren. Ich konnte den Inhalt des ISO-Images mit dem Keka-Dateiarchivierer extrahieren.
-
Installation
-
Booten Sie vom USB-Laufwerk, indem Sie Alt/Option gedrückt halten Taste beim Neustart und durch Auswahl von USB EFI Boot . Melden Sie sich als „root“ (ohne Passwort) an. Stellen Sie sicher, dass die Internetverbindung funktioniert. Für die Installation ist eine Internetverbindung erforderlich.
-
Ausführen
swapon /dev/disk/by-label/swap mount /dev/disk/by-label/nixos /mnt mkdir /mnt/boot mkdir /mnt/home mount /dev/disk/by-label/EFI /mnt/boot mount /dev/disk/by-label/home /mnt/home nixos-generate-config --root /mnt
-
Hinzufügen
nixpkgs.config.allowUnfree = true;
in der generierten /mnt/etc/nixos/configuration.nix Datei.
-
Ausführen
nixos-install
-
Neustart:
reboot
Booten
(Das war meine Erfahrung mit 14.04. )
Nach dem Neustart bootete der Computer in NixOS. Ich startete erneut und hielt dieses Mal die Alt/Option gedrückt Schlüssel. Das Startmenü zeigte zwei identisch aussehende „EFI Boot“-Elemente. Es stellte sich heraus, dass eines davon Mac OS und das andere NixOS ist. (Seltsam – bevor das mit Mac OS nach der Mac OS-Partition benannt wurde. )Okay.
Ich habe aus Neugierde den Inhalt der EFI-Systempartition gemountet und überprüft:
§ tree /Volumes/EFI/
.
├── EFI
│ ├── APPLE
│ │ ├── EXTENSIONS
│ │ │ └── Firmware.scap
│ │ └── FIRMWARE
│ │ └── MB51_007D_03B_LOCKED.scap
│ ├── Boot
│ │ └── BOOTX64.EFI
│ ├── gummiboot
│ │ └── gummibootx64.efi
│ └── nixos
│ ├── 5683z247xmsrh4lyr2hgpxwlb9gg5wyl-linux-3.12.20-bzImage.efi
│ └── mmjxbf6vwp5mwb384yfd6c8vkhd19gx8-initrd-initrd.efi
└── loader
├── entries
│ └── nixos-generation-1.conf
└── loader.conf
Alles da außer /EFI/APPLE und sein Inhalt wurde von NixOSinstallation erstellt.
Mac OS wieder zum Standard machen
(Das war meine Erfahrung mit 14.04. )
Mac OS wieder zum Standard zu machen und den entsprechenden Eintrag in der Option vorzunehmen -key Boot-Menü, das nach der Mac OS-Partition benannt ist, genügte es, zu Systemeinstellungen...> Startvolume zu gehen unter Mac OS und wählen Sie die Partition mit Mac OS aus. Seltsamerweise musste das Admin-Passwort zweimal eingegeben werden, und die Partition wurde immer noch nicht als ausgewählt angezeigt, aber ansonsten funktionierte es.
Andere Anweisungen
-
Um immer Gummiboot zu sehen Menü genügt es,
boot.loader.gummiboot.timeout
einzustellen in configuration.nix . -
Um mein nVidia richtig zu konfigurieren Grafikkarte, landete ich bei der Open-Source nouveau Fahrer:services.xserver.videoDrivers = [ "nouveau" ];
Ich habe keine Beschwerden darüber. Wenn ich den proprietären"nvidia"
verwende stattdessen funktionieren Textkonsolen nicht.Update für NixOS 16.09 . Ich habe das auf meiner Maschine mit NixOS 16.09 beobachtet, die Option
services.xserver.videoDrivers
wird in configuration.nix nicht benötigt dass alles gut funktioniert, und dass es tatsächlich die Grafikleistung merklich verschlechtert, wie aus einigen Tests hervorgeht, die ich mit glmark2 durchgeführt habe OpenGL-Benchmark. Ich habe auch beobachtet, dass die Auswahl von"nvidia"
unterbricht den Grafikmodus, lässt aber Textkonsolen, im Gegensatz zu dem, was ich bei Nix OS 14.04 beobachtet habe. Das sieht für mich alles etwas seltsam aus, aber das ist, was ich beobachtet habe, also habe ich diese Option aus meiner configuration.nix entfernt . -
Zum Laden der applesmc Modul (zum Beispiel für den plötzlichen Bewegungssensor) wurde mir vorgeschlagen, Folgendes zu configuration.nix hinzuzufügen :
boot.kernelModules = [ "applesmc" ];
Bemerkungen und Beobachtungen
Das einzige "Problem" mit NixOS auf meinem MacBook, das ich bisher beobachtet habe, ist, dass mein Laptop unter NixOS normalerweise 5-10 °C heißer wird als unter Mac OS 10.9. Dies könnte ein übliches Problem für Linux auf einem Mac sein.
Links zu alternativen Installationsanweisungen
- Install Linux on a MacBook Air, 17.06.2015 (Installieren von NixOS auf einem MacBook Air in einer Dual-Boot-Konfiguration mit Mac OS).
Einige zusätzliche Tipps:
Wenn Sie Ihre Hintergrundbeleuchtung zum Laufen bringen und verhindern möchten, dass Ihr Laptop spontan wieder hochfährt, während der Deckel geschlossen ist, können Sie Folgendes in Ihrem configuration.nix
verwenden :
# Enable the backlight control on rMBP
# Disable USB-based wakeup
# see: https://wiki.archlinux.org/index.php/MacBookPro11,x
powerManagement.powerUpCommands = ''
if [[ "$(cat /sys/class/dmi/id/product_name)" == "MacBookPro11,3" ]]; then
${pkgs.pciutils}/bin/setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0
if cat /proc/acpi/wakeup | grep XHC1 | grep -q enabled; then
echo XHC1 > /proc/acpi/wakeup
fi
fi
'';
Abhängig von Ihrer MacBook-Version müssen Sie möglicherweise die obigen Befehle optimieren, kopieren Sie sie also nicht blind und fügen Sie sie ein.