diff options
author | Sebastian Schmelzer | 2010-09-02 17:50:49 +0200 |
---|---|---|
committer | Sebastian Schmelzer | 2010-09-02 17:50:49 +0200 |
commit | 416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5 (patch) | |
tree | 4715f7d742fec50931017f38fe6ff0a89d4ceccc /os-plugins/plugins/qemukvm/files/run-virt.include | |
parent | Fix for the problem reported on the list (sed filter forgotten for the (diff) | |
download | core-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.tar.gz core-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.tar.xz core-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.zip |
change dir structure
Diffstat (limited to 'os-plugins/plugins/qemukvm/files/run-virt.include')
-rw-r--r-- | os-plugins/plugins/qemukvm/files/run-virt.include | 306 |
1 files changed, 0 insertions, 306 deletions
diff --git a/os-plugins/plugins/qemukvm/files/run-virt.include b/os-plugins/plugins/qemukvm/files/run-virt.include deleted file mode 100644 index 02c70469..00000000 --- a/os-plugins/plugins/qemukvm/files/run-virt.include +++ /dev/null @@ -1,306 +0,0 @@ -# run-virt.include -# ----------------------------------------------------------------------------- -# Copyright (c) 2009..2010 - RZ Uni Freiburg -# Copyright (c) 2009..2010 - OpenSLX GmbH -# -# This program/file is free software distributed under the GPL version 2. -# See http://openslx.org/COPYING -# -# If you have any feedback please consult http://openslx.org/feedback and -# send your feedback to feedback@openslx.org -# -# General information about OpenSLX can be found at http://openslx.org -# ----------------------------------------------------------------------------- -# run-virt.include -# - Include script for running the QEMU/Linux KVM virtual machine on an -# OpenSLX client via the run-virt.sh or run-vmgrid.sh -################################################################################ - -################################################################################ -### Include general configuration -################################################################################ -if [ -f ${OPENSLX_DEFAULT_CONFDIR}/plugins/${self}/${self}.conf ]; then - . ${OPENSLX_DEFAULT_CONFDIR}/plugins/${self}/${self}.conf -else - writelog "Problems reading config file of ${self} plugin" - # TODO: exit wenn conf wichtig - #exit 1 -fi - -################################################################################ -### Declaration of default variables -################################################################################ - -PLUGINCONFQK="${PLUGINCONFROOT}/${self}" -PLUGINDIRQK=${OPENSLX_DEFAULT_DIR}/plugin-repo/${self} -# create TMPDIR for all users -mkdir -m 1777 /tmp/${self} 2>/dev/null -# TMPDIR -QKTMPDIR="/tmp/${self}/${USER}/${VM_ID}" -# define dirs and files which can be removed after exit, be carefull! -RMDIRS="${QKTMPDIR}" -rm -rf ${RMDIRS} 2>/dev/null -mkdir -m 1777 -p ${QKTMPDIR} 2>/dev/null -# vmpath is the path to the vm, here an image (img|qcow*|vmdk) -diskfile=${vmpath} - -# check the file type -if echo ${imgname} | grep -iE "img|qcow|vmdk" >/dev/null 2>&1; then - imgtype=$(echo ${imgname##*.} | tr [a-z] [A-Z]) -else - writelog "${imgname} is not a valid image type (img|qcow*|vmdk), exiting!" - exit 1 -fi - -# hot keys ALT+CTRL+SHIFT -VIRTCMDOPTS="${VIRTCMDOPTS} -alt-grab" - -# display name, remove blanks because of cmdline problems -displayname=$(echo ${displayname} | sed -e "s, ,-,g") -VIRTCMDOPTS="${VIRTCMDOPTS} -name ${displayname}" - -writelog "Directories:" -writelog "\tTMPDIR:\t\t\t$QKTMPDIR" -writelog "Diskimage:" -writelog "\tDisk type:\t\t$imgtype" -writelog "\tDisk file:\t\t$diskfile" - -################################################################################ -### Hardware checks -################################################################################ - -# memory part equal to vmware plugin -# percentage of memory to use for virtualbox in standard case -if [ -n "${forcemem}" ]; then - mem="${forcemem}" -else - permem=30 - if [ "${totalmem}" -ge "1600" ]; then - permem=40 - fi -# # check if /tmp is on harddisk -# if grep -qe "/dev/.* /tmp " /proc/mounts ; then -# permem=60 -# id44="1" -# # Hack, if more than 2,5G RAM use 40% of Ram and write vmem into Ram as well -# # (40% vmware | 40% confdir(vmem...) | 20% host -# # VMplayer 2+ issue -# # TODO: makes this sense for vbox? -# #if [ "${totalmem}" -ge "2500" ]; then -# #permem=40 -# #rmdir ${snapshotdir} -# #snapshotdirold=${snapshotdir} -# #snapshotdir=/dev/shm/${self}/${USER}/${VM_ID} -# #mkdir -p ${snapshotdir} -# #ln -sf ${snapshotdir} ${snapshotdirold} -# #fi -# fi - mem=$(expr ${totalmem} / 100 \* ${permem}) - if [ "${id44}" = "1" ]; then - memhost=$(expr ${totalmem} - ${mem}) - else - memhost=$(expr ${totalmem} - ${mem} - ${mem}) - fi - # static first - permem=50 - mem=$(expr ${totalmem} / 100 \* ${permem}) - if [ "${mem}" -lt "256" ] || [ "${memhost}" -lt "256" ]; then - writelog "Memory out of range: ${mem} MB (guest) / ${memhost} MB (host)!" - writelog "Min. 256 MB for host and guest!" - exit 1 - fi -fi - -VIRTCMDOPTS="${VIRTCMDOPTS} -m ${mem}" - -# network adaptor alternatives: rtl8139, pcnet, e1000 -network_card=${network_card:=pcnet} -VIRTCMDOPTS="${VIRTCMDOPTS} -net nic,macaddr=${macaddr},model=${network_card}" - -# define net kind and apply script -qemu_ifscr="script=${PLUGINCONFQK}/ifup,downscript=${PLUGINCONFQK}/ifdown" -case "${network_kind}" in - bridge*) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tapbridge${VM_ID},${qemu_ifscr}" - sudo /opt/openslx/uclib-rootfs/sbin/tunctl -t tapbridge${VM_ID} -u ${USER} \ - >/dev/null 2>&1 - sudo /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 tapbridge${VM_ID} - POSTRUN="/opt/openslx/uclib-rootfs/sbin/tunctl -d tapbridge${VM_ID}" - ;; - nat) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tapnat${VM_ID},${qemu_ifscr}" - sudo /opt/openslx/uclib-rootfs/sbin/tunctl -t tapnat${VM_ID} -u ${USER} \ - >/dev/null 2>&1 - sudo /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 tapnat${VM_ID} - POSTRUN="/opt/openslx/uclib-rootfs/sbin/tunctl -d tapnat${VM_ID}" - ;; - host*) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=taphost${VM_ID},${qemu_ifscr}" - sudo /opt/openslx/uclib-rootfs/sbin/tunctl -t taphost${VM_ID} -u ${USER} \ - >/dev/null 2>&1 - sudo /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 taphost${VM_ID} - POSTRUN="/opt/openslx/uclib-rootfs/sbin/tunctl -d taphost${VM_ID}" - ;; - *) - network_kind="user" - VIRTCMDOPTS="${VIRTCMDOPTS} -net user" - ;; -esac - -# translate boot, use if set else set to HardDisk -if [ -n "${boot}" ]; then - case ${boot} in - n*) # usually support for a,c,d,n, stands for Floppy, HD, CD-ROM, Network - boot="n" - # TODO: does not work yet, can be removed if tap1 solution better - if [ "${network_kind}" = "user" ] && [ -n "${virtualbox_tftpdir}" ]; then - VIRTCMDOPTS="${VIRTCMDOPTS},tftp=${virtualbox_tftpdir}" - fi - ;; - # later maybe c|disk|hd*|sd*) for HD and d|cd*) for CD-ROM - *) - boot="c" - ;; - esac -else - boot="c" -fi - -# external GUI port -vncport="590${VM_ID}" - -# TODO: most of the following does not make much sense yet ... -# virtual fd/cd/dvd and drive devices, floppy b: for configuration -# if $floppy_0 from run-virt.include set then fdtest="TRUE" -fdtest= -fdtest=${floppy_0:+"TRUE"} -# if $fdtest not set floppy0="FALSE", else "TRUE" -floppy0=${fdtest:-"FALSE"} -floppy1="TRUE" -floppy1name="/var/lib/virt/vmchooser/loopimg/fd.img" -# if $cdrom_0 from run-virt.include set then cdtest="TRUE" -cdtest= -cdtest=${cdrom_0:+"TRUE"} -# if $cdtest not set cdrom0="FALSE", else "TRUE" -cdrom0=${cdtest:-"FALSE"} -# if $cdrom_1 from run-virt.include set then cdtest="TRUE" -cdtest= -cdtest=${cdrom_1:+"TRUE"} -# if $cdtest not set cdrom1="FALSE", else "TRUE" -cdrom1=${cdtest:-"FALSE"} -# ide is expected default, test for the virtual disk image type should -# be done while creating the runscripts ... -ide="TRUE" -hddrv="ide" - -# TODO: nur bei vmchooser -#VIRTCMDOPTS="${VIRTCMDOPTS} -fda /dev/fd0" -#VIRTCMDOPTS="${VIRTCMDOPTS} -fdb ${floppy1name}" - -# audio -VIRTCMDOPTS="${VIRTCMDOPTS} -soundhw all" - -# serial -#VIRTCMDOPTS="${VIRTCMDOPTS} -serial /dev/ttyS0" - -writelog "Virtual Hardware:" -writelog "\tGuest RAM:\t\t${mem} MB" -# echo nur wenn memhost gesetzt -[ -n "${memhost}" ] && writelog "\tHost RAM:\t\t${memhost} MB" -writelog "\tMAC address:\t\t$macaddr" -writelog "\tNetwork card:\t\t${network_card}" -writelog "\tNetwork kind:\t\t${network_kind}" -#writelog "\tCD-ROM1:\t${cdrom0}" -#writelog "\tCD-ROM2:\t${cdrom1}" -#writelog "\tFloppy_A:\t${floppy0}" -#writelog "\tFloppy_B:\t${floppy1}" -#writelog "\tShared Folders 'home':\t/home/${USER}" - -################################################################################ -### finally set env for run-virt.sh -################################################################################ - -# TODO: besser drive statt hda? -#-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i] -# [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off] -# [,cache=writethrough|writeback|none][,format=f][,serial=s] -# [,boot=on|off] -#-snapshot write to temporary files instead of disk image files -#-usb enable the USB driver (will be the default soon) -#-usbdevice name add the host or guest USB device 'name' -#-nographic disable graphical output and redirect serial I/Os to console -#-vga [std|cirrus|vmware|none] select video card type -#-vnc display start a VNC server on display -#-tftp dir allow tftp access to files in dir [-net user] -#-bootp file advertise file in BOOTP replies -#-no-fd-bootchk disable boot signature checking for floppy disks -#-no-acpi disable ACPI -#-kernel bzImage use 'bzImage' as kernel image -#-append cmdline use 'cmdline' as kernel command line -#-initrd file use 'file' as initial ram disk -#-serial dev redirect the serial port to char device 'dev' -#-parallel dev redirect the parallel port to char device 'dev' -#-monitor dev redirect the monitor to char device 'dev' -#-pidfile file write PID to 'file' -#-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items) -#-L path set the directory for the BIOS, VGA BIOS and keymaps -#-bios file set the filename for the BIOS -#-no-kvm disable KVM hardware virtualization -#-enable-nesting enable support for running a VM inside the VM (AMD only) -#-no-reboot exit instead of rebooting -#-no-shutdown stop before shutdown -#-loadvm [tag|id] -# start right away with a saved state (loadvm in monitor) -#-daemonize daemonize QEMU after initializing -#-kvm-shadow-memory megs set the amount of shadow pages to be allocated -#-mem-path set the path to hugetlbfs/tmpfs mounted directory, also -# enables allocation of guest memory with huge pages -#-mem-prealloc toggles preallocation of -mem-path backed physical memory -# at startup. Default is enabled. -#-option-rom rom load a file, rom, into the option ROM space -#-localtime set the real time clock to local time [default=utc] -#-startdate select initial date of the clock -#-icount [N|auto] -# enable virtual instruction counter with 2^N clock ticks per instruction -#-echr chr set terminal escape character instead of ctrl-a -#-virtioconsole c -# set virtio console -#-show-cursor show cursor - -# check for kvm modules -if [ -c /dev/kvm ]; then - for tool in kvm qemu-kvm; do - VIRTCMD=$(which ${tool} 2>/dev/null) - [ -n "$VIRTCMD" ] && break - done -else - VIRTCMD=$(which qemu 2>/dev/null) - writelog "KVM available but /dev/kvm not found!" - writelog "Trying fallback to QEMU emulation." -fi - -if [ -z "${VIRTCMD}" ]; then - writelog "No QEMU/KVM found, exiting!" - rm -rf ${RMDIRS} - exit 1 -elif [ "${VIRTCMD##*/}" = "qemu" ]; then - writelog "User space emulation:\t\t${VIRTCMD}" -else - writelog "User space virtualization:\t${VIRTCMD}" -fi - -# using snapshots -VIRTCMDOPTS="${VIRTCMDOPTS} -snapshot" - -# TODO: boot als var, -boot n, tftp... -VIRTCMDOPTS="${VIRTCMDOPTS} -boot c" - -# set headless mode -# define first, you do not want VIRTCMDOPTS from graphical start -VIRTCMDHL=${VIRTCMD} -VIRTCMDOPTSHL="${VIRTCMDOPTS} -nographic ${diskfile}" - -# graphical start -# vga std/cirrus/vmware? -#VIRTCMDOPTS="${VIRTCMDOPTS} -vga std -full-screen ${diskfile}" -VIRTCMDOPTS="${VIRTCMDOPTS} ${diskfile}" |