You are not logged in.
Hello, I run a self-compiled 6.5.1 kernel without troubles on a DELL XPS 13 with an external monitor connected. Newer kernels have upstreamed the camera drivers so from time to time I try them (both self compiled with similar configurations to my current ones and with the vanilla standard "linux" package from Arch). Both 6.10.4 from arch and 6.10.5 compiled myself fail to drive an external monitor. The problem happens even before X starts. If I boot with the laptop closed the monitor starts up giving the EFI bootloader, the booting system starts and then when the drm drivers take over the monitor just dies. I can't pin point what the cause could be.
I have tried a ton of combinations of booting with and without the new xe driver, with and without i915 taking over.
I have these modules on the 6.5.1 kernel
$ lsmod | grep drm
drm_buddy 20480 1 i915
drm_display_helper 229376 1 i915
cec 69632 2 drm_display_helper,i915
And these on the 6.10.5
$ lsmod | grep drm
drm_ttm_helper 12288 1 xe
drm_suballoc_helper 12288 1 xe
drm_gpuvm 45056 1 xe
drm_exec 12288 2 drm_gpuvm,xe
drm_buddy 20480 2 xe,i915
ttm 102400 3 drm_ttm_helper,xe,i915
drm_display_helper 229376 2 xe,i915
cec 69632 3 drm_display_helper,xe,i915
Dmesg on the 6.5.1 kernel looks like this
$ journalctl -k | grep drm
Aug 14 17:29:54 forkchoice kernel: ACPI: bus type drm_connector registered
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] VT-d active for gfx access
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] Using Transparent Hugepages
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adlp_dmc.bin (v2.20)
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: GuC firmware i915/adlp_guc_70.bin version 70.20.0
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: GUC: RC enabled
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized
Aug 14 17:29:54 forkchoice kernel: [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
Aug 14 17:29:54 forkchoice kernel: fbcon: i915drmfb (fb0) is primary device
Aug 14 17:29:54 forkchoice kernel: i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
Aug 14 17:29:54 forkchoice systemd[1]: Starting Load Kernel Module drm...
And with xe blacklisted like this:
$ journalctl -k -b -1 | grep drm
Aug 14 17:17:02 forkchoice kernel: ACPI: bus type drm_connector registered
Aug 14 17:17:02 forkchoice kernel: [drm] Initialized simpledrm 1.0.0 20200625 for simple-framebuffer.0 on minor 0
Aug 14 17:17:02 forkchoice kernel: simple-framebuffer simple-framebuffer.0: [drm] fb0: simpledrmdrmfb frame buffer device
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] VT-d active for gfx access
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] Using Transparent Hugepages
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adlp_dmc.bin (v2.20)
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: GuC firmware i915/adlp_guc_70.bin version 70.20.0
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] GT0: GUC: RC enabled
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized
Aug 14 17:17:02 forkchoice kernel: [drm] Initialized i915 1.6.0 20230929 for 0000:00:02.0 on minor 1
Aug 14 17:17:02 forkchoice kernel: fbcon: i915drmfb (fb0) is primary device
Aug 14 17:17:02 forkchoice kernel: i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
Aug 14 17:17:02 forkchoice systemd[1]: Starting Load Kernel Module drm...
Aug 14 17:17:02 forkchoice systemd[1]: modprobe@drm.service: Deactivated successfully.
Aug 14 17:17:02 forkchoice systemd[1]: Finished Load Kernel Module drm.
Aug 14 17:18:03 forkchoice kernel: i915 0000:00:02.0: [drm] Selective fetch area calculation failed in pipe A
And without blacklisting xe I get this
$ sudo dmesg | grep drm
[ +0.000336] [Wed Aug 14 17:37:11 2024] ACPI: bus type drm_connector registered
[ +0.000519] [Wed Aug 14 17:37:13 2024] systemd[1]: Starting Load Kernel Module drm...
[ +0.001154] [Wed Aug 14 17:37:13 2024] systemd[1]: modprobe@drm.service: Deactivated successfully.
[ +0.000070] [Wed Aug 14 17:37:13 2024] systemd[1]: Finished Load Kernel Module drm.
[ +0.004040] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] Using GuC firmware from i915/adlp_guc_70.bin version 70.20.0
[ +0.003733] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] Using HuC firmware from i915/tgl_huc.bin version 7.9.3
[ +0.000102] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] GT0: using 65535 GUC ID(s)
[ +0.001988] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] Finished loading DMC firmware i915/adlp_dmc.bin (v2.20)
[ +0.118781] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] vcs1 fused off
[ +0.000003] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] vcs3 fused off
[ +0.000001] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] vcs4 fused off
[ +0.000001] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] vcs5 fused off
[ +0.000000] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] vcs6 fused off
[ +0.000001] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] vcs7 fused off
[ +0.000001] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] vecs1 fused off
[ +0.000000] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] vecs2 fused off
[ +0.000001] [Wed Aug 14 17:37:14 2024] xe 0000:00:02.0: [drm] vecs3 fused off
[ +0.141424] [Wed Aug 14 17:37:15 2024] xe 0000:00:02.0: [drm] Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.
[ +0.019685] [Wed Aug 14 17:37:15 2024] [drm] Initialized xe 1.1.0 20201103 for 0000:00:02.0 on minor 0
[ +0.021176] [Wed Aug 14 17:37:15 2024] xe 0000:00:02.0: [drm] Allocated fbdev into stolen failed: -12
[ +0.012274] [Wed Aug 14 17:37:15 2024] fbcon: xedrmfb (fb0) is primary device
[ +0.026541] [Wed Aug 14 17:37:15 2024] xe 0000:00:02.0: [drm] fb0: xedrmfb frame buffer device
[Aug14 17:38] [Wed Aug 14 17:38:00 2024] xe 0000:00:02.0: [drm] Selective fetch area calculation failed in pipe A
All of them work fine with the internal screen, it' s just the external monitor connected via a Dell docking station that fails while booting.
Framebuffer also shows some differences. On 6.1.5
$ journalctl -k | grep fb
Aug 14 17:41:53 forkchoice kernel: Command line: initrd=\intel-ucode.img initrd=\initramfs-linux-6.5.1.img root=PARTUUID=64fbe995-b961-6a47-a60c-b6c1fed81940 rw i915.enable_psr=0
Aug 14 17:41:53 forkchoice kernel: ACPI: Reserving SSDT table memory at [mem 0x5d7f6000-0x5d7fbc54]
Aug 14 17:41:53 forkchoice kernel: ACPI: Reserving SSDT table memory at [mem 0x5d75f000-0x5d75fb43]
Aug 14 17:41:53 forkchoice kernel: Kernel command line: initrd=\intel-ucode.img initrd=\initramfs-linux-6.5.1.img root=PARTUUID=64fbe995-b961-6a47-a60c-b6c1fed81940 rw i915.enable_psr=0
Aug 14 17:41:53 forkchoice kernel: pci 0000:00:02.0: BAR 2: assigned to efifb
Aug 14 17:41:53 forkchoice kernel: pci 0000:00:1f.4: reg 0x20: [io 0xefa0-0xefbf]
Aug 14 17:41:53 forkchoice kernel: efifb: probing for efifb
Aug 14 17:41:53 forkchoice kernel: efifb: framebuffer at 0x4000000000, using 32400k, total 32400k
Aug 14 17:41:53 forkchoice kernel: efifb: mode is 3840x2160x32, linelength=15360, pages=1
Aug 14 17:41:53 forkchoice kernel: efifb: scrolling: redraw
Aug 14 17:41:53 forkchoice kernel: efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
Aug 14 17:41:53 forkchoice kernel: fbcon: Deferring console take-over
Aug 14 17:41:53 forkchoice kernel: fb0: EFI VGA frame buffer device
Aug 14 17:41:53 forkchoice kernel: fbcon: Taking over console
Aug 14 17:41:53 forkchoice kernel: fbcon: i915drmfb (fb0) is primary device
Aug 14 17:41:53 forkchoice kernel: i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
Aug 14 17:41:54 forkchoice kernel: mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915])
And on 6.10.5
$ journalctl -k -b -1 | grep fb
Aug 14 17:37:13 forkchoice kernel: Command line: initrd=\intel-ucode.img initrd=\initramfs-linux-6.10.5.img root=PARTUUID=64fbe995-b961-6a47-a60c-b6c1fed81940 rw xe.force_probe=46a6 i915.force_probe=!46a6
Aug 14 17:37:13 forkchoice kernel: ACPI: Reserving SSDT table memory at [mem 0x5d7f6000-0x5d7fbc54]
Aug 14 17:37:13 forkchoice kernel: ACPI: Reserving SSDT table memory at [mem 0x5d75f000-0x5d75fb43]
Aug 14 17:37:13 forkchoice kernel: Kernel command line: initrd=\intel-ucode.img initrd=\initramfs-linux-6.10.5.img root=PARTUUID=64fbe995-b961-6a47-a60c-b6c1fed81940 rw xe.force_probe=46a6 i915.force_probe=!46a6
Aug 14 17:37:13 forkchoice kernel: pci 0000:00:1f.4: BAR 4 [io 0xefa0-0xefbf]
Aug 14 17:37:13 forkchoice kernel: efifb: probing for efifb
Aug 14 17:37:13 forkchoice kernel: efifb: framebuffer at 0x4000000000, using 32400k, total 32400k
Aug 14 17:37:13 forkchoice kernel: efifb: mode is 3840x2160x32, linelength=15360, pages=1
Aug 14 17:37:13 forkchoice kernel: efifb: scrolling: redraw
Aug 14 17:37:13 forkchoice kernel: efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
Aug 14 17:37:13 forkchoice kernel: fbcon: Deferring console take-over
Aug 14 17:37:13 forkchoice kernel: fb0: EFI VGA frame buffer device
Aug 14 17:37:13 forkchoice kernel: Loaded X.509 cert 'Build time autogenerated kernel key: 41ecbf1d51b675e90e13cabfb70dc129136f00a3'
Aug 14 17:37:13 forkchoice kernel: fbcon: Taking over console
Aug 14 17:37:15 forkchoice kernel: xe 0000:00:02.0: [drm] Allocated fbdev into stolen failed: -12
Aug 14 17:37:15 forkchoice kernel: fbcon: xedrmfb (fb0) is primary device
Aug 14 17:37:15 forkchoice kernel: xe 0000:00:02.0: [drm] fb0: xedrmfb frame buffer device
Offline
Try to add "initcall_blacklist=simpledrm_platform_driver_init" to the https://wiki.archlinux.org/title/Kernel_parameters
Otherwise
external monitor connected via a Dell docking station
How does the external output behave w/o the dock?
Offline
Try to add "initcall_blacklist=simpledrm_platform_driver_init" to the https://wiki.archlinux.org/title/Kernel_parameters
This didn't work.
How does the external output behave w/o the dock?
Can't test this currently as I don't have an USB-C/HDMI cable, but I sincerely doubt this is an issue: xrandr detects the monitor connecting and disconnecting and reports the right modes. The monitor starts booting alright and it' s only when switching the console that it dies. This oughta be some bad driver issue.
Offline
Update: it was enough to post that I thought the Dell dock station was unlikely... surely, it is that I found a USB-C / HDMI adapter and as soon as I plugged it that the monitor is on. Thanks, will look what could have possibly changed in the kernel config regarding Dell specific or USB configs.
Offline
Both 6.10.4 from arch and 6.10.5 compiled myself
6.10.3 wasn't affected? Or otherwise do you already know which kernel version broke it?
Offline
Haven't tried other kernels besides these two, compiling a Kernel here is always a problem because I need to start updating the video camera with downstream drivers... it's 2024 and vendors still don't upstream drivers to the Linux Kernel
Offline