slackit-ml
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Slackit.org] moduli...


From: insomniac
Subject: Re: [Slackit.org] moduli...
Date: Wed, 8 Jun 2005 23:12:09 +0200

On Wed, 8 Jun 2005 22:08:55 +0200
freddy <address@hidden> wrote:

> Alle 18:56, mercoledì 8 giugno 2005, paolo massei ha scritto:
> 
> > Non avvitarti in operazioni astruse: compilatelo da te, dai i
> > comandi adatti, poi lo copi in /boot.
> 
> il fatto è che compilare un kernel non è così facile come sembra,
> anche se per voi lo è... come fai sapere cosa devi installare come *
> o come M, primo è tutto in inglese... e poi non riesci a conoscere
> tutto l' hardware montato su un laptop ad esempio...
> cosa devi installare per le penne USB, come le devi installare..
> se usare initrd o no...ci sono tante cose da sapere

Ciao freddy, il tono dominante nelle risposte al tuo post è stato il
solito sarcastico (dettato dall'istinto di autoconservazione della
specie -- le domande sono sempre le stesse, le risposte pure).

Cercherò di essere breve ma chiaro.
Per quanto riguarda il kernel, puoi distinguere più fasi:
- configurare il kernel
- compilare il kernel
- installare il kernel (questa merita una delucidazione, a tempo
debito).

Per quanto riguarda il primo punto, è fondamentale conoscere quantomeno
i componenti principali della tua macchina (anche se poi è brutto
vedere che non funziona il card reader, o altri componenti secondari,
quindi è meglio conoscere tutti i pezzi ;)
A questo scopo puoi muoverti in più modi: conoscendo i modelli precisi
dei componenti (nel caso di un assemblato), cercando su google il tuo
modello di computer (nel caso di portatili o di preset), usando lspci
da una distribuzione preinstallata o da un cd di boot (tipo quello di
slackware o quello di knoppix). In generale ti conviene conoscere tutti
i singoli pezzi.
Una volta identificati i componenti devi sperare che siano tutte
supportate da linux o da driver esterni :)
Per farlo io solitamente lancio un comando del tipo
% grep -iR <modello del componente> /usr/src/linux/Documentation/*
e il più delle volte ottengo informazioni utili.
Altrimenti google, che risponde nel resto dei casi :)
Fatto questo ti conviene prendere familiarità con i menu
dell'interfaccia di configurazione del kernel (menuconfig, gconfig,
etc), in modo da capire come sono organizzati, e quindi come decidere
se includere o meno un'opzione in fase di configurazione. Se hai dubbi,
o se semplicemente vuoi sapere cosa fa una determinata opzione, scegli
`help' e leggi :)
Questa è la fase più delicata, se la ignori difficilmente riuscirai a
compilare kernel funzionanti. E' ovviamente quella più dipendente
dall'esperienza, quindi migliorerà per forza di cose col tempo.

Secondo punto: la compilazione.
Il sistema di compilazione del kernel è molto semplice, ovviamente dopo
che hai letto il file /usr/src/linux/README. Almeno io l'ho trovato
semplice dopo aver letto quel file.
Se hai un 2.6, è sufficiente lanciare un make help per vedere quali
sono le opzioni disponibili. I target principali per la compilazione
sono questi:

Other generic targets:
  all             - Build all targets marked with [*]
* vmlinux         - Build the bare kernel
* modules         - Build all modules
  modules_install - Install all modules
  dir/            - Build all files in dir and below
  dir/file.[ois]  - Build specified target only
  rpm             - Build a kernel as an RPM package
  tags/TAGS       - Generate tags file for editors
  cscope          - Generate cscope index

Architecture specific targets (i386):
* bzImage       - Compressed kernel image (arch/i386/boot/bzImage)
  install       - Install kernel using
                   (your) ~/bin/installkernel or
                   (distribution) /sbin/installkernel or
                   install to $(INSTALL_PATH) and run lilo
  bzdisk       - Create a boot floppy in /dev/fd0
  fdimage      - Create a boot floppy image

A noi serve compilare il kernel, e poi compilare ed installare
eventuali moduli (do per scontato che sai cosa sia un modulo per il
kernel). Guardando il paste precedente, per compilare soltanto il
kernel c'è il target "vmlinux" o il target "bzImage" (uguali, solo che
il secondo comprime anche l'immagine del kernel). Per compilare i moduli
c'è il target "modules". Per installare i moduli nei path standard c'è
"modules_install" (il path standard è / lib/ modules/ $KERNEL_VER , ad
esempio /lib/ modules/2.6.9). Giusto per completezza, se vedi
nell'output di make help, accanto ai target vmlinux, bzImage e modules,
c'è un asterisco. Leggendo l'help del target "all" scopriamo che
lanciare un make all corrisponde al lanciare un make con tutti i
target di cui sopra. Manca modules_install: con un "make all
modules_install" compili il kernel, i moduli, e installi questi ultimi.

Ultima fase: installazione
La fase di installazione comprende un'eventuale altro passo: copiare il
kernel in una locazione più indicata, se non altro per motivi di ordine
e organizzazione. Può essere più comodo infatti mantenere tutti i
kernel in /boot, o anche altrove.
Una volta che hai il path assoluto al kernel, devi indicarlo nel
lilo.conf: mettiamo che il tuo kernel è in /boot/kernels/linux-2.6.9
(lo copi da /usr/src/linux/arch/i386/boot/bzImage -- al posto di i386
metti la tua architettura). Allora dovrai creare una nuova sezione in
/etc/lilo.conf (alla cui man page ti rimando per eventuali dubbi), dove
ci sarà la riga "image = /boot/ kernels/linux-2.6.9" del nostro esempio.
Se lilo.conf è a posto, lancia "lilo -v" da root e vedi se ci sono
errori. Se non ci sono errori, il tuo kernel è installato e pronto da
usare al prossimo riavvio.

Non sono stato propriamente breve ;) ma l'argomento non lo permetteva.


 
> > make menuconfig + /dev/brain montato
> 
> penso che questa sia una battuta... sapendo che  "brain" significa
> cervello...

Si, è una battuta che nonostante la sua stupidità non passa mai di
moda..

--
insomniac




reply via email to

[Prev in Thread] Current Thread [Next in Thread]