ฉันมีกล้อง USB ห้าตัวยี่ห้อเดียวกันรุ่นเดียวกัน (Canyon CNR-FWC120H) พวกเขาจะใช้ในการตรวจสอบฉากที่แตกต่างกัน 24/7 ฉันต้องระบุว่ากล้องตัวไหนเป็นแบบไหนจากคอนโซล Linux (Debian) หรือโดยทางโปรแกรม (ทุกภาษา)
ฉันได้ลองดูที่ผลลัพธ์ของlsusb -vvv
มันมีช่องiSerial
ที่ควรจะแตกต่างกันไปสำหรับกล้องแต่ละตัว แต่น่าเสียดายที่ผู้ผลิตรายนี้ตัดสินใจที่จะไม่รบกวนและกล้องทั้งหมดมีซีเรียลเดียวกันในสถานที่นั้น:200901010001
มีวิธีอื่นที่ฉันสามารถระบุได้ว่ากล้องตัวไหนเป็นอิสระจากพอร์ต USB ที่เชื่อมต่อเพราะโชคไม่ดีที่ในสถานการณ์เฉพาะของฉันฉันไม่สามารถวางใจได้ว่ากล้องเดียวกันจะเชื่อมต่อกับพอร์ตเดียวกันเสมอ
อัพเดทหลังจากการสนทนาในความคิดเห็นฉันรู้ว่านี่เป็นภารกิจที่เป็นไปไม่ได้ ดังนั้นลืมวรรคสุดท้ายหรือถ้าคุณมีความคิดที่แยบยลโปรดช่วยนำเสนอ ตอนนี้ฉันสนใจถ้าฉันสามารถระบุพอร์ต USB ที่อุปกรณ์เชื่อมต่ออยู่ ฉันใช้พอร์ต USB ในตัวบนเมนบอร์ดและการ์ดคอนโทรลเลอร์ PCI USB เพิ่มเติมเพื่อรองรับกล้องที่มีแบนด์วิดท์เพียงพอ ฉันจะต้องระบุพอร์ตโดยไม่ซ้ำกันและหมายเลขพอร์ต / รหัสไม่ควรเปลี่ยนแปลงหากเช่นรีบูตเครื่องและด้วยเหตุผลบางอย่างที่คอนโทรลเลอร์ USB ได้รับการเริ่มต้นในลำดับที่แตกต่างกัน เป็นไปได้ไหม
อัปเดต 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