How can I fix broken i915 drivers for Intel GPUs?
I've got troubles getting the i915 drivers to work correctly on my laptop (HP Pavilion DM4 2101ea).
Specifically, the laptop screen goes black and stays black after the splash graphic when booting both from USB key and from harddrive.
To get anything on to the display after the splash screen I have to boot either with
acpi=off
nomodeset
i915.modeset=0
I'd rather not turn ACPI off because I like my fans spinning and nomodeset
is a bit overkill, so for now I'm booting with i915.modeset=0
.
Unfortunately, this turns off KMS and my current maximum resolution on the laptop screen is fixed to 1024x768 instead of its real capability.
When not setting any of the above boot flags and I plug in an external monitor, the external monitor works fine. When booting with the flags, the external monitor works fine too, but can only do 1024x768 and can't do anything else than mirroring the laptop display.
I did upgrade the i915 drivers from 2.17 that ship with Precise to 2.19 which are the most recent ones but without luck of getting anything to display.
Here's my lspci
output:
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b5)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation HM65 Express Chipset Family LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
01:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5116 PCI Express Card Reader (rev 01)
08:00.0 Ethernet controller: Atheros Communications Inc. AR8151 v2.0 Gigabit Ethernet (rev c0)
Here's lshw -C video
*-display UNCLAIMED
description: VGA compatible controller
product: 2nd Generation Core Processor Family Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 09
width: 64 bits
clock: 33MHz
capabilities: msi pm vga_controller bus_master cap_list
configuration: latency=0
resources: memory:c0000000-c03fffff memory:b0000000-bfffffff ioport:4000(size=64)
Both outputs are generated after booting with i915.modeset=0
.
Here's a complete Xorg.log
file from a boot into a black screen: https://gist.github.com/479ce06454e47d6123e1
The graphics card is a Intel HD 3000 integrated GPU.
I've never had problems with Intel hardware on Ubuntu before so this is very surprising.
If you could
- provide a method to make i915 work,
- suggest alternative drivers
- a way to boot with
i915.modeset=0
but higher resolutions and KMS on - or explain what is happening and how to fix it
I'll give you an answer badge. :)
Thanks
Solution 1:
For me this was a backlight issue. See the article for toubleshooting and reporting instructions.
https://wiki.ubuntu.com/Kernel/Debugging/Backlight
Solution 2:
Try turning off the bootloader graphics. Run this command in a Terminal window:
gksudo xdiagnose
Click the checkbox labeled "Disable bootloader graphics", hit Apply, then reboot.
If you want to report a bug on this, I'd suggest turning on the graphics debug messages (first checkbox above), reproducing the bug, and then collecting the output of dmesg
.
Beyond that, see http://wiki.ubuntu.com/X/Troubleshooting/BlankScreen for other common ways to diagnose these types of issues. I also have a more in-depth explanation of what happens to cause blank / black screens written up there, if you really want to know what's going on.
Solution 3:
Im working through similar issues with my x230, but more focussed on getting external screens running. I had to use the nomodeset flag to get installed. Here is what I have so far: display port on x230 not working
my steps so far to get closer to working:
- Dont use nomodeset or modeset=0, as it throws off KMS and you wont be able to do anything.
-
sudo vi /etc/initramfs-tools/modules
and add in the i915 and intel_agp drivers, save, and rebuild by runningupdate-initramfs -u
Ive also made a custom x config stub in /usr/share/X11/xorg.conf.d/ to load the intel driver and give it some specifications, and a monitor config for all my devices. However, I still cant get my second monitor running!
Also - Ive used arandr to create a shell script that sets all my resolutions nicely, except it too wont cause my displayport-connected monitor to function...
Hope that helps,
Solution 4:
In /etc/rc.local
, just before exit 0
, put a line setpci -s 00:02.0 F4.B=30
.
This will turn on the backlight, to brightness 30 (where 00 is full bright and FF is full dark). The boot process will be dark but the light will come on immediately after the login screen appears.
nomodeset
is not used with this method, so the native screen resolution is available. I like the results, but still can't adjust my screen brightness with the Fn key.
BTW I got this from http://ubuntuforums.org/showthread.php?t=1744809. To help explain the command above, lspci
shows the Intel VGA controller at pci bus address 00:02.0.
Solution 5:
Be careful setting i915.modeset=0
.
All versions since 2.15 of the Intel-driver only support KMS. If you've deactivated KMS e.g. by adding the option i915.modeset=0
to the file /etc/default/grub
, please reactivate KMS by deleting this option.
Source: https://launchpad.net/~glasen/+archive/intel-driver