Linux Hardware Compatibility HOWTO

Patrick Reijnen, < antispam.hardware_howto@antispam.reijnen.nl.com (remove both "antispam.")>

Versione 99.3, 28 settembre 1999
Questo documento elenca la maggior parte dei componenti hardware supportati da Linux e consente di reperire i driver necessari.

1. Introduzione

NOTA: l'USB non è ancora supportato da Linux.

1.1 Pagina introduttiva

In questo documento, relativo alla compatibilità dei componenti hardware con Linux, è elencata la maggior parte dei componenti hardware (non solo sistemi con componenti incorporati) supportati da Linux. In questo modo, leggendo attentamente questo documento è possibile scegliere gli elementi per il proprio sistema Linux. Dato che l'elenco di componenti supportati da Linux è in continuo aggiornamento, questo documento non sarà mai completo. Pertanto, il fatto che i componenti non sono menzionati in questo HOWTO significa che l'autore non è certo che siano supportati e che non è riuscito ad avere informazioni relative a un possibile supporto di tali elementi.

Le sottosezioni intitolate ``Driver alpha e beta'' elencano i componenti hardware con driver alpha o beta in vari livelli di utilizzabilità. Si può notare che alcuni driver esistono solo nei kernel alpha. Pertanto, se si riscontra che un elemento elencato come supportato non fa parte della versione del kernel di Linux in uso, effettuare l'aggiornamento.

Alcune periferiche sono supportate solo da moduli binari il cui impiego è da evitare quando possibile. Questi componenti sono moduli compilati per UNA versione del kernel. Il codice sorgente per questi moduli NON è stato rilasciato. In questo modo è possibile evitare l'aggiornamento o il mantenimento del sistema.
Linus Torvalds consiglia l'utilizzo dei moduli solo binari, ma che gli utenti devono essere a conoscenza del fatto che devono utilizzare sempre la versione del kernel che hanno in dotazione.
Per informazioni sulla disponibilità del codice sorgente dei componenti, fare riferimento al sito Web all'indirizzo http://www.kt.opensrc.org/kt19990211_5.html#10.

L'ultima versione di questo documento può essere disponibile nel sito Web all'indirizzo http://users.bart.nl/~patrickr/hardware-howto/Hardware-HOWTO.html, nel sito SunSite e in tutti i siti mirror. La traduzione di questo e di altri HOWTO di Linux è disponibile nei siti Web all'indirizzo http://metalab.unc.edu/pub/Linux/docs/HOWTO/translations e ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/translations.

Se sono note alcune (in)compatibilità relative all'hardware Linux che non sono elencate in questo documento, inviare un messaggio all'autore.

Se al termine della lettura di questo documento sono necessarie ulteriori informazioni, fare riferimento al sito Web ``Build Your Own PC'' all'indirizzo http://www.verinet.com/pc/.

Se si desidera disporre di un sistema Linux preconfigurato, fare riferimento al sito Web all'indirizzo http://www.linuxresources.com/web/.

1.2 Copyright

Copyright 1997, 1998, 1999 Patrick Reijnen.

This HOWTO is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free software Foundation; either version 2 of the license, or (at your option) any later version.

This document is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details. You can obtain a copy of the GNU General Public License by writing to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

If you use this or any other Linux HOWTO's in a commercial distribution, it would be nice to send the authors a complimentary copy of your product.

1.3 Architetture di sistema

Questo documento è unicamente relativo alle piattaforme Intel per Linux. Per altre piattaforme fare riferimento ai seguenti siti Web:

2. Computer, schede madri, BIOS

I bus ISA, VLB, EISA e PCI sono tutti supportati.

2.1 Sistema specifico/scheda madre/BIOS

Molte nuove schede PCI causano la visualizzazione di alcuni messaggi di errore durante l'avvio e la rilevazione dell'hardware PCI. La procedura presenta il seguente messaggio

    Warning : Unknown PCI device (8086:7100).  Please read include/linux/pci.h

Indica di leggere il file pci.h. Da questo file deriva la seguente citazione

         PROCEDURA PER RILEVARE NUOVE PERIFERICHE PCI
    Si cerca di raccogliere informazioni relative alle nuove periferiche PCI, mediante
    la procedura di identificazione PCI standard. Se viene visualizzato un messaggio
    di avviso al momento dell'avvio, indicare
         - /proc/pci
         - la descrizione esatta dell'hardware. Cercare di scoprire
           quale periferica è sconosciuta. Potrebbe trattarsi del chipset della scheda madre,
           il ponte PCI-CPU o PCI-ISA.
         - Se non è possibile trovare le reali informazioni relative all'hardware nel
           manuale, provare a leggere il riferimento del chip sulla scheda.
         - Inviare quanto rilevato a linux-pcisupport@cao-vlsi.ibp.fr,
           e la periferica verrà aggiunta all'elenco il più presto possibile.

    PRIMA di inviare un messaggio, verificare le ultime versioni di Linux
    per accertarsi che il componente non sia già stato aggiunto.

           Grazie
                 Frederic Potter

In genere la scheda madre e le periferiche PCI sconosciute funzionano in modo corretto.

2.2 Componenti non supportati

3. Portatili

Per ulteriori informazioni su Linux e i computer portatili, il sito indicato di seguito è un buon punto di partenza.

Altre informazioni relative ai portatili sono disponibili nei siti indicati di seguito:

3.1 Portatili particolari

3.2 PCMCIA

I driver delle schede PCMCIA supportano correntemente tutti i comuni controller PCMCIA, compresi i chipset Databook TCIC/2, Intel i82365SL, Cirrus PD67xx e Vadem VG-468. Il controller Motorola 6AHC05GA, utilizzato in alcuni portatili Hyundai, non è supportato. Vedere l'Appendice B per un elenco di schede PCMCIA supportate.

4. CPU/FPU

I processori Intel/AMD/Cyrix 386SX/DX/SL/DXL/SLC e 486SX/DX/SL/SX2/DX2/DX4 sono supportati, così come i processori Intel Pentium, Pentium Pro e Pentium II, Pentium III (versioni regolare e Xeon) e Celeron. AMD K5 e K6 funzionano bene, anche se le versioni più vecchie di K6 dovrebbero essere evitate perché contengono molti errori. Per ovviare a questo problema è possibile disattivare l'impostazione della cache interna all'avvio del BIOS. Anche AMD K6-2 e K6-3 funzionano. Alcuni dei primi K6-2 a 300 Mhz hanno problemi con i chip di sistema. Cyrix 6x86 non funziona correttamente.

