Questa è una versione aggiornata della mia risposta iniziale, dovrebbe funzionare per NixOS 15.09. Contiene modifiche minori rispetto alla versione iniziale che ho utilizzato per installare NixOS 14.04 con l'aiuto di nix-dev mailing list.
Configurazione iniziale
-
MacBook 5.1 (2008) con Mac OS 10.9 e disco rigido partizionato come segue:
a) Partizione di sistema EFI da 200 MB etichettata "EFI".
b) Due partizioni utilizzate da Mac OS (10.9).
c) Due partizioni ext4 vuote etichettate "nixos" e "home" e una partizione Linux Swap etichettata "swap".
Ho utilizzato i seguenti strumenti:
-
fdisk GPT (da sotto Mac OS),
-
mkfs.ext4
(da sotto NixOS su un'unità USB avviabile), -
mkswap
.
Ecco la mia tabella delle partizioni stampata da
gdisk
: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
-
-
Connessione Internet via cavo Ethernet.
-
Un'unità USB formattata come FAT con MBR ed etichettata
NIXOS_ISO
, con una copia (trascinata e rilasciata) del contenuto dell'immagine ISO a 64 bit di NixOS 15.09 (Live CD o Minimal).-
L'etichetta dell'unità USB deve essere
NIXOS_ISO
(ho provato conFLASH
una volta, non ha funzionato). -
Sembra che le immagini ISO di NixOS 15.09 non possano essere montate su Mac OS. Se l'immagine non può essere montata, è sufficiente estrarne il contenuto. Potrei estrarre il contenuto dell'immagine ISO con l'archiviatore di file Keka.
-
Installazione
-
Avvia dall'unità USB tenendo premuto Alt/Option chiave al riavvio e selezionando USB EFI Boot . Accedi come "root" (senza password). Assicurati che la connessione a Internet funzioni. Per l'installazione è necessaria la connessione a Internet.
-
Esegui
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
-
Aggiungi
nixpkgs.config.allowUnfree = true;
nel /mnt/etc/nixos/configuration.nix generato file.
-
Esegui
nixos-install
-
Riavvia:
reboot
Avvio
(Questa è stata la mia esperienza con 14.04. )
Dopo il riavvio, il computer si è avviato in NixOS. Ho riavviato di nuovo, tenendo questa volta Alt/Option chiave. Il menu di avvio mostrava due elementi "EFI Boot" dall'aspetto identico. Si è scoperto che uno di essi è Mac OS e l'altro è NixOS. (Strano - prima che quello con Mac OS prendesse il nome dalla partizione Mac OS. )Ok.
Ho montato e ispezionato il contenuto della partizione di sistema EFI per curiosità:
§ 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
Tutto lì tranne /EFI/APPLE e il suo contenuto è stato creato da NixOSinstallation.
Rendere Mac OS predefinito di nuovo
(Questa è stata la mia esperienza con 14.04. )
Per rendere nuovamente Mac OS predefinito e per rendere l'elemento corrispondente in Opzione -key menu di avvio che prende il nome dalla partizione di Mac OS, bastava andare su Preferenze di Sistema...> Disco di avvio sotto Mac OS e seleziona la partizione con Mac OS. Stranamente, richiedeva l'inserimento della password dell'amministratore due volte e la partizione non veniva ancora mostrata come selezionata, ma per il resto funzionava.
Altre istruzioni
-
Per vedere sempre gummiboot menu, è sufficiente impostare
boot.loader.gummiboot.timeout
in configuration.nix . -
Per configurare correttamente il mio nVidia scheda grafica, ho finito per utilizzare nouveau open source autista:services.xserver.videoDrivers = [ "nouveau" ];
Non ho lamentele al riguardo. Se uso il proprietario"nvidia"
invece, le console testuali non funzionano.Aggiornamento per NixOS 16.09 . Ho notato che sulla mia macchina con NixOS 16.09, l'opzione
services.xserver.videoDrivers
non è necessario in configuration.nix affinché tutto funzioni bene, e che in effetti degrada notevolmente le prestazioni grafiche secondo alcuni test che ho fatto con glmark2 Punto di riferimento OpenGL. Ho anche osservato che selezionando"nvidia"
interrompe la modalità grafica ma lascia le console di testo, contrariamente a quanto osservato con Nix OS 14.04. Tutto questo mi sembra un po' strano, ma questo è ciò che ho osservato, quindi ho rimosso questa opzione dal mio configuration.nix . -
Per caricare il file applesmc modulo (per il sensore di movimento improvviso, ad esempio) mi è stato suggerito di aggiungere quanto segue a configuration.nix :
boot.kernelModules = [ "applesmc" ];
Osservazioni e osservazioni
L'unico "problema" con NixOS sul mio MacBook che ho osservato finora è che eseguendo NixOS il mio laptop di solito diventa più caldo di 5-10 °C rispetto a Mac OS 10.9. Questo potrebbe essere un normale problema per Linux su un Mac.
Collegamenti a istruzioni di installazione alternative
- Installa Linux su un MacBook Air, 17/06/2015 (Installazione di NixOS su un MacBook Air in configurazione dual-boot con Mac OS).
Alcuni suggerimenti aggiuntivi:
Se vuoi far funzionare la tua retroilluminazione e impedire che il tuo laptop si riprenda spontaneamente mentre il coperchio è chiuso, puoi usare qualcosa di simile al seguente nel tuo configuration.nix
:
# 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
'';
A seconda della versione del tuo MacBook, potresti dover modificare i comandi precedenti, quindi per favore non copiare e incollare alla cieca.