diff options
author | John Lane <john@lane.uk.net> | 2013-01-20 22:30:27 +0000 |
---|---|---|
committer | John Lane <john@lane.uk.net> | 2013-01-20 22:30:27 +0000 |
commit | 98692703eac635b983f5b9c634acd2abf2bc558c (patch) | |
tree | cf029c02f805b1c689dd452bf77ed12ac08c9ebb | |
parent | dff2da45f2bc1507bb182c42b7705c2d750e6e7d (diff) | |
download | rpi-utils-master.zip rpi-utils-master.tar.gz rpi-utils-master.tar.bz2 |
Update build-kernel-qemu for hard-floatHEADorigin/masterorigin/HEADmaster
-rw-r--r-- | kernel/.gitignore | 1 | ||||
-rw-r--r-- | kernel/README | 46 | ||||
-rw-r--r-- | kernel/README.md | 31 | ||||
-rwxr-xr-x[-rw-r--r--] | kernel/build-kernel-qemu | 33 |
4 files changed, 62 insertions, 49 deletions
diff --git a/kernel/.gitignore b/kernel/.gitignore new file mode 100644 index 0000000..9ef77dd --- /dev/null +++ b/kernel/.gitignore @@ -0,0 +1 @@ +kernel-qemu/ diff --git a/kernel/README b/kernel/README deleted file mode 100644 index abbb1ad..0000000 --- a/kernel/README +++ /dev/null @@ -1,46 +0,0 @@ -Kernel Build Notes -================== - -QEMU ARM Emulator ------------------ - -The following sequence of commands can be used to build a kernel -image that can be used to boot QEMU. They are also present in -the script 'build-kernel-qemu'. - -$ mkdir kernel-qemu -$ cd kernel-qemu -$ git clone --depth 1 git://github.com/raspberrypi/linux.git -$ wget http://xecdesign.com/downloads/linux-qemu/linux-arm.patch -$ patch -p1 -d linux/ < linux-arm.patch -$ cd linux -$ make ARCH=arm versatile_defconfig -$ cat >> .config << EOF -CONFIG_CROSS_COMPILE="$(which arm-linux-gnueabi-gcc | sed "s/-gcc/-/")" -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_EXT4_FS=y -CONFIG_FONT_8x16=y -CONFIG_LOGO=y -EOF -$ make -j 8 -k ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig -$ make -j 8 -k ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -$ cd .. -$ cp linux/arch/arm/boot/zImage kernel-qemu - -References -========== -http://xecdesign.com/compiling-a-kernel/ -http://balau82.wordpress.com/2010/03/22/compiling-linux-kernel-for-qemu-arm-emulator/ diff --git a/kernel/README.md b/kernel/README.md new file mode 100644 index 0000000..6808b2b --- /dev/null +++ b/kernel/README.md @@ -0,0 +1,31 @@ +Kernel Build Notes +================== + +QEMU ARM Emulator +----------------- + +Use the script 'build-kernel-qemu' to build a kernel image that +can be used to boot QEMU. The script can build a soft or hard +float kernel. (for soft-float, comment out "HARDFLOAT=yes" near +the top of the script). + +Assumptions +----------- + +An appropriate cross compiler toolchain is available at: + +* for soft float : /usr/bin/arm-linux-gnueabi-* +* for hard float : /usr/bin/arm-linux-gnueabihf-* + +Tests +----- + +Tested by booting Raspberry-Pi Arch Linux system images in QEMU: + +* for soft float : archlinuxarm-13-06-2012.img +* for hard float : archlinux-hf-2012-09-18.img + +References +---------- +http://xecdesign.com/compiling-a-kernel/ +http://balau82.wordpress.com/2010/03/22/compiling-linux-kernel-for-qemu-arm-emulator/ diff --git a/kernel/build-kernel-qemu b/kernel/build-kernel-qemu index 2a445ac..a6a8c23 100644..100755 --- a/kernel/build-kernel-qemu +++ b/kernel/build-kernel-qemu @@ -1,5 +1,25 @@ #!/bin/bash +# +# Build ARM kernel for QEMU Raspberry Pi Emulation +# +# John Lane https://github.com/johnlane/rpi-utils +# +# Thanks to http://xecdesign.com/compiling-a-kernel/ +# +####################################################### +# Compile for hard-float ? +HARDFLOAT=yes + +if [[ ${HARDFLOAT} == yes ]]; then + TOOLCHAIN=arm-linux-gnueabihf + CONFIG_VFP=y +else + TOOLCHAIN=arm-linux-gnueabi + CONFIG_VFP=n +fi + +rm -rf kernel-qemu mkdir kernel-qemu cd kernel-qemu git clone --depth 1 git://github.com/raspberrypi/linux.git @@ -8,7 +28,7 @@ patch -p1 -d linux/ < linux-arm.patch cd linux make ARCH=arm versatile_defconfig cat >> .config << EOF -CONFIG_CROSS_COMPILE="$(which arm-linux-gnueabi-gcc | sed "s/-gcc/-/")" +CONFIG_CROSS_COMPILE="$(which ${TOOLCHAIN}-gcc | sed "s/-gcc/-/")" CONFIG_CPU_V6=y CONFIG_ARM_ERRATA_411920=y CONFIG_ARM_ERRATA_364296=y @@ -23,11 +43,18 @@ 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=${CONFIG_VFP} +CONFIG_CGROUPS=y EOF -make -j 8 -k ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig -make -j 8 -k ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- + +make -j 8 -k ARCH=arm CROSS_COMPILE=${TOOLCHAIN}- menuconfig +make -j 8 -k ARCH=arm CROSS_COMPILE=${TOOLCHAIN}- cd .. cp linux/arch/arm/boot/zImage kernel-qemu |