diff options
author | Volker Uhrig | 2008-04-08 22:45:45 +0200 |
---|---|---|
committer | Volker Uhrig | 2008-04-08 22:45:45 +0200 |
commit | de03766511fd2b677872b54299986115500650c9 (patch) | |
tree | edcfdb6ec52526ef409b633cc068e3dedd942988 /os-plugins/plugins | |
parent | Bugfix: Removed forgotten quotation mark, which caused a kernel panic :( (diff) | |
download | core-de03766511fd2b677872b54299986115500650c9.tar.gz core-de03766511fd2b677872b54299986115500650c9.tar.xz core-de03766511fd2b677872b54299986115500650c9.zip |
* Different changes. Step 1 done
* SuSE works now in local mode (default)
* Ubuntu should run, too
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1732 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins/plugins')
-rw-r--r-- | os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm | 14 | ||||
-rw-r--r-- | os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm | 37 | ||||
-rw-r--r-- | os-plugins/plugins/vmware/OpenSLX/Distro/Fedora.pm | 2 | ||||
-rw-r--r-- | os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm | 7 | ||||
-rw-r--r-- | os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm | 25 | ||||
-rw-r--r-- | os-plugins/plugins/vmware/OpenSLX/Distro/Ubuntu.pm | 2 | ||||
-rw-r--r-- | os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm | 24 | ||||
-rw-r--r-- | os-plugins/plugins/vmware/XX_vmware.sh | 39 |
8 files changed, 102 insertions, 48 deletions
diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm index 3c128f14..dda76379 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Base.pm @@ -86,7 +86,7 @@ sub fillRunlevelScript # distinction is made via enabled forwarding setup_vmnet1() { if [ -n "\$vmnet1" ] ; then - test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1 + #test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1 # the path might be directly point to the plugin dir $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \\ /dev/vmnet1 vmnet1 @@ -103,7 +103,7 @@ sub fillRunlevelScript # incomplete ... setup_vmnet8() { if [ -n "\$vmnet8" ] ; then - test -c /dev/vmnet1 || mknod c 119 8 /dev/vmnet8 + #test -c /dev/vmnet8 || mknod c 119 8 /dev/vmnet8 # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50 $location/vmnet-natd -d /var/run/vmnet-natd-8.pid \\ -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf @@ -114,7 +114,6 @@ sub fillRunlevelScript runvmdhcpd() { if [ -n "\$dhcpif" ] ; then # the path might be directly point to the plugin dir - mkdir /var/run/vmware 2>/dev/null $location/vmnet-dhcpd -cf /etc/vmware/dhcpd.conf -lf \\ /var/run/vmware/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid \$dhcpif fi @@ -134,13 +133,16 @@ sub fillRunlevelScript # message output should match the given vendor-os echo "Stopping vmware background services ..." killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \\ - vmware-tray 2>/dev/null + vmware-tray vmnet-dhcpd 2>/dev/null # wait for shutting down of interfaces usleep 50000 unload_modules ;; - status) - echo "Say something useful here ..." + #status) + # echo "Say something useful here ..." + #;; + restart) + "\$0" stop && "\$0" start ;; esac exit 0 diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm index e8f40c16..43add481 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Debian.pm @@ -33,8 +33,8 @@ sub fillRunlevelScript my $script = unshiftHereDoc(<<" End-of-Here"); #! /bin/sh - # Ubuntu specific start/stop script, generated via stage1 'vmware' plugin - # install + # Ubuntu/Debian specific start/stop script, generated via stage1 'vmware' + # plugin install # inspiration taken from vmware start script: # Copyright 1998-2007 VMware, Inc. All rights reserved. # @@ -50,8 +50,10 @@ sub fillRunlevelScript # Short-Description: Manages the services needed to run VMware software # Description: Manages the services needed to run VMware software ### END INIT INFO + load_modules() { # to be filled in via the stage1 configuration script + #TODO: everything behind || is not equal to Suse.pm modprobe -qa vmmon vmnet vmblock 2>/dev/null || echo "Problem here!" # most probably nobody wants to run the parallel port driver ... #modprobe vm... @@ -72,7 +74,9 @@ sub fillRunlevelScript # distinction is made via enabled forwarding setup_vmnet1() { if [ -n "\$vmnet1" ] ; then - test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1 + # we don't need the following test. It's handled by + # XX_vmware.sh + #test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1 # the path might be directly point to the plugin dir $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \\ /dev/vmnet1 vmnet1 @@ -89,7 +93,9 @@ sub fillRunlevelScript # incomplete ... setup_vmnet8() { if [ -n "\$vmnet8" ] ; then - test -c /dev/vmnet1 || mknod c 119 8 /dev/vmnet8 + # we don't need the following test. It's handled by + # XX_vmware.sh + #test -c /dev/vmnet8 || mknod c 119 8 /dev/vmnet8 # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50 $location/vmnet-natd -d /var/run/vmnet-natd-8.pid \\ -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf @@ -100,7 +106,6 @@ sub fillRunlevelScript runvmdhcpd() { if [ -n "\$dhcpif" ] ; then # the path might be directly point to the plugin dir - mkdir /var/run/vmware 2>/dev/null $location/vmnet-dhcpd -cf /etc/vmware/dhcpd.conf -lf \\ /var/run/vmware/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid \$dhcpif fi @@ -117,21 +122,33 @@ sub fillRunlevelScript setup_vmnet0 || log_warning_msg "Problems setting up vmnet0 interface" setup_vmnet1 || log_warning_msg "Problems setting up vmnet1 interface" setup_vmnet8 || log_warning_msg "Problems setting up vmnet8 interface" - runvmdhcpd + runvmdhcpd || log_warning_msg "Problems starting vmware dhcpd" log_end_msg $? ;; stop) # message output should match the given vendor-os log_daemon_msg "Stopping vmware background services ..." "vmware" killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \\ - vmware-tray 2>/dev/null + vmware-tray vmnet-dhcpd 2>/dev/null # wait for shutting down of interfaces usleep 50000 unload_modules log_end_msg $? ;; - status) - log_daemon_msg "Say something useful here ..." + # we don't need a status yet... at least as long as it is + # unclear in which path the corresponding binary (see original + # /etc/init.d/vmware) is in our case + #status) + # log_daemon_msg "Say something useful here ..." + #;; + restart) + \$0 stop + \$0 start + exit $? + ;; + *) + log_success_msg "Usage: \$0 {start|stop|restart}" + exit 2 ;; esac exit 0 @@ -139,4 +156,4 @@ sub fillRunlevelScript return $script; } -1;
\ No newline at end of file +1; diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Fedora.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Fedora.pm index 1a68a286..1c03540f 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Fedora.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Fedora.pm @@ -27,4 +27,4 @@ use OpenSLX::Basics; # TODO: implement! -1;
\ No newline at end of file +1; diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm index 594a55cd..cc84320d 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Gentoo.pm @@ -69,7 +69,7 @@ sub fillRunlevelScript # distinction is made via enabled forwarding setup_vmnet1() { if [ -n "\$vmnet1" ] ; then - test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1 + #test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1 # the path might be directly point to the plugin dir $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \\ /dev/vmnet1 vmnet1 @@ -86,7 +86,7 @@ sub fillRunlevelScript # incomplete ... setup_vmnet8() { if [ -n "\$vmnet8" ] ; then - test -c /dev/vmnet1 || mknod c 119 8 /dev/vmnet8 + #test -c /dev/vmnet8 || mknod c 119 8 /dev/vmnet8 # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50 $location/vmnet-natd -d /var/run/vmnet-natd-8.pid \\ -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf @@ -97,7 +97,6 @@ sub fillRunlevelScript runvmdhcpd() { if [ -n "\$dhcpif" ] ; then # the path might be directly point to the plugin dir - mkdir /var/run/vmware 2>/dev/null $location/vmnet-dhcpd -cf /etc/vmware/dhcpd.conf -lf \\ /var/run/vmware/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid \$dhcpif fi @@ -120,7 +119,7 @@ sub fillRunlevelScript # message output should match the given vendor-os ebegin "Stopping vmware background services ..." killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \\ - vmware-tray 2>/dev/null + vmware-tray vmnet-dhcpd 2>/dev/null # wait for shutting down of interfaces usleep 50000 unload_modules diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm index 9c380cb6..098b9f6a 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Suse.pm @@ -74,7 +74,9 @@ sub fillRunlevelScript # distinction is made via enabled forwarding setup_vmnet1() { if [ -n "\$vmnet1" ] ; then - test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1 + # we don't need the following test. It's handled by + # XX_vmware.sh + #test -c /dev/vmnet1 || mknod c 119 1 /dev/vmnet1 # the path might be directly point to the plugin dir $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \\ /dev/vmnet1 vmnet1 @@ -91,7 +93,9 @@ sub fillRunlevelScript # incomplete ... setup_vmnet8() { if [ -n "\$vmnet8" ] ; then - test -c /dev/vmnet1 || mknod c 119 8 /dev/vmnet8 + # we don't need the following test. It's handled by + # XX_vmware.sh + #test -c /dev/vmnet8 || mknod c 119 8 /dev/vmnet8 # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50 $location/vmnet-natd -d /var/run/vmnet-natd-8.pid \\ -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf @@ -102,7 +106,6 @@ sub fillRunlevelScript runvmdhcpd() { if [ -n "\$dhcpif" ] ; then # the path might be directly point to the plugin dir - mkdir /var/run/vmware 2>/dev/null $location/vmnet-dhcpd -cf /etc/vmware/dhcpd.conf -lf \\ /var/run/vmware/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid \$dhcpif fi @@ -128,15 +131,25 @@ sub fillRunlevelScript # message output should match the given vendor-os echo -n "Stopping vmware background services ..." killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \\ - vmware-tray 2>/dev/null + vmware-tray vmnet-dhcpd 2>/dev/null # wait for shutting down of interfaces usleep 50000 unload_modules rc_status -v ;; - status) - echo -n "Say something useful here ..." + # we don't need a status yet... at least as long as it is + # unclear in which path the corresponding binary (see original + # /etc/init.d/vmware) is in our case + #status) + # echo -n "Say something useful here ..." + #;; + restart) + "\$0" stop && "\$0" start ;; + *) + echo "Usage: `basename "\$0"` {start|stop|restart}" + exit 1 + ;; esac exit 0 End-of-Here diff --git a/os-plugins/plugins/vmware/OpenSLX/Distro/Ubuntu.pm b/os-plugins/plugins/vmware/OpenSLX/Distro/Ubuntu.pm index 02b44b5c..d7ffc2e5 100644 --- a/os-plugins/plugins/vmware/OpenSLX/Distro/Ubuntu.pm +++ b/os-plugins/plugins/vmware/OpenSLX/Distro/Ubuntu.pm @@ -20,4 +20,4 @@ use warnings; # inherit everything from Debian (as Ubuntu is based on it anyway) use base qw(vmware::OpenSLX::Distro::Debian); -1;
\ No newline at end of file +1; diff --git a/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm b/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm index 6b96fead..942332c9 100644 --- a/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm +++ b/os-plugins/plugins/vmware/OpenSLX/OSPlugin/vmware.pm @@ -203,22 +203,26 @@ sub installationPhase $self->_writeRunlevelScript($vmbin, $runlevelScript); } - # generate links for the user executables vmware and player and a - # simplified version of the start script + # creat our own simplified version of the vmware and player wrapper + # Depending on the configured kind it will be copied in stage3 @files = qw( vmware vmplayer ); foreach my $file (@files) { # OLTA: this backup strategy is useless if invoked twice, so I have # deactivated it - # rename ("/usr/bin/$file", "/usr/bin/$file.slx-bak"); - linkFile("/usr/bin/$file", "/var/X11R6/bin/$file"); + # VOLKER: we need to remove them, because /usr isn't tempfs. So we + # backup it. I don't see where it is invoken twice + rename ("/usr/bin/$file", "/usr/bin/$file.slx-bak"); + # because of tempfs of /var but not /usr we link the file + # to /var/..., where we can write in stage3 + linkFile("/var/X11R6/bin/$file", "/usr/bin/$file"); my $script = unshiftHereDoc(<<" End-of-Here"); #!/bin/sh # written by OpenSLX-plugin 'vmware' in Stage1 # radically simplified version of the original script $file by VMware Inc. PREFIX=$vmpath # depends on the vmware location - exec "\$PREFIX"'/lib/wrapper-gtk24.sh' \ - "\$PREFIX"'/lib' \ - "\$PREFIX"'/bin/$file' \ + exec "\$PREFIX"'/lib/wrapper-gtk24.sh' \\ + "\$PREFIX"'/lib' \\ + "\$PREFIX"'/bin/$file' \\ "\$PREFIX"'/libconf' "\$@" End-of-Here spitFile("$self->{'pluginRepositoryPath'}/$file", $script); @@ -236,8 +240,10 @@ sub removalPhase # restore old start scripts - to be discussed my @files = qw( vmware vmplayer ); foreach my $file (@files) { - # rename ("/usr/bin/$file.slx-bak", "/usr/bin/$file"); - unlink("/var/X11R6/bin/$file"); + unlink("/usr/bin/$file"); + rename ("/usr/bin/$file.slx-bak", "/usr/bin/$file"); + # we only create in stage3 a file there... not needed + #unlink("/var/X11R6/bin/$file"); } # TODO: path is distro specific #rename ("/etc/init.d/vmware.slx-bak", "/etc/init.d/vmware"); diff --git a/os-plugins/plugins/vmware/XX_vmware.sh b/os-plugins/plugins/vmware/XX_vmware.sh index 2adb19e5..9d90043e 100644 --- a/os-plugins/plugins/vmware/XX_vmware.sh +++ b/os-plugins/plugins/vmware/XX_vmware.sh @@ -24,7 +24,8 @@ if [ -e /initramfs/plugin-conf/vmware.conf ]; then # load needed variables . /initramfs/plugin-conf/vmware.conf - # Test if this plugin is activated... + # Test if this plugin is activated... more or less useless with the + # new plugin system if [ $vmware_active -ne 0 ]; then [ $DEBUGLEVEL -gt 0 ] && echo "executing the 'vmware' os-plugin ..."; @@ -35,11 +36,22 @@ if [ -e /initramfs/plugin-conf/vmware.conf ]; then #. /etc/distro-functions #. /etc/sysconfig/config + + # copy files, /usr/bin/{vmware,vmplayer} are linked to + # /var/X11R6/bin in stage1. This way the wrapper of vmware or + # vmplayer will work like the usual once. And its compatible with + # the runvmware-v2 skript. No path-changes needed + if [ "${vmware_kind}" = "local" ]; then + cp /mnt/opt/openslx/plugin-repo/vmware/vmware \ + /mnt/opt/openslx/plugin-repo/vmware/vmplayer \ + /mnt/var/X11R6/bin + fi + # prepare all needed vmware configuration files if [ -d /mnt/etc/vmware ] ; then rm -rf /mnt/etc/vmware/* else - mkdir -p /mnt/etc/vmware + testmkd -p /mnt/etc/vmware fi # write the /etc/vmware/slxvmconfig file # check for the several variables and write the several files: @@ -63,7 +75,7 @@ stage3 setup" > /mnt/etc/vmware/slxvmconfig >> /mnt/etc/vmware/dhcpd.conf echo "default-lease-time 1800;" \ >> /mnt/etc/vmware/dhcpd.conf - echo "nmax-lease-time 7200;" \ + echo "max-lease-time 7200;" \ >> /mnt/etc/vmware/dhcpd.conf echo "option domain-name-servers $dnslist;" \ >> /mnt/etc/vmware/dhcpd.conf @@ -87,7 +99,7 @@ $(ipcalc -m $vmnet1|sed s/.*=//) {" \ >> /mnt/etc/vmware/dhcpd.conf echo -e "\trange ${vmsub}.10 ${vmsub}.20;" \ >> /mnt/etc/vmware/dhcpd.conf - echo -e "\toption broadcast $(ipcalc -b $vmnet1|sed s/.*=//);" \ + echo -e "\toption broadcast-address $(ipcalc -b $vmnet1|sed s/.*=//);" \ >> /mnt/etc/vmware/dhcpd.conf echo -e "\toption routers $vmip;" \ >> /mnt/etc/vmware/dhcpd.conf @@ -104,12 +116,12 @@ $(ipcalc -m $vmnet1|sed s/.*=//) {" \ echo -e "vmnet8=$vmip/$vmpx" >> /mnt/etc/vmware/slxvmconfig echo -e "\n# definition for virtual vmnet8 interface" \ >> /mnt/etc/vmware/dhcpd.conf - echo -e "subnet $(ipcalc -m $vmip/$vmpx|sed s/.*=//) netmask \ -$(ipcalc -n $vmip/$vmpx|sed s/.*=//) {" \ + echo -e "subnet $(ipcalc -n $vmip/$vmpx|sed s/.*=//) netmask \ +$(ipcalc -m $vmip/$vmpx|sed s/.*=//) {" \ >> /mnt/etc/vmware/dhcpd.conf echo -e "\trange ${vmsub}.10 ${vmsub}.20;" \ >> /mnt/etc/vmware/dhcpd.conf - echo -e "\toption broadcast $(ipcalc -b $vmip/$vmpx|sed s/.*=//);" \ + echo -e "\toption broadcast-address $(ipcalc -b $vmip/$vmpx|sed s/.*=//);" \ >> /mnt/etc/vmware/dhcpd.conf echo -e "\toption routers $vmip;" \ >> /mnt/etc/vmware/dhcpd.conf @@ -139,7 +151,7 @@ $(ipcalc -n $vmip/$vmpx|sed s/.*=//) {" \ # copy the runlevelscript to the proper place and activate it cp /mnt/opt/openslx/plugin-repo/vmware/vmware.${vmware_kind} \ /mnt/etc/${D_INITDIR}/vmware \ - || echo "Error copying runlevel script. Shouldn't happen." + || echo " * Error copying runlevel script. Shouldn't happen." chmod a+x /mnt/etc/${D_INITDIR}/vmware rllinker "vmware" 20 2 @@ -199,6 +211,9 @@ $(ipcalc -n $vmip/$vmpx|sed s/.*=//) {" \ testmkd /mnt/$i done + # make vmware dhcpd more silent + touch /mnt/var/run/vmware/dhcpd.leases + # create the needed devices which effects all vmware options # they are not created automatically via module load for i in "/dev/vmnet0 c 119 0" "/dev/vmmon c 10 165"; do @@ -207,6 +222,7 @@ $(ipcalc -n $vmip/$vmpx|sed s/.*=//) {" \ chmod 0700 /dev/vmnet* chmod 1777 /mnt/etc/vmware/fd-loop + chmod 1777 /mnt/var/run/vmware # loop file for exchanging information between linux and vmware guest if modprobe ${MODPRV} loop; then @@ -232,11 +248,10 @@ $(ipcalc -n $vmip/$vmpx|sed s/.*=//) {" \ echo -e "\tmount -t usbfs usbfs /proc/bus/usb 2>/dev/null" \ >>/mnt/etc/${D_INITDIR}/boot.slx - chmod 1777 /mnt/var/run/vmware # define a variable where gdm/kdm should look for additional sessions # do we really need it? looks like we can delete it... # export vmsessions=/var/lib/vmware/vmsessions - + # TODO: perhaps we can a) kick out vmdir # b) configure vmdir by plugin configuration # TODO: How to start it. See Wiki. Currently a) implemnted @@ -247,7 +262,9 @@ $(ipcalc -n $vmip/$vmpx|sed s/.*=//) {" \ cp /mnt/opt/openslx/plugin-repo/vmware/runvmware-v2 \ /mnt/var/X11R6/bin/run-vmware.sh - [ $DEBUGLEVEL -gt 0 ] && echo "done with 'vmware' os-plugin ..."; + [ $DEBUGLEVEL -gt 0 ] && echo " * done with 'vmware' os-plugin ..." fi +else + [ $DEBUGLEVEL -gt 0 ] && echo " * Configuration of vmware plugin failed" fi |