Pagina 1 di 3

Incasinamento con gli header

Inviato: sab 6 dic 2008, 15:27
da marcelloma
Sono passato al kernel 2.6.27.5, si avvia tranquillamente ma penso di aver fatto qualche casino con gli header del kernel e delle glibc infatti adesso non riesco a compilare i programmi
root$ cat /var/log/vbox-install.log
make KBUILD_VERBOSE=1 -C /lib/modules/2.6.27.5-aspire/build SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 modules
make[1]: Entering directory `/usr/src/linux-2.6.27.5'
test -e include/linux/autoconf.h -a -e include/config/auto.conf || (
echo;
echo " ERROR: Kernel configuration is invalid.";
echo " include/linux/autoconf.h or include/config/auto.conf are missing.";
echo " Run 'make oldconfig && make prepare' on kernel src to fix it.";
echo;
/bin/false)
mkdir -p /tmp/vbox.0/.tmp_versions ; rm -f /tmp/vbox.0/.tmp_versions/*
make -f scripts/Makefile.build obj=/tmp/vbox.0
gcc -Wp,-MD,/tmp/vbox.0/linux/.SUPDrv-linux.o.d -nostdinc -isystem /usr/lib/gcc/i486-slackware-linux/4.2.3/include -D__KERNEL__ -Iinclude -I/usr/src/linux-2.6.27.5/arch/x86/include -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -O2 -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=i686 -mtune=pentium4 -ffreestanding -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Iinclude/asm-x86/mach-default -fno-stack-protector -fomit-frame-pointer -Wdeclaration-after-statement -Wno-pointer-sign -I/lib/modules/2.6.27.5-aspire/build/include -I/tmp/vbox.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING -DCONFIG_VBOXDRV_AS_MISC -DRT_ARCH_X86 -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(SUPDrv_linux)" -D"KBUILD_MODNAME=KBUILD_STR(vboxdrv)" -c -o /tmp/vbox.0/linux/.tmp_SUPDrv-linux.o /tmp/vbox.0/linux/SUPDrv-linux.c
In file included from include/asm/semaphore.h:2,
from include/linux/fs.h:290,
from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:79,
from /tmp/vbox.0/linux/SUPDrv-linux.c:38:
include/asm/semaphore_32.h:44: error: redefinition of 'struct semaphore'
In file included from include/asm/semaphore.h:2,
from include/linux/fs.h:290,
...
mi da questi errori di ridefinizione di strutture che non coincidono e di file che mancano..come faccio a rimediare? Help grazie :|

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 15:31
da slucky
ma l'hai compilato dai sorgenti il nuovo kernel oppure hai installato i pacchetti dalla current? :-k

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 15:34
da conraid
Gli header del kernel non vanno installati.
A meno che dopo non ricompili anche le glibc.

Quindi rimetti il pacchetto kernel-headers originale per la versione di Slackware che usi, e la prossima volta installa il kernel e basta

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 15:39
da marcelloma
Penso di aver capito il problema

Codice: Seleziona tutto

 file /usr/src/linux
/usr/src/linux: symbolic link to `linux-2.6.27.5/'
e' rimasto il link simbolico agli header del nuovo kernel, a cosa devo fare puntare invece /usr/src/linux ?

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 15:57
da slucky
quando compili dai sorgenti un nuovo kernel, devi sempre cancellare il precedente link al vecchio kernel e poi crei il nuovo collegamento:

rm -f linux
ln -s linux-2.6.27.5 linux

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 16:00
da conraid
Riguardando l'errore sembra che tu non hai compilato il kernel, ma solamente installato i sorgenti. Mi sbaglio?

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 16:07
da marcelloma
sei sicuro di

Codice: Seleziona tutto

