]> pere.pagekite.me Git - homepage.git/blob - blog/Fixing_the_Linux_black_screen_of_death_on_machines_with_Intel_HD_video.html
Generated.
[homepage.git] / blog / Fixing_the_Linux_black_screen_of_death_on_machines_with_Intel_HD_video.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: Fixing the Linux black screen of death on machines with Intel HD video</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/vim.css" />
9
10
11 </head>
12 <body>
13 <div class="title">
14 <h1>
15 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
16
17 </h1>
18
19 </div>
20
21
22 <div class="entry">
23 <div class="title">Fixing the Linux black screen of death on machines with Intel HD video</div>
24 <div class="date">11th June 2013</div>
25 <div class="body"><p>When installing RedHat, Fedora, Debian and Ubuntu on some machines,
26 the screen just turn black when Linux boot, either during installation
27 or on first boot from the hard disk. I've seen it once in a while the
28 last few years, but only recently understood the cause. I've seen it
29 on HP laptops, and on my latest acquaintance the Packard Bell laptop.
30 The reason seem to be in the wiring of some laptops. The system to
31 control the screen background light is inverted, so when Linux try to
32 turn the brightness fully on, it end up turning it off instead. I do
33 not know which Linux drivers are affected, but this post is about the
34 i915 driver used by the
35 <a href="http://www.linlap.com/packard_bell_easynote_lv">Packard Bell
36 EasyNote LV</a>, Thinkpad X40 and many other laptops.</p>
37
38 <p>The problem can be worked around two ways. Either by adding
39 i915.invert_brightness=1 as a kernel option, or by adding a file in
40 /etc/modprobe.d/ to tell modprobe to add the invert_brightness=1
41 option when it load the i915 kernel module. On Debian and Ubuntu, it
42 can be done by running these commands as root:</p>
43
44 <pre>
45 echo options i915 invert_brightness=1 | tee /etc/modprobe.d/i915.conf
46 update-initramfs -u -k all
47 </pre>
48
49 <p>Since March 2012 there is
50 <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4dca20efb1a9c2efefc28ad2867e5d6c3f5e1955">a
51 mechanism in the Linux kernel</a> to tell the i915 driver which
52 hardware have this problem, and get the driver to invert the
53 brightness setting automatically. To use it, one need to add a row in
54 <a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/intel_display.c">the
55 intel_quirks array</a> in the driver source
56 <tt>drivers/gpu/drm/i915/intel_display.c</tt> (look for "<tt>static
57 struct intel_quirk intel_quirks</tt>"), specifying the PCI device
58 number (vendor number 8086 is assumed) and subdevice vendor and device
59 number.</p>
60
61 <p>My Packard Bell EasyNote LV got this output from <tt>lspci
62 -vvnn</tt> for the video card in question:</p>
63
64 <p><pre>
65 00:02.0 VGA compatible controller [0300]: Intel Corporation \
66 3rd Gen Core processor Graphics Controller [8086:0156] \
67 (rev 09) (prog-if 00 [VGA controller])
68 Subsystem: Acer Incorporated [ALI] Device [1025:0688]
69 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- \
70 ParErr- Stepping- SE RR- FastB2B- DisINTx+
71 Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- \
72 <TAbort- <MAbort->SERR- <PERR- INTx-
73 Latency: 0
74 Interrupt: pin A routed to IRQ 42
75 Region 0: Memory at c2000000 (64-bit, non-prefetchable) [size=4M]
76 Region 2: Memory at b0000000 (64-bit, prefetchable) [size=256M]
77 Region 4: I/O ports at 4000 [size=64]
78 Expansion ROM at <unassigned> [disabled]
79 Capabilities: <access denied>
80 Kernel driver in use: i915
81 </pre></p>
82
83 <p>The resulting intel_quirks entry would then look like this:</p>
84
85 <p><pre>
86 struct intel_quirk intel_quirks[] = {
87 ...
88 /* Packard Bell EasyNote LV11HC needs invert brightness quirk */
89 { 0x0156, 0x1025, 0x0688, quirk_invert_brightness },
90 ...
91 }
92 </pre></p>
93
94 <p>According to the kernel module instructions (as seen using
95 <tt>modinfo i915</tt>), information about hardware needing the
96 invert_brightness flag should be sent to the
97 <a href="http://lists.freedesktop.org/mailman/listinfo/dri-devel">dri-devel
98 (at) lists.freedesktop.org</a> mailing list to reach the kernel
99 developers. But my email about the laptop sent 2013-06-03 have not
100 yet shown up in
101 <a href="http://lists.freedesktop.org/archives/dri-devel/2013-June/thread.html">the
102 web archive for the mailing list</a>, so I suspect they do not accept
103 emails from non-subscribers. Because of this, I sent my patch also to
104 the Debian bug tracking system instead as
105 <a href="http://bugs.debian.org/710938">BTS report #710938</a>, to make
106 sure the patch is not lost.</p>
107
108 <p>Unfortunately, it is not enough to fix the kernel to get Laptops
109 with this problem working properly with Linux. If you use Gnome, your
110 worries should be over at this point. But if you use KDE, there is
111 something in KDE ignoring the invert_brightness setting and turning on
112 the screen during login. I've reported it to Debian as
113 <a href="http://bugs.debian.org/711237">BTS report #711237</a>, and
114 have no idea yet how to figure out exactly what subsystem is doing
115 this. Perhaps you can help? Perhaps you know what the Gnome
116 developers did to handle this, and this can give a clue to the KDE
117 developers? Or you know where in KDE the screen brightness is changed
118 during login? If so, please update the BTS report (or get in touch if
119 you do not know how to update BTS).</p>
120
121 <p>Update 2013-07-19: The correct fix for this machine seem to be
122 acpi_backlight=vendor, to disable ACPI backlight support completely,
123 as the ACPI information on the machine is trash and it is better to
124 leave it to the intel video driver to control the screen
125 backlight.</p>
126 </div>
127
128 <div class="tags">Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.</div>
129
130
131 </div>
132
133
134
135
136 <div id="sidebar">
137
138
139
140 <h2>Archive</h2>
141 <ul>
142
143 <li>2013
144 <ul>
145
146 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
147
148 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
149
150 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
151
152 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
153
154 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
155
156 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
157
158 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
159
160 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
161
162 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
163
164 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (2)</a></li>
165
166 </ul></li>
167
168 <li>2012
169 <ul>
170
171 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
172
173 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
174
175 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
176
177 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
178
179 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
180
181 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
182
183 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
184
185 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
186
187 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
188
189 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
190
191 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
192
193 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
194
195 </ul></li>
196
197 <li>2011
198 <ul>
199
200 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
201
202 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
203
204 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
205
206 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
207
208 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
209
210 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
211
212 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
213
214 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
215
216 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
217
218 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
219
220 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
221
222 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
223
224 </ul></li>
225
226 <li>2010
227 <ul>
228
229 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
230
231 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
232
233 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
234
235 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
236
237 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
238
239 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
240
241 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
242
243 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
244
245 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
246
247 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
248
249 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
250
251 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
252
253 </ul></li>
254
255 <li>2009
256 <ul>
257
258 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
259
260 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
261
262 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
263
264 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
265
266 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
267
268 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
269
270 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
271
272 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
273
274 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
275
276 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
277
278 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
279
280 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
281
282 </ul></li>
283
284 <li>2008
285 <ul>
286
287 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
288
289 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
290
291 </ul></li>
292
293 </ul>
294
295
296
297 <h2>Tags</h2>
298 <ul>
299
300 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
301
302 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
303
304 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
305
306 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
307
308 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (7)</a></li>
309
310 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
311
312 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
313
314 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (86)</a></li>
315
316 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (142)</a></li>
317
318 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
319
320 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (10)</a></li>
321
322 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
323
324 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (219)</a></li>
325
326 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
327
328 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
329
330 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (12)</a></li>
331
332 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (3)</a></li>
333
334 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (11)</a></li>
335
336 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (37)</a></li>
337
338 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (7)</a></li>
339
340 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (18)</a></li>
341
342 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
343
344 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (6)</a></li>
345
346 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
347
348 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
349
350 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (235)</a></li>
351
352 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (154)</a></li>
353
354 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (8)</a></li>
355
356 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
357
358 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (44)</a></li>
359
360 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (66)</a></li>
361
362 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
363
364 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
365
366 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
367
368 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (7)</a></li>
369
370 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
371
372 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
373
374 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
375
376 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (31)</a></li>
377
378 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
379
380 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
381
382 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (43)</a></li>
383
384 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
385
386 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (8)</a></li>
387
388 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (18)</a></li>
389
390 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
391
392 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
393
394 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (39)</a></li>
395
396 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
397
398 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (28)</a></li>
399
400 </ul>
401
402
403 </div>
404 <p style="text-align: right">
405 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
406 </p>
407
408 </body>
409 </html>