View previous topic :: View next topic |
Author |
Message |
Raphux n00b
Joined: 11 Sep 2004 Posts: 41 Location: Paris
|
Posted: Mon Sep 27, 2004 6:23 pm Post subject: [Gnomemeeting]Un user ne peut de détecter la Webcam (résol |
|
|
Bonjour,
je rencontre un problème avec gnomemeeting. Ce logiciel n'arrive pas à détecter ma webcam quand je le lance avec un user normal. Mais si je lance ce soft avec le compte root, tout se déroule normalement.
Pour les droits,
- les groupes de mon utilisateur:
Code: | $ groups
tty disk wheel audio games users
|
-les droits sur le périphérique:
Code: | $ ls -la /dev/video*
lrwxrwxrwx 1 root users 6 sep 27 18:56 /dev/video -> video0
crw------- 1 raphux sys 81, 0 sep 10 00:17 /dev/video0
crw------- 1 raphux sys 81, 1 sep 10 00:17 /dev/video1
|
Mes droits sont donc à priori bons d'après moi.
Faut-il des droits particuliers pour faire de la détection de périphérique?
Avez-vous une idée sur le pourquoi du comment?
Last edited by Raphux on Thu Sep 30, 2004 12:15 pm; edited 1 time in total |
|
Back to top |
|
|
Raphux n00b
Joined: 11 Sep 2004 Posts: 41 Location: Paris
|
Posted: Tue Sep 28, 2004 11:25 pm Post subject: On avance.... |
|
|
Re-bonjour!
N'attendant pas patiemment une réponse, j'ai creusé un peu le problème, et ai trouvé une piste. Seuleument, il me manque encore quelques explications.
Quand je branche ma webcam, un périphérique est crée dans /proc/bus/usb/00x/ avec x = n° du controlleur USB je pense, j'en ai 3, deux usb1 et un usb2:
Code: | 0000:00:13.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 50)
0000:00:13.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 50)
0000:00:13.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51)
|
Seuleument voilà, le périphe qui est créé dans /proc/bus/usb/003 dans mon cas, est créé avec comme user et group "root", et seuleument la lecture pour group et other:
Code: | root@raphux 003 # ls -la
total 0
dr-xr-xr-x 2 root root 0 sep 28 00:42 .
drwxr-xr-x 5 root root 0 sep 28 00:42 ..
-rw-r--r-- 1 root root 43 sep 28 21:58 001
-rw-r--r-- 1 root root 52 sep 28 21:58 002
-rw-r--r-- 1 root root 527 sep 29 01:13 004 <=== la webcam |
Une fois que j'ai modifié les droits comme suit, je peux accéder sans problème à la webcam avec gnomemeeting:
Code: | root@raphux 003 # chmod 666 004
root@raphux 003 # ls -la
total 0
dr-xr-xr-x 2 root root 0 sep 28 00:42 .
drwxr-xr-x 5 root root 0 sep 28 00:42 ..
-rw-r--r-- 1 root root 43 sep 28 21:58 001
-rw-r--r-- 1 root root 52 sep 28 21:58 002
-rw-rw-rw- 1 root root 527 sep 29 01:13 004 |
Alors voilà, ce que je cherche faire maintenant, c'est d'indiquer à mon système avec quels droits / groupe / user créer le "truc" (je sais pas comment appeller ca.. un fichier?) dans /proc/bus/usb/00x .
Auriez-vous un lien? un manuel? Merci |
|
Back to top |
|
|
robinhood Apprentice
Joined: 21 Jun 2004 Posts: 290
|
Posted: Wed Sep 29, 2004 12:54 am Post subject: |
|
|
tu utilise udev ou devfs ? Sinon regarde dans le fichier /etc/group, il y a peut etre une entree specifique (je pense au groupe video en particulier) |
|
Back to top |
|
|
Raphux n00b
Joined: 11 Sep 2004 Posts: 41 Location: Paris
|
Posted: Wed Sep 29, 2004 11:27 am Post subject: |
|
|
Bonjour, et merci de cette réponse . J'utilise UDEV. Mais je ne vois pas le problème avec mon /etc/group, puisque le périph qui est créé dans /dev appartient à mon utilisateur (cf premier post), sinon, mon user n'est en effet pas dans le group vidéo (seul le périphérique Nvidia semble appartenir à ce groupe et non le device correspondant à la webcam).
Ce qu'il me faudrait, c'est modifier les droits / user / group attribués lors de la création de devices dans /dev et /proc.
Auriez-vous une idée? |
|
Back to top |
|
|
robinhood Apprentice
Joined: 21 Jun 2004 Posts: 290
|
Posted: Wed Sep 29, 2004 12:02 pm Post subject: |
|
|
avec udev, tu peut fixer les permissions de tes nodes dans /etc/udev/udev.permissions :
Code: | # v4l devices
video*:root:video:0660
radio*:root:video:0660
winradio*:root:video:0660
vtx*:root:video:0660
vbi*:root:video:0660
video/*:root:video:0660 <---------- là
vttuner:root:video:0660
v4l/*:root:video:0660 |
fait un essai mais je suis pas sur |
|
Back to top |
|
|
marvin rouge Veteran
Joined: 01 Aug 2004 Posts: 1422 Location: Villa Lumierrante, Zonelibre
|
|
Back to top |
|
|
Talosectos Guru
Joined: 31 Aug 2004 Posts: 329 Location: Bugey-Libre
|
Posted: Wed Sep 29, 2004 3:57 pm Post subject: |
|
|
Raphux wrote: | Bonjour, et merci de cette réponse . J'utilise UDEV. Mais je ne vois pas le problème avec mon /etc/group, puisque le périph qui est créé dans /dev appartient à mon utilisateur (cf premier post), sinon, mon user n'est en effet pas dans le group vidéo (seul le périphérique Nvidia semble appartenir à ce groupe et non le device correspondant à la webcam).
Ce qu'il me faudrait, c'est modifier les droits / user / group attribués lors de la création de devices dans /dev et /proc.
Auriez-vous une idée? |
tu peux peut être jeter un oeil du coté de console.perms Code: | vim /etc/security/console.perms |
_________________ Comité de lutte contre le language sms et les fautes volontaires
Utilisez la fonction recherche ! |
|
Back to top |
|
|
marvin rouge Veteran
Joined: 01 Aug 2004 Posts: 1422 Location: Villa Lumierrante, Zonelibre
|
Posted: Wed Sep 29, 2004 4:16 pm Post subject: |
|
|
Quote: | tu peux peut être jeter un oeil du coté de console.perms
vim /etc/security/console.perms |
si ca marche en passant par console.perms ca m'interresse.
Mais j'y crois pas. Quand tu branches le bidule usb (webcam dans le cas de raphux, scanner dans mon cas) y'a un fichier qui est créé dans /proc/bus/usb/xxx/ avec xxx qui correspond à la prise usb utilisee (si j'ai bien compris). Le fichier c'est un truc genre "002". Tu débranches et tu rebranches ca detruit 002 et ca recree 003. Et c'est sur ce fichier la qu'il faut les droits (utilisateur ou groupe), pas sur un fichier dans /dev (d'ailleurs avec mon scanner j'ai aucun fichier qui se crée dans /dev).
|
|
Back to top |
|
|
Raphux n00b
Joined: 11 Sep 2004 Posts: 41 Location: Paris
|
Posted: Wed Sep 29, 2004 9:45 pm Post subject: |
|
|
robinhood wrote: |
fait un essai mais je suis pas sur |
Ca n'a pas marché. Nan, vraiment, le problème ne se résoud que lorsque je modifie les droits dans /proc/bus/usb/00x . Mon /dev n'a plus besoin d'être modifié après la modif dans /proc. Merci quand même de m'avoir aidé !!
marvin rouge > Aaah, ca ressemble plus à ca. J'ai un script sur mon system (/etc/hotplug/usb/libusbscanner) qui ai CENCER modifier les droits dans /proc pour mon scanner. Mais je viens de remarquer un truc assez troublant : mon scanner qui marchait bien hier, lors de son installation, ne marche plus aujourd'hui! Je commence un peu à regarder... Même problème!! Les droits dans /proc ne sont pas les bons:
Code: | -rw-r--r-- 1 root root 57 Sep 29 23:11 /proc/bus/usb/001/002 |
je débranche puis rebranche le scanner pour voir, paf! les droits redeviennent bon! :
Code: | -rw-rw---- 1 root scanner 57 Sep 29 23:17 004 | (increment de 2 , pas compris pourquoi...). Il y a donc bien eu quelque "chose" qui a modifié les droits sur le périphérique dans /proc lors du branchement de mon scanner, "chose" qui ne se fait pas quand je rebranche ma webcam. je pense que cette "chose" est le script cité un peu plus haut, dont voici le contenu:
Code: | # cat /etc/hotplug/usb/libusbscanner
#!/bin/sh
# This file is part of sane-backends.
#
# This script changes the permissions and ownership of a USB device under
# /proc/bus/usb to grant access to this device to users in the scanner group.
#
# Ownership is set to root:scanner, permissions are set to 0660.
#
# Arguments :
# -----------
# ACTION=[add|remove]
# DEVICE=/proc/bus/usb/BBB/DDD
# TYPE=usb
if [ -z "${DEVICE}" ] ; then
IF=$(echo ${DEVPATH} | sed 's:\(bus/usb/devices/\)\(.*\)-\(.*\):\2:')
if [ -r /sys/${DEVPATH}/devnum ]; then
DEV=$(cat /sys/${DEVPATH}/devnum)
else
DEV=1 # you'll have to adjust this manually for kernel < 2.6.6
fi
DEVICE=$(printf '/proc/bus/usb/%.03d/%.03d' ${IF} ${DEV})
fi
if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
chown root:scanner "$DEVICE"
chmod 0660 "$DEVICE"
fi
# That's an insecure but simple alternative
# Everyone has access to the scanner
# if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
# chmod 0666 "$DEVICE"
# fi
|
(Le truc qui me taraude, c'est que ce script ne se soit pas executé dès le démarrage de mon system, et que j'ai du débrancher puis rebrancher mon scanner.)
Pour en revenir à la webcam, il suffit donc à mon avis de trouver le script equivalent, qui modifie les droits quand le périphérique est detecté. Mais je ne sais pas comment est appellé ce script. Hotplug?
On avance.. on avance...
PS: marvin rouge > j'ai un scanner epson 1670 que j'ai reussi à faire marcher. Si tu as une question, j'essayerai d'y répondre! |
|
Back to top |
|
|
marvin rouge Veteran
Joined: 01 Aug 2004 Posts: 1422 Location: Villa Lumierrante, Zonelibre
|
Posted: Wed Sep 29, 2004 10:14 pm Post subject: |
|
|
Quote: | (Le truc qui me taraude, c'est que ce script ne se soit pas executé dès le démarrage de mon system, et que j'ai du débrancher puis rebrancher mon scanner.) |
j'ai le meme genre de blague sur les cles usb ou DD externes : au boot les devices sont pas créés correctement, faut les brancher après le boot. A mon avis y'a 2 approches : soit c'est un periph externe qui bouge pas (genre scanner sur une station) et faut trouver une solution (script dans local ? ), soit c'est un periph genre cle usb sur portable qui se branche après le boot et la pas de problème de creation de device avec hotplug.
Quote: | PS: marvin rouge > j'ai un scanner epson 1670 que j'ai reussi à faire marcher. Si tu as une question, j'essayerai d'y répondre! |
J'ai un minolta scandual IV (scanner à negatifs). C'est pas reconnu par Sane ... donc faudrait que je me paye VueScan.
Bon, pour en revenir aux droits. Si j'ai bien compris, faut brancher, et ensuite Code: | # cat /proc/bus/usb/device
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=132b ProdID=000a Rev= 0.01
S: Manufacturer=KONICA MINOLTA
S: Product=DiMAGE Scan Dual4
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=125us
E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
De la on en sort Vendor=132b ProdID=000a, qu'il faut mettre en définition dans /etc/hotplug/usb.usermap
Code: | #cat /etc/hotplug/usb.usermap
scandual 0x0003 0x132b 0x000a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
|
et ensuite creer un script correspondant à la définition:
Code: | #ls -la scandual
-rwxr-xr-x 1 root root 165 sep 20 10:43 scandual
#cat scandual
#!/bin/bash
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
chown root "${DEVICE}"
chgrp scanner "${DEVICE}"
chmod 660 "${DEVICE}"
fi
|
le probleme c'est que chez moi ca marche pas ...
Code: | #ls -l /proc/bus/usb/001/004
-rw-r--r-- 1 root root 57 sep 30 00:06 004 |
pfff .... |
|
Back to top |
|
|
Raphux n00b
Joined: 11 Sep 2004 Posts: 41 Location: Paris
|
Posted: Thu Sep 30, 2004 1:05 am Post subject: |
|
|
Et bien ta méthode marche!!!
Voilà ce que j'ai fait, suivant tes indications:
J'ai modifié le fichier /etc/hotplug/usb.usermap , et ai ajouté la ligne suivante :
Code: | raphux hotplug # cat /etc/hotplug/usb.usermap
# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
quickcam.sh 0x0003 0x046d 0x08b0 0x0000 0x0000 0x0000 0x0000 0x0000 0x000A 0x00FF 0x0000 0x00000000
|
Déjà là, j'ai rencontré un problème: impossible de trouver comment obtenir le match_flags, bcdDevice_lo, bcdDevice_h et driver_info. J'ai rempli au hazard de réponses google.
Ensuite, j'ai créé le fichier suivant:
Code: | raphux usb # cat /etc/hotplug/usb/quickcam.sh
#!/bin/sh
#Script a lancer dès e l'on connecte une QuickCam"
#Créé par Eric Seigne, le 14/01/2004 pour RyXéo: <eric.seigne at ryxeo.com, modifé par Raphux"
chmod g+w `lsusb | grep QuickCam | cut -d ':' -f1 | awk '{print "/proc/bus/usb/"$2"/"$4}'`
chown :video `lsusb | grep QuickCam | cut -d ':' -f1 | awk '{print "/proc/bus/usb/"$2"/"$4}'`
|
Comme indiqué dans le fichier, je me suis inspiré d'un script pour un scanner. Le script original est dispo ici: http://www.abul.org/article121.html
J'ai chmod +x ce fichier, et ai redemarré hotplug. Après débranchement puis rebranchement, les droits et group sont bien attribués! Résultat: ca marche!
Reste à voir si au redemarrage de ma machine hotplug executera aussi ce script! |
|
Back to top |
|
|
marvin rouge Veteran
Joined: 01 Aug 2004 Posts: 1422 Location: Villa Lumierrante, Zonelibre
|
Posted: Thu Sep 30, 2004 5:56 am Post subject: |
|
|
cool !
chez moi ca marche toutjours pas. je vais tester ton script.
+
EDIT : ca marche, meme apres un reboot ...
|
|
Back to top |
|
|
Raphux n00b
Joined: 11 Sep 2004 Posts: 41 Location: Paris
|
Posted: Thu Sep 30, 2004 12:15 pm Post subject: |
|
|
De même, tout marche bien chez moi aussi, le problème que j'avais avec le script qui ne s'éxecutait pas au demarrage venait du fait que le daemon hotplug n'était pas lancé, dans aucun runlevel! (j'ai honte )
J'ai fait un petit coup de rc-update en mettant hotplug dans le runlevel default, et hop!! Tout marche correctement now!
Merci à vous tous! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|