vmware-specific-specific 5.5.x and kernel 2.6.32

Posted on December 4th, 2009

You can follow any responses to this entry through the RSS 2.0 feed.

vmware startup

Just a small fix to the previous patch was necessary for this one to work.

Remember that you do need to patch your kernel for this to work properly.

See the README inside the archive.

vmware-update-2.6.32-5.5.9.tar.bz2

Edit: there is a more complete patch here for vmware server 2.0.2, i haven’t tested it.

6 Responses to “vmware-specific-specific 5.5.x and kernel 2.6.32”

  1. Cyber says:

    works like a charm – thanks again! ;)

    >>>Alois

  2. PierP says:

    Works also great with VMware Server 1.0.10 (and 2.6.32.2)! Just what I was looking for! :) Thanx!

  3. big al says:

    fedora core 12 doesn’t have init_task.c in the source-devel so the patch doesn’t work. Is there another kernel-devel distro I should be using?

  4. Ramon de Carvalho Valle says:

    I released a patch for VMware Server 2.0.2 that properly add support for newer versions of the Linux kernel:

    http://risesecurity.org/2010/01/10/vmware-server-2-0-2-update-patch/

  5. Aack says:

    Ok, so I took Ramon’s patch and stole all the good bits to make server 1.0.10 compile for 2.6.31 on fedora 12, however when a guest is started, my system (core2 quad 3.0G) slows to almost stopped. I’ve tried several variations of his fixes vs Kang’s fixes + Ramons init_mm fix, etc. All seem to give the same result. I’m stumped. Any ideas on what to try next welcome. I would prefer to stick with version 1 for the console.

  6. hankang says:

    Updating what I did for 2.6.31 – no need to recompile host kernel!

    #!/bin/sh
    cd /usr/lib/vmware/modules/source
    cp vmmon.tar vmmon.2.6.32.save.tar
    cp vmnet.tar vmnet.2.6.32.save.tar
    tar xf vmmon.tar
    tar xf vmnet.tar
    cat %3C%3C HERE | patch -p1
    diff -Naur ./vmmon-only.old/include/compat_pgtable.h ./vmmon-only/include/compat_pgtable.h
    — ./vmmon-only.old/include/compat_pgtable.h 2007-07-22 07:21:17.000000000 -0400
    +++ ./vmmon-only/include/compat_pgtable.h 2010-02-02 15:54:55.000000000 -0500
    @@ -72,7 +72,7 @@
    #endif

    -#ifdef pgd_offset_k
    +#if (LINUX_VERSION_CODE %3C KERNEL_VERSION(2, 6, 25)) && defined(pgd_offset_k)
    # define compat_pgd_offset_k(mm, address) pgd_offset_k(address)
    #else
    # define compat_pgd_offset_k(mm, address) pgd_offset(mm, address)
    diff -Naur ./vmmon-only.old/include/pgtbl.h ./vmmon-only/include/pgtbl.h
    — ./vmmon-only.old/include/pgtbl.h 2007-07-22 07:21:17.000000000 -0400
    +++ ./vmmon-only/include/pgtbl.h 2010-03-09 06:44:56.000000000 -0500
    @@ -7,7 +7,6 @@
    #include “compat_spinlock.h”
    #include “compat_page.h”

    -
    /*
    *—————————————————————————–
    *
    diff -Naur ./vmmon-only.old/include/vmci_kernel_defs.h ./vmmon-only/include/vmci_kernel_defs.h
    — ./vmmon-only.old/include/vmci_kernel_defs.h 2007-05-02 00:08:21.000000000 -0400
    +++ ./vmmon-only/include/vmci_kernel_defs.h 2010-03-09 06:53:14.000000000 -0500
    @@ -27,6 +27,7 @@
    #include “compat_interrupt.h”
    #include “compat_spinlock.h”
    #include “compat_slab.h”
    +#include “compat_sched.h”
    #endif // linux

    #ifdef __APPLE__
    diff -Naur ./vmmon-only.old/linux/hostif.c ./vmmon-only/linux/hostif.c
    — ./vmmon-only.old/linux/hostif.c 2009-04-21 10:47:54.000000000 -0400
    +++ ./vmmon-only/linux/hostif.c 2010-02-02 15:56:33.000000000 -0500
    @@ -564,6 +564,7 @@
    static void
    DoClearNXBit(VA vaddr)
    {
    +#if LINUX_VERSION_CODE %3C KERNEL_VERSION(2, 6, 25)
    int ptemap;
    pgd_t *pgd = pgd_offset_k(vaddr);
    pmd_t *pmd = pmd_offset_map(pgd, vaddr);
    @@ -574,6 +575,10 @@
    } else {
    pte = pte_offset_map(pmd, vaddr);
    }
    +#else /* >= 2.6.25 */
    + int level;
    + pte_t *pte = lookup_address(vaddr & PAGE_MASK, &level);
    +#endif /* linux version */
    if (pte_val(*pte) & _PAGE_NX) {
    /* pte_val() is not lvalue on x86 PAE */
    #ifdef CONFIG_X86_PAE
    HERE
    cat << HERE | patch -p1
    diff -Naur ./vmnet-only.old/compat_pgtable.h ./vmnet-only/compat_pgtable.h
    — ./vmnet-only.old/compat_pgtable.h 2007-11-28 05:25:06.000000000 -0500
    +++ ./vmnet-only/compat_pgtable.h 2010-02-02 15:58:37.000000000 -0500
    @@ -76,7 +76,7 @@
    #endif

    -#ifdef pgd_offset_k
    +#if (LINUX_VERSION_CODE %3C KERNEL_VERSION(2, 6, 25)) && defined(pgd_offset_k)
    # define compat_pgd_offset_k(mm, address) pgd_offset_k(address)
    #else
    # define compat_pgd_offset_k(mm, address) pgd_offset(mm, address)
    HERE
    tar cf vmmon.tar ./vmmon-only
    tar cf vmnet.tar ./vmnet-only

    NOTE: I replaced %3C with %253C so the tag stripper wouldn’t rip out pieces of the script.

Leave a Reply