PDA

View Full Version : Sorgenti in /usr/src----Ubuntu


gianlucab70
30-09-2008, 20:43
Vorrei un chiarimento.
Come da titolo ho Ubuntu 8.04.
Vorrei iniziare con qualche ricompilazione di kernel.

Nella dir. /usr/src sono presenti le dir linux-headers-2.6.24-16 e linux-headers-2.6.24-16 generic.

A quanto pare queste non rappresentano i sorgenti del kernel in uso.
due domande:
1) Se non sono i sorgenti, cosa sono?

2) Ho aggiornato la distro e a seguito di essa si sono aggiunti altri pacchetti come quelli menzionati ma di versioni successive.
Il kernel non è stato ricompilato con essi.
Se non sono sorgenti, cosa ho scaricato?

Grazie a tutti.

Gimli[2BV!2B]
01-10-2008, 01:05
Non sono i sorgenti interi, ma (detto alla buona) sono la raccolta dei prototipi delle funzioni, delle strutture, dei tipi di dato e delle costanti che sono disponibili per "parlare" con il kernel. (http://it.wikipedia.org/wiki/Header_file)
Sono indispensabili, ad esempio, per compilare driver da aggiungere al kernel precompilato della distribuzione (si può fare anche con i sorgenti interi, ma sono nettamente più grandi: 268 MB in 24350 file Vs 41.5 MB in 9721 file).

I sorgenti completi, contenenti le patch della distribuzione, sono nei pacchetti linux-source-* (http://packages.ubuntu.com/hardy/linux-source-2.6.24).
Questi sorgenti sono leggermente diversi dai vanilla (http://eu.kernel.org/), oltre ad essere congelati sulla versione più stabile disponibile al momento del freeze della versione della distribuzione installata.

gianlucab70
01-10-2008, 14:53
;24362239']Non sono i sorgenti interi, ma (detto alla buona) sono la raccolta dei prototipi delle funzioni, delle strutture, dei tipi di dato e delle costanti che sono disponibili per "parlare" con il kernel. (http://it.wikipedia.org/wiki/Header_file)
Sono indispensabili, ad esempio, per compilare driver da aggiungere al kernel precompilato della distribuzione (si può fare anche con i sorgenti interi, ma sono nettamente più grandi: 268 MB in 24350 file Vs 41.5 MB in 9721 file).

I sorgenti completi, contenenti le patch della distribuzione, sono nei pacchetti linux-source-* (http://packages.ubuntu.com/hardy/linux-source-2.6.24).
Questi sorgenti sono leggermente diversi dai vanilla (http://eu.kernel.org/), oltre ad essere congelati sulla versione più stabile disponibile al momento del freeze della versione della distribuzione installata.

Se non ho capito male.
Gli headers servono solo in fase di ricompilazione (kernel intero o dei singoli moduli), in funzione di supporto.
Quindi per ricompilare occorre possedere sia gli headers (nelle 2 componenti) e sia i sorgenti veri e propri della stessa versione.

Gimli[2BV!2B]
01-10-2008, 20:00
Quasi. Effettivamente rileggendo quel che ho scritto mi sono accorto di non aver insistito su di un punto importante.

Gli headers sono una parte dei sorgenti completi.

Per compilare il kernel sono necessari e sufficienti i sorgenti completi (oltre, naturalmente, all'ambiente di compilazione (https://help.ubuntu.com/community/Kernel/Compile#Tools%20you%27ll%20need)).

Gli headers sono sufficienti (e consigliabili, per spazio occupato, banda sprecata, ecc...) se si deve compilare qualcosa che deve interagire con il kernel, ma non ne fa parte.

gianlucab70
01-10-2008, 21:12
Sono un po confuso.

Riguardo al link, purtroppo non ho dimestichezza con l'inglese.

Gli headers sono quindi ausiliari e non complementari (cioè indispensabili) per le compilazioni.
Se ho ben capito.
La loro funzione è quella di sorgenti solo per particolari compilazioni (che adesso non comprendo e ignoro).
La loro utilità è solo quella di risparmiare spazio o banda.

Quindi per le ricompilzioni basta il pacchetto linux-source.

sasa83
02-10-2008, 01:02
Gli headers sono quindi ausiliari e non complementari (cioè indispensabili) per le compilazioni.


mettiamola così, se hai i sorgenti completi gli headers sono inutili.

gianlucab70
02-10-2008, 19:44
Quindi a parte quelle particolari compilazioni, gli headers nella dir /usr/scr non svolgono nessuna funzione.
Possono essere cancellati?