Pagina 1 di 1
Compilare kernel 2.6.20..
Inviato: lun 5 mar 2007, 18:57
da silvio
Utilizzo Slackware 11 con kernel 2.6.18 e vorrei compilare il kernel 2.6.20.1 a scopo "didattico".Sono ancora un principiante di linux per molti versi,e volevo porre alcuni quesiti che non mi sono chiari.Il mio PC è così composto: hda Ubuntu,hdb (sdb) Arch ,hdd Slackware.Grub è installato nel MBR del primo disco,hda(Ubuntu) e gestisce l'avvio di tutti i sitemi presenti.Tornando al kernel,ho effettuato delle prove ma non mi riesce ancora di caricare i moduli.Il kernel 2.6.20.1 riesco ad avviarlo senza ricevere troppi messaggi di errore,solo "punta ancora ai moduli del kernel vecchio,e la scheda audio non funziona quando eseguo #alsaconf..trava il modulo corretto ma mi restituisce un erore che purtroppo non ho sottomano.La rete funziona perfettamente.I comandi utilizzati per l'installazione sono i seguenti:#make menuconfig #make clean #make dep #make bzImage #make modules #make modules_install e poi copio bzImage in /boot.Io vorrei avvalermi del.config del kernel "funzionante" il 2.6.18.ma non mi è chiaro come fare senza rischiare di sovrascrivere il .config vecchio.Io farei così:#make oldconfig #make menuconfig e poi a seguire come sopra.Inoltre,scusate la mia ignoranza,non mi sono chiare le due fatidiche domande finali:Load an alternate ...e successiva.Scusate il post forse troppo lungo..Ciao
Inviato: lun 5 mar 2007, 19:17
da Bart
Ciao,
parto dicendoti subito che sul wiki trovi diverse guide sulla compilazione del kernel e nel forum trovi tante altre informazioni.
Secondo consiglio, quando compili un kernel della serie 2.6.x, basta il seguente comando:
Compila e installa i moduli.
Terzo consiglio, quando scarichi i sorgenti del nuovo kernel e vuoi caricare il config di Pat ad esempio, lo puoi fare caricandolo nell'interfaccia che ottieni lanciando make menuconfig.
In pratica scarichi i sorgenti, li copi in /usr/src e li estrai. Entri nella directory appena creata e lanci:
carichi il tuo config e fai le tue modifiche ed infine lanci
Finito questo sposti i vari System.map, .config e bzimage sotto /boot e modifichi lilo.
Se hai spostato il config vecchio in boot come da copione, hai sempre una copia di backup (diciamo) per poterlo riutilizzare.
Inviato: lun 5 mar 2007, 20:13
da bloodlust
spostando il file System.map modificane il nome in System.map-versione_del_tuo_kernel così non sovrascrivi quello del vecchio kernel (o il link).
Se poi con il kernel nuovo il sistema funziona puoi creare il link /boot/System.map -> /boot/System.map-versione_del_tuo_kernel.
ciao
Inviato: lun 5 mar 2007, 20:21
da Bart
bloodlust ha scritto:spostando il file System.map modificane il nome in System.map-versione_del_tuo_kernel così non sovrascrivi quello del vecchio kernel (o il link).
Se poi con il kernel nuovo il sistema funziona puoi creare il link /boot/System.map -> /boot/System.map-versione_del_tuo_kernel.
ciao
Ma voi lo fate? Cioè alla fine ricreate tutti i link simbolici? A cosa serve?
Inviato: lun 5 mar 2007, 20:55
da ninop
Bart ha scritto:bloodlust ha scritto:spostando il file System.map modificane il nome in System.map-versione_del_tuo_kernel così non sovrascrivi quello del vecchio kernel (o il link).
Se poi con il kernel nuovo il sistema funziona puoi creare il link /boot/System.map -> /boot/System.map-versione_del_tuo_kernel.
ciao
Ma voi lo fate? Cioè alla fine ricreate tutti i link simbolici? A cosa serve?
Non ricordo o forse non ho mai saputo a cosa serve il file sistem.map
e perchè ogni volta che cambia il kernel in uso lo si debba cambiare con il corrispondente
creato - per esempio - dopo una compilazione.
. . .nino
Inviato: lun 5 mar 2007, 21:00
da Luke88
da
http://en.wikipedia.org/wiki/System.map
In Linux, the System.map file is a symbol table used by the kernel.
A symbol table is a look-up between symbol names and their addresses in memory. A symbol name may be the name of a variable or the name of a function. The System.map is required when the address of a symbol name, or the symbol name of an address, is needed. It is especially useful for debugging kernel segmentation faults.
The following is part of a System.map:
c041bc90 b packet_sklist
c041bc94 b packet_sklist_lock
c041bc94 b packet_socks_nr
c041bc98 A __bss_stop
c041bc98 A _end
c041c000 A pg0
ffffe400 A __kernel_vsyscall
ffffe410 A SYSENTER_RETURN
ffffe420 A __kernel_sigreturn
ffffe440 A __kernel_rt_sigreturn
Because addresses may change from one build to the next, a new System.map is generated for each build of the kernel.
qui c'è qualcosa di più
http://www.dirac.org/linux/system.map/
bello, non lo sapevo

