1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #/bin/sh
- ######################
- # Sunxi compilation #
- ######################
- set -e
- show_usage() {
- cat <<EOF
- # NAME
- $(basename $0) -- Script to build sunxi kernel and boot files
- # OPTIONS
- -o offline mode (mandatory)
- -t olinux type (a10lime, a20lime, a20lime2, a20micro) (default: a20lime)
- EOF
- exit 1
- }
- while getopts ":ot:" opt; do
- case $opt in
- o)
- offline=$OPTARG
- ;;
- t)
- olinux=$OPTARG
- ;;
- \?)
- show_usage
- ;;
- esac
- done
- clone_or_pull (){
- project=$1
- repo=$2
- name=$(echo $project | sed 's/.git$//')
- if [ "$offline" ] ; then
- cd /olinux/sunxi/$name/ && make clean
- return 0
- fi
- if [ -d /olinux/sunxi/$name/ ] ; then
- cd /olinux/sunxi/$name/ && make clean && git pull --depth 1
- else
- git clone --depth 1 $repo/$project /olinux/sunxi/$name/
- fi
- }
- if [ "$olinux" = "a20lime2" ] ; then
- u_boot_config="A20-OLinuXino-Lime2_defconfig"
- sunxi_board_config="a20/a20-olinuxino_lime2.fex"
- kernel_defconfig="a20_defconfig"
- elif [ "$olinux" = "a20micro" ] ; then
- u_boot_config="A20-OLinuXino_MICRO_defconfig"
- sunxi_board_config="a20/a20-olinuxino_micro.fex"
- kernel_defconfig="a20_defconfig"
- elif [ "$olinux" = "a10lime" ] ; then
- u_boot_config="A10-OLinuXino-Lime_defconfig"
- sunxi_board_config="a10/a10-olinuxino-lime.fex"
- kernel_defconfig="a10_defconfig"
- else
- u_boot_config="A20-OLinuXino-Lime_defconfig"
- sunxi_board_config="a20/a20-olinuxino_lime.fex"
- kernel_defconfig="a20_defconfig"
- fi
- mkdir -p /olinux/sunxi/
- # Sunxi u-boot
- #clone_or_pull u-boot-sunxi
- clone_or_pull u-boot.git git://git.denx.de
- cd /olinux/sunxi/u-boot && make CROSS_COMPILE=arm-linux-gnueabihf $u_boot_config && make CROSS_COMPILE=arm-linux-gnueabihf-
- # Sunxi kernel
- clone_or_pull linux-sunxi.git https://github.com/linux-sunxi
- cp /olinux/$kernel_defconfig /olinux/sunxi/linux-sunxi/arch/arm/configs/.
- cd /olinux/sunxi/linux-sunxi/ && make ARCH=arm $kernel_defconfig
- cd /olinux/sunxi/linux-sunxi/ && make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2 uImage
- cd /olinux/sunxi/linux-sunxi/ && make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2 INSTALL_MOD_PATH=out modules
- cd /olinux/sunxi/linux-sunxi/ && make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j2 INSTALL_MOD_PATH=out modules_install
- # Sunxi board configs
- clone_or_pull sunxi-boards.git https://github.com/linux-sunxi
- # Sunxi tools
- clone_or_pull sunxi-tools.git https://github.com/linux-sunxi
- cd /olinux/sunxi/sunxi-tools/ && make
- cd /olinux/sunxi/ && rm -f script.bin && ./sunxi-tools/fex2bin sunxi-boards/sys_config/$sunxi_board_config script.bin
- cd /olinux/sunxi/ && chmod +x script.bin
|