4.6. Impostazioni comuni dell'hardware e prestazioni; linee guida ed esempi pratici

4.6.1. Interfacce di rete (LAN)

La macchina scelta per questo esempio aveva due schede di rete PCI. Vediamo come abbiamo potuto rilevare e riconoscere entrambe. Useremo il comando lspci e cercheremo le righe che riportano Ethernet. L'output reale di lspci | grep Ethernet sarà simile al seguente (ciascuna riga rappresenta una scheda di rete):

$ lspci | grep Ethernet
00:0f.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev 10)
00:12.0 Ethernet controller: VIA Technologies, Inc. Ethernet Controller (rev 74)

O un sistema simile potrebbe mostrare:

$ lspci | grep Ethernet
0000:00:0f.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
 (rev 10)
0000:00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)

Oggi, le popolari schede di rete a basso costo probabilmente utilizzano uno dei driver 8139too o 8139cp (RealTek), winbond-840 o rl100a (Winbond), via-rhine (VIA) o eepro100 (Intel). Possiamo provare dando modprobe NOME_MODULO per tutti questi moduli di driver citati e avremmo di fatto fortuna, ma facciamo finta di essere un po' più intelligenti di così; lasciatemi mostrare come possiamo avere successo utilizzando gli spunti per l'identificazione che abbiamo fornito nella sezione precedente.

Se abbiamo avviato sudo modconf e siamo entrati nella sezione kernel/drivers/net, abbiamo trovato sia "RealTek RTL-8139 PCI Fast Ethernet Adapter" che "VIA Rhine". Selezionandole senza specificare parametri addizionali (i dispositivi PCI solitamente non hanno questa necessità) si dovrebbero caricare con successo i moduli.

Se avessimo aperto il browser web e ricercato la stringa di identificazione "Realtek Semiconductor RTL-8139" su http://www.google.com/linux, il primo risultato suggerirebbe 8139too come nome corretto del driver. Ricercando "VIA Technologies, Inc. Ethernet Controller" avremmo ottenuto il nome del driver via-rhine nel terzo risultato.

E anche se avessimo dato cd /lib/modules/`uname -r`/ e find -iname '*8139*'; find -iname '*via*', avremmo avuto qualcosa su cui lavorare.

È importante sapere che, diversamente da molte cose in Unix, le interfacce di rete non sono rappresentate da file nella directory /dev (sebbene ci sia una patch per il kernel Linux che abilita ciò); in Linux, le interfacce sono semplicemente fornite di nomi "virtuali" tipo eth0, eth1, eccetera. Lo strumento per gestire le interfacce di rete è tradizionalmente chiamato ifconfig. Avviando sudo ifconfig -a dovremmo ottenere un piacevole output al quale si potrebbe dare uno sguardo.

Se si dà ifconfig, probabilmente si noterà che le interfacce di rete, per le quali si sono appena caricati i driver, non sono state configurate. Il file di configurazione per questo tipo di cose è chiamato /etc/network/interfaces e definisce le cose abituali, tipo gli indirizzi IP dell'interfaccia di rete, maschera di rete e i gateway. La pagina di manuale interfaces(5) è piuttosto esaustiva, ma forniremo due esempi molto comuni: le impostazioni di un semplice IP statico e di un IP dinamico (DHCP). La nostra prima interfaccia, eth0, sarà fornita di un IP statico, l'altra, eth1, avrà un IP dinamico.

Esempio 4-1. /etc/network/interfaces

#
# Cose standard
auto lo eth0 eth1

iface lo inet loopback
#
# eth0: statico
iface eth0 inet static
  address 192.168.7.3
  netmask 255.255.255.0
  broadcast 192.168.7.255
  gateway 192.168.7.1
#
# eth1: DHCP
iface eth1 inet dhcp

Configurare quel file e avviare sudo /etc/init.d/networking restart dovrebbe mettervi in ballo.

In alcuni casi si potrebbe voler modificare l'indirizzo hardware della scheda di rete ethernet. Ciò è possibile con il comando ifconfig e naturalmente lo si deve eseguire ad ogni avvio del sistema:

ifconfig eth0 down
ifconfig eth0 hw ether BA:BE:BE:EF:D0:0D
ifconfig eth0 up

4.6.2. Hard disk (dischi fissi)

Come abbiamo già ricordato, gli hard disk vengono riconosciuti e funzionano senza alcuna speciale impostazione. (Beh, non proprio, anch'essi sono un'opzione nella configurazione del kernel, ma decisamente tutte le abituali impostazioni includono i driver per i dischi e per i filesystem funzionanti da soli).

Una cosa che si può fare, tuttavia, è provare le prestazioni dei propri dischi (prestazione di lettura cache e grezza). Si installi hdparm, poi si avvii sudo hdparm /dev/hda per farsi un'idea di cosa siano i dischi.

$ sudo hdparm /dev/hda

/dev/hda:
multcount    = 16 (on)
IO_support   =  1 (32-bit)
unmaskirq    =  1 (on)
using_dma    =  1 (on)
keepsettings =  0 (off)
readonly     =  0 (off)
readahead    =  8 (on)
geometry     = 1823/255/63, sectors = 29297520, start = 0

Per misurare realmente la velocità di trasferimento dati, bisogna essere prima sicuri che il sistema non sia occupato con qualsiasi cosa che possa influenzare il risultato (top dovrebbe riportare solo un processo avviato, e cioè se stesso), poi si avvii sync tre volte (per sincronizzare, o pulire il buffer della memoria sincronizzandolo al disco, adesso) ed infine, avviare sudo hdparm -tT /dev/TdL.

In /dev/TdL, T indica il tipo di disco (che è s per SCSI e h per dispositivi IDE), mentre L è un "numero" che è in realtà rappresentato da lettere dell'alfabeto, iniziando dalla a. Se si avesse un disco IDE, esso probabilmente sarebbe /dev/hda. Di fatto sarebbe probabilmente una bella idea spiegare per bene questo schema di "numerazione": sulle tipiche schede madri di PC, ci sono due connettori per dischi IDE (primario e secondario) ognuno dei quali accetta un cavo a 40 o 80 fili con due connettori per dispositivi periferici (master e slave). Nel complesso, ciò rende possibile attaccare un totale di quattro dischi o CD-Rom e, in base alla loro posizione, vengono loro assegnate le lettere a, b, c o d. Con alcuni altri tipi di bus (SCSI per esempio), i dispositivi sono numerati solo "in ordine di apparizione"; ciò nonostante il principio di assegnazione dei nomi o numeri rimane lo stesso. In caso di configurazioni più recenti che usano LVM o MD, dispositivi tipo /dev/hda non saranno molto utili; si dia mount per farsi un'idea dei nomi di dispositivo corretti per le proprie impostazioni.

Ad ogni modo, parlando di hdparm -tT, ecco qui un esempio di output:

$ sync; sync; sync; sudo hdparm -tT /dev/hda

/dev/hda:
Timing buffer-cache reads:   848 MB in  2.00 seconds = 424.00 MB/sec
Timing buffered disk reads:   90 MB in  3.01 seconds =  29.90 MB/sec

Ora, cosa vediamo qui? Prima di tutto, il test di prestazioni buffer-cache elimina qualsiasi latenza coinvolta nell'attuale posizionamento corretto della testina del disco e nella lettura del supporto magnetico; misura il passaggio grezzo dei dati tra il processore e il controller del disco. Quei 424 MB/sec sono buoni per un PC (i PC più vecchi erano nell'ordine di 250 MB/s, quelli ancora più vecchi sotto 100 MB/s). Non necessita dirlo, in tempi nei quali le workstation su architettura Unix raggiungevano i 5 o 6 Gigabyte/secondo.

