Entra

View Full Version : [compilazione kernel] non mi crea il pacchetto .deb


CARVASIN
13-12-2005, 18:53
seguendo questa (http://wiki.ubuntu-it.org/CompilazioneKernel) guida riscontro il seguente problema:
al comando per creare il pacchetto (con tanto di --initd) mi si ripresentano le voci da selezionare, ma questa volta da riga di comando (mentre ho già settato tutto tramite xconfig).

make-kpkg clean restituisce questo:
make-kpkg clean
/usr/bin/make -f /usr/share/kernel-package/rules real_stamp_clean
make[1]: Entering directory `/usr/src/linux-2.6.14.2'
test ! -f .config || cp -pf .config config.precious
test -f Makefile && \
/usr/bin/make ARCH=i386 distclean
make[2]: Entering directory `/usr/src/linux-2.6.14.2'
CLEAN scripts/basic
CLEAN scripts/kconfig
CLEAN .config .config.old include/linux/autoconf.h
make[2]: Leaving directory `/usr/src/linux-2.6.14.2'
test ! -f config.precious || mv -f config.precious .config
test ! -f stamp-patch || /usr/bin/make -f /usr/share/kernel-package/rules unpatc h_now
test -f stamp-building || test -f debian/official || rm -rf debian
# work around idiocy in recent kernel versions
test ! -e scripts/package/builddeb.dist || \
mv -f scripts/package/builddeb.dist scripts/package/builddeb
test ! -e scripts/package/Makefile.dist || \
mv -f scripts/package/Makefile.dist scripts/package/Makefile
rm -f modules/modversions.h modules/ksyms.ver debian/files conf.vars scripts/cra mfs/cramfsck scripts/cramfs/mkcramfs applied_patches debian/buildinfo stamp-buil d stamp-configure stamp-source stamp-image stamp-headers stamp-src stamp-diff st amp-doc stamp-buildpackage stamp-libc-kheaders stamp-debian stamp-patch stamp-ke rnel-configure
rm -rf debian/tmp-source debian/tmp-headers debian/tmp-image debian/tmp-doc
make[1]: Leaving directory `/usr/src/linux-2.6.14.2'


questo invece è quello che restituisce il comando successivo, che dovrebbe creare il pacchetto
make-kpkg --initrd --append-to-version=-cust om kernel_image modules_image
# work around idiocy in recent kernel versions
test ! -e scripts/package/builddeb || \
mv -f scripts/package/builddeb scripts/package/builddeb.dist
test ! -e scripts/package/Makefile || \
(mv -f scripts/package/Makefile scripts/package/Makefile.dist && \
(echo "# Dummy file "; echo "help:") > scripts/package/Makefile)
test ! -f stamp-debian && test ! -f debian/official && \
rm -rf ./debian && mkdir ./debian
test ! -f stamp-debian && \
( test ! -f debian/official || test ! -f debian/control) && \
sed -e 's/=V/2.6.14.2-custom/g' -e 's/=D/10.00.Custom/g' \
-e 's/=A/i386/g' -e 's/=SA//g' \
-e 's/=L/lilo (>= 19.1) | grub, /g' -e 's/=I/initramfs-tools (>= 0.16), /g' \
-e 's/=CV/2.6/g' \
-e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured .in.etc.kernel-pkg.conf>/g' \
-e 's/=ST/kernel/g' -e 's/=B/i386/g' \
/usr/share/kernel-package/Control> debian/control
test ! -f stamp-debian && test ! -f debian/official && \
sed -e 's/=V/2.6.14.2-custom/g' -e 's/=D/10.00.Custom/g' \
-e 's/=A/i386/g' -e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfi gured.in.etc.kernel-pkg.conf>/g' \
-e 's/=ST/kernel/g' -e 's/=B/i386/g' \
/usr/share/kernel-package/changelog > debian/changelog
test ! -f debian/rules && \
install -p -m 755 /usr/share/kernel-package/rules debian/rules
echo done > stamp-debian
Please ignore the warning about overriding and ignoring targets above.
These are harmless. They are only invoked in a part of the process
that tries to snarf variable values for the conf.vars file.
/usr/bin/make EXTRAVERSION=.2-custom \
ARCH=i386 oldconfig
make[1]: Entering directory `/usr/src/linux-2.6.14.2'
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/split-include
HOSTCC scripts/basic/docproc
SHIPPED scripts/kconfig/zconf.tab.h
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/kxgettext.o
HOSTCC scripts/kconfig/mconf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf -o arch/i386/Kconfig
#
# uso i valori predefiniti in .config
#
*
* Linux Kernel Configuration
*
*
* Opzioni per il livello di maturita' del codice
*
Chiedi per codice/driver di sviluppo e/o incompleti (EXPERIMENTAL) [Y/n/?] y
Seleziona solo driver noti per essere compilati senza problemi (CLEAN_COMPILE) [Y/n/?] y
*
* Impostazioni generali
*
Versione locale - aggiungi al rilascio del kernel (LOCALVERSION) []
Aggiungi automaticamente informazioni sulla versione alla stringa della versione (LOCALVERSION_AUTO) [Y/n/?] y
Supporto per pagine di memoria anonima (swap) (SWAP) [Y/n/?] y
IPC System V (SYSVIPC) [Y/n/?] y
Code messaggi POSIX (POSIX_MQUEUE) [Y/n/?] y
Contabilita' dei processi BSD (BSD_PROCESS_ACCT) [Y/n/?] y
Contabilita' dei processi BSD con file in formato versione 3 (BSD_PROCESS_ACCT _V3) [Y/n/?] y
Supporto per sysctl (SYSCTL) [Y/n/?] y
Supporto per l'auditing (AUDIT) [Y/n/?] y
Abilita supporto per l'auditing delle chiamate di sistema (AUDITSYSCALL) [Y/n/ ?] y
Supporto per dispositivi hot-plug (HOTPLUG) [Y/?] y
Eventi del kernel in userspace (KOBJECT_UEVENT) [Y/n/?] y
Supporto per il .config del kernel (IKCONFIG) [Y/n/?] y
Abilita accesso al .config attraverso /proc/config.gz (IKCONFIG_PROC) [Y/n/?] y
File sorgente(i) per initramfs (INITRAMFS_SOURCE) []
*
* Configura funzionalita' kernel standard (per sistemi piccoli)
*
Configura funzionalita' kernel standard (per sistemi piccoli) (EMBEDDED) [Y/n/?] y
Carica tutti i simboli per debugging/kksymoops (KALLSYMS) [Y/n/?] y
Includi tutti i simboli in kallsyms (KALLSYMS_ALL) [N/y/?] (NUOVO)



come vedete mi ripropone le varie voci, che ho giàprovveduto a selezionare (e a salvare) tramite xconfig! :help:
grazie!

ciao

Al Azif
13-12-2005, 19:58
Dai un make oldconfig prima del make xconfig o menuconfig.

CARVASIN
13-12-2005, 20:26
Dai un make oldconfig prima del make xconfig o menuconfig.
mi restituisce la stessa cosa se faccio make oldconfig

Al Azif
14-12-2005, 12:16
mi restituisce la stessa cosa se faccio make oldconfig

Ma hai provato a selezionare le voci mettendo si,no o modulo? olte al fatto che le kallsyms non so quanto ti possano servire.

CARVASIN
14-12-2005, 17:08
Ma hai provato a selezionare le voci mettendo si,no o modulo? olte al fatto che le kallsyms non so quanto ti possano servire.
quelle che sicuramente mi servono sono messe come modulo e no come built-in. però non so non credo sia questo il problema, mi richiede persino il tipo di processore!!!
e in ogni caso non dovrebbe crearlo lo stesso il pacchetto?!?! c'è qualcosa che mi sfugge credo...
questa è la prima volta che compilo un kernel (o almeno tento di farlo), molte cose me le sono lette (soprattutto quello che riguarda l'hardware presente nel pc), altre ho lasciato le impostazioni di default (tipo kallsysm che non ho la minima idea di cosa sia)

ciao
:(
PS: non voglio dire che ti stai sbagliando o che altro, anzi, ti ringrazio per il supporto! ;)

pizeta
14-12-2005, 18:51
scusami ma credo non ci sia proprio bisogno di tutte le opzioni che passi al make-kpkg anche perchè è l'append-to-version a dare fastidio soprattutto se lo lasci custom che non ha il minimo significato, almeno mettici -carvasin così ha più senso :p

ma facciamo un passo indietro,
quando configuri il kernel con xconfig o menuconfig le informazioni di configurazione non si trovano solo nel .config ma anche in include/linux/version.h soltanto che questo file al momento della configurazione non ha la minima idea del fatto che aggiungerai una stringa al nome del kernel e quindi alla sua versione, per questo motivo quel file deve sparire altrimenti la compilazione genererebbe un kernel con una versione mentre i moduli e i simboli sarebbero compilati con un'altra ed ovviamente questo renderebbe il nuovo kernel inusabile

per ovviare al problema si usa il make-kpkg clean tra la configurazione e la compilazione, ma a quanto pare quella pulizia di troppo mette un pò di confusione nel tuo config
per cui a meno che tu non ritenga fondamentale aggiungere la vocina custom al tuo kernel basta un semplice
make xconfig
make-kpkg --initrd kernel_image
altrimenti prova a rimuovere manualmente il file di prima senza lanciare make-kpkg clean tra configurazione e compilazione

CARVASIN
14-12-2005, 19:00
scusami ma credo non ci sia proprio bisogno di tutte le opzioni che passi al make-kpkg anche perchè è l'append-to-version a dare fastidio soprattutto se lo lasci custom che non ha il minimo significato, almeno mettici -carvasin così ha più senso :p

ma facciamo un passo indietro,
quando configuri il kernel con xconfig o menuconfig le informazioni di configurazione non si trovano solo nel .config ma anche in include/linux/version.h soltanto che questo file al momento della configurazione non ha la minima idea del fatto che aggiungerai una stringa al nome del kernel e quindi alla sua versione, per questo motivo quel file deve sparire altrimenti la compilazione genererebbe un kernel con una versione mentre i moduli e i simboli sarebbero compilati con un'altra ed ovviamente questo renderebbe il nuovo kernel inusabile

per ovviare al problema si usa il make-kpkg clean tra la configurazione e la compilazione, ma a quanto pare quella pulizia di troppo mette un pò di confusione nel tuo config
per cui a meno che tu non ritenga fondamentale aggiungere la vocina custom al tuo kernel basta un semplice
make xconfig
make-kpkg --initrd kernel_image
altrimenti prova a rimuovere manualmente il file di prima senza lanciare make-kpkg clean tra configurazione e compilazione
ti ringrazio...
una precisazione: ovviamente io xconfig non lo faccio più (in quanto sono salvate le opzioni da me selezionate)
ho provato a dare
make-kpkg --initrd kernel_image
mi risuccede sempre la stessa cosa

ora provo ad eliminare quel file...dopodichè devo riutilizzare solo quei due comandi (tranne make xconfig ovviamente)?!?!

pizeta
14-12-2005, 19:07
per pulizia intellettuale ti direi di ricominciare con un kernel pulito rifacendo anche la configurazione, non sai mai che ti è scappato qualcosa
ne potresti approfittare anche per patchare il kernel con mm o ck o quello che preferisci

CARVASIN
14-12-2005, 21:17
per pulizia intellettuale ti direi di ricominciare con un kernel pulito rifacendo anche la configurazione, non sai mai che ti è scappato qualcosa
ne potresti approfittare anche per patchare il kernel con mm o ck o quello che preferisci
salvarmi il file .config, scaricarmi un kernel e sostituire il file?! è fattibile o è sempre meglio ripartire da zero?! anche perchè pur rifacendo la configurazione credo che sceglierei le stesse cose, inoltre non so quando riavrò il tempo di rifare la configurazione (è stata la prima volta, di tempo ne ho impiegato parecchio).
Per quanto riguarda le patch da te mensionate...non so cosa siano :boh: (mm e ck sono abbreviazioni? in caso mi potresti dare i nomi cosi almeno cerco su internet qualche info su di esse?). grazie ancora!

PS: ho il forte presentimento che risuccederà la stessa cosa...forse non ho cercato bene nel forum di ubuntu (in italiano però) ma non ho trovato nessuno col mio problema! :muro: e tutti hanno seguito la guida che ho seguito io

speriamo... :sperem:

ciao

pizeta
14-12-2005, 22:21
bhè effettivamente è strana come cosa, ho provato a riprodurre l'errore che da a te ma mi fa un'unica domanda relativa a parti del file .config che ho modificato dopo aver compilato il kernel, quindi in linea di principio non dovrebbe fare come succede a te, ma il mondo è bello perchè è vario, cmq mm e ck sono le iniziali delle persone che creano le patch per il kernel e che prendono appunto il loro nome, ovviamente non sono le uniche, una lista completa la trovi qui
http://kernelnewbies.org/patches/

io consiglio la ck, a quanto letto è la più stabile per i desktop, la trovi su questo sito
http://members.optusnet.com.au/ckolivas/kernel/

c'è anche una patch per avere le istruzioni del kernel in italiano
http://massimo.solira.org/pcikl/download.html



tornando alla tua domanda, io scaricherei il kernel 2.6.14 applichi la patch copi il file .config dai un make xconfig, risfogli velocemente la configurazione magari ripensando a qualche scelta fatta prima, e dai il make-kpkg

CARVASIN
15-12-2005, 08:03
bhè effettivamente è strana come cosa, ho provato a riprodurre l'errore che da a te ma mi fa un'unica domanda relativa a parti del file .config che ho modificato dopo aver compilato il kernel, quindi in linea di principio non dovrebbe fare come succede a te, ma il mondo è bello perchè è vario, cmq mm e ck sono le iniziali delle persone che creano le patch per il kernel e che prendono appunto il loro nome, ovviamente non sono le uniche, una lista completa la trovi qui
http://kernelnewbies.org/patches/

io consiglio la ck, a quanto letto è la più stabile per i desktop, la trovi su questo sito
http://members.optusnet.com.au/ckolivas/kernel/

c'è anche una patch per avere le istruzioni del kernel in italiano
http://massimo.solira.org/pcikl/download.html



tornando alla tua domanda, io scaricherei il kernel 2.6.14 applichi la patch copi il file .config dai un make xconfig, risfogli velocemente la configurazione magari ripensando a qualche scelta fatta prima, e dai il make-kpkg
Grazie mille! l'unica cosa che conoscevo era la patch per l'italiano :D (anche perchè senza di quella....) oggi sono a casa tutto il giorno (forse il caso?) spero veramente di riuscirci

ciao!

CARVASIN
15-12-2005, 08:47
un'ultima cosa: la patch ck la metto nel seguente modo? decomprimo il bz2 e do il seguente comando:
patch -p1 -E -d dir_sorgente < file_patch

ciao!

edit: ho visto solo adesso il walktrough presente nel sito della patch! vediamo che succede... :sperem:

edit2: mi ha restituito questo...che vuol dire?

patch -p1 -E -d /usr/src/linux-2.6.14.4 < patch-2.6.14-ck7
patching file fs/proc/array.c
Reversed (or previously applied) patch detected! Assume -R? [n]

si riferisce alla precedente patch per la traduzione?!

edit3: se inserisco "n" e do invio appare questo
Apply anyway? [n]


edit4: ormai vado per tentativi....ho provato a dare "y" a quella domanda, questo è quello cha ha restitito
Apply anyway? [n] y
Hunk #1 FAILED at 165.
Hunk #2 FAILED at 173.
2 out of 2 hunks FAILED -- saving rejects to file fs/proc/array.c.rej
patching file include/linux/sched.h
Reversed (or previously applied) patch detected! Assume -R? [n]

:help:

pizeta
15-12-2005, 19:10
noto grazie a te che è uscita la patch ck7, vuol dire che devo ricompilare anche io :p

Le domande che ti fa vogliono dire che il file che dovrebbe patchare è già patchato per cui ti chiede se vuoi tornare indietro con la patch (Revers patch) cosa che ovviamente tu non vuoi,
non me ne sono accorto neanche io la prima volta perchè è scritto troppo in grande sul sito, cmq la versione su cui si applicano le patch è la 2.6.14 non la 2.6.14.4 infatti la ck7 contiene già le patch fino alla 2.6.14.4 però a partire da 2.6.14, è per questo che trova file già patchati e vuole tornare indietro

per cui scarica il 2.6.14
bzcat patch.ck7.comesichiamalei | patch -p1
e configura

CARVASIN
15-12-2005, 20:54
noto grazie a te che è uscita la patch ck7, vuol dire che devo ricompilare anche io :p

Le domande che ti fa vogliono dire che il file che dovrebbe patchare è già patchato per cui ti chiede se vuoi tornare indietro con la patch (Revers patch) cosa che ovviamente tu non vuoi,
non me ne sono accorto neanche io la prima volta perchè è scritto troppo in grande sul sito, cmq la versione su cui si applicano le patch è la 2.6.14 non la 2.6.14.4 infatti la ck7 contiene già le patch fino alla 2.6.14.4 però a partire da 2.6.14, è per questo che trova file già patchati e vuole tornare indietro

per cui scarica il 2.6.14
bzcat patch.ck7.comesichiamalei | patch -p1
e configura
purtroppo poi non ho più avuto tempo...
non ho ben capito il discoro sul 2.6.14 e 2.6.14.4 se non che devo applicare la patch al 2.6.14 e non sul 2.6.14.4 :D
domani provo! grazie

ciao

pizeta
15-12-2005, 21:29
semplice ck7 ha già tutte le patch introdotte da 2.6.14.4, se applichi ck7 a questo kernel te lo riporta indietro (facendo un bel pò di confusione) alla versione 2.6.14

se invece applichi la ck7 al 2.6.14 ti diventa un 2.6.14.4 con aggiunte della ck7

CARVASIN
15-12-2005, 21:35
semplice ck7 ha già tutte le patch introdotte da 2.6.14.4, se applichi ck7 a questo kernel te lo riporta indietro (facendo un bel pò di confusione) alla versione 2.6.14

se invece applichi la ck7 al 2.6.14 ti diventa un 2.6.14.4 con aggiunte della ck7
in teoria, da come dici te, non dovrebbe non cambiare nulla se applico la patch ck7 al 2.6.14.4?! scusa se insisto un po ma come hai capito non sono pratico per nulla!

CARVASIN
16-12-2005, 07:38
scusate ma dove si trova il kernel 2.6.14?!?! su kernel.org non ci sto capendo niente!
devo scappare

ciao!

EDIT:trovato! ora vado a provare se tutto funge

CARVASIN
16-12-2005, 18:08
ho scaricato il kernel 2.6.14.1 quando vado ad applicare la patch...

:/usr/src# patch -p1 -E -d /usr/src/linux-2.6.14.1 < patch-2.6.14-ck7
patching file fs/proc/array.c
patching file include/linux/sched.h
patching file include/linux/sysctl.h
Reversed (or previously applied) patch detected! Assume -R? [n]


scusate ma non ho proprio capito che devo fare...sarò tardo

ciao

edit: ho provato a dare il comando per il pacchetto...sta volta è andata!
a questo punto scarico il 2.6.14.4 e vado senza patch :) almeno una cosa si è risolta! grazie!

CARVASIN
16-12-2005, 18:56
ci sono riuscito! ora scrivo dal 2.6.14.4 :yeah:
ci sono però dei problemi. ora col tempo li risolverò!

grazie!
ciao!