Kernel Patching & Recompiling-6

Ecco la sesta parte della guida su come patchare e ricompilare il kernel 2.6.21. Ripassiamo i concetti…

  • Stiamo facendo un lavoro per Ubuntu, ma i comandi per Debian sono quasi identici.
  • Abbiamo già fatto:
    1. elencato i comandi per sapere quale hardware c’è nel nostro computer » primo articolo
    2. installato i pacchetti per la compilazione del kernel in Ubuntu (per i pacchetti Debian vedere Come ricompilare il kernel su Debian (guida di DebianClan)) » primo articolo
    3. scaricato da kernel.org l’ultimo kernel “vanilla” disponibile ed estratto in /usr/src;
    4. applicato la patch di Con kolivas e fatto un link simbolico /usr/src/linux alla directory di smanettamento » secondo articolo
    5. preso il vecchio file di configurazione e adattato al nuovo kernel tramite oldconfig » terzo articolo
    6. ottimizzato il kernel per il nostro processore tramite make xconfig » quarto articolo
    7. tolto i moduli non necessari sempre con make xconfig (in verità vi ho detto ben poco) » quinto articolo

Ora è il momento di far lavorare il computer.

Pronti?

OTTAVO PASSO: E luce fu

Al solito: dopo aver salvato qualsiasi lavoro fatto con xconfig aprite Konsole/Terminale e digitate
cd /usr/src/linux

Se è la prima volta che compilate il kernel, potete tranquillamente evitare di dare il successivo conando, che invece è necessario per le compilazioni successive.
fakeroot make-kpkg clean

In tal modo rimuoverete i sorgenti obsoleti lasciati lì da compilazioni precedenti.

Creiamo il nuovo kernel (dopo giorni e giorni ad attendere la fine della mia guida):
fakeroot make-kpkg --append-to-version=-custom --initrd kernel_image kernel_headers modules_image

Al posto di -custom mettete qualcosa che identifichi il vostro nuovo kernel: io ad esempio ho messo -looka1.

Quando avrete lanciato il comando precedente il vostro computer si lancerà in una sequenza di calcoli piuttosto onerosa per un tempo lungo. Andate a farvi il tè, andate a guardare un film… O anche a lavorare :) sul mio pc ci ha messo un’oretta.

A questo punto in /usr/src dovreste avere dei pacchetti debian da installare: fatelo! (ovviamente al posto di custom ci sarà quello che avete scritto voi).

I pacchetti principali sono linux-image e linux-headers:
sudo dpkg -i linux-image-2.6.21-ck2-custom.deb
sudo dpkg -i linux-headers-2.6.21-ck2-custom

Poi se avevate dei moduli (ad esempio io ho fuse per la lettura/scrittura su ntfs) dovrete installare anche quelli
sudo dpkg -i *-2.6.21-ck2-custom.deb

Installando i pacchetti debian del kernel abbiamo il grosso vantaggio che GRUB si aggiorna automaticamente e la vecchia lista di kernel non si cancella, quindi se avete cannato qualche opzione del kernel potrete avviare comunque il vecchio sistema.

Beh, la guida è finita. Dovete solo controllare che tutto funzioni riavviando il sistema e incrociando le dita :)

PROBLEMI? I santi cadono dal calendario!

Un problema che ho avuto io era questo: la grafica 3D era andata a donnacce! Questo mi era capitato perché avevo abilitato il supporto framebuffer per nVidia RIVA, e questo faceva a pugni con la mia scheda nVidia GeForce. (sì, non è la prima volta che ricompilo il kernel).

Ancora, all’avvio il logo Kubuntu (sapete, quello in cui fa vedere la barra blu di avanzamento) mi compare tutto imputtanato anche con i driver VESA. La mia ipotesi è che non bisognasse usare il framebuffer, sto ancora cercando su internet delle conferme alla mia teoria. Se qualcuno di voi mi chiarisce il dubbio è il benvenuto. Comunque KDE parte bene e lavora altrettanto bene, solo il logo iniziale è brutto brutto.

Bisogna anche spendere 2 paroline sui driver proprietari nVidia: se avevate i driver proprietari non open-source, non vi funzionerà più l’interfaccia grafica e dovrete sostituire “nvidia” con “vesa” in /etc/X11/xorg.conf (spiegato sotto): questo perché il driver proprietario nVidia è strettamente legato al kernel in uso, se cambiate kernel dovrete rifare l’installazione del driver.

