Nvarguscamerasrc jetpack-4.3, No cameras available, nvbuf_utils: Could not get EGL display connection, requirements

Hi WayneWWW,

yes it is an headless embedded board reachable by the serial line, ssh and a web interface.

My initial problem is that this simple gstreamer pipeline refuses to start and crashes nvargus-daemon

gst-lauch-1.0 nvarguscamerasrc ! fakesink

@ShaneCCC told me to enable ‘nvisplay@15210000’ but that failed because of a check in the kernel :

[    1.117710] tegradc 15210000.nvdisplay: mandatory prop:nvidia,dc-connector not defined
[    1.117757] tegradc: probe of 15210000.nvdisplay failed with error -22

Should I remove this test ?

Or is it hopeless : no physical display => no nvarguscamerasrc ?

Hi,
Please try to run 01_video_encode sample

$ gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw,width=1920,height=1080 ! filesink location=test.yuv
01_video_encode$ ./video_encode test.yuv 1920 1080 H264 test.264

After flashing through SDKManager, you will see the samples in
/usr/src/jetson_multimedia_api

Would like to know whether it is specific to using Argus. Or samples that utilize NVBuffer APIs, also fail to run.

Hello, DaneLLL

I cannot tell if that succeeds or fails. There are erro messages, but in the end it says ‘successful’

vidia@nvidia-desktop:~/jetson_multimedia_api/samples/01_video_encode$ bash -x TEST-DaneLLL-COMMANDS 
+ gst-launch-1.0 videotestsrc num-buffers=100 '!' video/x-raw,width=1920,height=1080 '!' filesink location=test.yuv
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:01.951677956
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
+ ls -l
total 304468
-rw-r--r-- 1 nvidia nvidia      2128 Dez 10 08:08 Makefile
-rw-rw-r-- 1 nvidia nvidia       164 Apr  7 18:14 TEST-DaneLLL-COMMANDS
-rw-rw-r-- 1 nvidia nvidia 311040000 Apr  7 18:16 test.yuv
-rwxrwxr-x 1 nvidia nvidia    464960 Apr  7 18:04 video_encode
-rw-r--r-- 1 nvidia nvidia     31239 Dez 10 08:08 video_encode_csvparser.cpp
-rw-rw-r-- 1 nvidia nvidia     57128 Apr  7 17:57 video_encode_csvparser.o
-rw-r--r-- 1 nvidia nvidia      5776 Dez 10 08:08 video_encode.h
-rw-r--r-- 1 nvidia nvidia     73061 Dez 10 08:08 video_encode_main.cpp
-rw-rw-r-- 1 nvidia nvidia     85632 Apr  7 17:57 video_encode_main.o
+ ./video_encode test.yuv 1920 1080 H264 test.264
nvbuf_utils: Could not get EGL display connection
nvbuf_utils: ERROR getting proc addr of eglCreateImageKHR
nvbuf_utils: ERROR getting proc addr of eglDestroyImageKHR
Creating Encoder in blocking mode 
Opening in BLOCKING MODE 
NvMMLiteOpen : Block : BlockType = 4 
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4 
875967048
842091865
H264: Profile = 66, Level = 51 
Could not read complete frame from input file
File read complete.
Got 0 size buffer in capture 
App run was successful
nvidia@nvidia-desktop:~/jetson_multimedia_api/samples/01_video_encode$

Hi phdm,

Are you able to reset the nvdisplay 152100000 status in device tree to “okay” and see if you could get the egldisplay?

Hello WayneWWW,

setting nvdisplay 152100000 status in device tree to “okay” gives this message in ‘dmesg’

[ 1.117710] tegradc 15210000.nvdisplay: mandatory prop:nvidia,dc-connector not defined 
[ 1.117757] tegradc: probe of 15210000.nvdisplay failed with error -22

So, no egldisplay.

Hi,
Please check if you have the GL/EGL libs:

