Scusate se mi intrometto, ma l'errore riportato non c'entra niente con gli header del kernel. La costruzione del modulo avviene prendendo i file dalla directory dei sorgenti. Al massimo mancherebbe il pacchetto dei sorgenti e non degli header.
Comunque il problema non è neanche dei sorgenti, si tratta di un errore nella costruzione del modulo, è un errore della ATI, infatti a partire dal kernel 2.6.33 (credo) alcuni file nel kernel hanno cambiato directory e quindi i driver ATI falliscono miseramente. Attualmente nella versione beta siamo agli ATI 8.73 e ancora non compilano correttamente con il kernel 2.6.33.x.
In particolare gli errori sono che:
- il file utsrelease.h non si trova più sotto include/linux/ ma sotto /include/generated/
- anche il file autoconf.h si trova nella nuova directory
L'errore riportato deriva dal primo file, ovvero i driver ATI cercano di determinare la versione dei sorgenti con:
Codice: Seleziona tutto
kernel_release=`cat $linuxincludes/linux/utsrelease.hl | grep UTS_RELEASE | grep \"$OsRelease\" | cut -d'"' -f2`
laddove ora dovrebbero cercare sotto generated/utsrelease.h.
Comunque sul mio PC anche risolvendo questo piccolo problema i driver non compilano ugualmente

.
Emanuele
P.S. se volete fare una prova estraete l'archivio .run con:
questo creerà una directory temporanea chiamata fglrx-install.XXXX, quindi fate ad esempio:
Codice: Seleziona tutto
cd fglrx-install.68JmBI/common/lib/modules/fglrx/build_mod/
for mod in utsrelease autoconf; do for file in $(grep -l "linux/${mod}.h" *); do sed -i "/linux\/${mod}.h/{s;linux/${mod}.h;generated/${mod}.h;}" $file; done; done
questo sistema il problema in questione. Ora provate a compilare con:
il file make.sh è presente in quella directory ma deve essere eseguito con i privilegi di root. A me da i seguenti errori:
Codice: Seleziona tutto
...
/tmp/tmp/fglrx-install.ifpNQM/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function '__che__cmpxchg':
/tmp/tmp/fglrx-install.ifpNQM/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1473: error: variable or field '__ret' declared void
/tmp/tmp/fglrx-install.ifpNQM/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1473: error: variable or field '__old' declared void
/tmp/tmp/fglrx-install.ifpNQM/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1473: error: variable or field '__new' declared void
...