[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

module-assistant durch DKMS ersetzen?



Hallo,

nachdem ich gerade letzten Monat das seit zehn Jahren benutzte
kernel-package durch make deb-pkg ersetzen musste, gibt es jetzt
dasselbe Spielchen mit module-assistant und einer Konstruktion, die
DKMS heißt, und von der ich noch nie etwas gehört habe.

Virtualbox-ose-source wurde auf DKMS umgestellt, seitdem funktioniert
module-assistant nicht mehr. Das liegt unter anderem daran, dass die
Modulesourcen jetzt nicht mehr in /usr/src/modules, sondern direkt
unterhalb /usr/src liegen.

Das postinst-Script von virtualbox-ose-source versucht ernsthaft, die
Module sofort bei der Installation zu bauen _UND_ _DIREKT_ _IM_
_LOKALEN_ _SYSTEM_ _ZU_ _INSTALLIEREN_!!! Und zwar unkonditional.

Wie ist das in Zukunft gedacht? Sollen wir wie auf BSDs Kernelsourcen
und Compiler auf jedem System installiert haben und die Module lokal
bauen? Oder wird es weiterhin einen Debian-Way geben, bei dem man
Kernel und out-of-tree-Module in saubere Debian-Pakete gießen kann,
die man dann auf den Zielsystemen ganz normal installieren kann? Gibt
es diesen Weg vielleicht schon, oder ich bin nur zu doof ihn zu
finden?

Jedenfalls funktioniert der triviale Weg, den module-assistant-Aufruf
einfach durch ein hoffentlich korrekt parametriertes dkms zu ersetzen,
nicht:

|$ /usr/sbin/dkms build -m vboxdrv -v 3.0.10 --dkmsframework ~/dkms/framework.conf --kernelsourcedir $(pwd)
|
|Preparing kernel 2.6.31.5-zgsrv20080 for module build:
|(This is not compiling a kernel, just preparing kernel symbols)
|Storing current .config to be restored when complete
|Running Generic preparation routine
|make mrproper..........
|using /home/mh/linux/2.6.31.6/linux-2.6.31.6/.config
|(I hope this is the correct config for this kernel)
|make oldconfig..........
|make prepare-all.....(bad exit status: 2)
|
|Building module:
|cleaning build area....
|make KERNELRELEASE=2.6.31.5-zgsrv20080 -C /home/mh/linux/2.6.31.6/linux-2.6.31.6 M=/home/mh/dkms/var/lib/vboxdrv/3.0.10/build.....(bad exit status: 2)
|
|Error! Bad return status for module build on kernel: 2.6.31.5-zgsrv20080 (i686)
|Consult the make.log in the build directory
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/ for more information.
|0
|0
|$

Das referenzierte make.log sieht mir so aus, als ob da irgend ein
Include-Verzeichnis nicht korrekt gesetzt ist:
|$ head -n 100 /home/mh/dkms/var/lib/vboxdrv/3.0.10/build/make.log
|DKMS make.log for vboxdrv-3.0.10 for kernel 2.6.31.5-zgsrv20080 (i686)
|Wed Nov 11 22:09:53 CET 2009
|make: Entering directory `/home/mh/linux/2.6.31.6/linux-2.6.31.6'
|
|  WARNING: Symbol version dump /home/mh/linux/2.6.31.6/linux-2.6.31.6/Module.symvers
|           is missing; modules will have no dependencies and modversions.
|
|  LD      /home/mh/dkms/var/lib/vboxdrv/3.0.10/build/built-in.o
|  CC [M]  /home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/SUPDrv-linux.o
|In file included from /home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/SUPDrv-linux.c:37:
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:82:30: error: linux/version.h: No such file or directory
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:85:12: warning: "LINUX_VERSION_CODE" is not defined
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:85:33: warning: "KERNEL_VERSION" is not defined
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:85:47: error: missing binary operator before token "("
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:89:8: warning: "LINUX_VERSION_CODE" is not defined
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:89:29: warning: "KERNEL_VERSION" is not defined
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:89:43: error: missing binary operator before token "("
|In file included from include/linux/gfp.h:4,
|                 from include/linux/slab.h:12,
|                 from /home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:101,
|                 from /home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/SUPDrv-linux.c:37:
|include/linux/mmzone.h:18:26: error: linux/bounds.h: No such file or directory
|include/linux/mmzone.h:251:5: warning: "MAX_NR_ZONES" is not defined
|In file included from include/linux/gfp.h:4,
|                 from include/linux/slab.h:12,
|                 from /home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:101,
|                 from /home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/SUPDrv-linux.c:37:
|include/linux/mmzone.h:288: error: ?MAX_NR_ZONES? undeclared here (not in a function)
|In file included from /home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/SUPDrv-linux.c:37:
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:102:8: warning: "LINUX_VERSION_CODE" is not defined
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:102:30: warning: "KERNEL_VERSION" is not defined
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:102:44: error: missing binary operator before token "("
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:105:34: error: asm/semaphore.h: No such file or directory
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:189:5: warning: "LINUX_VERSION_CODE" is not defined
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:189:26: warning: "KERNEL_VERSION" is not defined
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/../SUPDrvInternal.h:189:40: error: missing binary operator before token "("
|In file included from /home/mh/dkms/var/lib/vboxdrv/3.0.10/build/linux/SUPDrv-linux.c:38:
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/r0drv/linux/the-linux-kernel.h:45:5: warning: "LINUX_VERSION_CODE" is not defined
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/r0drv/linux/the-linux-kernel.h:45:26: warning: "KERNEL_VERSION" is not defined
|/home/mh/dkms/var/lib/vboxdrv/3.0.10/build/r0drv/linux/the-linux-kernel.h:45:40: error: missing binary operator before token "("

Kann mir jemand von Euch wieder auf die Spur helfen? Ich will doch nur
ein
virtualbox-ose-modules-zgws1_3.0.10-dfsg-1+2.6.31.6.20091111.0_all.deb,
das ich einfach wie ein aus make-kpkg modules_image oder m-a build
gefallenes .deb installieren kann. Oder einen Passierschein A39.

Grüße
Marc

-- 
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834


Reply to: