Platform: Jetson (Tegra, aarch64), Metavision SDK 5.1.1
Sensors: 2x GenX320, connected via MIPI CSI
Issue:
I have two physically separate GenX320 sensors connected via CSI on a Jetson board. The kernel/V4L2 layer correctly detects and exposes them as two independent devices, but metavision_platform_info reports the same serial number for both sensors. This makes it impossible to open both cameras simultaneously from an application attempting to open the second camera fails with "device busy," because discovery resolves to the same physical device that's already open.
Evidence kernel/DT layer is correct:
v4l2-ctl --list-devices shows two distinct sensors on separate I2C buses, each with its own video node:
vi-output, genx320 10-003c (platform:tegra-capture-vi:1):
/dev/video1
vi-output, genx320 9-003c (platform:tegra-capture-vi:2):
/dev/video0
media-ctl -p confirms two fully independent entity graphs (separate NVCSI subdevs, separate sensor subdevs, separate VI output nodes) one for genx320 9-003c and one for genx320 10-003c. This looks correct at the device-tree and kernel-driver level.
Evidence of the bug at the plugin/discovery layer:
metavision_platform_info output shows two ## tegra-video GenX320 320x320 ## bvideolocks, correctly listing two different connections (platform:tegra-capture-vi:1 and :2), but both report the serial as genx320 9-003c — the second sensor's serial (genx320 10-003c, as correctly identified by the kernel) is not being surfaced.
Since Camera::from_serial() / DeviceDiscovery::open(serial, ...) key off the serial string, this collision means the application can't disambiguate the two cameras, and the second "open" call ends up targeting the same device that's already in use.
Request:
Could you take a look at the serial-reporting logic in the HAL plugin's device discovery? It seems to not be correctly reading/propagating the per-sensor serial across both /dev/video* nodes.
Thanks!