i915我能找到的唯一参考确实是英特尔芯片的 linux 内核驱动程序。英特尔似乎只是称它们为高清显卡。
Intel 915 似乎是指某些 Pentium 4 芯片组,但它们与当前的图形架构无关。
我正在尝试使用 2 个不同的显卡驱动程序(i915 和 nvidia)进行双屏显示,但正如您所看到的,xrandr 仅列出了 nvidia 提供商。我正在使用 Arch Linux。我没有成功尝试找到xrandr获取提供者列表的位置。
[x@epoch ~]$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x279 cap: 0x1, Source Output crtcs: 4 outputs: 6 associated providers: 0 name:NVIDIA-0
[x@epoch /etc/X11]$ sudo lshw -numeric -c video
*-display
description: VGA compatible controller
product: GK104 [GeForce GTX 770] [10DE:1184]
vendor: NVIDIA Corporation [10DE]
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: …Run Code Online (Sandbox Code Playgroud) 我正在运行 Ubuntu 13.10,并且自从我在 ivybridge 视频上升级到内核 3.12.8(从源代码构建,包括 ubuntu 补丁)后,启动闪屏一直在闪烁和混乱。
因此,我四处搜索并尝试将i915.modeset=1paramenter添加到 grub(实际上并不知道我在做什么),神奇的是,spash 屏幕已修复,我还注意到窗口内容的滚动更加流畅(例如,chrome 中的网页)。
所以我只想了解更多关于i915.modeset=1.
这是dmesg显示的问题
$ sudo dmesg | grep error
[...]
[ 7.792141] i915 0000:00:02.0: Direct firmware load for i915/bxt_dmc_ver1_07.bin failed with error -2
[...]
[ 11.977510] r8169 0000:04:00.0: Direct firmware load for rtl_nic/rtl8168g-2.fw failed with error -2
Run Code Online (Sandbox Code Playgroud)
系统日志中显示相同的内容:
$ sudo cat /var/log/syslog | grep error
Nov 24 02:47:36 minibip kernel: [ 6.546435] i915 0000:00:02.0: Direct firmware load for i915/bxt_dmc_ver1_07.bin failed with error -2
Nov 24 02:47:37 minibip kernel: [ 9.699957] r8169 0000:04:00.0: Direct firmware load for rtl_nic/rtl8168g-2.fw failed with error -2
... …Run Code Online (Sandbox Code Playgroud) 我的系统有显示端口连接问题。乍一看,这些问题没有任何共同点,这表明了这一点。我之所以声称 DP 是原因,是因为当我通过 DVI 连接另一台显示器时,这些问题就会消失。
当我将显示器置于睡眠状态时,它不会醒来。期刊包含:
[drm:intel_dp_start_link_train] *ERROR* failed to enable link
而有时
[drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
Qt 应用程序需要几秒钟才能启动。同时冻结X。今天我有一个完全永无止境的系统冻结。作为后续,KDE 启动非常缓慢,并伴随着多次冻结。
我在 i5-4590 上使用最新的 Arch System,使用 Intel HD4600。
这是带有 drm.debug=0xe 命令行的 dmesg。我削减了大约一百万行“[drm:drm_dp_i2c_do_msg] native defer”以使其更清晰。
英特尔驱动程序已安装。配置:
# for i in /sys/module/i915/parameters/*; do echo $i=$(cat $i); done
/sys/module/i915/parameters/disable_display=N
/sys/module/i915/parameters/disable_power_well=1
/sys/module/i915/parameters/enable_cmd_parser=0
/sys/module/i915/parameters/enable_fbc=-1
/sys/module/i915/parameters/enable_hangcheck=Y
/sys/module/i915/parameters/enable_ips=1
/sys/module/i915/parameters/enable_ppgtt=1
/sys/module/i915/parameters/enable_psr=0
/sys/module/i915/parameters/enable_rc6=-1
/sys/module/i915/parameters/fastboot=N
/sys/module/i915/parameters/invert_brightness=0
/sys/module/i915/parameters/lvds_channel_mode=0
/sys/module/i915/parameters/lvds_downclock=0
/sys/module/i915/parameters/lvds_use_ssc=-1
/sys/module/i915/parameters/modeset=-1
/sys/module/i915/parameters/panel_ignore_lid=1
/sys/module/i915/parameters/powersave=1
/sys/module/i915/parameters/prefault_disable=N
/sys/module/i915/parameters/preliminary_hw_support=0
/sys/module/i915/parameters/reset=Y
/sys/module/i915/parameters/semaphores=-1
/sys/module/i915/parameters/vbt_sdvo_panel_type=-1
Run Code Online (Sandbox Code Playgroud) 当我的戴尔 XPS 15 9570 笔记本电脑打开时,正确检测到插入 HDMI 端口的显示器。拔下显示器也可以正常工作。
但是,当通过短暂地打开盖子从暂停中唤醒时,HDMI 端口不会重新配置。在暂停时插入的任何内容在恢复后仍被视为已连接。
这意味着保留先前插入的监视器的分辨率,如果监视器期望不同的分辨率,则会导致新监视器上的“不支持的分辨率”。在这种情况下,重新连接新显示器可解决此问题。
我还没有弄清楚到底是怎么做的,但是在暂停或恢复后打开盖子似乎会改变这种行为。
如何在恢复时强制再次扫描 HDMI 端口?或以其他方式解决这个烦人的问题。
nouveau.runpm=0 acpi_rev_override=1 acpi_osi=Linux nouveau.modeset=0 scsi_mod.use_blk_mq=1 mem_sleep_default=deeps2idle [deep]这在更新的 BIOS 和内核中不断发生:
据我了解,大多数 Intel GPU 在 Linux 上由两个不同的组件支持:i965(Mesa/OpenGL 部分,支持所有最新的 Intel GPU)和 i915(内核部分,同样支持所有最新的 Intel GPU)。
两者之间的关系在我发现的任何地方都没有非常清楚地解释,特别是现在像 iHD(用于 VAAPI)或 Iris(较新的芯片)这样的名称混合在一起,但基本上我明白 i965 使用 i915 从内核公开的功能( syscalls/ioctls?) 向应用程序公开 OpenGL API。
为什么英特尔高清显卡驱动程序称为 i915?回答了有关内核部分的问题,为什么要为支持所有 Intel GPU 的 Mesa 组件使用相似但不同的产品名称?这背后有什么原因吗,或者只是历史?