miro-1.html100644 5640 5640 2210 7003176450 12734 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI: Statut de ce document Next Previous Contents

1. Statut de ce document

Ce document est librement diffusable en l'état (dans son intégralité, y compris la présente notice, et sans aucune modification du contenu) sous n'importe quelle forme. L'auteur apprécie d'en être informé.

Le site de publication officiel de ce document, sur le quel vous trouverez la dernière version à jour est http://www.linux-france.org/article/x/miro-pctv/

Les commentaires, suggestions, corrections, et autres observations concernant ce document sont à envoyer à cette adresse.


Next Previous Contents miro-10.html100644 5640 5640 1540 7003176450 13021 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI: Problèmes...ça marche pas Next Previous Contents

10. Problèmes...ça marche pas

10.1 "Unresolved Symbols"

10.2 "System freeze"

10.3 Rien ne s'affiche sur l'écran XawTV

10.4 Problèmes IRQ, DMA, Timeout.


Next Previous Contents miro-2.html100644 5640 5640 2531 7003176450 12743 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI: Sources Next Previous Contents

2. Sources

Les informations présentes dans cette documentation sont issues de divers fichiers README inclus dans des archives de programmes:

Ces sites constituent donc une source d'informations supplémentaire dans le cas ou celui ci ne serait pas suffisant. Néanmoins, une grande partie de la documentation de base a été intégrée dans ce document et devrait par conséquent suffir dans la majorité des cas.


Next Previous Contents miro-3.html100644 5640 5640 3326 7003176450 12747 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI: Mise en garde Next Previous Contents

3. Mise en garde

Les indications fournies dans ce document n'engagent en aucun cas l'auteur et ne peuvent faire l'objet de poursuites quelles qu'elles soient. Néanmoins elles m'ont été d'une grande aide et je n'ai eu à subir aucun préjudice grave (excepté un ou deux arrêt intempestif du système dû à une mauvaise configuration initiale des pilotes). En cas de problème, je me tiens à la disposition des utilisateurs qui auront lu entièrement la documentation pour les aider dans la mesure du possible à configurer leur matos.

Cette documentation décrit l'installation du périphérique précité dans un environnement Linux 2.2 et non pas Linux 2.0 (bien que ceci fonctionne également très bien, mais je n'ai pas pu/voulu tester cette configuration.

La phase de compilation du noyau ne sera pas traitée ici, sauf bien entendu les aspects concernant le support de la carte elle même. Pour une explication détaillée de la configuration/compilation du noyau, se reporter à http://www.freenix.org/unix/linux/HOWTO/Kernel-HOWTO.html.


Next Previous Contents miro-4.html100644 5640 5640 3510 7003176450 12743 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI: Validité de ce document Next Previous Contents

4. Validité de ce document

Ce document a été rédigé dans l'optique de faire fonctionner la carte MIRO PCTV PCI dans un environnement Linux 2.2 minimum, c'est à dire sur un système équipé d'un noyau 2.2 fonctionnel (stable et sans erreur au démarage). Lors de la rédaction de ce document le dernier noyau stable est le 2.2.12 (dernière version de developpement 2.3.19). Cette documentation est valable pour les noyaux suivants:

  1. Kernel 2.2.11
  2. Kernel 2.2.12
  3. Kernel 2.2.13pre9 pre12 pre14 pre15 pre17
  4. Kernel 2.3.19 (utilisateur non averti, Attention)
  5. Kernel 2.3.20 (utilisateur non averti, Attention)
  6. Kernel 2.3.21 (utilisateur non averti, Attention)

Il est clair que ce ne sont pas les seuls noyaux fonctionnels, mais ce sont les seuls que j'ai testé. Je mettrai régulièrement cette liste à jour, et j'encourage les lecteurs à me faire part de leurs expériences avec d'autres noyaux.

Concernant le pilote Bttv, la dernière version est la 0.6.4, et là aussi j'essairai de mettre la documentation à jour à chque version stable. Je n'ai par contre pas essayé de version antérieure, puisque j'ai commencé par installer celle ci et que la carte semblait fonctionner correctement.


Next Previous Contents miro-5.html100644 5640 5640 6175 7003176450 12756 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI: Prérequis Next Previous Contents

5. Prérequis

Pour pouvoir installer/configurer votre carte Miro PCTV il vous faudra trois éléments essentiels :


Next Previous Contents miro-6.html100644 5640 5640 16771 7003176450 13002 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI: Configuration du pilote bttv Next Previous Contents

6. Configuration du pilote bttv

6.1 Installation de l'archive

