Truc : wheezy virtualbox-dkms avec kernel >3.2 maison

Ia orana, j’ai fait un truc qui peut probablement servir à d’autre.

Problème : virtualbox-dkms 4.1.18 ne compile pas les modules adhoc si vous vous compilez/installez une version supérieure à 3.9 du kernel (image+headers).

Solution :
1- Ajouter les lignes suivantes dans le fichier d’entête /var/lib/dkms/virtualbox/4.1.18/source/r0drv/linux/the-linux-kernel.h le code suivant :[code]#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)

include <linux/sched/rt.h>

#endif [/code]
2- Enregistrer le patch suivant : [code]— a/r0drv/linux/memobj-r0drv-linux.c
+++ b/r0drv/linux/memobj-r0drv-linux.c
@@ -1448,7 +1448,13 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(

#if defined(VBOX_USE_INSERT_PAGE) && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
rc = vm_insert_page(vma, ulAddrCur, pMemLnxToMap->apPages[iPage]);

  •                vma->vm_flags |= VM_RESERVED; /* This flag helps making 100% sure some bad stuff wont happen (swap, core, ++). */
    
  •                /* Thes flags help making 100% sure some bad stuff wont happen (swap, core, ++).
    
  •                 * See remap_pfn_range() in mm/memory.c */
    

+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0)

  •                vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
    

+#else

  •                vma->vm_flags |= VM_RESERVED;
    

+#endif
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 11)
rc = remap_pfn_range(vma, ulAddrCur, page_to_pfn(pMemLnxToMap->apPages[iPage]), PAGE_SIZE, fPg);
#elif defined(VBOX_USE_PAE_HACK)
[/code] dans le repertoire /var/lib/dkms/virtualbox/4.1.18/source
puis #patch --dry-run -p1 < patch-3.7.patch S’il n’y a pas d’erreur recommencer avec #patch -p1 < patch-3.7.patch.
3- indiquer à virtualbox-dkms de construire ses modules : #dpkg-reonfigure virtualbox-dkms.

Et voila…

Source :
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=707094
https://www.virtualbox.org/changeset/44867/vbox