Issues bringing in upstream kernel (6.8.12 in Ubuntu 24.04 LTS)

Hey, I’m trying to bring in kernel from 24.04 LTS using JP6.2 OOT modules / DTBs , which is 6.8.12 kernel, but there are still issues with SPI, “prod-settings” which I was able to fix, but there’s also no GPU / display, which I don’t follow why.

Patches for the things I fixed already:

  1. “prod-settings” - which in OOT appears it was expected upstreamed somewhat but couldn’t find it:
    Patches for kernel:
    0001-prod-settings-is-not-a-SPI-device.patch.txt (779 Bytes)
    0002-prod-settings-is-not-a-I2C-device.patch.txt (755 Bytes)
    0003-Port-over-tegra-prod-settings-from-Jetpack-kernel.patch.txt (58.5 KB)

OOT-Modules:
0001-Tegra-prod-settings-use-legacy-version-for-newer-ker.patch.txt (16.7 KB)

  1. SPI

Fixes spidev and spi-tegra114 not being updated on how to set cs_setup delay unit/value (see discussion for 684a47847ae639689e7b823251975348a8e5434f commit in the mailing lists)

Kernel:
0004-Add-tegra-to-spidev.patch.txt (1.1 KB)
0005-Revert-spi-Reintroduce-spi_set_cs_timing.patch.txt (1.9 KB)

However I still have no display nor GPU. Does anybody know what I’m missing? Only pointer I got is

[   13.936817] host1x drm: iommu configuration for device failed with -ENOENT

Here’s my current full dmesg:
dmesg.log (74.3 KB)
And kernel config:
config.txt (287.0 KB)

Has anybody figured this already?

Hi skrilax,

Are you using the devkit or custom board for Orin Nano?

Do you mean that you are using JP6.2+upstream kernel 6.8.12 for Orin Nano?

Is the SPI configuration relating to GPU/display issue?

Have you tried using Jetpack 6.2 with default K5.15 and if there’s any issue?

Using the developer kit. 5.15 kernel works fine.

I don’t think SPI issue is a problem for display / GPU and I don’t see any errors related to it after fixing stuff in kernel.

Above is JP6.2+upstream kernel 6.8.12.

I also tried with vanilla 6.12.17 (using rel-36_eng_2025-02-28 tag in nvidia gits for OOT modules etc.). Still no display though :/

Could you check

To apply the patch to kernel?

I checked the patches, they are in (since the kernel is 6.8, I only checked the first 10 as I assume the rest are merged in per the guide. I’m now able to get to fbconsole (my own error), but no X server.

I do now see a lot of
[ 19.844465] NVRM rpcRmApiControl_dce: NVRM_RPC_DCE: Failed RM ctrl call cmd:0x731341 result 0xffff in dmesg.

When looking into Xorg log, I see lines that appear on 6.8 but not stock 5.15:

[ 36.940] (EE) NVIDIA(GPU-0): Failed to acquire modesetting permission.
[ 36.940] (EE) NVIDIA(0): Failing initialization of X screen

[ 36.972] (EE) NVIDIA(GPU-1): Failed to initialize the NVIDIA graphics device!

Full Xorg log:

[    36.806] Kernel command line: BOOT_IMAGE=/boot/Image root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0 nvidia-drm.fbdev=1 bl_prof_dataptr=2031616@0x471E10000 bl_prof_ro_ptr=65536@0x471E00000
[    36.806] xorg-server 2:21.1.4-2ubuntu1.7~22.04.13 (For technical support please see http://www.ubuntu.com/support) 
[    36.806] Current version of pixman: 0.40.0
[    36.806] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[    36.806] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    36.806] (==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar  7 23:47:06 2025
[    36.806] (==) Using config file: "/etc/X11/xorg.conf"
[    36.806] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    36.806] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    36.806] (==) No Layout section.  Using the first Screen section.
[    36.806] (==) No screen section available. Using defaults.
[    36.806] (**) |-->Screen "Default Screen Section" (0)
[    36.806] (**) |   |-->Monitor "<default monitor>"
[    36.806] (==) No device specified for screen "Default Screen Section".
	Using the first device section listed.
