Saya memiliki lima kamera USB, merek yang sama, model yang sama (Canyon CNR-FWC120H). Mereka digunakan untuk memantau pemandangan yang berbeda 24/7. Saya perlu mengidentifikasi kamera mana yang berasal dari konsol Linux (Debian) atau secara terprogram (bahasa apa pun).
Saya sudah mencoba melihat output lsusb -vvv
, ada bidang iSerial
yang harus berbeda untuk setiap kamera tetapi sayangnya pabrikan ini memutuskan untuk tidak repot dan semua kamera memiliki serial yang sama di tempat itu:200901010001
Apakah ada cara lain saya bisa mengidentifikasi kamera mana yang independen dari port USB yang terhubung karena sayangnya dalam skenario khusus saya, saya tidak dapat mengandalkan kenyataan bahwa kamera yang sama akan selalu terhubung ke port yang sama.
PEMBARUAN Setelah beberapa diskusi dalam komentar saya menyadari bahwa ini adalah misi yang mustahil. Jadi, lupakan paragraf terakhir atau jika Anda memiliki ide yang cerdik, mohon, Anda dipersilakan untuk mempresentasikannya. Saya sekarang tertarik jika saya bisa mengidentifikasi port USB yang terhubung dengan perangkat; Saya menggunakan port USB bawaan pada motherboard dan kartu pengontrol USB PCI tambahan untuk mengakomodasi kamera dengan bandwidth yang cukup. Saya perlu mengidentifikasi port secara unik, dan nomor port / identifikasi tidak boleh berubah jika misalnya mesin reboot dan untuk beberapa alasan pengendali USB diinisialisasi dalam urutan yang berbeda. Apakah itu mungkin?
UPDATE 2 saya lihat di log saya untuk salah satu kamera info berikut:
[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
Dengan menggunakan itu, saya telah memanggil perintah ini:
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
Dan mendapatkan ini:
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
Hal-hal yang berbeda antara kamera yang DEVPATH
, ID_PATH
, ID_PATH_TAG
, PHYS
dan (paling menarik) USEC_INITIALIZED
. Sekarang empat elemen pertama mungkin terkait dengan port USB, tetapi yang terakhir USEC_INITIALIZED
terlihat seperti semacam nomor seri. Saya tidak dapat menemukan info tentang apa yang sebenarnya diwakilinya. Adakah yang tahu tentang itu? Saya pikir mungkin ini adalah waktu dalam mikro detik ketika kamera diinisialisasi tetapi kamera yang diinisialisasi setelah ini USEC_INITIALIZED=17919751
, dan kemudian setelah itu USEC_INITIALIZED=25609278
jadi sepertinya agak acak. Saya akan mencoba untuk reboot sistem dan lihat, tapi saya harus menunggu waktu yang tepat untuk melakukan itu.
Dan jika ada yang bertanya-tanya mengapa saya tidak hanya mencoba menghubungkan kembali kamera dan melihat apakah itu tetap sama. Jawabannya adalah saya mengoperasikan PC ini dari jarak jauh, dan saya sedang menyelidiki semua ini untuk mempersiapkan sistem agar sepenuhnya otonom untuk setiap peristiwa potensial di masa depan. Misalnya yang mungkin termasuk melepas kamera dari port USB.