如何修复Intel GPU的破损i915驱动程序?

我在我的笔记本电脑(HP Pavilion DM4 2101ea)上遇到了i915驱动程序无法正常工作的问题。
具体来说,当从USB键或硬盘启动时,在启动画面后,笔记本屏幕变黑并保持黑屏状态。
要在启动画面后在显示器上显示任何内容,我必须使用以下方法之一启动:
  • acpi=off
  • nomodeset
  • i915.modeset=0

我宁愿不关闭ACPI,因为我喜欢我的风扇旋转,而且nomodeset有点过头了,所以现在我正在使用i915.modeset=0进行引导。

不幸的是,这会关闭KMS,并且我的笔记本屏幕的当前最大分辨率被固定为1024x768,而不是其真实能力。

当不设置以上任何引导标志并插入外部显示器时,外部显示器工作正常。当使用这些标志进行引导时,外部显示器也可以正常工作,但只能做1024x768,并且无法除了镜像笔记本显示之外的其他操作。

我已经将从Precise版本附带的2.17版i915驱动程序升级到了最新的2.19版,但没有显示出任何运行的运气。

这是我的lspci输出:

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)

这是 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)

在使用i915.modeset=0启动后,两个输出都会生成。

这是一个完整的Xorg.log文件,记录了启动时黑屏的情况:https://gist.github.com/479ce06454e47d6123e1

显卡是Intel HD 3000集成GPU。

我以前从未在Ubuntu上遇到过Intel硬件的问题,所以这非常令人惊讶。

如果您能够:

  • 提供使i915工作的方法,
  • 建议替代驱动程序,
  • 一种以i915.modeset=0启动但具有更高分辨率和KMS的方法,
  • 或者解释发生了什么以及如何修复它,

我将给您一个答案徽章。:)

谢谢

9个回答


/etc/rc.local中,在exit 0之前,添加一行setpci -s 00:02.0 F4.B=30
这将打开背光,亮度设置为30(00为最亮,FF为最暗)。启动过程会很暗,但在登录屏幕出现后立即亮起。
此方法不使用nomodeset,因此可以使用原生屏幕分辨率。我喜欢这样的结果,但仍无法使用Fn键调整屏幕亮度。
顺便提一句,我是从http://ubuntuforums.org/showthread.php?t=1744809上找到的。为了解释上面的命令,lspci显示了位于PCI总线地址00:02.0处的Intel VGA控制器。

尝试关闭引导程序的图形界面。在终端窗口中运行以下命令:
gksudo xdiagnose

点击标有“禁用引导程序图形”的复选框,点击应用,然后重新启动。

enter image description here

如果你想报告这个问题,我建议你打开图形调试信息(上面的第一个复选框),重现这个问题,然后收集dmesg的输出。
除此之外,你还可以参考http://wiki.ubuntu.com/X/Troubleshooting/BlankScreen来诊断这类问题的其他常见方法。如果你真的想知道发生了什么导致屏幕变空白/黑屏,那里也有更详细的解释。

1虽然使用直接的sudo运行xdiagnose可能是可以的,因为它不使用家目录中的配置文件,但通常最好并且经常非常重要的是,在以root身份运行图形程序时,使用图形化的sudo前端,如gksugksudokdesu - Eliah Kagan
好的观点,回答已更新。 - Bryce

我正在解决与我的x230类似的问题,但更专注于让外部屏幕运行。我不得不使用nomodeset标志进行安装。到目前为止,这是我所拥有的: display port on x230 not working 以下是我迄今为止为了更接近工作而采取的步骤:
  1. 不要使用nomodeset或modeset=0,因为它会扰乱KMS,你将无法做任何事情。
  2. sudo vi /etc/initramfs-tools/modules并添加i915和intel_agp驱动程序,保存,并通过运行update-initramfs -u进行重建
我还在/usr/share/X11/xorg.conf.d/中创建了一个自定义的x配置存根,以加载英特尔驱动程序并为其提供一些规格,以及适用于所有设备的监视器配置。然而,我仍然无法使我的第二个显示器运行!
另外-我使用arandr创建了一个shell脚本,可以很好地设置所有分辨率,但它也无法使我的显示端口连接的监视器正常工作...
希望这有所帮助,

