Installation minimale
Etape 1
Tout d'abord il vous faut télécharger une image aarch64, armv7l ou bien construire votre propre image.
J'ai choisi la solution aarch64 et donc le téléchargement d'une image 20.03
Aprés décompression de l'image, j'ai écrit celle-ci sur ma carte microSD de plus de 4GB avec un outil BalenaEscher
Vous pouvez aussi tout simplement utiliser la commande dd
sudo dd if=nixos-sd-image-20.03.2102.xxxxxxxxx-aarch64-linux.img of=/dev/sdX
et comme avec les autres OS j'ai allumé le Raspberry.
J'ai donc chargé un system minimum dans une version de Kernel 5.4.44 aarch64.
Etape 2
La Mise à jour par le processus classique à savoir la commande nixos-rebuild afin d'intégrer les logiciels que je veux.
Pour cela on doit d'abord d'écrire un fichier configuration.nix intégrant la description de votre installation.
Et pour l'architecture ARM certains parametres sont nécessaires et obligatoires , voici un "bat" de mon fichier de configuration.
Remarque : 1. ligne 6 obligatoire 2. ligne 8 pour modifier le fichier de démarrage permettant de choisir le boot. nécessaire 3. lignes 11-12 indications de Kernel 4. ligne 16 .... je ne sais pas :-( nécessaire 5. ligne 20 - 29 obligatoire 6. ligne 32 - 34 nécessaire pour éviter les crash du au manque de mémoire. conseillé 7. ligne 37 activation de sshd necessaire
une fois que tout cela est en place le premier rebuild est possible .
nixos-rebuild switch --upgrade --show-trace
Il faut vérifier si on a effectivement une nouvelle generation, à la fin de la reconstruction sans erreur
nix-env -p /nix/var/nix/profiles/system --list-generations 1 1970-01-01 01:00:13 2 2020-06-08 23:48:40
on peut redémarrer la machine
shutdown -r now
Et se reconnecter par ssh avec l'utilisateur pboizot , lol cela ne marche pas.
Analyse Pas de login automatique avec l'utilisateur nixos mais une connexion avec root fonctionne. Ouufff
constat
- plus d'utilisateur nixos
- l'utilisateur pboizot existe mais n'a pas de mot de passe.
Contournement Création d'un mot de passe pour l'utilisateur.
Autres problèmes Au bout de quelques minutes d'utilisation je constate que vim n'est plus installé.
j'ajoute donc la ligne suivante à ma configuration, nous verrons par la suite qu'il serait bien d'ajouter quelques logiciels.
environment.systemPackages = with pkgs; [ wget bat vim lshw pciutils banner usbutils ];
Je lance un nouveau rebuild
unpacking channels... created 1 symlinks in user environment these derivations will be built: /nix/store/mp8mr0fpgcn8salydfkpx8f47nd98cgi-nixos-rebuild.drv these paths will be fetched (1.59 MiB download, 7.21 MiB unpacked): /nix/store/k0llnjlmvqzrgy3xknq1lh9h63g5q3n7-nix-2.3.6-man /nix/store/kgywp3z15kya08i7951p3ajcdnghl553-nix-2.3.6 copying path '/nix/store/k0llnjlmvqzrgy3xknq1lh9h63g5q3n7-nix-2.3.6-man' from 'https://cache.nixos.org'... copying path '/nix/store/kgywp3z15kya08i7951p3ajcdnghl553-nix-2.3.6' from 'https://cache.nixos.org'... building '/nix/store/mp8mr0fpgcn8salydfkpx8f47nd98cgi-nixos-rebuild.drv'... building Nix... building the system configuration... these derivations will be built:
building '/nix/store/iqn7801lcajfbgh1zrbbrlvsqmkxzhf6-nixos-system-rpi3-Nixos-20.03.2107.70717a337f7.drv'... activating the configuration... setting up /etc... reloading user units for pboizot... setting up tmpfiles reloading the following units: dbus.service
[root@rpi3-Nixos:/etc/nixos]# echo $? 0
Tout est OK on a une nouvelle génération
[root@rpi3-Nixos:~]# nix-env -p /nix/var/nix/profiles/system --list-generations 1 1970-01-01 01:00:13 2 2020-06-08 23:48:40 3 2020-06-10 19:04:46 (current)
qui a été mise à jour dans le fichier /boot/extlinux/extlinux.conf
NOTA Vous trouverez le fichier de configuration sur github dans le répertoire minimal.
Etape 3
Mise au point fine.
Comme vous l'avez compris cette installation est minimal.
Suite à des discussions dans les salles IRC nixos-fr et #nixos-aarch64 j'ai activé zramswap en ajoutant cela à ma configuration.
enable zramswap zramSwap = { enable = true; algorithm = "zstd"; };
Du coup j'ai testé que les générations de documentation étaient OK.
documentation.nixos.enable= false;
documentation.man.enable= true;
documentation.doc.enable= false;
Vous pouvez continuer l'exploration sur la page suivante .
Créé: July 13, 2020