nvidia@nvidia-desktop:/usr/lib/aarch64-linux-gnu$ ls -all libEGL*
lrwxrwxrwx 1 root root     20  七  19  2019 libEGL_mesa.so.0 -> libEGL_mesa.so.0.0.0
-rw-r--r-- 1 root root 246728  七  19  2019 libEGL_mesa.so.0.0.0
lrwxrwxrwx 1 root root     15  五  10  2019 libEGL.so -> libEGL.so.1.0.0
lrwxrwxrwx 1 root root     15  五  10  2019 libEGL.so.1 -> libEGL.so.1.0.0
-rw-r--r-- 1 root root  68024  五  10  2019 libEGL.so.1.0.0
nvidia@nvidia-desktop:/usr/lib/aarch64-linux-gnu$ ls -all libGL*
lrwxrwxrwx 1 root root      22  五  10  2019 libGLdispatch.so -> libGLdispatch.so.0.0.0
lrwxrwxrwx 1 root root      22  五  10  2019 libGLdispatch.so.0 -> libGLdispatch.so.0.0.0
-rw-r--r-- 1 root root 1030368  五  10  2019 libGLdispatch.so.0.0.0
lrwxrwxrwx 1 root root      21  五  10  2019 libGLESv1_CM.so -> libGLESv1_CM.so.1.0.0
lrwxrwxrwx 1 root root      21  五  10  2019 libGLESv1_CM.so.1 -> libGLESv1_CM.so.1.0.0
-rw-r--r-- 1 root root  141472  五  10  2019 libGLESv1_CM.so.1.0.0
lrwxrwxrwx 1 root root      18  五  10  2019 libGLESv2.so -> libGLESv2.so.2.0.0
lrwxrwxrwx 1 root root      18  五  10  2019 libGLESv2.so.2 -> libGLESv2.so.2.0.0
-rw-r--r-- 1 root root  153760  五  10  2019 libGLESv2.so.2.0.0
lrwxrwxrwx 1 root root      19  二  22  2019 libGLEWmx.so.1.13 -> libGLEWmx.so.1.13.0
-rw-r--r-- 1 root root  505624  二  22  2019 libGLEWmx.so.1.13.0
lrwxrwxrwx 1 root root      14  五  10  2019 libGL.so -> libGL.so.1.0.0
lrwxrwxrwx 1 root root      14  五  10  2019 libGL.so.1 -> libGL.so.1.0.0
-rw-r--r-- 1 root root  972968  五  10  2019 libGL.so.1.0.0
-rw-r--r-- 1 root root  850714  五  22  2016 libGLU.a
lrwxrwxrwx 1 root root      15  五  22  2016 libGLU.so -> libGLU.so.1.3.1
lrwxrwxrwx 1 root root      15  五  22  2016 libGLU.so.1 -> libGLU.so.1.3.1
-rw-r--r-- 1 root root  400040  五  22  2016 libGLU.so.1.3.1
lrwxrwxrwx 1 root root      16  七  19  2019 libGLX_indirect.so.0 -> libGLX_mesa.so.0
lrwxrwxrwx 1 root root      20  七  19  2019 libGLX_mesa.so.0 -> libGLX_mesa.so.0.0.0
-rw-r--r-- 1 root root  442984  七  19  2019 libGLX_mesa.so.0.0.0
lrwxrwxrwx 1 root root      15  五  10  2019 libGLX.so -> libGLX.so.0.0.0
lrwxrwxrwx 1 root root      15  五  10  2019 libGLX.so.0 -> libGLX.so.0.0.0
-rw-r--r-- 1 root root   63880  五  10  2019 libGLX.so.0.0.0
nvidia@nvidia-desktop:/usr/lib/aarch64-linux-gnu$ cd tegra-egl/
nvidia@nvidia-desktop:/usr/lib/aarch64-linux-gnu/tegra-egl$ ls -all
total 1376
drwxr-xr-x   2 root root    4096  三  16 15:38 .
drwxr-xr-x 130 root root  106496  四   8 13:26 ..
-rw-r--r--   1 root root      37  三  20 11:23 ld.so.conf
-rw-r--r--   1 root root 1096184 十二 10 15:00 libEGL_nvidia.so.0
-rw-r--r--   1 root root   67800 十二 10 15:00 libGLESv1_CM_nvidia.so.1
-rw-r--r--   1 root root  116952 十二 10 15:00 libGLESv2_nvidia.so.2
-rw-r--r--   1 root root     107 十二 10 15:00 nvidia.json
nvidia@nvidia-desktop:/usr/lib/aarch64-linux-gnu/tegra-egl$

