Size: 1496
Comment:
|
Size: 2420
Comment: added requirements section
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
The goal of this article is to guide you through compiling and running Barrelfish inside Qemu and also with writing and running programs on Barrelfish itself. | ## page was renamed from Getting Started The goal of this article is to guide you through compiling and running Barrelfish inside QEMU, and to write and run programs on Barrelfish itself. |
Line 3: | Line 4: |
=== Requirements === Barrelfish requires the following tools to compile correctly: * GCC 4.x 4.4.5 and 4.5.2 are known to work. However, 4.4.5 throws compile warnings when building the current release as it does not support flags used by the Makefile, so 4.5.x is recommended. * GNU binutils 2.19 and 2.20 are known to work * GNU make * GHC 6.10 or 6.12.2 and Parsec 2.1 earlier versions of GHC are unsupported. GHC 6.12.1 has a known bug and is unable to build our tools |
|
Line 6: | Line 17: |
First we need to get the latest version of Barrelfish from the mercurial repository, use the following command: | First we need to get the latest version of Barrelfish from the mercurial repository. Use the following command: |
Line 10: | Line 21: |
or, if you are using an HTTP proxy | or, if you are using an HTTP proxy: |
Line 12: | Line 23: |
hg --config http_proxy.host=ipOfYourProxyServer:portOfYourProxyServer --config http_proxy.user=user --config http_proxy.passwd=password pull http://hg.barrelfish.org | hg --config http_proxy.host=ipOfYourProxyServer:portOfYourProxyServer --config http_proxy.user=user --config http_proxy.passwd=password clone http://hg.barrelfish.org |
Line 15: | Line 26: |
Once you have cloned the repository cd into it and create a build directory and enter it | === Configuring === Once you have cloned the repository, cd into it, create a build directory, and enter it: |
Line 22: | Line 35: |
Then create the required makefile | Then create the required makefile: |
Line 26: | Line 39: |
or, if you wish to build the 32-bit version | or, if you wish to build the 32-bit version: |
Line 31: | Line 44: |
Now we can build Barrelfish | '''Note:''' If you get the following error: {{{{ ../hake/Main.hs:369:25: Not in scope: data constructor `Opt_DeriveDataTypeable' }}}} Apply the following patch to hake/Main.hs: [[https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20110519/833cc2f8/attachment.obj|Main.hs.patch]] === Compiling === Now we can build Barrelfish: |
Line 36: | Line 58: |
To speed things up you can specify a number of jobs, this should be roughly the same as the number of cores, so on a 4-core machine you could use | To speed things up you can specify a number of jobs. This should be roughly the same as the number of cores, so on a 4-core machine you could use: |
Line 41: | Line 63: |
Once that has completed, you can issue the following command to run Barrelfish on Qemu | Once that has completed, you can issue the following command to run Barrelfish on QEMU: |
Line 45: | Line 67: |
To allocate more cores to Qemu, instead of the default 2, you can edit the symbolic_targets.mk file in the build directory. Editing the QEMU_CMD line for the architecture you have built Barrelfish for. | To allocate more cores to QEMU, instead of the default 2, you can edit the symbolic_targets.mk file in the build directory. Do this by editing the QEMU_CMD line for the architecture you've chosen for Barrelfish. |
The goal of this article is to guide you through compiling and running Barrelfish inside QEMU, and to write and run programs on Barrelfish itself. The instructions below assume you are using a recent version of Linux.
Requirements
Barrelfish requires the following tools to compile correctly:
- GCC 4.x
- 4.4.5 and 4.5.2 are known to work. However, 4.4.5 throws compile warnings when building the current release as it does not support flags used by the Makefile, so 4.5.x is recommended.
- GNU binutils 2.19 and 2.20 are known to work
- GNU make
- GHC 6.10 or 6.12.2 and Parsec 2.1
- earlier versions of GHC are unsupported. GHC 6.12.1 has a known bug and is unable to build our tools
Getting Barrelfish
First we need to get the latest version of Barrelfish from the mercurial repository. Use the following command:
hg clone http://hg.barrelfish.org
or, if you are using an HTTP proxy:
hg --config http_proxy.host=ipOfYourProxyServer:portOfYourProxyServer --config http_proxy.user=user --config http_proxy.passwd=password clone http://hg.barrelfish.org
Configuring
Once you have cloned the repository, cd into it, create a build directory, and enter it:
cd hg.barrelfish.org mkdir build cd build
Then create the required makefile:
../hake/hake.sh -s .. -a x86_64
or, if you wish to build the 32-bit version:
../hake/hake.sh -s .. -a x86_32
Note: If you get the following error:
../hake/Main.hs:369:25: Not in scope: data constructor `Opt_DeriveDataTypeable'
Apply the following patch to hake/Main.hs: Main.hs.patch
Compiling
Now we can build Barrelfish:
make
To speed things up you can specify a number of jobs. This should be roughly the same as the number of cores, so on a 4-core machine you could use:
make -j 4
Once that has completed, you can issue the following command to run Barrelfish on QEMU:
make sim
To allocate more cores to QEMU, instead of the default 2, you can edit the symbolic_targets.mk file in the build directory. Do this by editing the QEMU_CMD line for the architecture you've chosen for Barrelfish.