在我昨天发的那个文章后,有人的DG1驱动也挂壁了。一样的问题,不要急不要荒更不要哭~
1. 确认显卡是否被内核识别
lspci | grep -i intel
返回示例
00:11.0 VGA compatible controller: Intel Corporation DG1 [Iris Xe Graphics] (rev 01)
在输出的内容中找到 DG1字眼,这代表你的显卡已正确被主板识别和加载,否则就是硬件问题了。然后我们需要记住前面数字,那个是位置,例如 00:11.0 并且能正确显示 Iris Xe Graphics,这说明 PCI 设备识别没有问题。现在我们需要继续排查驱动和固件的问题。
2. 检查内核错误日志
dmesg | grep -i "00:11.0"
记住替换里面引号中的数字为你自己ID
然后你应该能从返回的日志中找到关键部分
i915 0000:00:11.0: Your graphics device 4908 is not properly supported by i915 in this
是的 DG1实际上已经被系统识别了但是拒绝加载,为什么呢?
输入下面命令
lshw -c display
返回示例
*-display:0
description: VGA compatible controller
product: bochs-drmdrmfb
physical id: 2
bus info: pci@0000:00:02.0
logical name: /dev/fb0
version: 02
width: 32 bits
clock: 33MHz
capabilities: vga_controller rom fb
configuration: depth=32 driver=bochs-drm latency=0 resolution=1280,800
resources: irq:0 memory:fd000000-fdffffff memory:fea96000-fea96fff memory:c0000-dffff
*-display:1 UNCLAIMED
description: VGA compatible controller
product: DG1 [Iris Xe Graphics]
vendor: Intel Corporation
physical id: 11
bus info: pci@0000:00:11.0
version: 01
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller cap_list
configuration: latency=0
resources: iomemory:700-6ff iomemory:710-70f memory:7000000000-7000ffffff memory:7100000000-71ffffffff memory:c0000-dffff
root@SakLit:~#
注意 UNCLAIMED关键字 这表示设备没有被任何驱动认领。所以,一下子就找到问题了。
病因
这个问题的主要原因很明确:内核驱动对新硬件设备的支持策略变化。
设备 ID 白名单机制
- Intel i915 驱动有一个"已知设备ID白名单"
- 新发布的显卡设备(如 DG1)不会立即被加入所有内核版本的默认支持列表
- 这是为了防止驱动在不完全兼容的硬件上出现不稳定情况
DG1 的设备 ID 不匹配
- 你的 DG1 设备 ID 是
4908
- 内核参数中设置的是
i915.force_probe=7d55(这是其他 Intel GPU 的设备 ID)
- 设备 ID 不匹配导致驱动拒绝加载
对症下药
既然找到了原因是内核升级后由于没有得到充分的验证为了确保稳定拒绝了加载这个驱动,那我们就需要让内核强行加载这个驱动,当然你也要面临后续稳定性挑战,也许可能系统会崩溃八成需要在驱动这里进行注意!
3. 修改内核引导参数
sudo nano /etc/default/grub
找到 GRUB_CMDLINE_LINUX 行,将 i915.force_probe=7d55 改为:
i915.force_probe=4908
如果你想暴力一点直接万事大吉可以改为
i915.force_probe=*
然后系统就会加载所有驱动了,然后病毒也能大步的迈入了,因为你的家门始终敞开。
最后更新一下更新 GRUB 配置
sudo update-grub
最后重启飞牛即可!