]> pere.pagekite.me Git - homepage.git/blobdiff - blog/archive/2013/06/index.html
Generated.
[homepage.git] / blog / archive / 2013 / 06 / index.html
index f59c07a8d45e61eafc4a6985d7d5f6619beadd3d..95434609ce4ae990eb318631d96002b877e518cd 100644 (file)
 
     <h3>Entries from June 2013.</h3>
     
 
     <h3>Entries from June 2013.</h3>
     
+    <div class="entry">
+      <div class="title">
+        <a href="http://people.skolelinux.org/pere/blog/Fixing_the_Linux_black_screen_of_death_on_machines_with_Intel_HD_video.html">Fixing the Linux black screen of death on machines with Intel HD video</a>
+      </div>
+      <div class="date">
+        11th June 2013
+      </div>
+      <div class="body">
+        <p>When installing RedHat, Fedora, Debian and Ubuntu on some machines,
+the screen just turn black when Linux boot, either during installation
+or on first boot from the hard disk.  I've seen it once in a while the
+last few years, but only recently understood the cause.  I've seen it
+on HP laptops, and on my latest acquaintance the Packard Bell laptop.
+The reason seem to be in the wiring of some laptops.  The system to
+control the screen background light is inverted, so when Linux try to
+turn the brightness fully on, it end up turning it off instead.  I do
+not know which Linux drivers are affected, but this post is about the
+i915 driver used by the
+<a href="http://www.linlap.com/packard_bell_easynote_lv">Packard Bell
+EasyNote LV</a>, Thinkpad X40 and many other laptops.</p>
+
+<p>The problem can be worked around two ways.  Either by adding
+i915.invert_brightness=1 as a kernel option, or by adding a file in
+/etc/modprobe.d/ to tell modprobe to add the invert_brightness=1
+option when it load the i915 kernel module.  On Debian and Ubuntu, it
+can be done by running these commands as root:</p>
+
+<pre>
+echo options i915 invert_brightness=1 | tee /etc/modprobe.d/i915.conf
+update-initramfs -u -k all
+</pre>
+
+<p>Since March 2012 there is
+<a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4dca20efb1a9c2efefc28ad2867e5d6c3f5e1955">a
+mechanism in the Linux kernel</a> to tell the i915 driver which
+hardware have this problem, and get the driver to invert the
+brightness setting automatically.  To use it, one need to add a row in
+<a href="http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/i915/intel_display.c">the
+intel_quirks array</a> in the driver source
+<tt>drivers/gpu/drm/i915/intel_display.c</tt> (look for "<tt>static
+struct intel_quirk intel_quirks</tt>"), specifying the PCI device
+number (vendor number 8086 is assumed) and subdevice vendor and device
+number.</p>
+
+<p>My Packard Bell EasyNote LV got this output from <tt>lspci
+-vvnn</tt> for the video card in question:</p>
+
+<p><pre>
+00:02.0 VGA compatible controller [0300]: Intel Corporation \
+    3rd Gen Core processor Graphics Controller [8086:0156] \
+    (rev 09) (prog-if 00 [VGA controller])
+ Subsystem: Acer Incorporated [ALI] Device [1025:0688]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- \
+    ParErr- Stepping- SE RR- FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- \
+    <TAbort- <MAbort->SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin A routed to IRQ 42
+ Region 0: Memory at c2000000 (64-bit, non-prefetchable) [size=4M]
+ Region 2: Memory at b0000000 (64-bit, prefetchable) [size=256M]
+ Region 4: I/O ports at 4000 [size=64]
+ Expansion ROM at <unassigned> [disabled]
+ Capabilities: <access denied>
+ Kernel driver in use: i915
+</pre></p>
+
+<p>The resulting intel_quirks entry would then look like this:</p>
+
+<p><pre>
+struct intel_quirk intel_quirks[] = {
+       ...
+        /* Packard Bell EasyNote LV11HC needs invert brightness quirk */
+       { 0x0156, 0x1025, 0x0688, quirk_invert_brightness },
+       ...
+}
+</pre></p>
+
+<p>According to the kernel module instructions (as seen using
+<tt>modinfo i915</tt>), information about hardware needing the
+invert_brightness flag should be sent to the
+<a href="http://lists.freedesktop.org/mailman/listinfo/dri-devel">dri-devel
+(at) lists.freedesktop.org</a> mailing list to reach the kernel
+developers.  But my email about the laptop sent 2013-06-03 have not
+yet shown up in
+<a href="http://lists.freedesktop.org/archives/dri-devel/2013-June/thread.html">the
+web archive for the mailing list</a>, so I suspect they do not accept
+emails from non-subscribers.  Because of this, I sent my patch also to
+the Debian bug tracking system instead as
+<a href="http://bugs.debian.org/710938">BTS report #710938</a>, to make
+sure the patch is not lost.</p>
+
+<p>Unfortunately, it is not enough to fix the kernel to get Laptops
+with this problem working properly with Linux.  If you use Gnome, your
+worries should be over at this point.  But if you use KDE, there is
+something in KDE ignoring the invert_brightness setting and turning on
+the screen during login.  I've reported it to Debian as
+<a href="http://bugs.debian.org/711237">BTS report #711237</a>, and
+have no idea yet how to figure out exactly what subsystem is doing
+this.  Perhaps you can help?  Perhaps you know what the Gnome
+developers did to handle this, and this can give a clue to the KDE
+developers?  Or you know where in KDE the screen brightness is changed
+during login?  If so, please update the BTS report (or get in touch if
+you do not know how to update BTS).</p>
+
+      </div>
+      <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>
+    </div>
+    <div class="padding"></div>
+    
     <div class="entry">
       <div class="title">
         <a href="http://people.skolelinux.org/pere/blog/Third_alpha_release_of_Debian_Edu___Skolelinux_based_on_Debian_Wheezy.html">Third alpha release of Debian Edu / Skolelinux based on Debian Wheezy</a>
     <div class="entry">
       <div class="title">
         <a href="http://people.skolelinux.org/pere/blog/Third_alpha_release_of_Debian_Edu___Skolelinux_based_on_Debian_Wheezy.html">Third alpha release of Debian Edu / Skolelinux based on Debian Wheezy</a>
@@ -596,7 +711,7 @@ debian-edu@</a>.</p>
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
 
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
 
-<li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (5)</a></li>
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (6)</a></li>
 
 </ul></li>
 
 
 </ul></li>
 
@@ -746,7 +861,7 @@ debian-edu@</a>.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (76)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (77)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (132)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (132)</a></li>
 
@@ -756,7 +871,7 @@ debian-edu@</a>.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (198)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (199)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>