VMware Server 1.0.8 und Kernel 2.6.29
Mit 2.6.29 wird das Symbol init_mm nicht mehr exportiert. Benötigt wird daher zuerst der Kernel-Patch: kernel-2.6.29.mm_init.it-psycho.patch.bz2 (330 bytes).
Die aktualisierten und getesteten Module vmmon.tar und vmnet.tar aus dem Modulpaket vmware-server-modules-2.6.29.it-psycho.tar.bz2 (173,55 KB) werden einfach in das Verzeichnis vmware-server-distrib/lib/modules/source kopiert und somit die alten Versionen überschrieben.
Danach wie gehabt VMware Server mit ./vmware-install.pl installieren.
Artikel

Irgendwo habe ich noch einen Fehler, der den Netzwerkstack vom Host killt:
> bridge-eth0: history full
Daher nicht auf Produktivsystemen testen! Wenn jemand den Fehler findet nenne ich ihn gerne im nächsten Eintrag.
Habe die Module aktualisiert und ein paar Compiler-Warnungen entfernt, aber noch nicht ausgiebig getestet.
Funktioniert mit Kernel 2.6.29.1.
Aus dem Changelog:
“GRO: Disable GRO on legacy netif_rx path”
http://patchwork.kernel.org/patch/14804/
top top top …
mit vmware-server 1.0.9 und kernel 2.6.29.1 funktionieren deine module perfekt.
vielen dank!
>>>Cyber
P.S.: falls du was damit anfangen kannst: ein mal nach dem vmware-config.pl (also nicht nach neubooten) wird ein trace ins dmesg geschrieben – ich vermute, weil nach vmware-config.pl das modul schon geladen ist und mit vmware start nochmal geladen wird. Hat aber keinerlei auswirkungen, hatte ich auch schon davor ewig mit früheren versionen der module.
[ 978.078547] ————[ cut here ]————
[ 978.078645] WARNING: at fs/proc/generic.c:547 proc_register 0xf1/0x11a()
[ 978.078733] Hardware name: CLE266-8235
[ 978.078816] proc_dir_entry ‘/proc/vmnet’ already registered
[ 978.078901] Modules linked in: vmnet(P ) vmmon(P) budget_av saa7146_vv videobuf_dma_sg videobuf_core budget_core saa7146 ttpci_eeprom tda10021 tda10023 [last unloaded: vmnet]
[ 978.079570] Pid: 6016, comm: insmod Tainted: P 2.6.29.1 #1
[ 978.079658] Call Trace:
[ 978.079753] [] warn_slowpath 0×71/0xa7
[ 978.079848] [] ? sysfs_ilookup_test 0×0/0×11
[ 978.079946] [] ? ifind 0xc/0×48
[ 978.080080] [] ? sysfs_addrm_finish 0×16/0×173
[ 978.080172] [] ? idr_get_empty_slot 0x14f/0×238
[ 978.080262] [] ? ida_get_new_above 0x15d/0×177
[ 978.080352] [] proc_register 0xf1/0x11a
[ 978.080442] [] create_proc_entry 0x7b/0×91
[ 978.080548] [] VNetProc_MakeEntry 0x1b/0x2b [vmnet]
[ 978.080650] [] VNetProc_Init 0×19/0x1c [vmnet]
[ 978.080750] [] init_module 0xa/0xd5 [vmnet]
[ 978.080839] [] _stext 0×49/0x10b
[ 978.080935] [] ? init_module 0×0/0xd5 [vmnet]
[ 978.081030] [] ? __blocking_notifier_call_chain 0×40/0x4c
[ 978.081128] [] sys_init_module 0×87/0×187
[ 978.081217] [] sysenter_do_call 0×12/0×25
[ 978.081304] —[ end trace 1b657d4b3409d876 ]—
Ja, das liegt an einer Änderung im proc-interface. Die unregister-Funktion tut nicht korrekt.
na dann auf auf, ich denke wenn das ein mal jemand richtet dann sind viele nachfolgeversionen davon befreit (:
ich bin leider nicht fähig da was zu ändern, meine programmierkenntnisse sind so gut wie auf “hoffen dass andere alles richtig gemacht haben” beschränkt. ;)
wenn erforderlich kann ich die Speichernummern die im obigen post rausgefiltert wurden nachreichen ;)
>>>Cyber
/tmp/vmware-config0/vmmon-only/linux/driver.c: In function ‘LinuxDriver_Ioctl’:
/tmp/vmware-config0/vmmon-only/linux/driver.c:1736: error: too many arguments to function ‘smp_call_function’
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] Error 1
Ganz so billig scheint der Patch doch nicht zu sein. Zumindest erscheint dieser Fehler bei meinem SMP-Kernel. Man koennte die Argumentliste anpassen, denn irgendjemand hat den Parameter retry abgeschafft:
int smp_call_function(void(*func)(void *info), void *info, int retry, int wait);
heisst jetzt:
int smp_call_function(void(*func)(void *info), void *info, int wait);
Bin mir aber nicht sicher, dass es damit getan ist.
Zur info, falls jemand ähnliche Probleme hat: ich konnte bei keiner vm das BIOS oder das bootmenü aufrufen – das vm-modul hat mir einen trace ins dmesg geschrieben und der entsprechende vmx-Prozess ist im defunct-Status hängengeblieben.
Lösung: im Linux-Kern unter “Process type and features” -> “Timer frequency” auf 1000HZ stellen (CONFIG_HZ_1000=y bzw. CONFIG_HZ=1000), alle anderen Werte funktionieren nicht.
>>>Cyber
[...] Im Netz findet man Workarounds wie dieses: Link [...]
Sie müssen entladen die ersten KVM.