<!doctype linuxdoc system>
<article opts="italian">
<title>BTTV Mini-HOWTO
<author>di Eric Sandeen, <tt/eric_sandeen@bigfoot.com/
<date>v0.3, Febbraio 2000

<abstract>
  Questo documento descrive l'hardware, il software e le procedure necessarie
  per utilizzare sotto Linux una scheda di cattura video o una scheda
  TV basata su chipset bt8x8.
  Traduzione di Andrea Nicolini, andrea@teamsw.it, Aprile 2000
</abstract>

<toc>
<sect>Introduzione
<p>

  La capacità di catturare e visualizzare sorgenti video è una delle più 
  interessanti caratteristiche multimediali di Linux. Sono supportati molti 
  tipi di dispositivi attraverso le API video4linux (<url
  url="http://roadrunner.swansea.uk.linux.org/v4l.shtml">), incluse diverse schede
  TV basate sui chipset Conexant bt848 e bt878.
  Questo documento spiega come utilizzare tali schede su di un sistema Linux.

<sect1>Copyright di questo documento (in inglese).
<p>

This HOWTO is copyrighted 1999 Eric Sandeen.

Unless otherwise stated, Linux HOWTO documents are copyrighted by
their respective authors. Linux HOWTO documents may be reproduced and
distributed in whole or in part, in any medium physical or electronic,
as long as this copyright notice is retained on all copies. Commercial
redistribution is allowed and encouraged; however, the author would
like to be notified of any such distributions.

All translations, derivative works, or aggregate works incorporating
any Linux HOWTO documents must be covered under this copyright notice.
That is, you may not produce a derivative work from a HOWTO and impose
additional restrictions on its distribution. Exceptions to these rules
may be granted under certain conditions; please contact the Linux
HOWTO co-ordinator at the address given below.  In short, we wish to
promote dissemination of this information through as many channels as
possible. However, we do wish to retain copyright on the HOWTO
documents, and would like to be notified of any plans to redistribute
the HOWTOs.

If you have questions, please contact Tim Bynum, the Linux HOWTO
coordinator, at <em/linux-howto@metalab.unc.edu/ via email.

<sect1>Dove trovare questo documento
<p>
   
  La versione ufficiale più recente di questo documento può essere scaricata
  dal sito del Linux Documentation Project <url url="http://metalab.unc.edu/LDP/">.

<sect1>Riconoscimenti
<p>

  Grazie a Ralph Metzler e Marcus Metzler per aver scritto il driver originale
  bttv. Grazie anche ad Alan Cox per aver creato le API Video4Linux, Gerd Knorr
  per il suo lavoro sulle schede radio, per le versioni successive bttv e
  per xawtv. Grazie a chiunque abbia contribuito al supporto Linux per queste
  schede. Grazie a William Burrow che scrisse un HOWTO su BTTV, che ho 
  utilizzato per migliorare questa guida.  
   
  Nello scrivere questo HOWTO ho utilizzato pesantemente la documentazione
  su bttv e xawtv.

<sect1>Liberatoria
<p>

  Usate le informazioni in questo documento a vostro rischio e pericolo.
  Mi dissocio da qualsiasi problema legale che nasca dal contenuto di questo
  documento. Usate i concetti, esempi, e/o gli altri contenuti di questo
  documento a vostro rischio.
  
  Tutti i diritti d'autore sono, se non diversamente specificato, detenuti dai
  rispettivi autori. L'uso di un termine in questo documento non deve essere
  considerato come violazione di un marchio depositato.
  
  Nominare prodotti particolari o marche non deve essere visto come una forma 
  pubblicità. Vi raccomando fortemente di fare i backup del vostro sistema
  prima dell'installazione e di continuare a farne ad intervalli regolari.


<sect>Requisiti hardware
<p>

  Dal README del pacchetto bttv:

  Bttv è un driver per schede di acquisizione video basate su chip della 
  famiglia Bt848 di Conexant (<url url="http://www.conexant.com">).
  Questa famiglia comprende Bt484, Bt484A, Bt849 e Bt879. 
  Le uniche differenze che esistono fra le varie schede dei vari produttori 
  consistono nei sintonizzatori e nei componenti aggiuntivi adottati. 
  Per esempio, alcune schede della Hauppauge hanno dei chip addizionali 
  per il televideo e per la decodifica del suono. Solo alcuni di questi 
  componenti sono supportati da bttv. Anche il tipo ed il numero degli ingressi
  può variare.
  
  Sono supportate le seguenti schede:

