Pagina 1 di 1

problema compilazione

Inviato: sab 13 nov 2010, 20:10
da blackman85
compilando i driver patchati per rtl8187 ricevo il seguente errore

Codice: Seleziona tutto

/usr/bin/make -C /lib/modules/2.6.36-smp/build M=/usr/src/drivers/rtl8187_linux_26.1010.0622.2006/ieee80211 modules
make[2]: Entering directory `/usr/src/linux-2.6.36'
  CC [M]  /usr/src/drivers/rtl8187_linux_26.1010.0622.2006/ieee80211/ieee80211_softmac.o
  CC [M]  /usr/src/drivers/rtl8187_linux_26.1010.0622.2006/ieee80211/ieee80211_rx.o
/usr/src/drivers/rtl8187_linux_26.1010.0622.2006/ieee80211/ieee80211_rx.c:48:28: error: linux/autoconf.h: No such file or directory
make[3]: *** [/usr/src/drivers/rtl8187_linux_26.1010.0622.2006/ieee80211/ieee80211_rx.o] Error 1
make[2]: *** [_module_/usr/src/drivers/rtl8187_linux_26.1010.0622.2006/ieee80211] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.36'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/drivers/rtl8187_linux_26.1010.0622.2006/ieee80211'
make: *** [all] Error 2
mi dice che non trova autoconf.h? Come è possibile? Ho installati correttamente i pkg: autoconf automake e libtool....
Grazie....

Re: problema compilazione

Inviato: sab 13 nov 2010, 20:54
da phobos3576
In quale directory hai i sorgenti del kernel?

Non mi torna il parametro:

Codice: Seleziona tutto

M=/usr/src/drivers
Non dovrebbe essere /usr/src/linux/drivers?

Re: problema compilazione

Inviato: sab 13 nov 2010, 21:11
da blackman85
ho lanciato il comando

Codice: Seleziona tutto

airdriver-ng compile 35
e airdriver ha scaricato il pacchetto in /usr/src/linux e poi non so come ha creato una directory in /usr/src/ di nome drivers che prima non c'era....comunque i sorgenti del kernel sono nella solita directory /usr/src/linux...

Re: problema compilazione

Inviato: sab 13 nov 2010, 21:56
da Calzo
phobos3576 ha scritto:Non dovrebbe essere /usr/src/linux/drivers?
Se non compili il driver direttamente nel kernel quello indica solo dove vai a prendere i sorgenti. Secondo me è giusto.

Quello che per me manca è l'inclusione degli header. Infatti l'errore dice che non trova il file linux/autoconf.h. La linea di compilazione secondo me dovrebbe essere simile a questa:

Codice: Seleziona tutto

/usr/bin/make -C /lib/modules/2.6.36-smp/build -I /lib/modules/<tuo_kernel>/build/include M=/usr/src/drivers/rtl8187_linux_26.1010.0622.2006/ieee80211 modules
controlla che nel make file sia definita la KERNELDIR, ossia se è presente una linea tipo questa:

Codice: Seleziona tutto

KERNELDIR ?= /lib/modules/$(shell uname -r)/build
bye

Re: problema compilazione

Inviato: sab 13 nov 2010, 22:05
da Calzo
Oops... no scusate ho detto una c@77@ta.
O meglio, credo di aver capito perchè non te li compila: il file ieee80211_rx.c include linux/autoconf.h, ma questo era così fino al kernel 2.6.32.x. Io non ho il 2.6.33, ma il 2.6.34/35/36 e dal 2.6.34 questo file è stato messo in include/generated/autoconf.h, quindi puoi provare 2 cose secondo me:
1. prova a modificare i sorgenti sostituendo linux/autoconf.h con generated/autoconf.h
2. fai un link simbolico nei sorgenti (/usr/src/linux/include/linux/) che puntino a questo file

spero funzioni e che sia questo il problema
bye

Re: problema compilazione

Inviato: sab 13 nov 2010, 22:21
da targzeta
Secondo me semplicemente il driver è vecchio. Posso sbagliare ma il file autoconf.h è stato spostato in 'include/generated/autoconf.h' mentre il driver prova a cercare 'include/linux/autoconf.h'.

Emanuele

Ops, è la stesso soluzione di Calzo...sorry

Re: problema compilazione

Inviato: dom 14 nov 2010, 14:06
da blackman85
Ho risolto, avevate ragione il driver era vecchio e quindi aveva linux/autoconf.h al posto di generated/autoconf.h!
Thanks! :thumbright: