Skip to content

Instantly share code, notes, and snippets.

@Postrediori
Last active June 17, 2023 13:18
Show Gist options
  • Save Postrediori/556706b28aff3b831d9e41acb47418c5 to your computer and use it in GitHub Desktop.
Save Postrediori/556706b28aff3b831d9e41acb47418c5 to your computer and use it in GitHub Desktop.
Setup UHD 750 GPU on Intel Rocket Lake processors on Linux

Description

Linux distros don't support newest (May 2021) Rocket Lake GPUs by default. Tested on:

  • Fedora 34
  • Ubuntu 20.04.2.0
  • Ubuntu 21.04

Even if i915 module is loaded (lsmod | grep i915), the graphics is still running in software mode. This issue can be checked in the following ways:

  1. Only X11 could be started as Wayland requires hardware acceleration
  2. Check "About system" page in Gnome setup (Fedora&newest Ubuntu have Gnome by-default). "Graphics" line will display something like llvmpipe... instead of GPU model.
  3. Run glxinfo | grep -i opengl and llvmpipe ... string is shown for "Renderer" instead of GPU name.
  4. dmesg will display error message of the i915 driver
$ dmesg | grep i915 -A4
[  636.077251] i915 0000:00:02.0: Your graphics device 4c8a is not properly supported by the driver in this
               kernel version. To force driver probe anyway, use i915.force_probe=4c8a
               module parameter or CONFIG_DRM_I915_FORCE_PROBE=4c8a configuration option,
               or (recommended) check for kernel updates. 

Solution

As it is specified in the error message, a device with PID=4c8a should be added to module parameters.

Open /etc/default/grub and add the parameter to the kernel command line:

GRUB_CMDLINE_LINUX="... quiet i915.force_probe=4c8a"

Then updat grub (legacy BIOS output file is different):

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Links

@georgnistor
Copy link

georgnistor commented Jan 23, 2022

I might have found a solution:

it is Ubuntu cinnamon 22.04 for those who have the same problem like me.
it looks great!

@Talkless
Copy link

@brainbow1 have you find out about 5.14? Workaround works on Debian Buster with 5.10, though there's no acceleration (LLVM driver).

@brainbow1
Copy link

@Talkless:
I havent tried with Debian bullseye and 5.10 Kernel, but I have just decided to go with the kernel from the bullseye backports, which is right now 5.15 :-) It seemed like it works fine, but a guy on another community told me that, because right now there isnt a backported version of the package "firmware-misc-nonfree" available, it may be better to go with the one from the bookworm repos, because it contains firmware for the same kernel as the backported 5.15.
But he said I shouldnt mess with bookworm in the sources.list, just download the firmware-misc-nonfree from here ( https://ftp.debian.org/debian/pool/non-free/f/firmware-nonfree/ ) and install via "dpkg -i",,, which I did and seemingly solved my firstly appearing firmware error, which was something like "missing firmware i915" and naming a few specific files...

So far that works fine for me! To let u see how my configuration looks right now and how the drivers are implemented etc., maybe it helps to have a look at my latest probe that I submitted to linux-hardware.org:
https://linux-hardware.org/?probe=1f1008ad86
There should be also the logs contained to look up all the stuff u may wanna know?
Im not so deep into that technical details though...
Hopefully this was helpful to you..
best wishes
matt

@Talkless
Copy link

Talkless commented Jan 28, 2022

@brainbow1 Thank you for very useful info.

Most important part for me is VA-API support (HW accelerated video decoding). What does vainfo prints (from package of the same name)?

@brainbow1
Copy link

brainbow1 commented Jan 29, 2022

error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.10.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.10 (libva 2.10.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.1.1 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSliceLP
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSliceLP
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile1 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileVP9Profile3 : VAEntrypointVLD
VAProfileHEVCMain12 : VAEntrypointVLD
VAProfileHEVCMain422_10 : VAEntrypointVLD
VAProfileHEVCMain422_12 : VAEntrypointVLD
VAProfileHEVCMain444 : VAEntrypointVLD
VAProfileHEVCMain444 : VAEntrypointEncSliceLP
VAProfileHEVCMain444_10 : VAEntrypointVLD
VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP
VAProfileHEVCMain444_12 : VAEntrypointVLD
VAProfileHEVCSccMain : VAEntrypointVLD
VAProfileHEVCSccMain : VAEntrypointEncSliceLP
VAProfileHEVCSccMain10 : VAEntrypointVLD
VAProfileHEVCSccMain10 : VAEntrypointEncSliceLP
VAProfileHEVCSccMain444 : VAEntrypointVLD
VAProfileHEVCSccMain444 : VAEntrypointEncSliceLP
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileHEVCSccMain444_10 : VAEntrypointVLD
VAProfileHEVCSccMain444_10 : VAEntrypointEncSliceLP

This is what vainfo prints....
hope that helps?

@Talkless
Copy link

Thank you very much @brainbow1 ! It shows that it should work fine!

@federicociro
Copy link

Can confirm it's working with Debian 11, kernel 5.10.0-13-amd64.
If you use GRUB2, it's important to update with sudo update-grub after editing the grub configuration file.

@Talkless
Copy link

Talkless commented Apr 5, 2022

Actually, I had to backport libva2, intel-media-va-driver-non-free and other dependencies from Testing to Bullseye to make HW video decoding actually work...

Simply launched cowbuilder-based Bullseye chroot, set up apt sources from Testing, fetched build-deps, and built packages, dealing with -dev package dependencies first, when finally building required packages. Installed into Bullseye and GStreamer started showing video!

@1John419
Copy link

Running Fedora 36 Beta.

[clayton@fedora ~]$ sudo lshw -c video
[sudo] password for clayton: 
  *-display                 
       description: VGA compatible controller
       product: RocketLake-S GT1 [UHD Graphics 750]
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 04
       width: 64 bits
       clock: 33MHz
       capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:151 memory:50000000-50ffffff memory:40000000-4fffffff ioport:4000(size=64) memory:c0000-dffff

[clayton@fedora ~]$ lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation RocketLake-S GT1 [UHD Graphics 750] (rev 04)
	DeviceName: Onboard - Video
	Subsystem: Gigabyte Technology Co., Ltd Device d000
	Kernel driver in use: i915

Settings>About>Graphics: Mesa Intel® Graphics (RKL GT1)

Appears to be working, no?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment