Kernel 2.6.22 con Debian Etch e Backports

Il logo ufficiale di Debian GNU/LinuxLavoro quotidianamente con Debian Etch: la utilizzo con estrema soddisfazione sia sui server aziendali che sul notebook personale (lo stesso con cui scrivo in questo momento). Sono un convinto difensore del ramo Stable di Debian – e di qualsiasi altro sistema operativo – anche perché ne faccio un uso professionale e non mi posso permettere il lusso di perdere tempo o – peggio – di compromettere la stabilità di un sistema per testare l’ultimo gingillo. Sul mio notebook, però, mi si presenta spesso l’esigenza di sfruttare una serie di feature che sono assenti o incomplete nel kernel 2.6.18, una su tutte la possibilità di ricorrere al driver NTFS-3G per gestire al meglio le partizioni NTFS. Molti segnalano il poco rassicurante avviso al boot di una Debian Etch su cui si siano installati i suddetti driver:

WARNING: Deficient Linux kernel detected. Some driver features are
not available (swap file on NTFS, boot from NTFS by LILO), and
unmount is not safe unless it's made sure the ntfs-3g process
naturally terminates after calling 'umount'. If you wish this
message to disappear then you should upgrade to at least kernel
version 2.6.20, or request help from your distribution to fix
the kernel problem. The below web page has more information:
https://ntfs-3g.org/support.html#fuse26

Per questo motivo mi affido ai Backports di Debian e utilizzo – rigorosamente solo per ambienti di testing e sviluppo – uno scintillante kernel 2.6.22!

La premessa fondamentale è quella di avere aggiunto il repository dei Backports alla propria Debian. Se non lo si è già fatto, procedere come segue:

  1. accedere come utente root
  2. editare il file /etc/apt/sources.list:
    # vim /etc/apt/sources.list
  3. aggiungere quanto segue:
    deb https://www.backports.org/debian/ etch-backports main contrib non-free
    deb-src https://www.backports.org/debian/ etch-backports main contrib non-free
  4. importare le chiavi gpg:
    # gpg --keyserver subkeys.pgp.net --recv 16BA136C
    # gpg --armor --export 16BA136C | apt-key add -

Fatto questo, si puà procedere al download della sorgente del nuovo kernel e di tutti i pacchetti necessari alla sua compilazione:

# apt-get update
# apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget libncurses5 libncurses5-dev

Ci spostiamo quindi nella directory delle sorgenti e scompattiamo l’archivio contenente il kernel:

# cd /usr/src
# tar xjf linux-2.6.22-3.tar.bz2
# ln -s linux-2.6.22-3 linux
# cd /usr/src/linux
Effettuiamo ora le consuete operazioni:

# make clean && make mrproper
# cp /boot/config-`uname -r` ./.config
# make menuconfig

Prepariamo il sistema per la compilazione ed avviamo la creazione dei pacchetti .deb:

# make-kpkg clean
# fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

ATTENZIONE!!! Questa operazione potrebbe richiedere anche molte ore. Dipende tutto dalla capacità di calcolo della macchina su cui state lavorando.

Non resta altro da fare che procedere all’installazione dei due pacchetti .deb così ottenuti:

# dpkg -i linux-image-2.6.22-custom_2.6.22-custom-10.00.Custom_i386.deb
# dpkg -i linux-headers-2.6.22-custom_2.6.22-custom-10.00.Custom_i386.deb
Ed effettuare il `reboot` della macchina:

# shutdown -r now

Condivido
10 Commenti
  • pietro
    Maggio 20, 2008

    ciao,
    faccio esattamente il tuo stesso uso di debian etch e mi trovo benissimo. anch’io però ho esigenza di usare ntfs-3g e quella continua lamentela al boot…
    la tua mini-guida è perfettamente chiara. ti chiedo però due piccoli chiarimenti:
    1. si tratta in sostanza di installare un nuovo kernel senza però editare una compilazioni ad hoc? oppure sottintendi i passaggi legati alla compilazione? io non sono infatti ad oggi in grado di compilare da me un kernel ):
    2. scusa l’ignoranza, ma esattamente come ottieni il nuovo kernel che poi vai ad installare? lo scarichi mediante apt?

  • Ivan Agliardi
    Maggio 20, 2008

    Ciao Pietro,

    ntfs-3g è al momento il modo migliore per accedere a partizioni NTFS anche in scrittura. Purtroppo ntfs-3g necessita di una versione del kernel Linux uguale o superiore alla 2.6.20, mentre Etch resterà sempre alla 2.6.18 per le ragioni che sai.

    Quindi:

    1) basta installare una versione aggiornata del kernel, NON è assolutamente necessario ricompilare! Io ricompilo solo perché mi servono feature particolari (come il PREEMPT, ad esempio) ma per la stragrande maggioranza delle situazioni non serve ricompilare. Se poi lo vorrai fare per motivi didattici sarò lieto di suggerirti qualche buona guida.

    2) il nuovo kernel lo ottieni semplicemente con apt, dopo avere aggiunto i repository di https://www.backports.org come ho scritto nei punti 1~4

    Spero di esserti stato d’aiuto… Debian rulez! 😉

  • pietro
    Maggio 20, 2008

    ciao,
    grazie per la risposta tempestiva!
    per avere un kernel standard non compilato ad hoc mi basterebbe quindi non dare:
    # make menuconfig
    e per il resto seguire la guida?
    Potresti consigliarmi comunque le guide per imparare le opzioni di configurazione del kernel?
    grazie e scusa l’insistenza, è da poco che sono passato a debian – linux e le cose che apprezzo di più sono la collaborazione e il fatto che non si fa che imparare cose nuove!!

  • Ivan Agliardi
    Maggio 21, 2008

    No no, il comando make menuconfig serve per configurare i sorgenti del kernel Linux prima di compilarli.

    Il comando che ti serve in realtà è il seguente:

    # apt-get -t etch-backports install linux-image-2.6.22-3-686

    Al primo reboot grub ti presenterà il nuovo kernel pronto per l’uso.

    Per quanto riguarda le guide alla compilazione del kernel ce n’è una marea. Io ti consiglio questa, visto che sei all’inizio, perché spiega tutto passo passo:

    https://guide.debianizzati.org/index.php/Debian_Kernel_Howto

    Quando avrai compilato il tuo primo kernel, fammi sapere come ti sei trovato 😉

  • Luca
    Maggio 21, 2008

    Grazie per la guida che ho seguito e messo in pratica senza intoppi.
    Almeno fino al momento di installare ntfs-3g perché lì synaptic mi dice che “Dipende: libfuse2 (>=2.6)” mentre io ho la 2.5.3-4.4.
    Che devo fare?

  • Ivan Agliardi
    Maggio 21, 2008

    Ciao Luca, benvenuto anche a te.

    In questo momento sono da un cliente, ma al volo ti posso dire che dovrebbe bastarti questo:

    # apt-get -t etch-backports install libfuse2

    Provaci, dovrebbe sostituire la tua libfuse 2.5.3-4.4 con la versione 2.7.1-2~bpo40+1, stando a quanto vedo sul repository dei backports.

    Fammi sapere anche tu! Ciao.

  • Luca
    Maggio 21, 2008

    Tutto a posto, grazie. Ho aggiunto a /etc/fstab la riga
    /dev/hda2 /mnt/data ntfs-3g silent,umask=0,locale=it_IT.utf8 0 0
    ho riavviato e funzionava perfettamente.
    Peccato che col nuovo kernel il portatile sia muto ma conto di trovare una soluzione anche a questo. Magari reinstallo alsa e vediamo

  • dede
    Luglio 10, 2008

    Complimenti per la guida, hai un buon metodo per spiegare i passi da seguire. Ho appena messo in azione fakeroot quindi ho un pò di tempo a disposizione e volevo sfruttarlo per chiederti una cosa. Ho seguito le tue istruzioni e se da /usr/src/linux “effettuo le consuete operazioni” (come dici tu, eheh!) mi da parecchi problemi e non mi permette di andare avanti. Ho letto altrove che non conviene fare queste operazioni in /usr/src e dopo aver spostato la cartella linux in Desktop invece la cosa funziona (anche se non so fino a che punto perchè come ho detto prima sono ancora alla fase di creazione dei pacchetti). Volevo chiederti da cosa dipende questa cosa? Premetto che non sono riuscito ad abilitare i backports (cosa molto strana tra l’altro perchè ho cercato su altri mille siti in cui dicevano di fare la stessa cosa ma non riesco ad abilitare la chiave gpg…) e quindi il kernel l’ho scaricato dalla rete, anche se non so se c’entra questa cosa però se potessi darmi una mano a capire perchè non riesco ad abilitare sto repository ti sarei molto grato!!!

  • Ivan Agliardi
    Luglio 11, 2008

    Hola, che cosa intendi per “il kernel l’ho scaricato dalla rete”? Hai scaricato la versione del kernel patchata Debian oppure lo hai preso da kernel.org? Fammi sapere e grazie per i complimenti 😉

Leave a comment