Skip to content

Building OSv on Debian stable

dennsporcic edited this page Sep 16, 2014 · 3 revisions
  1. Install binary packages.

ant/maven needs to be installed after installing JDK7, otherwise apt will install older JDK.

su -c "apt-get update"
su -c "apt-get install build-essential libboost-all-dev autoconf libtool openjdk-7-jdk python-dpkt tcpdump autogen pkg-config libglib2.0-dev libncurses-dev git curl"
su -c "apt-get install ant maven libmaven-shade-plugin-java"
  1. Enable kernel modules.
su -c "vi /etc/modules"

Add following lines on the end of the file:

kvm_intel
vhost-net
  1. Add bridge for OSv instance.
su -c "vi /etc/network/interfaces"

Delete eth0 lines, then add following lines on the end of the file:

auto br0
iface br0 inet dhcp
	bridge_ports eth0

(This is for DHCP configuration on eth0, the configuration would be different if you are using static IP or another interface)

  1. Reboot the machine
reboot
  1. Install gcc-4.8.3 from source.
wget ftp://ftp.jaist.ac.jp/pub/GNU/gcc/gcc-4.8.3/gcc-4.8.3.tar.bz2
tar -xvpf gcc-4.8.3.tar.bz2 
cd gcc-4.8.3/
./contrib/download_prerequisites 
mkdir build
cd build
../configure --disable-multilib --program-suffix=-4.8.3 --enable-stage1-languages=c,c++ --enable-languages=c,c++ --disable-isl-version-check
make
su -c "make install"
  1. Install qemu-2.0.2 from source.
wget http://wiki.qemu-project.org/download/qemu-2.0.2.tar.bz2
tar -xvpf qemu-2.0.2.tar.bz2 
cd qemu-2.0.2/
./configure --target-list=x86_64-softmmu
make
su -c "make install"
  1. Install gdb-7.8 from source.
wget http://ftp.gnu.org/gnu/gdb/gdb-7.8.tar.gz
tar -xvjpf gdb-7.8.tar.bz2 
cd gdb-7.8/
mkdir build
cd build
../configure
make
su -c "make install"
  1. Checkout OSv from github
git clone https://github.com/cloudius-systems/osv.git
cd osv
git submodule update --init --recursive
  1. Build OSv with gcc-4.8.3
make CC=gcc-4.8.3 CXX=g++-4.8.3
  1. Run OSv with br0

'-n' option does not work on Debian stable since it doesn't have /usr/libexec/qemu-br idge-helper. '-nv' (vhost-net) works, but even if you install libvirtd, it never going to configure virbr0. Therefore we will use manually defined bridge(br0) and use it from vhost-net('-nv'). Note that vhost-net requires root privilege.

sudo ./scripts/run.py -nv -b br0
Clone this wiki locally