Ne kapiram te baš u vezi ovoga; jesi upoređivao sastav kernel headera za 2.4.33 i 2.6.17? Veruj mi da nije isto. Meni trebaju headeri za kernel koji koristim (2.6.17) jer programe koje želim da kompajliram kompajliraću prema 2.6.17 kernelu, a ne prema 2.4.33. Imaš recimo Vector Linux, koji ne dolazi sa kernel source-om, već sa kernel-headerima za dati kernel, i u presudnom broju slučajeva kompajliranje programa i drajvera prođe sa tim, jer su headeri sasvim dovoljni. Glibc jeste iskompajliran za 2.4.33, ali ako nemam kernel-headere za 2.6.17, ja ne mogu da instaliram drajvere za HCF modem, recimo. Logično je da ćeš kompajlirati program da ga koristiš na kernelu koji koristiš, stoga ja smatram da treba imati i kernel-headere za taj kernel.
Pa u sustini se slazemo, ali se nismo bas najbolje razumeli. Ono sto sam rekao da header-e ne treba instalirati je prepisano upozorenje koje je sam Patrick ostavio uz odgovarajuci paket na install disku. Prema tome, verovatno da on zna bolje od nas da to ne bi bilo najpametnije raditi.
Sto se tice samih headera, rekao sam da se oni ne razlikuju mnogo od verzije do verzije, ali priznaces da 2.4.33 i 2.6.17 nisu bas "susedne" verzije. Razlike su male izmedju npr 2.6.16 i 2.6.17, ali 2.4 i 2.6 se ipak znatno razlikuju, tako da se i tu slazemo! Jedino se nisam bas najpreciznije izrazio, pa kapiram da je to dovelo do zabune.

E sad ono glavno: header-i se u sistemu nalaze (bar) na dva mesta:
1) /usr/include/linux (masinski nezavisni headeri) odn. /usr/include/asm (masinski zavisni). Ovi headeri se tu instaliraju prilikom kreiranja distribucije, PRE kompajliranja glibc-a i svega ostalog (to je Pat uradio za nas). Oni ti na neki nacin odredjuju ceo sistem i njih ne treba menjati (to je ono sto sam ja rekao). Velika vecina user space programa nema nikakve interakcije sa kernelom, vec sve radi preko glibc-a, i posredno preko ovih headera, pa su zato oni od sustinske vaznosti za sistem.
2) /usr/src/linux/include/linux (masinski nezavisni) odn. /usr/src/linux/include/asm-i386 (zavisni od arhitekture, ima za svaku arhitekturu po jedan direktorijum). Ovi headeri se instaliraju sa svakim novim source-om koji instaliras, pa tako sve verzije kernela koje imas na sistemu ce imati svoje header-e, koji im potpuno odgovaraju. Tacno je da ne morate imati source kernela da bi vam sistem radio, ali je to uglavnom praksa, pogotovo sto mnogi ljudi vole da kompajliraju iz source-a. Ovi headeri su neophodni za kompajliranje kernel space programa (kao sto su drajveri za modem koje si sam spomenuo; to su u stvari kernel moduli, i ne treba ih mesati sa obicnim user space programima koji obicno nemaju neku preteranu interakciju sa kernelom, bar ne direktnu).
Dakle ako ti instaliras header paket sa slack install diska, ti ces prekopirati header-e na prvoj lokaciji (nazovimo ih sistemski headeri) sto generalno nije dobra ideja (ne kazem da ce obavezno da pokvari nesto, mozda i nece, ali cemu nepotreban rizik). Mnogo je pametnije da koristis header-e na drugoj lokaciji koji odgovaraju tvom kernelu (pod uslovom da si instalirao source za 2.6 kernel). Ja kada sam jednom instalirao drajver za intel537 modem, prilikom konfiguracije je konsultovana lokacija /usr/src/linux-`uname -r`/include/linux, tj. ona koja odgovara tekucem kernelu. Ne znam za druge slicne stvari ali verovatno je ili tako ili moze da se podesi da bude tako. Konkretno, ako govorimo o NVIDIA drajverima koje je BrokeBody pominjao, verovatno da postoji neka opcija kojom se lokacija headera postavlja na zeljenu, pa je to po meni neko najbolje resenje. Iskreno, ja nemam pojma nista o NVIDIA niti bilo kojim grafickim drajverima, jer me igrice ne zanimaju niti bilo sta slicno sto zahteva neke fancy drajvere, ovi sto idu uz X su mi sasvim dovoljni, tako da se time nikada nisam bavio. Pretpostavljam da su u pitanju binarni paketi, pa mi bas nije najjasnije sta ce mu uopste header-i ali boze moj, verovatno da mu trebaju, kada ih vec trazi

Pretpostavljam da se moze konfigurisati tako da konsultuje header-e na specificnoj lokaciji. Dacu samo jos jedan primer da upotpunimo ovu pricu: kada kompajlirate glibc, jedna od opcija je --with-kernel-headers=DIR ili tako nesto, pa verovatno da svaki program koji koristi headere ima neku takvu opciju.
Mislim da su ovo neke dobre smernice kako resavati ovakve probleme. Ako tako nesto ipak ne prodje, evo jos jednog (glupljeg) resenja: privremeno promenite naziv /usr/include/linux direktorijuma u npr. /usr/include/linux-2.4 ; slicno uradite i sa asm direktorijumom. Onda iskopirate headere za 2.6 kernel (prosto sa installpkg, a mozete i sa lokacije /usr/src/linux-2.6.17/include/linux ako ste instalirali source, to je to isto).
Nakon toga radite sta zelite, a ako nesto podje naopako, samo vratite sve kako je bilo i resili ste problem. Ovo je jako glupo resenje, ali eto, mozda nekom i to pomogne u trenutcima ocaja. Ja se sa tim ne bih igrao

Pozdrav!