笔记本电脑在 Linux 上屏幕闪烁

笔记本电脑在 Linux 上屏幕闪烁

我的 Alienware 14 笔记本电脑出现了一个奇怪的问题,它正在运行 Debian 测试。如果我在不插入交流适配器的情况下使用它,一段时间后屏幕会开始随机闪烁(看起来内核中的省电模块禁用了它,然后如果我按任何键盘按钮,它又会重新启用)。同时,内核错误消息被打印到dmesg

[123701.234332] CPU: 3 PID: 1968 Comm: Xorg Tainted: G        W IO  3.16.0-4-amd64 #1 Debian 3.16.7-ckt2-1
[123701.234332] Hardware name: Alienware Alienware 14/07MJ2Y, BIOS A04 08/12/2013
[123701.234333]  0000000000000009 ffffffff81507263 ffff8800371d7ca8 ffffffff81065847
[123701.234334]  ffff880255f90080 ffff8800371d7cf8 0000000000070084 ffff880255f90000
[123701.234335]  0000000000000000 ffffffff810658ac ffffffffa04aa19e ffff880000000018
[123701.234336] Call Trace:
[123701.234338]  [<ffffffff81507263>] ? dump_stack+0x41/0x51
[123701.234339]  [<ffffffff81065847>] ? warn_slowpath_common+0x77/0x90
[123701.234341]  [<ffffffff810658ac>] ? warn_slowpath_fmt+0x4c/0x50
[123701.234347]  [<ffffffffa043d128>] ? hsw_write32+0x38/0x160 [i915]
[123701.234352]  [<ffffffffa0441485>] ? intel_crtc_update_cursor+0x165/0x3f0 [i915]
[123701.234357]  [<ffffffffa04454a5>] ? intel_crtc_cursor_move+0x55/0x60 [i915]
[123701.234362]  [<ffffffffa033589d>] ? drm_mode_cursor_common+0xdd/0x180 [drm]
[123701.234367]  [<ffffffffa03399c4>] ? drm_mode_cursor_ioctl+0x44/0x50 [drm]
[123701.234371]  [<ffffffffa032a8b7>] ? drm_ioctl+0x1c7/0x5b0 [drm]
[123701.234373]  [<ffffffff810125c9>] ? do_signal+0x199/0xa10
[123701.234376]  [<ffffffffa03d56f9>] ? evdev_read+0x109/0x3b0 [evdev]
[123701.234377]  [<ffffffff811b7d2f>] ? do_vfs_ioctl+0x2cf/0x4b0
[123701.234379]  [<ffffffff811a5943>] ? vfs_read+0x93/0x170
[123701.234380]  [<ffffffff811b7f91>] ? SyS_ioctl+0x81/0xa0
[123701.234381]  [<ffffffff8150d32d>] ? system_call_fast_compare_end+0x10/0x15
[123701.234382] ---[ end trace f54cd7f82942d80b ]---
[123701.234384] [drm:hsw_unclaimed_reg_clear] *ERROR* Unknown unclaimed register before writing to 70084
[123701.234386] [drm:hsw_unclaimed_reg_check] *ERROR* Unclaimed write to 70084
[123701.234387] ------------[ cut here ]------------
[123701.234392] WARNING: CPU: 3 PID: 1968 at /build/linux-CMiYW9/linux-3.16.7-ckt2/drivers/gpu/drm/i915/intel_uncore.c:47 gen6_read32+0x30/0x120 [i915]()
[123701.234392] Device suspended
[123701.234393] Modules linked in: cpuid ctr ccm binfmt_misc pci_stub vboxpci(O) vboxnetadp(O) cpufreq_powersave cpufreq_userspace vboxnetflt(O) bbswitch(O) cpufreq_stats cpufreq_conservative vboxdrv(O) nfsd auth_rpcgss oid_registry nfs_acl nfs lockd fscache sunrpc snd_hda_codec_hdmi joydev nls_utf8 nls_cp437 efi_pstore uvcvideo vfat videobuf2_vmalloc x86_pkg_temp_thermal hid_generic videobuf2_memops fat intel_powerclamp videobuf2_core intel_rapl v4l2_common coretemp videodev media kvm_intel usbhid ath3k kvm bluetooth crc32_pclmul hid 6lowpan_iphc arc4 ghash_clmulni_intel ath9k ath9k_common ath9k_hw iTCO_wdt ath iTCO_vendor_support dell_wmi sparse_keymap snd_hda_codec_realtek mac80211 aesni_intel aes_x86_64 lrw gf128mul glue_helper snd_hda_codec_generic ablk_helper cfg80211 cryptd rtsx_pci_ms i915 rfkill
[123701.234409]  psmouse snd_hda_intel evdev snd_hda_controller serio_raw pcspkr efivars lpc_ich memstick snd_hda_codec drm_kms_helper snd_hwdep i2c_i801 snd_pcm drm snd_timer snd i2c_algo_bit mei_me soundcore i2c_core mei battery ac shpchp video processor button dell_smo8800 wmi thermal_sys loop fuse parport_pc ppdev lp parport autofs4 ext4 crc16 mbcache jbd2 sg sd_mod crc_t10dif sr_mod crct10dif_generic cdrom ahci crct10dif_pclmul libahci crct10dif_common rtsx_pci_sdmmc libata crc32c_intel ehci_pci sdhci_pci xhci_hcd ehci_hcd sdhci scsi_mod rtsx_pci mmc_core mfd_core alx mdio usbcore usb_common

我的uname -a

Linux alien 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt2-1 (2014-12-08) x86_64 GNU/Linux

我尝试使用 xset 禁用屏幕保护程序和 dpms。我还尝试使用 modprobe conf 禁用 i915 的一些选项,但没有成功。 systool -m i915 -av显示 rc6 设置为“1”(据我所知,这是最强大的模式)。有人知道如何解决这个问题吗?

答案1

现在我只是禁用它rc6并修复了屏幕闪烁的问题:

$ cat /etc/modprobe.d/i915.conf
options i915 enable_rc6=0 disable_power_well=0

当然,这种方法对笔记本电脑的电池寿命不利。

相关内容