Difference between revisions of "NixOS on ARM/Banana Pi"

From NixOS Wiki
Jump to: navigation, search
(Add instructions to build and write U-Boot to disk)
 
(add instructions for SATA PMP)
Line 18: Line 18:
  
 
Then, install using the [[NixOS_on_ARM#NixOS_installation_.26_configuration|installation and configuration steps]].
 
Then, install using the [[NixOS_on_ARM#NixOS_installation_.26_configuration|installation and configuration steps]].
 +
 +
== SATA Port multiplier (PMP) ==
 +
 +
It [http://forum.lemaker.org/thread-9207-1-1.html 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 <syntaxhighlight lang="nix">boot.kernelParams = ["ahci_sunxi.enable_pmp=1"]</syntaxhighlight> in <code>configuration.nix</code>. Note that this will prevent the use of a hard drive connected to the SATA port directly without a port multiplier in between.
 +
 +
See [https://linux-sunxi.org/SATA#PMP_support_-_using_SATA_port_multipliers_with_sunxi_devices here] for more details.

Revision as of 12:16, 7 April 2019

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.