Using ArchLinux, install packages arm-none-eabi-binutils, arm-none-eabi-gcc and u-boot tools
== Build U-Boot ==
git clone git://git.denx.de/u-boot.git
cd u-boot
make CROSS_COMPILE='arm-none-eabi-' orangepi_one_defconfig
make CROSS_COMPILE='arm-none-eabi-'
== Install U-Boot ==
Warning: will destroy data on the first few KB of the SDCard.
dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk1 bs=1024 seek=8
== Config U-Boot ==
Create a new partition on the SDCard (taking care of not overwriting U-Boot). Format it to FAT32. Create a new file called boot.cmd with the following content:
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10
load mmc 0:1 0x43000000 ${fdtfile} || load mmc 0:1 0x43000000 boot/${fdtfile}
load mmc 0:1 0x42000000 uImage || load mmc 0:1 0x42000000 boot/uImage
bootm 0x42000000 - 0x43000000
Then run:
mkimage -C none -A arm -T script -d boot.cmd boot.scr
== Install kernel ==
Copy uImage and sun8i-h3-orangepi-one.dtb from the kernel you built to the partition created above.