Package: virtualbox-guest-dkms Version: 4.1.18-dfsg-2 Followup-For: Bug #703358
Dear Maintainer, Without a Linux 3.4 kernel and with the 3.2 kernel currently included with Debian 7.0 (patched to include portions of the 3.4 kernel), build fails when attempting to build the kernel modules required to support Debian 7.0 inside a virtualbox virtual machine. Here's an excerpt reporting the error: Loading new virtualbox-guest-4.1.18 DKMS files... Building only for 3.2.0-4-amd64 Building initial module for 3.2.0-4-amd64 Error! Bad return status for module build on kernel: 3.2.0-4-amd64 (x86_64) To overcome the difficulty, I modified the r42164 fix available from the following source: https://www.virtualbox.org/ticket/10756 After patching the code, "dpkg-reconfigure virtualbox-guest-dkms" successfully produces functional modules: DKMS: install completed. The patch here assumes that any kernel at or above 3.2.39 is either 3.3.0+ or is modified with drm code from the later kernel versions for a Debian 7.0 system. Obviously, this patch breaks 3.2 compatibility above 3.2.39 for a non-"Debian 7.0" system or a Debian 7.0 system modified to run a clean 3.2 kernel, but Debian 7.0 already breaks version number compatibility anyway by patching the 3.2 kernel with portions of 3.4 code and calling it 3.2 instead of using the entire stable 3.4 kernel and calling it 3.4. In other words, this patch counters one somewhat broken version number with a version check that is itself somewhat broken. "A broken patch for a broken system." *** Patch begin (edited by jodarom, licensed for GNU GPLv2) *** --- vboxvideo_drm.c.orig 2012-06-20 08:09:07.000000000 -0500 +++ vboxvideo_drm.c 2013-03-29 06:19:28.689023873 -0500 @@ -67,6 +67,14 @@ # if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,1) # define DRM_RHEL61 # endif +# if RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(6,3) +# define DRM_RHEL63 +# endif +# endif +/* Debian 7.0 patches kernel 3.2.39 with code from the 3.4 kernel */ +/* Assume a Debian 7.0 system and force it for versions >= 3.2.39 */ +# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 39) +# define DRM_DEBIAN70 # endif # endif @@ -85,7 +93,7 @@ return 0; #endif } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0) || defined(DRM_RHEL63) || defined(DRM_DEBIAN70) /* since linux-3.3.0-rc1 drm_driver::fops is pointer */ static struct file_operations driver_fops = { @@ -109,7 +117,7 @@ .get_map_ofs = drm_core_get_map_ofs, .get_reg_ofs = drm_core_get_reg_ofs, #endif -# if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) +# if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) && !defined(DRM_RHEL63) && !defined(DRM_DEBIAN70) .fops = { .owner = THIS_MODULE, @@ -126,7 +134,7 @@ .poll = drm_poll, .fasync = drm_fasync, }, -#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0) */ +#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0) || defined(DRM_RHEL63) || defined(DRM_DEBIAN70) */ .fops = &driver_fops, #endif #if LINUX_VERSION_CODE < KERNEL_VERSION (2, 6, 39) && !defined(DRM_RHEL61) *** Patch end *** -- System Information: Debian Release: 7.0 APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-4-amd64 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages virtualbox-guest-dkms depends on: ii dkms 2.2.0.3-1.2 ii dpkg 1.16.9 ii virtualbox-guest-utils 4.1.18-dfsg-2 virtualbox-guest-dkms recommends no packages. virtualbox-guest-dkms suggests no packages. -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org