You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.1 KiB

#!/bin/bash -e
#
# Build ARM kernel 4.1.7 for QEMU Raspberry Pi Emulation
#
#######################################################
TOOLCHAIN=arm-linux-gnueabihf
COMMIT=423c680bd722670f4b39ea79089859df02b411b6
COMMIT=""
INSTALL_PACKAGES=""
USE_GIT=1
if [ -f build-kernel-qemu.conf ] ; then
. build-kernel-qemu.conf
fi
if [ "$INSTALL_PACKAGES" ] ; then
sudo apt-get update
sudo apt-get install git libncurses5-dev gcc-arm-linux-gnueabihf
fi
if [ "$USE_GIT" ] ; then
# checking out 4.1.7+ branch - change it if you want to change kernel version
# for kernel specific hash, have a looks at : https://github.com/raspberrypi/linux/commits/rpi-4.1.y
if [ ! -d linux ] ; then
git clone https://github.com/raspberrypi/linux.git
else
echo "using existing linux sources!"
fi
cd linux
if [ "$COMMIT" ] ; then
git checkout "$COMMIT"
fi
else
if [ -z "$COMMIT" ] ; then echo "COMMIT missing!" >&2 ; exit 1 ; fi
wget -c https://github.com/raspberrypi/linux/archive/${COMMIT}.zip -O linux-${COMMIT}.zip
rm -rf linux-${COMMIT}
unzip linux-${COMMIT}.zip
cd linux-${COMMIT}
fi
patch -p1 < ../linux-arm.patch
make ARCH=arm versatile_defconfig
KERNEL_VERSION=$(make kernelversion)
echo "building qemu raspberry pi kernel kernel-qemu-$KERNEL_VERSION"
cat >> .config << EOF
CONFIG_CROSS_COMPILE="$TOOLCHAIN"
CONFIG_CPU_V6=y
CONFIG_ARM_ERRATA_411920=y
CONFIG_ARM_ERRATA_364296=y
CONFIG_AEABI=y
CONFIG_OABI_COMPAT=y
CONFIG_PCI=y
CONFIG_SCSI=y
CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_TMPFS=y
CONFIG_INPUT_EVDEV=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS=y
CONFIG_VFAT_FS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
CONFIG_VFP=y
CONFIG_CGROUPS=y
CONFIG_MMC_BCM2835=y
CONFIG_MMC_BCM2835_DMA=y
CONFIG_DMADEVICES=y
CONFIG_DMA_BCM2708=y
CONFIG_FHANDLE=y
CONFIG_OVERLAY_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_FS_POSIX_ACL=y
EOF
9 years ago
cat ../config_ip_tables >> .config
make -j 4 -k ARCH=arm CROSS_COMPILE=${TOOLCHAIN}- menuconfig
make -j 4 -k ARCH=arm CROSS_COMPILE=${TOOLCHAIN}- bzImage
cp arch/arm/boot/zImage ../kernel-qemu-$KERNEL_VERSION
cd ..