Der Vmware Serverist meist immer nicht mit den neusten Kernel Versionen (siehe Kernel.org) kompatibel, so dass sich die Module nicht ohne einige Tricks kompilieren lassen. Es gibt zwar die Any-Any-Patches von Petr Vandrovec unter ftp://platan.vc.cvut.cz/pub/vmware/ mit denen man sich behelfen kann, leider funktionieren damit auch nicht immer die neusten Kernel. Da ich selbst den Vmware Server unter einem 64Bit Gentoo einsetze, findet man hier für die von mir eingesetzten Kernelversionen die Beschreibungen, wie ich die Module kompiliere. Die Schritte können natürlich auch bei anderen (Sub-)Versionen funktionieren, so dass man ggf. manches auch selbst ausprobieren muss. Die Pfade beziehen sich immer auf die installierten Kernelquellen die meist unter [cci lang=“bash“]/usr/src/linux-|Version|[/cci] liegen. Leider konnte ich den VMware Server nicht mit einer aktuellen Glibc und Kernel Version aktueller als 2.6.29 kompilieren, so dass ich auf VirtualBox migriert habe

Serverkonfiguration

  • Die gezeigten Anleitungen beziehen sich immer auf die Kernelmodule, die aus den Sources kompiliert werden, d.h. bei Binärdistributionen wie z.B. Ubuntu, SuSE, Fedora o.ä. werden oft die vorkompilierten Module verwendet, so dass man nicht nach diesen Anleitungen direkt vorgehen kann. Man kann sich behelfen, indem man einmal selbst den Kernel für die eigenen Distribution vollständig kompiliert (bei generischen Kernel kann man die entsprechenden Sources von kernel.org laden und aus [cci lang=“bash“]/proc/config.gz[/cci] die bestehende Konfiguration übernehmen)
  • Der VMware Server verlangt für die Runlevels eine Verzeichnis mit den Unterverzeichnissen [cci lang=“bash“]rc0.d[/cci] bis [cci lang=“bash“]rc6.0[/cci]. Hierzu sollte man unter [cci lang=“bash“]/opt/vmware[/cci] entsprechende Verzeichnisse angeben.
  • Da die VMware Runlevels nicht direkt Gentoo „konform“ sind, empfiehlt es sich, dass der VMware Server Dienst über das unter [cci lang=“bash“]/etc/conf.d/local[/cci] verfügbare Script gestartet und gestoppt wird
  • Der Server benötigt den HAL – Hardware Abstraction Layer. Unter Gentoo muss man das Paket [cci lang=“bash“]sys-apps/hal[/cci] installiert werden.
  • Im Kernel sollte unter [cci lang=“bash“]Kernel Hacking / Filter access to /dev/mem[/cci] mind. als Modul aktiviert sein
  • Im Kernel muss die Option [cci lang=“bash“]Executable file formats / IA32 Emulation[/cci] aktiviert sein, da sonst während der Installation des VMware Server Fehler des Linkers auftreten
  • alle Kernel Security Optionen unter [cci lang=“bash“]Security Options[/cci] sollten deaktiviert werden
  • innerhalb der Logs kann ein Hinweis sein, dass die Datei [cci lang=“bash“]/lib/vmware/settings[/cci] nicht gefunden werden kann. Diesen Fehler kann damit beheben, dass man einfach einen symbolischen Link auf die Datei [cci lang=“bash“]/lib/vmware/config[/cci] entsprechend setzt

Linux Client Kernelmodule

  • für die Netzwerkkonfiguration wird folgendes Modul verwendet [cci lang=“bash“]Device Drivers / Network device support / Ethernet (10 or 100Mbit) / EISA, VLB, PCI and on board controllers / AMD PCnet32 PCI support[/cci]
  • als SCSI System verwende ich bei den VMs den LSI Logic Controller und in Linux kompiliere ich dann folgende Devices in den Kernel: [cci lang=“bash“]Device Drivers / Fusion MPT device support / Fusion MPT ScsiHost drivers for SPI[/cci] und [cci lang=“bash“]Device Drivers / Fusion MPT device support / Fusion MPT misc device (ioctl) driver[/cci] sowie Disk und CD-Rom Optionen unter [cci lang=“bash“]Device Drivers /SCSI device support[/cci]

Java Runtime Environment (JRE) aktualisieren für Webaccess

In den Logdateien des VMware Dienstes waren Fehler des zum Webaccess zu finden, wobei diese nicht entsprechend aussagekräftig waren. Ich habe mich dazu entschieden, das JRE mit folgender Anleitung auszutauschen:
  • Das aktuelle JRE von http://www.java.com laden. Ich bevorzuge das reine Executable
  • Das Executable in das Verzeichnis [cci lang=“bash“]lib/vmware/webAccess/java[/cci] kopieren und dort ausführen. Danach wird ein neues Verzeichnis wie z.b. [cci lang=“bash“]jre1.6.0_20[/cci] erzeugt
  • aus dem JRE Unterverzeichnis [cci lang=“bash“]jre1.5.0_15/bin[/cci] das Binary [cci lang=“bash“]webaccess[/cci] in das neue JRE-Bin-Verzeichnis kopieren
  • Den VMware Server komplett inkl. aller Prozesse deaktivieren und das JRE 1.5 Verzeichnis umbenennen oder löschen
  • einen symbolischen Link von dem neuen JRE Verzeichnis mit dem alten Namen [cci lang=“bash“]jre1.5.0_15[/cci] anlegen. Danach kann der Server neu gestartet werden

Kernel Versionen

Server 2.0.2-203138

  • Kernel [2.6.27.21] & [2.6.28.10] werden beide vollständig unterstützt
  • Kernel [2.6.29.6] & [2.6.30] konnte ich bisher nicht mit Hilfe eines Patch stabil bekommen. Folgende Threads sind hilfreich, habe mich aber nicht weiter geführt:
  • Kernel >= [2.6.31] liegt eine andere Header Struktur vor, so dass das Installationsscripte nicht die korrekte Kernel Version findet. Nachfolgende Anleitung führt immerhin so weit, dass die Module übersetzt werden können:
    1. innerhalb der Kernel Quellen muss in die Datei [cci lang=“bash“]include/linux/version.h[/cci] folgende Include-Directive ergänzt werden [cci lang=“c“]#include "../generated/utsrelease.h"[/cci] angelegt werden
    2. für die Datei [cci lang=“bash“]include/generated/autoconf.h[/cci] muss ein symbolischer Link nach [cci lang=“bash“]include/linux/autoconf.h[/cci] angelegt werden
    3. Leider treten Fehler in der driver.c des vmmon auf, so dass sich die Module nicht übersetzen lassen
    Speziell für die Version [2.6.32] habe ich ein Tutorial unter http://radu.cotescu.com/2009/10/30/how-to-install-vmware-server-2-0-x-on-ubuntu-9-10-karmic-koala gefunden, aber eine lauffähige Konfiguration habe ich leider nicht installiert bekommen.