J'ai cinq caméras USB, même marque, même modèle (Canyon CNR-FWC120H). Ils sont utilisés pour surveiller différentes scènes 24/7. Je dois en quelque sorte identifier quelle caméra est la console Linux (Debian) ou par programme (n'importe quelle langue).
J'ai essayé de regarder la sortie de lsusb -vvv
, il y a un champ iSerial
qui devrait être différent pour chaque caméra mais malheureusement ce fabricant a décidé de ne pas déranger et toutes les caméras ont la même série à cet endroit:200901010001
Existe-t-il un autre moyen d'identifier quel appareil photo est indépendamment des ports USB auxquels ils sont connectés, car malheureusement dans mon scénario spécifique, je ne peux pas compter sur le fait que le même appareil photo sera toujours connecté au même port.
MISE À JOUR Après quelques discussions dans les commentaires, je me rends compte que c'est mission impossible. Alors oubliez le dernier paragraphe ou si vous avez une idée ingénieuse, n'hésitez pas à le présenter. Je suis maintenant intéressé si je pouvais identifier le port USB auquel l'appareil est connecté; J'utilise les ports USB intégrés sur la carte mère et les cartes contrôleur PCI USB supplémentaires pour accueillir les caméras avec une bande passante suffisante. J'aurais besoin d'identifier le port de manière unique, et le numéro / l'identification du port ne devrait pas changer si, par exemple, la machine redémarre et pour une raison quelconque, les contrôleurs USB sont initialisés dans un ordre différent. Est-ce possible?
MISE À JOUR 2 Je vois dans mes journaux pour l'une des caméras les informations suivantes:
[Wed Apr 30 18:35:02 2014] uvcvideo: Found UVC 1.00 device FULL HD 1080P Webcam (0bda:58b0)
[Wed Apr 30 18:35:02 2014] input: FULL HD 1080P Webcam as /devices/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2/3-2:1.0/input/input4
En utilisant cela, j'ai appelé cette commande:
udevadm info --query=all --path=/devices/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2/3-2:1.0/input/input4
Et j'ai ceci:
P: /devices/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2/3-2:1.0/input/input4
E: DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2/3-2:1.0/input/input4
E: EV=3
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_MODEL=FULL_HD_1080P_Webcam
E: ID_MODEL_ENC=FULL\x20HD\x201080P\x20Webcam
E: ID_MODEL_ID=58b0
E: ID_PATH=pci-0000:01:00.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_01_00_0-usb-0_2_1_0
E: ID_REVISION=5801
E: ID_SERIAL=Generic_FULL_HD_1080P_Webcam_200901010001
E: ID_SERIAL_SHORT=200901010001
E: ID_TYPE=video
E: ID_USB_DRIVER=uvcvideo
E: ID_USB_INTERFACES=:0e0100:0e0200:010100:010200:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=Generic
E: ID_VENDOR_ENC=Generic
E: ID_VENDOR_ID=0bda
E: KEY=100000 0 0 0
E: MODALIAS=input:b0003v0BDAp58B0e5801-e0,1,kD4,ramlsfw
E: NAME="FULL HD 1080P Webcam"
E: PHYS="usb-0000:01:00.0-2/button"
E: PRODUCT=3/bda/58b0/5801
E: PROP=0
E: SUBSYSTEM=input
E: UDEV_LOG=3
E: USEC_INITIALIZED=41090223
Les choses qui diffèrent entre les caméras DEVPATH
, ID_PATH
, ID_PATH_TAG
, PHYS
et ( le plus intéressant) USEC_INITIALIZED
. Maintenant, les quatre premiers éléments sont probablement liés au port USB, mais le dernier USEC_INITIALIZED
ressemble à une sorte de numéro de série. Je ne trouve aucune information sur ce que cela représente réellement. Est-ce que quelqu'un sait quelque chose à propos de ça? Je pensais que c'était peut-être le temps en micro secondes où la caméra s'est initialisée mais la caméra qui s'est initialisée après celle-ci a USEC_INITIALIZED=17919751
, et puis celle après ça USEC_INITIALIZED=25609278
donc ça semble plutôt aléatoire. J'essaierai de redémarrer le système et de voir, mais je dois attendre un moment opportun pour le faire.
Et si quelqu'un se demande pourquoi je n'essaye pas simplement de reconnecter un appareil photo et de voir si cela reste le même. La réponse est que j'utilise ce PC à distance et j'étudie tout cela pour préparer le système à être entièrement autonome pour tout événement potentiel à l'avenir. Ce qui pourrait par exemple inclure la déconnexion des caméras des ports USB.