b4da22f2cf
This change makes it so that the ARM image creation script uses DNF instead of urpmi. This affords several advantages: 1. Mageia images can be created from non-Mageia systems 2. Mageia images can be created from within Mock 3. ARM images can be created from x86_64 hosts 4. Image building can rely on pre-installed repo configurations This also brings us in line with the Docker image creation process, which also uses DNF.
121 lines
4.0 KiB
Markdown
121 lines
4.0 KiB
Markdown
Banana Pro SBC
|
|
==========
|
|
|
|
Short
|
|
-----
|
|
* [Board Informations](#SBC_INFO)
|
|
* [U-Boot](#UBOOT_INFO)
|
|
* [Kernel](#KERNEL_INFO)
|
|
|
|
<a id="SBC_INFO"/>
|
|
# About the Banana Pro SBC from LeMaker
|
|
|
|
## External links
|
|
http://wiki.lemaker.org/BananaPro/Pi:Building_u-boot,_script.bin_and_linux-kernel#Building_the_kernel
|
|
http://wiki.lemaker.org/BananaPro/Pi:Setting_up_the_bootable_SD_card
|
|
https://sites.google.com/site/manisbutareed/bringing-my-beagles-to-heel/selected-annotated-u-boot-commands
|
|
https://linux-sunxi.org/Mainline_Kernel_Howto
|
|
https://linux-sunxi.org/Manual_build_howto#Setting_up_the_boot_partition
|
|
https://stackoverflow.com/questions/28891221/uenv-txt-vs-boot-scr
|
|
https://github.com/linux-sunxi/u-boot-sunxi/wiki
|
|
|
|
## LeMaker BPS (board package support)
|
|
git clone --recursive https://github.com/LeMaker/lemaker-bsp.git
|
|
./fex2bin ../sunxi-boards/sys_config/a20/BananaPro.fex ../../mageia4arm/bananaPro/script.bin
|
|
|
|
<a id="UBOOT_INFO"/>
|
|
# About U-Boot
|
|
The mainline U-Boot is used for this port.
|
|
## Mainline
|
|
```
|
|
CONFIG_PATH=~/workspaces/mageia4arm/platforms/bananaPro
|
|
git clone https://gitlab.denx.de/u-boot/u-boot
|
|
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 "specialFunctions.sh"
|
|
#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 hdmi.audio=EDID:0 root=/dev/mmcblk0p1 rootfstype=ext4 elevator=deadline rootwait
|
|
|
|
#printenv
|
|
bootz ${KERNEL_ADDR} ${INIT_ADDR} ${DTB_ADDR}
|
|
|
|
#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 https://github.com/linux-sunxi/u-boot-sunxi
|
|
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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.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
|
|
```
|
|
|
|
<a id="KERNEL_INFO"/>
|
|
# 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 :
|
|
./create_arm_image.sh --clean --config bananaPro --build-path ./build
|
|
./create_arm_image.sh --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
|