Difference between revisions of "NixOS on ARM/Banana Pi BPI-M5"

From NixOS Wiki
Jump to: navigation, search
(Created page with "{{ARM/breadcrumb}} == Status == Work in progress == Building Amlogic-compatible U-Boot == === Building U-Boot === '''Note:''' Do not use the severely outdated [https://gi...")
 
m (rollback unauthorized mass edits)
Tag: Rollback
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{ARM/breadcrumb}}
+
This page has been moved to the official NixOS Wiki:
  
== Status ==
+
    ⇒ '''[https://wiki.nixos.org/wiki/NixOS_on_ARM/Banana_Pi_BPI-M5 NixOS on ARM/Banana Pi BPI-M5]'''
  
Work in progress
+
''— samueldr, Lead of NixOS on ARM.''
 
 
== Building Amlogic-compatible U-Boot ==
 
 
 
 
 
=== Building U-Boot ===
 
'''Note:''' Do not use the severely outdated [https://github.com/BPI-SINOVOIP/BPI-M5-bsp BPI-M5-bsp] or [https://github.com/Dangku/Amlogic-u-boot Amlogic-u-boot] to build u-boot.
 
 
 
<syntaxhighlight lang="bash">
 
$ 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 -j$(nproc) ARCH=arm CROSS_COMPILE=aarch64-unknown-linux-gnu- bananapi-m5_defconfig
 
$ make -j$(nproc) ARCH=arm CROSS_COMPILE=aarch64-unknown-linux-gnu-
 
$ cd ..
 
</syntaxhighlight>
 
 
 
=== Creating Amlogic Package ===
 
 
 
'''Note:''' The following steps require an AMD64 platform.
 
 
 
<syntaxhighlight lang="bash">
 
$ git clone https://github.com/LibreELEC/amlogic-boot-fip
 
$ cd amlogic-boot-fip
 
$ mkdir -p output-bananapim5/
 
$ ./build-fip.sh bananapi-m5 ../u-boot/u-boot.bin output-bananapim5
 
$ hexdump -C -n 32 output-bananapim5/u-boot.bin | grep "40 41 4d 4c"
 
$ cd ..
 
</syntaxhighlight>
 
 
 
Verify that the new u-boot.bin contains <code>40 41 4d 4c</code> (<code>@AML</code>) at 0x10 onwards.
 
 
 
== Board-specific installation notes ==
 
 
 
First follow the [[NixOS_on_ARM#SD_card_images_.28SBCs_and_similar_platforms.29|NixOS_on_ARM instructions to get the SD card image]] and decompress it.
 
 
 
Once the image has been decompressed, the Amlogic U-Boot package needs to be copied to byte 512+ inside the image (replace the image with the name downloaded and decompressed image):
 
 
 
<syntaxhighlight lang="bash">sudo dd if=amlogic-boot-fip/output-bananapim5/u-boot.bin of=nixos-sd-image-22.11.2620.de5448dab58-aarch64-linux.img conv=fsync,notrunc bs=512 seek=1</syntaxhighlight>
 
 
 
Then, copy the image onto the eMMC or sdcard using the [[NixOS_on_ARM#Installation_steps|the installation steps]].
 
 
 
In order to get a serial console output, it is required to replace <code>ttyAMA0</code> with <code>ttyAML0</code> in the <code>/boot/extlinux/extlinux.conf</code> file inside the image.
 
The easiest way is to just mount the respective folder after the image has been flashed on the SD-card
 
<syntaxhighlight lang="bash">
 
sudo mount /dev/sdX /mnt/
 
sudo sed -i 's/ttyAMA0/ttyAML0/g' /mnt/boot/extlinux/extlinux.conf
 
</syntaxhighlight>
 
 
 
 
 
== Resources ==
 
 
 
* [https://wiki.banana-pi.org/Banana_Pi_BPI-M5 Official product page]
 
* [https://u-boot.readthedocs.io/en/latest/board/amlogic/odroid-c4.html Installation here is based on the U-Boot for Odroid C4 documentation]
 

Latest revision as of 11:08, 6 April 2024

This page has been moved to the official NixOS Wiki:

    ⇒ NixOS on ARM/Banana Pi BPI-M5

— samueldr, Lead of NixOS on ARM.