Jun 10
VMware Server (Beta 2) bridging über WLan
Aus verschiedensten Gründen kann es praktisch sein den Heimischen VMware Server über eine Funknetzwerk karte zu betreiben. Aber egal ob die Baulichen Bedingungen oder einfach die Faulheit Kabel zu ziehen dran schuld sind - es gibt Probleme dabei bestimmte Funknetzwerk karten mit dem madwifi Treiber so zum laufen zu bekommen dass VMware Server erfolgreich darüber bridgen kann.
Der Madwifi Treiber ist für W-Lan Karten mit Atheroschipsatz gedacht und für seinen guten Durchsatz und überhaupt eine recht einfache und stabile Funktionalität bekannt. Bei der Einrichtung einer Bridge über vmware-config.pl finden sich aber im dmesg plötzlich folgende Fehlermeldungen:
bridge-ath0: enabling the bridge
bridge-ath0: can't bridge with ath0, bad header length 88
bridge-ath0: interface ath0 is not a valid Ethernet interface
bridge-ath0: can't bridge with ath0, bad header length 88
Zudem kann von VMware dei Virtuelle Hardware der Netzwerkkarte im Bridging-Modus einfach nicht mehr gestartet werden. Abhilfe schafft hier ein kleiner Patch den ich zumindest für Debian 4 (Etch) erfolgreich testen konnte. Hierzu wird eine verändertes Kernelmodul installiert. Natürlich brauchen wir dazu zuächst die Kernelquellen
apt-get install linux-headers-`uname -r`
und ein paar Pakete um diese zu kompilieren.
apt-get install build-essential bin86 sharutils
Nun wird die aktuelle Version von MadWifi heruntergeladen (zur Zeit Version 0.9.4) und und entpackt.
cd /usr/src
wget http://kent.dl.sourceforge.net/sourceforge/madwifi/madwifi-0.9.4.tar.gz
tar -zxvf madwifi-0.9.4.tar.gz
cd madwifi-0.9.4
Jetzt kommt der eigentlich wichtige Schritt. In der Datei vi ath/if_ath.c müssen folgende Zeilen beispielsweise mit dem vim oder mit nano entfernt werden.
#ifdef USE_HEADERLEN_RESV
dev->hard_header_len += sizeof(struct ieee80211_qosframe) +
sizeof(struct llc) +
IEEE80211_ADDR_LEN +
IEEE80211_WEP_IVLEN +
IEEE80211_WEP_KIDLEN;
#ifdef ATH_SUPERG_FF
dev->hard_header_len += ATH_FF_MAX_HDR;
#endif
#endif
Zuletzt noch die die Installationsumgebung aufräumen, Compilieren und die Module installieren. Hierbei wird unter Umständen gefragt was mit den alten Modulen passieren soll - diese können aber Entfernt (removed) werden - Wer denkt das diese noch gebraucht werden kann sie sich auflisten lassen und beispielsweise in einer zweiten Konsole wegsichern.
make clean
make
make install
Wenn nicht schon bei der Einrichtung geschehen muss das entsprechende Modul nun noch in die etc/modules eingefügt werden damit es beim Start des Systems mit geladen wird.
echo "ath_pci" >> /etc/modules
Nach einem Neustart des Systems findet sich in der dmesg dann hoffentlich ein entsprechend aktueller Versionshinweis. Die Fehlermeldung sollte natürlich nicht mehr auftauchen.
# dmesg | grep ath_pci
[17179585.564000] ath_pci: 0.9.4.5 (svn r1784)
Nun wird mit vmware-config.pl die bridge an ath0 neu erstellt und Virtuellen Maschinen arbeiten Problemlos.