(gelöst) Virtualbox Modul

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
guennid
Beiträge: 10855
Registriert: 31.10.2002 19:15:35
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Marburg

(gelöst) Virtualbox Modul

Beitrag von guennid » 05.01.2012 12:03:52

Ich habe mir einen eigenen vanilla-kernel 3.0.4 gebaut. Auf dem gleichen sqeeze-amd64, auf dem der Kern aus den Sourcen gebaut und installiert wurde, lässt sich jetzt mit

Code: Alles auswählen

/etc/init.d/vboxdrv setup
das Modul nicht mehr bauen. Fehlermeldung in /var/log/vbox-install.log:

Code: Alles auswählen

"LINUX_VERSION_CODE" is not defined
Was muss ich jetzt tun?
Zuletzt geändert von guennid am 07.01.2012 10:46:12, insgesamt 1-mal geändert.

rendegast
Beiträge: 14249
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Virtualbox Modul

Beitrag von rendegast » 05.01.2012 14:08:46

Existiert in Deinen kernel-Headers eine include/linux/version.h?
(kernel gebaut als debian-Paket 'make deb-pkg')

Existieren die Links /lib/modules/3.0.4.../{build,source}?
Zeigen sie auf das headers- resp. source-Verzeichnis?
(ein kleiner Bug im Target 'deb-pkg')








------------------------------------------------
Das hier betrifft wohl nicht Deinen selbstkompilierten Kernel 3.0.4,
da dieser wohl mit dem squeeze-gcc 4.4 gebaut wurde.

Mein Version von /var/lib/dkms/virtualbox/4.0.10/source/dkms.conf,
für den Betreib mit testing-Kernel in squeeze:

Code: Alles auswählen

PACKAGE_NAME="virtualbox"
PACKAGE_VERSION="4.0.10"
CLEAN="rm -f *.*o"
BUILT_MODULE_NAME[0]="vboxdrv"
BUILT_MODULE_LOCATION[0]="vboxdrv"
DEST_MODULE_LOCATION[0]="/updates"
BUILT_MODULE_NAME[1]="vboxnetadp"
BUILT_MODULE_LOCATION[1]="vboxnetadp"
DEST_MODULE_LOCATION[1]="/updates"
BUILT_MODULE_NAME[2]="vboxnetflt"
BUILT_MODULE_LOCATION[2]="vboxnetflt"
DEST_MODULE_LOCATION[2]="/updates"
AUTOINSTALL="yes"



# 20110901, gcc-4.4 statt gcc-4.5 unter squeeze
#       generisches kommando fuer kernel > 2.6.6, aus /usr/sbin/dkms:
MAKE[0]="make -C $kernel_source_dir M=$dkms_tree/$module/$module_version/build"

MAKE[1]="make -C $kernel_source_dir M=$dkms_tree/$module/$module_version/build   CC=gcc-4.4"
MAKE_MATCH[1]="3\.[0-9]\.[0-9]-.*-686-pae"

MAKE[2]="make -C $kernel_source_dir M=$dkms_tree/$module/$module_version/build   CC=gcc-4.4"
MAKE_MATCH[2]="3\.[0-9]\.[0-9]-.*-amd64"
zusätzlich noch equivs-dummys für multiarch-support / gcc-4.5 und gcc-4.6.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

guennid
Beiträge: 10855
Registriert: 31.10.2002 19:15:35
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Marburg

Re: Virtualbox Modul

Beitrag von guennid » 05.01.2012 16:15:30

Mal, schien es mir, reichten die kernel-Sourcen zum Bau des VB-Moduls, mal, schien es mir, waren diese headers erforderlich. Ich blick da nicht durch. Wo finde ich die "kernel-headers"?

Kernel gebaut mit make-kpkg

An die gcc-Version habe ich auch schon gedacht- ich habe bisher nur squeeze, also wohl 4.4

Gruß, Günther

rendegast
Beiträge: 14249
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Virtualbox Modul