谨慎设置 i915.modeset=0

自 Intel-Driver 2.15 版本以来,只支持 KMS。 如果您通过在文件 /etc/default/grub 中添加选项 i915.modeset=0 来禁用了 KMS,请通过删除此选项重新激活 KMS。

来源:https://launchpad.net/~glasen/+archive/intel-driver


链接损坏。 - ceving

这是我在14.04中使i915工作的方法:

我从01.org下载了intel-linux-graphics-installer,运行了同样的程序并按照说明操作。该程序降级了一个软件包并安装了许多新软件包。最终,我被提示重新启动计算机。我打开了通常会导致我的屏幕变黑的网站(使用谷歌浏览器)。由于我没有再遇到任何崩溃,所以我认为问题已经解决了。

请注意,我没有向grub添加更多命令行选项。还请注意,我运行的是内核版本为3.13.0-44和Ubuntu 14.04。


我有一台Gateway NV78笔记本电脑,在臭名昭著的英特尔移动4芯片组启动画面后出现黑屏问题,实际上是背光灯反了?我也不知道。
外接显示器正常工作,所以你可能需要使用一个来进行操作。
无论如何,启动计算机,以root身份编辑文件/etc/rc.local,在exit 0行之前添加以下行: setpci -s 00:02.0 F4.B=00
保存文件。
删除你尝试过的其他方法,哈哈 - 如果你从grub quiet splash部分删除了内容,请确保运行update-grub命令。
重新启动 - 启动时屏幕会在几秒钟内变空白,就像以前一样,但当鼠标指针箭头出现时,屏幕亮度会突然恢复,一切都正常了。
这比nomodeset更好,因为它提供了所有的显示模式,而不仅仅是vesa 1280*720 - 现在它还可以检测到插入的监视器,并且一切都能正常工作。

我的主板是Intel D2500HN,只有一个VGA端口,没有LVDS-1。 我的发行版是Lubuntu 18.04。
~$ modinfo i915
modinfo: ERROR: Module i915 not found.

确保你的 /lib/firmware/i915//lib/modules/'uname -r'/ 目录下都有文件。
~$ sudo apt install --reinstall linux-modules-'uname -r' linux-modules-extra-'uname -r'

我的问题描述:
4.15.0-20-generic:显示FHD1920x1080正常。
4.15.0-42-generic:在grub屏幕后出现几行后,屏幕变空白。
~$ sudo lspci -v | grep -A 10 -i vga
00:02.0 VGA compatible controller: Intel Corporation Atom Processor D2xxx/N2xxx Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])
    Subsystem: Intel Corporation Atom Processor D2xxx/N2xxx Integrated Graphics Controller
    Flags: bus master, fast devsel, latency 0, IRQ 28
    Memory at d0100000 (32-bit, non-prefetchable) [size=1M]
    I/O ports at 20d0 [size=8]
    [virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: gma500
    Kernel modules: gma500_gfx

我的解决方案:
~$ sudo <your_editor> /etc/default/grub
##video=LVDS-1:d  is disabling LVDS-1 port which some kernel version might be directing the video to that port on default despite your mobo might not have such a port available to you
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.modeset=1 video=LVDS-1:d"

我的问题解决了,应该归功于在Intel D2500CC主板上安装Arch Linux时i915报错的帖子 - Arch Linux论坛 而这个帖子又是从Mageia对GMA 3600(Cedar Trail Atom)的支持中得到的解决方案中获得的。

我在我的戴尔Inspiron 3000上遇到了这个问题。(那个小的11英寸、不到200美元的,谢谢戴尔重复使用型号编号 -_-)
使用“nomodeset”确实让我能够启动,但是没有GL加速,使用起来几乎无法忍受。一时兴起,我在BIOS中更改了关于传统引导ROM(或类似的设置,如果不重新启动,我无法得到确切的名称)。禁用该设置后,我能够无问题地启动。没有黑屏,也不需要破坏GL加速的“nomodeset”。现在,我有了一个非常适用的小型笔记本电脑,可以用来配置我模型店里的电子设备。\o/