ปัญหาเกี่ยวกับการ์ด PCIE คอนโทรลเลอร์ 4x USB ดูเหมือนจะติดตั้งไม่ถูกต้อง
สถานการณ์: เราต้องการใช้กล้อง USB Vision กับการ์ดอะแดปเตอร์ USB โดยให้แบนด์วิธมากที่สุดเท่าที่จะเป็นไปได้ดังนั้นเราจึงลองใช้การ์ดสองประเภทที่แตกต่างกัน: ASMedia xy และ Renesas uPD720202 ซึ่ง ASMedia ครองตลาด และเป็นเรื่องยากมากที่จะได้การ์ด Renesas สักสองสามใบ
ปัญหา: การ์ด ASMedia กำลังทำงานบางส่วน อุปกรณ์ USB เช่น ไดรฟ์ SSD ภายนอกใช้งานได้ (มีอัตราการถ่ายโอนข้อมูลสูง) แต่เมื่อใช้กล้อง อุปกรณ์จะหยุดลงหลังจากผ่านไปสองสามเฟรมโดยมีข้อผิดพลาด DMA กล้องใช้โหมด BULK Google เป็นเวลาหลายชั่วโมงแสดงให้เห็นว่าชิป ASMedia ดูเหมือนจะมีข้อบกพร่องของเฟิร์มแวร์หรืออะไรก็ตาม ดังนั้นเราจึงล้มเลิกความคิดที่จะใช้การ์ดนั้น ASMedia ทำงานบนพีซีที่ไม่ได้ทดสอบร่วมกับกล้อง)
ลองใช้การ์ดกับชิป Renesas ทำงานได้อย่างสมบูรณ์บนพีซี ThinkCentre แต่ไม่ทำงานบนฮาร์ดแวร์เป้าหมาย เซิร์ฟเวอร์ Supermicro ทั้งคู่ใช้ระบบปฏิบัติการเดียวกัน (Ubuntu 18.04, Kernel 5.4.0-97-generic) เซิร์ฟเวอร์มี RAM, GPU และอื่น ๆ อีกมากมาย
นี่คือลิงค์ไปยัง ThinkCentre ที่ทำงาน: https://linux-hardware.org/?probe=c945332cad
นี่คือลิงค์ไปยังเซิร์ฟเวอร์ (ไม่ทำงาน): https://linux-hardware.org/?probe=f0c1c16098
เราลองใช้หลายสิ่งหลายอย่าง (จากการสุ่ม google hit ซึ่งปัญหาเกี่ยวกับการ์ด renesas ได้รับการแก้ไข) เช่น autosuspend off, การอัปเดตเคอร์เนล, Ubuntu เวอร์ชันต่างๆ ฯลฯ ไม่มีอะไรช่วยได้ ดังนั้นฉันจึงเปรียบเทียบ dmesg ของทั้งสองระบบ
ข้อแตกต่างเพียงอย่างเดียวที่ฉันสามารถสังเกตเห็นบรรทัดที่ขาดหายไประหว่างการเริ่มต้น (?) ของการ์ด โปรดอย่าสนใจข้อเท็จจริงที่ว่า ThinkCentre แสดงคอนโทรลเลอร์ uPD720202 ถึง 4 เท่า แต่เซิร์ฟเวอร์เพียง 3 เท่า เพื่อนร่วมงานของฉันบอกว่ามันแสดง 4x ในแต่ละรอบ แต่น่าเสียดายที่ตอนนี้ฉันมีเพียงบันทึก 3x
นี่คือความแตกต่างที่ฉันสามารถสังเกตเห็นได้:
ใน ThinkCentre dmesg มีบล็อกนี้:
[ 0.268577] pci_bus 0000:03: ทรัพยากร 0 [io 0x2000-0x2fff]
[ 0.268578] pci_bus 0000:03: ทรัพยากร 1 [mem 0xdf300000-0xdf3fffff]
[ 0.268578] pci_bus 0000:03: ทรัพยากร 2 [mem 0xd0000000-0xd01fffff 64bit pref]
[ 0.268579] pci_bus 0000:04: ทรัพยากร 0 [io 0x3000-0x3fff]
[ 0.268580] pci_bus 0000:04: ทรัพยากร 1 [mem 0xdf200000-0xdf2fffff]
[ 0.268580] pci_bus 0000:04: ทรัพยากร 2 [mem 0xd0200000-0xd03fffff 64bit pref]
[ 0.268581] pci_bus 0000:05: ทรัพยากร 0 [io 0x4000-0x4fff]
[ 0.268582] pci_bus 0000:05: ทรัพยากร 1 [mem 0xdf100000-0xdf1fffff]
[ 0.268582] pci_bus 0000:05: ทรัพยากร 2 [mem 0xd0400000-0xd05fffff 64bit pref]
[ 0.268583] pci_bus 0000:06: ทรัพยากร 0 [io 0x5000-0x5fff]
[ 0.268584] pci_bus 0000:06: ทรัพยากร 1 [mem 0xdf000000-0xdf0fffff]
[ 0.268584] pci_bus 0000:06: ทรัพยากร 2 [mem 0xd0600000-0xd07fffff 64bit pref]
ขณะอยู่บนเซิร์ฟเวอร์ฉันเห็นบล็อกนี้:
[10.247535] pci_bus 0000:83: ทรัพยากร 1 [mem 0xd3600000-0xd36fffff]
[10.247538] pci_bus 0000:83: ทรัพยากร 2 [mem 0x390000000000-0x3900001fffff 64bit pref]
[10.247540] pci_bus 0000:84: ทรัพยากร 1 [mem 0xd3500000-0xd35fffff]
[10.247542] pci_bus 0000:84: ทรัพยากร 2 [mem 0x390000200000-0x3900003fffff 64bit pref]
[10.247545] pci_bus 0000:85: ทรัพยากร 1 [mem 0xd3400000-0xd34fffff]
[10.247547] pci_bus 0000:85: ทรัพยากร 2 [mem 0x390000400000-0x3900005fffff 64bit pref]
[10.247550] pci_bus 0000:86: ทรัพยากร 1 [mem 0xd3300000-0xd33fffff]
[10.247552] pci_bus 0000:86: ทรัพยากร 2 [mem 0x390000600000-0x3900007fffff 64bit pref]
คุณจะเห็นว่ามีบรรทัด io สำหรับทรัพยากรแต่ละรายการ ซึ่งขาดหายไปในเซิร์ฟเวอร์ dmesg
เส้นนี้มีไว้เพื่ออะไร? อะไรคือสาเหตุที่ทำให้บรรทัดเหล่านั้นขาดหายไป? วิธีการดีบัก? นี่เป็นคำแนะนำที่ถูกต้องในการแก้ปัญหาหรือไม่?
Btw: กล้องทำงานได้อย่างสมบูรณ์บนคอนโทรลเลอร์ USB ภายใน/เนทีฟใดๆ ของเซิร์ฟเวอร์นั้น
ขอบคุณสำหรับความช่วยเหลือ / ความคิดใด ๆ
นี่คือโพสต์ซ้ำของ: