|
|
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]
| |