kernel 3.5.0 su Debian Squeeze

Il kernel 2.6.x di default in Debian Squeeze può portare alcuni problemi sopratutto di mancato riconoscimento di alcune nuove periferiche.
Nel mio caso volevo collegare una chiavetta usb per guardare il digitale terrestre e questa non veniva riconosciuta, facendo una breve ho notato il supporto nella versione 3.0 del kernel.
Può quindi tornarci utile aggiornare il kernel sopratutto abbiamo problemi di hardware, per farlo basta  compilarlo scaricando i sorgenti da portale kernel.org.
La compilazione dura circa un’ora e ci permetterà di avere il nuovo kernel 3.5 perfettamente funzionante su Debian Squeeze.
Ecco come fare:

Per prima cosa prepariamo la nostra Distribuzione digitando:

su

apt-get install build-essential linux-headers-`uname -r`

a questo punto andiamo nella cartella src e scarichiamo i sorgenti del kernel 3.5

cd /usr/src

wget -c http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.5.tar.bz2

scompattiamo il file .tar.bz2 ed entriamo nella cartella linux-3.5

tar -jxvf linux-3.5.tar.bz2

cd linux-3.5

a questo punto digitiamo (dove su pressione tab clicchiamo il tasto tab visto che il file config può variare da distribuzione a distribuzione)

cp /boot/config-[pressione TAB] /usr/src/linux-3.5/.config

Ora per la configurazione e la selezione dei moduli da compilare, vi consiglio di non pasticciare con queste impostazioni e semplicemente digitando (da un comando all’altro potrebbe impiegare diversi minuti):

make menuconfig

make -j 3 bzImage

make -j 3 modules

make -j 3 modules_install

Ora creiamo la “initrd” per il kernel installato. Il “initrd” significa “Initial RAM disk”, contiene una piccola immagine del sistema da caricare all’avvio:

mkinitramfs 3.5 -o /boot/initrd.img-3.5

a questo punto rinominiamo il file bzImage in vmlinuz-3.5 digitando da terminale

Per 32 bit

cp arch/x86/boot/bzImage /boot/vmlinuz-3.5

Per 64 bit

cp arch/x64/boot/bzImage /boot/vmlinuz-3.5

Non ci resta che aggiornare il nostro bootloader

update-grub

e riavviamo.
Al riavvio avremo il nuovo Kernel 3.5 su Debian Squeeze

Nei prossimi giorni arriverà la guida dedicata alla compilazione del kernel su Debian ARM

Per installare il kernel 3.5 su Ubuntu basta consultare questa guida.

  • KZ50

    Bravo 😉

    • grazie

      • TUX.73

        E se come nel mio caso, la Sarge non riconosce la scheda eth0 quindi non avendo connessione, come faccio per aggiornare il kernel?

  • enrico t.

    Però ho sentito dire, da un esperto che non è una grande idea compilare in casa il kernel, + è scarso il pc, più accumula errori di calcolo veri e propri, e quindi alla fine si annulla il vantaggio della compilazione casalinga se avesse un senso data comunque la modularità del kernel, se uno ha un pc abbastanza potente per compilare ma non ha la competenza di sfrondare e alleggerire le varie opzioni, il kernel precompilato è più sicuro e performante comunque, anche se il solo provare a compilare cercando di personalizzare veramente le opzioni di compila implica uno studio e un’esperienza utile, anche se il tentativo di compilare si rivela una perdita di tempo.

    • non è cosi
      se hai un pc vecchio al posto di un’ora ci metti 5
      ma problemi di errori non li vedo
      magari avevi letto post datati anni ed anni fa quando si compilava il kernel di routine c’erano questi problemi ma dovuti principalmente ai vari moduli del kernel e non del sistema

  • The Pirate

    Con Wheezy si procede nello stesso modo? Anche per il kernel 3.6?

    • si la procedura possiamo dire è la stessa anche per le altre versioni sia di debian che del kernel

      • The Pirate

        Grazie!

  • Paolo

    Ciao e grazie.

    E’ molto interessante questo post: il problema della stable è proprio il riconoscimento dell’hardware nuovo.

    e per questo ho provato subito, ma ho avuto qualche problema:

    1) make menuconfig (mi sembra… come faccio a scorrere in “su” il terminale? dopo un po’ si ferma) mi chiedeva ncurses-devel che nei pacchetti non c’è.
    ho risolto con ” apt-get install libncurses5-dev ”

    2)”mkinitramfs 3.5 -o /boot/initrd.img-3.5″ mia da com errore “grep: /boot/config-3.5: No such file or directory” che in effetti non c’è, da me si chiamava /boot/config-3.5.0: ho risolto rinominandola /boot/config-3.5.

    3) “cp arch/x64/boot/bzImage /boot/vmlinuz-3.5” mi da come errore:
    “cp: impossibile eseguire stat di “arch/x64/boot/bzImage”: No such file or directory”
    in effetti la certella x64 non esiste, come candidate io ho individuato
    /usr/src/linux-3.5/arch/x86_64 oppure /usr/src/linux-3.5/arch/ia64.
    ma a questo punto mi sono fermato perché non vorrei fare troppi danni (e poi perché devo uscire)

    sto sbagliando qualcosa io? come devo proseguire?

    Grazie,
    Paolo

    • i primi 2 son corretti
      l’ultimo passaggio a mio avviso c’è un’errore in x64 prova a dare ls e vedi se c’è la cartella o meno dedicata all’architettura 64bit

      Il giorno 05 agosto 2012 14:06, Disqus ha scritto:

      • Paolo

        ok, dovrebbe essere la cartella x86_64.

        faccio tutto ma al boot mi esce un messagio di errore tipo:
        FATAL could not LOAD /lib/modules/3.5/modules.dep not such file o directory
        ma ho controllato e invece esiste ed ha li stessi permessi e tutto del 2.6.32-5-amd64 che invece va.
        ho provato a rifare tutta la procedura anche adattando al 3.5.0 che mi usciva di suo ma niente:

        perché non vede /lib/modules/3.5/modules.dep che invece esiste? hai qulache idea? tu hai provato la procedura su un 64 bit?

        Grazie,
        Ciao!

  • Fabio

    Ciao Roberto
    intanto ti ringrazio per questa guida, poi ti volevo chiedere:
    1) a parte la soddisfazione personale secondo te che vantaggi reali da’ compilarsi il kernel quando ormai quello sui backports è quasi allineato al corrente?
    2) seguendo la tua guida poi ci dovrebbero essere problemi con VBox e i driver Nvidia?
    Grazie ancora

No more articles