Modify camera device tree to change DEVname not work

hello,

hardware: Jetson_Orin_Nano
SDK version: Jetson_Linux_R35.4.1_aarch64.tbz2
kernel: 5.10.120

I had modified ar0234 sensor dts for devname, but it seems doesn’t work.my device tree node:

device tree
	modules {
		 cam_module0: module0 {
			badge = "jakku_front_ar0234";
			position = "front";
			orientation = "1";
			 cam_module0_drivernode0: drivernode0 {
				pcl_id = "v4l2_sensor";
				devname = "ar0234 95-0010";
				proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@1/rbpcv3_ar0234_a@10";
			};
		};
	};

and ‘udevadm’ info is:

udevadm info

zhang@ubuntu:~$ udevadm info /dev/video0
P: /devices/platform/tegra-capture-vi/video4linux/video0
N: video0
L: 0
S: v4l/by-path/platform-tegra-capture-vi-video-index0
E: DEVPATH=/devices/platform/tegra-capture-vi/video4linux/video0
E: DEVNAME=/dev/video0
E: MAJOR=81
E: MINOR=0
E: SUBSYSTEM=video4linux
E: USEC_INITIALIZED=32024828
E: ID_V4L_VERSION=2
E: ID_V4L_PRODUCT=vi-output, ar0234 9-0010left
E: ID_V4L_CAPABILITIES=:capture:
E: ID_PATH=platform-tegra-capture-vi
E: ID_PATH_TAG=platform-tegra-capture-vi
E: ID_FOR_SEAT=video4linux-platform-tegra-capture-vi
E: COLORD_DEVICE=1
E: COLORD_KIND=camera
E: DEVLINKS=/dev/v4l/by-path/platform-tegra-capture-vi-video-index0
E: TAGS=:uaccess:seat:

I had referred to source/kernel/nvidia/Documentation/devicetree/bindings/media/tegra-camera-framework.txt:

kernel Docs
	-- Driver Nodes (drivernodeXY) --
pcl_id: PCL device class; {"v4l2_sensor", "v4l2_lens", ...}.
devname: Sensors only, V4L2 device name string; "<sensor_model> 3" +
	"<0-9, sensor index>" + "-00" + "<sensor I2C addr.>".
proc-device-tree: Full path to the sensor Device Tree node in the
	filesystem.

Would you please be able to help modify DEVNAME and DEVLINKS_PATH?such as “index0(platform-tegra-capture-vi-video-index0)”. How to get ‘devname = “ar0234 95-0010”’ value positively in user sapce.
ASAP, thank you in advance.

Do you confirm the system applied your dtb as well?

1.my local dts file path <source/kernel_out/arch/arm64/boot/dts/nvidia/tegra234-p3767-0003-p3768-0000-a0.dtb>, the board path </boot/dtb/kernel_tegra234-p3767-0003-p3768-0000-a0.dtb>,and file’s md5sum is equally;

2.the board booting log shows buildTime correctly:
[ 0.002918] DTS File Name: /home/zhang/work/nvidia-sdk/Linux_for_Tegra/source/kernel/kernel-5.10/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t23x/p3768/kernel-dts/tegra234-p3767-0003-p3768-0000-a0.dts
[ 0.002923] DTB Build time: Sep 15 2025 09:08:13

3.Can you find the driver file which parse the property? such as:<camera_common.c> line 235:

of_property_read_string(np, “mclk”, &pdata->mclk_name);

  1. decompile your dtb to confirm the modification.
  2. check if any overlay to override it.

the decompile dts file on the Orin board:

dtb
tegra-camera-platform {
	compatible = "nvidia, tegra-camera-platform";
	num_csi_lanes = <0x04>;
	max_lane_speed = <0x1e8480>;
	min_bits_per_pixel = <0x0a>;
	vi_peak_byte_per_pixel = <0x02>;
	vi_bw_margin_pct = <0x19>;
	max_pixel_rate = <0x7270e0>;
	isp_peak_byte_per_pixel = <0x05>;
	isp_bw_margin_pct = <0x19>;

	modules {

		module0 {
			badge = "jakku_front_ar0234";
			position = "front";
			orientation = [31 00];
			phandle = <0x486>;

			drivernode0 {
				pcl_id = "v4l2_sensor";
				devname = "ar0234 95-0510";
				proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@1/rbpcv3_ar0234_a@10";
				phandle = <0x487>;
			};
		};
	};
};

but udevadm info:

udevinfo

zhang@ubuntu:~$ udevadm info -q all /dev/video0
P: /devices/platform/tegra-capture-vi/video4linux/video0
N: video0
L: 0
S: v4l/by-path/platform-tegra-capture-vi-video-index0
E: DEVPATH=/devices/platform/tegra-capture-vi/video4linux/video0
E: DEVNAME=/dev/video0
E: MAJOR=81
E: MINOR=0
E: SUBSYSTEM=video4linux
E: USEC_INITIALIZED=27561749
E: ID_V4L_VERSION=2
E: ID_V4L_PRODUCT=vi-output, ar0234 9-0010
E: ID_V4L_CAPABILITIES=:capture:
E: ID_PATH=platform-tegra-capture-vi
E: ID_PATH_TAG=platform-tegra-capture-vi
E: ID_FOR_SEAT=video4linux-platform-tegra-capture-vi
E: COLORD_DEVICE=1
E: COLORD_KIND=camera
E: DEVLINKS=/dev/v4l/by-path/platform-tegra-capture-vi-video-index0
E: TAGS=:uaccess:seat:

I am considering modifying the DTS to enforce uniqueness on the index*, do you have other suggestions?

I don’t think so. This index could be relative to the port-index that your HW connected to.

so how to make the string “DEVLINKS=/dev/v4l/by-path/platform-tegra-capture-vi-video-index0” uniquely and explicitly? because the board will connect 8-cameras, the <modules.position> property does not appear in this Info list too.

I don’t think you need to care about this index. You just need to config the port-index/bus-width and vc-id for each sensors.

but for userspace, i should provide a tag to distinguish each other, may i combine index* with position/enumeration-value?

You can check the bus number to distinguish each other.