[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]Hola lista Ya superamos la parte del kernel y el sonido, ahora estamos con la cuestion de aplicaciones y bueno segun el documento http://thomer.com/linux/migrate-to-2.6.html en la seccion de configuracion del VMware para kernel 2.6 menciona algunos cambios en los fuentes de los modulos: First of all, replace all occurrences of ``/proc/ksyms'' with ``/proc/kallsyms'' in /usr/bin/vmware-config.pl. Untar vmnet.tar in /usr/lib/vmware/modules/source. This creates a vmnet-only directory. In that directory, edit bridge.c. Around line 368, change: atomic_add(skb->truesize, &sk->wmem_alloc); into: atomic_add(skb->truesize, &sk->sk_wmem_alloc); and, similarly, around line 618 and line 817, change protinfo into sk_protinfo. Respecto a algunos cambios de current->uid a current->__uid y otros miembros, no fueron necesarios ya que la estructura original sigue siendo sin el '__' en sus miembros, al menos en el fuente de mi kernel 2.6.3 Finalmente me lance a compilar pero encontre algo un poco terrible, un cambio realmente macabro... el error que me avento el compilador despues de realizar los cambios pertinentes fue el siguiente: make[2]: Entering directory `/tmp/vmware-config0/vmmon-only/driver-2.6.3' ../linux/driver.c:133: warning: initialization from incompatible pointer type ../linux/driver.c: In function `init_module': ../linux/driver.c:246: structure has no member named `prev' ../linux/driver.c:247: structure has no member named `next' ../linux/driver.c: In function `Panic': las lineas 246 y 247 de linux/driver.c contenido en el archivo vmmon.tar (vmmon-only descomprimido) y pues me puse a rastrear los headers del vmware y del sistema y me encontre con esto: En linux/driver.h (del vmmon.tar) esta definida la siguiente estructura typedef struct VMXLinuxState { int major; int minor; struct miscdevice misc; VmTimeStart startTime; char deviceName[DEVICE_NAME_SIZE]; char buf[LINUXLOG_BUFFER_SIZE]; VMLinux *head; /* * for LinuxDriverPoll() */ struct timer_list pollTimer; wait_queue_head_t pollQueue; } VMXLinuxState; Los miembros prev y next correspondientes a miscdevice (misc) no existen, asi que me puse a seguir el hilo hasta el header miscdevice.h del kernel y resulta que tambien esto cambio entre mi kernel 2.4.21 y el 2.6.3 *** Declaracion en 2.4.21 struct miscdevice { int minor; const char *name; struct file_operations *fops; struct miscdevice * next, * prev; devfs_handle_t devfs_handle; }; *** Declaracion en 2.6.3 struct miscdevice { int minor; const char *name; struct file_operations *fops; struct list_head list; struct device *dev; char devfs_name[64]; }; aqui ya no es un nombre diferente de variable o miembro, sino que son miembros totalmente diferentes... Me puse a buscar el bendito 'struct list_head' en los headers del kernel nuevo (2.6.3) y lo encontre en 'list.h' declarado de la siguiente manera: struct list_head { struct list_head *next, *prev; }; asi que modifique el linux/driver.c (de vmmon) de la siguiente forma por si acaso pegaba (realmente no sabia lo que iba a resultar): //linuxState.misc.prev = 0; //linuxState.misc.next = 0; linuxState.misc.list.prev = 0; linuxState.misc.list.next = 0; y bueno, resolvi el problema exclusivamente hasta este punto, el compilador supero esa parte del codigo, sin embargo al seguir un poco mas adelante escupio decenas de simbolos no definidos... esto ocurrio al compilar, no en el link, ni siquiera llego a ese punto... los simbolos indefinidos eran declarados en los headers y bueno pues me doy... si me pongo a ver si se puede arreglar cada uno de los simbolos tardare dias tal vez, y probablemente al final alguna otra incompatibilidad va a aparecer lo que hara mi trabajo vano... En fin, mi pregunta es... Alguien ya echo a volar el VMware con un kernel 2.6.3 (en particular este, ya que tal vez hubo cambios entre 2.6.0-test# y el actual... Si hay algun valiente por aqui que lo intento con exito me gustaria que comentara que paso o que se le ocurrio... Saludos y gracias __________________________________ Do you Yahoo!? Yahoo! Search - Find what you?re looking for faster http://search.yahoo.com _______________________________________________ Ayuda mailing list Ayuda en linux org mx Para salir de la lista: http://mail.linux.org.mx/cgi-bin/mailman/listinfo/ayuda/