<itemize>

	<item><bf>AverMedia TV98</bf> 
	<itemize>
	<item><url url="http://www.aver.com/products.html">
	</itemize>
	
	<item><bf>AVerMedia TV-Phone</bf> 
	<itemize>
	<item><url url="http://www.aver.com/lite/products/avertvphone.html">
	</itemize>
	
	<item><bf>Diamond DTV2000</bf> 
	<itemize>
	<item><url url="http://www.diamondmm.com/products/current/dtv-2000.cfm">
	</itemize>
	
	<item><bf>Hauppauge Win/TV pci</bf> (e altre schede Hauppauge)
	<itemize>
	<item><url url="http://www.hauppauge.com/">
	</itemize>
	
	<item><bf>IDS Imaging FALCON</bf>
	<itemize>
	<item><url url="http://www.ids-imaging.de/">
	</itemize>
	
	<item><bf>Lifeview Flyvideo II</bf>
	<itemize>
	<item><url url="http://www.lifeview.de/lifeview/html/produkte.htm#karte">
	</itemize>
	
	<item><bf>Matrix Vision MV-Delta</bf>
	<itemize>
	<item><url url="http://www.matrix-vision.de/">
	</itemize>
	
	<item><bf>miroVIDEO PCTV</bf>
	<itemize>
	<item><url url="http://www.pinnaclesys.com/">
	</itemize>
	
	<item><bf>Osprey-100</bf> 
	<itemize>
	<item><url url="http://www.mmac.com/products/osprey/osprey100.html">
	</itemize>
	
	<item><bf>STB TV PCI</bf> 
	<itemize>
	<item><url url="http://www.stb.com/products/multimedia/tvpci/tvpci.html">
	</itemize>
	
	<item><bf>Terratec TERRA TV+</bf> 
	<itemize>
	<item><url url="http://www.terratec.de/produkte/terratv/terratv_info.htm">
	</itemize>
	
	<item><bf>Videologic Captivator PCI</bf> 
	<itemize>
	<item><url url="http://www.videologic.com/Productinfo/capt_pci.htm">
	</itemize>
	
</itemize>

  Se conoscete altre schede che funzionano, scrivetemi cosicché io possa 
  aggiungerle nella prossima revisione di questo documento.

<sect>Requisiti Software 

<p>

  Per utilizzare queste schede TV sotto Linux, avrete bisogno dell'appropriato
  driver. I driver bttv sono parte del kernel dalla versione 2.2.0.
<p>  
In alternativa, potete utilizzare l'ultima versione del pacchetto bttv
  insieme ad un kernel 2.0.35 o superiori. Questa soluzione però non sempre 
  funziona correttamente. Le versioni più aggiornate di questo pacchetto
  sono rese disponibili da Gerd Knorr <url url="http://www.in-berlin.de/User/kraxel/xawtv.html">, il quale ha aggiunto anche il supporto
  per diversi chip audio tra cui il TEA6300, TDA8425 e il DPL3518.

  Se siete nuovi nel mondo dei driver bttv, vi suggerisco di cominciare
  ad utilizzare i driver compresi nell'ultimo kernel. Se avete problemi, 
  oppure se la vostra scheda non è supportata, provate con la distribuzione
  di bttv versione 0.6 oppure con la versione 0.7 di Gerd Knorr.
<p>  
  Questo documento si basa principalmente sui driver del kernel versione 
  2.2.14, con qualche cenno alle caratteristiche disponibili nel pacchetto
  bttv versione 0.6. 
  La versione 0.7 non è trattata siccome si trova attualmente in fase di 
  sviluppo.

<sect>Configurazione di sistema
<p>
<sect1>Installazione Hardware 
<p>
<em>(Grazie a William Burrow per questa sezione.)</em>
<p>

  Se non ve la sentite di aprire il vostro computer, assicuratevi di aver
  letto questo HOWTO per intero e di aver preso nota delle caratteristiche tecniche
  della vostra scheda, come il tipo di sintonizzatore ed il modello dei chip.
  Successivamente potrete affidarvi ad una persona in grado di installare la 
  vostra scheda per voi. 
