Điều gì sẽ gây ra sự giao thoa giữa các webcam giữa hai webcam USB2 khi sử dụng chuyển động?


7

Tôi đang sử dụng gói Motion cho linux để hoạt động như một hệ thống bảo mật với hai webcam Microsoft LifeCam HD-5000. Nói chung nó hoạt động rất tốt nhưng tôi đang gặp một vấn đề kỳ lạ. Thỉnh thoảng, nguồn cấp dữ liệu từ một cam sẽ hiển thị "nhiễu xuyên âm" hoặc "chéo" từ các cam khác, trong các thanh quét, được mô tả tốt nhất trong hình ảnh này (được tô sáng màu đỏ):

WTF?

Như bạn có thể thấy, hình ảnh là một mớ hỗn độn của bên trong và nguồn cấp dữ liệu camera bên ngoài. Tôi tin rằng bài viết này từ wiki của Motion đang mô tả cùng một vấn đề, tuy nhiên không có giải pháp nào ngoài đó:

Nếu bạn cần nhiều hơn 1 camera USB, hãy thêm thẻ USB PCI bổ sung vào máy tính của bạn

Tuy nhiên, đó là nói về USB 1.1, và đây là những máy ảnh USB 2.0. Ngoài ra, tôi tin rằng hệ thống này có hai thẻ UCB và các máy ảnh được kết nối với hai cổng USB khác nhau:

root@chef:~# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
        |__ Port 2: Dev 3, If 0, Class=stor., Driver=usbfs, 480M
        |__ Port 3: Dev 4, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
        |__ Port 3: Dev 4, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
        |__ Port 3: Dev 4, If 2, Class=audio, Driver=snd-usb-audio, 480M
        |__ Port 3: Dev 4, If 3, Class=audio, Driver=snd-usb-audio, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
        |__ Port 2: Dev 3, If 0, Class=HID, Driver=usbhid, 12M
        |__ Port 3: Dev 4, If 0, Class=HID, Driver=usbhid, 1.5M
        |__ Port 4: Dev 5, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
        |__ Port 4: Dev 5, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
        |__ Port 4: Dev 5, If 2, Class=audio, Driver=snd-usb-audio, 480M
        |__ Port 4: Dev 5, If 3, Class=audio, Driver=snd-usb-audio, 480M
root@chef:~# lspci
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 12)
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 12)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:1a.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.5 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 6 (rev 06)
00:1d.0 USB Controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation 5 Series Chipset LPC Interface Controller (rev 06)
00:1f.2 IDE interface: Intel Corporation 5 Series/3400 Series Chipset 4 port SATA IDE Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57788 Gigabit Ethernet PCIe (rev 01)

Vì vậy, câu hỏi của tôi là:

  1. Có ai biết những gì có thể gây ra chéo như thế này?
  2. Bất kỳ đề nghị xử lý sự cố khác?
  3. Tôi đoán tôi sẽ cần phải yêu cầu các nhà phát triển của Motion hỗ trợ, vì vậy trước khi tôi làm, có ai có thể xác nhận rằng tôi có các camera được kết nối với hai thẻ PCI khác nhau như họ đề xuất không?

1
Có nhiễu xuyên âm xảy ra khi xem qua chương trình khác không? (giống như dòng chảy). Ít nhất thì bạn cũng biết đó không phải là lỗi của chuyển động ...
dotjoe

Câu trả lời:


8

Đến điểm đầu tiên: USB1.1 chậm hơn rất nhiều so với USB2.0 , trong hầu hết các trường hợp. Lưu ý rằng các thiết bị vẫn có thể kết nối ở tốc độ 1.1 thấp hơn 12Mb / giây thay vì 480Mb / giây nhanh hơn, nhưng thông thường khi điều này xảy ra là do cổng tự động thấp hoặc là do một trong hai thiết bị thực sự là 1.1. Hãy thử ngắt kết nối và kết nối lại nếu bạn gặp phải điều này và chắc chắn cả hai đều là 2.0 và HĐH của bạn có hỗ trợ cho 2.0. (lời khuyên chung, ya?) ~ ~ Dù sao, đó là lý do tại sao họ đề xuất một thẻ mới. Vì vậy, bạn có thể sử dụng tốc độ USB1.1 đầy đủ cho mỗi camera riêng lẻ vì bus PCI nhanh hơn USB1.1. Nhưng với 2.0 thì không cần thiết. [con ngựa chết trôi nổi, tiếp tục chủ đề tiếp theo]

Bây giờ vào thiết bị của bạn cụ thể. Bạn đã có Core i5 theo hầu hết các số liệu có thể phô trương, cụ thể là: Intel PC / 3400 series PCH và cầu PCI 82801. (lưu ý bên lề: đã xác nhận rằng anh ta có Dell Core i5) PCH đặc biệt này cũng có tên mã là Ibex Peak . Bạn không còn có một cầu nam độc lập (vì đó là sự hiểu biết của tôi) vì vậy bạn có thể mở ra cho hành vi mới không tồn tại trước đây. Chipset tích hợp hiện xử lý USB gần hơn với DMA, vì vậy tôi hy vọng rằng vấn đề là EITHER với chipset 5/3400 hoặc vấn đề là do trình điều khiển. Hoặc là dễ dàng để kiểm tra, nhưng chúng đòi hỏi phải có vốn đầu tư ban đầu, vì vậy mà hút.

