Difference between revisions of "ARM Kernel"
From gem5
Line 5: | Line 5: | ||
If you can't use these pre-made compilers the next easiest way to obtain the required compilers from [[http://releases.linaro.org/latest/components/toolchain/binaries/ Linaro]]. | If you can't use these pre-made compilers the next easiest way to obtain the required compilers from [[http://releases.linaro.org/latest/components/toolchain/binaries/ Linaro]]. | ||
+ | |||
+ | Depending on the exact source of your cross compilers, the compiler names used below will required small changes. | ||
Line 35: | Line 37: | ||
wget "http://www.linux-arm.org/git?p=linux-aarch64-gem5.git;a=snapshot;h=20140821;sf=tgz" -O 20140821-gem5_aarch64.tar.gz | wget "http://www.linux-arm.org/git?p=linux-aarch64-gem5.git;a=snapshot;h=20140821;sf=tgz" -O 20140821-gem5_aarch64.tar.gz | ||
tar zxf 20140821-gem5_aarch64.tar.gz | tar zxf 20140821-gem5_aarch64.tar.gz | ||
− | make ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- | + | cd linux-aarch64-gem5-20140821/ |
− | make ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- j4 | + | make ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- gem5_defconfig |
+ | make ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- -j4 | ||
mv vmlinux vmlinux.arm64.20140821 | mv vmlinux vmlinux.arm64.20140821 | ||
</pre> | </pre> | ||
+ | Testing the just built kernel: | ||
+ | <pre> | ||
+ | % ./build/ARM/gem5.opt configs/example/fs.py --kernel=/tmp/linux-linaro-tracking-gem5-ll_20131205.0-gem5-325b404/vmlinux.arm.ll_20131205.0-gem5 \ | ||
+ | --machine-type=VExpress_EMM --dtb-file=/tmp/linux-linaro-tracking-gem5-ll_20131205.0-gem5-325b404/arch/arm/boot/dts/vexpress-v2p-ca15-tc1-gem5.dtb | ||
+ | </pre> | ||
Line 45: | Line 53: | ||
{| | {| | ||
| Latest tag: | | Latest tag: | ||
− | |<pre></pre> | + | |<pre> 20140821</pre> |
|} | |} | ||
Revision as of 14:49, 5 September 2014
This page contains instructions for building up-to-date kernels for gem5 running on ARM.
Contents
Linux command-line Configurations
These instructions are for running headless systems. That is a more "server" style system where there is no frame-buffer. The description has been created using the latest known-working tag in the repositories linked below, however the tables in each section list previous tags that are known to work. To built the kernels on an x86 host you'll need ARM cross compilers. If you're running a reasonably new version of ubuntu you can get a AArch32 (32-bit compiler) and AArch64 compiler by installing them from apt:apt-get install gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu
If you can't use these pre-made compilers the next easiest way to obtain the required compilers from [Linaro].
Depending on the exact source of your cross compilers, the compiler names used below will required small changes.
32 bit kernel (AArch32)
These are instructions to generate a 32-bit ARM Linux binary.
wget "http://www.linux-arm.org/git?p=linux-linaro-tracking-gem5.git;a=snapshot;h=ll_20131205.0-gem5;sf=tgz" -O ll_20131205.0-gem5.tar.gz tar zxf ll_20131205.0-gem5.tar.gz cd linux-linaro-tracking-gem5-ll_20131205.0-gem5-325b404/ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- vexpress_gem5_server_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 mv vmlinux vmlinux.arm.ll_20131205.0-gem5
Testing the just built kernel:
% ./build/ARM/gem5.opt configs/example/fs.py --kernel=/tmp/linux-linaro-tracking-gem5-ll_20131205.0-gem5-325b404/vmlinux.arm.ll_20131205.0-gem5 \ --machine-type=VExpress_EMM --dtb-file=/tmp/linux-linaro-tracking-gem5-ll_20131205.0-gem5-325b404/arch/arm/boot/dts/vexpress-v2p-ca15-tc1-gem5.dtb
Known working tags
Latest tag: | ll_20131205.0-gem5 |
64 bit kernel (AArch64)
These are instructions to generate a 32-bit ARM Linux binary.
wget "http://www.linux-arm.org/git?p=linux-aarch64-gem5.git;a=snapshot;h=20140821;sf=tgz" -O 20140821-gem5_aarch64.tar.gz tar zxf 20140821-gem5_aarch64.tar.gz cd linux-aarch64-gem5-20140821/ make ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- gem5_defconfig make ARCH=arm64 CROSS_COMPILE=aarch64-none-elf- -j4 mv vmlinux vmlinux.arm64.20140821
Testing the just built kernel:
% ./build/ARM/gem5.opt configs/example/fs.py --kernel=/tmp/linux-linaro-tracking-gem5-ll_20131205.0-gem5-325b404/vmlinux.arm.ll_20131205.0-gem5 \ --machine-type=VExpress_EMM --dtb-file=/tmp/linux-linaro-tracking-gem5-ll_20131205.0-gem5-325b404/arch/arm/boot/dts/vexpress-v2p-ca15-tc1-gem5.dtb
Known working tags
Latest tag: | 20140821 |
Mobile/Android Configuration
Coming soon!