<p>  
  Altrimenti aprite il vostro computer ed installate la scheda in uno slot
  libero. Possibilmente lo slot dovrebbe supportare il PCI bus transfer
  ed il PCI bus mastering. Consultate il manuale della scheda madre per
  ulteriori informazioni.
<p>  
  Per quanto riguarda il suono, esistono diversi modi per collegare la vostra
  scheda di acquisizione video alla vostra scheda sonora.
  Un metodo consiste nel collegare internamente i due dispositivi attraverso
  il cavetto audio del CD-ROM, che dovrà essere inserito nell'ingresso della
  scheda video, la quale dovrà essere a sua volta collegata alla scheda 
  sonora o ad un sintonizzatore.
  Un altro modo consiste nel connettere esternamente i due dispositivi, 
  utilizzando un cavetto dotato di due jack da 1/8 di pollice. 
  Questo cavo andrà inserito nell'uscita esterna della vostra scheda TV e
  nell'ingresso esterno della vostra scheda audio.
  Se non vi interessano questi tipi di collegamento potrete sempre collegare
  delle casse all'uscita della vostra scheda TV.
  Alcune schede basate su chip bt878 non sono dotate di connettori audio,
  in quanto utilizzano il bus PCI per trasferire i dati audio.
  Attualmente non vi sono supporti per questa tecnologia.
<p>
  Per verificare se la scheda funziona correttamente sarà necessaria una 
  sorgente video. Molte schede supportano ingressi Composite Video, S-Video
  e RF. Normalmente esiste un connettore per ogni tipo di ingresso.


<sect1>Configurazione del kernel
<p>


  Il vostro kernel deve essere configurato correttamente per supportare la 
  vostra scheda. Molte distribuzioni recenti sono già dotate di tutti i
  moduli necessari precompilati, così se trovate i moduli videodev.o,
  bttv.o e tuner.o sotto /lib/modules/2.x.x/misc, dovreste essere pronti per
  provare.
  
  Se non li trovate, dovrete ricompilare il kernel con 
 
  <tt>CONFIG_VIDEO_DEV</tt><P>
  
  e
  
  <tt>CONFIG_VIDEO_BT848</tt><P>
  

  abilitati, meglio se come moduli. Se avete dubbi per quanto riguarda la 
  compilazione del kernel date un'occhiata al Linux Kernel HOWTO
  (<url url="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html">).


<sect1>Come usare i pacchetti versione 0.6.x 
<p>

  Se intendete utilizzare i pacchetti della serie 0.6.x, dovrete prima 
  scaricare il file in formato tar da Internet.
  Per scomprimerlo eseguite il seguente comando

  tar -xvzf bttv-0.6.x.tar.gz

  poi entrate nella directory appena creata. Se non siete root dovrete
  lanciare 'su' poi potrete digitare

  make

  nella directory principale per creare i driver. Dopo aver compilato i 
  moduli potrete lanciare

  make install

  per installarli. In fine, digitate

  /sbin/depmod -a

  per aggiornare le dipendenze dei moduli.


<sect1>File speciali sotto <tt>/dev</tt>
<p>

  La prossima cosa da verificare è l'esistenza dei file di dispositivo
  sotto /dev. Digitate ls /dev/video*; ls /dev/radio* per vedere se i file
  esistano già. Se non è così dovrete crearli.
  Tutti i file di dispositivo di cui abbiamo bisogno hanno 81 come major number,
 mentre il minor number dipende dal dispositivo specifico (video, radio,
  ecc.). Per informazioni relative alla programmazione consultate le 
  Video4Linux API (<url url="http://roadrunner.swansea.uk.linux.org/v4lapi.shtml">).


  Nella directory dei driver del pacchetto bttv esiste uno script chiamato
  MAKEDEV che creerà i dispositivi automaticamente. 
  Se possedete solo una scheda TV potrete creare i dispositivi anche a mano.
  Entrate come root e digitate:

  mknod /dev/video0 c 81 0

  chmod 666 /dev/video0

  ln -s /dev/video0 /dev/video


  mknod /dev/radio0 c 81 64

  chmod 666 /dev/radio0

  ln -s /dev/radio0 /dev/radio


  Esistono anche dispositivi videotext e VBI che hanno bisogno di un device
  file (attualmente sono ancora molto pochi).
  Digitate:
  
  mknod /dev/vtx0 c 81 192

  chmod 666 /dev/vtx0

  ln -s /dev/vtx0 /dev/vtx


  mknod /dev/vbi0 c 81 224

  chmod 666 /dev/vbi0

  ln -s /dev/vbi0 /dev/vbi

