No HDMI support on Intel IRIS XE Graphics

Dear Community,
I have a new Lenova V15 G3 IAP laptop with Intel iRIS XE Graphics running openSuse 15.4 When I connect a Monitor or Beamer to the HDMI port, nothing happens. There is no support whatsoever for HDMI.

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*

sudo lspci -k |grep -EA3 ‘VGA|3D|Display’
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] (rev 0c)
Subsystem: Lenovo Device 3b3a
Kernel modules: i915
00:04.0 Signal processing controller: Intel Corporation Alder Lake Innovation Platform Framework Processor Participant (rev 04)

What can I do to make HDMI active?
Many thanks for your help!
agh63

…obviously, this is an openSuse Problem. I booted Kubuntu as a live version on the same labtop and could easily connect devices on the HDMI port.
xrandr gave:
kubuntu@kubuntu:~$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
1920x1080 60.00*+ 59.97 59.96 59.93
1680x1050 59.95 59.88
1600x1024 60.17

HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
1920x1080 60.00*+ 50.00 59.94
1680x1050 59.88
1600x900 60.00
1280x1024 75.02 60.02
1440x900 59.90
1280x800 59.91

DP-1 disconnected (normal left inverted right x axis y axis)

Interestingly, Kubuntu used the same graphics driver:

kubuntu@kubuntu:~$ lspci -k |grep -EA3 ‘VGA|3D|Display’
00:02.0 VGA compatible controller: Intel Corporation Device 46a8 (rev 0c)
Subsystem: Lenovo Device 3b3a
Kernel driver in use: i915
Kernel modules: i915

Does the line " Kernel driver in use: i915", which was not displayed in the openSuse installation, indicate that openSuse did not use/configure the driver correctly?

Any help highly appreciated!
agh63

It seems that the i915 driver is not properly installed. With dmesg |grep i915, I get the following information:

[ 2.920134] i915 0000:00:02.0: Your graphics device 46a8 is not properly supported by the driver in this kernel version. To force driver probe anyway, use i915.force_probe=46a8

I do not exactly understand what to do now.

Can anybody please help me?

@agh63 technically yes, but this is probably new hardware that came out after the release of Leap 15.4? What kernel version on ub*? Did you try a live Tumbleweed USB?

You can add the suggested option to grub kernel options via YaST Bootloader i915.force_probe=46a8 to see if it helps, else install kernel:HEAD and see if all ok, then report as a bug… openSUSE:Submitting bug reports - openSUSE Wiki

@malcolmlewis
I added i915.force_probe=46a8to the kernel options in /boot/grub2/grub.cfg and this solved the problem!

The kernel version is 5.14.21-150400.24.38-default(64 bit)

Since this computer was release in April 2022, while Leap 15.4 was released on 08/06/2022, I am astonished that openSuse could not handle the graphics …

Nevertheless, many thanks for help.
agh63

You have an Iris Xe/Alder Lake CPU but didn’t tell us which one. They were launched around the time 15.4 first reached beta, e.g. i5-1235U, so your observed behavior is typical of a too old kernel in a Leap release too new for the hardware. A backport kernel may be all you need. The 15.5 kernel will probably also work it you’re inclined to use an alpha/beta OS for the next 3 or so months.

@agh63 yes, but the Leap series is using an older kernel, hence the need for backporting, which only happens with a bug report… so did you see what kernel is in the kubuntu release you used?

The kernel of the Kubuntu 22.04.1 LTS is 5.15.0-43-generic(64 bit), so it is a newer one.

@mrmazda: with some more details on how to install another kernel, I might dare to try, but so far I have no idea how to install a new kernel…

Best regards, agh63

Try:

zypper ar -f http://download.opensuse.org/repositories/Kernel:/stable:/Backport/standard/ kernel-backport

