i915 extenal display not recognized

Hi,
I have a brand new ThinkPad X1 and just installed opensuse leap 15.4. I haven’t been able to connect to any external monitor. I currently have a monitor turned on and plugged into my HDMI port, but it doesn’t show up in xrandr or anywhere I looked. The monitor+cable work with my other (leap 15.3) laptop.

I noticed the line “I/O ports at 2000 [disabled] [size=64]” in the lspci output for my graphics card (Intel Iris Xe (Alder Lake-P)). Does that mean my HDMI port is disabled and enabling it solves my problem? How do I do that?

Here’s the output of hwinfo, xrandr, lspci and uname. If there is any other relevant info I can give, I’m happy to.


**localhost:~ #** hwinfo --gfxcard  
27: PCI 02.0: 0300 VGA compatible controller (VGA)               
  [Created at pci.386] 
  Unique ID: _Znp.dhPHymGn9H8 
  SysFS ID: /devices/pci0000:00/0000:00:02.0 
  SysFS BusID: 0000:00:02.0 
  Hardware Class: graphics card 
  Model: "Intel VGA compatible controller" 
  Vendor: pci 0x8086 "Intel Corporation" 
  Device: pci 0x46a6  
  SubVendor: pci 0x17aa "Lenovo" 
  SubDevice: pci 0x22e7  
  Revision: 0x0c 
  Memory Range: 0x603d000000-0x603dffffff (rw,non-prefetchable) 
  Memory Range: 0x4000000000-0x401fffffff (ro,non-prefetchable) 
  I/O Ports: 0x2000-0x203f (rw,disabled) 
  Memory Range: 0x000c0000-0x000dffff (rw,non-prefetchable,disabled) 
  IRQ: 255 (no events) 
  Module Alias: "pci:v00008086d000046A6sv000017AAsd000022E7bc03sc00i00" 
  Driver Info #0: 
    Driver Status: i915 is active 
    Driver Activation Cmd: "modprobe i915" 
  Config Status: cfg=new, avail=yes, need=no, active=unknown 

Primary display adapter: #27 
**localhost:~ #** xrandr 
xrandr: Failed to get size of gamma for output default 
Screen 0: minimum 1920 x 1080, current 1920 x 1080, maximum 1920 x 1080 
default connected primary 1920x1080+0+0 0mm x 0mm 
   1920x1080     77.00*  
**localhost:~ #** xrandr --listmonitors  
xrandr: Failed to get size of gamma for output default 
Monitors: 1 
 0: +*default 1920/508x1080/286+0+0  default 
**localhost:~ #** uname -a 
Linux localhost.localdomain 5.14.21-150400.24.33-default #1 SMP PREEMPT_DYNAMIC Fri Nov 4 13:55:06 UTC 2022 (76cfe60) x86_64 x86_64
 x86_64 GNU/Linux 
**localhost:~ #** lspci -v | grep -i -A25 vga 
00:02.0 **VGA** compatible controller: Intel Corporation Alder Lake-P Integrated Graphics Controller (rev 0c) (prog-if 00 **VGA** controll
er]) 
        Subsystem: Lenovo Device 22e7 
        Flags: bus master, fast devsel, latency 0, IRQ 255 
        Memory at 603d000000 (64-bit, non-prefetchable) [size=16] 
        Memory at 4000000000 (64-bit, prefetchable) [size=512] 
        I/O ports at 2000 [disabled] [size=64] 
        [virtual] Expansion ROM at 000c0000 [disabled] [size=128] 
        Capabilities: [40] Vendor Specific Information: Len=0c <?> 
        Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00 
        Capabilities: [ac] MSI: Enable- Count=1/1 Maskable+ 64bit- 
        Capabilities: [d0] Power Management version 2 
        Capabilities: [100] Process Address Space ID (PASID) 
        Capabilities: [200] Address Translation Service (ATS) 
        Capabilities: [300] Page Request Interface (PRI) 
        Capabilities: [320] Single Root I/O Virtualization (SR-IOV) 
        Kernel modules: i915 

00:04.0 Signal processing controller: Intel Corporation Alder Lake Innovation Platform Framework Processor Participant (rev 02) 
        Subsystem: Lenovo Device 22e7 
        Flags: bus master, fast devsel, latency 0, IRQ 178 
        Memory at 603ea80000 (64-bit, non-prefetchable) [size=128] 
        Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit- 
        Capabilities: [d0] Power Management version 3 
        Capabilities: [e0] Vendor Specific Information: Len=0c <?> 
        Kernel driver in use: proc_thermal_pci 
        Kernel modules: processor_thermal_device_pci

Thank you[/size][/size][/size][/size][/size][/size]

Typically you do have a special key on a laptop to switch external monitor setting, for my Lenovo laptop it is Fn+F7.

Can you try that key?

Run sudo inxi -U first, then provide here input/output from inxi -GSaz in an Xorg session. Alder Lake might be too new for 15.4 without using a backport kernel, such as kernel-default-6.0.10-lp153.2.1.g582305b.x86_64, or the 15.5 kernel.

Thanks, it shows the different options (unify, extend left/right, …) as if I have an external display, regardless of whether it’s plugged in, and no option I selected had any effect.


> inxi -GSaz 
**System:** 
  **Kernel:** 5.14.21-150400.24.33-default **arch:** x86_64 **bits:** 64 **compiler:** gcc 
    **v:** 7.5.0 **parameters:** BOOT_IMAGE=/boot/vmlinuz-5.14.21-150400.24.33-default 
    root=UUID=6f4dc745-a6ad-47f6-8475-30ed3f2aeb05 splash=silent 
    resume=/dev/disk/by-uuid/e969cac0-aca1-4854-b8dc-eacc7249f04d 
    preempt=full quiet security=apparmor mitigations=auto 
  **Desktop:** KDE Plasma **v:** 5.24.4 **tk:** Qt **v:** 5.15.2 **wm:** kwin_x11 **vt:** 7 **dm:** SDDM 
    **Distro:** openSUSE Leap 15.4 
**Graphics:** 
  **Device-1:** Intel Alder Lake-P Integrated Graphics **vendor:** Lenovo **driver:** N/A 
    **alternate:** i915 **arch:** Gen-12.2 **process:** Intel 10nm **built:** 2021-22+ 
    **bus-ID:** 00:02.0 **chip-ID:** 8086:46a6 **class-ID:** 0300 
  **Display:** x11 **server:** X.Org **v:** 1.20.3 **with:** Xwayland **v:** 21.1.4 
    **compositor:** kwin_x11 **driver:** N/A **display-ID:** :0 **screens:** 1 
  **Screen-1:** 0 **s-res:** 1920x1080 **s-dpi:** 96 **s-size:** 508x286mm (20.00x11.26") 
    **s-diag:** 583mm (22.95") 
  **Monitor-1:** default **res:** 1920x1080 **hz:** 77 **size:** N/A **modes:** N/A 
  **API:** OpenGL **v:** 4.5 Mesa 21.2.4 **renderer:** llvmpipe (LLVM 11.0.1 256 bits) 
    **compat-v:** 3.1 **direct render:** Yes

I was beginning to fear as much… I’ll try to see if a different kernel works. Although here it says that the card should be supported by 5.14 and newer. Based on this, 5.18 and 5.19 should also work (or can be made to work).

Inspired by the last link, here’s dmesg output.


> sudo dmesg | grep -i i915 
[sudo] password for root:  
    3.543787] **i915** 0000:00:02.0: Your graphics device 46a6 is not properly supported by the driver in this 
               kernel version. To force driver probe anyway, use **i915**.force_probe=46a6 
               module parameter or CONFIG_DRM_**I915**_FORCE_PROBE=46a6 configuration option, 
   68.650912] sof-audio-pci-intel-tgl 0000:00:1f.3: init of **i915** and HDMI codec failed

I suppose I could try to “use i915.force_probe=46a6”?

Since my original post I noticed some other issues that may be symptoms of the same problem:
(1) my display it configured to 1920x1080 and I seem to have no way to change it to 1920x1200 (which I believe is the actual resolution of my screen, at least 1920x1080 is slightly distorted).
(2) my sound didn’t work: integrated speakers nor wired headphones, though a bluetooth headset did work. After booting this morning suddenly the integrated speakers and wired headphones do work (not sure what happened, only thing I can think of is that I installed cheese with dependencies and this was the first reboot since).
(3) my webcam doesn’t seem to work (vlc and cheese don’t recognize it)

I expect it to not help. Last year at this time my Rocket Lake had the same problems with 15.3.

Since my original post I noticed some other issues that may be symptoms of the same problem:
(1) my display it configured to 1920x1080 and I seem to have no way to change it to 1920x1200 (which I believe is the actual resolution of my screen, at least 1920x1080 is slightly distorted).
N/A as loaded drivers in inxi confirms this. A fallback driver sometimes can crudely handle 1920x1080, but not 1920x1200.

Bug report for another Alder Lake problem: https://bugzilla.opensuse.org/show_bug.cgi?id=1205743

Adding i915.force_probe=46a6 helped: my external HDMI monitor works flawlessly. However, my laptop screen is flickering and tearing whenever my mouse moves across it, and the resolution is set to 3840x2400 and cannot be changed (to 1920x1200) I managed to change the resolution to 1920x1200 with the help of this answer on askubuntu and it solved the flickering and tearing too. It seems I now have a working setup (except for my webcam).

This is with kernel 6.0.8, so I’m a bit hesitant to try a newer kernel, especially since I currently have a mostly working setup. If I can contribute in any way to this bug report, another one, or create a new one, I’d be happy to.

Thanks for your help!

Hi
Add the kernel boot option i915.nuclear_pageflip=1 and see if that helps with the tearing and flickering.