Copiez le fichier bttv.X.Y.Z.tar.gz dans le répertoire /usr/src,décompressez l'archive .tar.gz (ou éventuellement .tar.bz2) et entrez dans le répertoire ainsi créé:

# mv bttv-X.Y.Z.tar.gz /usr/src/
# tar -zxvf bttv-X.Y.Z.tar.gz
# cd /usr/src/bttv/

A l'aide de votre éditeur de texte favoris, éditez le fichier driver/Makefile:


# vim driver/Makefile

Le fichier est organisé comme suit:

  1. La première section concerne le tuner de votre carte.
  2. La deuxième section concerne la carte en elle même.
  3. Le reste du fichier concerne différentes options pour la compilation des modules. Il en sera dit un mot plus loin.

Les tuners

Parmi les numéros de tuner qui sont commentés vous devez repérez le vôtre (contrairement à ce qui est indiqué dans le fichier Makefile). En général pour la France c'est le tuner Philips SECAM (Si certains possède une carte MIRO PCTV PCI avec autre chose que du Philips, qu'ils me contactent). Dans la version 0.6.4 de bttv il s'agit du numéro 3 Par conséquent sur la ligne TUNER= vous mettez :

TUNER=3

Vous pensiez vous en tirer sans mettre la main dans le camboui ? et bien détrompez vous, il va falloir attaquer le code source à grand coup de copier coller. Pas d'inquiétude, ce n'est rien de violent et ça se fait très bien avec la souris même si vous utilisez vim ;-)

Voici la section du fichier /usr/src/bttv/driver/tuner.c originale, telle qu'elle se présente lorsque vous décompactez l'archive bttv*.tar.gz Elle se trouve aux alentours de la ligne 73 (peut varier suivant les versions)


# vim driver/tuner.c



static struct tunertype tuners[] = {
           {"Temic PAL", TEMIC, PAL,
                16*140.25,16*463.25,0x02,0x04,0x01,0x8e,0xc2,623},
           {"Philips PAL_I", Philips, PAL_I,
                  16*140.25,16*463.25,0xa0,0x90,0x30,0x8e,0xc0,623},
           {"Philips NTSC", Philips, NTSC,
                  16*157.25,16*451.25,0xA0,0x90,0x30,0x8e,0xc0,732},
           {"Philips SECAM", Philips, SECAM,
                  16*168.25,16*447.25,0xA7,0x97,0x37,0x8e,0xc0,623,0x02},
           {"NoTuner", NoTuner, NOTUNER,
                   0        ,0        ,0x00,0x00,0x00,0x00,0x00,000},
           {"Philips PAL", Philips, PAL,
                  16*168.25,16*447.25,0xA0,0x90,0x30,0x8e,0xc0,623},
           {"Temic NTSC", TEMIC, NTSC,
                  16*157.25,16*463.25,0x02,0x04,0x01,0x8e,0xc2,732},
           {"TEMIC PAL_I", TEMIC, PAL_I,
              //  16*170.00,16*450.00,0xa0,0x90,0x30,0x8e,0xc2,623},
                  16*170.00,16*450.00,0x02,0x04,0x01,0x8e,0xc2,623},
                  
                                                                        };

L'opération va tout simplement consister à remplacer la première section concernant le Tuner TEMIC PAL par celui que nous allons utiliser, c'est à dire le Tuner PHILIPS SECAM. Après remplacement, la section découpée plus haut ressemblera à ceci:


static struct tunertype tuners[] = {
   //      {"Temic PAL", TEMIC, PAL,
   //               16*140.25,16*463.25,0x02,0x04,0x01,0x8e,0xc2,623},
           {"Philips SECAM", Philips, SECAM,
                    16*168.25,16*447.25,0xA7,0x97,0x37,0x8e,0xc0,623},
           {"Philips PAL_I", Philips, PAL_I,
                    16*140.25,16*463.25,0xa0,0x90,0x30,0x8e,0xc0,623},
           {"Philips NTSC", Philips, NTSC,
                    16*157.25,16*451.25,0xA0,0x90,0x30,0x8e,0xc0,732},
           {"Philips SECAM", Philips, SECAM,
                    16*168.25,16*447.25,0xA7,0x97,0x37,0x8e,0xc0,623,0x02},
           {"NoTuner", NoTuner, NOTUNER,
                    0        ,0        ,0x00,0x00,0x00,0x00,0x00,000},
           {"Philips PAL", Philips, PAL,
                    16*168.25,16*447.25,0xA0,0x90,0x30,0x8e,0xc0,623},
           {"Temic NTSC", TEMIC, NTSC,
                    16*157.25,16*463.25,0x02,0x04,0x01,0x8e,0xc2,732},
           {"TEMIC PAL_I", TEMIC, PAL_I,
                //  16*170.00,16*450.00,0xa0,0x90,0x30,0x8e,0xc2,623},
                    16*170.00,16*450.00,0x02,0x04,0x01,0x8e,0xc2,623},


                                        };

