NixOS on a MinnowBoard MAX and Turbot (serial console)
TL;DR To boot and get a serial console add
"console=ttyS0"to your kernel boot arguments via
boot.kernelParams = [ "console=ttyS0" ];.
The MinnowBoard is an x86 based developer board, similar to the Raspberry Pi or the BeagleBone Black. It comes in multiple versions like the MinnowBoard MAX and the newer MinnowBoard Turbot. They are both compatible to each other and these instructions work for both of them.
Here is a summary with some additional steps needed to get the Serial Console working.
You need a media that is attached to your Minnowboard. This can either be a SATA drive, a USB Drive or an SD card. For my setup I used an 8GB microSD card but a bigger one might be more suitable if you plan to run anything meaningful on the system.
Boot the installation media and get a serial console.
In order to get a serial console the parameter
console=ttyS0 needs to be appended to the kernels boot parameters.
The easiest way to do this without creating a custom boot media is to press
e key when the entry to start NixOS appears.
Then simply add
console=ttyS0 in the beginning of the line and press
After some time a Linux shell will appear.
As the Minnowboard is equipped with an UEFI firmware we partition the SD card using GPT.
Then create a 512M partition of type
EFI System and a second partition taking the remaining space of type
Note that we don’t use swap as we will use zram later.
We then format the partition with vfat and ext4.
mkfs.vfat -n boot /dev/mmcblk0p1 mkfs.ext4 -L root /dev/mmcblk0p2
Then we mount these two partitions to
mount /dev/mmcblk0p2 /mnt mkdir /mnt/boot mount /dev/mmcblk0p1 /mnt/boot
Then let’s generate the default NixOS configuration.
nixos-generate-config --root /mnt
configuration.nix now created under
/mnt/etc/nixos/configuration.nix needs some adjustments to make the serial console work again after a reboot.
In order to achieve this add the following line to your
boot.kernelParams = [ "console=ttyS0" ];
As mentioned above we didn’t set up swap as we wanted to use zram instead. So let’s activate this too by adding the following line:
zramSwap = true;
After your configuration is finished run
nixos-install set a root password and reboot the device.
This should be all you need get your device working.