Da Vmware wegen Kernelaktualisierungen sich nicht mehr so leicht auf aktuellen Kerneln > 2.6.20 installieren lässt oder Probleme enstehen. Diese Anleitung gilt als Hilfestellung, um dieses Problem zu lösen.
Folgende Punkte bereiten Probleme:
- aktuelle (Debian) Kernel haben im Gegensatz zu alten Kerneln viele tolle neue Sachen, Treiber und vor allem Änderungen. Da kommen Vmware Versionen nicht bei und das ist auch nicht Sinn der Sache. Aus diesem Grund enstanden die vmware-any-any patches, die dieses und andere Probleme versuchen zu lösen.
- Wird ein original Debian Kernel auf dem Linux System benutzt, so entstehen weitere Probleme. Die Kernel enthalten Änderungen zu dem generischen Linux Kernel, die meistens nicht gravierend sind (bei Suse kommt es schon öfters vor), aber trotzdem Abweichungen bedeuten, die den Entwicklern von externen Modulen Probleme bereiten. Kommt bei vmware sehr selten vor, aber lieber warne ich mal davor.
- Bei so genannten „testing“ und „unstable“ Installationen befindet sich oft ein aktuellerer Compiler, als der für den Kernel verwendete Compiler. Soche Module nimmt der Kernel nur selten (wenn überhaupt) an. Aus diesem Grund muss die selber Compilerversion auf dem System existieren, mit der der Kernel erstellt wurde.
- Mit neuem Kernel ist der Benutzer oft gezwungen eine aktuelle Vmware Version zu verwenden, da die alte Version zum Kernel oder Bibliotheken passt. Dieses Problem besteht aber bei fast jeder Software! Dieses Problem ist nur mit standardisierten Schnittestellen zu lösen, die sich nicht oft ändern dürfen.
Jetzt gehen wir mal an die Lösung der Probleme. Folgende Sachen werden benötigt:
- Eine aktuelle Vmware Version
- Den aktuellen Vmware-any-any Patch
- Die Version mit der der Kernel compiliert wurde, muss bekannt sein
- Für vmware wird der Compiler gcc (für Kernelmodule) und g++ für weitere Teile benötigt.
- Passende Linux-headers zu dem Kernel
Im ersten Schritt wird eine einzige Shell benötigt, die für die vollständige Installation von Vmware verwendet werden soll.
Im ersten Schritt muss die Kernel Version gefunden werden, mit der der Kernel installiert wurde. Diese erfolgt z.B. mit dem Befehl: dmesg
Gan am Anfang wird eine Zeile wie diese stehen:
Linux version 2.6.24-1-686 (Debian 2.6.24-4) (waldi@debian.org) (gcc version 4.1.3 20080114 (prerelease) (Debian 4.1.2-19))
Daraus ist zu erkennen, dass der Kernel mit der Version 4.1.3 für das Erstellen des Kernels verwendet wurde.
Auf einem im Moment aktuellen Version wird aber schon eine höhere Kernel Version verwendet. So könnte die Ausgabe aussehen:
$ gcc --version
gcc (GCC) 4.2.3 (Debian 4.2.3-1)
Das bedeutet für die Installation muss der ältere gcc-4.1 Compiler verwendet werden. Die Umschaltung erfolgt über den folgenden Befehl:
export CC=gcc-4.1
Allerdings gilt es nur für die gewählte Shell (deswegen die Beschränkung auf eine Shell).
Im nächsten Schritt soll auch die g++-Version festgelegt werden. Dies erfolgt über die Variable CXX mit dem Befehl
export CXX=g++-4.1
Info am Rande: Natürlich müssen die gewählten Compiler Versionen auch auf demSystem installiert sein.
Nachdem die Einstellungen erfolgt sind, kann jetzt vmware in der Grundversion installiert werden. Die vmware-any-any Patches müssen nach der Installation durchgeführt werden. Diese Prozedur erfolgt meistens ohne Probleme. Allerdings sollte von der Konfiguration abgesehen werden, da sie höchst wahrscheinlich nicht funktionieren wird (kernel 2.6.22-2.6.24 ist es definitiv der Fall für Vmware 6.X Workstation).
Für einen aktuellen Kernel (2.6.24) müssen zusätzlich die vmware-any-any patches gepatcht werden (was für eine Freude 🙂 ). Im ersten Schritt sollte das Tar Archiv in dem vmware-any-any-update115 mit dem Namen vmmon.tar entpackt werden:
tar xf vmmon.tar
Jetzt müssen zwei Dateien gepatcht werden, bevor das ganze wieder zu einem Paket gepackt wird.
Folgende Zeilen müssen geändert werden:
In der Datei vmmon-only/include/iocontrols_compat.h muss die folgende Zeile von:
#define VMMON_VERSION_V6 (161 << 16 | 0)
nach
#define VMMON_VERSION_V6 (167 << 16 | 0)
verändert werden.
In der Datei vmmon-only/include/iocontrols.h muss die folgende Zeile von:
#define VMMON_VERSION (161 << 16 | 0)
nach
#define VMMON_VERSION (167 << 16 | 0)
verändert werden.
In der Datei vmmon-only/include/vcpuset.h muss die folgende Zeile von:
#include "asm/bitops.h"
nach
#include "linux/bitops.h"
verändert werden.
Anschließend muss natürlich der Ordner „vmmon“ mit dem folgenden Befehl „tar cvvf vmmon.tar vmmon-only/“ wieder in tar-Archiv verwandelt werden, da sonst das Skript „runme.pl“ nicht angewendet werden kann. (Diesen Schritte habe ich vegessen zu erwähnen. Danke an „Wolf“ für die Korrektur. Ich nehme Verbesserungsvorschläge gern entgegen.)
Jetzt kann hoffentlich über „runme.pl“ Vmware mit den vmware-any-any patches installiert und zum „laufen“ gebracht werden.
Folgende Ausgabe erscheint, wenn die vmware-any-any patches für den Kernel 2.6.24 oder höher nicht korrigiert sind:
Unknown VMware Workstation 6.0.2 build 59824 detected. Building for Workstation 6.0.0. Using 2.6.x kernel build system. make: Entering directory \`/tmp/vmware-config2/vmmon-only\' make -C /lib/modules/2.6.24-1-686/build/include/.. SUBDIRS=$PWD SRCROOT=\$PWD/. modules make[1]: Entering directory \`/usr/src/linux-headers-2.6.24-1-686\' CC [M] /tmp/vmware-config2/vmmon-only/linux/driver.o CC [M] /tmp/vmware-config2/vmmon-only/linux/driverLog.o CC [M] /tmp/vmware-config2/vmmon-only/linux/hostif.o CC [M] /tmp/vmware-config2/vmmon-only/common/comport.o CC [M] /tmp/vmware-config2/vmmon-only/common/cpuid.o In file included from include/asm/bitops.h:2, from /tmp/vmware-config2/vmmon-only/./include/vcpuset.h:74, from /tmp/vmware-config2/vmmon-only/./include/modulecall.h:23, from /tmp/vmware-config2/vmmon-only/common/vmx86.h:19, from /tmp/vmware-config2/vmmon-only/common/hostif.h:18, from /tmp/vmware-config2/vmmon-only/common/cpuid.c:15: include/asm/bitops_32.h:9:2: error: #error only
can be included directly make[2]: *** [/tmp/vmware-config2/vmmon-only/common/cpuid.o] Error 1 make[1]: *** [_module_/tmp/vmware-config2/vmmon-only] Error 2 make[1]: Leaving directory \`/usr/src/linux-headers-linux2.6.24-1-686
\' make: *** [vmmon.ko] Error 2 make: Leaving directory \`/tmp/vmware-config2/vmmon-only\' Unable to build the vmmon module. For more information on how to troubleshoot module-related problems, please visit our Web site at "http://www.vmware.com/download/modules/modules.html" and "http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html". Execution aborted.Folgender Fehler deutet darauf hin, dass g++ nicht in der richtigen Version installiert oder gesetzt ist:gcc: error trying to exec 'cc1plus': execvp: No such file or directory
error: command 'gcc' failed with exit status 1
Das war nicht gerade kurz und vor allem einfach, aber mit dieser Unterstützung und ein paar Quellen und weiteren Informationen sollte es funktionieren:
- http://www.nowhere.dk/archives/2008/01/17/running_vmware_workstation..
- vmware-any-any patches
- g++ Compiler auf dem System nicht installiert
PS: Linux ist nicht so kompliziert, wie es hier raus kommt. Es gibt so Leute (wie ich), die sich das Leben künstlich schwer machen.
da sag ich doch mal vielen dank 😉
funktioniert mit 2.6.24.2 bestens.
ich sag auch danke.
funktioniert prima mit 2.6.24.3
Hallo,
danke für die Tipps.
Allerdings ging es damit bei mir noch nicht, ich musste erst einen Link auf cc1plus setzen:
ln -s /usr/lib/gcc/i486-linux-gnu/4.2/cc1plus /usr/lib/gcc/i486-linux-gnu/4.1/cc1plus
Erst dann konnte ich vmware kompilieren (mit Fehlerausgaben), und es läuft.
Habe den Server heute mit Deinen Tipps erfolgreich in Ubuntu 8.04 AMD64 installiert.
Danke!
Danke für den Tipp, dann brauche ich das schon mal nicht mehr testen.
Gruß
Konstantin
Danke für den Tipp.
hallöchen (hey, wir sind Namensvetter !),
danke fuer die gute Anleitung.
ich musste die Aenderungen in den Dateien bis auf jene bei der Pfadangabe weglassen, da VMware (Workstation 6.0, Ubuntu Hardy) sonst beim Starten einer VM wegen des Wertes meckerte.
Jetzt klappts aber einwandfrei…
Grüße
Constantin
Hi!
Super Danke! Installiere 1.0.5 auf Slackware 12.1. Bin zumindest über den bitops error gekommen. Musste dazu noch tar cvvf vmmon.tar vmmon-only/ eingeben, damit runme.pl auch meine gepatchten patches nutzt!
Gruss
Wolf
Ej, mein Rettung!
Super!
Es läuft!!!
*freu*
Danke!
Hi,
danke für die Mühe, hat mir viel Arbeit erspart.
Wie Wolf schon schrieb, musste ich auch die gepatchten Dateien wieder packen (tar cvvf vmmon.tar vmmon-only/).
Scheint nicht nur bei Slackware nötig zu sein, sondern auch unter Ubuntu Hardy (8.04)
Gruß Markus
Danke für die Erinnerung. Wollte den Nachtrag machen, ging aber im Stress verloren.
Gruß Konstantin
Hi,
ab dem Punkt steck ich fest: „Jetzt kann hoffentlich über “runme.pl” Vmware mit den vmware-any-any patches installiert und zum “laufen” gebracht werden.“
Bis zu dem Punkt läuft alles glatt.
Wenn ich anschließend
„./runme.pl“ ausführe bekomm ich folgende Fehlermeldung:
„Unable to open the installer database /etc/vmware/locations in read-mode.
Execution aborted.“
Wie geh ich da weiter vor…?
Danke!
gruß
Patrick
Hallo Patrick,
du hast vermutlich runme.pl nicht mit „sudo“, also nicht mit root-Rechten ausgeführt. Wenn ich falsch liege, dann melde dich.
Gruß
Konstantin
Hallo Konstantin,
da ich Debian nutze habe ich mich direkt unter root eingeloggt.
Daran liegt es nicht…
Wohin muss ich das tgz von vmware-server entpacken? Ich tippe auf falsches Verzeichnis…
Gruß
Patrick
Hallo Patrick,
wie „vmware-server“. Mit dem habe ich es gar nicht getestet. Im Moment habei ich leider keine Zeit für. 🙁
Wenn du vmware-workstation oder vmware-player meinst,dann musst du zuerst die „vmware-config.pl“ ausführen, damit er in /etc/vmware die nötigen Sachen anlegt. Danach kannst du mit runme.pl weiter machen.
Ich hoffe dir damit geholfen zu haben.
PS: Diese Anleitung gilt nach einem gescheiterten Versuch originale Vmware auf einem System zu installieren. Da sind die Daten unter /etc/vmware/ bereits vorhanden.
Gruß
Konstantin
Hallo Konstantin,
ich habe es nun mit folgener Anleitung geschafft:
http://www.admindu.de/wordpress/?p=136
Trotzdem waren die Tipps hier hilfreich.
Vielen Dank für die schnelle Hilfe!
gruß
Patrick
ich bin am ausrasten hier.. versuche seit 3 tagen den ***** vmware server zum laufen zu bringen.
hatte vorher gentoo mit nem älteren kernel, da lief es einwandfrei.
nun habe ich einen neuen root mit debian bestellt.
hab dann den neusten kernel (2.6.26) rauf.. da schlugen schon die ersten installationsversuche fehl, na gut gegoogelt, alle möglichen lösungen versucht, lief immernoch nicht. dann hab ich völlig genervt auf 2.6.24 downgegraded. installation geht immernochnicht, habe halb google abgegrast, bis ich dann hierrauf gestoßen bin. installation geht nun mehr oder weniger, compilen geht alles… aber ganz am ende wenn die vmware starten sollte kommt:
Starting VMware services:
Virtual machine monitor failed
Virtual ethernet failed
rest alles erfolgreich
wenn ich nun mit der server console verbinde und meine vm starten will, kommt die fehlermeldung das
vmware zwar instaliert sei, aber nicht konfiguriert für meinen kernel.. kennt ihr bestimmt, kannst nur nicht kopieren. dann soll ich natürlich wieder vmware-config.pl ausführen… was in einer endlos schleife enden würde weil ich dann immer denselben fehler bekomme.
ich hoffe mir kann jemand helfen hier…
mfg
Hi,
so kann dir keiner helfen. Du müsstest dich bitte beruhigen und Informationen geben, die bei der Problemlösung helfen.
Da muss irgendwo ein Fehler sein – also beim erstellen der Module muss was schief gelaufen sein.
Welcher Version von vmware-server hast du und welche Patches hast du benutzt. Welchen Kernel hast du genommen – also den von Debian oder Vanilla. Welche Debian Version?
Wir haben leider kein Orakel, dass diese Informationen ausspuckt.
Wenn du noch Lust hast und nicht schon Gentoo installiert hast, dann melde dich einfach und ich schau mal, wie ich dir helfen kann. 😉
Gruß
Konstantin
hehe, ich versuch ruhig zu bleiben 😛
also, debian + kernel:
2.6.26.3
2.6.26
2.6.25
2.6.24.7
waren erfolgslos, habe jedesmal any patch:
1.15 / 1.15a / 1.16 / 1.17
nacheinander probiert.
„Enable unused/obsolete exported symbols“ war bei „Kernel Hacking“ aktiviert, da ich es auf verschiedenen seiten gelesen habe.
zusätzlich beim 2.6.26(.3) kernel habe ich noch diverse vmmon und vmnet patches die man so bei google finden kann getestet, jedesmal ohne erfolg. entweder er hatte schon beim compilen probleme oder am ende der installation hat er „Virtual machine monitor“ und „Virtual ethernet“ nicht gestartet, wie schon in meinem ersten post beschrieben.
völlig genervt bin ich dann noch weiter in den kernels zurückgegangen, und siehe da, der 2.6.23.17
funktionierte mit dem any patch 1.15 einwandfrei.
das einzige kleinere problem das ich jetzt noch habe, ist das die vmware nach jedem reboot wieder die vmware-config.pl ausgeführt haben will:
vmware is installed, but it has not been (correctly) configured
for this system. To (re-)configure it, invoke the following command:
/usr/bin/vmware-config.pl.
dann muss ich zuerst von hand die not_configured entfernen, und vmware läuft wieder. nach dem ganzen kernel hin und her zwar nur ein kleiner schönheitsfehler, aber nervig ist es trotzdem 🙂
klasse, bei mir fehlte nur der patch für den any-any-patch, habe den kernel 2.6.24-19 und es funktioniert!!