ln -s linux-2.6.27.5 linux
il file linux gia' punta a linux-2.6.27.5 , forse intendevi linux-2.6.24.5 ?

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 16:12
da marcelloma
conraid ha scritto:Riguardando l'errore sembra che tu non hai compilato il kernel, ma solamente installato i sorgenti. Mi sbaglio?
No il kernel l'ho compilato
root$ uname -r
2.6.27.5-aspire
root$
sono ancora agli inizi con linux quindi se potete darmi una mano..la mia situazione e' questa dal kernel 2.6.24.5 sono passato al 2.6.27.5.A quel punto però ho comincato ad avere questi errori
root$ ls -lisa
total 28
443236 4 drwxr-xr-x 7 root root 4096 2008-12-06 16:04 .
443233 4 drwxr-xr-x 20 root root 4096 2008-11-24 21:01 ..
...
447171 0 lrwxrwxrwx 1 root root 15 2008-12-06 16:04 linux -> linux-2.6.27.5/
659339 4 drwxr-xr-x 20 root root 4096 2008-12-05 11:53 linux-2.6.24.5
529524 4 drwxr-xr-x 24 marcio 1000 4096 2008-12-06 16:04 linux-2.6.27.5
root$ ls -lisa /usr/include | grep asm
1117465 0 lrwxrwxrwx 1 root root 7 2008-12-06 00:03 asm -> asm-x86
579156 4 drwxr-xr-x 3 root root 4096 2008-12-06 00:08 asm-generic
501757 12 drwxr-xr-x 11 root root 12288 2008-12-06 00:08 asm-x86
root$ ls -lisa /usr/include | grep linux
503784 24 drwxr-xr-x 25 root root 24576 2008-12-06 00:08 linux
non so come sistemare..

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 16:15
da slucky
è una tua scelta, dipende dal kernel che vuoi utilizzare, se a quello di default di slackware allora il link lo ripunti al vecchio, altrimenti al nuovo ;) e poi come giustamente detto da conraid non conviene mai disinstallare i kernel-headers di Pat, pena poi ritrovarsi errori in fase di compilazione dei programmi e driver...

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 16:18
da marcelloma
slucky ha scritto:è una tua scelta, dipende dal kernel che vuoi utilizzare, se a quello di default di slackware allora il link lo ripunti al vecchio, altrimenti al nuovo ;) e poi come giustamente detto da conraid non conviene mai disinstallare i kernel-headers di Pat, pena poi ritrovarsi errori in fase di compilazione dei programmi e driver...
ho fatto

Codice: Seleziona tutto

rm -f linux
ln -s linux-2.6.27.5 linux
ma

Codice: Seleziona tutto

root$ /etc/rc.d/rc.vbox
rc.vboxdrv  rc.vboxnet  
root$ /etc/rc.d/rc.vboxdrv setup
Stopping VirtualBox kernel module ...done.
Recompiling VirtualBox kernel module ...fail!
(Look at /var/log/vbox-install.log to find out what went wrong)
ancora gli stessi errori di prima..

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 16:21
da zoros
Secondo me sono rimasti gli headers del precedente kernel in /usr/include/ come directory "linux" e non come link
dovrebbe essere un link:
/usr/include/linux -> /usr/src/linux/include/linux/

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 16:28
da marcelloma
zoros ha scritto:Secondo me sono rimasti gli headers del precedente kernel in /usr/include/ come directory "linux" e non come link
dovrebbe essere un link:
/usr/include/linux -> /usr/src/linux/include/linux/
Guarda qui
root$ file /usr/include/linux
/usr/include/linux: directory
cancello / rinomino la directory linux e creo un link linux a /usr/src/linux/include/linux ?

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 16:28
da conraid
zoros ha scritto:Secondo me sono rimasti gli headers del precedente kernel in /usr/include/ come directory "linux" e non come link
dovrebbe essere un link:
/usr/include/linux -> /usr/src/linux/include/linux/
No, per l'amor del cielo.
Quelli che sono in /usr/include devono essere quelli con cui sono state compilate la glibc, quindi a meno di personalizzazioni (sapendo ciò che si fa), vanno tenuti *sempre* quelli orignali. Cioè il pacchetto kernel-headers di Pat

Quelli che cerca vbox sono invece gli header di compilazione, solitamente richiesti dai moduli esterni del kernel

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 16:32
da marcelloma
conraid ha scritto:
zoros ha scritto:Secondo me sono rimasti gli headers del precedente kernel in /usr/include/ come directory "linux" e non come link
dovrebbe essere un link:
/usr/include/linux -> /usr/src/linux/include/linux/
No, per l'amor del cielo.
Quelli che sono in /usr/include devono essere quelli con cui sono state compilate la glibc, quindi a meno di personalizzazioni (sapendo ciò che si fa), vanno tenuti *sempre* quelli orignali. Cioè il pacchetto kernel-headers di Pat

Quelli che cerca vbox sono invece gli header di compilazione, solitamente richiesti dai moduli esterni del kernel
Raga io non ci sto capendo piu' molto fra headers del kernel nuovo, vecchio , header di compilazione e link simbolici..mi dite come posso risolvere e nello stesso tempo dove posso trovare informazioni riguardo a queste cose?

Re: Incasinamento con gli header

Inviato: sab 6 dic 2008, 16:42
da tigerwalk
A questo punto, io farei una cosa.
Cancellerei le directory dei kernel in /usr/src/ SENZA RIAVVIARE, installerei di nuovo il kernel originale dal DVD della slackware e configurerei lilo per partire col kernel di default (reinstallato).
A quel punto volendo, ricompilerei il nuovo kernel con più attenzione alle guide!