Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ffgan/cirros

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a project to build a small cloud image that has useful tools and
function for debugging or developing cloud infrastructure.

The following works on Ubuntu 10.04 or 12.04 LTS.

To use it, you would do something like:
 * get some build dependencies:
   $ sudo apt-get -y install bison flex texinfo build-essential gettext ncurses-dev unzip bzr qemu-kvm quilt wget rsync

 * bzr branch lp:cirros
 * cd cirros

 * download buildroot and setup environment
   $ br_ver="2012.05"
   $ mkdir -p ../download
   $ ln -snf ../download download
   $ ( cd download && wget http://buildroot.uclibc.org/downloads/buildroot-${br_ver}.tar.gz )
   $ tar -xvf download/buildroot-${br_ver}.tar.gz
   $ ln -snf buildroot-${br_ver} buildroot

 * optionally update src/etc/ssl/certs/ca-certificates.crt
   This is not required, but can be done to make sure its up to date.
   Doing so requires cvs.
   # ./bin/mkcabundle > src/etc/ssl/certs/ca-certificates.crt

 * apply any local cirros patches to buildroot
   ( cd buildroot && QUILT_PATCHES=$PWD/../patches-buildroot quilt push -a )

 * download the buildroot sources
   $ make ARCH=i386 br-source

 * Build buildroot for a given arch
   # ARCH should be set to 'i386', 'x86_64' or 'arm'
   $ 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.

   $ kver="3.2.0-80.116"
   $ burl="https://launchpad.net/ubuntu/+archive/primary/+files/linux-image"
   $ for arch in i386 x86_64 arm powerpc; do
     xarch=$arch; flav="virtual"
     [ "$arch" = "x86_64" ] && xarch="amd64";
     [ "$arch" = "arm" ] && xarch="armel" && flav="omap"
     [ "$arch" = "powerpc" ] && flav="powerpc64-smp"
     url="$burl-${kver%.*}-${flav}_${kver}_${xarch}.deb"
     wget "$url" -O download/${url##*/}
     ln -sf ${url##*/} download/kernel-${arch}.deb
   done

 * build disk images using bin/bundle
   $ sudo ./bin/bundle -v --arch=$ARCH output/$ARCH/rootfs.tar \
      download/kernel-$ARCH.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"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 93.3%
  • Awk 4.4%
  • Makefile 1.5%
  • Other 0.8%