TinyCore_OVS
dswd edited this page Mar 26, 2014
·
19 revisions
-
Download CorePlus.iso
$> wget http://distro.ibiblio.org/tinycorelinux/5.x/x86/release/CorePlus-current.iso
-
Create an empty qcow2 drive
$> qemu-img create -f qcow2 tinycore.qcow2 10G
-
Boot TinyCore
$> kvm -hda tinycore.qcow2 -cdrom CorePlus-current.iso -boot d -m 200
- Select default boot mode
- Install TinyCore
- Select installer from bottom menu
- 1st screen: "Frugal", "Whole disk", "sda"
- 2nd screen: "ext4"
- 3rd screen: "kmap=qwertz/de-latin1-nodeadkeys superuser"
- 4th screen: "Core only", "Non-US keyboard layout support"
- Shutdown TinyCore after installation
-
Boot installed system
$> kvm -hda tinycore.qcow2 -m 1000
-
Prepare build environment
KVM:$> cd /root; sudo su tc KVM:$> tce-load -wi compiletc perl5 autoconf automake openssl-1.0.0-dev linux-kernel-sources-env KVM:$> linux-kernel-sources-env.sh
-
Build OpenVSwitch extension
KVM:$> cd /root; sudo su tc KVM:$> wget http://openvswitch.org/releases/openvswitch-1.9.3.tar.gz KVM:$> tar -xzvf openvswitch-1.9.3.tar.gz KVM:$> cd openvswitch-1.9.3 KVM:$> ./boot.sh KVM:$> ./configure --with-linux=/lib/modules/`uname -r`/build KVM:$> make KVM:$> mkdir /root/openvswitch KVM:$> make DESTDIR=/root/openvswitch PREFIX=/ install KVM:$> sudo make modules_install KVM:$> cd /root/openvswitch KVM:$> mkdir -p lib/modules/`uname -r`/extra/ KVM:$> cp -a /lib/modules/`uname -r`/extra/*.ko lib/modules/`uname -r`/extra/ KVM:$> cd /root KVM:$> tce-load -wi squashfs-tools-4.x KVM:$> wget http://tcztools.googlecode.com/hg/tcztools.tcz KVM:$> tce-load -i tcztools KVM:$> cd /root; sudo su KVM:$> echo /mnt/sda1/tce > /opt/.tce_dir KVM:$> cat > openvswitch.tcz.info <<EOF Title: openvswitch.tcz Description: openvswitch Version: 1.9.3 Author: Many Original-site: http://www.openvswitch.org Copying-policy: Apache 2.0 Size: ---- Extension_by: [NAME] Comments: Built for TC 5.2 EOF KVM:$> tcz-pack openvswitch KVM:$> cd /root; sudo su tc KVM:$> tce-load -wi dropbear KVM:$> scp openvswitch.tcz* /mnt/sda1/tce/optional/openvswitch.tcz* USER@HOST:PATH
-
Build bridge-utils extension
KVM:$> cd /root; sudo su tc KVM:$> wget http://sourceforge.net/projects/bridge/files/bridge/bridge-utils-1.5.tar.gz KVM:$> tar-xzvf bridge-utils-1.5.tar.gz KVM:$> cd bridge-utils-1.5 KVM:$> sed -i 's/<linux\/if.h>/<linux\/if.h>\n#include <linux\/in6.h>/g' libbridge/libbridge.h KVM:$> autoconf KVM:$> ./configure KVM:$> make KVM:$> mkdir -p /root/bridge-utils KVM:$> make DESTDIR=/root/bridge-utils install KVM:$> cd /root KVM:$> cat > bridge-utils.tcz.info <<EOF Title: bridge-utils.tcz Description: bridge-utils Version: 1.5 Author: Many Original-site: http://sourceforge.net/projects/bridge Copying-policy: GPL 2.0 Size: ---- Extension_by: [NAME] EOF KVM:$> tcz-pack bridge-utils KVM:$> scp bridge-utils.tcz* /mnt/sda1/tce/optional/bridge-utils.tcz* USER@HOST:PATH
-
Build tunctl extension
KVM:$> cd /root; sudo su tc KVM:$> wget http://downloads.sourceforge.net/project/tunctl/tunctl/1.5/tunctl-1.5.tar.gz KVM:$> tar-xzvf tunctl-1.5.tar.gz KVM:$> cd tunctl-1.5 KVM:$> touch tunctl.8 KVM:$> make KVM:$> mkdir -p /root/tunctl KVM:$> make DESTDIR=/root/tunctl install KVM:$> cd /root KVM:$> cat > tunctl.tcz.info <<EOF Title: tunctl.tcz Description: tunctl Version: 1.5 Author: Many Original-site: http://sourceforge.net/projects/tunctl Copying-policy: GPL 2.0 Size: ---- Extension_by: [NAME] EOF KVM:$> tcz-pack tunctl KVM:$> scp tunctl.tcz* /mnt/sda1/tce/optional/tunctl.tcz* USER@HOST:PATH
-
Create a new qcow2 image
$> qemu-img create -f qcow2 openvswitch.qcow2 100M
-
Boot TinyCore
$> kvm -hda openvswitch.qcow2 -cdrom CorePlus-current.iso -boot d -m 200
- Select default boot mode
- Install TinyCore
- Select installer from bottom menu
- 1st screen: "Frugal", "Whole disk", "sda"
- 2nd screen: "ext4"
- 3rd screen: "kmap=qwertz/de-latin1-nodeadkeys superuser"
- 4th screen: "Core only", "Non-US keyboard layout support"
- Shutdown TinyCore after installation
-
Boot installed system
$> kvm -hda openvswitch.qcow2 -m 100
-
Install some usefull packets
KVM:$> cd /root; sudo su tc KVM:$> tce-load -wi nano dropear openssl-1.0.0 net-tools ipv6-3.8.13-tinycore KVM:$> scp USER@HOST:PATH/{openvswitch,bridge-utils,tunctl}.tcz* /mnt/sda1/tce/optional KVM:$> echo >> /mnt/sda1/tce/onboot.lst <<EOF tunctl.tcz bridge-utils.tcz openvswitch.tcz EOF
-
Create a startup script
KVM:$> cat > /opt/localboot.sh <<EOF #!/bin/sh # put other system startup commands here modprobe openvswitch modprobe 8021q modprobe ipv6 export PATH="$PATH:/usr/local/sbin:/usr/local/bin" if ! [ -f /usr/local/etc/openvswitch/conf.db ]; then ovsdb-tool create fi ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,manager_options --private-key=db:SSL,private_key --certificate=db:SSL,certificate --bootstrap-ca-cert=db:SSL,ca_cert --pidfile --detach ovs-vsctl --no-wait init ovs-vswitchd --pidfile --detach sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv6.conf.all.forwarding=1 if ! $(ovs-vsctl list-br | fgrep br0 >/dev/null); then ovs-vsctl add-br br0 for path in /proc/sys/net/ipv4/conf/eth*; do iface=$(basename $path) ovs-vsctl add-port br0 $iface done ovs-vsctl set-controller br0 ptcp:6633 fi EOF filetool.sh -b halt
-
Compress the image
$> qemu-img convert -c -O qcow2 openvswitch.qcow2 openvswitch-compressed.qcow2