Đây là lý do của tôi tại sao tôi nghĩ rằng đó là chipset chứ không phải máy ảnh hoặc trình điều khiển: Có những vấn đề đã biết với Intel PCH (Tôi sẽ trích dẫn ngay bây giờ để lưu lại khi nhấp và nhấp:

  • Cổng USB bị treo với lưu lượng lớn và kiểm soát lưu lượng truy cập (erratum 7 & Microsoft KB982091 1 )
  • Các cổng USB của Bogus sẽ được phát hiện tại PCH máy tính để bàn được trang bị 6 cổng USB (3420, H55) trên bộ điều khiển EHCI đầu tiên. Điều này có thể xảy ra khi nguồn AC bị loại bỏ sau khi vào ACPI S4. Thêm nguồn AC trở lại và nối lại từ S4 có thể dẫn đến thiết bị USB không được phát hiện hoặc thậm chí không hoạt động (erratum 12)
  • Các cổng USB của Bogus sẽ được phát hiện tại PCH di động được trang bị 6 cổng USB (HM55) trên bộ điều khiển EHCI đầu tiên. Điều này có thể xảy ra khi nguồn AC và pin bị loại bỏ sau khi vào ACPI S4. Thêm nguồn AC hoặc pin trở lại và nối lại từ S4 có thể dẫn đến thiết bị USB không được phát hiện hoặc thậm chí không hoạt động (erratum 13)

Điều này khiến tôi tin rằng việc thêm một thẻ PCI mới sẽ cải thiện hiệu suất bằng cách loại bỏ tải trên logic của bộ điều khiển USB cụ thể, nhưng khi thử nghiệm, hãy di chuyển cả máy ảnh sang cùng một trung tâm USB (phù hợp với các khe cắm trên bo mạch chủ) và đủ xem nếu họ thể hiện cùng một vấn đề. Đô la cho peso nói rằng bạn sẽ có vấn đề tương tự CHÍNH XÁC khi bạn làm điều này.

Tuy nhiên, tôi nghĩ nhiều khả năng đó là vấn đề với trình điều khiển UVC trên Linux nói chung với nhiều máy ảnh được xử lý bởi cùng một bộ điều khiển (như của bạn) và không phải là thứ gì đó cụ thể đối với phần cứng. Tôi chỉ nghĩ rằng tôi sẽ bắt đầu với phần cứng trước để xử lý bit cụ thể đó (vì hoàn toàn có thể nó có thể bị lỗi). Đây là một chuỗi các URL liên quan:

Ok, bây giờ đủ lan man. Trả lời ý kiến?


tl; dr: lấy thẻ USB PCI và đặt một camera ở đó.


Cảm ơn! Đó là một câu trả lời rất kỹ lưỡng. Phần về chipset tích hợp đang đẩy các giới hạn hiểu biết của tôi về phần cứng, nhưng nó có ý nghĩa. Đối với USB 1.1 so với 2.0, tôi gần như tích cực các thiết bị được kết nối ở tốc độ 2.0 đầy đủ vì lsusbnói "480M", đó là tốc độ USB2.0, phải không?
Josh

1
Vâng, đó là tốc độ USB2.0, và trong khi bạn có một số cổng, bạn vẫn chỉ có một bộ điều khiển và tất cả đều quay trở lại qua một cổng, như đã từng, đến điểm DMA. Hãy nhớ đó là một cái cây, luôn có một thiết bị gốc cho USB (lên tới cấp độ của PCI hoặc bộ điều khiển cầu khác, sau đó nó sẽ lên xe buýt song song của phụ trợ của hệ thống) Vì vậy, nếu bạn thêm thẻ USB PCI thì bạn 'sẽ có hai "cây usb" một cách hợp lý, đó là điểm mà khuyến nghị của thẻ khác là;)
jcolebrand

À, OK, vậy mặc dù lspciliệt kê hai thẻ USB và lsusbliệt kê hai bus USB, nhưng chúng thực sự chỉ là một?
Josh

Theo tôi hiểu tình hình, vâng. Tuy nhiên, tôi đã được biết là sai trước đây. Tôi đã cài đặt thẻ USB PCI trước đó đọc nhiều hơn một cho hệ thống, chỉ với một thẻ vật lý. ~ Tôi cũng đã thấy các thẻ video có cầu PCI riêng để cung cấp cho chúng băng thông bên trong tốt hơn cho nhiều màn hình, điều này gây đau đầu khi bạn có bo mạch chủ có cầu PCI và chipset có thành phần cầu nam. Bạn nghĩ rằng "khe cắm, thẻ, công việc" nhưng không, phần cứng là một con thú đặc biệt và cần TLC.
jcolebrand

Để rõ ràng hơn về mối quan tâm về cầu PCI cuối cùng: Hệ thống trung bình dự kiến ​​sẽ tìm thấy một cầu PCI, nhiều nhất là sau cầu nam. Vì vậy, hạt nhân (ít nhất là Windows) phân bổ đủ mọi thứ để xử lý một cầu PCI. Nếu gặp phải cái thứ hai, kernel không thể xử lý nó, vì vậy nó bỏ qua nó là phần cứng bị lỗi. Vì vậy, trên một hệ thống có nhiều cầu PCI, nếu bạn có ít nhất một máy Windows, bạn phải có một bản vá cụ thể cho hệ thống đó. Thứ thú vị đó. Đây là một bài học cho những người Unix / Linux, hãy để trình điều khiển bảng của bạn được đệ quy, nó ổn. ;)
jcolebrand
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.