Riguardo alla prestazione "buffered", il test elimina la cache e misura direttamente la capacità dei dischi di leggere il supporto magnetico. Per un PC (con Ultra ATA e cavo a 80 pin), 30 MB/s rappresentano un buon valore (dischi più vecchi stavano nell'intervallo 15 - 25 MB/s; per un produttore di dischi SCSI/Unix tradizionali, si veda Seagate).

Se la velocità di trasferimento del proprio disco è molto peggio di questa, è probabile che non sia abilitato il DMA (Direct Memory Access); verificare questo prima con sudo hdparm /dev/hda | grep dma. Se è disabilitato, dare sudo hdparm -d1 /dev/hda e ripetere il test.

In ogni caso, se si trova qualsiasi impostazione di hdparm che velocizza le prestazioni del proprio disco, si vorrà aggiungere -k1K1 alle opzioni (per conservare le impostazioni durante ogni reset del disco, cosa che può capitare durante il riavvio), e si vorrà salvare la riga di comando in /etc/bootmisc.sh o in qualche posto in modo da eseguirla ad ogni avvio.

Se si possiedono due dischi, collegarli su cavi separati può far aumentare la velocità di trasferimento.

Attenzione

Solo non fare le cose in fretta e non si riposizioni il disco sul quale si è installato Debian GNU. Se lo si fa, il nome del file di dispositivo cambierà (per esempio da /dev/hda a /dev/hdc) e il proprio sistema non si avvierà più correttamente! Non fare questa cosa finché non si sia letta questa guida e non si abbia imparato come utilizzare i CD di recupero.

4.6.3. Lettori CD-Rom

Come gli hard disk, i lettori CD-Rom dei PC funzionano senza bisogno di interventi particolari. Ci sono alcuni comandi, tuttavia, che possono essere usati per mettere a punto il loro esatto comportamento.

Possiamo solo dire che il kernel Linux può pilotare i CD-Rom sia nella modalità standard IDE/ATAPI, che in emulazione SCSI. L'emulazione SCSI venne usata inizialmente per permettere a cdrecord di scrivere i CD su lettori ATAPI. Questo tuttavia, non è più necessario, dato che cdrecord può adesso scrivere anche sui dispositivi ATAPI.

Tra i comandi che si possono utilizzare con i lettori CD-Rom, c'è hdparm per recuperare le informazioni hardware di base. E poi c'è il pacchetto setcd che può controllare varie altre impostazioni specifiche del CD-Rom, compresa la velocità e l'identificazione dei CD inseriti.

Infine, l'applicazione standard per la scrittura di CD cdrecord (oggi wodim, N.d.T.) può oltre alla scrittura, essere utilizzata per l'espulsione dal lettore se rimane sospeso in modalità RAW e non risponde al pulsante di espulsione.

4.6.4. Schede video

Il campo delle schede video è piuttosto interessante. Se si conosce qualcosa riguardo l'evoluzione delle schede grafiche dei PC, si sa che esistevano una piccola miriade di "modalità" grafiche inventate, ciascuna con i suoi pro e contro, e ciascuna con un differente insieme di schede grafiche che la supportavano. Quelle "modalità" hanno creato un qualche problema sulla retro-compatibilità; anche le moderne schede grafiche per PC tipo ATI o nVidia che probabilmente non vedono mai una modalità console (terminale) supportano tranquillamente dozzine, o persino centinaia, di varie modalità testuali.

Una di quelle modalità è quella standard del terminale a caratteri, in modo che non si abbiano problemi ad ottenere la console (modalità testuale) sui PC.

Un altro standard supportato è la modalità VGA che abilita una risoluzione di 640x480 pixel in 256 colori. (Solo per curiosità, significa che lo schermo da solo richiede 640x480x8 bit, o circa 307 kilobyte da caricare in memoria.)

Poi c'è VESA 2.0 che è supportato da SVGATextMode (e che è piuttosto doloroso da impostare), così non lo tratteremo.

E c'è VESA 2.0 in modalità framebuffer. Invece di utilizzare l'insieme di istruzioni specifico della scheda, si può inizializzare ed usare la scheda in modalità framebuffer/VESA. Ciò era piuttosto attraente tempo fa, quando era più semplice lanciare la modalità framebuffer che aspettare per alcuni mesi che fossero disponibili i driver specifici per la scheda in XFree86 (implementazione di X Window System). I framebuffer di VESA 2.0 permettevano una buona risoluzione, ma anch'essi erano limitati a 256 colori. Un altro grande inconveniente era un display completamente privo di accelerazione che si muoveva a scatti anche quando si muoveva una finestra 2D sullo schermo. Oggigiorno il kernel Linux supporta l'accelerazione framebuffer hardware per i più popolari gruppi di schede.

I framebuffer sono anche una opzione comoda per schede grafiche che non supportano modalità console native (tipo quelle di Apple) o che sono progettate per utilizzare il framebuffer, come alcune di Sun Microsystems.

4.6.4.1. Il supporto a X Window System in Debian

L'impostazione di X Window System in Debian GNU viene discussa separatamente.

4.6.5. I modem

4.6.5.1. I modem per linea telefonica

Prima di tutto, bisogna sapere che ci sono due tipi principali di modem: veri modem hardware, e modem "con handicap ", chiamati Winmodem.

I "modem hardware" sono la norma, modem con caratteristiche complete. Essi sono alcune volte chiamati anche modem Rockwell o Hayes-compatibili, sono collegati alle porte seriali e (essendo Hayes-compatibili) tutti supportano l'insieme dei comandi "AT" standard. Tutti i modem esterni che si attaccano al computer tramite cavo seriale sono "modem hardware". Tra i modem interni che si collegano ad uno slot ISA o PCI della scheda madre, solitamente solo quelli vecchi (precedenti all'anno 1998 o anche più vecchi) sono "modem hardware".