Beitrag von rendegast » 06.01.2012 00:19:43

Mit 'make deb-pkg' (als root) werden diese Pakete erstellt:

Code: Alles auswählen

$ ls -1 *deb
linux-firmware-image_3.0.9-1_i386.deb
linux-headers-3.0.9_3.0.9-1_i386.deb
linux-image-3.0.9_3.0.9-1_i386.deb
linux-libc-dev_3.0.9-1_i386.deb
Eventuell hat 'make-kpkg' da Probleme,
oder es wurde 'binary-arch' (kernel + headers) nicht als root ausgeführt.

Die eventuell nötige Nachkontrolle für build/ und source/ habe ich schon erwähnt.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

guennid
Beiträge: 10855
Registriert: 31.10.2002 19:15:35
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Marburg

Re: Virtualbox Modul

Beitrag von guennid » 06.01.2012 13:46:31

Die vier debs habe ich jetzt. kernel-image + headers erneut installiert. Funktioniert immer noch nicht.

/var/lib/dkms/vboxhost/4.0.2/build/make.log:

Code: Alles auswählen

DKMS make.log for vboxhost-4.0.2 for kernel 3.0.4-tp.0 (x86_64)
Fr 6. Jan 13:37:45 CET 2012
make: Entering directory `/usr/src/linux-3.0.4'
  LD      /var/lib/dkms/vboxhost/4.0.2/build/built-in.o
  LD      /var/lib/dkms/vboxhost/4.0.2/build/vboxdrv/built-in.o
  CC [M]  /var/lib/dkms/vboxhost/4.0.2/build/vboxdrv/linux/SUPDrv-linux.o
In file included from /var/lib/dkms/vboxhost/4.0.2/build/vboxdrv/include/VBox/types.h:30,
                 from /var/lib/dkms/vboxhost/4.0.2/build/vboxdrv/linux/../SUPDrvInternal.h:35,
                 from /var/lib/dkms/vboxhost/4.0.2/build/vboxdrv/linux/SUPDrv-linux.c:31:
/var/lib/dkms/vboxhost/4.0.2/build/vboxdrv/include/iprt/types.h:105:31: error: linux/autoconf.h: Datei oder Verzeichnis nicht gefunden
make[2]: *** [/var/lib/dkms/vboxhost/4.0.2/build/vboxdrv/linux/SUPDrv-linux.o] Fehler 1
make[1]: *** [/var/lib/dkms/vboxhost/4.0.2/build/vboxdrv] Fehler 2
make: *** [_module_/var/lib/dkms/vboxhost/4.0.2/build] Fehler 2
make: Leaving directory `/usr/src/linux-3.0.4'
/var/log/vbox-install.log

Grüße, Günther

rendegast
Beiträge: 14249
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Virtualbox Modul

Beitrag von rendegast » 06.01.2012 14:46:59

