diff options
author | Dirk von Suchodoletz | 2009-02-24 22:46:53 +0100 |
---|---|---|
committer | Dirk von Suchodoletz | 2009-02-24 22:46:53 +0100 |
commit | 95312b3c22a909c3d90cf5e4756a7cbd6833da21 (patch) | |
tree | 98f7f05906737485577427a5f1c1bd97e97a35ee /os-plugins | |
parent | Some fixes for the new run-virt.sh system ... (diff) | |
download | core-95312b3c22a909c3d90cf5e4756a7cbd6833da21.tar.gz core-95312b3c22a909c3d90cf5e4756a7cbd6833da21.tar.xz core-95312b3c22a909c3d90cf5e4756a7cbd6833da21.zip |
Added some hints/thoughts of Volkers vbox activities ...
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2638 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins')
-rw-r--r-- | os-plugins/plugins/virtualbox/files/runvbox.hints | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/os-plugins/plugins/virtualbox/files/runvbox.hints b/os-plugins/plugins/virtualbox/files/runvbox.hints new file mode 100644 index 00000000..ebc57003 --- /dev/null +++ b/os-plugins/plugins/virtualbox/files/runvbox.hints @@ -0,0 +1,145 @@ +#!/bin/sh +# Description: Script for preparing VirtualBox environment Diskless +# Gets a xml file, reads needed information from it and +# forwards it into B drive of VirtualBox +# +# Author(s): see project authors file +# last changes uhrig, 21/10/2008 +# Copyright: (c) 2003 - 2008 - RZ Universitaet Freiburg +# +# Version: 0.0.1 +# +################################################################################ + +################################################################################ +## +## Read needed variables from XML file +## +################################################################################ +xml=$1 +# todo: change it! We need to mount it like vmware, but it could be the +# same +imgpath="/var/lib/vmware" + +# file name of the image +imagename="${imgpath}/$(grep -i "<image_name param=\"" ${xml} | awk -F "\"" '{ print $2 }')" +imagename="${imgpath}/vbox-winxppro_20gb.vdi" + +# define name for VirtualBox window. no utf8, perhaps we don't need it any +# more. else change the next two lines +#short_description=$(grep "short_description param=\"" ${xml} | sed -e "s%&.*;%; %g" | awk -F "\"" '{print $2}') +# if ${short_description} not defined use ${image_name} +#short_description=${short_description:-"${image_name}"} +#displayname=${short_description} + +# Definition of the client system +#vmostype=$(grep -i "<os param=\"" ${xml} | awk -F "\"" '{ print $2 }') + +# Definition of the network kind. we should only need: nat, hostif +network_kind=$(grep -i "<network param=\"" ${xml} | awk -F "\"" '{ print $2 }') +network_kind="nat" +# compatibility to vmware xml's +if [ ${network_kind} = "bridge" ]; then + network_kind="hostif" +else + # wrong configuration or nat, hostonly currently not supported, do we + # really need it? + network_kind="nat" +fi + +################################################################################ +## +## Prepare stuff and configure Image +## +################################################################################ + +# Don't use $HOME/.VirtualBox! +export VBOX_USER_HOME=/tmp/vbox-${USER}-$$ +# Current ID, to make sure it won't run into conflicts if started more +# as once at the same time, else delete would make the trick... +ID=$$ + +# Bind Image to VirtualBox, which won't get changed +VBoxManage registerimage disk ${imagename} -type immutable + +# Get ID of VBox Image... +diskuid="$(VBoxManage showvdiinfo ${imagename} |grep UUID|awk '{ print $2; }')" + +# Create Image and register it, so we are able to modify and start it +VBoxManage createvm -name "${ID}" -register + + +################################################################################ +## +## Modify VM +## +################################################################################ + +# Add harddisk +VBoxManage modifyvm "${ID}" -hda ${diskuid} + +## check if we have enough free memory +# get memory in MB +totalmem=$(expr $(grep -i "memtotal" /proc/meminfo | awk '{print $2}') / 1024) +# calculate memory for virtualbox +mem=$(expr ${totalmem} / 100 \* 66 / 4 \* 4) +# check memory range +memtest=${totalmem}-128 + +if [ "${mem}" -lt "128" ] || [ "${mem}" -gt "${totalmem}" ]; then + echo "\n\n" + echo "\tYour memory is out of range: ${mem} MB." + echo "\tMin. 128 MB for host and guest!" + exit 1 +fi +VBoxManage modifyvm "${ID}" -memory ${mem} + + +## look for cdrom, dvd and add them to the vm config file +for cdrs in /dev/cdrom*; do + if [ -L ${cdrs} ]; then + VBoxManage modifyvm "${ID}" -dvd host:${cdrs} + fi +done + +# Enable hardware virtualization +VBoxManage modifyvm "${ID}" -hwvirtex on + +# HDD as boot device +VBoxManage modifyvm "${ID}" -boot1 disk + +# Network settings +VBoxManage modifyvm "${ID}" -nic1 ${network_kind} +#VBoxManage modifyvm "${ID}" -nictype1 Am79C970a|aM79c973|82540em +if [ "${network_kind}" = "hostif" ]; then + VBoxManage modifyvm "${ID}" -hostifdev1 eth0 +fi +# Per default each virtual network card is assigned a random address by +# VBox at VM creation, due of this we can be sure that every mac is +# unique +# else we should use +#VBoxManage modifyvm "${ID}" -macaddress1 <mac> + +# enable audio +VBoxManage modifyvm "${ID}" -audio oss + +#TODO +#VBoxManage modifyvm "${ID}" +#VBoxManage modifyvm "${ID}" ostype <ostype> +#VBoxManage modifyvm "${ID}" vram <ram>_in_mb_of_virtual_graphic_card> +#VBoxManage modifyvm "${ID}" acpi <on|off> # acpi and i/o apic support +#VBoxManage modifyvm "${ID}" sata <on|off> # sata or ide +#VBoxManage modifyvm "${ID}" dvdpassthrough <on|off> # burn support, unstable +#VBoxManage modifyvm "${ID}" -floppy empty|uuid|filename # yes we need it +#VBoxManage modifyvm "${ID}" -floppy empty|uuid|filename # yes we need it + + + +# adjust volume amixer -q sset Master 28 unmute 2>/dev/null +amixer -q sset PCM 28 unmute 2>/dev/null +amixer -q sset Headphone 28 unmute 2>/dev/null +amixer -q sset Front 0 mute 2>/dev/null + + +# start created image +VBoxManage startvm "${ID}" -type gui |