如何在 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