diff options
Diffstat (limited to 'os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm')
-rw-r--r-- | os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm b/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm index 8029102c..203a7ed3 100644 --- a/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm +++ b/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm @@ -133,11 +133,6 @@ sub installationPhase copyFile("$pluginBasePath/$file", "$pluginRepoPath/"); } chmod 0755, "$pluginRepoPath/ifup", "$pluginRepoPath/ifdown"; -# # Create kvm link -# my $kvmPath = pathOf('qemu-kvm') || pathOf('kvm') || pathOf('qemu'); -# if (defined $kvmPath) { -# linkFile($kvmPath, "$pluginRepoPath/qemukvm") -# } my $initFile = newInitFile(); $initFile->setName("qemukvm"); @@ -146,7 +141,24 @@ sub installationPhase # TODO: default dirs als globale funktion anbieten $initFile-> addToBlock('head','. /etc/opt/openslx/plugins/qemukvm/network.conf'); + + # TODO: remove all runlevel links for qemu-kvm or kvm + my $kvm_module = unshiftHereDoc(<<' End-of-Here'); + # Figure out which module we need. + if grep -q ^flags.*\\\<vmx\\\> /proc/cpuinfo; then + module=kvm_intel + elif grep -q ^flags.*\\\<svm\\\> /proc/cpuinfo; then + module=kvm_amd + else + unset module + fi + End-of-Here + my $do_start = unshiftHereDoc(<<' End-of-Here'); + # loading kvm module + [ -n "${module}" ] && modprobe -q ${module} + # load the tunnel device module + modprobe -q tun # configuring the tap0 interface to the existing bridge configured in stage3 for i in 0 1 2; do /opt/openslx/uclib-rootfs/sbin/tunctl -t tap${i} >/dev/null 2>&1 @@ -157,10 +169,14 @@ sub installationPhase ip addr add ${hoaddress} dev tap2 echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding echo "1" >/proc/sys/net/ipv4/conf/tap0/forwarding + # make /dev/fb0 writable for all # TODO: maybe solve via group or udev, etc... chmod 766 /dev/fb* End-of-Here + my $do_stop = unshiftHereDoc(<<' End-of-Here'); + [ -n "${module}" ] && modprobe -q -r ${module} + modprobe -q -r tun /opt/openslx/uclib-rootfs/usr/sbin/brctl delif br0 tap0 ip addr del ${nataddress} dev tap1 ip addr del ${hoaddress} dev tap2 @@ -168,6 +184,7 @@ sub installationPhase echo "0" >/proc/sys/net/ipv4/conf/tap0/forwarding chmod 760 /dev/fb* End-of-Here + my $do_restart = unshiftHereDoc(<<' End-of-Here'); do_stop && do_start End-of-Here |