#1 Le 21/02/2007, à 13:04
- Alain128
webcam + carte tv et /dev/video
Salut,
je suis sous edgy j'ai une webcam creative et une carte tv qui marche impec. Le seul problème c'est quand je démarre mon PC l'un se met en /dev/video0 et l'autre en /dev/video1 de façon aléatoire donc mes commandes du type xdtv /dev/video0 me lance soit la tv soit la webcam... C'est pas le top. Y a-t-il moyen de fixer la webcam à video0 et la carte tv à video1? ou l'inverse;)
Merci d'avance.
Hors ligne
#2 Le 21/02/2007, à 13:13
- ValVolt
Re : webcam + carte tv et /dev/video
Tu trouveras ton bonheur ici
Udev a ete cree pour ce probleme. Citation de la doc:
Assume you own two USB storage devices: a digital camera and a USB flash disk. These devices are typically assigned device nodes /dev/sda and /dev/sdb but the exact assignment depends on the order which they were originally connected. This may cause problems to some users, who would benefit greatly if each device could be named persistently every time, e.g. /dev/camera and /dev/flashdisk.
Amuse toi bien
Hors ligne
#3 Le 21/02/2007, à 16:31
- Alain128
Re : webcam + carte tv et /dev/video
Merci mais je vois bien que c'est par là mais j'y comprends rien. Peux-t-on m'aider s'il vous plait?
Hors ligne
#4 Le 21/02/2007, à 17:06
- ValVolt
Re : webcam + carte tv et /dev/video
Essaie en lisant calmement
Tiré de la doc:
Rule writing
Rule files and semanticsWhen deciding how to name a device and which additional actions to perform, udev reads a series of rules files. These files are kept in the /etc/udev/rules.d directory, and they all must have the .rules suffix.
Default udev rules are stored in /etc/udev/rules.d/50-udev.rules. You may find it interesting to look over this file - it includes a few examples
Et:
Examples
USB PrinterI power on my printer, and it is assigned device node /dev/lp0. Not satisfied with such a bland name, I decide to use udevinfo to aid me in writing a rule which will provide an alternative name:
# udevinfo -a -p $(udevinfo -q path -n /dev/lp0)
looking at the device chain at '/sys/devices/pci0000:00/0000:00:02.1/usb3/3-3':
BUS=="usb"
SYSFS{manufacturer}=="EPSON"
SYSFS{product}=="USB Printer"
SYSFS{serial}=="L72010011070626380"My rule becomes:
BUS=="usb", SYSFS{serial}=="L72010011070626380", SYMLINK+="epson_680"
En gros: regarde les exemples, applique les a ta webcam et a ta carte TV, cree les fichiers adequat en te basant sur les exemples et en les mettant dans /etc/udev/rules.d, et profites en pour devenir un pro des flux /dev
Dernière modification par ValVolt (Le 21/02/2007, à 17:07)
Hors ligne
#5 Le 21/02/2007, à 23:29
- Alain128
Re : webcam + carte tv et /dev/video
j'ai 23 fichiers dans ce répertoire plus un readme. J'y comprends rien. Et si il faut assigner manuellement (ce que je pense être ce qu'il faut faire) je ne sais pas quoi associer à video0: ma webcam c'est quoi et ma carte télé pour le noyau?
Faut m'aider s'il vous plait.
Hors ligne
#6 Le 22/02/2007, à 09:41
- ValVolt
Re : webcam + carte tv et /dev/video
...
Le prends pas mal, mais j'ai l'impression que tu ne cherches pas beaucoup par toi-meme. Faut pas croire, y'a trois jours je ne savais pas ce que c'etait, un demon udev !
Bon. En copiant collant l'exemple et en le reprenant pour toi:
Tape:
udevinfo -a -p $(udevinfo -q path -n /dev/video0)
Ca va te donner diverses infos sur ce qui est connecté en ce moment à /dev/video0, dont des trucs qui ressemblent a:
BUS=="usb"
SYSFS{manufacturer}=="Creative"
SYSFS{product}=="Webcam"
SYSFS{serial}=="L72010011070626380"
Ta webcam sera probablement sur le bus USB et ta carte tele sur le bus PCI, verifie par toi-meme ou colle ici le resultat des commandes
udevinfo -a -p $(udevinfo -q path -n /dev/video0)
et
udevinfo -a -p $(udevinfo -q path -n /dev/video1)
Une fois que tu as ces infos, tu crees un nouveau fichier dans /etc/udev/rules.d/ (appelle le, je sais pas, webcam_et_tunerTV) dans lequel tu ecris deux regles, une pour ta cam et une pour le tuner:
BUS=="<monBus>", SYSFS{serial}=="<leSerial>", SYMLINK+="<monFlux>"
Remplace <monBus> par le bus detecte par udevinfo (probablement USB pour la cam et PCI pour le tuner), remplace <leSerial> par le numero "serial" donné par udevinfo, et <monFlux> par le flux de sortie auquel tu veux associer ton peripherique. Si tu appelles le flux webcam, alors ce peripherique sera toujours associe au lien /dev/webcam.
Au final, si mes assomptions sont justes, ca te donnera un truc du genre:
BUS=="USB", SYSFS{serial}=="<leSerialDeLaCam>", SYMLINK+="webcam"
BUS=="PCI", SYSFS{serial}=="<leSerialDuTuner>", SYMLINK+="tunerTV"
Sauves ce fichier, redemmare le demon udev (un reboot fera l'affaire). Tu devrais desormais avoir deux fichiers: /dev/webcam et /dev/tunerTV
Maintenant, /dev/webcam sera toujours associe a ta cam, et /dev/tunerTV au tuner.
Cette solution ne fait pas exactement ce que tu demandais au depart, mais c'est une solution elegante, tu ne trouves pas ? C'est toujours plus parlant que de vilains /dev/video234234 completement anonymes !
Dernière modification par ValVolt (Le 22/02/2007, à 09:43)
Hors ligne
#7 Le 22/02/2007, à 11:43
- Alain128
Re : webcam + carte tv et /dev/video
Je te remercie pour ton aide, je vais m'y employer. Mais au vu de ce que tu m'as écris, je reste persuader que je n'aurais jamais trouver tout ça. Donc encore merci et au boulot pour moi.
Hors ligne
#8 Le 22/02/2007, à 11:50
- ValVolt
Re : webcam + carte tv et /dev/video
Pas de soucis, ca m'aura oblige a faire une redaction correcte
Reviens nous donner le resultat de tes decouvertes !
Hors ligne
#9 Le 22/02/2007, à 12:11
- Alain128
Re : webcam + carte tv et /dev/video
Je n'ai pas le serial de mes périphériques, il me renvoit pour la cam:
looking at device '/class/video4linux/video1':
KERNEL=="video1"
SUBSYSTEM=="video4linux"
SYSFS{name}=="Creative Labs Webcam 5"
SYSFS{dev}=="81:1"
Et rien d'autre...
Hors ligne
#10 Le 22/02/2007, à 13:58
- ValVolt
Re : webcam + carte tv et /dev/video
intéressant... et si tu testais en créant le lien non pas avec le serial, mais avec le name ? Un truc genre:
BUS=="USB", SYSFS{name}=="Creative Labs Webcam 5", SYMLINK+="webcam"
Y'a pas de raison que ca ne fonctionne pas
Hors ligne
#11 Le 22/02/2007, à 14:16
- Alain128
Re : webcam + carte tv et /dev/video
Ben ca fonctionne pas...?
Il me laisse un video0 et un video1 et pas de tuner ou webcam...
Hors ligne
#12 Le 22/02/2007, à 14:30
- ValVolt
Re : webcam + carte tv et /dev/video
tu as reboote la machine ?
Peux-tu copier-coller ici le contenu du fichier dans lequel tu as ecrit tes regles ?
Essaie de lancer ces commandes:
udevcontrol reload_rules
udevtrigger
et de regarder si ca te cree tes /dev/webcam et /dev/tunerTV ?
Dernière modification par ValVolt (Le 22/02/2007, à 14:32)
Hors ligne
#13 Le 22/02/2007, à 15:51
- Alain128
Re : webcam + carte tv et /dev/video
oui j'ai rebooté
j'ai créé un fichier contenant:
BUS=="USB", SYSFS{name}=="Creative Labs Webcam 5", SYMLINK+="webcam"
BUS=="PCI", SYSFS{name}=="BT878 video _Hauppauge _bt878__", SYMLINK+="tunerTV"
tes deux lignes de commande ne créent pas les dev/...
Hors ligne
#14 Le 22/02/2007, à 16:36
- ValVolt
Re : webcam + carte tv et /dev/video
Bon, on va debugger
Que te donne la commande suivante ?
cat /log/messages | grep udev
Hors ligne
#15 Le 22/02/2007, à 17:25
- Alain128
Re : webcam + carte tv et /dev/video
aucun fichier de ce type...
je signale que j'ai pas de répertoire log...
Hors ligne
#16 Le 22/02/2007, à 17:40
- ValVolt
Re : webcam + carte tv et /dev/video
cat /var/log/messages | grep udev
Hors ligne
#17 Le 24/02/2007, à 09:37
- Alain128
Re : webcam + carte tv et /dev/video
cat /var/log/messages | grep udev
ne me renvoie rien...?
Hors ligne
#18 Le 26/02/2007, à 11:10
- ValVolt
Re : webcam + carte tv et /dev/video
Salut, non non je ne t'ai pas oublie
Bon, alors piste suivante: peux-tu copier/coller le contenu du fichier que tu as cree avec les regles, ainsi que son nom ?
En gros:
cat /etc/udev/rules.d/<mon-fichier>
Il y a peut etre des erreurs de syntaxe, d'espaces, d'accents...
Dernière modification par ValVolt (Le 26/02/2007, à 11:11)
Hors ligne
#19 Le 26/02/2007, à 11:24
- Alain128
Re : webcam + carte tv et /dev/video
voila:
alain@alain-desktop:~$ cat /etc/udev/rules.d/webcam_et_tunerTV
BUS=="USB", SYSFS{name}=="Creative Labs Webcam 5", SYMLINK+="webcam"
BUS=="PCI", SYSFS{name}=="BT878 video _Hauppauge _bt878__", SYMLINK+="tunerTV"
alain@alain-desktop:~$
C'est tout ce que j'ai fait. Par contre comment linux sait-il qu'il doit utiliser ce fichier? le seul fait qu'il existe dans ce répertoire?
Et j'en profite pour te remercier de ton aide.
Hors ligne
#20 Le 26/02/2007, à 13:32
- ValVolt
Re : webcam + carte tv et /dev/video
Pas de soucis
Alors alors... dans le repertoire /etc/udev/rules.d, tous les fichiers ont le format suivant:
NN-nom.rules
A mon avis, NN correspond a l'ordre dans lequel les regles sont chargées (00 pour les premieres, 99 pour les dernieres). Aussi je pense que dans notre cas et a vue de nez, 86 fera l'affaire (on cherche un gros numero pour pas mettre en l'air les initialisations precedentes, et pas trop petit parce que les fichiers qui se chargent en 99 ont sans doute une bonne raison de se lancer en dernier).
A mon avis toujours, si le fichier ne se termine pas par .rules, il sera ignoré par udev.
Donc, je te propose de renommer ton fichier:
cd /etc/udev/rules.d
sudo mv webcam_et_tunerTV 86-webcam_et_tunerTV.rules
Maintenant, voici un exemple de ce que tu trouves dans 60-symlinks.rules:
# Create /dev/pilot symlink for Palm Pilots
KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \
SYMLINK+="pilot"
Je compare a ce que tu as mis dans ton fichier:
BUS=="USB", SYSFS{name}=="Creative Labs Webcam 5", SYMLINK+="webcam"
A vue de nez ca a n'a pas l'air incompatible. Donc essaie de relancer udev apres avoir renomme ton fichier et tiens moi au courant !
Bonne chance
Hors ligne
#21 Le 27/02/2007, à 03:13
- Acp
Re : webcam + carte tv et /dev/video
Bonjour à vous !
Dans le même état d'esprit il y a aussi ça : http://ubuntufr.free.fr/?p=27
Pour trouver le vendor et le device à partir de l'adresse 00000: ..., cherchez le dans le repertoire sys si vous ne le trouvez pas dans /devices (pour moi j'ai trouvé ma carte tuner dans bttv)
Après vous pourrez faire un joli lien du type tvtime --device=/dev/tv sur votre bureau
Bon courage à vous !
Voyez ici aussi s'il faut : http://forum.ubuntu-fr.org/viewtopic.php?id=44521 et marquez le message en résolu
Dernière modification par Acp (Le 27/02/2007, à 03:34)
Pas de signature, trop pauvre pour m'en acheter une p^^q
[[utilisateurs:Acp]] <- même pas un lien correct :D (Y a plus de jeunesse)
http://doc.ubuntu-fr.org/utilisateurs/acp
Hors ligne
#22 Le 28/02/2007, à 18:03
- Alain128
Re : webcam + carte tv et /dev/video
Ca ne marche toujours pas. Ni en suivant les autres liens, je désespère...
Hors ligne
#23 Le 05/03/2007, à 17:28
- Acp
Re : webcam + carte tv et /dev/video
Merf sinon j'ai essayé une mini feinte :
Je me suis dit que si je fixais en video1 la webcam alors le video0 serait forcement libre.
Donc j'ai ajouté dans le fichier .rules situé dans /etc/udev/rules.d :
KERNEL=="video?", BUS=="usb", SYSFS{model}=="Logitech QuickCam Communicate S", SYMLINK+="video1"
Bien sûr c'est pour ma config, pour toi ça devrait donner :
KERNEL=="video?" BUS=="USB", SYSFS{name}=="Creative Labs Webcam 5", SYMLINK+="video1"
Sachant que je ne branche rien d'autre, c'est un peu bourrin mais la méthode fonctionne.
En effet, j'avais un problème et le tuner refusait de se mettre en video0 et rien ne fonctionnait, maintenant,
ça roule
Tu peux aussi essayer la méthode dans l'autre sens, forcer le tuner en video0 au cas où.
Dernière modification par Acp (Le 05/03/2007, à 17:31)
Pas de signature, trop pauvre pour m'en acheter une p^^q
[[utilisateurs:Acp]] <- même pas un lien correct :D (Y a plus de jeunesse)
http://doc.ubuntu-fr.org/utilisateurs/acp
Hors ligne
#24 Le 05/03/2007, à 19:52
- Alain128
Re : webcam + carte tv et /dev/video
merci pour ton aide mais ça ne marche pas
Hors ligne
#25 Le 05/03/2007, à 21:33
- ValVolt
Re : webcam + carte tv et /dev/video
Alain,
Alors renomme encore une fois ton fichier:
cd /etc/udev/rules.d
sudo mv 86-webcam_et_tunerTV 50-webcam_et_tunerTV.rules
Et si ca ne marche toujours pas, ben je seche. Regarde s'il n'y a pas une faute de frappe quelque part...
Hors ligne