Pagina 1 di 1

Dubbio compilazione Kernel

Inviato: dom 25 ott 2009, 23:45
da RedSkull92
Quì: http://www.slacky.eu/wikislack/index.ph ... _Slackware
Nella parte che si riferisce a Compilazione Nuovo Kernel Serie 2.6.xx dice di prendere il kernel nella seguente path:
arch/x86/boot/bzImage /boot/vmlinuz-2.6.xx

mentre nella parte che si riferisce a Ricompilazione Kernel Serie 2.6.xx dice di prendere il kernel nella seguente path:
/usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.xx-new
ora mi domando... è un'errore oppure è giusto così ?

poi nella parte per compilare dice di fare così:

Codice: Seleziona tutto

# make -j5 modules
# make modules_install
ma non è la stessa cosa fare

Codice: Seleziona tutto

make ; make modules_install 
?
Lo dico perchè questa cosa mi ha creato parecchia confusione...
GRAZIE

Re: Dubbio compilazione Kernel

Inviato: dom 25 ott 2009, 23:57
da zxzxasas
Secondo me prima di ricompilare il kernel devi farti un poco di chiarezza su quello che stai facendo...

Comunque...

bzImage sarebbe l' immagine del kernel. E si trova nella directory /path/to/source/arch/x86/boot/bzImage.
La prima guida da per scontato che ti trovi nel path to source, la seconda da per scontato che tu abbia usato la directory classica in cui si mettono i sorgenti (/usr/src/linux). Ma come vedi è praticamente la stessa cosa.

Poi, passiamo alla compilazione.
digitando `make` sostituisci la successione `make bzImage` `make modules`. Sostanzialmente, compili la bzImage (la parte statica) e modules (i moduli, la parte modulare).
`make modules_install` copia i moduli compilati nelle giuste directory.

il -j5 avvia 5 processi di compilazione paralleli.

Infine, /boot/vmlinuz-2.6blablabla sarebbe ciò che dovrai indicare a lilo/grub. Anche in questo caso, è una standardizzazione, perchè potresti chiamare il file con un nome qualsiasi!

Re: Dubbio compilazione Kernel

Inviato: lun 26 ott 2009, 14:15
da RedSkull92
Grazie, ma io ho notato GIUSTAMENTE che la path è diversa...
cioè quì dice di prendere il kernel in
arch/x86/boot/bzImage /boot/vmlinuz-2.6.xx
mentre li dice di prenderlo da un'altra directory
arch/i386/boot/bzImage /boot/vmlinuz-2.6.xx-new
come mai questo cambiamento ?

Re: Dubbio compilazione Kernel

Inviato: lun 26 ott 2009, 14:22
da metrofox
Nulla di grave, forse può essere la compilazione stessa che salva l'immagine in quella path di default(anche se non credo) o forse la salva lì per la tua architettura... Nulla di così curioso o anormale :)

Re: Dubbio compilazione Kernel

Inviato: lun 26 ott 2009, 15:40
da RedSkull92
ma è piuttosto strano .
cioè nella guida dice questo:
dopo un certo periodo che dipende ovviamente dalla velocità del vostro sistema vi troverete l'immagine del Kernel pronta in /usr/src/linux/arch/i386/boot/.
ma poi ti fà prelevare il kernel da un'altra directory
arch/x86/boot/bzImage
che senso avrebbe ?
Di sicuro è stata una svista da parte dell'autore, ma per un'argomento tanto delicato penso sia meglio definire per bene da dove prelevare il kernel (io l'ho sempre prelevato da arch/x86/boot/bzImage)

Re: Dubbio compilazione Kernel

Inviato: lun 26 ott 2009, 18:22
da brainvision
ma mi sa che l'architettura i386 nel kernel dal 2.6 in poi non è più prevista.. da allora c'è x86 e basta.. non ricordo dove di preciso, ma se neparlava in un'altra discussione qui nel forum di slacky.eu. Io da quando ricompilo il kernel ho sempre trovato x86.. ed ha sempre funzionato, quindi fidati e vai avanti.. ok?

Re: Dubbio compilazione Kernel

Inviato: lun 26 ott 2009, 21:43
da RedSkull92
sisi tranquillo io ho sempre fatto così, ma era per avvertire gli autori così da poter correggere/modificare il wiky :)

Re: Dubbio compilazione Kernel

Inviato: mar 27 ott 2009, 16:58
da metrofox
brainvision ha scritto:ma mi sa che l'architettura i386 nel kernel dal 2.6 in poi non è più prevista.. da allora c'è x86 e basta.. non ricordo dove di preciso, ma se neparlava in un'altra discussione qui nel forum di slacky.eu. Io da quando ricompilo il kernel ho sempre trovato x86.. ed ha sempre funzionato, quindi fidati e vai avanti.. ok?
Perché questo cambio? :)

Re: Dubbio compilazione Kernel

Inviato: mar 3 nov 2009, 6:49
da Toxoz
Io invece ho un altro dubbio .... come faccio poi a togliere un kernel più vecchio che ormai non uso più ? Per ora mi va bene avere due kernel ... quello di default e quello stabile più recente .... ma appena uscirà la prima versione stabile del 2.6.32 ... come faccio a togliere quello che uso? Devo dare make clean nella directory dei sorgenti?

Re: Dubbio compilazione Kernel

Inviato: mar 3 nov 2009, 8:55
da brainvision
no, non c'è bisogno, basta eliminare tutte le directory che si riferiscono a quel kernel. oltre naturalmente ai file in /boot..
Quindi

Codice: Seleziona tutto

/lib/modules/linux-xxxx
/usr/src/linux-xxxx
Dare un

Codice: Seleziona tutto

make clean
ti serve più che altro nel caso tu voglia ritornare ad avere i sorgenti "puliti" eliminando ogni riferimento creato dal precedente .config..

Re: Dubbio compilazione Kernel

Inviato: dom 9 gen 2011, 10:36
da Jan69
RedSkull92 ha scritto:ma è piuttosto strano .
cioè nella guida dice questo:
dopo un certo periodo che dipende ovviamente dalla velocità del vostro sistema vi troverete l'immagine del Kernel pronta in /usr/src/linux/arch/i386/boot/.
ma poi ti fà prelevare il kernel da un'altra directory
arch/x86/boot/bzImage
che senso avrebbe ?
Di sicuro è stata una svista da parte dell'autore, ma per un'argomento tanto delicato penso sia meglio definire per bene da dove prelevare il kernel (io l'ho sempre prelevato da arch/x86/boot/bzImage)
Guarda, io stamattina per la mia Slack64, e col tuo stesso dubbio, ho digitato un bel

Codice: Seleziona tutto

bash-4.1# cp arch/x86_64/boot/bzImage /boot/vmlinuz-2.6.36.2
e tutto e' andato a buon fine.
Adesso sono andato a vedere cosa c'e' in arch/x86_64/boot/ (visto che bash al momento mi faceva completare ogni cosa digitassi) e mi ritrovo

Codice: Seleziona tutto

lrwxrwxrwx 1 zx zx   22 Jan  9 08:34 bzImage -> ../../x86/boot/bzImage
Per cui credo che il sistema compili in automatico in base alla tua architettura e poi si limiti a linkare l'immagine che ha creato.
Magari se passa qualche guru puo' essere piu' preciso ;)

Re: Dubbio compilazione Kernel

Inviato: dom 9 gen 2011, 12:42
da albatros
RedSkull92 ha scritto:Quì: http://www.slacky.eu/wikislack/index.ph ... _Slackware
Nella parte che si riferisce a Compilazione Nuovo Kernel Serie 2.6.xx dice di prendere il kernel nella seguente path:
arch/x86/boot/bzImage /boot/vmlinuz-2.6.xx

mentre nella parte che si riferisce a Ricompilazione Kernel Serie 2.6.xx dice di prendere il kernel nella seguente path:
/usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.xx-new
ora mi domando... è un'errore oppure è giusto così ?
Il bzImage nella directory i386 è semplicemente un link simbolico, come segnalato anche da Jan69 per x86_64.

Codice: Seleziona tutto

/usr/src/linux-2.6.37/arch/i386/boot$ ls -l
totale 0
lrwxrwxrwx 1 root root 22 gen  7 22:34 bzImage -> ../../x86/boot/bzImage

Re: Dubbio compilazione Kernel

Inviato: dom 9 gen 2011, 12:53
da conraid
nel 2.6.24 uscito a gennaio 2008 è stato unificato il codice x86_64 e i386

da KN
When support for the x86-64 AMD architecture was developed, it was decided to develop it as a "fork" of the traditional x86 architecture for comodity reasons. Many patches needed to patch a file in the i386 architecure directory, and another similar patch for the duplicated file in the x86_64 directory. It has been decided to unify both architectures in the same directory again.

This reunification has not been done in a radical way. In this release, both architectures have been unified in arch/x86, but only in appearance. All the source files in i386 and x86-64 directories have been moved to arch/x86, but renaming them with "_32" and "_64" suffixes. Ex: arch/i386/kernel/reboot.c has been moved to arch/x86/kernel/reboot_32.c, and arch/x86_64/kernel/reboot.c has been moved to arch/x86/kernel/reboot_64.c. Makefiles have been modified accordingly. So for now the reunification has been pretty much just a relocation of all the files and adaptation of the build machinery to make it compile just as it'd have been compiled in the old separated directories, done mostly with scripts.

In the future lots of those files will be unified and shared by both architectures, ex. reboot_32.c and reboot_64.c into reboot.c, and many files have already been unified in this release. Others will keep separated forever, due to the differences between both architectures.
Per l'unificazione dei singoli file le cose non sono ancora state completate, se guardate nei sorgenti i citati reboot_32 e reboot_64 ora sono un unico file, ma esistono ancora altri file separati

Re: Dubbio compilazione Kernel

Inviato: dom 9 gen 2011, 23:59
da Jan69
conraid ha scritto:da KN
E' vero!!! 8)

M'ero totalmente dimenticato di Kernel Newbies, grazie! :D