[    36.806] (**) |   |-->Device "Tegra0"
[    36.806] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[    36.806] (==) Automatically adding devices
[    36.806] (==) Automatically enabling devices
[    36.807] (==) Automatically adding GPU devices
[    36.807] (==) Automatically binding GPU devices
[    36.807] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    36.807] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[    36.807] 	Entry deleted from font path.
[    36.807] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    36.807] 	Entry deleted from font path.
[    36.807] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    36.807] 	Entry deleted from font path.
[    36.807] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[    36.807] 	Entry deleted from font path.
[    36.807] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[    36.807] 	Entry deleted from font path.
[    36.807] (==) FontPath set to:
	/usr/share/fonts/X11/misc,
	/usr/share/fonts/X11/Type1,
	built-ins
[    36.807] (==) ModulePath set to "/usr/lib/xorg/modules"
[    36.807] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[    36.807] (II) Loader magic: 0xaaaaad400010
[    36.807] (II) Module ABI versions:
[    36.807] 	X.Org ANSI C Emulation: 0.4
[    36.807] 	X.Org Video Driver: 25.2
[    36.807] 	X.Org XInput driver : 24.4
[    36.807] 	X.Org Server Extension : 10.0
[    36.807] (++) using VT number 1

[    36.810] (II) systemd-logind: took control of session /org/freedesktop/login1/session/c6
[    36.810] (II) xfree86: Adding drm device (/dev/dri/card1)
[    36.810] (II) Platform probe for /sys/devices/platform/13800000.display/drm/card1
[    36.811] (II) systemd-logind: got fd for /dev/dri/card1 226:1 fd 12 paused 0
[    36.811] (II) xfree86: Adding drm device (/dev/dri/card0)
[    36.811] (II) Platform probe for /sys/devices/platform/bus@0/13e00000.host1x/drm/drm/card0
[    36.812] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 13 paused 0
[    36.813] (II) no primary bus or device found
[    36.813] 	falling back to /sys/devices/platform/13800000.display/drm/card1
[    36.813] (WW) "dri" will not be loaded unless you've specified it to be loaded elsewhere.
[    36.813] (II) "glx" will be loaded by default.
[    36.813] (II) LoadModule: "extmod"
[    36.813] (II) Module "extmod" already built-in
[    36.813] (II) LoadModule: "glx"
[    36.814] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    36.815] (II) Module glx: vendor="X.Org Foundation"
[    36.815] 	compiled for 1.21.1.4, module version = 1.0.0
[    36.815] 	ABI class: X.Org Server Extension, version 10.0
[    36.815] (II) LoadModule: "nvidia"
[    36.815] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[    36.816] (II) Module nvidia: vendor="NVIDIA Corporation"
[    36.816] 	compiled for 1.6.99.901, module version = 1.0.0
[    36.816] 	Module class: X.Org Video Driver
[    36.816] (II) NVIDIA dlloader X Driver  540.4.0  Release Build  (bugfix_main)  (buildbrain@mobile-u64-6336-d8000)  Tue Jan  7 17:24:02 PST 2025
[    36.816] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[    36.816] (II) systemd-logind: releasing fd for 226:1
[    36.905] (II) Loading sub module "fb"
[    36.905] (II) LoadModule: "fb"
[    36.905] (II) Module "fb" already built-in
[    36.905] (II) Loading sub module "wfb"
[    36.905] (II) LoadModule: "wfb"
[    36.905] (II) Loading /usr/lib/xorg/modules/libwfb.so
[    36.905] (II) Module wfb: vendor="X.Org Foundation"
[    36.905] 	compiled for 1.21.1.4, module version = 1.0.0
[    36.905] 	ABI class: X.Org ANSI C Emulation, version 0.4
[    36.906] (II) systemd-logind: releasing fd for 226:0
[    36.907] (II) NVIDIA(0): Creating default Display subsection in Screen section
	"Default Screen Section" for depth/fbbpp 24/32
[    36.907] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[    36.907] (==) NVIDIA(0): RGB weight 888
[    36.907] (==) NVIDIA(0): Default visual is TrueColor
[    36.907] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[    36.907] (**) NVIDIA(0): Option "AllowEmptyInitialConfiguration" "true"
[    36.907] (**) NVIDIA(0): Enabling 2D acceleration
[    36.907] (II) Loading sub module "glxserver_nvidia"
[    36.907] (II) LoadModule: "glxserver_nvidia"
[    36.907] (II) Loading /usr/lib/xorg/modules/extensions/libglxserver_nvidia.so
[    36.912] (II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
[    36.912] 	compiled for 1.6.99.901, module version = 1.0.0
[    36.912] 	Module class: X.Org Server Extension
[    36.912] (II) NVIDIA GLX Module  540.4.0  Release Build  (bugfix_main)  (buildbrain@mobile-u64-6336-d8000)  Tue Jan  7 17:23:04 PST 2025
[    36.912] (II) NVIDIA: The X server supports PRIME Render Offload.
[    36.914] (--) NVIDIA(0): Valid display device(s) on GPU-0 at SoC
[    36.914] (--) NVIDIA(0):     DFP-0
[    36.914] (--) NVIDIA(0):     DFP-1
[    36.940] (II) NVIDIA(0): NVIDIA GPU Orin (nvgpu) (GA10B) at SoC (GPU-0)
[    36.940] (--) NVIDIA(0): Memory: 7802848 kBytes
[    36.940] (--) NVIDIA(0): VideoBIOS: 
[    36.940] (EE) NVIDIA(GPU-0): Failed to acquire modesetting permission.
[    36.940] (EE) NVIDIA(0): Failing initialization of X screen
[    36.972] (II) UnloadModule: "nvidia"
[    36.972] (II) UnloadSubModule: "glxserver_nvidia"
[    36.972] (II) Unloading glxserver_nvidia
[    36.972] (II) UnloadSubModule: "wfb"
[    36.972] (==) NVIDIA(G0): Depth 24, (==) framebuffer bpp 32
[    36.972] (==) NVIDIA(G0): RGB weight 888
[    36.972] (==) NVIDIA(G0): Default visual is TrueColor
[    36.972] (==) NVIDIA(G0): Using gamma correction (1.0, 1.0, 1.0)
[    36.972] (**) NVIDIA(G0): Enabling 2D acceleration
[    36.972] (II) NVIDIA: The X server supports PRIME Render Offload.
[    36.972] (EE) NVIDIA(GPU-1): Failed to initialize the NVIDIA graphics device!
[    36.972] (EE) NVIDIA(G0): Failing initialization of X screen
[    36.972] (II) UnloadModule: "nvidia"
[    36.972] (II) UnloadSubModule: "wfb"
[    36.972] (EE) Screen(s) found, but none have a usable configuration.
[    36.972] (EE) 
Fatal server error:
[    36.972] (EE) no screens found(EE) 
[    36.972] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[    36.973] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[    36.973] (EE) 
[    37.218] (EE) Server terminated with error (1). Closing log file.

I was able to solve above by using this in xorg.conf, this stopped xorg from looking for another GPUs (like if it was expecting dGPU, or ?)

Section "ServerFlags"
    Option "AutoAddGPU" "off"
EndSection

Section "Module"
    Disable     "dri"
    SubSection  "extmod"
        Option  "omit xfree86-dga"
    EndSubSection
EndSection

Section "Device"
    Identifier  "Tegra0"
    Driver      "nvidia"
# Allow X server to be started even if no display devices are connected.
    Option      "AllowEmptyInitialConfiguration" "true"
    Option      "ProbeAllGpus" "false"
    Option      "PrimaryGPU" "on"
EndSection

This worked on JP6.2.
This also worked when upgrading the system to 24.04 LTS :)

1 Like