Vous pouvez très bien virer la section originale et copier/coller la version modifiée ci-dessus. Notez le changement, le premier Tuner a été commenté (à l'aide des doubles slashs) et on a inséré un nouveau Tuner PHILIPS SECAM.

Attention, 2 lignes ont été rajoutées, celle du Tuner et celle des paramètres numériques. Voilà, il ne vous reste plus qu'à sauvegarder et à quitter le fichier.

Les cartes

Repérez votre carte dans la liste des numéros commentés et reportez le numéro sur la ligne CARD= et insérez celui correspondant à votre matériel. Note: la carte Miro Pro correspond à une carte télé plus une carte radio branchée sur la carte Télé. Dans la plupart des cas il s'agit d'une carte Miro simple, sauf si vous êtes sûr d'avoir acheté le kit radio qui vient se greffer dessus. (Il vous faudra chercher une autre doc pour l'installation de la radio, je ne traite ici que de la partie Télé).

Vous rajoutez donc le numéro correspondant à la carte Miro (numéro 1 dans la version 0.6.4 de bttv) à la ligne CARD:

CARD=1

En fait ces deux lignes (TUNER=3 et CARD=1) spécifient que lors de l'insertion des modules dans le noyau, si aucun paramètre n'est spécifié, ces informations seront prises par défault.

Vous pouvez également changer les paramètres spécifiés dans la suite du fichier /usr/src/bttv/driver/Makefile mais c'est at your own risk. Par exemple, je me suis hasardé à enclenché l'option :

PLL=-DUSE_PLL=1 (ou 2)

Cela a eu pour conséquence un plantage irrémédiable du système; par plantage irrémédiable j'entends inaccessibilité de la machine que ce soit par réseau ou à l'aide des touches systèmes. Fatalement il faut remédier à coup de POWER ou RESET. Soyez donc prudent avec cette option.

La sortie de la commande /sbin/lspci me donne:


00:07.0 Multimedia video controller: Brooktree Corporation Bt848 TV with DMA push (rev 12)
Si ça ne vous rend pas quelque chose du type Brooktree Crp. Bt848a laissez tomber l'option -DUSE_PLL, c'est à dire laissez là à 0. Par contre n'hésitez pas à changer les paramètres d'environnement du système, c'est à dire compilateur, librairies, etc.

Voilà pour la phase de configuration. On peut maintenant passer à la compilation des différents modules.


Next Previous Contents miro-7.html100644 5640 5640 13377 7003176450 13002 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI: Compilation Next Previous Contents

7. Compilation

La compilation s'effectue avec la commande "make" dans le reprtoire principal du driver à savoir /usr/src/bttv/ (si vous avez décompacté votre archive dans /usr/src).

Attention, utilisateurs de gcc version 2.95 ou supérieure, il vous faudra faire attention aux FLAGS que vous soumetez à gcc. Vérifiez bien que votre noyau sera compilé avec l'option -fno-strict-aliasing. Jettez un oeil dans le fichier /usr/src/linux/Makefile, vous devriez trouver ceci:

# use '-fno-strict-aliasing', but only if the compiler can take it
CFLAGS += $(shell if $(CC) -fno-strict-aliasing -S -o /dev/null -xc /dev/null \
>/dev/null 2>&1; then echo "-fno-strict-aliasing"; fi)

Si vous trouvez ceci, alors tout va bien, en tapant make, le compilateur se verra automatiquement attribué le FLAG -fno-strict-aliasing

