Tôi có năm máy ảnh USB, cùng nhãn hiệu, cùng model (Canyon CNR-FWC120H). Chúng được sử dụng để theo dõi các cảnh khác nhau 24/7. Tôi cần xác định bằng cách nào đó máy ảnh nào là từ bảng điều khiển Linux (Debian) hoặc lập trình (bất kỳ ngôn ngữ nào).
Tôi đã thử nhìn vào đầu ra của lsusb -vvv
, có một trường iSerial
nên khác nhau cho mỗi máy ảnh, nhưng thật không may, nhà sản xuất này đã quyết định không làm phiền và tất cả các máy ảnh đều có cùng một chuỗi tại nơi đó:200901010001
Có cách nào khác để tôi có thể xác định máy ảnh nào độc lập với cổng USB mà chúng được kết nối không vì trong trường hợp cụ thể của tôi, tôi không thể dựa vào thực tế là cùng một máy ảnh sẽ luôn được kết nối với cùng một cổng.
CẬP NHẬT Sau một số thảo luận trong các ý kiến tôi nhận ra đây là nhiệm vụ bất khả thi. Vì vậy, hãy quên đoạn cuối hoặc nếu bạn có một số ý tưởng khéo léo, xin vui lòng, bạn được chào đón để trình bày nó. Bây giờ tôi quan tâm nếu tôi có thể xác định cổng USB mà thiết bị được kết nối với; Tôi sử dụng các cổng USB tích hợp trên bo mạch chủ và các thẻ điều khiển USB PCI bổ sung để chứa các camera có đủ băng thông. Tôi sẽ cần xác định duy nhất cổng và số cổng / nhận dạng cổng không nên thay đổi nếu ví dụ máy khởi động lại và vì một số lý do, bộ điều khiển USB được khởi tạo theo thứ tự khác nhau. Điều đó có thể không?
CẬP NHẬT 2 Tôi thấy trong nhật ký của mình cho một trong các máy ảnh thông tin sau:
[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
Sử dụng điều đó, tôi đã gọi lệnh này:
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
Và đã nhận được điều này:
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
Những điều khác nhau giữa các máy ảnh là DEVPATH
, ID_PATH
, ID_PATH_TAG
, PHYS
và (hầu hết thú vị) USEC_INITIALIZED
. Bây giờ bốn yếu tố đầu tiên có thể liên quan đến cổng USB, nhưng yếu tố cuối cùng USEC_INITIALIZED
trông giống như một số loại số sê-ri. Tôi không thể tìm thấy bất kỳ thông tin về những gì nó thực sự đại diện. Có ai biết gì về nó không? Tôi nghĩ rằng đó có thể là thời gian tính bằng giây khi máy ảnh khởi tạo nhưng máy ảnh khởi tạo sau cái này có USEC_INITIALIZED=17919751
, và sau đó là cái sau USEC_INITIALIZED=25609278
nên nó có vẻ khá ngẫu nhiên. Tôi sẽ thử khởi động lại hệ thống và xem, nhưng tôi cần đợi thời gian thuận tiện để làm điều đó.
Và nếu có ai thắc mắc tại sao tôi không thử kết nối lại máy ảnh và xem điều đó có còn như cũ không. Câu trả lời là tôi đang vận hành PC này từ xa và tôi đang điều tra tất cả những điều này để chuẩn bị hệ thống hoàn toàn tự chủ cho bất kỳ sự kiện tiềm năng nào trong tương lai. Ví dụ, có thể bao gồm ngắt kết nối máy ảnh khỏi cổng USB.