如何在 Linux 上优化 USB3 Vision 相机的性能?

在 Linux 上使用 USB3 Vision 相机时,对于高带宽或多相机应用,可能需要调整某些系统设置。

IC4 GenTL USB3 驱动程序会自动管理 USB 传输大小,因此无需手动配置。

根据您的应用,可能需要调整以下 Linux 设置:

  • USB 协议栈内存上限

  • 文件句柄上限

需要手动配置 USB 传输大小吗?

不需要。

IC4 GenTL USB3 驱动程序会自动配置合适的 USB 传输大小,并将其设为 3 MByte。

因此,无需在 Linux 或您的应用程序中手动更改传输大小。

需要在 Linux 上提高 USB 内存上限吗?

通常不需要。

IC4 GenTL USB3 驱动程序会根据可用的系统内存,自动配置 Linux 的 USB 内存上限。驱动程序默认会将 usbfs_memory_mb 上限设为可用内存的四分之一。

因此,用户通常无需手动配置此参数。

如果您仍希望自行设置 USB 内存上限,可以手动更改 usbfs_memory_mb 的值。例如,以下命令会将上限设为 1000 MB:

sudo sh -c 'echo 1000 > /sys/module/usbcore/parameters/usbfs_memory_mb'

注意:
手动更改此设置,会临时覆盖 IC4 GenTL USB3 驱动程序自动配置的值。

使用多台 USB3 Vision 相机时,需要提高文件句柄上限吗?

通常不需要。

在现代 Linux 系统上,默认上限通常为每个进程 1024 个文件句柄,而我们的 USB3 Vision 相机每台通常只需要不到 10 个文件句柄。

因此,即使同时使用多台 USB3 Vision 相机,默认上限一般也已足够,通常无需进行调优。

如果您的应用仍需要提高此上限,可以更改当前进程的软限制,例如:

ulimit -Sn 4096

这会将当前 shell 及由其启动的进程的软限制设为 4096 个文件句柄。

若要在 Ubuntu 上进行永久配置,可在以下文件中设置相应的上限:

/etc/security/limits.conf