16.2. Compilazione del kernel per il riconoscimento del masterizzatore

Questa sezione non vuole essere esaustiva. Per maggiori informazioni rimando all'ottimo CD-Writing HOWTO di Winfried Trümper. Sotto Linux sono supportati masterizzatori SCSI, EIDE e per porta parallela (PP nel seguito). Non sono ancora supportati gli USB, per questi si comincerà a vedere qualcosa *forse* con i kernel 2.4.*. La prossima tabella la copio sfacciatamente dall'howto sopra-citato:

       Sez.  Descrizione                 Modulo   SCSI  IDE   PP
       ------------------------------------------------------------
       BLOCK  Enhanced IDE/MFM/RLL...                     Y
       BLOCK  IDE/ATAPI CDROM             ide-cd          M       *** NOTA
       BLOCK  SCSI hostadaptor emulation  ide-scsi        M       *** NOTA
       BLOCK  Loopback device             loop       M    M     M

       PARIDE Parallel port IDE device    paride               Y/M
       PARIDE Parallel port ATAPI CD-ROMs                       M
       PARIDE Parallel port generic ATAPI                       M
       PARIDE (select a low-level driver)                       Y

       SCSI   SCSI support                scsi_mod  Y/M  Y/M      *** NOTA
       SCSI   SCSI CD-ROM support         sr_mod    Y/M  Y/M      *** NOTA
       SCSI     Enable vendor-specific               Y    Y
       SCSI   SCSI generic support        sg        Y/M  Y/M      *** NOTA
       SCSI   (select a low-level driver)            Y

       FS     ISO 9660 CDROM filesystem   iso9660   Y/M  Y/M   Y/M
       FS     Microsoft Joliet cdrom...   joliet     Y    Y     Y
     

Se tutto va bene, al successivo riavvio, con un dmesg | less potrete vedere che il kernel ha riconosciuto la periferica... e comincia l'avventura!

Nota: Per chi usa un masterizzatore EIDE:

  1. se si opta per l'uso dei moduli è importante aggiungere i seguenti parametri nel vostro /etc/lilo.conf

    ...
    image=/boot/vmlinuz-2.2.18
        label=2.2.18
        read-only
        root=/dev/hda3
        append="hdc=ide-scsi hdd=ide-scsi"  <--------questo
    ...
               
    

    in modo da indicare a linux che quelle periferiche devono essere "viste" attraverso il modulo ide-scsi. Naturalmente, adattate il codice al vostro caso. Ricordatevi poi di reinstallare lilo, con:

    # /sbin/lilo
               
    
  2. se qualcosa non funziona usando i moduli provate ad accorpare nel kernel le voci una per una, a cominciare dalla voce IDE/SCSI, altrimenti detta "Emulazione SCSI". L'emulazione SCSI con i kernel della serie 2.2.* e superiori impone necessariamente che anche gli eventuali lettori cd rom eide presenti sulla macchina siano visti come periferiche SCSI, è quindi inutile (e talvolta produce errori) abilitare nel kernel il modulo ide-cd.

Generalmente le periferiche SCSI, oltre alla maggiore affidabilità caratteristica di questa tecnologia, danno minori problemi di riconoscimento/compatibilità col pinguino, se quindi potete permettervelo, un masterizzatore SCSI è la scelta migliore.

Nota: Ultima precisazione: qualche volta (è successo a me) un masterizzatore EIDE non ne vuole sapere di andare se non è il master del suo canale, ergo, se non funziona come slave provate ad impostarlo come master. L'impostazione migliore pare essere quella di lasciare i drive sorgenti (hard-disk che ospiterà le immagini ISO9660 e lettore cd-rom) come unità rispettivamente master e slave sul canale primario EIDE, e il masterizzatore come unità master sul canale secondario EIDE, cui nel caso affiancare un eventuale secondo hard-disk. Questo garantisce che le unità funzionino al massimo delle loro possibilità. Utile anche attivare sugli hard-disk e cdrom/cdr/cdrw EIDE (NON gli SCSI!), le funzionalità avanzate permesse, tipo accesso al disco a 32 bit, DMA e altro, tramite il comando hdparm.

Attenzione

L'uso di hdparm può essere PERICOLOSO! Fate SEMPRE le prove prima e dopo ogni comando hdparm che date, con: hdparm -tT /dev/hdX, sostituendo a X le varie unità. Questo vi fornirà dei test per valutare l'aumento o meno delle prestazioni con le varie opzioni impostate. In genere le opzioni da impostare sono: -d1 (usa DMA) e -c3 (usa accesso al disco a 32bit, con sync sequence). Altre possono essere -u1 e -m... (leggete la man-page di hdparm, per calcolare il valore di m). Tenete inoltre presente che se il supporto ide-scsi è compilato come modulo, quando questo viene scaricato dalla memoria, si perdono le impostazioni di hdparm. Per aggirare l'ostacolo, potete aggiungere al vostro file /etc/modules.conf una riga tipo:

post-install ide-scsi /sbin/hdparm ...
       

Per vedere come vengono riconosciute le nostre periferiche dal kernel si può dare, come utente root, il comando: cdrecord -scanbus. Io ho un masterizzatore come master ed un lettore come slave nel secondo canale EIDE, ed ecco il mio output:

[tty5][root@gondor /home/rjval]# cdrecord -scanbus
Cdrecord 1.9 (i686-pc-linux-gnu) Copyright (C) 1995-2000 Jörg Schilling
Linux sg driver version: 2.1.39
Using libscg version 'schily-0.1'
scsibus0:
        0,0,0     0) 'SAMSUNG ' 'CD-R/RW SW-208B ' 'BS01' Removable CD-ROM
        0,1,0     1) 'GoldStar' 'CD-ROM CRD-8322B' '1.02' Removable CD-ROM
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *
     

Come si può vedere il masterizzatore ha le "coordinate" (non mi dilungo sulla loro descrizione) 0,0,0, mentre il lettore ha 0,1,0. Dal momento in cui le periferiche sono riconosciute dal kernel come SCSI, il loro posizionamente in /dev sarà (nel mio caso):

/dev/scd0 per il master
/dev/scd1 per lo slave
     

se, quindi, nella nostra /dev ci sono di link di nome cdrom, cdrom1 che puntano rispettivamente a /dev/hdc (secondary master), /dev/hdd (secondary slave) questi vanno rimossi e rimpiazzati da link che puntano a queste altre periferiche (aggiustate il tutto alla vostra situazione!), come utente root:

# cd /dev
# rm cdrom
# rm cdrom1
# ln -s scd0 cdrom
# ln -s scd1 cdrom1
     

Se invece la vostra distro non usa questi links ricordati di cambiare il vostro /etc/fstab, altrimenti non riuscirete più a montare i cdrom.