Hi DaneLLL,

yes I have those libraries

nvidia@cam5-jp43:~$ cd /usr/lib/aarch64-linux-gnu/
nvidia@cam5-jp43:/usr/lib/aarch64-linux-gnu$ ls -all libEGL*
lrwxrwxrwx 1 root root     20 Jul 19  2019 libEGL_mesa.so.0 -> libEGL_mesa.so.0.0.0
-rw-r--r-- 1 root root 246728 Jul 19  2019 libEGL_mesa.so.0.0.0
lrwxrwxrwx 1 root root     15 Mai 10  2019 libEGL.so -> libEGL.so.1.0.0
lrwxrwxrwx 1 root root     15 Mai 10  2019 libEGL.so.1 -> libEGL.so.1.0.0
-rw-r--r-- 1 root root  68024 Mai 10  2019 libEGL.so.1.0.0
nvidia@cam5-jp43:/usr/lib/aarch64-linux-gnu$ ls -all libGL*
lrwxrwxrwx 1 root root      22 Mai 10  2019 libGLdispatch.so -> libGLdispatch.so.0.0.0
lrwxrwxrwx 1 root root      22 Mai 10  2019 libGLdispatch.so.0 -> libGLdispatch.so.0.0.0
-rw-r--r-- 1 root root 1030368 Mai 10  2019 libGLdispatch.so.0.0.0
lrwxrwxrwx 1 root root      21 Mai 10  2019 libGLESv1_CM.so -> libGLESv1_CM.so.1.0.0
lrwxrwxrwx 1 root root      21 Mai 10  2019 libGLESv1_CM.so.1 -> libGLESv1_CM.so.1.0.0
-rw-r--r-- 1 root root  141472 Mai 10  2019 libGLESv1_CM.so.1.0.0
lrwxrwxrwx 1 root root      18 Mai 10  2019 libGLESv2.so -> libGLESv2.so.2.0.0
lrwxrwxrwx 1 root root      18 Mai 10  2019 libGLESv2.so.2 -> libGLESv2.so.2.0.0
-rw-r--r-- 1 root root  153760 Mai 10  2019 libGLESv2.so.2.0.0
lrwxrwxrwx 1 root root      19 Feb 22  2019 libGLEWmx.so.1.13 -> libGLEWmx.so.1.13.0
-rw-r--r-- 1 root root  505624 Feb 22  2019 libGLEWmx.so.1.13.0
lrwxrwxrwx 1 root root      14 Mai 10  2019 libGL.so -> libGL.so.1.0.0
lrwxrwxrwx 1 root root      14 Mai 10  2019 libGL.so.1 -> libGL.so.1.0.0
-rw-r--r-- 1 root root  972968 Mai 10  2019 libGL.so.1.0.0
-rw-r--r-- 1 root root  850714 Mai 22  2016 libGLU.a
lrwxrwxrwx 1 root root      15 Mai 22  2016 libGLU.so -> libGLU.so.1.3.1
lrwxrwxrwx 1 root root      15 Mai 22  2016 libGLU.so.1 -> libGLU.so.1.3.1
-rw-r--r-- 1 root root  400040 Mai 22  2016 libGLU.so.1.3.1
lrwxrwxrwx 1 root root      16 Jul 19  2019 libGLX_indirect.so.0 -> libGLX_mesa.so.0
lrwxrwxrwx 1 root root      20 Jul 19  2019 libGLX_mesa.so.0 -> libGLX_mesa.so.0.0.0
-rw-r--r-- 1 root root  442984 Jul 19  2019 libGLX_mesa.so.0.0.0
lrwxrwxrwx 1 root root      15 Mai 10  2019 libGLX.so -> libGLX.so.0.0.0
lrwxrwxrwx 1 root root      15 Mai 10  2019 libGLX.so.0 -> libGLX.so.0.0.0
-rw-r--r-- 1 root root   63880 Mai 10  2019 libGLX.so.0.0.0
nvidia@cam5-jp43:/usr/lib/aarch64-linux-gnu$ cd tegra-egl/
nvidia@cam5-jp43:/usr/lib/aarch64-linux-gnu/tegra-egl$ ls -all
total 1372
drwxr-xr-x   2 root root    4096 Mär  1 22:31 .
drwxr-xr-x 124 root root  102400 Apr  8 09:32 ..
-rw-r--r--   1 root root      37 Mär  2 01:14 ld.so.conf
-rw-r--r--   1 root root 1096184 Dez 10 08:00 libEGL_nvidia.so.0
-rw-r--r--   1 root root   67800 Dez 10 08:00 libGLESv1_CM_nvidia.so.1
-rw-r--r--   1 root root  116952 Dez 10 08:00 libGLESv2_nvidia.so.2
-rw-r--r--   1 root root     107 Dez 10 08:00 nvidia.json
nvidia@cam5-jp43:/usr/lib/aarch64-linux-gnu/tegra-egl$

Hi,

I just tried to use argus pipeline with no display connected on my devkit.

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! ‘video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12’ ! fakesink

and it can work fine. Thus, I think there are something else that affects your case.

Actually, I guess you don’t have nvgpu in your kernel module… Could you share your result of command lsmod?

lsmod result is empty, but I try to compile all the required drivers as built-in. What’s the name of the Kconfig symbol ?

I have searched myself and set CONFIG_GK20A=y, and now it works. Thank you @WayneWWW

nvidia@cam5-jp43:~$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12" ! perf ! fakesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 1936 x 1096 FR = 59,999999 fps Duration = 16666667 ; Analog Gain range min 1,000000, max 251,188705; Exposure Range min 16000, max 165770000;

GST_ARGUS: 2464 x 2056 FR = 35,700001 fps Duration = 28011204 ; Analog Gain range min 1,000000, max 251,188705; Exposure Range min 16000, max 165770000;

GST_ARGUS: Running with following settings:
   Camera index = 0
   Camera mode  = 0
   Output Stream W = 1936 H = 1096
   seconds to Run    = 0
   Frame Rate = 59,999999
GST_ARGUS: PowerService: requested_clock_Hz=27216000
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
INFO:
perf: perf0; timestamp: 0:07:21.387476490; bps: 0,000; mean_bps: 0,000; fps: 0,000; mean_fps: 0,000
INFO:
perf: perf0; timestamp: 0:07:22.397613817; bps: 247475,262; mean_bps: 247475,262; fps: 30,689; mean_fps: 30,689
INFO:
perf: perf0; timestamp: 0:07:23.400384655; bps: 241251,531; mean_bps: 244363,397; fps: 29,917; mean_fps: 30,303
INFO:
perf: perf0; timestamp: 0:07:24.403904211; bps: 241071,535; mean_bps: 243266,110; fps: 29,895; mean_fps: 30,167
INFO:
perf: perf0; timestamp: 0:07:25.408253124; bps: 240872,467; mean_bps: 242667,699; fps: 29,870; mean_fps: 30,093
INFO:
perf: perf0; timestamp: 0:07:26.440294918; bps: 242222,749; mean_bps: 242578,709; fps: 30,038; mean_fps: 30,082
INFO:
perf: perf0; timestamp: 0:07:27.466790435; bps: 243531,507; mean_bps: 242737,508; fps: 30,200; mean_fps: 30,101
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:07.848478237
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
GST_ARGUS: Cleaning up
CONSUMER: Done Success
GST_ARGUS: Done Success
Setting pipeline to NULL ...
Freeing pipeline ...
GST_ARGUS:
PowerServiceHwVic::cleanupResources
nvidia@cam5-jp43:~$
nvidia@cam5-jp43:~$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM),width=2464, height=2056, framerate=30/1, format=NV12" ! perf ! fakesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 1936 x 1096 FR = 59,999999 fps Duration = 16666667 ; Analog Gain range min 1,000000, max 251,188705; Exposure Range min 16000, max 165770000;

GST_ARGUS: 2464 x 2056 FR = 35,700001 fps Duration = 28011204 ; Analog Gain range min 1,000000, max 251,188705; Exposure Range min 16000, max 165770000;

GST_ARGUS: Running with following settings:
   Camera index = 0
   Camera mode  = 1
   Output Stream W = 2464 H = 2056
   seconds to Run    = 0
   Frame Rate = 35,700001
GST_ARGUS: PowerService: requested_clock_Hz=66491040
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
INFO:
perf: perf0; timestamp: 0:07:52.762124410; bps: 0,000; mean_bps: 0,000; fps: 0,000; mean_fps: 0,000
INFO:
perf: perf0; timestamp: 0:07:53.775294427; bps: 246734,502; mean_bps: 246734,502; fps: 30,597; mean_fps: 30,597
INFO:
perf: perf0; timestamp: 0:07:54.799310817; bps: 244121,093; mean_bps: 245427,798; fps: 30,273; mean_fps: 30,435
INFO:
perf: perf0; timestamp: 0:07:55.849372617; bps: 238065,988; mean_bps: 242973,861; fps: 29,522; mean_fps: 30,131
INFO:
perf: perf0; timestamp: 0:07:56.883947875; bps: 241629,594; mean_bps: 242637,794; fps: 29,964; mean_fps: 30,089
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:06.624640710
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
GST_ARGUS: Cleaning up
CONSUMER: Done Success
GST_ARGUS: Done Success
Setting pipeline to NULL ...
Freeing pipeline ...
GST_ARGUS:
PowerServiceHwVic::cleanupResources
nvidia@cam5-jp43:~$

May I suggest NVidia to add an error message in nvarguscamerasrc or nvargus-daemon about the missing nvgpu instead of complaining about the display ?

I think when below message shows we need to check the what going on with the display driver. And I think you shouldn’t remove any of the default configure if can’t make sure it was necessary or not.

Hello ShaneCCC,

I did not disable any nvdisplay related thing. They are disabled by default and it seems that they should be selected by overlay’s that were not triggered.

I now have removed all the okay’s that I had added manually to nvdisplay’s and dsi, and it keeps working

OK, it could be you are using customize carrier board without EEPROM for the auto detect the cause the nvgpu not loaded. But I don’t know why it didn’t working for you to set the status to okay.

Hello ShaneCCC,

Sorry about that, but I did not remember I had actually disabled nvdisplay@152100000 with the following comment.

    Avoid the following timeout's and error message's

    [   11.342074] tegra-i2c 3190000.i2c: rx dma timeout txlen:28 rxlen:128
    [   11.348446] tegra-i2c 3190000.i2c: --- register dump for debugging ----
    [   11.355062] tegra-i2c 3190000.i2c: I2C_CNFG - 0x22c00
    [   11.360114] tegra-i2c 3190000.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
    [   11.366725] tegra-i2c 3190000.i2c: I2C_FIFO_CONTROL - 0x1c
    [   11.372209] tegra-i2c 3190000.i2c: I2C_FIFO_STATUS - 0x800040
    [   11.377953] tegra-i2c 3190000.i2c: I2C_INT_MASK - 0x6c
    [   11.383089] tegra-i2c 3190000.i2c: I2C_INT_STATUS - 0x2
    [   11.388342] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50