Inviato: lun 5 mar 2007, 21:28
da waka_jawaka
silvio ha scritto:solo "punta ancora ai moduli del kernel vecchio,
Se hai fatto make modules_install non penso che carichi i moduli del 2.6.18; penso invece che carichi l'rc.modules del vecchio kernel, come succedeva a me. Ho risolto alla buona con "cp rc.modules-vecchio_kernel rc.modules-nuovo_kernel" e facendo poi le modifiche del caso.
Inviato: lun 5 mar 2007, 21:58
da bloodlust
per evitare di fare il lavoro a mano basta usare per l'installazione del kernel make install e creare uno script modificato. Lo script va creato in ~/bin/ o /sbin/ e va chiamato installkernel. viene chiamato direttamente da install.sh (che si occupa di passargli i parametri corretti:
#1 versione kernel, #2 immagine kernel, #3 mappa simboli, #4 percorso di installazione).
La tabella dei simboli non viene usata solo per aiuto nel debug ma in tutte quelle occasioni in cui è necessario risalire da un indirizzo numerico al nome mnemonico si un simbolo (per i moduli questo avviene un po' diversamente). E' usato anche da molti programmi user-space (es. klogd).
Normalmente il file letto è /boot/System.map ma alcuni programmi daranno la precedenza a /boot/System.map-kernel_version.
Avere System.map che punta alla versione attuale di kernel è un modo semplice per tenersi la tabella di più kernel.
ciao
Inviato: lun 5 mar 2007, 22:55
da ekxius
quindi il 2.6.20.1 teoricamente è il miglior kernel presente al momento? dove si possono leggere delle info un po' chiare in ita sull'ultimo kernel linux?
perchè questo fine settimana inizierò la mia prima compilazione.

Inviato: lun 5 mar 2007, 23:03
da bloodlust
il 2.6.20.1 è il 2.6.20 con un fix in nfsacl
Inviato: mar 6 mar 2007, 8:46
da ekxius
bloodlust ha scritto:il 2.6.20.1 è il 2.6.20 con un fix in nfsacl
si ho visto che è un 2.6.20 patchato. ho letto che molti però preferiscono un kernel "pulito" senza patch e pre-patch applicate e quindi mi chiedevo quale sia la scelta di versione migliore.
ed eventualmente una guida che descriva le caratteristiche dei kernel linux.
ciao

Inviato: mar 6 mar 2007, 10:45
da albatros
ho letto che molti però preferiscono un kernel "pulito" senza patch e pre-patch applicate e quindi mi chiedevo quale sia la scelta di versione migliore.
Un discorso sono le patch che aggiungono funzionalità o sperimentali, un altro le patch ufficiali contenenti bug-fix...
La versione migliore è di norma quella con la versione di bug-fix più recente, ossia la 2.6.20.1, che ha le stesse identiche funzionalità della 2.6.20 a parte la correzione di un errore (che a me non interessava, per cui non ho aggiornato).
Però non è assolutamente detto che l'ultima versione sia la migliore, anzi, perché l'introduzione di nuove funzionalità può introdurre nuovi bachi...
Un'atteggiamento prudente può essere scegliere una versione precedente con numerose versioni minori di bug-fix; tale atteggiamento è fra l'altro quello di Patrick Volkerding con la Slackware, che usa gcc 3.4.6 anziché un 4.x o un kernel 2.4.33 ...
Per le informazioni sul kernel, che io sappia in italiano non trovi granché, almeno di aggiornato a livello di minor o di bug-fix releases...
Su Linux&C. trovi una sezione kernel news, curata da Genoni, ma spesso non è immediatamente comprensibile se non si hanno un po' di basi...
Però la documentazione a corredo del kernel di solito non è male, se leggi le informazioni disponibili per ciascuna opzione di configurazione e poi cerchi un po' in rete dovresti essere in grado, con un po' di pazienza, di capire a che cosa serva e se abilitarla o no...
Ringraziamento
Inviato: mar 6 mar 2007, 14:12
da silvio
Grazie a tutti per i consigli che mi avete dato.Sono riuscito a compilare il kernel 2.6.20.1 e dovrebbe funzinare tutto,almeno credo.Rimane qualche piccolo errore da sistemare,punta ancora ai moduli del kernel 2.6.18 ma carica correttamente quelli del nouvo kernel.Grazie ancora a tutti per i consigli e l'aiuto che mi avete fornito.Ciao