• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] VMPlayer-2.0.4-93057, kein 'Gast to Host drag+drop'

rob40

Member
Hallo,
ich nutze VMwarePlayer-2.0.4-93057, HOST openSUSE 11.0, GAST WIN98.
'Host to Gast drag+drop' klappt prima - 'Gast to Host drag+drop' klappt nicht.

Auszug der Installation:
Code:
Your kernel was built with "gcc" version "4.3.1", while you are trying to use
"/usr/bin/gcc" version "4.3". This configuration is not recommended and VMware
Player may crash if you'll continue. Please try to use exactly same compiler as one used for building your kernel. Do you want to go with compiler "/usr/bin/gcc" version "4.3" anyway? no y
...
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config5/vmblock-only'
make -C /lib/modules/2.6.25.11-0.1-pae/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.25.11-0.1-obj/i386/pae'
make -C /usr/src/linux-2.6.25.11-0.1 O=/usr/src/linux-2.6.25.11-0.1-obj/i386/pae/. modules
CC [M] /tmp/vmware-config5/vmblock-only/linux/block.o
CC [M] /tmp/vmware-config5/vmblock-only/linux/control.o
CC [M] /tmp/vmware-config5/vmblock-only/linux/dbllnklst.o
CC [M] /tmp/vmware-config5/vmblock-only/linux/dentry.o
/tmp/vmware-config5/vmblock-only/linux/dentry.c: In function ‘DentryOpRevalidate’:
/tmp/vmware-config5/vmblock-only/linux/dentry.c:101: error: ‘struct nameidata’ has no member named ‘dentry’
/tmp/vmware-config5/vmblock-only/linux/dentry.c:101: error: ‘struct nameidata’ has no member named ‘dentry’
/tmp/vmware-config5/vmblock-only/linux/dentry.c:102: error: implicit declaration of function ‘path_release’
make[4]: *** [/tmp/vmware-config5/vmblock-only/linux/dentry.o] Error 1
make[3]: *** _module_/tmp/vmware-config5/vmblock-only Error 2
make[2]: *** sub-make Error 2
make[1]: *** all Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.25.11-0.1-obj/i386/pae'
make: *** http://vmblock.ko Error 2
make: Leaving directory `/tmp/vmware-config5/vmblock-only'
Unable to build the vmblock module.

The vmblock module enables dragging or copying files from within a guest and dropping or pasting them onto your host (guest to host drag and drop and file copy/paste). The rest of the software provided by VMware Player is designed to work independently of this feature (including host to guest drag and drop and file copy/paste).

If you would like the guest to host drag and drop and file copy/paste features,
you can install the driver by running vmware-config.pl again after making sure
that gcc, binutils, make and the kernel sources for your running kernel are
installed on your machine. These packages are available on your distribution's
installation CD.
Code:
p4:~ # uname -a
Linux p4 2.6.25.11-0.1-pae #1 SMP 2008-07-13 20:48:28 +0200 i686 i686 i386 GNU/Linux
p4:~ # rpm -q VMwarePlayer
VMwarePlayer-2.0.4-93057
p4:~ # cat /etc/SuSE-release
openSUSE 11.0 (i586)
VERSION = 11.0
p4:~ # smart install kernel-source gcc make binutils
Loading cache...
Updating cache... ################################################################### 100%
warning: kernel-source-2.6.25.11-0.1@i586 is already installed
warning: gcc-4.3-39.1@i586 is already installeddie
warning: make-3.81-103.1@i586 is already installed
warning: binutils-2.18.50.20080409-11.1@i586 is already installed

p4:~ # rpm -q gcc
gcc-4.3-39.1
vmware-any-any-update115
verschlechtert die Situation:
Code:
...
In file included from include2/asm/bitops_32.h:149,
                 from include2/asm/bitops.h:316,
                 from /tmp/vmware-config1/vmmon-only/./include/vcpuset.h:74,
                 from /tmp/vmware-config1/vmmon-only/./include/modulecall.h:23,
                 from /tmp/vmware-config1/vmmon-only/common/vmx86.h:19,
                 from /tmp/vmware-config1/vmmon-only/common/hostif.h:18,
                 from /tmp/vmware-config1/vmmon-only/common/cpuid.c:15:
/usr/src/linux-2.6.25.11-0.1/include/asm-generic/bitops/fls64.h:6: error: static declaration of ‘fls64’ follows non-static declaration
/usr/src/linux-2.6.25.11-0.1/include/linux/bitops.h:112: error: previous implicit declaration of ‘fls64’ was here
make[4]: *** [/tmp/vmware-config1/vmmon-only/common/cpuid.o] Error 1
make[3]: *** [_module_/tmp/vmware-config1/vmmon-only] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.25.11-0.1-obj/i386/pae'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config1/vmmon-only'
Unable to build the vmmon module.

Execution aborted.

Wo finde ich gcc 4.3.1 ?

Habe hier ein ähnliche Thema gefunden
(vmblock-patch für VMWare Workstation 6.0.4):
http://opsamericas.com/?p=734
Wenn ich der Anleitung folge, kommt beim Ausführen von 'runme.sh'
Code:
#!/bin/bash
cp vmblock.patch /usr/lib/vmware/modules/source
cd /usr/lib/vmware/modules/source
tar xf vmblock.tar
mv vmblock.tar vmblock.tar.orig
cd vmblock-only/
patch -p1 < ../vmblock.patch
cd ..
tar cf vmblock.tar vmblock-only/
rm -fr vmblock-only/
rm vmblock.patch
folgende Fehlermeldung:
Code:
-bash: patch: command not found
hier der 'vmblock.patch' aus obigem Link
Code:
diff -c -r vmblock-only/linux/dentry.c vmblock-only-new/linux/dentry.c
*** vmblock-only/linux/dentry.c	2008-03-04 03:16:14.000000000 +0100
--- vmblock-only-new/linux/dentry.c	2008-05-03 12:53:32.000000000 +0200
***************
*** 98,105 ****
--- 98,110 ----
        LOG(4, "DentryOpRevalidate: [%s] no longer exists\n", iinfo->name);
        return 0;
     }
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+    ret = actualNd.path.dentry && actualNd.path.dentry->d_inode;
+    path_put(&actualNd.path);
+ #else
     ret = actualNd.dentry && actualNd.dentry->d_inode;
     path_release(&actualNd);
+ #endif
  
     LOG(8, "DentryOpRevalidate: [%s] %s revalidated\n",
         iinfo->name, ret ? "" : "not");
diff -c -r vmblock-only/linux/filesystem.c vmblock-only-new/linux/filesystem.c
*** vmblock-only/linux/filesystem.c	2008-03-04 03:16:14.000000000 +0100
--- vmblock-only-new/linux/filesystem.c	2008-05-03 12:57:39.000000000 +0200
***************
*** 259,265 ****
--- 259,269 ----
  
     ASSERT(sb);
  
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+    inode = iget_locked(sb, ino);
+ #else
     inode = iget(sb, ino);
+ #endif
     if (!inode) {
        return NULL;
     }
***************
*** 287,294 ****
--- 291,303 ----
        return inode;
     }
  
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+    iinfo->actualDentry = actualNd.path.dentry;
+    path_put(&actualNd.path);
+ #else
     iinfo->actualDentry = actualNd.dentry;
     path_release(&actualNd);
+ #endif
  
     return inode;
  
diff -c -r vmblock-only/linux/super.c vmblock-only-new/linux/super.c
*** vmblock-only/linux/super.c	2008-03-04 03:16:14.000000000 +0100
--- vmblock-only-new/linux/super.c	2008-05-03 13:03:58.000000000 +0200
***************
*** 23,29 ****
--- 23,31 ----
  #else
  static void SuperOpClearInode(struct inode *inode);
  #endif
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 25)
  static void SuperOpReadInode(struct inode *inode);
+ #endif
  #ifdef VMW_STATFS_2618
  static int SuperOpStatfs(struct dentry *dentry, struct compat_kstatfs *stat);
  #else
***************
*** 38,44 ****
--- 40,48 ----
  #else
     .clear_inode   = SuperOpClearInode,
  #endif
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 25)
     .read_inode    = SuperOpReadInode,
+ #endif
     .statfs        = SuperOpStatfs,
  };
  
***************
*** 124,129 ****
--- 128,134 ----
   *----------------------------------------------------------------------------
   */
  
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 25)
  static void
  SuperOpReadInode(struct inode *inode)  // IN: Inode to initialize
  {
***************
*** 133,138 ****
--- 138,144 ----
     iinfo->nameLen = 0;
     iinfo->actualDentry = NULL;
  }
+ #endif
  
  
  /*

Danke für jeden Tip !
Rob
 

stefan.becker

Advanced Hacker
Vergiss die GCC Versionen. Werden Abweichungen genannt (4.3<=>4.31), einfach ignorieren.

Außerdem musst du wohl das Paket "patch" installieren.

Und any any weglassen. Wenn schon installiert, VMWARE deinstallieren und dann neu installieren.
 
Oben