Anche i processori IDT Winchip C6-PSME2006A sono supportati da Linux ( http://www.winchip.com).

Linux dispone di emulazione FPU incorporata se non è presente un coprocessore matematico.

Il supporto sperimentale SMP (per più CPU) è incluso nel kernel 1.3.31 e nelle versioni più recenti. Verificare la pagina Linux/SMP Project per i dettagli e gli aggiornamenti.

Gli effetti multimediali avanzati incorporati in Cyrix MediaGX non sono supportati.

Alcuni processori AMD 486DX delle versioni iniziali possono bloccarsi in determinate situazioni. Tutti i chip correnti dovrebbero funzionare e disporre di uno swap dei chip per le CPU di versioni precedenti non dovrebbe essere un problema.

La serie ULSI Math*Co ha un errore nelle istruzioni FSAVE e FRSTOR che causa problemi con tutti i sistemi operativi in modalità protetta. Anche alcuni chip IIT e Cyrix di versioni non aggiornate possono presentare lo stesso problema.

Nei kernel molto vecchi si possono verificare problemi con l'eliminazione di TLB nei chip UMC U5S. (1.1.x)

5. Memoria

Tutta la memoria DRAM, EDO e SDRAM può essere utilizzata con Linux. È importante fare attenzione a una particolare situazione. In genere il kernel non supporta più di 64 MB di memoria. Quando si aggiunge una quantità superiore a 64 MB di memoria è necessario aggiungere la seguente riga al file di configurazione LILO.

   append="mem=<number of Mb>M"

Quindi quando si dispone di 96 MB di memoria la riga dovrebbe essere

   append="mem=96M"

Non digitare un numero superiore al numero di MB realmente disponibile. In questo modo si potrebbero verificare interruzioni imprevedibili.

6. Schede video

Linux funzionerà con tutte le schede video in modalità testo. Le schede VGA non elencate probabilmente funzioneranno con driver mono VGA e/o VGA standard.

Se si è alla ricerca di una scheda video economica per eseguire X, ricordare che le schede accelerate (ATI Mach, ET4000/W32p, S3) sono MOLTO più veloci delle schede non accelerate o parzialmente accelerate (Cirrus, WD).

``32 bpp'' è in realtà un colore a 24 bit allineato sui limiti a 32 bit. NON significa che le schede sono in grado di supportare un colore a 32 bit e visualizzano comunque 24 bit di colore (16.777.216 colori). Le modalità di pacchetti di pixel a 24 bit non sono supportate in XFree86 e, in questo modo, le schede che possono eseguire le modalità a 24 bit per ottenere risoluzioni più elevate in altri sistemi operativi non sono in grado di effettuare tale operazione X mediante XFree86. Queste schede includono Mach32, Cirrus 542x, S3 801/805/868/968, ET4000 e altre.

Il supporto AGP (Accelerated Graphics Port) è in rapido sviluppo. La maggior parte degli X-server (entrambe le versioni commerciali e gratuite disponibili) sono in grado o meno di supportare l'AGP.

6.1 Schede video Diamond

La maggior parte delle schede video Diamond è supportata dalle versioni correnti di XFree86. Le schede Diamond precedenti potrebbero non essere ufficialmente supportate da XFree86, ma è possibile ovviare a questo problema. Diamond sta supportando attivamente il progetto XFree86 Project.

6.2 SVGALIB (schede grafiche per le console)

6.3 XFree86 3.3.2

Schede accelerate

Schede non accelerate

Schede monocromatiche

Driver alpha e beta

6.4 X-Server S.u.S.E.

S.u.S.E. sta creando una serie di X-server basata sul codice XFree-86. Questi server supportano nuove schede video e in queste versioni sono stati risolti tutti gli errori relativi agli X-server XFree86. S.u.S.E sta creando questi X-server in collaborazione con The XFree86 Project, Inc. Tali X-Server saranno disponibili nella prossima versione di XFree86 e possono essere presenti nel sito Web all'indirizzo http://www.suse.de/index.html. Gli X-Server S.u.S.E. sono correntemente disponibili per le schede video elencate di seguito.

6.5 X-server commerciali

Gli X-server commerciali forniscono il supporto per le schede non compatibili con XFree86 e potrebbero fornire prestazioni migliori per le schede che sono supportate da XFree86. In generale, supportano un numero maggiore di schede rispetto a XFree86 e, per questo motivo, verranno elencate solo le schede che non sono supportate da XFree86. Contattare direttamente i fornitori o fare riferimento a Commercial HOWTO per ulteriori informazioni.

Xi Graphics, Inc

Xi Graphics, Inc http://www.xig.com (precedentemente nota come X Inside, Inc) mette a disposizione per l'acquisto tre prodotti X-server. Le schede supportate sono elencate in base al fabbricante:

Metro-X 4.3.0

Metro Link < sales@metrolink.com>

Schede supportate:

Scheda grafica Chipset della scheda
ATI 3D RAGE 3D RAGE
ATI 3D RAGE II 3D RAGE II
ATI ALL-IN-WONDER PRO AGP 3D RAGE PRO
ATI ALL-IN-WONDER PRO PCI 3D RAGE PRO
ATI Graphics Pro Turbo Mach64
ATI Graphics Ultra Mach8
ATI Graphics Xpression Mach64
ATI Mach32 Mach32
ATI Mach64 Mach64
ATI VGA STEREO-F/X ATI 28800
ATI Winturbo PCI Mach64
ATI XPERT@Play 3D RAGE PRO
ATI XPERT@Play AGP 3D RAGE PRO
ATI XPERT@Work 3D RAGE PRO
ATI XPERT@Work AGP 3D RAGE PRO
Diamond Fire GL 1000Pro PERMEDIA 2
Diamond SpeedStar 24X Western Digital 90C31
Diamond SpeedStar Pro SE Cirrus 5430
Diamond Stealth 24 S3 801
Diamond Stealth 32 ET4000/W32p
Diamond Stealth 3D 2000 S3 ViRGE
Diamond Stealth 64 S3 964, Bt485KPJ135
Diamond Stealth 64 DRAM S3 Trio64
Diamond Stealth 64 DRAM (SDAC) S3 864, S3 SDAC
Diamond Stealth 64 Graphics serie 2000 S3 864, S3 SDAC
Diamond Stealth 64 Graphics 2200 S3 Trio64
Diamond Stealth 64 VRAM S3 968, IBM RGB526CF22
Diamond Stealth 64 Video serie 3000 S3 968, TI 3026-175
Diamond Stealth 64 Video VRAM S3 968, TI 3026-175
Diamond Stealth Video (SDAC) S3 868, S3 SDAC
Diamond Stealth Video serie 2000 S3 868, S3 SDAC
Diamond Viper (110 MHz RAMDAC) P9000
Diamond Viper (135 MHz RAMDAC) P9000
ELSA GLoria Synergy PERMEDIA 2
ELSA Victory 3D S3 ViRGE
ELSA WINNER 2000 Office AGP PERMEDIA 2
ELSA Winner 1000 TRIO/V S3 Trio64V+
ELSA Winner 2000 AVI S3 968, TI 3026-175
ELSA Winner 2000 PRO/X-2, -4 S3 968, TI 3026-220
ELSA Winner 2000 PRO/X-8 S3 968, IBM RGB528CF25
EPS Apex L-200 C&T 65550
Generic ATI 28800
Generic Alliance ProMotion
Generic Ark 2000
Generic Avance Logic 22xx/23xx/24xx
Generic Chips & Technologies
Generic Cirrus 5420
Generic Cirrus 5422/5424
Generic Cirrus 5426/5428
Generic Cirrus 5429
Generic Cirrus 5430
Generic Cirrus 5434
Generic Cirrus 5436
Generic Cirrus 5446
Generic Cirrus 5462
Generic Cirrus 5462/5465
Generic Cirrus 5480
Generic Cirrus 62x5
Generic Cirrus 6410/6412/6420/6440
Generic Cirrus 754x
Generic ET3000
Generic ET4000/W32P
Generic ET4000AX
Generic ET6000
Generic Mach32
Generic Mach64
Generic Mach8
Generic P9000
Generic PERMEDIA 2
Generic S3 864/868/924/928/964
Generic S3 968
Generic S3 Trio64
Generic S3 Trio64V+
Generic S3 ViRGE
Generic S3 ViRGE/GX/DX
Generic SiS 86c201/86c202/86c205
Generic Trident TGUI9440
Generic Trident TGUI96xx
Generic Trident8900
Generic VGA
Generic Western Digital SVGA
Genoa Phantom 64 S3 Trio64V+
Genoa WindowsVGA 8500VL Cirrus 5426
Hercules Dynamite 128/Video ET6000
Hercules Dynamite 3D/GL PERMEDIA 2
Hercules Dynamite 3D/GL AGP PERMEDIA 2
Hercules Stingray Avance Logic 2301
Hercules Stingray 128/3D Alliance ProMotion AT3D
Hercules Stingray 64 Ark 2000
Hercules Terminator 3D S3 ViRGE/DX
IBM VGA
Matrox Marvel ET4000
Matrox Marvel II ET4000
Matrox Millennium MGA Storm
Matrox Millennium II AGP MGA 2164, TI 3026-250
Matrox Millennium II PCI (220 MHz) MGA 2164, TI 3026-220
Matrox Millennium II PCI (250 MHz) MGA 2164, TI 3026-250
Matrox Mystique MGA 1064
Matrox Mystique 220 MGA 1164
Number Nine GXE64 S3 864
Number Nine Imagine 128 Imagine 128
Number Nine Imagine 128 serie 2 Imagine 128 serie 2
Number Nine Motion 531 S3 868
Number Nine Motion 771 S3 968
Number Nine Revolution 3D Ticket to Ride
Number Nine Vision 330 S3 Trio64
Orchid Kelvin 64 Cirrus 5434
SPEA Mirage Video S3 Trio64V+
STB NITRO 3D S3 ViRGE/GX
STB/Symmetric GLyder MAX-2 PERMEDIA 2
Sigma Designs VGA Legend ET4000
Tech Source Raptor Imagine 128 serie 2
Trident 64-Bit Providia 9685
Trident 8900 Trident 8900
Trident 9440 TGUI9440-2
V PCI-53 Cirrus 5434

7. Controller (disco rigido)

Linux funzionerà con i controller standard IDE, MFM e RLL. Quando si utilizzano i controller MFM/RLL è importante utilizzare ext2fs e le opzioni di controllo dell'errore di blocco durante la formattazione del disco.

Le interfacce Enhanced IDE (EIDE) sono supportate con un numero massimo pari a due interfacce IDE e quattro dischi rigidi e/o di unità CD-ROM. Linux rileverà queste interfacce EIDE:

Anche i controller ESDI che emulano l'interfaccia ST-506 (MFM/RLL/IDE) funzioneranno. Il commento relativo al controllo dell'errore di blocco si applica anche a questi controller.

Anche i controller XT generici a 8 bit funzioneranno.

A partire dalla pre-patch-2.0.31-3 è fornita l'interfaccia IDE/ATAPI.

7.1 Driver alpha e beta

8. Controller (disco rigido RAID)

9. Controller (SCSI)

È importante maneggiare un controller SCSI con cura. Molti controller SCSI ISA economici sono progettati per le unità CD-ROM e non per altri componenti. Questi controller SCSI di livello inferiore non sono migliori di IDE. Fare riferimento a SCSI HOWTO e fare attenzione alle cifre relative alle prestazioni prima di acquistare una scheda SCSI.

9.1 Supportati

9.2 Driver alpha e beta

9.3 Non supportati

10. Controller (I/O)

Qualsiasi scheda standard seriale/parallela/joystick/combo. Linux supporta 8250, 16450, 16550 e 16550A UART. Possono essere utilizzate schede che supportano IRQ (IRQ > 9) non standard.

Fare riferimento al documento ``Application Note AN-493'' di Martin S. Michael relativo ai semiconduttori della National. La sezione 5.0 descrive in dettaglio le differenze tra NS16550 e NS16550A. In breve, NS16550 conteneva errori nei circuiti FIFO, ma i chip NS16550A delle versioni successive li hanno risolti. Tuttavia, esistevano pochi NS16550 prodotti da National e, in questo modo, dovrebbero essere correntemente molto rari. Molte delle parti ``16550'' delle schede moderne vere e proprie provengono dai numerosi fabbricanti delle parti compatibili, che potrebbero non utilizzare il suffisso ``A'' di National. Inoltre, alcune schede multiporte utilizzeranno chip 16552 o 16554 o numerosi altri chip multiporta o multifunzione di National o di altri fornitori (in genere in un pacchetto importante saldato alla scheda, non un DIP a 40 pin). In generale, non è necessario preoccuparsi di questo problema se non si rileva un vecchio chip DIP National ``NS16550'' (no A) a 40 pin libero o in una vecchia scheda e, in questo caso, è necessario trattarla come 16450 (no FIFO) invece che come 16550A. Zhahai Stewart < zstewart@hisys.com>

11. Controller (multiporta)

11.1 Schede non intelligenti

Supportate

Le schede non intelligenti in genere sono disponibili in due tipi, uno che utilizza indirizzi di porte COM standard e utilizzano IRQ 4 e uno compatibile AST FourPort e utilizza un blocco selezionabile di indirizzi e un singolo IRQ. (Gli indirizzi e gli IRQ sono impostati mediante setserial.) Se si dispone di una di queste schede, accertarsi di verificare a quali standard è conforme, dato che i prezzi non forniscono alcuna indicazione utile.

11.2 Schede intelligenti

Supportate

Driver alpha e beta

12. Schede di rete

Le schede Ethernet variano notevolmente in termini di prestazioni. In generale, più recente è la progettazione, migliori sono le prestazioni. Alcune schede molto vecchie come 3Com 3c501 sono utili solo perché possono essere disponibili in heap semplici a 5 $ ciascuno. Fare attenzione ai cloni, non tutti sono adeguati e i cloni non adatti causano spesso chiusure irregolari in Linux. Leggere Ethernet HOWTO, nel sito Web all'indirizzo http://metalab.unc.edu/LDP/HOWTO/, per descrizioni dettagliate su numerose schede.

12.1 Supportate

Ethernet

Per le schede ethernet con la serie DECchip DC21x4x, il driver ``Tulip'' è disponibile. Ulteriori informazioni relative a questo driver possono essere disponibili nel sito Web all'indirizzo http://cesdis.gsfc.nasa.gov/linux/drivers/tulip.html.

ISDN

Le schede ISDN che emulano i modem standard o le schede Ethernet comuni non necessitano di alcun driver particolare per il funzionamento.

Frame relay

Senza fili

X25

Schede portatili e tascabili

Senza slot

ARCnet

TokenRing

Si faccia riferimento al sito Web relativo alla rete token ring http://www.linuxtr.net

FDDI

Amateur radio (AX.25)

Schede PCMCIA

12.2 Driver alpha e beta

Ethernet

ISDN

ATM

Frame relay

Senza cavi

12.3 Non supportati

13. Schede audio

Ulteriori informazioni relative ai driver e alle schede audio sono disponibili nel sito Web all'indirizzo http://www.opensound.com/ossfree o http://www.opensound.com/oss.html.

13.1 Supportati

OSS supporta tutte le schede figlie MIDI inclusa Wave Blaster, TB Rio e Yamaha DB50XG. L'unico requisito necessario è costituito dal fatto che la scheda ``host'' deve essere supportata da OSS. Si può notare che la scheda host deve essere configurata mediante soundconf. La scheda figlia sarà automaticamente accessibile attraverso il MIDI della scheda host.

13.2 Driver alpha e beta

Per le schede audio basate sul chip AD1816 è necessario isapnptools per la configurazione.

13.3 Non supportate

Il chip ASP della serie Sound Blaster 16 non è supportato. Il sintetizzatore AWE32 E-mu MIDI non è supportato.

Nathan Laredo < laredo@gnu.ai.mit.edu> potrà fornire driver AWE32 su richiesta. Si occupa anche di creare driver per la maggior parte dell'hardware se gli vengono inviati campioni gratuiti dell'hardware a disposizione.

Le schede Sound Blaster 16 con DSP 4.11 e 4.12 causano un errore a livello di hardware che porta al verificarsi di blocchi durante l'esecuzione di audio MIDI e digitale contemporaneamente. Il problema può verificarsi con le schede figlie Wave Blaster o i dispositivi MIDI collegati alla porta MIDI. Non esiste alcun rimedio noto.

14. Dischi rigidi

Tutti i dischi rigidi funzionano se il controller è supportato.

(Da SCSI HOWTO) Tutti i dispositivi SCSI ad accesso diretto con una dimensione del blocco di 256, 512 o 1024 byte dovrebbero funzionare. Altre dimensioni di blocco non funzioneranno. (Si potrà notare che questo problema può essere spesso risolto modificando il blocco e/o le dimensioni dei settori mediante il comando MODE SELECT SCSI).

Le unità IDE (EIDE) di grandi dimensioni hanno un buon funzionamento con i kernel più aggiornati. La partizione di avvio deve essere collocata nei primi 1024 cilindri a causa delle limitazioni del BIOS del PC.

Alcune unità Conner CFP1060S possono avere problemi con Linux ed ext2fs. I sintomi sono costituiti da errori inode durante l'esecuzione di e2fsck e dalla corruzione dei file system. Conner ha creato un aggiornamento del firmware per risolvere questo problema, contattare Conner al numero telefonico 1-800-4CONNER (Stati Uniti) o +44-1294-315333 (Europa). È necessario disporre della versione del microcodice, disponibile nell'etichetta dell'unità, al momento della chiamata.

È stato rilevato che molte unità Maxtor e Western Digital IDE non sono in grado di coesistere senza problemi nello stesso cavo IDE con le unità di altri fabbricanti. In genere una delle unità subisce interruzione durante le operazioni. La soluzione consiste nel connetterli a cavi IDE diversi.

Alcune unità Micropolis hanno problemi con le schede Adaptec e BusLogic, contattare i fabbricanti delle unità per gli aggiornamenti del firmware se si sospetta il verificarsi di problemi.

14.1 Non supportati

Le unità disco rigido riportate di seguito non sono supportate da Linux. Leggere il report degli errori disponibile.

15. Unità a nastro

15.1 Supportate

15.2 Driver alpha e beta

15.3 Non supportate

16. Unità CD-ROM

Per ulteriori informazioni relative alle unità CD-ROM, verificare il relativo HOWTO nel sito Web all'indirizzo http://metalab.unc.edu/LDP/HOWTO/.

16.1 Supportate

Unità CD-ROM comuni

Unità CD-ROM proprietarie

16.2 Driver alpha e beta

16.3 Note

Tutte le unità CD-ROM dovrebbero funzionare in modo simile per la lettura dei dati. Esistono numerosi problemi di compatibilità con le utilità di riproduzione dei CD. (In particolare con le unità NEC di livello inferiore più aggiornate.) Alcuni driver alpha possono non disporre ancora di supporto audio.

Le unità CD-ROM NEC precedenti (a singola velocità) possono causare problemi con i controller SCSI disponibili correntemente.

PhotoCD (XA) è supportato. Il programma hpcdtoppm di Hadmut Danisch converte i file di PhotoCD nel formato portatile pixmap. Il programma è disponibile nel sito Web all'indirizzo ftp://ftp.gwdg.de/pub/linux/hpcdtoppm o come parte delle utilità PBM.

Inoltre, la lettura dei CD video è supportata nei kernel serie 2.1.3x e nelle versioni successive. Una patch è disponibile per il kernel 2.0.30.

Infine, la maggior parte dei IDE CD-ROM Changers sono supportati.

17. CD-writer

Molti CD-writer sono supportati da Linux. Per un elenco aggiornato di CD-writer supportati, fare riferimento CD-Writing mini-HOWTO all'indirizzo http://metalab.unc.edu/LDP/HOWTO/CD-Writing-HOWTO.html, verificare al sito Web all'indirizzo http://www.shop.de/cgi-bin/winni/lsc.pl o all'indirizzo http://www.guug.de:8080/cgi-bin/winni/lsc.pl. Cdwrite ftp://metalab.unc.edu/pub/Linux/utils/disk-management/ e cdrecord http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html possono essere utilizzati per la scrittura su CD. Il pacchetto X-CD-Roast per Linux è un dispositivo grafico front-end per i CD-writer. Il pacchetto è disponibile nel sito Web all'indirizzo ftp://metalab.unc.edu/pub/Linux/utils/disk-management/xcdroast-0.96d.tar.gz.

18. Unità rimovibili

Tutte le unità SCSI funzionano se il controller è supportato, incluse optical (MO), WORM, floptical, Bernoulli, Zip, Jaz, SyQuest, PD e altre.

Le unità rimovibili funzionano come le unità disco rigido e i dischi floppy, eseguendo semplicemente fdisk/mkfs e montando i dischi. Linux fornisce alle unità il blocco se tale caratteristica è supportata. Anche mtools può essere utilizzato se i dischi sono nel formato MS-DOS.

Le unità CD-ROM richiedono software speciale per funzionare. Leggere il relativo HOWTO.

Linux supporta i dischi a 512 e a 1024 byte/settori. A partire dal kernel 2.1.32 Linux supporta anche 2048 byte/settori. Una patch del kernel 2.0.30 è disponibile nel sito Web all'indirizzo http://liniere.gen.u-tokyo.ac.jp/2048.html.

Il supporto a 2048 byte/settori è necessario per

A partire dalla pre-patch-2.0.31-3 delle unità ZIP interne IDE/ATAPI, floptical e PD sono supportate.

19. Mouse

19.1 Supportati

19.2 Driver alpha e beta

19.3 Note

Anche i dispositivi touchpad come Alps Glidepoint funzionano, finché sono compatibili con un altro protocollo del mouse.

I mouse Logitech più aggiornati, a eccezione di Mouseman, utilizzano il protocollo Microsoft e funzionano tutti e tre i pulsanti. Anche se i mouse Microsoft hanno solo due pulsanti, il protocollo ne consente tre.

La porta del mouse dei componenti ATI Graphics Ultra e Ultra Pro utilizza il protocollo Logitech busmouse. (Fare riferimento a Busmouse HOWTO per ulteriori dettagli.)

20. Modem

Tutti i modem interni o i modem esterni connessi alla porta seriale dovrebbero funzionare. Purtroppo alcuni fabbricanti hanno creato solo modem per Windows 95. Controllare nell'Appendice E per l'hardware non compatibile con Linux. Inoltre, molti modem dispongono solo di programmi flash per Win95/NT. Questi modem non possono essere aggiornati in corrispondenza di Linux.

Un numero ridotto di modem è fornito con il software DOS che scarica il programma di controllo in fase di esecuzione. Questi modem possono in genere essere utilizzati caricando il programma in DOS ed effettuando una avvio a caldo. È consigliabile evitare l'utilizzo di tali modem dato che non sarà possibile usufruirne con hardware non per PC in futuro.

Tutti i modem PCMCIA dovrebbero funzionare con driver PCMCIA.

I modem fax necessitano di software fax appropriato per funzionare. È inoltre importante accertarsi che la parte fax del modem supporti Class 2 o Class 2.0. Sembra che in genere per il software fax in sistemi Unix il supporto per Class 1.0 non sia disponibile.

Un'eccezione a questo fatto è il programma efax Linux che supporta i modelli di fax Class 1 e Class 2. In alcuni casi possono verificarsi alcuni problemi tecnici minori con i modem Class 1. Se è possibile scegliere è consigliabile disporre di un modem Class 2.

Anche le schede a più modem sono supportate da Linux.

Il modem indicato di seguito non è supportato

21. Stampanti/plotter

Tutte le stampanti e i plotter connessi alla porta parallela o seriale dovrebbero funzionare. Purtroppo alcuni fabbricanti hanno creato stampanti solo per Windows 95. Verificare l'Appendice E per l'hardware compatibile con Linux.

21.1 Ghostscript

Molti programmi di Linux danno come risultato file PostScript. Le stampanti non PostScript possono emulare PostScript Level 2 mediante Ghostscript.

Stampanti che supportano Ghostscript 5.1

Driver alpha e beta

22. Scanner

Per il supporto degli scanner è disponibile il pacchetto SANE (Scanner Access Now Easy). Le informazioni sono disponibili nel sito Web all'indirizzo http://www.mostang.com/sane/. Può essere scaricato dal sito Web all'indirizzo ftp://ftp.mostang.com/pub/sane/. Si tratta di un'interfaccia universale per gli scanner ed è fornita completa della documentazione e di numerosi frontend e backend.

Ulteriori informazioni relative a scanner palmari possono essere disponibili nel sito Web all'indirizzo http://www.willamowius.de/scanner.html

Molti scanner dispongono dei relativi pacchetti software specifici che includono i driver.

22.1 Supportati

NOTA: i driver Mustek funzionano solo con schede di interfaccia GI1904. Eric Chang eric.chang@chrysalis.org ha creato una patch per utilizzarli con le schede di interfaccia IF960.

22.2 Driver alpha e beta

22.3 Non supportati

23. Altri componenti hardware

23.1 Amateur radio

Le schede riportate di seguito sono supportate:

23.2 Monitor (DPMS) relativi al protocollo per il risparmio energetico VESA

Il supporto per il risparmio energetico è incluso nel kernel di Linux. Utilizzare setterm per attivare il supporto nella console Linux e xset per attivare il supporto in corrispondenza di X.

23.3 Schermi tattili

Il server Metro-X supporta i seguenti controller degli schermi tattili:

23.4 Terminali nelle porte seriali

I vecchi terminali possono facilmente essere utilizzati con Linux collegandoli alla porta seriale del sistema. I seguenti terminali verranno supportati:

23.5 Joystick

Il supporto dei joystick è disponibile nelle distribuzioni XFree86 più aggiornate (3.3.x) e nelle versioni del kernel 2.1.xx e 2.2.xx. Per i kernel di versioni ancora precedenti sono utili i collegamenti riportati di seguito.

I joystick correntemente supportati sono:

23.6 Schede di acquisizione video, frame grabber, sintonizzatori TV

Sono disponibili alcuni programmi che supportano i sintonizzatori TV. Sono:

Tutte le schede con Bt848/Bt848a/Bt849/Bt878/Bt879 e input comuni Composite/S-VHS sono supportate. Teletext e Intercast sono supportati (solo PAL) tramite la codifica di esempi nel software.

23.7 Fotocamere digitali

Attualmente sono disponibili cinque programmi che possono essere utilizzati in combinazione con le fotocamere digitali.

Photopc può essere esteso con un frontend Tk grafico disponibile nel sito Web all'indirizzo http://www.mediacity.com/~pwhite/Phototk/phototk.html. Anche Qvplay può essere esteso con un frontend Tk grafico, disponibile nel sito Web all'indirizzo http://www.bekkoame.or.jp/~tormato/pub/qvplaytk-0.73c.tar.gz

Supportate

Non supportate

23.8 UPS

Sono supportate numerose altre UPS. Per saperne di più fare riferimento al relativo HOWTO.

23.9 Schede multifunzione

23.10 Acquisizione dei dati

Il sito relativo a Linux Lab Project raccoglie driver per l'hardware relativo all'acquisizione dei dati e gestisce alcune liste di distribuzione relative a tale argomento. L'autore non ha esperienza di acquisizione dei dati, quindi si consiglia di verificare il sito per disporre di ulteriori dettagli.

23.11 Interfacce dei timer watchdog

23.12 Varie

24. Fonti di informazione correlate

25. Ringraziamenti

Grazie a tutti gli autori e ai collaboratori di altri HOWTO, molti elementi sono presi direttamente dalle loro opere, a FRiC, Zane Healy ed Ed Carp, gli autori originali di questo HOWTO e a chiunque abbia inviato aggiornamenti e commenti. I ringraziamenti particolari vanno a Eric Boerner e lilo (la persona, non il programma) per i controlli sul funzionamento. Grazie anche a Dan Quinlan per la conversione SGML originale.

26. Appendice A. Schede S3 supportate da XFree86 3.3.x.


CHIPSETRAMDAC CLOCKCHIPBPPSCHEDA
801/805AT&T 20C490 16 Actix GE 32 / 32+ 2Mb
Orchid Fahrenheit 1280(+)
801/805AT&T 20C490 ICD2061A 16 STB PowerGraph X.24
801/805 Del S3 805
Miro Crystal 8S
Orchid Fahrenheit VA
VL-41
805 S3 GENDAC 16 Miro 10SD VLB/PCI
SPEA Mirage VLB
801/805SS2410 ICD2061A 8 Diamond Stealth 24 VLB/ISA
801/805AT&T 20C490 Ch8391 16 JAX 8231/8241, SPEA Mirage
801/805S3 GENDAC Miro Crystal 10SD
805i Actix GE 32i
ELSA Winner 1000 ISA
928 AT&T 20C490 16 Actix Ultra
928 Sierra SC15025 ICD2061A 32 ELSA Winner 1000 ISA/VLB/EISA
928 Bt485 ICD2061A 32 STB Pegasus VL
928 Bt485 SC11412 16 SPEA(/V7) Mercury VLB
928 Bt485 ICD2061A 32 #9 GXE Level 10/11/12
928 Ti3020 ICD2061A 32 #9 GXE Level 14/16
928 928Movie
Diamond Stealth Pro
ELSA Winner 1000TwinBus
ELSA Winner 1000VL
ELSA Winner 2000
Miro Crystal 16S
864 ICD2061A Miro Crystal 20SD (BIOS 2.xx)
864 AT&T 20C498 ICS2494 32 Miro (Crystal) 20SD (BIOS 1.xx)
864 AT&T 20C498/ ICD2061A/ 32 ELSA Winner 1000 PRO VLB/PCI
864 STG1700 ICS9161 MIRO 20SD (BIOS 2.x)
ELAS Winner 1000 PRO
864 STG1700 ICD2061A 32 Actix GE 64 VLB
864 AT&T 20C498/ ICS2595 16 SPEA(/V7) Mirage P64 DRAM (BIOS 3.x)
AT&T 21C498
864 S3 86C716 SDAC 32 ELSA Winner 1000 PRO
Miro 20SD (BIOS 3.x)
SPEA Mirage P64 DRAM (BIOS 4.x)
Diamond Stealth 64 DRAM
Genoa Phantom 64i
Miro Crystal 20SD VLB (BIOS 3.xx)
864 ICS5342 ICS5342 32 Diamond Stealth 64 DRAM (some)
864 SDAC Diamond Stealth 64 Graphics 2001
864 AT&T 20C498-13ICD2061A 32 #9 GXE64 PCI
864 ASUS Video Magic PCI V864
VidTech FastMax P20


CHIPSETRAMDAC CLOCKCHIPBPPSCHEDA
964 ELSA Winner 2000 PRO-2,4
spider Tarantula 64
964 AT&T 20C505 ICD2061A 32 Miro Crystal 20SV PCI/40SV
964 Bt485 ICD2061A 32 Diamond Stealth 64
964 Bt9485 ICS9161A 32 SPEA Mercury 64
964 Ti3020 ICD2061A 8 ELSA Winner 2000 PRO PCI
964 Ti3025 Ti3025 32 #9 GXE64 Pro VLB/PCI
Miro Crystal 40SV
964 IBM RGB 32 Hercules Graphite Terminator 64
868 S3 86C716 SDAC 32 ELSA Winner 1000AVI
Miro Crystal 20SD PCI
868 AT&T 29C409 ELSA Winner 1000AVI
868 Diamond Stealth Video DRAM
Diamond Stealth 64 Video 2120/2200
ELSA Winner 1000PRO/X
#9 FX Motion 531
VideoLogic GrafixStar 500
968 Diamond Stealth 64 Video 3200
ELSA Gloria-4/8
ELSA Winner 2000AVI
ELSA Winner 2000PRO/X-2/X-4/X-8
Genoa VideoBlitz III AV
Hercules Graphite Terminator Pro 64
LeadTek WinFast S430
LeadTek WinFast S510
Miro Crystal 80SV
Miro Crystal 20SV
#9 FX Motion 771
VideoLogic GrafixStar 700
WinFast S430/S510
968 TVP3026 32 ELSA Winner 2000PRO/X
Diamond Stealth 64 Video VRAM
968 IBM RGB 32 Genoa VideoBlitz III AVI
Hercules Terminator Pro 64
STB Velocity 64 Video
#9 FX Motion 771
Diamond Stealth 64 Video 3240/3400
968 TI RAMDAC Diamond Stealth 64 Video 3240/3400
732 (Trio32) 32 Diamond Stealth 64 DRAM SE
(tutte le schede basate su Trio32)
764 (Trio64) 32 SPEA Mirage P64 (BIOS 5.x)
Diamond Stealth 64 DRAM
Diamond Stealth 64 Graphics 2xx0
#9 FX Vision 330
STB PowerGraph 64
(tutte le schede basate su Trio64)


CHIPSETRAMDAC CLOCKCHIPBPPSCHEDA
(Trio64V+) DSV3326
Diamond Stealth 64 Video 2001
DataExpert DSV3365
ExpertColor DSV3365
MAXColor S3 Trio64V+
ELSA Winner 1000TRIO/V
Hercules Terminator 64/Video
#9 FX Motion 331
STB Powergraph 64 Video
VideoLogic GrafixStar 400
(Trio64V2) ELSA Winner 1000/T2D
(ViRGE) Canopus Co. Power Window 3DV
DSV3325
DataExpert DSV3325
Diamond Multimedia Stealth 3D 2000
Diamond Multimedia Stealth 3D 2000 PRO
Diamond Stealth 3D 2000
Diamond Stealth 3D 2000 PRO
Diamond Stealth 3D 3000
ELSA Victory 3D
ELSA Victory 3DX
ELSA Winner 3000-S
Expertcolor DSV3325
Hercules Terminator 64/3D
LeadTek WinFast 3D S600
MELCO WGP-VG4S
#9 FX Motion 332
Orchid Tech. Fahrenheit Video 3D
STB systems Powergraph 3D
WinFast 3D S600
(ViRGE/DX) Hercules Terminator 3D/DX
(ViRGE/GX) STB Nitro 3D
(ViRGE/VX) ELSA Winner 2000AVI/3D
ELSA Winner 3000
ELSA Winner 3000-L-42/-M-22
MELCO WGP-VX8
STB Systems Velocity 3D
911/924 Diamond Stealth VRAM
924 SC1148 DAC

NOTA: per i chipset ViRGE/VX,DX,GX,GX2 è necessario XFree86 3.3.1 o versioni successive. È necessario utilizzare il server XF86_SVGA.

27. Appendice B. Schede PCMCIA supportate

Queste schede sono supportate dal pacchetto PCMCIA di David Hinds e questo elenco è preso dalla pagina Web di questo autore ( http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html).

Le schede CardBus sono elencate alla fine di ciascuna sezione. Allo stato attuale, tutti i driver CardBus devono essere considerati sperimentali. È necessario fare attenzione che alcune schede abbiano le versioni delle CardBus a 16 bit con nomi molto simili. Se la versione di CardBus non è elencata come supportata in modo specifico, non ci si deve attendere che funzioni.

27.1 Schede Ethernet

Tutte le altre schede utilizzano il driver pcnet_cs. È probabile che anche altre schede NE2000 compatibili che non sono nell'elenco funzionino con pcnet_cs.

27.2 Schede Fast Ethernet (10/100baseT)

I driver epic_cb e tulip_cb sono sperimentali e necessitano dei kernel 2.2.x o di una versione successiva.

27.3 Schede Token-ring

Si dovrebbe almeno disporre del kernel 1.3.72

27.4 Schede di rete senza fili

27.5 ISDN

27.6 Schede modem e seriali

Virtualmente tutte le schede modem, le schede delle semplici porte seriali e i modem dei cellulari digitali dovrebbero funzionare. Sono supportati anche i modem ISDN che emulano un UART standard.

27.7 Schede di memoria

Tutte le schede SRAM dovrebbero funzionare. Le schede flash non supportate possono essere lette ma non scritte.

27.8 Schede SCSI

È importante fare attenzione. Molti fornitori, in particolare i fornitori di unità CD-ROM, sembrano cambiare i chip dei controller a piacere. In genere utilizzano un codice del prodotto diverso, ma non sempre: le schede di versioni precedenti New Media Bus Toaster supportate non sono facilmente distinguibili dalle schede Bus Toaster correnti non supportate.

27.9 Schede ATA/IDE CD-ROM

Si dovrebbe almeno disporre del kernel 1.3.72

27.10 Schede multifunzione

Si deve almeno disporre del kernel 1.3.73

27.11 Unità delle schede ATA/IDE

Queste unità sono supportate a partire dal kernel 1.3.72. Sono supportate le schede Flash-ATA e di supporto della rotazione. Le unità di versioni molto vecchie Western Digital 40MB non sono supportate, perché non conformi alle specifiche PCMCIA ATA.

27.12 Schede delle interfacce ATA/IDE

27.13 Schede delle porte parallele

Fare riferimento all'appendice relativa ai dispositivi delle porte parallele supportati.

27.14 Schede varie

27.15 In fase di progettazione

Le seguenti schede sono in fase di progettazione:

27.16 Non supportate

28. Appendice C. Dispositivi delle porte parallele supportati

La porta parallela viene utilizzata sempre con maggiore frequenza per connettere dispositivi diversi dalle stampanti. Per supportare queste unità delle porte parallele, vengono creati driver per il funzionamento dei dispositivi. Questa appendice presenta i dispositivi per i quali viene creato il supporto della porta parallela.

Le stampanti non sono presentate in questa appendice dato che non sono supportate dai progetti di supporto della porta parallela.

Verificare inoltre le pagine di supporto di Linux Parallel Port per ulteriori informazioni http://www.torque.net/parport. In questo sito è possibile trovare

28.1 Ethernet

28.2 Dischi rigidi

28.3 Unità a nastro

28.4 Unità CD-ROM

28.5 Unità rimovibili

28.6 Scheda IDE

28.7 Schede SCSI

28.8 Fotocamere digitali

28.9 Schede delle porte parallele PCMCIA

Il driver parport_cs richiede il kernel 2.2.x o versioni successive.

29. Appendice D. Dispositivi Plug and Play

Per coloro che hanno problemi relativi al funzionamento dei dispositivi Plug and Play, sono disponibili le utility ISA PnP create da Peter Fox. Di seguito viene riportata una citazione del README:

Questi programmi consentono ai dispositivi ISA Plug-And-Play
di essere configurati in un computer Linux.

Questo programma è adatto per tutti i sistemi, che includono
o meno un BIOS PnP.

I comandi sono stati tratti dalle specifiche Plug and Play ISA versione 1.0a.

Ulteriori informazioni sulle utility ISA PnP sono disponibili nel sito Web di Peter Fox: http://www.roestock.demon.co.uk/isapnptools/

Se si è conoscenza di hardware in genere non supportato da Linux che può essere comunque utilizzato con l'aiuto di queste utilità, si è pregati di contattare l'autore. Un elenco di questi componenti hardware verrà aggiunto a questa appendice.

30. Appendice E. Componenti hardware non compatibili con Linux

Alcuni fabbricanti di hardware hanno creato dispositivi che sono compatibili solo con MS-Dos e Windows 95/98. Sembra che emulino parte dell'hardware in genere disponibile nei dispositivi tramite pacchetti software venduti con il dispositivo. Le specifiche di questi dispositivi non sono presentate agli utenti ed è pertanto impossibile creare driver per questi dispositivi. Di seguito viene riportato un elenco di dispositivi non compatibili con Linux.

È consigliabile evitare componenti hardware le cui indicazioni riportano che è necessario solo il sistema Windows.

31. Glossario

AGP

Accelerated Graphics Port. Un meccanismo di interconnessione del bus progettato per migliorare le prestazioni di applicazioni grafiche 3D. AGP è un bus dedicato dal sottosistema grafico al chipset logico principale. http://www.euro.dell.com/intl/euro/r+d/r+dnews/vectors/vect_2-1/v2-1_agp.htm

ATAPI

AT Attachment Packet Interface. Nuovo protocollo per il controllo dei dispositivi di memorizzazione globale simile ai protocolli SCSI. Si basa sull'interfaccia ATA (AT Attachment), il nome ufficiale ANSI Standard per l'interfaccia IDE sviluppata per le unità disco rigido. ATAPI è utilizzato in genere per i dischi rigidi, le unità CD-ROM, le unità a nastro e altri dispositivi.

ATM

Asynchronous Transfer Mode

CDDA

Compact Disk Digital Audio. Funzionalità dei CD-ROM/Writer di riprodurre brani audio.

DMA

Direct Memory Access

EGA

Enhanced Graphics Adapter

EIDE

Enhanced IDE

EISA

Extended Industry System Architecture

FDDI

Fiber Distributed Data Interface. Rete LAN ad anello a velocità elevata.

IDE

Integrated Drive Electronics. Ciascuna unità dispone di un controller incorporato.

ISA

Industry System Architecture

ISDN

Integrated Services Digital Network

MCA

MicroChannel Architecture

MFM

Modified Frequency Modulation

MMX

Multimedia Extensions. Aggiunte alle generazioni più aggiornate di processori Intel Pentium. Offre una migliore qualità audio e video.

PCI

Pheripheral Component Interconnect. Bus a 32 bit progettato da Intel. Informazioni sono disponibili nel sito Web all'indirizzo http://www.pcisig.com e http://infoserver.ee.siue.edu/~jbutter/EE580_1.html.

RAID

Redudant Arrays of Inexpensive Disks. Lo scopo principale del RAID consiste nel combinare più unità disco economiche e di piccole dimensioni in un array di unità disco che fa in modo che le prestazioni superino quelle di una costosa unità disco rigido di grandi dimensioni. Sono disponibili cinque tipi di architetture di array ridondanti, da RAID-1 a RAID-5. Un array di unità disco non ridondante è indicato come RAID-0. Alcuni sistemi RAID possono disporre di formati diversi.
http://www.uni-mainz.de/~neuffer/scsi/what_is_raid.html

PPA

Printing Performance Architecture. Protocollo sviluppato da Hewlett Packard per le serie di stampanti Deskjet. Il protocollo sposta il livello inferiore dell'elaborazione dei dati al computer host invece che alla stampante. In questo modo è possibile utilizzare una stampante economica con una quantità minima di memoria, dotata di potenza di elaborazione e di un driver flessibile. Tuttavia, tutto questo va a scapito della compatibilità. La decisione di HP era quella di sviluppare driver solo per Windows 95 per questa stampante.

RLL

Run Length Limited

SCSI

Small Computer Systems Interface. Interfaccia standard definita per tutti i dispositivi di un computer. Rende possibile l'utilizzo di una scheda singola per tutti i dispositivi.
http://www.uni-mainz.de/~neuffer/scsi/what_is_scsi.html

SVGA

Super Video Graphics Adapter

UART

Universal Asynchronous Receiver Transmitter

USB

Universal Serial Bus. Non ancora supportato da Linux.

VGA

Video Graphics Adapter

VLB

VESA Local Bus. Utilizzato in alcuni PC 486.

WORM

Write Once Read Many