<sect1>Caricare i moduli
<p>

  Il driver bttv offre molti moduli diversi, ognuno dei quali è dotato
  di molte opzioni differenti. Per far funzionare correttamente il driver
  sarà quindi necessario provare i moduli con le relative opzioni finché
  tutto non funzionerà a dovere. 
  Siccome esiste una remota possibilità di mandare in crash il vostro sistema
  vi consiglio di digitare

  sync; sleep 1; sync

  per scaricare i buffer sul disco prima di procedere. Successivamente potrete
  lanciare insmod come root per provare a caricare i moduli.
  I primi due moduli solitamente non danno problemi, in quanto non necessitano
  di opzioni:

  insmod videodev

  insmod i2c

  Ora siete pronti per caricare il driver bttv:

  modprobe bttv

  Di default, il modulo bttv tenterà di rilevare il modello della vostra 
  scheda. Date un'occhiata a /var/log/messages per vedere se è stata rilevata.
  Se il modulo non ha rilevato automaticamente la vostra scheda, potrete
  aggiungere l'opzione card=n all'ultimo comando, dove n sta per il tipo
  di scheda elencato di seguito (i tipi dal 0 al 19 sono quelli supportati
  dai driver del kernel, quelli dal 20 al 27 appartengono invece al pacchetto
  bttv-0.6.4h). Se la vostra scheda è dotata di funzionalità radio potrete
  aggiungere l'opzione radio=1 per attivarle.
<code>
   card=n      tipo di scheda
                  0:  Auto-Detect
                  1:  Miro
                  2:  Hauppauge (old bt848 boards)
                  3:  STB
                  4:  Intel
                  5:  Diamond
                  6:  AVerMedia
                  7:  MATRIX Vision MV-Delta
                  8:  FlyVideo
                  9:  TurboTV
                  10: Hauppauge (new bt878 boards)
                  11: MIRO PCTV pro
                  12: Terratec/Vobis TV-Boostar
                  13: Newer Hauppauge WinCam (bt878)
                  14: MAXI TV Video PCI2
                  15: Terratec TerraTV+
                  16: Aimslab VHX
                  17: PXC200
                  18: AVermedia98
                  19: FlyVideo98 (newer FlyVideo cards)
                  20: Zoltrix TV-Max
                  21: iProTV
                  22: ADS Technologies Channel Surfer TV
                  23: Pixelview PlayTV (bt878)
                  24: Leadtek WinView 601
                  25: AVEC Intercapture
                  26: LifeView FlyKit w/o Tuner
                  27: Intel Create and Share PCI
</code>



  Poi caricate il modulo del sintonizzatore, con

  modprobe tuner type=n

  Probabilmente dovrete guardare direttamente sulla vostra scheda TV per 
  scoprire il tipo di sintonizzatore di cui è dotata.
  Alcune schede (Miro e Hauppauge) permettono il rilevamento automatico del
  sintonizzatore, ma a volte sarà necessario specificarlo ugualmente.
  Il sintonizzatore dovrebbe riportare la marca, inoltre potrete osservare
  sui cristalli (piccoli cilindretti di alluminio) sei si tratta di un 
  sintonizzatore PAL o NTSC. Per i PAL i cristalli sono marchiati 28.xxxMHz 
  (dove xxx sono 3 numeri), gli NTSC invece riportano 35.xxxMHz.
  Una volta identificato il sintonizzatore potrete scegliere il valore
  appropriato dalla seguente tabella (i tipi 8 e 9 sono inclusi solo nel 
  pacchetto bttv-0.6.4h):

<code>
  
  type=n          Tipi di sintonizzatore:
                  0: Temic PAL tuner
                  1: Philips PAL_I tuner
                  2: Philips NTSC tuner
                  3: Philips SECAM tuner
                  4: no tuner
                  5: Philips PAL tuner
                  6: Temic NTSC tuner
                  7: Temic PAL tuner
                  8: Alps TSBH1 NTSC tuner
                  9: Alps TSBE1 PAL tuner
</code>


  Infine, inserite i moduli per il sonoro. Probabilmente dovrete verificare
  nuovamente il tipo di chip sonoro della vostra scheda.
  Ricordate che i driver per TEA6300, TDA8425, TDA9855 e DPL3518
  sono inclusi solo nel pacchetto 0.6.4h e mancano dalla distribuzione del
  kernel versione 2.2.14.


  modprobe msp3400 o tea3600 o tda8425 o tda9855 o dpl3518 (guardate 
  l'appendice per i dettagli)

  Finalmente potrete lanciare la vostra applicazione preferita per vedere
  se tutto funziona correttamente. Se non riuscite a cambiare canale 
  probabilmente non avete caricato il modulo del sintonizzatore (tuner).
  Se invece non sentite alcun suono probabilmente ci sono dei problemi con
  il modulo audio, oppure avete il canale audio settato su mute.

<sect1>Automatizzare il caricamentio dei moduli
<p>

  Una volta che avete imparato quali moduli e quali opzioni vi servono, potrete
  automatizzare il loro caricamento editando il file /etc/conf.modules.
  Così facendo i moduli verranno caricati automaticamente ogniqualvolta un
  programma ne abbia bisogno.
  La mia configurazione è la seguente:

<code>
  # TV
  alias   char-major-81   bttv
  pre-install bttv        modprobe -k tuner; modprobe -k msp3400
  options bttv            radio=1 card=3
  options tuner           type=2
</code>


  Assicuratevi di modificare questa configurazione in base ai moduli e alle 
  opzioni della vostra scheda (ricordate anche di rilanciare /sbin/depmod -a
  per aggiornare le dipendenze dei moduli).

<sect>Applicazioni
<p>

  Ora che il vostro kernel, i vostri dispositivi e i vostri moduli sono
  configurati, avrete bisogno di un'applicazione per visualizzare e catturare
  le immagini dalla vostra scheda. 
  Ce ne sono diverse disponibili:

<itemize>

	<item><bf>bttvgrab</bf> - Applicazione di cattura video 
	<itemize>
	<item><url url="http://moes.pmnet.uni-oldenburg.de/bttvgrab/">
	</itemize>
	
	<item><bf>Gnome-o-Vision</bf> - Visualizzatore per Gnome 
	<itemize>
	<item><url url="http://cvs.gnome.org/lxr/source/gnomovision/">
	</itemize>

	<item><bf>kwintv</bf> - Applicazione TV per KDE
	<itemize>
	<item><url url="http://www.mathematik.uni-kl.de/~wenk/kwintv/">
	</itemize>
	
	<item><bf>wmtune</bf> - Sintonizzatore radio per Window Maker 
	<itemize>
	<item><url url="http://home.pages.de/~fionn/archive/wmtune-1.0_bttv.tar.bz2">
	</itemize>
	
	<item><bf>wmtv</bf> - Dock Application per Window Maker 
	<itemize>
	<item><url url="http://www.student.uwa.edu.au/~wliang/">
	</itemize>
	
	<item><bf>XawTV</bf> - Applicazione TV ed utilità varie
	<itemize>
	<item><url url="http://www.in-berlin.de/User/kraxel/xawtv.html">
	</itemize>
	
	<item><bf>XtTV</bf> - Semplice programma TV/Video per Linux/X Windows
	<itemize>
	<item><url url="http://home.pages.de/~rasca/xttv/">
	</itemize>
	
</itemize>

  Assicuratevi di leggere tutta la documentazione per ogni
  applicazione che intendete usare. Molte di queste, infatti, prima
  che possano funzionare necessitano di file di configurazione
  adeguatamente modificati!  A causa dei diversi tipi di schede
  presenti in commercio, dovrete trovare il tempo per leggere la
  documentazione. Molto spesso i valori di default di queste
  applicazioni non funzioneranno per le vostre schede.


<sect>Appendice - Argomenti per i moduli
<p>

  Gli elementi preceduti da "*" sono disponibili solo nel pacchetto 0.6.4h


<code>


  videodev.o
          questo è il modulo base di video4linux, tutti
          i driver video si registrano qui.

  i2c.o
          questo è il modulo generico i2c. Serve per gestire
          il bus i2c, tutti i moduli a parte videodev.o lo usano.

          insmod args:
                  scan=1          ricerca dispositivi i2c sul bus
                  verbose=0       zittisce i2c
                  i2c_debug=1     serve per il debugging attraverso syslogd

  bttv.o
          il driver per bt848

          insmod args:
                  remap=adr       rimappa la memoria del Bt848 a adr<<20
                  vidmem=base     indirizzo del frame buffer >>20 
                  triton1=0/1     per compatibilità con Triton1
                  pll=0/1/2       impostazione del pll 
                                  0: non usa PLL
                                  1: cristalli a 28 MHz 
                                  2: cristalli a 35 MHz 
                  radio=0/1       supporto radio
                  card=n          tipo di scheda
                                  0:  Auto-Detect
                                  1:  Miro
                                  2:  Hauppauge (schede bt848 più vecchie)
                                  3:  STB
                                  4:  Intel
                                  5:  Diamond
                                  6:  AVerMedia
                                  7:  MATRIX Vision MV-Delta
                                  8:  FlyVideo
                                  9:  TurboTV
                                  10: Hauppauge (schede bt878 più nuove)
                                  11: MIRO PCTV pro
                                  12: Terratec/Vobis TV-Boostar
                                  13: Newer Hauppauge WinCam (bt878)
                                  14: MAXI TV Video PCI2
                                  15: Terratec TerraTV+
                                  16: Aimslab VHX
                                  17: PXC200
                                  18: AVermedia98
                                  19: FlyVideo98 (schede FlyVideo più nuove)
                                  *20: Zoltrix TV-Max
                                  *21: iProTV
                                  *22: ADS Technologies Channel Surfer TV
                                  *23: Pixelview PlayTV (bt878)
                                  *24: Leadtek WinView 601
                                  *25: AVEC Intercapture
                                  *26: LifeView FlyKit w/o Tuner
                                  *27: Intel Create and Share PCI

	  remap, card, radio e pll accettano fino a 4 argomenti separati da
          virgola (per schede multiple). I default della scheda e del pll
          sono definiti nel Makefile.

  msp3400.o
          Questo è il driver per il chip sonoro msp34xx. Se avete una scheda
          stereo probabilmente avrete bisogno di questo modulo.

          insmod args:
                  debug=1/2       server per il debugging tramite syslogd.
                                  

  *tea6300.o
          Questo è il driver per il chip tea6300. Se avete una scheda stereo
          ma il msp3400 non funziona, provate questo.

          insmod args:
                  debug=1         server per il debugging tramite syslogd.

  *tda8425.o
          Questo è il driver per il chip tda8425. Questo driver fa solitamente
          parte di bttv.o, quindi sei il vostro sonoro funzionava ma ora non 
          funziona più, provate a caricare questo modulo.

          insmod args:
                  debug=1         server per il debugging tramite syslogd.

  *tda9855.o
          Questo è il driver per il chip audio tda9855.

          insmod args:
                  debug=1         server per il debugging tramite syslogd.

  *dpl3518.o
          Questo è il driver per il chip dpl3518a per il Dolby processing. 

          insmod args:
                  debug=1         server per il debugging tramite syslogd.

  tuner.o
          Questo è il driver per il sintonizzatore. Avrete bisogno di questo
          a meno che non utilizziate una telecamera o un sintonizzatore esterno.
          
          insmod args:
                  debug=1         server per il debugging tramite syslogd.
                  type=n          tipo di sintonizzatore:
                                  0: Temic PAL tuner
                                  1: Philips PAL_I tuner
                                  2: Philips NTSC tuner
                                  3: Philips SECAM tuner
                                  4: no tuner
                                  5: Philips PAL tuner
                                  6: Temic NTSC tuner
                                  7: Temic PAL tuner
                                  *8: Alps TSBH1 NTSC tuner
                                  *9: Alps TSBE1 PAL tuner

  i2c_chardev.o
          Definisce un device a caratteri per l'accesso al bus i2c. 
          Funziona solo con i kernel 2.1.x, non è compilato di default.
</code>

</article>
