Instalar/reinstalar VMware 7 en Linux con el kernel 2.6.32
Si has intentado instalar VMware 7 sobre una máquina Linux corriendo el kernel 2.6.32 tal vez hayas tenido problemas. También, como en mi caso, tener VMware instalado con el kernel 2.6.31 y actualizar a 2.6.32 resulta en problemas al recompilar los módulos (específicamente el vmnet y el vmci).
Los errores que arroja VMware al momento de tratar de recompilar los módulos son similares a esto:
Errores con el vmnet que se muestran en consola:
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c: En la función ‘VNetUserListenerEventHandler’:
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: ‘TASK_INTERRUPTIBLE’ no se declaró aquí (primer uso en esta función)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: (Cada identificador no declarado solamente se reporta una vez
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: para cada funcion en la que aparece.)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c: En la función ‘VNetUserListenerRead’:
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: ‘TASK_INTERRUPTIBLE’ no se declaró aquí (primer uso en esta función)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: declaración implícita de la función ‘signal_pending’
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: declaración implícita de la función ‘schedule’
make[2]: *** [/tmp/vmware-root/modules/vmnet-only/vnetUserListener.o] Error 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmnet-only] Error 2
make[1]: se sale del directorio `/usr/src/linux-2.6.32′
make: *** [vmnet.ko] Error 2
Errores con el vmci (Virtual Machine Communication Interface) que se muestran en consola:
In file included from /tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:48:
/tmp/vmware-root/modules/vmci-only/./include/pgtbl.h: En la función ‘PgtblVa2MPN’:
/tmp/vmware-root/modules/vmci-only/./include/pgtbl.h:301: error: puntero deferenciado a tipo de dato incompleto
/tmp/vmware-root/modules/vmci-only/./include/pgtbl.h: En la función ‘PgtblVa2Page’:
/tmp/vmware-root/modules/vmci-only/./include/pgtbl.h:373: error: puntero deferenciado a tipo de dato incompleto
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c: En la función ‘VMCIHost_SignalCall’:
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:328: error: ‘TASK_NORMAL’ no se declaró aquí (primer uso en esta función)
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:328: error: (Cada identificador no declarado solamente se reporta una vez
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:328: error: para cada funcion en la que aparece.)
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c: En la función ‘VMCIHost_WaitForCallLocked’:
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:370: error: puntero deferenciado a tipo de dato incompleto
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:370: error: ‘TASK_INTERRUPTIBLE’ no se declaró aquí (primer uso en esta función)
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:378: error: declaración implícita de la función ‘schedule’
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:386: error: puntero deferenciado a tipo de dato incompleto
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:386: error: ‘TASK_RUNNING’ no se declaró aquí (primer uso en esta función)
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:390: error: declaración implícita de la función ‘signal_pending’
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c: En la función ‘VMCI_SignalEvent’:
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:682: error: ‘TASK_NORMAL’ no se declaró aquí (primer uso en esta función)
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c: En la función ‘VMCI_WaitOnEventInterruptible’:
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:739: error: puntero deferenciado a tipo de dato incompleto
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:739: error: ‘TASK_INTERRUPTIBLE’ no se declaró aquí (primer uso en esta función)
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:751: error: puntero deferenciado a tipo de dato incompleto
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:751: error: ‘TASK_RUNNING’ no se declaró aquí (primer uso en esta función)
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c: En la función ‘VMCIHost_GetUserMemory’:
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:1438: error: puntero deferenciado a tipo de dato incompleto
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:1440: error: puntero deferenciado a tipo de dato incompleto
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:1459: error: puntero deferenciado a tipo de dato incompleto
/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.c:1487: error: puntero deferenciado a tipo de dato incompleto
make[2]: *** [/tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.o] Error 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmci-only] Error 2
make[1]: se sale del directorio `/usr/src/linux-2.6.32′
make: *** [vmci.ko] Error 2
La solución la comentan en Chmouel Blog y me la a sugerido Cortex, aunque hablan solamente de errores en el vmnet y no en el vmci. De cualquier forma, la solución prácticamente la misma:
cd /tmptar xf /usr/lib/vmware/modules/source/vmnet.tar- Entramos al directorio (
cd vmnet-only) - Abrimos el archivo
vnetUserListener.ccon un editor de texto - Añadimos esto al final de todos los includes:
add this line #include "compat_sched.h"
- Salimos del directorio (cd /tmp)
- Reemplazamos el arvhivo vmnet de vmware con el que hemos editado:
sudo tar cf /usr/lib/vmware/modules/source/vmnet.tar vmnet-only
Lo anterior es para evitar el problema con vmnet… con esto puedes intentar correr de nuevo VMWare. Si lo que ahora falla es el vmci puedes hacer lo mismo pero con el archivo /usr/lib/vmware/modules/source/vmci.tar.
Luego de esto, intentamos iniciar VMware o VMplayer los cuales recompilarán los módulos esta vez sin problemas:
SEO thing XD…
Pongo los errores como salen en inglés por si alguien los busca así
CC [M] /tmp/vmware-root/modules/vmnet-only/vnetUserListener.o
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c: In function ‘VNetUserListenerEventHandler’:
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: (Each undeclared identifier is reported only once
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: for each function it appears in.)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c: In function ‘VNetUserListenerRead’:
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: implicit declaration of function ‘signal_pending’
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: implicit declaration of function ‘schedule’
make[2]: *** [/tmp/vmware-root/modules/vmnet-only/vnetUserListener.o] Error 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmnet-only] Error 2
make[1]: Leaving directory `/opt/temp/linux-2.6.32′
make: *** [vmnet.ko] Error 2
Failed to compile module vmci
33 Comentarios | deja el tuyo







I love you man!!!
you+”google translate”
VMWare Player running like a charm now.
@Tierso:
Nice to know that… I guess it was a good idea writting the error in English
Bye bye!
Disculpa, me tomé el atrevimiento de colocar un enlace a tu página en mi blogroll y añadir un rss. Si no estas de acuerdo hazmelo saber
No hay ningún problema… por el contrario, es todo un honor para mi… muchas gracias.
Te añado también a mi lector de feeds.
Un saludo!
/tmp$ wget -q -O vmci.patch ‘http://p.casidiablo.net/?dl=4‘ ; cat vmci.patch | patch -p0
(Stripping trailing CRs from patch.)
can’t find file to patch at input line 3
Perhaps you used the wrong -p or –strip option?
The text leading up to this was:
————————–
|— vmci-only/include/pgtbl.h 2009-12-08 14:42:26.993362502 -0500
|+++ pgtbl.h 2009-12-08 14:42:19.737364526 -0500
————————–
File to patch: ?
pls help me …thks
Hi ayeye…
Try to make it this way:
cd /tmptar xf /usr/lib/vmware/modules/source/vmnet.tar
wget -q -O vmnet.patch 'http://p.casidiablo.net/?dl=5'
patch -p0 < vmnet.patch
sudo tar cf /usr/lib/vmware/modules/source/vmnet.tar vmnet-only
Tell me whether it works or not
Hi ,Thks again,i tried but don’t work…
Happy New Year !
nico@acerni:/tmp$ wget -q -O vgainmnet.patch ‘http://p.casidiablo.net/?dl=5‘
nico@acerni:/tmp$ patch -p0 < vmnet.patch(Stripping trailing CRs from patch.)
patching file vmnet-only/vnetUserListener.c
patch unexpectedly ends in middle of line
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 34.
1 out of 1 hunk FAILED — saving rejects to file vmnet-only/vnetUserListener.c.rej
nico@acerni:/tmp$ wget -q -O vmnet.patch 'http://p.casidiablo.net/?dl=5'
nico@acerni:/tmp$ patch -p0 < vmnet.patch
(Stripping trailing CRs from patch.)
patching file vmnet-only/vnetUserListener.c
patch unexpectedly ends in middle of line
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored — saving rejects to file vmnet-only/vnetUserListener.c.rej
nico@acerni:/tmp$
Hello Ayeye…
Here is not New Year yet XD
So… I think you have a different version of VMWare. Could you please pastebin your vnetUserListener.c file? I want to take a look of it
Bye!
Thanks, I solved the problem, put your 1st patch and changing the 2 ° by hand, now works all right ….
Thks so much 4 all i like ur blog….
see u …
Que gran ayuda¡¡
saludos
hola, no se si me puedas ayudar yo tengo el mismito problema pero con vmware server 2.0.2, baje unos parches que estaban en el foro de vmware los cuales tampoco me sirvieron… intentare tu metodo (aunque tal vez este de mas mencionar qeu tu metodo es para workstation pero que puedo perder? de todas maneras no jala la maquina virtual)
si sabes de alguna solución para el kernel 2.6.32-trunk-686 me agradaría saberlo
de ante mano gracias
bueeeno esto sucedio:
rc0:/usr/lib/vmware/modules/source# wget -q -O vmnet.patch ‘http://p.casidiablo.net/?dl=5‘ ; cat vmnet.patch | patch -p0
(Stripping trailing CRs from patch.)
patching file vmnet-only/vnetUserListener.c
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 34 with fuzz 2.
rc0:/usr/lib/vmware/modules/source#
y ya ni intente el segundo
he aqui la historia completa:
rc0:/usr/lib/vmware/modules/source# wget -q -O vmnet.patch ‘http://p.casidiablo.net/?dl=5‘ ; cat vmnet.patch | patch -p0
(Stripping trailing CRs from patch.)
patching file vmnet-only/vnetUserListener.c
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 34 with fuzz 2.
rc0:/usr/lib/vmware/modules/source# wget -q -O vmci.patch ‘http://p.casidiablo.net/?dl=4‘ ; cat vmci.patch | patch -p0
(Stripping trailing CRs from patch.)
patching file vmci-only/include/pgtbl.h
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 24 with fuzz 1.
rc0:/usr/lib/vmware/modules/source# ps -A|grep vm
rc0:/usr/lib/vmware/modules/source# /etc/init.d/vmware start
VMware Server is installed, but it has not been (correctly) configured
for the running kernel. To (re-)configure it, invoke the
following command: /usr/bin/vmware-config.pl.
rc0:/usr/lib/vmware/modules/source# vmware-config.pl -p
Making sure services for VMware Server are stopped.
Stopping VMware autostart virtual machines:
Virtual machines failed
Stopping VMware management services:
VMware Virtual Infrastructure Web Access
VMware Server Host Agent failed
Stopping VMware services:
VMware Authentication Daemon done
Virtual machine communication interface done
Virtual machine monitor done
Bridged networking on /dev/vmnet0 done
Host network detection done
DHCP server on /dev/vmnet1 done
Host-only networking on /dev/vmnet1 done
Bridged networking on /dev/vmnet2 done
DHCP server on /dev/vmnet8 done
NAT service on /dev/vmnet8 done
Host-only networking on /dev/vmnet8 done
Virtual ethernet done
None of the pre-built vmmon modules for VMware Server is suitable for your
running kernel.
Debiste poner los parches manualmente… a veces, por ser distintas versiones, los parches no se pueden aplicar de manera automática.
Un saludo!
ya pude hacer que jalara la maquina virtual pero no logro hacer que el vmware-mgmt funcione osea el webAccess
Creo que los links del wget no funcionan..
He intentado aplicarla y no da aun sigo con el problema..
No funcionan los links.
Lo siento Ivan… al parecer la base de datos donde estaban los parches se borró
He actualizado la entrada donde explico cómo hacer los pasos sin los parches (manualmente).
Un saludo!
Christian muchas gracias tanto por la informacion como por responder tan rapidamente. Mi problema es con el Vmware Player nuevo y el kernel 2.6.32.4
Me falla al compilar el vmnet pero simplemente dice que no encuentra el directorio /tmp/vmware-root/modules/vmnet-only
Crei que esta solucion me valdria pero no funciono. Aunque he de decir que antes de aplicarle me fallaba tambien el vmci pero despues ya no, ahora solo falla el vmnet. No se de que podra ser…
Hola …
Solo queria agradecer al creador de este post y confirmar que también fue mi solución al actualizar debian testing del kernel 2.6.30-2 al kernel 2.6.32 trunk y con el vmware workstation 6.5.3
En principio vmware actualizó todo excepto la tarjeta de red virtual, así que tuve suficiente con añadir #include “compat_sched.h”, volver a comprimir y ejecutar de nuevo vmware workstation.
La actualización fue correcta.
Mil gracias
Hola Kasiopea! Qué bien que te haya funcionado!
Un saludo!