I retested by re-enabling nvdisplay@152100000, and the error messages came back.

nvarguscamerasrc keeps working with or without that nvdisplay set to “okay”.

What the slave address 0x50 connect to the i2c bus. Does it the sensor?

[   11.388342] tegra-i2c 3190000.i2c: i2c transfer timed out addr: 0x50

On our boards, there’s nothing there.

Our sensors are connected using SPI.

Hi phdm,

If loading gpu driver can make it work, then don’t need to enable nvdisplay. Just keep it disabled.

Also, the userspace app (argus) error cannot tell what is the exact error happens in kernel space. This is EGL framework which has lots of stack. Also, EGL stack is not NV specific library. It cannot be that convenient to tell you it is gpu error.

Hello WayneWWW,

Now you and I know that it is a nvgpu error. But for other people, a message could be added to argus. What is strange is that the EGL related messages do not appear anymore, even without any nvdisplay. So I surmise that argus first checks the nvgpu, and if that fails then it silently calls EGL, without error message about the nvgpu.

To be more correct, we don’t know it is nvgpu error in the beginning. That is why we asked you to check nvdisplay first.
Turns out nvdisplay is not the cause. So you can ignore the nvdisplay now.

And your assumption of argues first checks nvgpu is not 100% correct. These two driver are not directly related.

There are a lot of libraries in this gstreamer pipeline to make it work.

Actually, this part is argus log.

(Argus) Error EndOfFile: Unexpected error in reading socket (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 266)
(Argus) Error EndOfFile: Receive worker failure, notifying 1 waiting threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 340)
(Argus) Error InvalidState: Argus client is exiting with 1 outstanding client threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 357)
(Argus) Error EndOfFile: Receiving thread terminated with error (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadWrapper(), line 368)
(Argus) Error EndOfFile: Client thread received an error from socket (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 145)
(Argus) Error EndOfFile: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 87)

But below are not. These are from other libraries.

nvbuf_utils: Could not get EGL display connection
nvbuf_utils: ERROR getting proc addr of eglCreateImageKHR
nvbuf_utils: ERROR getting proc addr of eglDestroyImageKHR
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:532 No cameras available
Got EOS from element “pipeline0”.
Execution ended after 0:00:00.026902735
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …

And why we can find out the root cause is nvgpu is based on this log you provided.

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.4.0-148-generic aarch64 Ubuntu
Current Operating System: Linux cam5-jp43 4.9.140-topdir-g6b7ebe9-dirty #483 SMP PREEMPT Mon Apr 6 22:27:53 CEST 2020 aarch64
Kernel command line: root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x2772e0000 gpt usbcore.old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2031647.1 bl_prof_dataptr=0x10000@0x275840000 sdhci_tegra.en_boot_part_access=1 quiet
Build Date: 03 June 2019 08:11:53AM
xorg-server 2:1.19.6-1ubuntu4.3 (For technical support please see Enterprise open source support | Ubuntu)
Current version of pixman: 0.34.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (–) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: “/var/log/Xorg.0.log”, Time: Tue Apr 7 09:47:04 2020
(==) Using config file: “/etc/X11/xorg.conf”
(==) Using system config directory “/usr/share/X11/xorg.conf.d”
(EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at “/var/log/Xorg.0.log” for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

Thus, It means it is not good to add any reason in argus side to tell you something like it is nvgpu error. Argus only knows it is EGL error. And EGL only knows it fails to allocate egldisplay but the actual cause is xorg is not able to get nvgpu driver.

What if next time xorg also fails because of lacking other driver? I would say it is possible and we need another debug in that time.