Se X (ambiente grafico) non funziona a dovere, passate alla linea di comando premendo ALT+F2 e loggatevi. Poi modificate xorg.conf:

sudo nano /etc/X11/xorg.conf

Cercate la sezione “Device” come mostrato nello screenshot e sostituite al driver il driver generico vesa:
Section "Device"
Identifier "NVIDIA Corporation NV34 [GeForce FX 5500]"
Driver "vesa" #al posto di "nvidia" o qualsiasi cosa abbiate
EndSection

Salvate con CTRL+O, date invio e chiudete con CTRL+X.

Fatto questo probabilmente potrete rientrare in ambiente grafico o riavviando il pc o col comando (che non sempre prende bene)
startx

Altrimenti riavviate, scegliete il vecchio kernel sicuramente funzionante dal menu di GRUB e cercate di capire cosa avete sbagliato nella ricompilazione del kernel per imputtanare tutto!

Se invece non arrivate nemmeno a caricare il kernel (il pc si pianta subito dopo GRUB, schermata nera), è chiaro che avete escluso dei driver essenziali presi dalla furia barbarica di sterminare i moduli peggio che i Lanzichenecchi con i pretacci. Uccidetevi pure, dopo tutto il tempo passato a fare ‘sta dannata guida! (oppure riavviate e scegliete un kernel funzionante)

Avete generato solo pattumiera e ora volete rimuoverla dal sistema (e soprattutto dal menu di avvio di GRUB)? Oppure siete così soddisfatti del nuovo kernel da voler cancellare il vecchio (cosa che sconsiglio)? Nulla di più facile: leggete questo articolo!

Come rimuovere i vecchi kernel

Di mio ci aggiungo questo: siccome avete installato anche linux-headers e forse alcuni moduli, vi consiglio di digitare in Konsole senza premere INVIO alla finesudo apt-get -s remove linux-headers-” e poi due volte consecutive il tasto TAB.

Così Ubuntu vi darà l’elenco di quello che c’è installato sul computer che inizia con linux-headers- (nota: questa funzione non è presente in Debian 3.0, devo ancora controllare se c’è su Debian 4.0 Etch).
Una volta stabilito quali sono gli headers da rimuovere (quelli installati al termine della guida dovrebbero terminare con 2.6.21-ck2-custom) lanciate:

sudo apt-get -s remove linux-headers-quellochevoleterimuovere

Stessa procedura per i moduli: digitate la parte iniziale del nome, date 2 TAB, trovate quello che vi interessa e rimuoveteli.

E se funziona tutto… quanto è grande il vostro kernel ora? :D

Aggiornamento: a quanto pare Con Kolivas ha deciso di non distribuire più le proprie patch a partire dal kernel 2.6.22, deluso dalla scarsa attenzione ricevuta dal kernel-team (di cui Linus Torvalds è il padrone indiscusso).
Una ulteriore dimostrazione di come in casa Linux siano di più i litiganti che i lavoranti. Vogliamo poi parlare della qualità dei programmi, pieni di bug al punto da essere inutilizzabili?
Esempio: l’editore Latex di KDE, KILE: appena tento di aprire un file *.tex va in crash e a me cascano così tanto i coglioni che manco viene la voglia di inviare una segnalazione di bug.
Se ormai avete capto come usare Linux (se avete ricompilato il kernel sicuramente non siete alle prime armi) abbandonate Ubuntu e usate Debian: è meno comoda, ma stabile come una roccia e meno propensa a lasciarvi fare cazzate.

3 thoughts on “Kernel Patching & Recompiling-6

  1. mas7ro.p!no scrive:

    Ti ringrazio per l’ottima guida, mi ha aiutato parecchio nella ricompilazione del kernel per il mio Toshiba :)

    ThX M8

  2. mattia scrive:

    uaoh…ma se tolgo il driver nvidia e metto vesa…come supporto il 3d??

  3. sevencapitalsins scrive:

    Nessun 3d :) Devi mettere vesa e poi reinstallare i driver nvidia (questa è una cosa che devi fare ogni volta che ricompili il kernel)

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: