Orin can not access /dev/video0

Hi Jerry,
So In Orin e3326 is defual disable.
But we still can modfy some files in manually to enable it?
if yes, how should we do next?

hello syan,

there also some issues for enabling e3333 on Orin series with JP-5.0 DP.
I’ll suggest you waits for next JetPack public release, (which should release around Q3/2022), this release will include the fixes to enable ov5693.
after that, you may try revise the device tree and bringup e3326 camera board.

Hi Jerry,
I want to double check my flow is correct to change orin’s default camera(imx274 daul → ov5693 e3333)

As Orin can not access /dev/video0 - #12 by syan I said.

1.) Does it succesiful change, or I miss some step you can point that.
2.) If orin changed , how we can validated it?
3.) If I change my camera to imx185 does orin can support it or it still has camera borad limit?

hello syan,

note, this JetPack 5.0.1 is a development preview release.
your previous comment looks correct steps, please have a try to see-also Release Notes (r34.1) for session [4.1.5 Important Note] to enable IMX185.
thanks

Hi Jerry,
Ok. We’re looking forward to next JetPack version!!

And I trying to change default camera to imx185 which according to session 4.1.5
Then I reference this post Xavier - using raw CSI without i2c to remove i2c .

It should generate/dev/video0 automatically, does it?

Here’s my dmesg log.
dmesg.txt (82.5 KB)

hello syan,

I doubt the device tree did not update correctly, according to the logs, it’s still using the native Orin AGX dtb file.

[    0.003020] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-5.10/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t23x/concord/kernel-dts/tegra234-p3701-0000-p3737-0000.dts
[    0.003027] DTB Build time: May 16 2022 21:09:35

may I know what’s your steps to update device tree?
please also check /boot/extlinux/extlinux.conf, if there’s FDT entry, it’ll prior to load device tree via file system.
thanks

Hi Jerry,
My steps as below,

  1. modify this file hardware/nvidia/platform/t23x/concord-dts/ tegra234-p3701-0000-p3737-0000.dts

Add 1 row

#include "cvb/tegra234-p3737-0000-camera-imx185-a00.dtsi"

  1. move to Linux_for_Tegra/source/public/kernel/kernel-5.10/ to compile kernel

  2. Change dtb folder and Image after compile finish

  3. flash Orin at Linux_for_Tegra

sudo ./flash.sh -k A_kernel-dtb jetson-agx-orin-devkit mmcblk0p1

Above all are step before removing i2c…

And When step.4 , I can’t run sudo ./flash.sh -r -k A_kernel-dtb jetson-agx-orin-devkit mmcblk0p1.
It will shows file does not exist.

Then check dmesg on Orin,
It also shows

[    0.003020] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-5.10/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t23x/concord/kernel-dts/tegra234-p3701-0000-p3737-0000.dts
[    0.003027] DTB Build time: May 16 2022 21:09:35

It seem can not flash successfully…

Also, I check /boot/extlinux/extlinux.conf, there’s FDT entry.

hello syan,

since there’s FDT entry, it’ll prior to load device tree via file system.
why don’t you scp the compiled device tree, tegra234-p3701-0000-p3737-0000.dtb to the target, and revise the extlinux.conf file to point FDT as your new dtb file.

Hi Jerry,

Yes. I copy my compiled device tree to FDT read path.

It can read my compiled kernel file, but it seen nothing changed?

imx185-dmesg.txt (78.6 KB)

hello syan,

could you please also modify the device tree file, for example, /kernel-dts/cvb/tegra234-p3737-camera-modules.dtsi
please exclude all other include files and leave only imx185 enabled for confirmation, thanks

Hi Jerry,

I had changed /kernel-dts/cvb/tegra234-p3737-camera-modules.dtsi
Also I let imx185_a@1a status is okay

imx185_cam0: imx185_a@1a { status = "okay"; };
Attachments are my modified files.

BTW, I wanna know that which camera Orin can succeessfully support on JetPack 5.0.1?

tegra234-p3737-camera-modules.dtsi (7.8 KB)
tegra234-p3701-0000-p3737-0000.dts (4.0 KB)
dmesg_0727_01.txt (81.2 KB)

