Ceci est une version mise à jour de ma réponse initiale, cela devrait fonctionner pour NixOS 15.09. Il contient des modifications mineures par rapport à la version initiale que j'ai utilisée pour installer NixOS 14.04 avec l'aide de nix-dev liste de diffusion.
Configuration initiale
-
MacBook 5,1 (2008) avec Mac OS 10.9 et disque dur partitionné comme suit :
a) Partition système EFI de 200 Mo étiquetée "EFI".
b) Deux partitions utilisées par Mac OS (10.9).
c) Deux partitions ext4 vides étiquetées "nixos" et "home", et une partition Linux Swap étiquetée "swap".
J'ai utilisé les outils suivants :
-
fdisk GPT (sous Mac OS),
-
mkfs.ext4
(depuis NixOS sur une clé USB bootable), -
mkswap
.
Voici ma table de partition telle qu'imprimée par
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
-
-
Connexion Internet Ethernet par câble.
-
Une clé USB formatée en FAT avec MBR et étiquetée
NIXOS_ISO
, avec une copie (glisser-déposer) du contenu de l'image ISO NixOS 15.09 64 bits (Live CD ou Minimal).-
L'étiquette de la clé USB doit avoir
NIXOS_ISO
(j'ai essayé avecFLASH
une fois, ça n'a pas marché). -
Il semble que les images ISO NixOS 15.09 ne puissent pas être montées sous Mac OS. Si l'image ne peut pas être montée, il suffit d'extraire son contenu. J'ai pu extraire le contenu de l'image ISO avec l'archiveur de fichiers Keka.
-
Installation
-
Démarrez à partir de la clé USB en maintenant enfoncée la touche Alt/Option lors du redémarrage et en sélectionnant USB EFI Boot . Connectez-vous en tant que "root" (sans mot de passe). Assurez-vous que la connexion Internet fonctionne. Une connexion Internet est nécessaire pour l'installation.
-
Exécuter
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
-
Ajouter
nixpkgs.config.allowUnfree = true;
dans le /mnt/etc/nixos/configuration.nix généré fichier.
-
Exécuter
nixos-install
-
Redémarrer :
reboot
Démarrage
(C'était mon expérience avec 14.04. )
Après le redémarrage, l'ordinateur a démarré sous NixOS. J'ai redémarré à nouveau, en maintenant cette fois la touche Alt/Option clé. Le menu de démarrage affichait deux éléments "EFI Boot" d'apparence identique. Il s'est avéré que l'un d'eux est Mac OS et l'autre est NixOS. (Étrange - avant celui avec Mac OS a été nommé d'après la partition Mac OS. )D'accord.
J'ai monté et inspecté le contenu de la partition système EFI par 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
Tout y est sauf /EFI/APPLE et son contenu a été créé par NixOSinstallation.
Rétablir Mac OS par défaut
(C'était mon expérience avec 14.04. )
Pour rétablir Mac OS par défaut et créer l'élément correspondant dans l'Option -menu de démarrage clé nommé d'après la partition Mac OS, il suffisait d'aller dans Préférences système...> Disque de démarrage sous Mac OS et sélectionnez la partition avec Mac OS. Étrangement, il fallait entrer le mot de passe administrateur deux fois, et la partition n'était toujours pas affichée comme sélectionnée, mais sinon cela fonctionnait.
Autres consignes
-
Pour toujours voir gummiboot menu, il suffit de mettre
boot.loader.gummiboot.timeout
dans configuration.nix . -
Pour configurer correctement mon nVidia carte graphique, j'ai fini par utiliser le nouveau open-source conducteur :services.xserver.videoDrivers = [ "nouveau" ];
Je n'ai rien à redire à ce sujet. Si j'utilise le propriétaire"nvidia"
à la place, les consoles de texte ne fonctionnent pas.Mise à jour pour NixOS 16.09 . J'ai observé que sur ma machine avec NixOS 16.09, l'option
services.xserver.videoDrivers
n'est pas nécessaire dans configuration.nix pour que tout fonctionne bien, et qu'en fait cela dégrade sensiblement les performances graphiques d'après quelques tests que j'ai fait avec glmark2 Benchmark OpenGL. J'ai également observé que la sélection de"nvidia"
casse le mode graphique mais laisse les consoles texte, contrairement à ce que j'ai observé avec Nix OS 14.04. Tout cela me semble un peu étrange, mais c'est ce que j'ai observé, j'ai donc supprimé cette option de mon configuration.nix . -
Pour charger le applesmc module (pour le capteur de mouvement soudain, par exemple), il m'a été suggéré d'ajouter ce qui suit à configuration.nix :
boot.kernelModules = [ "applesmc" ];
Remarques et observations
Le seul "problème" avec NixOS sur mon MacBook que j'ai observé jusqu'à présent est que, sous NixOS, mon ordinateur portable chauffe généralement de 5 à 10 ° C par rapport à Mac OS 10.9. Cela peut être un problème habituel pour Linux sur un Mac.
Liens vers d'autres instructions d'installation
- Installer Linux sur un MacBook Air, 17/06/2015 (Installation de NixOS sur un MacBook Air dans une configuration à double amorçage avec Mac OS).
Quelques conseils supplémentaires :
Si vous souhaitez que votre rétroéclairage fonctionne et empêcher votre ordinateur portable de redémarrer spontanément lorsque le couvercle est fermé, vous pouvez utiliser quelque chose comme ce qui suit dans votre 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
'';
Selon la version de votre MacBook, vous devrez peut-être modifier les commandes ci-dessus, veuillez donc ne pas copier-coller aveuglément.