Surface Pro 8 - linux-surface/linux-surface GitHub Wiki
grub Issues with UEFI
On the Surface Pro 8 it may be necessary to downgrade the UEFI version before installing distributions that use grub to boot (e.g., Ubuntu, Fedora). If you only see a Windows logo when trying to boot, you are probably affected. Distributions that use systemd-boot (e.g., Arch, Manjaro) are not affected. For detailed information, see issue #1179.
Enable 120Hz and Solve Screen Flickering
By default, it seems that the upstream kernel (which based by many Linux distribution's kernel and linux-surface kernel) have implement something that change into this behaviour. (see #905 comment)
This instruction will enable 120Hz for SP8, and at the same time solve screen flickering issue. However 60Hz will be no longer available (you'll need to undo the instruction 11. to 13. to use 60Hz if needed).
In summary, you'll need to generate a working EDID, add it in initramfs, and then modify GRUB config to override the default EDID.
To Generate EDID
- Switch to X11 if you haven't done so (120Hz will work on Wayland but the EDID tool only support X11)
- Download this tool (Credit: https://www.monitortests.com/forum/Thread-Custom-Resolution-Utility-CRU)
- Install
wine
(the above tool is written for Windows but works fine under wine) - Run "CRU.exe" using wine.
- Follow the instruction 1. and 2. in here to modify EDID.
- Click "Export..." and save the EDID to somewhere you can easily find. Whatever name is ok. (e.g. edid.bin)
To Add EDID Into initramfs
- Make a directory
/usr/lib/firmware/edid
- Put your generated EDID into
/usr/lib/firmware/edid
(i.e. /usr/lib/firmware/edid/edid.bin)
If you're running Arch:
- Open
/etc/mkinitcpio.conf
and modify the FILES line like this:FILES="/usr/lib/firmware/edid/edid.bin"
- Run
sudo mkinitcpio -P
to add EDID into initramfs
If you're running Fedora/CentOS/RHEL:
- Create a file
/etc/dracut.conf.d/99-local.conf
and put this into the file and save:install_items+=" /usr/lib/firmware/edid/edid.bin "
(Note that do not ommit the extra spaces between quotation marks) - Run
sudo dracut --regenerate-all --force
to add EDID into initramfs
To Configure GRUB
- Open
/etc/default/grub
and adddrm_kms_helper.edid_firmware=eDP-1:edid/edid.bin
toGRUB_CMDLINE_LINUX_DEFAULT
(create one if this line doesn't exist) and save.
If you're running Arch:
- Run
sudo update-grub
to apply GRUB configuration.
If you're running Fedora/CentOS/RHEL:
- Run
sudo grub2-mkconfig
to apply GRUB configuration.
Finally Reboot and Check Result
sudo reboot
(or any other way you like)- You should see your Surface Pro 8 running in 120Hz immediately after reboot. If so, you can now switch to Wayland if you wish.
For more details and the discussion please visit issue #825.