NixOS on ARM/Banana Pi

From NixOS Wiki
Revision as of 12:16, 7 April 2019 by imported>NickHu (add instructions for SATA PMP)

Building U-Boot

$ git clone git://git.denx.de/u-boot.git
$ cd u-boot
$ nix-shell -p ubootTools gcc-arm-embedded dtc flex bison python swig
$ make -j4 ARCH=arm CROSS_COMPILE=arm-none-eabi- Bananapi_defconfig 
$ make -j4 ARCH=arm CROSS_COMPILE=arm-none-eabi-

Board-specific installation notes

First follow the generic installation steps to get the installer image.

U-Boot needs to be copied to specific sectors on the microSD card with dd:

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8

Then, install using the installation and configuration steps.

SATA Port multiplier (PMP)

It used to be necessary to make some changes to the kernel source and recompile, but on recent linux versions (including the one shipped with the NixOS arm image) this is no longer necessary. Instead, all that is required is merely to set

boot.kernelParams = ["ahci_sunxi.enable_pmp=1"]

in configuration.nix. Note that this will prevent the use of a hard drive connected to the SATA port directly without a port multiplier in between.

See here for more details.