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

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!

1 Like

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.

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

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

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

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.

@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.

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

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!

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.

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.

It also could be a hardware issue on your Librem.

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.

I run pure Debian testing on a Librem 13 v2. I have had this problem always, but the severity varies greatly in time, and it does not seem correlated to any particular situation or state. The two command-line options did not fix it for me. Is there any news on this?

Same here.

Searching the forum, seeing a lot of flicker-related questions, it seems like quite a lot of devices have that problem. My 13v3’s display stepped out this afternoon after increasing heavy flickering which started some days ago. As @moli said it doesn’t seem to be related to anything grippable nor does the official troubleshooting fix it. It’s quite annoying diplomatically said. The good about it: It goes away from time to time - sometimes for weeks. Perhaps at a certain point of time it’ll go on an enduring vacation… :wink:

OK,

I got a Librem 15rev3 this summer, and this morning, the screen started flickering, making work with the laptop quite difficult. Yesterday evening, everything was fine. I did not shut down the computer, it was in sleep-mode all night. If I hook up an external monitor (TV) using the HDMI cable, the external device does not show any flickering. Also the initial Boot-Screen does not flicker, flickering starts when the LUKS-password prompt is coming up. I am running the stable release, and “sudo apt update” says all my packages are up to date. I set
GRUB_CMDLINE_LINUX=“i915.enable_psr=0” in the grub file (/etc/default/grub), but that doesn’t change the situation after reboot (I did “sudo update-grub” before rebooting).

My laptop runs on PureOS GNU/Linux 4.19.0-5-amd64, with SeaBIOS (version rel-1.12.0-0-ga698c89).

It seems the flickering might be correlated with the message
firmware: failed to load i95/skl_dmc_ver1_27.bin(-2)
which is the first message showing when I press “Escape” during boot (and it seems this is when the flickering starts).

In /lib/firmware, there is no i915/-folder. But maybe it doesn’t matter, because as I understand, i915 is non-free.

So I am quite sure it is a software issue, what I don’t undestand is why it happend over night (without shutting down, and without upgrading packages).

Any help is appreciated!

Oh,

I just realize that the timestamp of /boot/initrd.img-4.19.0-5-amd64 is fairly recent, so it seems I did a system update some days ago which might have triggered the flickering, This is what the history.log of apt says:

Upgrade: libsasl2-modules-db:amd64 (2.1.27+dfsg-1, 2.1.27+dfsg-1+deb10u1), libsy
stemd0:amd64 (241-7pureos0.1, 241-7pureos0.2), udev:amd64 (241-7pureos0.1, 241-7
pureos0.2), libsasl2-2:amd64 (2.1.27+dfsg-1, 2.1.27+dfsg-1+deb10u1), libudev1:am
d64 (241-7pureos0.1, 241-7pureos0.2), libsasl2-modules:amd64 (2.1.27+dfsg-1, 2.1
.27+dfsg-1+deb10u1), libnss-myhostname:amd64 (241-7pureos0.1, 241-7pureos0.2), s
ystemd-sysv:amd64 (241-7pureos0.1, 241-7pureos0.2), libpam-systemd:amd64 (241-7p
ureos0.1, 241-7pureos0.2), systemd:amd64 (241-7pureos0.1, 241-7pureos0.2)

What is a little bit annoying is that in grub I only have the active linux kernel to boot, apparently the older ones were removed (how would I change that? On my other linux systems, I usually keep the old kernels).

Sorry for not replying until now. The problem was solved by returning it to Purism under warranty and receiving a replacement device. Still not sure if the problem lies in SW or HW.

For all screen flickering issues: make sure you follow instructions from https://puri.sm/coreboot to update your coreboot version to 4.11, it should fix some software related flicker.

3 Likes

I updated coreboot, on my Librem15rev3 using the instrructions at https://puri.sm/coreboot and in fact the screen flickering is gone! Great!

Thanks, Mladen!

2 Likes