X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/c08f23d223f802799c1fe7810bdd986039f8e0c2..180710ae32114dcd9a23f1a3703b08273221af11:/blog/archive/2013/06/06.rss diff --git a/blog/archive/2013/06/06.rss b/blog/archive/2013/06/06.rss index 87beccf580..e7ae709911 100644 --- a/blog/archive/2013/06/06.rss +++ b/blog/archive/2013/06/06.rss @@ -6,6 +6,109 @@ http://people.skolelinux.org/pere/blog/ + + Fixing the Linux black screen of death on machines with Intel HD video + http://people.skolelinux.org/pere/blog/Fixing_the_Linux_black_screen_of_death_on_machines_with_Intel_HD_video.html + http://people.skolelinux.org/pere/blog/Fixing_the_Linux_black_screen_of_death_on_machines_with_Intel_HD_video.html + Tue, 11 Jun 2013 11:00:00 +0200 + <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> + + + Third alpha release of Debian Edu / Skolelinux based on Debian Wheezy http://people.skolelinux.org/pere/blog/Third_alpha_release_of_Debian_Edu___Skolelinux_based_on_Debian_Wheezy.html