Compilare kernel 2.6.20..

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

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.
Rispondi
silvio
Linux 0.x
Linux 0.x
Messaggi: 48
Iscritto il: gio 2 mar 2006, 1:06
Nome Cognome: Silvio Faienza
Slackware: 12.2
Kernel: 2.6.27.8-smp
Desktop: KDE 3.5.10
Località: Casnate con Bernate

Compilare kernel 2.6.20..

Messaggio 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

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Messaggio 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:

Codice: Seleziona tutto

make && make modules_install
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:

Codice: Seleziona tutto

make mrproper
make menuconfig
carichi il tuo config e fai le tue modifiche ed infine lanci

Codice: Seleziona tutto

make && make modules_install
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.

bloodlust
Linux 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

Messaggio 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

Bart
Staff
Staff
Messaggi: 4249
Iscritto il: lun 9 ago 2004, 0:00
Località: Rimini

Messaggio 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?

ninop
Linux 0.x
Linux 0.x
Messaggi: 54
Iscritto il: ven 17 feb 2006, 19:25
Slackware: 13.37
Kernel: 2.6.37.6-smp
Desktop: KDE 4.5.5

Messaggio 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
Ultima modifica di ninop il lun 5 mar 2007, 21:05, modificato 2 volte in totale.

Avatar utente
Luke88
Linux 3.x
Linux 3.x
Messaggi: 624
Iscritto il: mer 7 set 2005, 0:00
Slackware: 13.0
Kernel: 2.6.30-zen4
Desktop: xfce4
Località: Udine

Messaggio 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 :)
Meeting efficency = Average_Intelligence/( Number_Of_People^2 )

Avatar utente
waka_jawaka
Linux 3.x
Linux 3.x
Messaggi: 781
Iscritto il: mer 10 ago 2005, 0:00
Nome Cognome: Alberto Palillo
Kernel: 2.6.35
Desktop: KDE 4.5
Distribuzione: Archlinux

Messaggio 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.

bloodlust
Linux 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

Messaggio 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

Avatar utente
ekxius
Linux 3.x
Linux 3.x
Messaggi: 831
Iscritto il: sab 18 mar 2006, 11:01
Slackware: 12.0
Kernel: 2.6.23.12
Desktop: KDE 3.5.9
Località: Casa <-> Torino <-> Aosta

Messaggio 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. 8) 8)

bloodlust
Linux 3.x
Linux 3.x
Messaggi: 523
Iscritto il: mar 14 feb 2006, 12:02
Slackware: -1
Località: it_IT

Messaggio da bloodlust »

il 2.6.20.1 è il 2.6.20 con un fix in nfsacl

Avatar utente
ekxius
Linux 3.x
Linux 3.x
Messaggi: 831
Iscritto il: sab 18 mar 2006, 11:01
Slackware: 12.0
Kernel: 2.6.23.12
Desktop: KDE 3.5.9
Località: Casa <-> Torino <-> Aosta

Messaggio 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 :)

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio 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...

silvio
Linux 0.x
Linux 0.x
Messaggi: 48
Iscritto il: gio 2 mar 2006, 1:06
Nome Cognome: Silvio Faienza
Slackware: 12.2
Kernel: 2.6.27.8-smp
Desktop: KDE 3.5.10
Località: Casnate con Bernate

Ringraziamento

Messaggio 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

Rispondi