Librem 13v2 screen flickers, and solution in Troubleshooting doesn't work


#1

I bought a Librem 13v2 about a year ago, and pretty much from the beginning the screen has flickered from time to time. Sometime it starts right after I typed the password to unencrypt the disk at boot. Sometimes it takes 5 minutes from when I have logged in. It usually lasts anywhere from a fraction of a second to 10-20 seconds, then it doesn’t flicker for a minute or two, and then it starts again.

I’ve searched the forums for a solution, and added the following to /etc/default/grub:
GRUB_CMDLINE_LINUX=“i915.enable_rc6=0 i915.enable_psr=0”

but that doesn’t help.

I’ve also tried uninstalling xserver-xorg-video-intel, which is supposed to help in a similar issue with intel graphics card in Arch, but that did nothing as well.

I’ve also tried opening up the laptop to see if there is any loose connectors to the screen, but I could not see anything that seemed out of order.

If I connect an external monitor, the laptop screen continues to flicker, but the external monitor does not.

I’m running Debian Testing, and here is the output of uname -a:
Linux purism 4.16.0-2-amd64 #1 SMP Debian 4.16.12-1 (2018-05-27) x86_64 GNU/Linux

I’ve tried booting a live CD of PureOS, and the problem showed up there as well.

I’m attaching two videos of the problem. EPILEPSY WARNING!
EDIT: The system is fully upgraded to the latest software.


Any help is appreciated!


#2

I had the same persistent, irritating problem with my Librem 13 v3, but did finally fix it by adding this line to /etc/default/grub:

GRUB_CMDLINE_LINUX=“i915.enable_rc6=0i915.enable_psr=0”

Now I know you said you’ve already tried that, but here’s the thing. I was unsure on the proper way to input the syntax, and so I tried it like 10 different times. Sometimes I just put “i915.enable_rc6=0”, other times I just put “i915.enable_psr=0”, and I also put it exactly as you have it in your post, and every time the flickering remained. Finally, I deleted the space between the two entries, so it looks exactly as I typed it above, and that fixed the flickering! Now I have no idea if this syntax is correct or incorrect, or if it was just dumb luck or something…but it’s worth a try at least.

Would appreciate some advice from experts on permanently fixing this annoying problem (or comments on the above GRUB syntax) - the flickering is definitely caused by an i915 issue.


#3

It seemed to have been dumb luck, I tried the suggestion and it did nothig.


#4

@jenselo You should have contacted @support earlier. Send us an email so we can see what can we do about your problem.


#5

@jenselo Please do post here if/when you get this problem resolved, and what worked for you, thanks!


#6

Some further investigation yeilds:

If I check the output of journalctl -a, the following shows up:

Kernel command line: BOOT_IMAGE=/vmlinuz-4.16.0-2-amd64 root=/dev/mapper/purism–vg-root ro
i915.enable_rc6=0 quiet

i915: unknown parameter ‘enable_rc6’ ignored

i915 0000:00:02.0: firmware: failed to load i915/skl_dmc_ver1_27.bin (-2)
firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
i915 0000:00:02.0: Direct firmware load for i915/skl_dmc_ver1_27.bin failed with error -2
i915 0000:00:02.0: Failed to load DMC firmware i915/skl_dmc_ver1_27.bin. Disabling runtime power management.

So this explains why adding i915.enable_rc6=0 to grub doesn’t work. I’ll try to find out why it doesn’t recognize the option.

If I look in /lib/firmware/i915/ I found skl_dmc_ver1_26.bin, so I tried to create a symlink to skl_dmc_ver1_27.bin, but the problem with the flickering remained, and the enable_rc6-option is still unknown.

EDIT: I should mention that the i915.enable_psr=0 option is recognized if I add it.


#7

@thegoat @mladen

I think I fixed the problem, I’m not entirely sure yet, but it hasn’t flickered for about an hour across some reboots, so it seems to at least have lessened the problem.

What I did was to add GRUB_CMDLINE_LINUX=“i915.enable_rc6=0 i915.enable_psr=0” to /etc/default/grub (as I had previously).

What I then did was to download the latest i915 firmware, found here (https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915), download link found on this page: https://01.org/linuxgraphics/downloads/firmware

I then cloned the repo
$ git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

resulting in a folder named linux-firmware.

I then replaced everything in /lib/firmware/i915 folder with that in the linux-firmware/i915-folder.

There is probably an easier way, for example installing the firmware though the package manager, but I haven’t found which package to install.

I tried installing the firmware-linux-nonfree yesterday, but that did nothing.

As I said, I’m not sure if it really solved the problem, but I haven’t seen any flickering for about an hour, except for a minor one when I booted the OS, and during the power off screen.


#8

Turns out that I spoke too soon, and the problem with the flickering has not gone away.


#9

There really should be a way to fix this issue without having to download non-free firmware as well. Best of luck in your pursuit of a fix!


#10

Yes, I hope so. I’ve just tried booting Tails, and the same thing happens there. It’s a shame that I don’t have any Windows Live CD (if that even exists). So far I’ve only been able to try different versions of linux.


#11

So I’ve tried some more stuff, right now I’m just throwing things at the problem to see what sticks.

I tried changing resolution.

I started out with 1920x1080 during a flicker, and I changed it to 1680x1050, and the flicker went away.

I then rebooted, and the flickering returned, now at resulolution 1680x1050. Since that is a 16:10 resolution on a 16:9 screen, there are black bars to the side. It’s a bit hard to see, but it didn’t seem that there were any flickering in the bars, only in the screen portion (if that makes sense).

I then again set it to 1920x1080 and rebooted, and the flickering started up again. I then changed it to 1680x1050, and the flickering seems have stopped (on 1680x1050). If I change it back to 1920x1080 it immediately starts again, and when I changed back to 1680x1050 it stopped again.


#12

It also could be a hardware issue on your Librem.


#13

The official “troubleshooting” link is: https://tracker.pureos.net/w/troubleshooting/screen_flickering/

By the way, I have the same problem on a Librem 13 v3, running with a pure Debian 9.