Then use Yast Software Management. Search for “kernel” (or for “kernel-default”. Click the “Versions” tab, and you should be able to select the backport version for install.

I was going to provide further instruction, but looked for an existing SDB: page explaining instead. As I failed to find one, I started one here. It needs work by someone better than me at Wiki editing, and especially also someone more familiar with using YaST2 Software management. Installing a backport kernel using zypper succeeded without pulling in any other packages from the backport repo:

# grep name /etc/zypp/repos.d/KernelStableBP.repo
name=KernelStableBP
# zypper lr | grep ernel
 2 | Yes     | (r ) Yes  | http://download.opensuse.org/repositories/Kernel:/stable:/Backport/standard/
# inxi -S
System:
  Host: vizio Kernel: 6.1.8-lp153.3.g2d8f09a-default arch: x86_64 bits: 64
    Console: pty pts/0 Distro: openSUSE Leap 15.4
2.8.1.3 Support for Intel’s Alderlake graphics platform

@nrickert :
This did not work: I installed the repository and changed the version of the kernel-default to 6.1.8.
When I rebooted the system, shim asked me to enroll a key.
First of all, I did not know what option to choose - and then I was asked for a password. The root password did not match.
I tried to enroll from disk, but this did not work either.
So this was not really helpful…
agh63

Yes, when you install a kernel from that repo, you will need to enroll a key if you use UEFI secure-boot. And the password should be the root key.

The key you were asked to enroll should be a file in “/etc/uefi/certs”, and the file date might help you determine which one. You can retry the enroll with

mokutil --root-pw --import /etc/uefi/certs/"filename"

(Replace “filename” with the actual file name). And you should be prompted by shim on the next boot. If you omit the “–root-pw” option you will be prompted for a password to use.

Sorry, but this does not work:

I again set the kernel to 6.1.8 and then opened a console and entered your comamnd as root.
The answer was:
SKIP: /etc/uefi/certs/6A4E915C,crt is already in the enrollment request

I rebooted and was asked by shim to either:
boot
enroll Mok
enroll key from hard disk
enroll hash from hard disk

Choosing “enroll Mok”, I was asked to either viewKey 0 or continue. Choosing continue, I was askesd yes or no, and choosing yes, I was asked for a password. My root password resulted in “password doesn’t match”.

Choosing “enroll key from disk”, a unrepeatably long string starting with “PciRoot…” was shown, and than I was asked “EFI/” or “Backup$bb.bin” What shall I choose here?
When choosing EFI/, I am asked for “boot/” or “opensuse/”. Waht shall I choose here? When choosing “boot/”, I am asked for “bootx64.efi”, “fallback.efi” or “MokManager.efi”. Waht shall I choose here…?

It’s been 10 years since I last enrolled from disk (I think “mokutil” wasn’t working back then). I made sure that the key was in the EFI partition, because there’s no guarantee that “shim” or “mokutil” can read anything else. So best to use “mokutil”.

Check mokutil options (with “man mokutil” or “mokutil --help”. If there’s already an enrollment request you can try deleting that (maybe “mokutil --revoke-import”). Then try again, but skip the “–root-pw” so you can give your own password. But then there’s another problem – you might be using different keyboard parameters when the system is running, but shim/MokManager doesn’t know about that. So try using a password that sticks to pure ascii characters.

your hint on ascii gave the solution: it was the keyboard layout that made the root password be wrong.
The correct way to enroll was
enroll MOK > continue > yes and then the root password.

Now I am having a new problem: with kernel 6.1.9, the virtualbox does not load, because the kernel driver is not installed.
I executed “/sbin/vboxconfig” to correct that, but failed. The log file reported a gcc error
“The kernel was build by : gcc (Suse linux) 11.3.0
You are using: gcc (Suse linux) 7.5.0”

I checked in Yast: gcc is 7-3.9.1
I have installed gcc7, gcc11, gcc12

There was no chance of updating gcc, but with gcc11 installed it should work - or do I miss something?
Thanks and best regards, agh63

I’m glad you solved that problem.

I’m not a virtualbox user, so I cannot help with your new problem. I suggest you start a new thread on that, with an appropriate title.

@agh63 you need to export CC before running, or create update alternatives to switch, but export should work… @larryr yes?

export CC=/usr/bin/gcc-11

That is what supposed to force gcc 11 to do the builds.

If that fails he could rm /usr/bin/gcc and link it to gcc-11.
It probably is linked to gcc-7 in leap15.4 and gcc-12 in Tumbleweed.

I would change it back after it worked,

@malcolmlewis:
I tried the export function without error message - but it did not change much: gcc --version tells that I am still using 7.5.0

@larry:
Did I get that right: I shall delete gcc in /usr/bin? What do you mean by linking it to gcc-11? And how could I change back later, when I have deleted gcc?