The latest gem5 source code (including the encumbered files) is available via our Mercurial repository host at http://repo.gem5.org. It is strongly recommend that you get a copy of gem5 by using Mercurial. You can get more info about the repository and Mercurial here. Steps for getting a copy of the source code:
- Install mercurial (hg). This is available in the mercurial package on Ubuntu and Redhat and OS X Fink.
- For the stable repository:
hg clone http://repo.gem5.org/gem5-stableor the development repository
hg clone http://repo.gem5.org/gem5. The stable repository is updated about once every 6 months, while the development repository is updated reguarly and occasionally breaks.
- After you clone the repository you can update it by typing
hg update. Read the documentation on this page for more info on using Mercurial.
If you want to download gem5 without installing Mercurial, you can get a tarball. But it will be more difficult to merge in changes when you need to update to new version. The stable repository is available via this link. The development repository is available via this link.
Useful Software not in Mercurial
You would need one or more of the following files to full system simulations using gem5. If you download these files, read this page for instructions on how to install these files.
- ARMv8 Full-System Files -- Pre-compiled kernel and disk image for the 64 bit ARMv8 ISA.
- VExpress_EMM kernel w/PCI support and config -- Pre-compiled Linux 3.3 VExpress_EMM kernel that includes support for PCIe devices, a patch to add gem5 PCIe support to the revision of the vexpress kernel tree and a config file. This kernel is needed if you want to simulated more than 256MB of RAM or networking. Pass
--kernel=/path/to/vmlinux-3.3-arm-vexpress-emm-pcie --machine-type=VExpress_EMMon the command line. You'll still need the file systems below. This kernel supports a maximum of 2047MB (one MB less than 2GB) of memory.
- New Full System Files -- Pre-compiled Linux kernel, and file systems, and kernel config files. This includes both a cut-down linux and a full ubuntu linux.
- Old Full System Files -- Older pre-compiled Linux kernel, and file system. New users should use package above. This wil likely be removed soon.
- BBench for gem5 -- Full-system Android files and BBench, a web-browser benchmark.
- AsimBench for gem5 -- Full-system Android files for AsimBench, a benchmark suite containing various types of mobile applications.
- Tarballs of generic file systems are available from Linaro. Scroll down to the Developers and Community Builds section. Some work will be required to make these suitable for simulation, but they're a reasonable starting point.
mkblankimage.shscript to create a blank disk image that used to be downloadable here is now included in the m5 repository, in the
- For information about running Android on gem5 and using the web browser benchmark, see BBench-gem5.
- For information about running the AsimBench benchmark on Android with gem5, see AsimBench for more information.
- For information about using the DaCapo benchmarks on gem5 see the DaCapo benchmarks page for more information.
- SPLASH benchmarks -- See the Splash benchmarks page for more information.
Externally supplied cross compilers:
- ARM cross compilers from CodeSourcery -- These are high-quality cross compilers that are updated frequently
- Ubuntu users can simply install the gcc-arm-linux-gnueabi and libc6-dev-armel-cross packages
- MIPS cross compilers from CodeSourcery
All generated with crosstool for x86 linux hosts/linux targets
- Alpha: gcc-3.4.3, gcc-4.3.2, glibc-2.6.1 (NPTL,x86/64), gcc-4.3.2, glibc-2.6.1 (NPTL,x86/32)