Orin can not access /dev/video0

Hi Jerry,

I use demsg to get some log…
I’m not sure this log is what you want…?
dmesg.txt (82.5 KB)

hello syan,

[    7.598816] tegra194-vi5 13e40000.host1x:vi0@15c00000: initialized
[    7.599582] (NULL device *): fops function table already registered

it looks NULL devices.
may I know what’s the camera board you’re using, could you please take a snapshot and share the camera board naming.

Hi Jerry,

I think it is ov5693

1 Like

hello syan,

yes, it’s the ov5693 sensor module, but this is the camera board named e3326. this is not supported currently.

Hi Jerry,
I have checked the different of e3326 on Xavier and e3333 on Orin.
And I found e3326 just have 1 node and e3333 have 6 node.

i2c@0{
.....
};

i2c@1{
.....
};

....

If I delete other 5 node, does e3326 can work?
Because I just have e3326 this camera board…

Or you have the other way let orin support it?

hello syan,

they’re different, there’s i2cmux with e3333 to expand the i2c-bus for six camera nodes; but e3326 don’t.
we don’t enable e3326 since it cannot connect to Orin platform directly, however, you’ve a flex cable to extend the camera connection.

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)