Using JetPack 4.6.1 can support 699-83326-1000-100 M , can display device /dev/video0 and work normally.
But switching to JetPack 5.0.1 cannot see this device.
How to fix this problem?
For this release need to modify the device tree include e3326 only due to auto detect have problem.
Check the " Using the Main Platform Device Tree File" from below document
To register a device using the main platform device tree file
-
Locate and edit the .dtsi file:
/hardware/nvidia/platform/t19x/galen/kernel-dts/tegra194-p2888-0001-p2822-0000.dtsi -
Remove the following line from the file:
#include “tegra194-camera-plugin-manager.dtsi” -
Replace the following line:
#include “common/tegra194-p2822-camera-modules.dtsi”
With an #include
statement specifying the .dtsi
file for your new device.
4. Save and close the file.
can’t find
/hardware/nvidia/platform/t19x/galen/kernel-dts/tegra194-p2888-0001-p2822-0000.dtsi
see
/hardware/nvidia/platform/t19x/galen/kernel-dts/tegra194-p2888-0001-p2822-0000.dts
can’t find #include “tegra194-camera-plugin-manager.dtsi”
tegra194-p2888-0001-p2822-0000.dts (1.4 KB)
Below is what I can see.
snchen@laptop-asus:/media/snchen/project/project/32.6/hardware/nvidia/platform/t19x/galen$ grep -ir "tegra194-camera-plugin-manager.dtsi" .
./kernel-dts/tegra194-p2888-0001-p2822-0000.dts:#include "t19x-common-modules/tegra194-camera-plugin-manager.dtsi"
./kernel-dts/tegra194-p2888-as-0006-p2822-0000.dts:#include "t19x-common-modules/tegra194-camera-plugin-manager.dtsi"
./kernel-dts/tegra194-p2888-0006-p2822-0000.dts:#include "t19x-common-modules/tegra194-camera-plugin-manager.dtsi"
./kernel-dts/tegra194-p2888-as-p3668-p2822-0000.dts:#include "t19x-common-modules/tegra194-camera-plugin-manager.dtsi"
32.6 ???
OOPS, for r34 show be as below.
HP:~/data/rel-34/hardware/nvidia/platform/t19x/galen$ grep -ir -ir "tegra194-camera-plugin-manager.dtsi" .
./kernel-dts/tegra194-p2888-as-0006-p2822-0000.dts:#include "t19x-common-modules/tegra194-camera-plugin-manager.dtsi"
./kernel-dts/tegra194-p2888-as-p3668-p2822-0000.dts:#include "t19x-common-modules/tegra194-camera-plugin-manager.dtsi"
you mean all
tegra194-camera-plugin-manager.dtsi
will be changed to
tegra194-p2822-camera-modules.dtsi
?
Have a check which dtb was applied to your device by below command and modify that dts file.
dmesg | grep -i kernel
root@user-desktop:/home/user# dmesg | grep -i kernel
[ 0.000000] CPU features: kernel page table isolation disabled by kernel configuration
[ 0.000000] alternatives: patching kernel code
[ 0.000000] Kernel command line: root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 rootfstype=ext4 sdhci_tegra.en_boot_part_access=1
[ 0.000000] Memory: 31678036K/32639680K available (18432K kernel code, 3212K rwdata, 7068K rodata, 3968K init, 1072K bss, 896108K reserved, 65536K cma-reserved)
[ 0.000000] random: get_random_bytes called from start_kernel+0x378/0x4f4 with crng_init=0
[ 0.010914] DTS File Name: /home/share/HD2/NVDIA_DATA/Tegra186_git_3410_org/tegra186/Linux_for_Tegra/sources kernel/kernel-5.10/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t19x/galen/kernel-dts/common/tegra194-p2888-0001-p2822-0000-common.dtsi
[ 0.417905] DMA: preallocated 4096 KiB GFP_KERNEL pool for atomic allocations
[ 0.420580] DMA: preallocated 4096 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[ 0.422725] DMA: preallocated 4096 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.435582] DTS File Name: /home/share/HD2/NVDIA_DATA/Tegra186_git_3410_org/tegra186/Linux_for_Tegra/sources kernel/kernel-5.10/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t19x/galen/kernel-dts/common/tegra194-p2888-0001-p2822-0000-common.dtsi
[ 0.560550] eventlib_kernel: keventlib is initialized, test id: 0
Yes remove the plugin manager from the include and modify tegra194-p2822-camera-modules.dtsi to include e3326 only.
Please check if any message for ov5693 probe error.
can’t see ov5693 probe …
- dmesg | grep -i kernel to check if apply your dtb
- sudo dtc -I fs -O dts -o extracted_proc.dts /proc/device-tree dump device tree to confirm if only ov5693 in tegra-camera-platform and i2c@ scope.
extracted_proc.dts (457.1 KB)
Looks like all of the reference sensor like imx390/imx185 still there.
Did you check the system apply the dtb that build from your host?
dts
extracted_proc_20220623.dts (391.0 KB)
kernel log
20220623_xavier_evk.log (301.2 KB)
I can find OV5693 and tegracam_v4l2subdev_register seems to succeed but /dev/video0 cannot appear
How to fix it ??
[ 13.399406] [TEGRA-V4L2]tegracam_v4l2subdev_register::Step 4-8 v4l2_async_register_subdev err : 0 .
[ 13.399410] [NV_OV5693]ov5693_debugfs_create:
[ 13.399444] ov5693 2-0036: Detected OV5693 sensor
The status should be okay instead of disable.
module0 {
badge = "e3326_front_P5V27C";
position = "rear";
status = "disabled";
orientation = [31 00];
phandle = <0x485>;
drivernode0 {
devname = "ov5693 2-0036";
proc-device-tree = "/proc/device-tree/i2c@3180000/ov5693_c@36";
pcl_id = "v4l2_sensor";
status = "disabled";
phandle = <0x486>;
};
``
extracted_proc_202206231508.dts (390.9 KB)
module0 {
badge = "e3326_front_P5V27C";
position = "rear";
status = "okay";
orientation = [31 00];
phandle = <0x485>;
drivernode0 {
devname = "ov5693 2-0036";
proc-device-tree = "/proc/device-tree/i2c@3180000/ov5693_c@36";
pcl_id = "v4l2_sensor";
status = "okay";
phandle = <0x486>;
};
drivernode1 {
proc-device-tree = "/proc/device-tree/e3326_lens_ov5693@P5V27C/";
pcl_id = "v4l2_lens";
status = "okay";
phandle = <0x487>;
};
};
can’t see /dev/video0
The vi@15c10000{} nvcsi@15a00000{} looks like incorrect.