PDA

Visualizza la versione completa : Kernel Newbie chiede aiuto


Sachertorte
24-11-2006, 20:41
Dopo un po' che uso Linux ho deciso di capire come funziona la compilazione del kernel, ho installato una distro "cavia" su una partizione libera è ho cominciato a documentarmi.....

La prima difficoltà è trovare una guida abbastanza esaustiva da spiegarmi cosa sto facendo e perchè dovrei farlo ed allo stesso tempo abbastanza semplice da essere capita da un niubbo.....
Quelle che ho trovato sono:
- estrai il contenuto del .tar.gz, spostati nella directory taldeitali, poi configura con menuconfig, poi make clean dep bzImage modules modules_install e il Kernel è pronto, aggiungilo a Lilo/Grub e riavvia, oppure....
- 340 pagine (in inglese) che spiegano come è strutturato un kernel Linux e come gestisce diosolosaquali funzioni della CPU.

Io vorrei semplicemente capire come si configura un Kernel, che faccio installo moduli a casaccio ? Come faccio a sapere quali miservono per gestire il mio hardware e quali posso scartare ?
Ad esempio GENERIC_IOMAP che fa ? E CONFIG_SYSCTL ?
E come faccio a sapere quali moduli devo includere per gestire il mio Hardware ? Come si chiama il modulo per l'USB, quale installo per il S-ATA dei 4 disponibili ?

E per il modulo della scheda video ? Se installo un nuovo Kernel dovrò reinstallare anche il modulo, si può includere in fase di compilazione Kernel o devo reinstallare a parte ?

Un'altra cosa, magari mi servirà quando avrò un po' di pratica ma intanto metto le mani avanti....
So che esistono innumerevoli Kernel Patchati inclusi in alcune Distro e nella stragrande maggioranza dei casi le patches possono essere scaricate a parte e applicate al Kernel in fase di compilazione....
Come si applica una Patch esterna ?

andy caps
24-11-2006, 21:19
installa una debian o ubuntu se vuoi imparare a compilare il kernel
quella guida che stai seguendo è riferita ad un kernel 2.4 e non va bene
scarica l'ultimo kernel da kernel.org e scompattalo in /usr/src

poi puoi fare tutte le prove che vuoi senza fare danni

il kernel si compila dopo avere fatto make menuconfig con i comandi
make
make modules_install
e make install per installarlo
e se hai grub che punta di default a /boot/vmlinuz non devi nemmeno correggerlo ( assicurati di avere anche le voci che puntano al kernel attuale in /boot/grub/menu.lst

per i moduli io le prime volte leggevo gli help dei vari moduli
il kernel mette solo poche cose di default e devi aggiungere tutto te la prima volta
calcola comunque che le mettendo le periferiche di sistema ( processore filesystem chipset della mobo ( da ata/atapi ) in modo statico (*) e le periferiche audio video usb etc come modulo (M) hai buone speranze di vederlo partire
conoscere tutti i moduli è una impresa
per il sata ( dificile da trovare ad esempio) devi mettere statici i moduli che trovi nella sezione scsi nella sotto sezione low level driver )

Caleb
24-11-2006, 21:29
aggiungo che praticamente nessuno, nemmeno gli sviluppatori del kernel, sa con precisione cosa facciano tutti i moduli, perchè nessuno ha un vero interesse a conoscerli tutti

se vuoi sapere con precisione cosa fa una funzione con un help incomprensibile chiedi a google, ma non è comunque necessario

tu devi operare a rovescio, ovvero tirarti giù una lista delle caratteristiche del tuo hardware e trovare cosa sia necessario perchè il kernel funzioni con esso

in linea di massima con lspci -v hai una buona lista da dove iniziare

le patch si applicano con l'omonimo comando patch, tendenzialmente in ognuna di esse è presente un readme coi parametri da passare

GunMan
24-11-2006, 21:52
Originariamente inviato da Caleb
aggiungo che praticamente nessuno, nemmeno gli sviluppatori del kernel, sa con precisione cosa facciano tutti i moduli, perchè nessuno ha un vero interesse a conoscerli tutti

(cut)

nella mia ignoranza... questo non è un pò inquietante?

avere moduli nel kernel di cui non si conosce lo scopo ne l'utilizzo può portare al fatto che essi vengano implementati nella nuova versione semplicemente perchè c'erano in quella vecchia e non è il caso di metterci le mani?

se ho detto troppe sciocchezze scusatemi, ma è una curiosità che mi è sorta leggendo :)

:ciauz:

Sachertorte
24-11-2006, 22:09
quella guida che stai seguendo è riferita ad un kernel 2.4 e non va beneConsiderando che c'è scritto "Guida alla compilazione del Kernel 2.6.x" siamo a cavallo :dhò:


installa una debian o ubuntu se vuoi imparare a compilare il kernel Ho installato una Slackware.... per fare pratica non mi costa niente provare e riprovare su diverse distro :D


per il sata ( dificile da trovare ad esempio) devi mettere statici i moduli che trovi nella sezione scsi nella sotto sezione low level driver )Fino a ieri avrei riso in faccia a chiunque mi avesse detto che il S-ATA si trovava nella sezione SCSI :master:


praticamente nessuno, nemmeno gli sviluppatori del kernel, sa con precisione cosa facciano tutti i moduliSe non proprio inquietante, se è realmente così, lascia quantomeno perplessi :confused:


tu devi operare a rovescio, ovvero tirarti giù una lista delle caratteristiche del tuo hardware e trovare cosa sia necessario perchè il kernel funzioni con essoAnche così però è un casino apocalittico.....
che modulo mi serve per la periferica X ? E quale per la scheda Y ? :confused:

Grazie comunque per le info.....
se avete altre dritte non vergognatevi a darmele :malol: :malol: :malol:

Caleb
24-11-2006, 22:10
Originariamente inviato da GunMan
avere moduli nel kernel di cui non si conosce lo scopo ne l'utilizzo può portare al fatto che essi vengano implementati nella nuova versione semplicemente perchè c'erano in quella vecchia e non è il caso di metterci le mani?


infatti accade spessissimo, non è che a ogni release venga aggiornato l'intero kernel; semplicemente si verifica che il modulo tal dei tali funzioni con la versione corrente

per l'utente non è mai stato un problema, proprio perchè trattandosi di struttura modulare usi solo quello che serve

dal punto di vista dello sviluppatore, se un modulo inizia a presentare i suoi limiti perchè non tiene il passo con l'hardware o è bacato lo si aggiorna e morta lì, senza danno per nessuno

GunMan
24-11-2006, 22:16
grazie per la risposta caleb, in effetti per l'utente finale non credo faccia alcuna differenza, mi stupiva un pò lo scenario che hai dipinto ma penso sia perfettamente normale vista la mole dei moduli presenti in un kernel attuale.

:ciauz:

Caleb
24-11-2006, 22:16
Originariamente inviato da Sachertorte
Fino a ieri avrei riso in faccia a chiunque mi avesse detto che il S-ATA si trovava nella sezione SCSI :master:


il kernel di linux tratta i sata come se fossero scsi



Se non proprio inquietante, se è realmente così, lascia quantomeno perplessi :confused:


uno sviluppatore di un modulo deve conoscere come le sue tasche il kernel, non i moduli altrui



Anche così però è un casino apocalittico.....
che modulo mi serve per la periferica X ? E quale per la scheda Y ? :confused:


tanta pazienza e ricerca; dopo un po' ti trovi a imparare a memoria i nomi dei moduli più comuni

pianta in google "linux schedaX" e ravana da lì

Loading