4.0 KB

Banana Pro SBC


About the Banana Pro SBC from LeMaker

External links,_script.bin_and_linux-kernel#Building_the_kernel

LeMaker BPS (board package support)

git clone --recursive ./fex2bin ../sunxi-boards/sys_config/a20/BananaPro.fex ../../mageia4arm/bananaPro/script.bin

About U-Boot

The mainline U-Boot is used for this port.


git clone
cd u-boot
make CROSS_COMPILE=arm-linux-gnu- Bananapro_defconfig
cp ${CONFIG_PATH}/UBOOT.config ./.config
#Just modify few unimportant things, like prompt, name, ...
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- -j8 
make ARCH=arm CROSS_COMPILE=arm-linux-gnu-
#cp ./u-boot.dtb ${CONFIG_PATH}/sun7i-a20-bananapro.dtb
cp -f ./u-boot.dtb ${CONFIG_PATH}/u-boot.dtb
cp -f ./arch/arm/dts/sun7i-a20-bananapro.dtb ${CONFIG_PATH}/sun7i-a20-bananapro.dtb
cp -f ./u-boot-sunxi-with-spl.bin ${CONFIG_PATH}/u-boot-sunxi-with-spl.bin
#Inside ""
#dd if=${CONFIG_PATH}/u-boot-sunxi-with-spl.bin of=${DEVICE} bs=1024 seek=8

echo '
setenv KERNEL_FILE /boot/vmlinuz
setenv INIT_FILE /boot/initrd.img
#setenv DTB_FILE /boot/sun7i-a20-bananapro.dtb
setenv DTB_FILE /boot/u-boot.dtb

setenv KERNEL_ADDR 0x40008000
#setenv INIT_ADDR 0x45000000
setenv INIT_ADDR -
setenv DTB_ADDR 0x48000000

ext4load mmc 0:1 ${KERNEL_ADDR} ${KERNEL_FILE}
#ext4load mmc 0:1 ${INIT_ADDR} ${INIT_FILE}
ext4load mmc 0:1 ${DTB_ADDR} ${DTB_FILE}

setenv bootargs console=ttyS0,115200 disp.screen0_output_mode=EDID:1024x768p50 root=/dev/mmcblk0p1 rootfstype=ext4 elevator=deadline rootwait


#Compile boot.scr : mkimage -C none -A arm -T script -d "${CONFIG_PATH}/boot.cmd" "${CONFIG_PATH}/boot.scr"
' >${CONFIG_PATH}/boot.cmd

mkimage -C none -A arm -T script -d ${CONFIG_PATH}/boot.cmd ${CONFIG_PATH}/boot.scr

UBoot Sunxi From LeMaker

Obsolet, see 'LeMaker BPS (board package support)'.

UBoot Sunxi

Generic u-boot for sunxi

git clone
make CROSS_COMPILE=arm-linux-gnu- Bananapro_config
make CROSS_COMPILE=arm-linux-gnu- -j8
make CROSS_COMPILE=arm-linux-gnu-
#Need network support to give the MAC address.
#Do not activate boot timing.
#Default conf use bootz and dtb tree.

Default LeMaker script

setenv bootargs console=ttyS0,115200 noinitrd 
disp.screen0_output_mode=EDID:1280x720p50 init=/init
root=/dev/mmcblk0p2 rootwait panic=10 ${extra}
fatload mmc 0 0x43000000 script.bin 
fatload mmc 0 0x48000000 uImage 
bootm 0x48000000

DTB from Linux Mainline

git clone git:// --depth=1
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- sunxi_defconfig
ARCH=arm CROSS_COMPILE=arm-linux-gnu- make -j8 dtbs
cp ./arch/arm/boot/dts/sun7i-a20-bananapro.dtb ./sun7i-a20-bananapro.dtb

About the Kernel

Not Written.

Generate symlink

#Generating a symbolic relative link to the "last" kernel :
ln -r -s ./vmlinuz-5.2.13-desktop-2.mga7 ./vmlinuz
rm -f ./vmlinuz && ln -r -s ./vmlinuz-5.3.1-desktop-2.mga7 ./vmlinuz

Commands used :

./ --clean --config bananaPro --build-path ./build ./ --all --target bananaPro --size 2 --tainted --nonfree --build-path ./build --config bananaPro 2>&1 | tee -a ./log/creation.log dd if=./build/Mageia-7-bananaPro1.img | pv | dd of=/dev/mmcblk0 ; sync