Dell XPS 15 (9560)
硬件 | PCI/USB ID | 工作状态? |
---|---|---|
GPU (Intel) | 是 | |
GPU (NVIDIA) | 是 | |
无线 | 是 | |
蓝牙 | 是 | |
音频 | 是 | |
触摸板 | 是 | |
网络摄像头 | 是 | |
读卡器 | 是 | |
指纹识别器 | 否 |
本页面包含在 Dell XPS 15 9560(2016 年末)上运行 Arch Linux 的建议。通过一些配置,几乎所有硬件都得到良好支持。例外情况是指纹识别器、部分用户在从挂起恢复时遇到的偶尔锁死问题,以及 NVIDIA 闭源驱动程序中不支持 PRIME 渲染卸载到独立显卡。
安装
在安装之前,需要修改一些 UEFI 设置。可以通过在启动时重复按 F2
键来访问它们。
- 将 SATA 模式从默认的 RAID 更改为 AHCI。这将允许 Linux 检测到 NVMe SSD。如果与现有 Windows 安装双启动,则 Windows 在更改后将无法启动,但这可以在不重新安装的情况下修复。
- 在POST 行为中将快速启动更改为彻底。这可以防止间歇性启动失败。
- 禁用安全启动。
Arch Linux 的安装可以正常进行。有关更多信息,请参阅安装指南。
电源管理
挂起和休眠
挂起和休眠功能开箱即用,但一些用户报告说从挂起恢复时偶尔会发生系统卡死,这种情况在 4.10 以后的内核上更为常见。
挂起功能键未印在键盘上,但实际上映射到 Fn
+Insert
。
风扇和温度监控与控制
许多温度计可以使用 lm_sensors 读取。
可以使用 i8kutils-gitAUR 中的 i8kctl
监控风扇转速。此笔记本电脑不在支持列表中,因此有必要加载带有 force=1
模块选项的 i8k
内核模块。请参阅内核模块#设置模块选项。也可以手动控制风扇转速(风险自负),但是手动控制仅提供部分可能的转速(0rpm、2500rpm、4800rpm),而不是固件自动控制中的(0rpm、2500rpm、3200rpm、3700rpm、4800rpm 和 5100rpm)。请参阅风扇转速控制#Dell 笔记本电脑。
内置风扇模式也可以通过编辑 bios 中的设置直接控制。libsmbios 软件包提供了许多用于读取和修改计算机上某些设置的工具。smbios-thermal-ctl
命令可以与 --set-thermal-mode
标志一起使用,以在性能、底部散热、安静和平衡模式之间更改风扇。例如
# smbios-thermal-ctl --set-thermal-mode quiet
这会将风扇模式更改为安静模式,这将使风扇曲线不那么激进。
可以使用 nvidia-smi
实用程序监控独立 NVIDIA GPU 上的温度计,该实用程序是 nvidia-utils 的一部分。
传感器内核模块和配置
值得研究的一个途径是使用原生内核模块 dell-smm-hwmon
$ modinfo dell-smm-hwmon | grep '^description' description: Dell laptop SMM BIOS hwmon driver
如果模块未加载,请尝试在运行 modprobe 时传递选项 ignore_dmi=1
# modprobe dell-smm-hwmon ignore_dmi=1
成功加载后,您应该在内核日志和/或 dmesg 中看到以下内容
185:[ 9.806060] dell_smm_hwmon: not running on a supported Dell system. 186:[ 9.806061] dell_smm_hwmon: vendor=Dell Inc., model=XPS 15 9550, version=x.y.z
现在 sensors 命令应该能够显示一些有用的数据
$ sensors -f dell_smm-virtual-0 Adapter: Virtual device Processor Fan: 2490 RPM Video Fan: 2501 RPM CPU: +105.8°F Ambient: +109.4°F Ambient: +104.0°F Other: +104.0°F
您可以通过将以下内容添加到 /etc/modprobe.d/dell.conf
来使这些设置永久生效
options dell-smm-hwmon ignore_dmi=1
并通过使 HWMON_MODULES
变量在 /etc/conf.d/lm_sensors
中显示如下
HWMON_MODULES="coretemp dell-smm-hwmon"
节能
禁用独立显卡
bbswitch 方法
独立 NVIDIA GTX 1050 GPU 默认开启,并且无法在 UEFI 设置中禁用。即使在空闲时,它也会消耗大量电量(约 7W)。要在不使用时禁用它,需要安装 bbswitch 和 bumblebee,将 acpi_rev_override=1
添加到内核参数,启用 bumblebeed.service
,然后重启(您可能需要重启两次才能让固件注意到 acpi_rev_override
)。
$ cat /proc/acpi/bbswitch
OFF
和
# dmesg | grep bbswitch
[ 4.253642] bbswitch: loading out-of-tree module taints kernel. [ 4.253833] bbswitch: version 0.8 [ 4.254093] bbswitch: Found integrated VGA device 0000:00:02.0: \_SB_.PCI0.GFX0 [ 4.254163] bbswitch: Found discrete VGA device 0000:01:00.0: \_SB_.PCI0.PEG0.PEGP [ 4.254225] bbswitch: detected an Optimus _DSM function [ 4.254282] bbswitch: Succesfully loaded. Discrete card 0000:01:00.0 is on [ 4.256651] bbswitch: disabling discrete graphics
acpi_call 方法
以下是一组替代步骤,不需要 bbswitch 或 bumblebee
- 使用 xf86-video-intel 软件包安装 Intel 视频驱动程序。
- 黑名单
nvidia
和nouveau
模块 - 使用 ACPI 命令关闭 GPU 电源
标准节能配置
最好安装一个工具来调整常用设置以节省电量。请参阅电源管理#用户空间工具。
禁用/自动挂起触摸屏
可以在 UEFI 设置中禁用触摸屏,从而显着节省电量。如果需要触摸屏,可以通过 TLP 将其置于自动挂起状态,方法是在 tlp 配置文件中将 04f3:24a1
添加到 USB_WHITELIST
。必须将 USB_AUTOSUSPEND
设置为 1 才能使其生效。这将使触摸屏保持启用状态以供使用,并将消耗更少的电池电量。
启用 NVMe APST
从 linux 4.11 开始,NVMe APST 受到支持并默认启用,允许 NVMe SSD 在空闲时切换到较低的功耗状态,从而实现显着的节能效果。请参阅固态硬盘/NVMe#允许驱动器进入低功耗状态 (APST)。根据具体的 SSD,可能还需要调整 nvme_core
模块的 default_ps_max_latency_us
参数,以使 ASPT 工作。例如,东芝 THNSN5512GPUK 就需要这样做。
为 i915 内核模块启用节能特性
将以下选项传递给 i915 内核模块可以显着节省电量:enable_fbc=1 enable_psr=1 disable_power_well=0
。一些使用高清雾面屏的用户报告说,这些参数会导致屏幕闪烁。帧缓冲压缩 (enable_fbc=1
) 从内核 4.11 开始默认启用。
Wi-Fi 和蓝牙
对于配备 Intel 8265 Wi-Fi 网卡的 Precision 5520,iwlwifi
内核模块的 power_save
选项可以从 1 设置为 5,从而有可能节省电量。请参阅内核模块#设置模块选项。蓝牙和 Wi-Fi 可以使用 rfkill 单独禁用。请参阅无线网络配置#Rfkill 注意事项。
降低 intel CPU 和 GPU 电压
可以降低 CPU 和集成 intel GPU 的供电电压,以降低其功耗。通常可以在不引起任何不稳定的情况下进行一些降低,具体取决于特定系统。通常,不稳定的第一个迹象出现在挂起、恢复以及负载和空闲之间的转换期间,而不是在长时间高负载期间。请参阅 intel-undervolt 和 linux-intel-undervolt-toolAUR,它们可以自动化每次启动/恢复时降压的过程。
图形
集成的 Intel HD 630 GPU 开箱即用。您可以选择安装 xf86-video-intel,但这不再推荐,因为内置的内核模式设置驱动程序更可靠。如果您不想使用独立 NVIDIA GPU,则无需额外设置。否则,有几个选项。所有显示输出都连接到集成 GPU,因此无需设置来自独立 GPU 的输出。可能需要编译自定义内核,如#节能中所述。
仅使用 Intel 显卡
请参阅上面的#禁用独立显卡。
使用 PRIME 渲染卸载的开源驱动
通过此设置,可以默认使用集成 GPU,并通过使用 DRI_PRIME
环境变量将 GPU 密集型应用程序卸载到独立 GPU。有关详细信息,请参阅 PRIME。请注意,开源 NVIDIA 驱动程序 Nouveau 目前不支持 Pascal GPU(如 GTX 1050)上的电源管理,因此使用此驱动程序的性能非常差。请参阅Nouveau#电源管理。
使用 Bumblebee 的闭源驱动
通过此设置,默认使用集成 GPU,但某些应用程序可以使用 optirun
或 primusrun
启动器在独立 GPU 上渲染。有关详细说明,请参阅 Bumblebee。缺少适当的垂直同步支持意味着使用此方法在独立 GPU 上渲染的应用程序会出现画面撕裂。由于在独立 GPU 和集成 GPU 之间低效地移动数据而引入了一些开销,但 NVIDIA GPU 的性能比使用 Nouveau 时要好得多。
使用 PRIME 输出卸载的闭源驱动
使用此设置,独立显卡用于所有渲染,集成显卡仅用于显示渲染输出。在轻度使用期间,功耗要高得多,因为独立显卡无法禁用。图形密集型应用程序的性能明显优于 Bumblebee,并且由于 PRIME Synchronization,垂直同步有效,因此消除了画面撕裂。删除 bumblebee,并按照 NVIDIA Optimus、NVIDIA README 或 PRIME Synchronization 线程中的说明进行操作,使用 PCI:1:0:0
作为 BusID。将 modeset=1
参数添加到 nvidia_drm
内核模块(在启动时,而不是使用 modprobe)以启用 PRIME 同步并消除画面撕裂(请参阅 Kernel modules#Setting module options)。
触摸板
Synaptics 触控板的基本功能开箱即用。
根据哪个软件包处理您的触控板输入,扩展功能的方法有所不同。
libinput 驱动程序配置
libinput 的完整文档似乎非常适用于此触控板。虽然该驱动程序已经包含处理高级多点触控事件(如滑动和捏合手势)的逻辑,但桌面环境或窗口管理器可能尚未为所有这些事件实现操作。
要使某些三指和四指手势工作,您可能需要使用 libinput-gestures 的文档并安装 libinput-gesturesAUR 软件包。
Synaptics 驱动程序配置
您可以使用 synclient
列出触控板的功能并在会话期间更改它们。
配置中键
触控板底部有一个很大的点击区域,可以禁用或配置为 1、2 或 3 个按钮。例如,要将触控板的大部分区域视为“按钮 1”,但将中间下部区域(中键)和右下部区域(右键)视为单独的按钮,请创建内容为如下的 /etc/X11/xorg.conf.d/50-synaptics.conf
文件
Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" # enable clik zone and configure 3 buttons on bottom Option "ClickPad" "1" Option "SoftButtonAreas" "60% 0 82% 0 40% 60% 82% 0" # other commons options than you may want to configure # scroll with two fingers (enabled vertically, disabled horizontally) Option "VertTwoFingerScroll" "1" Option "HorizTwoFingerScroll" "0" # enable tap as click: 1 finger -> left button, 2 fingers -> right, 3 fingers -> middle Option "TapButton1" "1" Option "TapButton2" "3" Option "TapButton3" "2" # idem but for click with 1,2,3 fingers. Use "0" to disable. Option "ClickFinger1" "1" Option "ClickFinger2" "3" Option "ClickFinger3" "2" # palm detection. These parameters somehow works, YMMV. Option "PalmDetect" "1" Option "PalmMinWidth" "10" Option "PalmMinZ" "200" EndSection
随着 synaptics 最近被弃用,可以使用现有的 GUI(例如,GNOME Tweak Tool)来更改行为。使用 gnome-tweaks,在“键盘和鼠标”部分,“鼠标点击模拟”默认设置为“手指”。将其更改为“区域”选项,该选项使用触控板的右下角进行右键单击,可以解决此问题。
Thunderbolt 扩展坞
TB16
如果 BIOS 中禁用了 Thunderbolt 安全性,或者使用 bolt 临时授权或永久注册已激活 Thunderbolt 安全性的 Thunderbolt 设备,则 TB16 工作正常。戴尔 TB16 页面上详细介绍了各种怪癖。
戴尔扩展坞
某些戴尔扩展坞(使用 D6000 测试)会遇到显示器周期性断开连接的情况。重新拔插扩展坞会导致显示器恢复工作,但显示器会再次断开连接。更永久的解决方法是注释掉 PulseAudio 配置中的以下行
/etc/pulse/default.pa
### Automatically suspend sinks/sources that become idle for too long load-module module-suspend-on-idle
可以在此处找到关于此问题的讨论,包括关于修复的讨论。
固件
工具化
固件更新由戴尔提供,可以使用 fwupd 安装。
手动
或者,可以在 戴尔支持页面上找到固件映像,文件名为 XPS_15_9560_X.Y.Z.exe
。为了安装
- 从“Dell XPS 15 9560 System BIOS”部分下载所需的固件
- 将其保存在
/boot/EFI/Dell/Bios/
中(此路径可能因您的安装而异)或保存到 FAT32 格式的 USB 驱动器 - 重启系统,并在戴尔徽标出现时反复按
F12
进入启动菜单 - 选择“Bios Flash Update”
- 选择之前保存的文件,然后开始该过程
该过程将持续约五分钟,在此期间系统将重启几次并将风扇推至最大速度。最后,系统将正常重启。
指纹识别器
指纹读取器是 Validity/Synaptics 型号,USB ID 为 138a:0091
。目前有一个可用的驱动程序原型,能够捕获指纹,但由于匹配算法的实现方式,直接与 libfprint 集成的可能性不大。 [1]。
还有一些人正在为各种其他相关的读取器开发驱动程序。根据他们的说法,为该型号实现驱动程序应该相当容易,因为进出设备的所有流量似乎都没有加密。尽管如此,138a:0091
超出了该项目的范围。 [2]
故障排除
Xorg 启动时冻结
如果 Xorg 在启动后立即冻结,甚至在打印任何日志之前,并且您尝试使用 Intel 显卡且 NVIDIA 显卡已禁用,则需要添加内核参数 acpi_rev_override=1
,如上面的 #Disable discrete GPU 中所述。
音频 / 耳机
如果通过耳机插孔的音频输出突然停止工作,并且重启计算机没有帮助,请尝试挂起/恢复。可能需要在挂起之前拔下耳机,然后在计算机完全唤醒后重新插入(基于此 AskUbuntu 回答和 Arch 用户的经验)。如果即使在挂起/恢复技巧和插拔电缆后耳机音频似乎仍然永久丢失,则 $ alsactl restore
可以将其恢复。最后建议尝试的操作是启动到 Windows 并连接耳机后静音/取消静音音频。
如果通过扬声器/耳机的音量很小,您可能需要重启到 Windows 并在 Windows 中增大音量。然后重启到 Linux,您的扬声器/耳机应该会更响亮...
系统日志中的 PCIe 总线错误
如果您有 NVMe 磁盘,并且取决于您的 BIOS 版本(即使是 2017 年 10 月的 1.5.0 版本),您可能会有很多系统错误日志,例如
Nov 25 22:36:08 xxxxx kernel: pcieport 0000:00:1c.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=00e0(Transmitter ID) Nov 25 22:36:08 xxxxx kernel: pcieport 0000:00:1c.0: device [8086:a110] error status/mask=00001000/00002000 Nov 25 22:36:08 xxxxx kernel: pcieport 0000:00:1c.0: [12] Replay Timer Timeout
可以使用内核启动选项 pcie_aspm=off
来纠正此问题,该选项似乎对功耗的影响极小甚至没有影响。如果这不起作用,请尝试 pci=nommconf
(有关说明,请参阅 此处)。
lspci
导致 CPU 锁定
NVIDIA/nouveau 驱动程序可能会导致任何运行 lspci
、启动 X 服务器或以其他方式探测显卡的操作导致至少一个 CPU 核心锁定,并且似乎完全锁定 PCIe 访问,例如对 NVMe SSD 的访问。内核参数 nouveau.modeset=0
可能会解决此问题。这也与启动时 X 冻结有关(某些机器可能需要运行两次 lspci/startx,以便在 nouveau 被处理后它们冻结);在这种情况下,解决方案也是设置 acpi_rev_override=1
。 [3]
普遍的缓慢和卡顿
如果您遇到整体性能和响应能力大幅下降的情况,可能是由于 CPU 卡在 800Mhz 的频率上被节流。这种情况也发生在其他类似的 XPS 型号(如 XPS15 9550)上,可能是由于使用了非 OEM 电源适配器。要检查,请运行 watch -n1 'lscpu | grep MHz'
并执行一些任务。如果 CPU 频率一直卡在 800Mhz,那么您就遇到了这个问题。
要修复,有三种选择
- 无需重启,即时修复:读取并将控制此节流的寄存器设置回最大频率,有关如何操作,请参阅 Lenovo ThinkPad T480#CPU stuck at minimum frequency 和 这个 superuser 问题。
- 断开电源适配器和电池,然后按住电源按钮 5-30 秒
- 耗尽电池电量,断开电源适配器,然后按住电源按钮 5-30 秒
重启后,再次运行相同的命令来检查 CPU 频率,它应该恢复正常。 [4]
在启动时(POST),连接到 USB-C 端口的设备无法工作
在某些情况下,当连接到 USB-C 端口的设备出现问题时,可能会发生这种情况
- 无法使用外接键盘进入 BIOS 启动菜单或 BIOS 设置。
- 无法处理启动加载程序菜单。
- 无法从外部 USB 存储启动。
这是由戴尔固件默认情况下在 POST 期间未初始化它们引起的。但是可以在 BIOS 设置中启用它(System Configuration > Thunderbolt Adapter Configuration > Enable Thunderbolt Adapter Boot Support)。
内核 6.4.11 和 6.1.46LTS 中 Card Reader 的 rtsx 驱动程序中的错误阻止启动
内核 6.4.11 和 6.1.46LTS 中引入了与读卡器 rtsx 驱动程序相关的回归,随后阻止系统识别 NVMe 驱动器并正常启动。
一种解决方法是将有问题的驱动程序(rtsx_pci
和 rtsx_pci_sdmmc
)列入黑名单,然后重新生成 initramfs,直到内核问题得到修复。
这将禁用读卡器,系统将正常启动。
有关更多详细信息,请参阅 FS#79439。