- Update
zero2w.nix
In particular, don't forget:
- to configure your wifi
- to add an admin user able to connect through ssh
- Build the image
nix build -L .#nixosConfigurations.zero2w.config.system.build.sdImage
- Copy the image in your sd card
DEVICE=/dev/disk5 # Whatever your sd card reader is
sudo dd if=result/sd-image/zero2.img of=$DEVICE bs=1M conv=fsync status=progress
- Boot your Zero
- Get your IP
ifconfig wlan0
- From another machine, rebuild the system:
ZERO2_IP=<the-zero2-ip>
SSH_USER=<the-admin-user-in-the-pi>
nix run github:serokell/deploy-rs .#zero2w -- --ssh-user $SSH_USER --hostname $ZERO2_IP
- The Zero 2 doesn't have enough RAM to build itself. An initial lead was to create a swap partition, but it turns out it was a bad idea, as it would have decreased the sd card lifetime (sd cards don't like many write operations). A
zram
swap is not big enough to work. Hence the use ofdeploy-rs
.- Note that
nixos-rebuild --target-host
would work instead of usingdeploy-rs
. but asnixos-rebuild
is not available on Darwin, I'm usingdeploy-rs
that works both on NixOS and Darwin.
- Note that
- I still couldn't find a way to use
boot.kernelPackages = pkgs.linuxKernel.packages.linux_rpi3
. - the
sdImage.extraFirmwareConfig
option is not ideal as it cannot updateconfig.txt
after it is created in the sd image.
OTG ethernet is enabled by default and will force usb into device mode. Disable OTG ethernet to use the usb port.
The serial console is enabled by default and can be disabled