mirror of
https://github.com/GNS3/gns3-registry.git
synced 2025-06-17 23:08:19 +00:00
Ostinato VM with GUI
This commit is contained in:
132
packer/tinycore-linux/scripts/ostinato-drone.sh
Normal file
132
packer/tinycore-linux/scripts/ostinato-drone.sh
Normal file
@ -0,0 +1,132 @@
|
||||
set -e
|
||||
set -x
|
||||
|
||||
# setup environment
|
||||
. /etc/profile
|
||||
. /etc/init.d/tc-functions
|
||||
getMirror
|
||||
|
||||
# load qt-4.x-base without the X dependecies
|
||||
# alternatively a "tce-load -wi qt-4.x-base" loads it with all dependecies
|
||||
wget -P /mnt/sda1/tce/optional $MIRROR/qt-4.x-base.tcz
|
||||
wget -P /mnt/sda1/tce/optional $MIRROR/qt-4.x-base.tcz.md5.txt
|
||||
touch /mnt/sda1/tce/optional/qt-4.x-base.tcz.dep
|
||||
tce-load -i /mnt/sda1/tce/optional/qt-4.x-base.tcz
|
||||
|
||||
# load the remaining dependencies for ostinato
|
||||
tce-load -wi qt-4.x-base
|
||||
tce-load -wi qt-4.x-script
|
||||
tce-load -wi glib2
|
||||
tce-load -wi openssl
|
||||
tce-load -wi libpcap
|
||||
|
||||
# load also iperf
|
||||
tce-load -wi iperf3
|
||||
|
||||
# change tcedir to ram disk
|
||||
mv /etc/sysconfig/tcedir /etc/sysconfig/tcedir.hd
|
||||
ln -s /tmp/tce /etc/sysconfig/tcedir
|
||||
|
||||
# setup compile environment
|
||||
tce-load -wi compiletc
|
||||
tce-load -wi squashfs-tools
|
||||
tce-load -wi curl
|
||||
export CFLAGS="-march=i486 -mtune=i686 -O2"
|
||||
export CXXFLAGS="-march=i486 -mtune=i686 -O2"
|
||||
export LDFLAGS="-Wl,-O1"
|
||||
|
||||
# compile protobuf
|
||||
curl -L -O https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
|
||||
tar xfz protobuf-2.6.1.tar.gz
|
||||
cd protobuf-2.6.1
|
||||
./configure --prefix=/usr/local
|
||||
make
|
||||
sudo make install
|
||||
sudo rm /usr/local/lib/libprotobuf.so
|
||||
cd ..
|
||||
rm -rf protobuf*
|
||||
|
||||
# compile ostinato
|
||||
tce-load -wi qt-4.x-dev
|
||||
tce-load -wi libpcap-dev
|
||||
ver=`curl -sI https://bintray.com/pstavirs/ostinato/ostinato-src/_latestVersion | sed -n '/Location:/ {s%.*/ostinato-src/%%;s%/view.*%%;p;}'`
|
||||
curl -k -L -O https://bintray.com/artifact/download/pstavirs/ostinato/ostinato-src-$ver.tar.gz
|
||||
tar xfz ostinato-src-$ver.tar.gz
|
||||
cd ostinato-$ver
|
||||
# patch only useful for ostinato <= 0.7.1
|
||||
patch -p0 <<'EOF'
|
||||
--- server/pcapport.cpp.orig 2015-02-24 08:38:33.000000000 +0000
|
||||
+++ server/pcapport.cpp 2015-02-25 09:58:38.943383048 +0000
|
||||
@@ -696,7 +696,8 @@
|
||||
|
||||
while (curTicks.QuadPart < tgtTicks.QuadPart)
|
||||
QueryPerformanceCounter(&curTicks);
|
||||
-#elif defined(Q_OS_LINUX)
|
||||
+// #elif defined(Q_OS_LINUX)
|
||||
+#elif 0
|
||||
struct timeval delay, target, now;
|
||||
|
||||
//qDebug("usec delay = %ld", usec);
|
||||
EOF
|
||||
qmake -config release "QMAKE_CXXFLAGS+=$CXXFLAGS"
|
||||
# ostinato >= 0.8 supports building of a component
|
||||
# make server
|
||||
# sudo INSTALL_ROOT=/tmp/ostinato make server-install_subtargets
|
||||
make
|
||||
sudo INSTALL_ROOT=/tmp/ostinato make install
|
||||
sudo rm /tmp/ostinato/usr/local/bin/ostinato
|
||||
sudo chown -R root:root /tmp/ostinato
|
||||
sudo chmod +s /tmp/ostinato/usr/local/bin/drone
|
||||
cd ..
|
||||
mksquashfs /tmp/ostinato ostinato-drone.tcz
|
||||
md5sum ostinato-drone.tcz > ostinato-drone.tcz.md5.txt
|
||||
echo -e "qt-4.x-base.tcz\nqt-4.x-script.tcz\nlibpcap.tcz" > ostinato-drone.tcz.dep
|
||||
mv ostinato-drone.tcz* /mnt/sda1/tce/optional/
|
||||
echo ostinato-drone.tcz >> /mnt/sda1/tce/onboot.lst
|
||||
sudo rm -rf /tmp/ostinato
|
||||
rm -rf ostinato*
|
||||
|
||||
# ostinato configuration file
|
||||
mkdir -p .config/Ostinato
|
||||
cat > .config/Ostinato/drone.ini <<'EOF'
|
||||
[General]
|
||||
RateAccuracy=Low
|
||||
[PortList]
|
||||
Include=eth*
|
||||
Exclude=eth0
|
||||
EOF
|
||||
|
||||
# change tcedir back to hard disk
|
||||
rm -f /etc/sysconfig/tcedir
|
||||
mv /etc/sysconfig/tcedir.hd /etc/sysconfig/tcedir
|
||||
|
||||
# disable automatic interface configuration with dhcp
|
||||
sudo sed -i -e '/label .*core/,/append / s/\(append .*\)/\1 nodhcp/' /mnt/sda1/boot/extlinux/extlinux.conf
|
||||
|
||||
# add startup script for ostinato
|
||||
cat >> /opt/bootlocal.sh <<'EOF'
|
||||
|
||||
# Boot parameter "nodhcp": network interfaces are not yet configured
|
||||
if grep -q -w nodhcp /proc/cmdline; then
|
||||
# This waits until all devices have registered
|
||||
/sbin/udevadm settle --timeout=10
|
||||
|
||||
# configure eth0 with DHCP
|
||||
/sbin/udhcpc -b -i eth0 -x hostname:$(/bin/hostname) -p /var/run/udhcpc.eth0.pid >/dev/null 2>&1 &
|
||||
|
||||
# alternatively configure static interface address and route
|
||||
#ifconfig eth0 x.x.x.x netmask 255.255.255.0 up
|
||||
#route add default gw y.y.y.y
|
||||
|
||||
# activate other eth devices
|
||||
NETDEVICES="$(awk -F: '/eth[1-9][0-9]*:/{print $1}' /proc/net/dev 2>/dev/null)"
|
||||
for DEVICE in $NETDEVICES; do
|
||||
ifconfig $DEVICE mtu 9000 up
|
||||
done
|
||||
fi
|
||||
|
||||
# start ostinato drone
|
||||
HOME=/home/gns3 drone < /dev/null > /var/log/ostinato-drone.log 2>&1 &
|
||||
EOF
|
||||
|
||||
exit 0
|
149
packer/tinycore-linux/scripts/ostinato.sh
Normal file
149
packer/tinycore-linux/scripts/ostinato.sh
Normal file
@ -0,0 +1,149 @@
|
||||
set -e
|
||||
set -x
|
||||
|
||||
# setup environment
|
||||
. /etc/profile
|
||||
|
||||
# Install the GUI
|
||||
tce-load -wi fltk-1.3
|
||||
tce-load -wi flwm
|
||||
tce-load -wi Xorg-7.7
|
||||
tce-load -wi wbar
|
||||
tce-load -wi Xprogs
|
||||
tce-load -wi Xlibs
|
||||
tce-load -wi aterm
|
||||
|
||||
# set X resolution to 800x600
|
||||
cat > 99-resolution.conf <<'EOF'
|
||||
Section "Screen"
|
||||
Identifier "Screen0"
|
||||
DefaultDepth 24
|
||||
SubSection "Display"
|
||||
Modes "800x600"
|
||||
EndSubSection
|
||||
EndSection
|
||||
EOF
|
||||
sudo mv 99-resolution.conf /usr/local/share/X11/xorg.conf.d/
|
||||
echo usr/local/share/X11/xorg.conf.d >> /opt/.filetool.lst
|
||||
|
||||
# load the dependencies for ostinato
|
||||
tce-load -wi qt-4.x-base
|
||||
tce-load -wi qt-4.x-script
|
||||
tce-load -wi libpcap
|
||||
|
||||
# load also iperf
|
||||
tce-load -wi iperf3
|
||||
|
||||
# change tcedir to ram disk
|
||||
mv /etc/sysconfig/tcedir /etc/sysconfig/tcedir.hd
|
||||
ln -s /tmp/tce /etc/sysconfig/tcedir
|
||||
|
||||
# setup compile environment
|
||||
tce-load -wi compiletc
|
||||
tce-load -wi squashfs-tools
|
||||
tce-load -wi curl
|
||||
export CFLAGS="-march=i486 -mtune=i686 -O2"
|
||||
export CXXFLAGS="-march=i486 -mtune=i686 -O2"
|
||||
export LDFLAGS="-Wl,-O1"
|
||||
|
||||
# compile protobuf
|
||||
curl -L -O https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
|
||||
tar xfz protobuf-2.6.1.tar.gz
|
||||
cd protobuf-2.6.1
|
||||
./configure --prefix=/usr/local
|
||||
make
|
||||
sudo make install
|
||||
sudo rm /usr/local/lib/libprotobuf.so
|
||||
cd ..
|
||||
rm -rf protobuf*
|
||||
|
||||
# compile ostinato
|
||||
tce-load -wi qt-4.x-dev
|
||||
tce-load -wi libpcap-dev
|
||||
ver=`curl -sI https://bintray.com/pstavirs/ostinato/ostinato-src/_latestVersion | sed -n '/Location:/ {s%.*/ostinato-src/%%;s%/view.*%%;p;}'`
|
||||
curl -k -L -O https://bintray.com/artifact/download/pstavirs/ostinato/ostinato-src-$ver.tar.gz
|
||||
tar xfz ostinato-src-$ver.tar.gz
|
||||
cd ostinato-$ver
|
||||
# patch only useful for ostinato <= 0.7.1
|
||||
patch -p0 <<'EOF'
|
||||
--- server/pcapport.cpp.orig 2015-02-24 08:38:33.000000000 +0000
|
||||
+++ server/pcapport.cpp 2015-02-25 09:58:38.943383048 +0000
|
||||
@@ -696,7 +696,8 @@
|
||||
|
||||
while (curTicks.QuadPart < tgtTicks.QuadPart)
|
||||
QueryPerformanceCounter(&curTicks);
|
||||
-#elif defined(Q_OS_LINUX)
|
||||
+// #elif defined(Q_OS_LINUX)
|
||||
+#elif 0
|
||||
struct timeval delay, target, now;
|
||||
|
||||
//qDebug("usec delay = %ld", usec);
|
||||
EOF
|
||||
qmake -config release "QMAKE_CXXFLAGS+=$CXXFLAGS"
|
||||
make
|
||||
sudo INSTALL_ROOT=/tmp/ostinato make install
|
||||
sudo mkdir -p /tmp/ostinato/usr/local/share/applications
|
||||
cat > ostinato.desktop <<'EOF'
|
||||
[Desktop Entry]
|
||||
Name=Ostinato
|
||||
Exec=ostinato
|
||||
Type=Application
|
||||
OnlyShowIn=Old;
|
||||
Categories=System;
|
||||
EOF
|
||||
sudo mv ostinato.desktop /tmp/ostinato/usr/local/share/applications/
|
||||
sudo chown -R root:root /tmp/ostinato
|
||||
sudo chmod +s /tmp/ostinato/usr/local/bin/drone
|
||||
cd ..
|
||||
mksquashfs /tmp/ostinato ostinato.tcz
|
||||
md5sum ostinato.tcz > ostinato.tcz.md5.txt
|
||||
echo -e "qt-4.x-base.tcz\nqt-4.x-script.tcz\nlibpcap.tcz" > ostinato.tcz.dep
|
||||
mv ostinato.tcz* /mnt/sda1/tce/optional/
|
||||
echo ostinato.tcz >> /mnt/sda1/tce/onboot.lst
|
||||
sudo rm -rf /tmp/ostinato
|
||||
rm -rf ostinato*
|
||||
|
||||
# ostinato configuration file
|
||||
mkdir -p .config/Ostinato
|
||||
cat > .config/Ostinato/drone.ini <<'EOF'
|
||||
[General]
|
||||
RateAccuracy=Low
|
||||
[PortList]
|
||||
Include=eth*
|
||||
Exclude=eth0
|
||||
EOF
|
||||
|
||||
# change tcedir back to hard disk
|
||||
rm -f /etc/sysconfig/tcedir
|
||||
mv /etc/sysconfig/tcedir.hd /etc/sysconfig/tcedir
|
||||
|
||||
# disable automatic interface configuration with dhcp
|
||||
sudo sed -i -e '/label .*core/,/append / s/\(append .*\)/\1 nodhcp/' /mnt/sda1/boot/extlinux/extlinux.conf
|
||||
|
||||
# add startup script for ostinato
|
||||
cat >> /opt/bootlocal.sh <<'EOF'
|
||||
|
||||
# Boot parameter "nodhcp": network interfaces are not yet configured
|
||||
if grep -q -w nodhcp /proc/cmdline; then
|
||||
# This waits until all devices have registered
|
||||
/sbin/udevadm settle --timeout=10
|
||||
|
||||
# configure eth0 with DHCP
|
||||
/sbin/udhcpc -b -i eth0 -x hostname:$(/bin/hostname) -p /var/run/udhcpc.eth0.pid >/dev/null 2>&1 &
|
||||
|
||||
# alternatively configure static interface address and route
|
||||
#ifconfig eth0 x.x.x.x netmask 255.255.255.0 up
|
||||
#route add default gw y.y.y.y
|
||||
|
||||
# activate other eth devices
|
||||
NETDEVICES="$(awk -F: '/eth[1-9][0-9]*:/{print $1}' /proc/net/dev 2>/dev/null)"
|
||||
for DEVICE in $NETDEVICES; do
|
||||
ifconfig $DEVICE mtu 9000 up
|
||||
done
|
||||
fi
|
||||
|
||||
# start ostinato drone
|
||||
HOME=/home/gns3 drone < /dev/null > /var/log/ostinato-drone.log 2>&1 &
|
||||
EOF
|
||||
|
||||
exit 0
|
Reference in New Issue
Block a user