मेरे पास पाँच USB कैमरे, एक ही ब्रांड, एक ही मॉडल (Canyon CNR-FWC120H) है। उनका उपयोग विभिन्न दृश्यों की निगरानी के लिए 24/7 किया जाता है। मुझे किसी भी तरह की पहचान करने की आवश्यकता है कि कौन सा कैमरा लिनक्स (डेबियन) कंसोल या प्रोग्रामेटिक (किसी भी भाषा) से है।
मैंने इसके आउटपुट को देखने की कोशिश की है lsusb -vvv
, एक क्षेत्र है iSerial
जो प्रत्येक कैमरे के लिए अलग होना चाहिए लेकिन दुर्भाग्य से इस निर्माता ने परेशान नहीं करने का फैसला किया और सभी कैमरों का उस स्थान पर एक ही धारावाहिक है:200901010001
क्या कोई और तरीका है जिससे मैं पहचान सकता हूं कि कौन सा कैमरा है जो स्वतंत्र रूप से यूएसबी पोर्ट से जुड़ा है क्योंकि वे जुड़े हुए हैं क्योंकि दुर्भाग्य से मेरे विशिष्ट परिदृश्य में मैं इस तथ्य पर भरोसा नहीं कर सकता कि एक ही कैमरा हमेशा एक ही पोर्ट से जुड़ा होगा।
अद्यतन टिप्पणी में कुछ चर्चा के बाद मुझे लगता है कि यह मिशन असंभव है। इसलिए अंतिम पैराग्राफ को भूल जाइए या यदि आपके पास कुछ सरल विचार है, तो कृपया, इसे प्रस्तुत करने के लिए आपका स्वागत है। मुझे अब दिलचस्पी है अगर मैं पहचान सकता हूं कि डिवाइस किस यूएसबी पोर्ट से जुड़ा है; मैं पर्याप्त बैंडविड्थ के साथ कैमरों को समायोजित करने के लिए मदरबोर्ड पर अतिरिक्त यूएसबी पोर्ट और अतिरिक्त पीसीआई यूएसबी नियंत्रक कार्ड का उपयोग करता हूं। मुझे विशिष्ट रूप से पोर्ट की पहचान करने की आवश्यकता होगी, और अगर मशीन रिबूट उदाहरण के लिए और किसी कारण से यूएसबी नियंत्रकों को अलग-अलग क्रम में आरंभीकृत किया जाता है, तो पोर्ट नंबर / पहचान को बदलना नहीं चाहिए। क्या यह संभव है?
अद्यतन 2 मैं अपने लॉग इन में से किसी एक कैमरे के लिए निम्न जानकारी देख रहा हूँ:
[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
उस का उपयोग करते हुए, मैंने इस कमांड को कॉल किया है:
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
और यह मिला:
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
चीजें हैं जो कैमरों अलग-अलग हैं DEVPATH
, ID_PATH
, ID_PATH_TAG
, PHYS
और (सबसे दिलचस्प) USEC_INITIALIZED
। अब पहले चार तत्व संभवतः USB पोर्ट से संबंधित हैं, लेकिन अंतिम कोई USEC_INITIALIZED
सीरियल नंबर की तरह दिखता है। मुझे इस बारे में कोई जानकारी नहीं मिली कि यह वास्तव में क्या दर्शाता है। क्या कोई इस बारे में कुछ भी जानता है? मैंने सोचा था कि यह शायद माइक्रो सेकंड में समय है जब कैमरा इनिशियलाइज़ हो जाता है लेकिन कैमरा जो इसके बाद इनिशियलाइज़ होता है USEC_INITIALIZED=17919751
, और उसके बाद वाला USEC_INITIALIZED=25609278
ऐसा होता है, बल्कि यह रैंडम लगता है। मैं सिस्टम को रिबूट करने और देखने की कोशिश करूंगा, लेकिन मुझे ऐसा करने के लिए एक सुविधाजनक समय की प्रतीक्षा करने की आवश्यकता है।
और अगर कोई सोच रहा है कि मैं सिर्फ एक कैमरे को फिर से जोड़ने की कोशिश क्यों नहीं कर रहा हूं और देखें कि क्या यह वही रहता है। इसका उत्तर यह है कि मैं इस पीसी को दूरस्थ रूप से संचालित कर रहा हूं, और भविष्य में किसी भी संभावित घटना के लिए पूरी तरह से स्वायत्त होने के लिए सिस्टम तैयार करने के लिए मैं यह सब जांच कर रहा हूं। उदाहरण के लिए, USB पोर्ट से कैमरों को डिस्कनेक्ट करना शामिल हो सकता है।