]> 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>2014
144 <ul>
145
146 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
147
148 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (1)</a></li>
149
150 </ul></li>
151
152 <li>2013
153 <ul>
154
155 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
156
157 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
158
159 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
160
161 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
162
163 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
164
165 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
166
167 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
168
169 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
170
171 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
172
173 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
174
175 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
176
177 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
178
179 </ul></li>
180
181 <li>2012
182 <ul>
183
184 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
185
186 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
187
188 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
189
190 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
191
192 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
193
194 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
195
196 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
197
198 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
199
200 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
201
202 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
203
204 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
205
206 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
207
208 </ul></li>
209
210 <li>2011
211 <ul>
212
213 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
214
215 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
216
217 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
218
219 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
220
221 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
222
223 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
224
225 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
226
227 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
228
229 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
230
231 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
232
233 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
234
235 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
236
237 </ul></li>
238
239 <li>2010
240 <ul>
241
242 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
243
244 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
245
246 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
247
248 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
249
250 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
251
252 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
253
254 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
255
256 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
257
258 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
259
260 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
261
262 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
263
264 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
265
266 </ul></li>
267
268 <li>2009
269 <ul>
270
271 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
272
273 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
274
275 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
276
277 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
278
279 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
280
281 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
282
283 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
284
285 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
286
287 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
288
289 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
290
291 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
292
293 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
294
295 </ul></li>
296
297 <li>2008
298 <ul>
299
300 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
301
302 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
303
304 </ul></li>
305
306 </ul>
307
308
309
310 <h2>Tags</h2>
311 <ul>
312
313 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
314
315 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
316
317 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
318
319 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
320
321 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (8)</a></li>
322
323 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (14)</a></li>
324
325 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
326
327 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
328
329 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (93)</a></li>
330
331 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (144)</a></li>
332
333 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
334
335 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (10)</a></li>
336
337 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
338
339 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (235)</a></li>
340
341 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
342
343 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
344
345 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (12)</a></li>
346
347 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (5)</a></li>
348
349 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (11)</a></li>
350
351 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (39)</a></li>
352
353 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (7)</a></li>
354
355 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (18)</a></li>
356
357 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
358
359 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (6)</a></li>
360
361 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
362
363 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (7)</a></li>
364
365 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
366
367 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (239)</a></li>
368
369 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (161)</a></li>
370
371 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (9)</a></li>
372
373 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
374
375 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (45)</a></li>
376
377 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (68)</a></li>
378
379 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
380
381 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
382
383 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
384
385 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (9)</a></li>
386
387 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
388
389 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
390
391 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
392
393 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (34)</a></li>
394
395 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
396
397 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
398
399 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (44)</a></li>
400
401 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
402
403 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (9)</a></li>
404
405 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (21)</a></li>
406
407 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
408
409 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
410
411 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (39)</a></li>
412
413 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
414
415 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (28)</a></li>
416
417 </ul>
418
419
420 </div>
421 <p style="text-align: right">
422 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
423 </p>
424
425 </body>
426 </html>