1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
This is a project to build a small cloud image that has useful tools and
function for debugging or developing cloud infrastructure.
To use it, you would do something like:
* download buildroot and setup environment
$ br_ver="2011.08"
$ wget http://buildroot.uclibc.org/downloads/buildroot-${br_ver}.tar.gz
$ tar -xvf buildroot-${br_ver}.tar.gz
$ ln -snf buildroot-${br_ver} buildroot/
$ mkdir output download
* Build buildroot for a given arch
$ make ARCH=i386 OUT_D=$PWD/output/i386
This will do a full buildroot build, which will take a while. The output
that CirrOS is interested in is output/i386/rootfs.tar.
That file is the full buildroot filesystem, and is used as input for
subsequent steps here.
* Download a kernel to use.
The kernel input to bundle must be in deb format. The ubuntu '-virtual'
kernel is used as a starting point.
$ ARCH=i386
$ xarch=$ARCH; [ "$xarch" = "x86_64" ] && xarch="amd64"
$ url="http://launchpad.net/ubuntu/+archive/primary/+files/linux-image-3.0.0-12-virtual_3.0.0-12.20_$xarch.deb"
$ [ "$ARCH" = "arm" ] && url=https://launchpad.net/ubuntu/+archive/primary/+files/linux-image-3.0.0-12-omap_3.0.0-12.20_armel.deb
$ wget "$url" -O "download/${url##*/}"
$ kernel_deb="download/${url##*/}"
* build disk images using bin/bundle
$ sudo ./bin/bundle -v output/$ARCH/rootfs.tar "$kernel_deb" output/$ARCH/images
* Then, test using the images
$ kvm -drive file=disk.img,if=virtio -curses
$ kvm file=blank.img,if=virtio -curses \
-kernel kernel -initrd initrd -drive -append "debug-initrd"
|