[Tech] ricompilare il kernel

Francesco Poli frx@firenze.linux.it
Sab 26 Feb 2005 18:28:05 CET


On Fri, 25 Feb 2005 16:17:11 +0100 sirtux wrote:

> Ho una debian sarge con kernel /boot/vmlinuz-2.4.27-speakup vorrei
> ricompilarlo per attivare il 3d su una asus v3000agp che monta chip
> nvidia e guardare cosa mi trovo di frontevorrei soprattutto imparare.

Compilare un kernel Linux su una Debian e` molto comodo: io ti consiglio
di farlo con kernel-package (piuttosto che manualmente).
Qui sotto ti illustro come faccio io su una Debian Woody (che e` la
attuale versione stabile di Debian): su una Sarge non dovrebbe essere
molto diverso.


  ::::::: Legenda ::::::: 

domande e risposte   ..................   --> domanda? risposta
marcatore di inizio/fine file  ........   ++++++++++++++++
riquadro per modifiche ad un file  ....   +--------------+
comandi dati da root   ................   # comando
comandi dati da utente comune   .......   $ comando



  ::::::: Installazione e configurazione iniziale (una tantum) ::::::: 

# apt-get install fakeroot kernel-package libc6-dev bin86
# apt-get install libncurses5-dev tk8.3-dev binutils gcc
# apt-get install make mawk gzip shellutils grep

$ vim ~/.kernel-pkg.conf

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# The maintainer information.
maintainer := MioNome MioCognome
email := mio.indirizzo.di@posta.elettronica

# Priority of this version (or urgency, as dchanges would call it)
priority := Low
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

$ mkdir -p ~/kernel/nomemacchina ~/kernel/src



  ::::::: Configurazione del nuovo kernel ::::::: 

$ cd ~/kernel/src
$ wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.29.tar.bz2
$ cd ~/kernel/nomemacchina
$ tar xvjf ../src/linux-2.4.29.tar.bz2
$ cd linux-2.4.29/
$ make mrproper
$ cp -a /boot/config-2.4.29 .config
$ make menuconfig

E configuri il kernel in maniera da rispondere alle tue esigenze...



  ::::::: Compilazione del nuovo kernel ::::::: 

$ make-kpkg clean
$ fakeroot make-kpkg --revision 9:my.1.0 --arch_in_name kernel_image
$ fakeroot make-kpkg --revision 9:my.1.0 --arch_in_name kernel_headers



  ::::::: Installazione del nuovo kernel ::::::: 

$ cd ..
$ su
# dpkg -i kernel-image-2.4.29_my.1.0_i386.deb
--> create a boot floppy now? No
--> install a boot block using the existing /etc/lilo.conf? Yes
# dpkg -i kernel-headers-2.4.29_my.1.0_i386.deb
# rm /lib/modules/2.4.29/build
# ln -s /usr/src/kernel-headers-2.4.29 /lib/modules/2.4.29/build

A questo punto sei pronto per riavviare la macchina e vedere
se il bootstrap va a buon fine con il nuovo kernel appena
installato.
In caso contrario, non ti preoccupare, puoi sempre avviare
con il precedente (LinuxOLD) e riconfigurare, ricompilare (con
--revision 9:my.1.1) e installare i nuovi pacchetti che andranno
a sostituire quelli sbagliati.



Per quanto riguarda i driver per la scheda video: la nVidia pubblica
dei driver proprietari e non rende note le specifiche hardware
dei suoi chipset grafici.
Non supporta *per niente* la comunita` del software libero!  :-T
E questo e` veramente triste: significa sostanzialmente che
non esistono driver liberi per le schede video basate su chipset
nVidia. Di conseguenza nel kernel Linux non troverai alcun
modulo che supporti tali schede video (in pratica niente 3D
e, per le schede molto recente, persino niente 2D con un sistema
completamente libero).

Se davvero vuoi installare i driver proprietari forniti da nVidia  :-(
puoi fare come segue, ma leggiti bene la documentazione
perche' le cose potrebbero essere abbastanza diverse su Sarge.



  ::::::: Driver proprietari :-( nVidia ::::::: 

Prima di tutto devi avere anche la sezione non-free :-(
nei depositi configurati in /etc/apt/sources.list

# apt-get install nvidia-kernel-source nvidia-kernel-common
$ cd ~/kernel/nomemacchina
$ tar xvzf /usr/src/nvidia-kernel-source.tar.gz
$ export MODULE_LOC=~/kernel/nomemacchina/modules
$ cd linux-2.4.29/
$ fakeroot make-kpkg --revision 9:my.1.0 --arch_in_name modules_image
$ cd ..
$ su
# dpkg -i nvidia-kernel-2.4.29_?.?.????-?+my.1.0_i386.deb
# apt-get install nvidia-glx
# vim /etc/X11/XF86Config-4

  +--------------------------------------------------------------+
  | Section "Module"                                             |
  |         Load    "glx"                                        |
  | #       Load    "dri"                                        |
  | #       Load    "GLcore"                                     |
  | Section "Device"                                             |
  |         Driver "nvidia"                                      |
  +--------------------------------------------------------------+

Inoltre potresti preferire continuare a gestire manualmente il file
di configurazione XF86Config-4: per toglierlo dalla giurisdizione
di debconf, elimina le due righe con i marcatori DEBCONF

A questo punto puoi provare a lanciare X.
Se sei gia` in una sessione X, esci e chiudi il server X.
Da console prova a (ri)avviare X:

$ startx



-- 
          Today is the tomorrow you worried about yesterday.
......................................................................
  Francesco Poli                             GnuPG Key ID = DD6DFCF4
 Key fingerprint = C979 F34B 27CE 5CD8 DC12  31B5 78F4 279B DD6D FCF4
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: non disponibile
URL:         <http://lists.linux.it/pipermail/flug-tech/attachments/20050226/f5c9db09/attachment.pgp>


Maggiori informazioni sulla lista flug-tech