I "winmodem", d'altra parte, sono un'altra volta una disastrosa invenzione del mondo PC; in sostanza sono modem con un chip da 5$ (cinque dollari al momento dell'invenzione!) rimosso, il cui compito deve quindi essere realizzato dal processore principale. I winmodem sono venduti solo come schede interne (e PCI) e hanno praticamente invaso il mercato moderno post millennio; in molti "moderni" negozi di computer non sanno nemmeno che i Winmodem non sono l'unico tipo di "modem". I Winmodem non hanno una singola qualità tecnica o idea brillante; è piuttosto vero il contrario. Questo tipo di modem ha bisogno di speciali driver per funzionare anche solo un po' e anche allora si è fortunati se supportano un qualche insieme mutilato di comandi "AT". È inutile dirlo, i Winmodem sono una enorme seccatura perché tutti i driver sono proprietari e a sorgente chiuso. Il sito linmodems.org sta provando con grande fatica ad aiutare i possessori di Winmodem, ma è veramente fatica sprecata. I Winmodem sono un disgustoso componente "hardware", hanno un cattivo odore ed è meglio cederli al prossimo felice proprietario. Se si può acquistare un vero modem, è meglio; se si può persuadere qualcuno a scambiare un vero modem con il proprio Winmodem, è veramente meglio.

Nel frattempo, da quando ho scritto in origine la sezione sui Winmodem, sembra che i produttori si siano standardizzati su uno o due chip, e fondamentalmente è possibile che i Winmodem funzionino piuttosto confortevolmente. Essi sono, naturalmente, così schifosi com'erano, ma almeno il costo per impostarli non è adesso più alto del costo del winmodem stesso.

Se si sarà interessati alla connessione agli ISP, si utilizzerà il protocollo PPP. Se si vorrà usare il modem in modalità "terminale", allora si avranno a disposizione le infami applicazioni minicom, seyon, lrzsz o modemu.

Se si è interessati alle connessioni PPP, si deve semplicemente avviare sudo pppconfig. È un programma veramente molto comodo che permetterà di configurare differenti connessioni PPP ("dial-up"). Se si nomina la connessione ISP1, allora avviando sudo pon ISP1 si chiamerà lo specifico numero e ci si connetterà. plog mostrerà alcune righe del registro e poff terminerà la connessione. Si ricordi che il log completo è accessibile in /var/log/ppp.log, abbiamo ridirezionato i messaggi a quel file precedentemente nella Guida quando abbiamo configurato il demone syslog.

Infine, vale la pena notare che pppconfig non fa magie, modifica solo i file /etc/ppp/peers/NOME e /etc/chatscripts/NOME (e anche /etc/ppp/TIPO-secrets se il proprio ISP usa il metodo di autenticazione PAP o CHAP). Per completezza, includiamo un esempio di configurazione valida per una tipica connessione dial-up.

Esempio 4-2. /etc/ppp/peers/provider

Si noti che la stringa USERNAME dovrebbe essere sostituita con il nome utente che si utilizza per connettersi all'ISP. Il file /dev/ttyS0 rappresenta la prima porta COM o, in terminologia DOS, COM1 (per la porta seriale 2, si dovrebbe usare /dev/ttyS1, e così via). Si noti che in caso di modem interni, le porte sarebbero probabilmente /dev/ttyS2 o /dev/ttyS3; il proprio computer possiede quattro porte seriali, anche se solo una o due sono disponibili sui connettori esterni.

# This optionfile was generated by pppconfig 2.0.10. 
# 
#
hide-password 
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"
debug
/dev/ttyS0
115200
defaultroute
noipdefault 
user USERNAME
remotename provider
ipparam provider

Esempio 4-3. /etc/chatscripts/provider

Si noti che il numero 1234567890 dovrebbe essere sostituito con il numero del proprio ISP. Inoltre, la stringa ATx3m1 è un'impostazione che si dovrebbe utilizzare in molti stati europei; essa istruisce il modem a non attendere un dial-tone (questo può essere impostato dal menu pppconfig, Provider -> Advanced -> Modeminit).

# This chatfile was generated by pppconfig 2.0.10.
# Please do not delete any of the comments.  Pppconfig needs them.
# 
# ispauth PAP
# abortstring
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
# modeminit
'' ATx3m1
# ispnumber
OK-AT-OK ATDT1234567890
# ispconnect
CONNECT \d\c
# prelogin

# ispname
# isppassword
# postlogin

# end of pppconfig stuff

Esempio 4-4. /etc/ppp/pap-secrets

USERNAME e PASSWORD devono essere sostituiti con i valori reali utilizzati per l'autenticazione con l'ISP, naturalmente.

(none)  *       password
USERNAME/ provider 
PASSWORD

Gli strumenti PPP di Debian citati sono decisamente superiori a qualsiasi programma "ad hoc" che si potrebbe impiegare, ma wvdial è degno di essere ricordato perché può fare una grande quantità di riconoscimento automatico (fondamentalmente, tutto quello di cui si ha bisogno per utilizzare wvdial è il proprio numero telefonico dell'ISP, il nome utente e la password). Dopo l'installazione, avviare sudo wvdialconf /etc/wvdial.conf per creare il file di configurazione. Poi avviando wvdial si dovrebbe stabilire la connessione. Come al solito, un funzionante /etc/wvdial.conf viene fornito per completezza.

Esempio 4-5. /etc/wvdial.conf

1234567890, USERNAME e PASSWORD devono essere sostituiti con i valori reali che si utilizzano per l'autenticazione con l'ISP, naturalmente.

/dev/modem è un collegamento simbolico al dispositivo del modem (wvdial dovrebbe rilevarli tutti). Se non lo facesse, e /dev/ttyS0 fosse la porta reale (modem collegato alla prima porta seriale, o COM1 in terminologia DOS), si dovrebbe creare il collegamento simbolico manualmente eseguendo sudo ln -sf /dev/ttyS0 /dev/modem.

In aggiunta, la parte l0m0 della "stringa di inizializzazione" rende l'altoparlante del modem muto sia durante la composizione del numero che durante la connessione stessa.

[Dialer Defaults]
Modem = /dev/modem
Baud = 115200
Init1 = ATZ 
Init2 = ATx3l0m0 S0=0
#Init3 = ATI 5
Phone = 1234567890
Username = USERNAME
Password = PASSWORD

Se wvdial non avesse successo nella sua missione, si provi con un approccio del tipo "o la va o la spacca", aggiungendo Stupid Mode = 1 al file di configurazione e provando un'altra volta.

4.6.5.2. Modem collegati via cavo

I modem via cavo necessitano prima di essere connessi al computer tramite un cavo ethernet (LAN) o USB. Suggerisco di utilizzare sempre il cavo ethernet, nel qual caso si ha solo la necessità del driver per la scheda di rete, e tutto è impostato. Tuttavia, i driver USB sono supportati assai bene oggigiorno e la procedura è più o meno la stessa. Una volta che si ha il driver della scheda di rete caricato, si configura l'interfaccia di rete a proprio piacimento.

Se si sta utilizzando il modem cablato per connettersi al proprio ISP, allora l'ISP probabilmente è fornito di server DHCP dal suo lato. In altre parole, si può semplicemente definire l'interfaccia affinché recuperi la configurazione da un server DHCP. Il proprio file /etc/network/interfaces dovrebbe somigliare semplicemente a questo:

auto eth0
iface eth0 inet dhcp

È utile sapere che gli ISP verificano l'indirizzo hardware della scheda di rete prima di fornirvi i dettagli della connessione e infine l'accesso. Ma alcune volte si è obbligati a cambiare il proprio indirizzo ethernet hardware, per esempio, la propria scheda può venire distrutta da un fulmine, o la propria macchina si può rompere e si ha la necessità di sostituire la scheda o temporaneamente spostare il modem su un altro computer. Chiamare l'ISP per modificare il proprio indirizzo hardware, qualche volta non è possibile; sono sospettosi quando li si chiama o ci vuole del tempo prima che i loro cambiamenti abbiano effetto. Fortunatamente tuttavia, in Linux, è possibile modificare manualmente l'indirizzo hardware della propria scheda di rete. Tuttavia non si può scrivere l'indirizzo sulla memoria della scheda in modo permanente (si deve ripetere l'operazione a ciascun riavvio), ma ciò non rende la cosa meno utile. Per un esempio reale, si veda la Sezione 4.6.1.

4.6.5.3. Modem ADSL

I modem ADSL sono anche essi forniti in versione con cavo ethernet o USB.

I modem ADSL solitamente funzionano utilizzando il protocollo PPPoE (PPP over Ethernet). Per rendersi la vita facile, installare i pacchetti pppoe, pppoeconf e pppstatus.

Se il proprio modem è connesso e acceso, pppoe -A dovrebbe trovare almeno un provider PPPoE "in linea". Ciò è molto semplice e dovrebbe essere fatto all'inizio per minimizzare i problemi con pppoeconf. Se non si vedono provider elencati da pppoe -A, allora c'è qualcosa di sbagliato. Nelle nuove installazioni Debian, pppoe è stato sostituito da pppoe-discovery.

Nel passaggio successivo, si dovrebbe guardare in /usr/share/doc/pppoeconf/ per leggere una introduzione su ADSL ben scritta e un HOW-TO pratico. Avviare pppoeconf e seguire le istruzioni dai file della documentazione citata dovrebbe essere sufficiente per configurare il proprio modem ADSL.

4.6.6. I mouse (console)

Oltre che nel Sistema X Window (discusso separatamente), si può utilizzare il mouse nelle proprie console testuali. Ciò è, tra l'altro, molto conveniente, perché si può semplicemente selezionare del testo con il pulsante sinistro del mouse (LMB, left mouse button) e incollarlo con il pulsante centrale del mouse (MMB, middle mouse button).

Il programma tradizionale che gestisce i mouse è chiamato gpm. Dopo avere installato gpm, avviare sudo gpmconfig per configurarlo. Il file di dispositivo da utilizzare è /dev/psaux per i mouse con porta PS/2, /dev/ttySN per i seriali e /dev/usb/mouseN per quelli USB (dove N è un numero dipendente dalla porta assegnata, iniziando da 0). Dei tipi di protocollo, molti ne esistono e altrettanti sono supportati; sui PC, la migliore scelta (e la predefinita) è la "auto-sensing" autops2. Il Repeat protocol è un modo conveniente per lasciare gestire i mouse a gpm, e per fare da "ripetitore" degli eventi sul file /dev/gpmdata così che altre applicazioni (tipo il Sistema X Window) possano utilizzare gli stessi eventi. Ciò, tuttavia, non è necessario dato che oggigiorno entrambi possono aprire il file del mouse direttamente.

Si può avviare, fermare o riavviare il demone gpm invocando, per esempio, sudo /etc/init.d/gpm restart.

E, di nuovo, gpmconfig non fa magie, semplicemente modifica /etc/gpm.conf che fornisco per completezza.

Esempio 4-6. /etc/gpm.conf

#  /etc/gpm.conf - configuration file for gpm(1)
#
#  If mouse response seems to be to slow, try using
#  responsiveness=15. append can contain any random arguments to be
#  appended to the commandline.  
#
#  If you edit this file by hand, please be aware it is sourced by
#  /etc/init.d/gpm and thus all shell meta characters must be
#  protected from evaluation (i.e. by quoting them).
#
#  This file is used by /etc/init.d/gpm and can be modified by
#  /usr/sbin/gpmconfig.
#

# PS/2 Mouse example
device=/dev/psaux
responsiveness=
repeat_type=
type=autops2
append=""
sample_rate=

4.6.7. Schede audio

La storia dei driver audio Linux è piuttosto interessante. Tradizionalmente, Linux utilizzava l'architettura Open Sound System (OSS). È stata scritta da ragazzi che avviarono la loro azienda e volevano guadagnare sui driver audio, e contribuivano solo con driver vecchi o molto comuni all'albero del kernel Linux.

Questa fu, come si può immaginare, una situazione piuttosto sfortunata, così un gruppo si riunì a riscrivere il sistema audio liberandosi del casino. Il risultato fu ALSA, Advanced Linux Sound Architecture. ALSA è il sistema audio predefinito nel kernel Linux della serie 2.6.

4.6.8. Fotocamere digitali

Alcune delle fotocamere digitali erano (o sono ancora) supportate direttamente dal kernel Linux, permettendo di montare le loro schede di memoria come si fa con i dischi.

Un altro modo molto comune è di utilizzare driver in spazio utente per la fotocamera. L'applicazione GNU gphoto2 supporta numerosi modelli di fotocamere (533 nella mia versione, senza contare modelli che non sono elencati ma che funzionano utilizzando un driver esistente!), e fornisce vari trucchi specifici delle forocamere. Ecco qui come lo utilizzo:

gphoto2 --port usb: --get-all-files --camera "Kodak DC3400"

Un altro trucco comune di questi tempi è di connettere la scheda di memoria in alcuni dispositivi lettori universali e poi montarla come un disco standard. In questo modo è anche possibile caricare file sulla scheda anche se la fotocamera stessa non supporta il caricamento (e perciò non si può utilizzare gphoto2).

4.6.9. Stampanti

Tradizionalmente, la stampa in Unix veniva fatta dal sistema BSD lpr (lp o lpr sta per Line Printer, anche se stampare è naturalmente tutto tranne che limitato alle stampanti a riga/matrice). Successivamente è comparsa anche lprng (lpr di nuova generazione), offrendo alcuni miglioramenti e preservando la compatibilità. Il file di configurazione principale era /etc/printcap, che descrive le capacità della stampante.

Probabilmente i tre comandi più importanti relativi alla stampa sono lpr, lpq e lprm. Essi stampano i file, elencano ed eliminano i lavori di stampa. Tutti gli altri sistemi di stampa offrono una modalità compatibile con la quale quei comandi sono compatibili per ciò che riguarda la riga di comando.

Con le stampanti PostScript è piuttosto semplice. Con le stampanti per PC, come sempre, le cose sono un poco differenti. Onde evitare problemi di stampa, (principalmente su PC Gnu/Linux, ma anche su altri Unix), venne sviluppato CUPS, Common Unix Printing System, ed è quello che utilizzaremo. Per prima cosa installiamolo:

$ sudo apt-get install cupsys cupsys-{bsd,client} foomatic-db
  foomatic-filters-ppds

In maniera predefinita, CUPS ascolta su http://localhost:631/. Si visiti la pagina con il proprio browser e si sarà in grado di effettuare compiti di amministrazione della stampante da una interfaccia grafica semplice da utilizzare. Il nome utente e la password che vengono richiesti sono "root" e la password di root.

Per dettagli sulle stampanti supportate e i driver che si possono utilizzare, si visiti sicuramente linuxprinting.org.

L'impostazione della stampante è ancora accidentalmente troppo difficile da realizzare correttamente, ma speriamo che le cose migliorino.

CUPS può anche essere configurato direttamente, usando solo i file di configurazione in /etc/, ma questo esula dallo scopo di questa Guida.