slackbuil for kernel headers
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- salbutamolo
- Linux 3.x

- Messaggi: 905
- Iscritto il: lun 12 gen 2004, 0:00
- Contatta:
slackbuil for kernel headers
Ciao a tutti,
ogni volta che compilo ed installo un kernel nuovo, "installo" anche i nuovi headers del suddetto kernel tramite un mio script, che devo dire funziona egregiamente, in quanto si occupa anche di rimuovere gli headers vecchi...quindi il sistema rimane pulito. Tuttavia mi è venuta la voglia di realizzare un pacchetto tgz in maniera tale da rendere più ordinata la procedura. Ho cercato lo slackbuild del pacchetto kernel-headers-* nei sorgenti di slackware 10.2 ma ho trovato solo uno slack-desc. Sono cieco io o questo script manca? Have a nice day
ogni volta che compilo ed installo un kernel nuovo, "installo" anche i nuovi headers del suddetto kernel tramite un mio script, che devo dire funziona egregiamente, in quanto si occupa anche di rimuovere gli headers vecchi...quindi il sistema rimane pulito. Tuttavia mi è venuta la voglia di realizzare un pacchetto tgz in maniera tale da rendere più ordinata la procedura. Ho cercato lo slackbuild del pacchetto kernel-headers-* nei sorgenti di slackware 10.2 ma ho trovato solo uno slack-desc. Sono cieco io o questo script manca? Have a nice day
In realtà se ti ricompili il kernel e quindi hai i sorgenti del kernel in /usr/src/linux non ti serve a nulla il pacchetto dei kernel-headers. Ti bastano due link simbolici:
/usr/include/linux -> /usr/src/linux/include/linux/
/usr/include/asm -> /usr/src/linux/include/asm/
In questo modo tutte le volte che compili un nuovo kernel aggiustando il link /usr/src/linux metti automaticamente a posto gli header.
/usr/include/linux -> /usr/src/linux/include/linux/
/usr/include/asm -> /usr/src/linux/include/asm/
In questo modo tutte le volte che compili un nuovo kernel aggiustando il link /usr/src/linux metti automaticamente a posto gli header.
Io di solito procedo così:zzt ha scritto:In realtà se ti ricompili il kernel e quindi hai i sorgenti del kernel in /usr/src/linux non ti serve a nulla il pacchetto dei kernel-headers. Ti bastano due link simbolici:
/usr/include/linux -> /usr/src/linux/include/linux/
/usr/include/asm -> /usr/src/linux/include/asm/
In questo modo tutte le volte che compili un nuovo kernel aggiustando il link /usr/src/linux metti automaticamente a posto gli header.
Codice: Seleziona tutto
Copio i sorgenti reperiti su www.kernel.org in /usr/src/
Scompatto i sorgenti ed eseguole seguenti istruzioni:
# rm linux
# ln -s linux-2.6.x linux
Cancello il vecchio link simbolico e ne creo un altro che punti al nuovo kernel
# cd /usr/src/linux-2.6.x
# make mrproper
# make menuconfig
Effettuo la configurazione scelta
# make -j5 && make modules_install
Certo, il kernel si compila perchè giustamente ha i suoi kernel header..
Il problema nasce quando vuoi compilare qualche applicazione che ha bisogno dei kernel header perchè, come la maggior parte degli header, si dovrebbero trovare in /usr/include/.
Quindi risolvi la situazione con i link di cui o parlato sopra.
Se tu, ad esempio, installi il pacchetto con i kernel header del 2.6.9 e in realtà ti sei compilato il 2.6.14 come dici tu, quando compili qualche applicazione usi i vecchi kernel header (e nel 99% dei casi non hai nessun problema).
Il problema nasce quando vuoi compilare qualche applicazione che ha bisogno dei kernel header perchè, come la maggior parte degli header, si dovrebbero trovare in /usr/include/.
Quindi risolvi la situazione con i link di cui o parlato sopra.
Se tu, ad esempio, installi il pacchetto con i kernel header del 2.6.9 e in realtà ti sei compilato il 2.6.14 come dici tu, quando compili qualche applicazione usi i vecchi kernel header (e nel 99% dei casi non hai nessun problema).
Ok, ma se io volessi aggiornare ogni volta gli headers come fa salbutamolo, dove posso reperirli? Perchè da quello che ho capito nella maniera in cui procedo io gli headers non vengono aggiornati.
Detto questo ogni volta che ricompilo un nuovo kernel dovrei prima aggiornare gli headers e poi compilarmi il nuovo kernel, giusto?
Detto questo ogni volta che ricompilo un nuovo kernel dovrei prima aggiornare gli headers e poi compilarmi il nuovo kernel, giusto?
Io il pacchetto con i kernel-header non l'ho mai installato...
Se fai i due link simbolici che ho scritto sopra, ti ritrovi automaticamente i kernel-header corretti quando cambi il link /usr/src/linux alla nuova versione compilata.
Quando compili il kernel non ti servono kernel-header particolari sono già tutti compresi nei sorgenti ed io non faccio altro che riutilizzare quelli.
Se fai i due link simbolici che ho scritto sopra, ti ritrovi automaticamente i kernel-header corretti quando cambi il link /usr/src/linux alla nuova versione compilata.
Quando compili il kernel non ti servono kernel-header particolari sono già tutti compresi nei sorgenti ed io non faccio altro che riutilizzare quelli.
Quei due link li crei prima di compilare? Da quello che ho capito è indifferente perchè servono solo per applicazioni che sfruttano appunto gli headers del kernel, vero?zzt ha scritto:Io il pacchetto con i kernel-header non l'ho mai installato...
Se fai i due link simbolici che ho scritto sopra, ti ritrovi automaticamente i kernel-header corretti quando cambi il link /usr/src/linux alla nuova versione compilata.
Quando compili il kernel non ti servono kernel-header particolari sono già tutti compresi nei sorgenti ed io non faccio altro che riutilizzare quelli.
In /usr/include/asm ho un link simbolico ma ho dei dubbi su questa:zzt ha scritto:In realtà se ti ricompili il kernel e quindi hai i sorgenti del kernel in /usr/src/linux non ti serve a nulla il pacchetto dei kernel-headers. Ti bastano due link simbolici:
/usr/include/linux -> /usr/src/linux/include/linux/
/usr/include/asm -> /usr/src/linux/include/asm/
/usr/include/linux -> /usr/src/linux/include/linux/
Io non ho alcun link del genere, forse intendevi /usr/src/linux che punta alla directory del kernel corrente?
Qui http://www.slackware.it/pb/showfile.php ... .31-i386-1
ci sono elencati i file contenuti nel pacchetto kernel-headers, che come vedi semplicemente riempono /usr/include/asm-i386 e /usr/include/linux. Questi file sono identici a quelli contenuti nei sorgenti del kernel nelle directory (supponendo di avere i sorgenti in /usr/src/linux):
/usr/src/linux/include/asm (che è tipicamente a sua volta un link simbolico a /usr/src/linux/include/asm-i386)
/usr/src/linux/include/linux
Quindi facendo i due link che ho scritto eviti di avere i file copiati 2 volte o di utilizzare kernel-header di un kernel diverso da quello attuale (supponendo che /usr/src/linux punti ai sorgenti dell'ultimo kernel compilato)
/usr/include/linux -> /usr/src/linux/include/linux/
/usr/include/asm -> /usr/src/linux/include/asm/
Tra l'altro questa soluzione permette di compilare per qualsiasi kernel che si ha a disposizione in /usr/src senza bisogno di riavviare, basta cambiare il link /usr/src/linux e si hanno sempre gli header corretti.
ci sono elencati i file contenuti nel pacchetto kernel-headers, che come vedi semplicemente riempono /usr/include/asm-i386 e /usr/include/linux. Questi file sono identici a quelli contenuti nei sorgenti del kernel nelle directory (supponendo di avere i sorgenti in /usr/src/linux):
/usr/src/linux/include/asm (che è tipicamente a sua volta un link simbolico a /usr/src/linux/include/asm-i386)
/usr/src/linux/include/linux
Quindi facendo i due link che ho scritto eviti di avere i file copiati 2 volte o di utilizzare kernel-header di un kernel diverso da quello attuale (supponendo che /usr/src/linux punti ai sorgenti dell'ultimo kernel compilato)
/usr/include/linux -> /usr/src/linux/include/linux/
/usr/include/asm -> /usr/src/linux/include/asm/
Tra l'altro questa soluzione permette di compilare per qualsiasi kernel che si ha a disposizione in /usr/src senza bisogno di riavviare, basta cambiare il link /usr/src/linux e si hanno sempre gli header corretti.
Figurati... queste cose le ho imparate a mie spese
Se ad esempio patchi il kernel per avere qualche funzione particolare (mpls nel mio caso) e poi cerchi di compilare qualche applicazione scritta per funzionare con il kernel patchato, se non sistemi correttamente gli header non compili nulla...
In realtà pochissime persone hanno problemi per questo motivo perchè gli header sono abbastanza stabili da un versione all'altra del kernel e il pacchetto di Pat basta ed avanza.
Se ad esempio patchi il kernel per avere qualche funzione particolare (mpls nel mio caso) e poi cerchi di compilare qualche applicazione scritta per funzionare con il kernel patchato, se non sistemi correttamente gli header non compili nulla...
In realtà pochissime persone hanno problemi per questo motivo perchè gli header sono abbastanza stabili da un versione all'altra del kernel e il pacchetto di Pat basta ed avanza.