... + headers erneut installiert.
... Entering directory `/usr/src/linux-3.0.4'
... error: linux/autoconf.h: Datei oder Verzeichnis nicht gefunden
In meinem 'make deb-pkg'-Paket der headers befindet sich besagte Datei in
/usr/src/linux-headers-3.0.4/include/generated/, dazu noch andere wie
asm-offsets.h
autoconf.h
bounds.h
compile.h
utsrelease.h
(Wobei ich aber mit diesem Verzeichnis arbeiten kann)

Bei Dir mußt Du wohl Links zu den "klassischen" Orten herstellen,
also wie in der Fehlermeldung include/linux/autoconf.h,
oder include/asm[-x86]/asm-offsets.h usw.
(Die Fehlermeldungen entlanghangeln für diese paar Fälle)



Die beiden erwähnten Links des Modulverzeichnisses bei mir:

Code: Alles auswählen

14:46 root@machine:/lib/modules/3.0.4# ll
total 2888
lrwxrwxrwx  1 root root     28 Aug 31 17:40 build -> /usr/src/linux-headers-3.0.4
drwxr-xr-x 10 root root   4096 Aug 31 17:39 kernel
-rw-r--r--  1 root root 666829 Nov 13 19:28 modules.alias
-rw-r--r--  1 root root 652437 Nov 13 19:28 modules.alias.bin
-rw-r--r--  1 root root   3026 Aug 31 14:50 modules.builtin
-rw-r--r--  1 root root   4224 Nov 13 19:28 modules.builtin.bin
-rw-r--r--  1 root root 329439 Nov 13 19:28 modules.dep
-rw-r--r--  1 root root 463178 Nov 13 19:28 modules.dep.bin
-rw-r--r--  1 root root    299 Nov 13 19:28 modules.devname
-rw-r--r--  1 root root 112822 Aug 31 14:50 modules.order
-rw-r--r--  1 root root    131 Nov 13 19:28 modules.softdep
-rw-r--r--  1 root root 292961 Nov 13 19:28 modules.symbols
-rw-r--r--  1 root root 368090 Nov 13 19:28 modules.symbols.bin
lrwxrwxrwx  1 root root     28 Aug 31 19:04 source -> /usr/src/linux-headers-3.0.4
drwxr-xr-x  3 root root   4096 Nov 12 06:39 updates
(habe zumindest einen manuell umgebogen)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

guennid
Beiträge: 10855
Registriert: 31.10.2002 19:15:35
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Marburg

Re: Virtualbox Modul

Beitrag von guennid » 06.01.2012 16:46:16

Bingo Herr rendegast! :hail: :THX: :hail: :THX: :hail: :THX:

Code: Alles auswählen

ln -s /usr/src/linux-3.0.4/include/generated/autoconf.h /usr/src/linux-3.0.4/include/autoconf.h
war alles, was getan werden musste. Modul ist gebaut und VB läuft.

Den Umweg über make deb-kpg (headers erzeugen) hätte ich mir wohl sparen können :mrgreen:

Ich erinnere dunkel, das ich zumindest was Ähnliches in grauer Vorzeit :| schon mal hatte. Guckst du hier.

Liegt das an meinen vanilla.sourcen?

[edit:]
Und wieder einmal hat man mir jetzt das Modul für den 2.6.37-Eigenbau wieder rausgeworfen. Was soll das? Anders gefragt, wenn ich das jetzt wieder neu baue (ist möglich, habe ich beim ersten Versuch bereits durch), fliegt dann wieder das für den 3.0.4er raus?

Ist dkms der Übeltäter?

rendegast
Beiträge: 14249
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Virtualbox Modul

Beitrag von rendegast » 06.01.2012 17:21:07

dkms-Module werden nur für (meine Erfahrung) 2 Kernelversionen eingerichtet.
(Ein Kriterium ist wohl die höchste Kernelversion, vgl. /usr/sbin/dkms)
Weitere Kernel müssen dann manuell ('build', 'install') eingerichtet werden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

guennid
Beiträge: 10855
Registriert: 31.10.2002 19:15:35
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Marburg

Re: (gelöst) Virtualbox Modul

Beitrag von guennid » 07.01.2012 12:10:44

Mir erlaubt das system offenbar nur für einen Kern den VB-Treiber. :cry:
rendegast hat geschrieben:Weitere Kernel müssen dann manuell ('build', 'install') eingerichtet werden.
Ich habe keine Ahnung wie das geht.

Grüße, Günther

rendegast
Beiträge: 14249
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) Virtualbox Modul

Beitrag von rendegast » 07.01.2012 12:26:10

Ein wenig Herumprobieren + 'man dkms'?

Code: Alles auswählen

dkms status

dkms build -m v<TAB> -v 4<TAB> -k 3<TAB>
(completion-fähig)
führt zu 
"dkms build -m virtualbox -v 4.0.2 -k 3.0.4" ENTER

Gleiches Schema
"dkms install -m virtualbox -v 4.0.2 -k 3.0.4" ENTER

dkms status
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten