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
/usr/src/linux-|Version|
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
    /proc/config.gz
    die bestehende Konfiguration übernehmen)
  • Der VMware Server verlangt für die Runlevels eine Verzeichnis mit den Unterverzeichnissen
    rc0.d
    bis
    rc6.0
    . Hierzu sollte man unter
    /opt/vmware
    entsprechende Verzeichnisse angeben.
  • Da die VMware Runlevels nicht direkt Gentoo “konform” sind, empfiehlt es sich, dass der VMware Server Dienst über das unter
    /etc/conf.d/local
    verfügbare Script gestartet und gestoppt wird
  • Der Server benötigt den HAL – Hardware Abstraction Layer. Unter Gentoo muss man das Paket
    sys-apps/hal
    installiert werden.
  • Im Kernel sollte unter
    Kernel Hacking / Filter access to /dev/mem
    mind. als Modul aktiviert sein
  • Im Kernel muss die Option
    Executable file formats / IA32 Emulation
    aktiviert sein, da sonst während der Installation des VMware Server Fehler des Linkers auftreten
  • alle Kernel Security Optionen unter
    Security Options
    sollten deaktiviert werden
  • innerhalb der Logs kann ein Hinweis sein, dass die Datei
    /lib/vmware/settings
    nicht gefunden werden kann. Diesen Fehler kann damit beheben, dass man einfach einen symbolischen Link auf die Datei
    /lib/vmware/config
    entsprechend setzt

Linux Client Kernelmodule

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

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
    lib/vmware/webAccess/java
    kopieren und dort ausführen. Danach wird ein neues Verzeichnis wie z.b.
    jre1.6.0_20
    erzeugt
  • aus dem JRE Unterverzeichnis
    jre1.5.0_15/bin
    das Binary
    webaccess
    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
    jre1.5.0_15
    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
      include/linux/version.h
      folgende Include-Directive ergänzt werden
      #include "../generated/utsrelease.h"
      angelegt werden
    2. für die Datei
      include/generated/autoconf.h
      muss ein symbolischer Link nach
      include/linux/autoconf.h
      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.