1 Title: Fixing the Linux black screen of death on machines with Intel HD video
5 <p>When installing RedHat, Fedora, Debian and Ubuntu on some machines,
6 the screen just turn black when Linux boot, either during installation
7 or on first boot from the hard disk. I've seen it once in a while the
8 last few years, but only recently understood the cause. I've seen it
9 on HP laptops, and on my latest acquaintance the Packard Bell laptop.
10 The reason seem to be in the wiring of some laptops. The system to
11 control the screen background light is inverted, so when Linux try to
12 turn the brightness fully on, it end up turning it off instead. I do
13 not know which Linux drivers are affected, but this post is about the
14 i915 driver used by the
15 <a href="http://www.linlap.com/packard_bell_easynote_lv">Packard Bell
16 EasyNote LV</a>, Thinkpad X40 and many other laptops.</p>
18 <p>The problem can be worked around two ways. Either by adding
19 i915.invert_brightness=1 as a kernel option, or by adding a file in
20 /etc/modprobe.d/ to tell modprobe to add the invert_brightness=1
21 option when it load the i915 kernel module. On Debian and Ubuntu, it
22 can be done by running these commands as root:</p>
25 echo options i915 invert_brightness=1 | tee /etc/modprobe.d/i915.conf
26 update-initramfs -u -k all
29 <p>Since March 2012 there is
30 <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4dca20efb1a9c2efefc28ad2867e5d6c3f5e1955">a
31 mechanism in the Linux kernel</a> to tell the i915 driver which
32 hardware have this problem, and get the driver to invert the
33 brightness setting automatically. To use it, one need to add a row in
34 <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/intel_display.c">the
35 intel_quirks array</a> in the driver source
36 <tt>drivers/gpu/drm/i915/intel_display.c</tt> (look for "<tt>static
37 struct intel_quirk intel_quirks</tt>"), specifying the PCI device
38 number (vendor number 8086 is assumed) and subdevice vendor and device
41 <p>My Packard Bell EasyNote LV got this output from <tt>lspci
42 -vvnn</tt> for the video card in question:</p>
45 00:02.0 VGA compatible controller [0300]: Intel Corporation \
46 3rd Gen Core processor Graphics Controller [8086:0156] \
47 (rev 09) (prog-if 00 [VGA controller])
48 Subsystem: Acer Incorporated [ALI] Device [1025:0688]
49 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- \
50 ParErr- Stepping- SE RR- FastB2B- DisINTx+
51 Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- \
52 <TAbort- <MAbort->SERR- <PERR- INTx-
54 Interrupt: pin A routed to IRQ 42
55 Region 0: Memory at c2000000 (64-bit, non-prefetchable) [size=4M]
56 Region 2: Memory at b0000000 (64-bit, prefetchable) [size=256M]
57 Region 4: I/O ports at 4000 [size=64]
58 Expansion ROM at <unassigned> [disabled]
59 Capabilities: <access denied>
60 Kernel driver in use: i915
63 <p>The resulting intel_quirks entry would then look like this:</p>
66 struct intel_quirk intel_quirks[] = {
68 /* Packard Bell EasyNote LV11HC needs invert brightness quirk */
69 { 0x0156, 0x1025, 0x0688, quirk_invert_brightness },
74 <p>According to the kernel module instructions (as seen using
75 <tt>modinfo i915</tt>), information about hardware needing the
76 invert_brightness flag should be sent to the
77 <a href="http://lists.freedesktop.org/mailman/listinfo/dri-devel">dri-devel
78 (at) lists.freedesktop.org</a> mailing list to reach the kernel
79 developers. But my email about the laptop sent 2013-06-03 have not
81 <a href="http://lists.freedesktop.org/archives/dri-devel/2013-June/thread.html">the
82 web archive for the mailing list</a>, so I suspect they do not accept
83 emails from non-subscribers. Because of this, I sent my patch also to
84 the Debian bug tracking system instead as
85 <a href="http://bugs.debian.org/710938">BTS report #710938</a>, to make
86 sure the patch is not lost.</p>
88 <p>Unfortunately, it is not enough to fix the kernel to get Laptops
89 with this problem working properly with Linux. If you use Gnome, your
90 worries should be over at this point. But if you use KDE, there is
91 something in KDE ignoring the invert_brightness setting and turning on
92 the screen during login. I've reported it to Debian as
93 <a href="http://bugs.debian.org/711237">BTS report #711237</a>, and
94 have no idea yet how to figure out exactly what subsystem is doing
95 this. Perhaps you can help? Perhaps you know what the Gnome
96 developers did to handle this, and this can give a clue to the KDE
97 developers? Or you know where in KDE the screen brightness is changed
98 during login? If so, please update the BTS report (or get in touch if
99 you do not know how to update BTS).</p>
101 <p>Update 2013-07-19: The correct fix for this machine seem to be
102 acpi_backlight=vendor, to disable ACPI backlight support completely,
103 as the ACPI information on the machine is trash and it is better to
104 leave it to the intel video driver to control the screen