A fork of rustboot focusing on ARM functionality and aiming to extend it into a more fully functional kernel. Setup instructions below cribbed also from rustboot.
You need a few things to run ironkernel:
- rust-core
- Rust's
masterbranch or 0.9 release - qemu
- llvm
- binutils for arm-none-eabi
- Optionally for debugging
- gdb
- tmux
Clone this repository and update rust-core.
$ git clone https://github.com/wbthomason/ironkernel.git
$ cd ironkernel
$ git submodule update --init
### you can also pull latest rust-core:
$ git submodule foreach git pull origin masterSimply install all dependencies:
# pacman -S base-devel qemu rust llvm tmux
# yaourt -S arm-none-eabi-gcc
Note that you will want Rust 0.9 and LLVM 3.4
To set things up on OSX, do this:
Install nasm and qemu from homebrew:
$ brew install nasm
$ brew install qemuInstall binutils from source.
wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.23.2.tar.gz
tar xzvf binutils-2.23.2.tar.gz
cd binutils-2.23.2
export ARMTOOLS=~/arm-none-eabi
./configure --target=arm-none-eabi --prefix=$ARMTOOLS
make all installTo get edge Rust going, grab it from git:
$ git clone https://github.com/mozilla/rust
$ cd rust
$ ./configure
$ make && make installYou may have to make some small changes before it builds.
Namely, you may need to adjust the rust prefix in the makefile (I did). Hopefully nothing else.
To compile, simply execute make command.
To run, use:
$ make run # emulate default platform (ARM)
$ make debug # debug on arm