hello syan,

this should be the failure, it’s i2c mux probing failed.

[    6.411705] pca954x 2-0070: device detect skipped.
[    6.416696] pca954x 2-0070: probe failed
[    6.420377] pca954x: probe of 2-0070 failed with error -121

it’s IMX274.

Hi Jerry,

I had tried remove i2c, modify 2 files.

1.tegra234-p3737-0000-camera-imx185-a00.dtsi

let i2c status set “okay”

  1. /usr/src/kernel/nvidia/drivers/media/i2c/nv_imx185_v1.c

comment read_reg function and write_reg write_table two function are return 0

Both of all are reference this post [Xavier - using raw CSI without i2c]

Attachment are my modify file, when I run dmesg .
it still shows

[    6.411705] pca954x 2-0070: device detect skipped.
[    6.416696] pca954x 2-0070: probe failed
[    6.420377] pca954x: probe of 2-0070 failed with error -121

It seems remove i2c fail, Do I have something wrong on above step or I modify wrong file?

tegra234-p3737-0000-camera-imx185-a00.dtsi (2.0 KB)
nv_imx185_v1.c (29.1 KB)
dmesg_0727_RMi2c.txt (78.6 KB)

Hi @JerryChang ,

My target is let Orin generate /dev/video0 through remove i2c
Updated my status:

  1. I’m back to use e3333 (I’m unfamiler to use imx185) and modify some files which followed as Xavier’s:
    a.) tegra234-p3701-0000-p3737-0000.dts
    Add 1 line #include "cvb/tegra234-p3737-0000-camera-e3333-a00.dtsi"

    b.) tegra234-p3737-camera-modules.dtsi
    Only included e3333.
    And only one camera which same as e3326 set status is okay

    i2c@3180000 {
     	e3326_cam0: ov5693_c@36 {
     		status = "disabled";
     	};
     	...
     	tca9548@77 {
     		status = "disabled";
     		i2c@0 {
     			e3333_cam0: ov5693_a@36 {
     				status = "disabled";
     			};
     		};
     		i2c@1 {
     			e3333_cam1: ov5693_b@36 {
     				status = "disabled";
     			};
     		};
     		i2c@2 {
     			e3333_cam2: ov5693_c@36 {
     				status = "okay";
     			};
     		};
     		
    

    c.)tegra234-p3737-0000-camera-e3333-a00.dtsi

     tca9548_77: tca9548@77 {
     		...
     		skip_mux_detect = "yes";
     		...
     		i2c@2 {
     			reg = <2>;
     			i2c-mux,deselect-on-exit;
     			#address-cells = <1>;
     			#size-cells = <0>;
     			ov5693_c@36 {
     				...
     				vana-supply = <&p3737_avdd_cam_2v8>;
     				vif-supply = <&p3737_vdd_1v8_sys>;
     				
     				status = "okay";
    
  2. modify nv_ov5693.c

    a.) remove read_reg
    b.) write_red and write_table let it return 0

And now, Orin can not generate /dev/video0, dmesgstill shows

(NULL device).....

I wanna know that:

  1. Do you suggest me use e3333 to continue removing i2c ?

  2. If so, which step I got wrong?

  3. If not, which file you suggest to?

dmesg_0729_01.txt (78.6 KB)

hello syan,

Orin do not support E3326. the camera works on JetPack-5.0 DP is IMX274.
are you can see, those camera were connected behind i2c mux, tca9546.

Hi Jerry,

Yes, it is.

Do you have try remove i2c on orin to generate /dev/video0?
Do I modify nv_imx274.c this file?

hello syan,

here’s announcements,

since there’re GPIO driver fixes, and l4t-r34 is a developer preview release, it may deprecated when production release is available.
please wait JetPack 5.0.2, and please verify camera porting on this first JetPack 5 production release.
thanks

Hi Jerry,

Thanks for your information. But my Orin is 64GB.
Can I refer to JetPack 5.0.2 update on camera porting?

1 Like

I have a similar problem to you…
I use ov5693 to test jetpack 5.0.1 on Xavier and it doesn’t work
In addition, Orin cannot directly connect to ov5693. Did you make the transfer cable yourself?