#if !(SBPCD_ISSUE-1) /* first (or if you have only one) interface board: */ #define CDROM_PORT 0x230 /* <-----------<< port address */ #define SBPRO 1 /* <-----------<< interface type */ #define MAX_DRIVES 4 /* set to 1 if the card does not use "drive select" */ #define SOUND_BASE 0x220 /* <-----------<< sound address of this card or 0 */ #endif
Il parametro CDROM_PORT si riferisce all'indirizzo del lettore,
che nel mio caso è 0x230; questo indirizzo è quello settato
dalla Creative, in quanto si ottiene aggiungendo 0x10 a quello della scheda
(0x220 di default). Si può modificare l'indirizzo della scheda,
tramite i ponticelli presenti sulla scheda stessa, e l'indirizzo del lettore
si modifica di conseguenza.
Settando il parametro CDROM_PORT con il giusto indirizzo, si evita che
il sistema ricerchi un lettore al bootstrap, ed inoltre si è sicuri
che il lettore venga riconosciuto (soprattutto se ha un indirizzo non standard).
Stesso discorso vale per SOUND_BASE, in cui bisogna specificare l'indirizzo della scheda audio.
Il parametro SBPRO indica il tipo di interfaccia e va settato:
Infine il parametro MAX_DRIVES indica quanti lettori può gestire la scheda. Sono ammesse fino a 4 schede con fino a 4 lettori per scheda; in totale 16 lettori (da CDROM-HOWTO: "si spera siano abbastanza per la maggior parte degli utilizzatori :-)"). Nel mio caso, al bootstrap venivano trovati 4 lettori logici, anche se tutti si riferivano allo stesso lettore fisico; impostando MAX_DRIVES a 1, la ricerca viene fermata dopo aver trovato un lettore (l'unico che ho). Consiglio a chi ha un solo lettore di settare MAX_DRIVES a 1.
Proseguendo nel file sbpcd.h troviamo il parametro DISTRIBUTION, che indica se il file è stato configurato per il sistema locale (DISTRIBUTION=0); in questo caso il sistema evita di cercare un lettore al momento del bootstrap, velocizzando la partenza ed evitando conflitti con altre periferiche; inoltre viene modificato il livello dei messaggi di debug.
I due parametri seguenti controllano l'espulsione del cassetto del lettore.
Impostando a 1 JUKEBOX, il cassetto viene espulso
ogni volta che si tenta di accedere al CD, ma non vi è nessun disco;
se EJECT è settato a 1, il cassetto viene espulso ogni volta
che si utilizza il comando umount sul cdrom (il che può essere
abbastanza utile) e anche ogni volta che si sceglie "stop"
in un programma di gestione dei CD audio (può essere scomodo).
Personalmente ho settato entrambi i parametri a 0, così da far
espellere il cassetto solo su richiesta esplicita.
Dopo aver configurato il file sbpcd.h, è possibile
ricompilare il kernel, indicando, al momento della configurazione
(make config), che si vuole il driver per il lettore Matsushita.
Se non esiste già, bisogna creare il file associato al lettore
con il comando
mknod /dev/sbpcd b 25 0dove 25 si riferisce al numero della scheda di interfaccia e 0 è il numero del lettore. È comodo creare un link chiamato /dev/cdrom tramite il comando
ln -s /dev/sbpcd /dev/cdrom
Se si vogliono ascoltare i CD audio, è necessario modificare i permessi di accesso al file /dev/sbpcd in questo modo:
chmod 666 /dev/sbpcd
sbpcd-0 [01]: sbpcd.c v3.8 Eberhard Moenkebergsbpcd-0 [02]: new drive CD200 (0.01)detected. sbpcd-0 [03]: support is not fulfilled yet - audio should work. sbpcd-0 [04]: please mail the following lines to emoenke@gwdg.de: sbpcd-0 [05]: v3.8 Eberhard Moenkeberg sbpcd-0 [06]: address 230, type SoundBlaster, drive CD200F (ID 0) sbpcd-0 [07]: infobuf = 43 44 32 30 30 46 20 30 2E 30 31 04 sbpcd-0 [08]: infobuf = C D 2 0 0 F 0 . 0 1 ^D sbpcd-0 [09]: Drive 0 (ID=0): CD200F (0.01) at 0x230 (type 1)
È necessario fare alcune precisazioni:
Un suggerimento che posso dare è quello di utilizzare il dispositivo /dev/sbpcd per l'operazione di mount, invece che il suo link /dev/cdrom, perché quest'ultimo portebbe dare dei problemi (peraltro dovuti a mount).
Un problema ancora da risolvere è il riconoscimento di un cambiamento
di disco (provate ad ascoltare un CD di Venditti con l'ordine di un CD
di Bob Dylan :-(); se qualche "italian hacker" fosse interessato,
può provare ad aiutare Eberhard.
Non mi resta che augurare buon lavoro a tutti!