Orin Desktop version issue

Hello.

Tegra Release 34.1.1
HOST OS Ubuntu 18.04.

I connected monitor to DP port on dev kit.

When I cloned L4T Driver Package (BSP) from web and flashed it by:

sudo ./apply_binaries.sh
sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1

Everything is OK. Monitor works and asks user name, password and other initial parameters.

Next step is compiling kernel from sources:

./source_sync.sh

After coping all files I flash the images:

sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1

While booting, there is Warning Test key is used. Afteg it, monitor goes to power save mode.

Similar issue i found inside this topic:

But without solution.

Could you please help!

That post has no solution because no one is sharing the log… so are you willing to share the uart log?

Both logs are attached.
flash.txt (66.3 KB)
uart.txt (69.9 KB)

I see your uart is still booting into kernel, so is this still under operation? Are you able to login the uart console?

Yes, UART console (via USB type C) is active and I can use it.
But DP monitor without activity.

Could you share your “lsmod” result?

demo@ubuntu:~$ lsmod
Module                  Size  Used by
fuse                  131072  5
lzo_rle                16384  144
lzo_compress           16384  1 lzo_rle
zram                   32768  12
bnep                   28672  2
loop                   40960  1
rtk_btusb              69632  0
aes_ce_blk             36864  1
nvgpu                2686976  16
crypto_simd            24576  1 aes_ce_blk
btusb                  53248  0
cryptd                 28672  1 crypto_simd
btrtl                  24576  1 btusb
snd_soc_tegra186_asrc    40960  1
rtl8822ce            3108864  0
input_leds             16384  0
aes_ce_cipher          20480  1 aes_ce_blk
snd_soc_tegra210_ope    32768  1
snd_soc_tegra186_dspk    20480  2
snd_soc_tegra210_iqc    16384  0
snd_soc_tegra210_mvc    20480  2
snd_hda_codec_hdmi     65536  1
snd_soc_tegra210_afc    20480  6
btbcm                  24576  1 btusb
ghash_ce               28672  0
ofpart                 16384  0
snd_soc_tegra186_arad    28672  2 snd_soc_tegra186_asrc
snd_soc_tegra210_admaif   131072  1
snd_soc_tegra210_adsp   774144  1
ucsi_ccg               28672  0
btintel                28672  1 btusb
sha2_ce                20480  0
snd_soc_tegra_machine_driver    16384  0
snd_soc_tegra210_dmic    20480  4
snd_soc_tegra210_adx    32768  4
snd_soc_tegra210_amx    32768  4
cmdlinepart            16384  0
snd_hda_tegra          20480  0
sha256_arm64           28672  1 sha2_ce
snd_soc_tegra210_mixer    49152  1
snd_soc_tegra_pcm      16384  1 snd_soc_tegra210_admaif
typec_ucsi             36864  1 ucsi_ccg
snd_soc_tegra210_i2s    24576  6
snd_soc_tegra_utils    28672  3 snd_soc_tegra210_admaif,snd_soc_tegra_machine_driver,snd_soc_tegra210
_adsp
snd_soc_tegra210_sfc    61440  4
cfg80211              839680  1 rtl8822ce
nvadsp                114688  1 snd_soc_tegra210_adsp
sha1_ce                20480  0
snd_hda_codec         135168  2 snd_hda_codec_hdmi,snd_hda_tegra
qspi_mtd               28672  0
typec                  49152  1 typec_ucsi
snd_soc_spdif_tx       16384  0
pwm_fan                24576  0
snd_soc_simple_card_utils    24576  1 snd_soc_tegra_utils
tegra_bpmp_thermal     16384  0
snd_soc_tegra210_ahub  1245184  3 snd_soc_tegra210_ope,snd_soc_tegra210_sfc
nct1008                24576  0
snd_hda_core           94208  3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_tegra
mtd                    77824  4 cmdlinepart,qspi_mtd,ofpart
tegra210_adma          28672  2 snd_soc_tegra210_admaif,snd_soc_tegra210_adsp
userspace_alert        16384  0
spi_tegra114           32768  0
binfmt_misc            24576  1
ina3221                24576  0
ip_tables              36864  0
x_tables               53248  1 ip_tables

nvidia.ko and nvidia-modeset.ko are missing in your lsmod.

Are those two files also built out from your source?

I compiled sources, obtained by

./source_sync.sh

After compilation, there are no files nvidia.ko and nvidia-modeset.ko.
What is location of sources for these *.ko files?

What is solution?
How to get missed *.ko modules from your sources?

Something important before mentioning those specific kernel modules: What do you see for “uname -r”? If you compiled the kernel, and wanted to use the old modules, then you must have the same “uname -r” on both old and new kernels. “uname -r” is the result of the base kernel version, along with a suffix from the option “CONFIG_LOCALVERSION”, and many people skip setting “CONFIG_LOCALVERSION”. The default is:
CONFIG_LOCALVERSION="-tegra"

Modules are searched for at:
/lib/modules/$(uname -r)/kernel
(if this changes, but you did not install modules to the new location, then modules will appear to be missing)

Basically you compile the kernel Image target, and also you compile the kernel modules target, then install both if the modules differ. There are times you cannot reuse the old modules, and would actually want “uname -r” to change, but here are some hints about module “.ko” files…

If you look at “/lib/modules/$(uname -r)/kernel”, then you will find subdirectories match subdirectories of the actual kernel source. If you were to correctly set up kernel module configuration and build modules, then a module would appear in the kernel source tree where it’s source is located. As a contrived example, USB HID content is in the source at “drivers/hid/”, and any compiled module would also be in “drivers/hid/” (many “*.ko” files would be found here after module build). As a result, when installed, those files would be copied to the running system at:
/lib/modules/$(uname -r)/kernel/drivers/hid/*.ko

I would expect the two NVIDIA drivers to still be present if “uname -r” did not change. If this did change, then I would expect they’d need install to that new location. Even if they did not change, if the kernel itself had some new detail which makes the old modules incompatible, then those modules would fail to load (which is different than the files missing).

It is important to know that when you build a kernel the target “make Image” will also propagate various configuration items correctly throughout the source. This means one could then just “make modules”. However, if you did not first “make Image”, then the configuration would not propagate, and you’d need to run the command “make modules_prepare” before “make modules”. And of course you would have had to have configured correctly before any of those make commands, or else configuration being propagated would be nonsense.

If you set the modules install location to an empty/blank temporary location, then “make modules_install” will copy the result content there and separate out the source. I’ll recommend trying it to explore what files are put in place there. If you simply run “make modules_install” without first setting up for a temp location, then it will directly install to what it thinks the running system uses. I do not recommend this latter install location on a Jetson since it does not give you a chance to see if it is correct.

An example for modules going to an alternate location, run as a regular user:

mkdir -p "${HOME}/build/modules"
export TEGRA_MODULES_OUT="${HOME}/build/modules"
# ...configure steps, including setting "CONFIG_LOCALVERSION"...
# Then either of "`make Image`" or "`make modules_prepare`".
# Then the install of modules to a temp location:
make INSTALL_MOD_PATH=$TEGRA_MODULES_OUT modules

(then examine all that is in “${HOME}/build/modules”)

There are actually other things to do in addition to this, but that is the gist of seeing how and where modules are built and installed.

linuxdev, thank you for this information and such expanded answer.
But you says about loading these modules into the Kernel.
In my case I don’t have two modules (nvidia.ko and nvidia-modeset.ko) after compilation of sources, which provided by Nvidia.

WayneWWW, I still need answer, how to compile missed modules from your sources…

Finally, I’ve found these modules here:

lib/modules/5.10.65-tegra/extra/opensrc-disp/

For loading these modules I had to update dependencies:

sudo depmod -a

After it, desktop version of Ubuntu is starting successfully.

How do you compile nvidia.ko and nvidia-modeset.ko?

I have the same problem as you

I didn’t compile these *.ko modules, because Nvidia didn’t provide sources for it.
These modules appears after running apply_binaries.sh script.

Sorry that the source is in the tarball. Source sync does not download it.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.