Vmware su Ubuntu 7.04 Feisty Fawn
Eh si, ho fatto l’upgrade da Dapper a Edgy e ora a Feisty Fawn (7.04). In realtà l’upgrade non è né difficoltoso né penoso e non riserva sorprese se non per i software di terze parti. Nel mio caso due cose hanno causato problemi: i driver della wireless rt61 (sulla quale scriverò separatamente prima o poi) e vmware workstation - ma gli stessi problemi sono anche per vmware server -.
In generale, ad ogni aggiornamento del kernel, è necessario ricompilare i driver di vmware (altrimenti quest’ultimo non parte) con la procedura classica
vmware-config-pl
Il punto è che si tenta di eseguire tale procedura in Ubuntu 7.04 si verifica un errore al momento di compilare il driver vmmon.
Il messaggio di errore è il seguente:
make: Entering directory `/tmp/vmware-config3/vmmon-only’ make -C /lib/modules/2.6.20-15-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules make[1]: Entering directory `/usr/src/linux-headers-2.6.20-15-generic’ CC [M] /tmp/vmware-config3/vmmon-only/linux/driver.o In file included from /tmp/vmware-config3/vmmon-only/linux/driver.c:80: /tmp/vmware-config3/vmmon-only/./include/compat_kernel.h:21: error: expected declaration specifiers or ‘…’ before ‘compat_exit’ /tmp/vmware-config3/vmmon-only/./include/compat_kernel.h:21: error: expected declaration specifiers or ‘…’ before ‘exit_code’ /tmp/vmware-config3/vmmon-only/./include/compat_kernel.h:21: warning: type defaults to ‘int’ in declaration of ‘_syscall1’ make[2]: *** [/tmp/vmware-config3/vmmon-only/linux/driver.o] Error 1 make[1]: *** [_module_/tmp/vmware-config3/vmmon-only] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.20-15-generic’ make: *** [vmmon.ko] Error 2 make: Leaving directory `/tmp/vmware-config3/vmmon-only’ Unable to build the vmmon module.
Esistono in giro diversi workaround relativi a questo problema (per esempio questo e questo) ma il problema è piuttosto semplice ed è dovuto ad un madornale errore nel codice c++ del file compat_kernel.h che si trova (tipicamente) nel tarball
/usr/lib/vmware/modules/source/vmmon.tar
La soluzione è piuttosto semplice:
1. scompattare il file (tar -xf vmmon.tar)
2. editare vmmon-only/include/compat_kernel.h
3. Cercare la riga
#define __NR_compat_exit __NR_exit
static inline _syscall1(int, compat_exit, int, exit_code);
e sostituirla con la seguente:
#define __NR_compat_exit __NR_exit
static inline _syscall1(int compat_exit, int exit_code);
(si notino le orribili virgole dopo gli ‘int’…
4. reimpacchettare (tar -cf vmmon.tar vmmon-only) e lanciare nuovamente lo script di configurazione.
E’ tutto!
Tags: ubuntu, vmware, feisty, fawn, workstation, server
Grazie, questa guida su vmware mi è stato molto utile.
Ciao
Maurizio
Grazie…
perfetto…posso tornare ad usare wmware…
molto bravo!