Dans le doute, ou si vous ne vous sentez pas l'âme d'un Jedi (c'est la mode en ce moment) de la compil, il vaut mieux pour l'instant compiler le noyau ainsi que les modules avec gcc 2.7.2.* pour s'assurer d'un bon fonctionnement et en tout cas éviter un bon nombre de problèmes.

Sur ma Debian Potato, gcc v2.7.2* se trouve dans le repertoire /usr/bin/gcc272. Ainsi, pour lancer la compilation des modules il faut faire:

# cd /usr/src/bttv/
# CC=/usr/bin/gcc272 make

Vous pouvez taper simplement make après avoir vérifié la version du compilateur:


# gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.7.2.3/specs
gcc version 2.7.2.3


# gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 19990906 (prerelease)
Le premier exemple est correct, la version du compilateur étant 2.7.2.3 mais le deuxième exemple correspond à gcc 2.95. Je n'ai malheureusement aucun renseignement concernant les autres compilateurs que gcc. Je ne pense pas qu'il puisse y avoir de gros problèmes, aussi la compilation devrait se faire sans problèmes quel que soit le compilateur que vous utilisiez.

Il n'y a plus qu'à attendre la fin de la compilation. Si pour une raison ou pour une autre vous n'êtes pas arrivé jusqu'ici sans problèmes reportez vous à la rubrique Problèmes.

La phase de compilation a du créer plusieurs fichiers dans le repertoire bttv/driver/ (extensions .o). Ces fichiers correspondent aux modules qu'il vous faudra insérer dans le noyau pour faire fonctionner votre carte.

Avant la prochaine étape (traditionnellement make install ou plutôt make ins) il vous faudra éditer le fichier driver/update qui est plutôt déroutant si vous voulez mon avis; non pas par sa syntaxe ou sa lisibilité, mais par son sens. En effet, celui ci écrase les paramètres spécifiés par défault dans le fichier Makefile, et rend donc obsolètes toutes vos précédentes modifications. Il faut donc l'éditer et remplacer les paramètres des modules (qui se trouvent en fin de fichier):

# vim /usr/src/bttv/driver/update

Voici cette section telle qu'elle apparait dans la version 0.6.4 de bttv:

# ... and load the new ones
xinsmod videodev
xinsmod i2c             verbose=1 scan=1 i2c_debug=0
test -f i2c_chardev.o && xinsmod i2c_chardev
xinsmod tuner           debug=0 type=5
xinsmod msp3400                debug=0 simple=0
#xinsmod tda8425
#xinsmod tea6300
xinsmod bttv            radio=0 card=15 #vidmem=0xf80

Il faut la modifier pour faire apparaître ceci:

# ... and load the new ones
xinsmod videodev
xinsmod i2c             verbose=1 scan=1 i2c_debug=0
test -f i2c_chardev.o && xinsmod i2c_chardev
xinsmod tuner           debug=0 type=3 #ICI MODIFICATION POUR LE TUNNER 3
#xinsmod msp3400                debug=0 simple=0
#xinsmod tda8425
#xinsmod tea6300
xinsmod bttv            radio=0 card=1 #ICI MODIFICATION POUR LA CARTE 1

En fait il n'est pas utile de remplacer les paramètres originaux puisque l'on a compilé les modules avec des options par défault, mais il ne faut surtout pas laissé ceux spécifiés par les developpeurs. Notez au passage que j'ai décommenté la ligne correspondant au module son.

Note aux possesseurs de carte son avec support en modules:

Il faut dès maintenant insérer vos modules de support pour votre carte son, car la manipulation suivante fait intervenir l'insertion d'un module (msp3400.o) qui dépend du support de la carte. Si vous ne le faites pas, ce ne sera pas bien grave, mais le script suivant échouera dans l'insertion de ce module et vous n'aurez pas de son avec votre image :-(

Je possède une carte son Creative SoundBlaster AWE 32, dans mon cas il faut donc faire:

/sbin/modprobe /lib/modules/`uname -r`/misc/sound.o
/sbin/modprobe /lib/modules/`uname -r`/misc/uart401.o
/sbin/insmod  /lib/modules/`uname -r`/misc/sb.o io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
/sbin/modprobe  /lib/modules/`uname -r`/misc/awe_wave.o


Next Previous Contents miro-8.html100644 5640 5640 12255 7003176450 12775 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI: Installation Next Previous Contents

8. Installation

Il ne vous reste normalement plus qu'à taper:

make ins
et à regarder. Dans le meilleur des cas, le script vous aura créé (et affiché) un paquet de fichier spéciaux dans le reprtoire /dev/, inséré les modules dans le noyau avec les bons paramètres et copié ces modules dans le repertoire /lib/modules/version_du_noyau/misc/. (en fait, je n'ai pas encore compris pourquoi, mais il ne copie pas les module dans le repertoire, il se contente de les insérer; ce problème est détaillé un peu plus loin).

Si quelque chose c'est mal passé, vous devez avoir un message d'erreur à l'écran ET dans les logs. Il vous faudra reporter ces messages d'erreur pour toute demande d'aide aux auteurs du pilote ou bug report. Reportez vous tout d'abord à la rubrique Problèmes.

Si vous n'avez pas de message d'erreur à l'écran et si votre machine ne s'est pas figée, tapez lsmod et vérifiez que vous avez les modules suivants dans votre liste:


Module                  Size  Used by

bttv                   34504   0  (unused)
msp3400                12640   0  (unused)
tuner                   2348   1 
i2c                     3712   3  [bttv msp3400 tuner]
videodev                2432   2  [bttv]

Regardez aussi dans les fichiers de log (généralement dans le repertoire /var/log/). Le fichier s'appelle normalement message et les dernières lignes doivent contenir le résultat de vos manipulations. Repérez tout d'abord si vous avez une erreur (du type Failed, Error, Conflict, Timeout, etc.) et si c'est le cas reportez vous à la section Problèmes Si tout s'est bien passé vous devriez avoir quelque chose comme:

Oct  6 17:21:29 recup kernel: Linux video capture interface: v0.01 ALPHA
Oct  6 17:21:29 recup kernel: i2c: initialized (i2c bus scan enabled)
Oct  6 17:21:29 recup kernel: i2c: driver registered: tuner
Oct  6 17:21:29 recup kernel: i2c: driver registered: msp3400
Oct  6 17:21:29 recup kernel: bttv: Host bridge 82437FX Triton PIIX
Oct  6 17:21:29 recup kernel: bttv0: Brooktree Bt848 (rev 18) bus: 0, devfn: 56, irq: 7, memory: 0xfedfb000.
Oct  6 17:21:29 recup kernel: bttv: 1 Bt8xx card(s) found.
Oct  6 17:21:29 recup kernel: bttv0: model: BT848A(MIRO PCTV)
Oct  6 17:21:29 recup kernel: i2c: bus registered: bt848-0
Oct  6 17:21:29 recup kernel: i2c: scanning bus bt848-0: found device at addr=0xc0
Oct  6 17:21:29 recup kernel: i2c: device attached: tuner (addr=0xc0, bus=bt848-0, driver=tuner)

Vous devez obligatoirement trouver quelque chose en rapport avec vos insertions de modules, que l'opération se soit déroulée correctement ou non.

Dans mon cas, je ne sais pas pourquoi, mais les modules ne sont pas copiés dans le repertoire adéquat (et si quelqu'un trouve pourquoi, qu'il m'écrive). Aussi, suffit il de taper:

# cp /usr/src/bttv/driver/*.o /lib/modules/`uname -r`/misc/
# depmod -a
Voilà vos modules correctement rangés. La commande depmod -a sert à établir les dépendances entre modules. En cas d'erreur à ce niveau vous reporter à la section Problèmes

J'ai rédigé un script que je lance lorsque je veux regarder la télé et qui me charge les modules nécessaires. Il est possible de paramétrer ceci avec modprobe (man modprobe), chacun son truc:

#!/bin/bash
insmod /lib/modules/`uname -r`/misc/videodev.o
insmod /lib/modules/`uname -r`/misc/i2c.o verbose=1 scan=1 i2c_debug=0
insmod /lib/modules/`uname -r`/misc/tuner.o debug=0 
insmod /lib/modules/`uname -r`/misc/msp3400.o
insmod /lib/modules/`uname -r`/misc/bttv.o radio=0 card=1 pll=0

Et pareil pour décharger les modules:

rmmod msp3400
rmmod bttv
rmmod videodev
rmmod tuner
rmmod i2c

Pous ceux qui n'ont pas (encore) eu de problèmes ils n'auront plus qu'à installer le programme xawtv:

apt-get install xawtv   # pour une Debian
rpm -i xawtv*rpm        # pour une Red Hat

ou encore compiler soi même le programme en se procurant la dernière version à cet endroit. Une version de xawtv est disponible dans l'archive bttv, en tapant dans le repertoire /usr/src/bttv.

# make apps


Next Previous Contents miro-9.html100644 5640 5640 1163 7003176450 12752 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI: Tests! Next Previous Contents

9. Tests!


Next Previous Contents miro.html100644 5640 5640 3363 7003176450 12610 0ustar jfellmanjfellman Guide d'installation de la Miro PCTV PCI Next Previous Contents

Guide d'installation de la Miro PCTV PCI

Joaquim Fellmann, joaquim@hrnet.fr

v0.1, 5 octobre 1999


Ce document indique la procédure d'installation d'une carte Télé Miro (Pinacle) PCTV PCI dans un environnement Linux 2.2

1. Statut de ce document

2. Sources

3. Mise en garde

4. Validité de ce document

5. Prérequis

6. Configuration du pilote bttv

7. Compilation

8. Installation

9. Tests!

10. Problèmes...ça marche pas


Next Previous Contents