Hi Nvidia team,
We are currently developing a camera driver on JetPack 7.1.
While we can successfully capture frames and verify the frame rate using the v4l2-ctl command, we are running into issues when launching argus_camera (it fails to start).
Here are the details and configuration files for your reference:
- Device Tree
/ {
tegra-capture-vi {
num-channels = <1>;
ports {
status = "okay";
port@0 {
reg = <0>;
status = "okay";
jetson_vi_in0: endpoint {
status = "okay";
vc-id = <0>;
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&jetson_csi_out0>;
};
};
};
};
bus@0 {
host1x@8181200000 {
nvcsi@8188000000 {
num-channels = <1>;
channel@0 {
reg = <0>;
status = "okay";
ports {
status = "okay";
port@0 {
reg = <0>;
status = "okay";
jetson_csi_in0: endpoint@0 {
status = "okay";
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&cam_csi_out0>;
};
};
port@1 {
reg = <1>;
status = "okay";
jetson_csi_out0: endpoint@1 {
status = "okay";
remote-endpoint = <&jetson_vi_in0>;
};
};
};
};
};
};
i2c@810c6d0000 {
clock-frequency = <100000>;
status = "okay";
max96712_0@4b {
compatible = "nvidia,max96712_0";
reg = <0x4b>;
};
cam_0@20 {
compatible = "******,sgcam-gmsl2-0";
def-addr = <0x36>;
reg = <0x20>;
eeprom-def = <0x50>;
eeprom-addr = <0x30>;
devnode = "video0";
/* Physical dimensions of sensor */
physical_w = "15.0";
physical_h = "12.5";
sensor_model ="******";
/* Defines number of frames to be dropped by driver internally after applying */
/* sensor crop settings. Some sensors send corrupt frames after applying */
/* crop co-ordinates */
post_crop_frame_drop = "0";
/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
use_decibel_gain = "false";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
clocks = <&bpmp TEGRA264_CLK_EXTPERIPH1>,
<&bpmp TEGRA264_CLK_EXTPERIPH1>;
clock-names = "extperiph1", "pllp_grtba";
mclk = "extperiph1";
der_id = <0>;
mode0 {
mclk_khz = "24000";
num_lanes = "4";
tegra_sinterface = "serial_a";
vc_id = "0";
phy_mode = "CPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
lane_polarity = "0";
dynamic_pixel_bit_depth = "16";
csi_pixel_bit_depth = "12";
mode_type = "bayer_wdr_pwl";
pixel_phase = "bggr";
active_w = "3840";
active_h = "2160";
readout_orientation = "0";
line_length = "4400";
inherent_gain = "1";
mclk_multiplier = "25";
pix_clk_hz = "320000000";
serdes_pix_clk_hz = "600000000";
gain_factor = "100";
min_gain_val = "100";
max_gain_val = "1550";
step_gain_val = "1";
default_gain = "100";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
framerate_factor = "1000000";
min_framerate = "30000000";
max_framerate = "30000000";
step_framerate = "1";
default_framerate = "30000000";
exposure_factor = "1000000";
min_exp_time = "25";
max_exp_time = "31000";
step_exp_time = "1";
default_exp_time = "31000";/* us */
embedded_metadata_height = "0";
/* WDR related settings */
......
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
cam_csi_out0: endpoint {
vc-id = <0>;
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&jetson_csi_in0>;
};
};
};
};
};
};
tegra-camera-platform {
compatible = "nvidia, tegra-camera-platform";
modules {
status = "okay";
module0 {
status = "okay";
badge = "cam_bottomleft";
position = "bottomleft";
orientation = "1";
drivernode0 {
status = "okay";
pcl_id = "v4l2_sensor";
devname = "sgcam-gmsl2 12-0020";
sysfs-device-tree = "/sys/firmware/devicetree/base/bus@0/i2c@810c6d0000/cam_0@20";
};
};
};
};
};
-
v4l2-ctl Output
-
Argus Error/Log
nvidia@jetson-thor:~/Desktop$ argus_camera -d 0
Executing Argus Sample Application (argus_camera)
Argus Version: 0.99.3.3 (multi-process)
Error generated. /usr/src/jetson_multimedia_api/argus/samples/utils/GLContext.cpp, initializeInternal:130 Could not query EGL configs (error 0x3008)
Error generated. /usr/src/jetson_multimedia_api/argus/samples/utils/GLContext.cpp, initialize:96 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/renderer/Composer.cpp, threadInitialize:225 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/samples/utils/Thread.cpp, threadFunction:126 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/renderer/Composer.cpp, initialize:103 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/renderer/Composer.cpp, getInstance:78 Initalization failed
Error generated. /usr/src/jetson_multimedia_api/argus/samples/utils/Thread.cpp, waitRunning:83 Invalid thread state 3
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/renderer/Composer.cpp, initialize:103 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/renderer/Composer.cpp, getInstance:78 Initalization failed
Error generated. /usr/src/jetson_multimedia_api/argus/samples/utils/Thread.cpp, waitRunning:83 Invalid thread state 3
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/renderer/Composer.cpp, initialize:103 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, createOutputStream:1983 Failed to create OutputStream
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/modules/tasks/StillCapture.cpp, start:150 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/ui/capture/AppModuleCapture.cpp, start:180 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/ui/camera/Main.cpp, onModuleChanged:336 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/samples/utils/Observed.cpp, registerObserver:62 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/ui/camera/Main.cpp, start:273 (propagating)
Error generated. /usr/src/jetson_multimedia_api/argus/apps/camera/ui/common/App.cpp, run:96 (propagating)
Segmentation fault (core dumped)
nvidia@jetson-thor:~/Desktop$
nvidia@jetson-thor:~/Desktop$ sudo service nvargus-daemon stop
export NVCAMERA_NITO_PATH=CONFIG
sudo -E enableCamInfiniteTimeout=1 nvargus-daemon
=== NVIDIA Libargus Camera Service (0.99.33)
=== Listening for connections...
=== argus_camera[12160]: Connection established (FFFFB01D88C0)
*******************************************************************
Running Power Service HW ISP
*******************************************************************
*******************************************************************
Running Power Service HW ISP
*******************************************************************
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
NvCameraIspInitialize: Using Config file
LSC: LSC surface is not based on full res!
[NvCameraIspDriver::initialize] NOT Using CamPG
=== argus_camera[12160]: CameraProvider initialized (0xffffa8263460)
NvCameraIspInitialize: Using Config file
LSC: LSC surface is not based on full res!
[NvCameraIspDriver::initialize] NOT Using CamPG
libEGL warning: pci id for fd 42: 10de:2b00, driver (null)
pci id for fd 43: 10de:2b00, driver (null)
pci id for fd 44: 10de:2b00, driver (null)
libEGL warning: egl: failed to create dri2 screen
pci id for fd 43: 10de:2b00, driver (null)
pci id for fd 47: 10de:2b00, driver (null)
libEGL warning: egl: failed to create dri2 screen
(Argus) Error 0x00000002: Failed to create EGLStream (in src/api/EGLOutputStreamImpl.cpp, function initialize(), line 124)
(Argus) Error 0x00000002: (propagating from src/api/CaptureSessionImpl.cpp, function createEGLOutputStream(), line 1004)
(Argus) Error 0x00000008: Unknown stream deleted. (in src/api/CaptureSessionImpl.cpp, function outputStreamDeleted(), line 1121)
(Argus) Error 0x00000002: (propagating from src/api/CaptureSessionImpl.cpp, function createOutputStreamInternal(), line 855)
=== argus_camera[12160]: Connection closed (FFFFB01D88C0)
=== argus_camera[12160]: WARNING: CameraProvider was not destroyed before client connection terminated.
=== argus_camera[12160]: The client may have abnormally terminated. Destroying CameraProvider...
=== argus_camera[12160]: CameraProvider destroyed (0xffffa8263460)
=== argus_camera[12160]: WARNING: Cleaning up 1 outstanding sessions...
=== argus_camera[12160]: NOTE: Destroy all libargus objects before destroying the CameraProvider to avoid these warnings.
CaptureService:stop: is requested --------------------------
=== argus_camera[12160]: Connection cleaned up (FFFFB01D88C0)
