Dell XPS 13 (9360)
硬件 | PCI/USB ID | 工作状态? |
---|---|---|
声音 | 8086:9d71 | 是 |
视频 | 8086:5917 | 是 |
无线 | 168c:003e | 是 |
Dell XPS 13 Late 2016 (9360) 是 XPS 13 系列的第四代型号。该笔记本电脑自 10 月起(2017 年之前的型号)上市,既有预装 Windows 的标准版,也有预装 Ubuntu 的 2017 年之前的型号和 2017 年型号(硬件差异不大)开发者版。
Oculink
此笔记本电脑与 NVME 上的 Oculink 不兼容 e-GPU(amd、nvidia...)。它不接受 NVME 存储设备以外的任何东西。如果 GPU 连接到 NVME 端口,指示灯将闪烁白色/橙色,然后笔记本电脑将关机。一些 NVME SSD 也无法工作,戴尔似乎对 NVME 有一些 DRM,就像联想对 wifi 卡所做的那样。无论如何,出于降低功耗的原因,DELL 将 NVME 端口限制为 2x,尽管其容量为 4x,但此参数在 UEFI 配置中不可访问。只有 Coreboot 端口才能解决这种情况。
内容自适应亮度控制
在 XPS 13 中,显示面板(FHD 和 QHD+)都带有嵌入在面板固件中的内容自适应亮度控制(通常称为 CABC 或 DBC)——它根据屏幕上显示的内容调整屏幕亮度。虽然它可以节省一点电量,但通常是不受欢迎的,特别是对于可能在深色和浅色屏幕内容之间切换的 Linux 用户而言。戴尔已发布此问题的修复程序,但它仅在 Windows 中可用。此修复程序可从戴尔官网直接获取。
要测试您的 XPS 13 是否受 CABC 影响,请转到此测试页面。可以使用 USB 设备上的便携式 Windows 10 应用戴尔的固件更新
- 安装(例如)woeusbAUR
- 从微软网站下载 Windows 10 ISO
- 创建便携式 Windows 10 安装 使用 woeusb
- 从您的 Windows 10 USB 设备启动 XPS 13 (F12)
- 在 Windows 中,下载并安装英特尔显卡控制器的最新驱动程序
- 然后下载并安装此工具以更新面板固件。该工具为您提供了禁用 CABC 的选项
- 重启(从 USB)
- 重启到 Arch Linux 并重新运行测试
节能
通过一些技巧,可以节省大约 ~10/20% 的能量。
- 可以在 BIOS 设置中禁用 SD 卡适配器以节省 ~0.5W。
降压 (和无风扇)
- 可以使用intel-undervolt对 CPU 和 GPU 进行降压。每个单独的 CPU 都需要手动调整——即使对于相同的 CPU 型号,也没有众所周知的良好值。它仅适用于 2.13.0 和之前的 bios 更新,因为戴尔出于安全原因禁用了它。如果您从 2.14.2 和后续更新降级,则必须恢复出厂 BIOS 设置,否则您将继续收到“CPU (0): 值不相等 / GPU (1): 值不相等 / CPU 缓存 (2): 值不相等”。
- 示例 I5-7200U 基本稳定值(对于您的同一 CPU,降压容差可能略有不同)
/etc/intel-undervolt.conf
undervolt 0 'CPU' -153 undervolt 1 'GPU' -115 undervolt 2 'CPU Cache' -80 undervolt 3 'System Agent' 0 undervolt 4 'Analog I/O' 0
- GPU 可以使用
i915.enable_fbc=1
内核模块参数消耗更少的电量(有关更多详细信息,请参阅Intel graphics#基于模块的选项)。其他已知的良好选项在 5.3+ 内核版本上默认启用。
- 当笔记本电脑降压后,除了 CPU/GPU 高使用率(编码、游戏...)外,几乎大部分时间都是无风扇的。
NVM Express SSD
与 Thunderbolt 一样,戴尔在隐藏的 UEFI 设置中将 NVMe PCIE 总线限制为 2x 而不是 4x(非官方的节能原因)。实际上没有已知的技巧可以绕过此设置。此设置将总线速度限制为 1.4GB/s 而不是 3.8GB/s。
对于某些设备,可能需要为 nvme_core.default_ps_max_latency_us
参数设置更高的值,以启用所有节能状态。此参数必须在内核命令行上设置。
对于 XPS 13 某些型号中使用的东芝 512GB SSD,启用所有状态的值为 170000(进入和离开最高功率状态的组合延迟,将 nvme_core.default_ps_max_latency_us=170000
添加到您的内核命令行)。对于 1TB SSD,此值应增加到 180000。要检查是否启用了所有状态,您可以使用nvme-cli软件包,该软件包提供 nvme-cli
命令
# nvme get-feature -f 0x0c -H /dev/nvme0
get-feature:0xc (Autonomous Power State Transition), Current value:0x000001 Autonomous Power State Transition Enable (APSTE): Enabled Auto PST Entries ................. Entry[ 0] ................. Idle Time Prior to Transition (ITPT): 1500 ms Idle Transition Power State (ITPS): 3 ................. Entry[ 1] ................. Idle Time Prior to Transition (ITPT): 1500 ms Idle Transition Power State (ITPS): 3 ................. Entry[ 2] ................. Idle Time Prior to Transition (ITPT): 1500 ms Idle Transition Power State (ITPS): 3 ................. Entry[ 3] ................. Idle Time Prior to Transition (ITPT): 8500 ms Idle Transition Power State (ITPS): 4 .................
如果电源状态已启用,则第一个条目中应存在 ITPT 和 ITPS 的值。此外,最后一个已填充条目的 ITPS 值应是 SSD 的最高节能状态(可以使用 smartctl -c /dev/nvme0
或 nvme id-ctrl /dev/nvme0
查看)。
视频
英特尔 GPU 使用 i915
驱动程序工作正常。有关详细的安装和配置指南以及Intel graphics#故障排除,请参阅Intel graphics。
如果您有 QHD+ (3200x1800) 型号,另请查看HiDPI 以获取 UI 缩放配置。
无线
Killer 1535 无线适配器功能正常,所需的 ath10k 固件包含在linux-firmware中,但硬件/固件/驱动程序在 Linux 上不稳定且有缺陷。iw 报告的连接速度限制为 1-6Mbits/s。但这只是输出错误。实际连接速度不受此值限制。一些用户遇到问题,无论操作系统如何,在重负载下连接都会断开,但片刻后会重新连接。在浏览期间可能根本不会注意到这一点,但在在线游戏中会变得明显。此问题的迹象似乎是 dmesg 中的两种消息
pcieport 0000:00:1c.4: AER: Corrected error received: id=00e4 pcieport 0000:00:1c.4: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=00e4(Transmitter ID) pcieport 0000:00:1c.4: device [8086:9d14] error status/mask=00001000/00002000 pcieport 0000:00:1c.4: [12] Replay Timer Timeout
还有
CPU: 3 PID: 1410 Comm: irq/133-ath10k_ Not tainted Hardware name: Dell Inc. XPS 13 9360/0839Y6, BIOS 2.1.0 08/02/2017 Call Trace: <IRQ> dump_stack+0x63/0x82 __warn+0xcb/0xf0 warn_slowpath_null+0x1d/0x20 net_rx_action+0x274/0x3a0 ? irq_finalize_oneshot.part.35+0xe0/0xe0
截至 2018 年 2 月,戴尔支持建议通过以下方式更新网络适配器的固件
- 确认您有 QCA6174,检查以下输出
# lspci
- 下载[死链 2024-07-30 ⓘ] 最新固件并解压存档内容
- 将
/lib/firmware/ath10k/
中的QCA6174
文件夹替换为下载的文件夹 - 在新文件夹中,将
firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1
重命名为firmware-4.bin
- 重启并测试新的 Killer Wi-Fi 固件
此解决方案可能无法解决问题:一些用户报告说,即使使用更新的固件,连接也会断开。您也可以尝试使用更新的固件 firmware-6.bin_WLAN.RM.4.4.1-00102-QCARMSWP-1
,方法是从 https://github.com/kvalo/ath10k-firmware/blob/master/QCA6174/hw3.0/4.4.1.c1/firmware-6.bin_RM.4.4.1.c1-00042-QCARMSWP-1[死链 2024-07-30 ⓘ] 下载该文件,将其复制到 /usr/lib/firmware/ath10k/QCA6174/hw3.0/
并将其重命名为 firmware-6.bin
。
重启并运行以下命令验证是否使用了此较新的固件
# dmesg | grep ath
ath10k_pci 0000:3a:00.0: firmware ver RM.4.4.1.c1-00042-QCARMSWP-1 api 6 features wowlan,ignore-otp crc32 40fb7bdd
蓝牙
按照 Bluetooth 中给出的说明操作后,通过手机进行互联网连接的蓝牙共享立即生效。
当蓝牙和挂起出现问题时(CapsLock 闪烁),请参阅故障排除。
Thunderbolt 3 / USB 3.1
USB-C 端口支持 Thunderbolt 3、Displayport-over-USB-C 和 USB 供电以及 USB 3.1。
戴尔在隐藏的 bios 设置中将 Thunderbolt PCIE 总线限制为 2x 而不是 4x(非官方的节能原因)。实际上没有已知的技巧可以绕过此设置。
以太网使用 Dell USB-C 适配器 (DA200) 反复断开/重新连接
使用电源管理包(例如 TLP)可能会导致以太网适配器反复断开和重新连接。如果发生这种情况,请禁用/黑名单以太网适配器的 USB 自动挂起。(在我的笔记本电脑上,这是 lsusb
输出中的设备 Bus 004 Device 007: ID 0bda:8153 Realtek Semiconductor Corp
。)
USB-C 兼容性图表
在讨论页中提供了全面且最新的 USB C 型适配器和集线器列表。
Thunderbolt 固件更新
笔记本电脑中的 thunderbolt 控制器具有嵌入式固件。笔记本电脑出厂时带有固件版本 NVM 18,戴尔网站上提供的最新版本是 NVM 26。如果遇到与 Thunderbolt 配件(例如 DA-200)的兼容性问题,则可能需要更新固件。如果您已设置 fwupd(请参阅:#固件),那么您应该会自动收到此更新。否则,您可以手动安装,如下所示。
戴尔维护了一个包含固件的 github 存储库,但现在固件已在 LVFS 上,因此已放弃维护。当前版本在Windows 软件包中以 0x075B_secure.bin
(或较新型号为 0x082A,请参见以下说明)的形式提供。可以使用 7zip 解压。
以下是在 linux 4.13+ 上更新 Thunderbolt 固件的简短步骤列表(风险自负)
- 强制启用 thunderbolt 控制器(或插入设备以启用它)
# echo 1 > /sys/bus/wmi/devices/86CCFD48-205E-4A77-9C48-2021CBEDE341/force_power
- 检查您的型号 ID。如果为 0x082A,请使用 0x082A 固件而不是 0x075B 固件。
# cat /sys/bus/thunderbolt/devices/0-0/device
- 将 thunderbolt-nvm-linux 存储库中的 9360 固件刷入非活动 NVMe 内存位置
# dd if=payloads/0x075B.bin of=/sys/bus/thunderbolt/devices/0-0/nvm_non_active0/nvmem
- 触发更新过程
# echo 1 > /sys/bus/thunderbolt/devices/0-0/nvm_authenticate
- 此时,您的屏幕应闪烁几次。通过检查身份验证是否返回 0 来验证更新是否完成
# cat /sys/bus/thunderbolt/devices/0-0/nvm_authenticate
- 验证新的 NVMe 版本(应返回 26.1)
# cat /sys/bus/thunderbolt/devices/0-0/nvm_version
- 将控制器恢复到正常模式
# echo 0 > /sys/bus/wmi/devices/86CCFD48-205E-4A77-9C48-2021CBEDE341/force_power
SATA 控制器
当 BIOS 中的 SATA 控制器设置为 RAID On
时,SSD 无法识别,因为内核不支持重新映射的 AHCI 设备,请参阅[1]。在尝试安装 Arch 之前设置为 AHCI
。
触摸板
触摸板没有明确的按钮。按钮内置在触摸板表面中。触摸板上印有一条小线,分隔左右单击区域,libinput 在软件中也进行了相同的分隔。
Libinput 还提供了一个中键——要发出中键单击,只需按下虚拟左右按钮之间的中间区域(即在小的印刷分隔线上)。
移除 dmesg 中的 psmouse 错误
如果以 root 身份运行 dmesg | grep -i psmouse
返回错误,但您的触摸板仍然工作,那么禁用 psmouse
可能是个好主意。首先创建一个配置文件
/etc/modprobe.d/modprobe.conf
blacklist psmouse
然后将此文件添加到 /etc/mkinitcpio.conf
... FILES=(/etc/modprobe.d/modprobe.conf) ...
重建您的初始 ramdisk 映像(请参阅Mkinitcpio#映像创建和激活)。
触摸屏
手势
有关当前开发状态和可用方法的信息,请参阅libinput#手势。
在 Firefox 中滚动
请参阅Firefox/Tweaks#像素完美触控板滚动。这同时启用了触摸屏滚动和高分辨率触控板滚动。
键盘背光
默认情况下,键盘背光在 10 秒不活动后关闭。一些用户可能会觉得这太短且烦人。可以通过编辑此文件来增加(或减少)延迟
/sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/stop_timeout
您还可以通过编辑以下文件来更改亮度 (0-2)。这与按键盘上的 F10 相同
/sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/brightness
功能键
还有一些未在键盘上标记的其他功能键序列,但底层硬件仍然会生成它们
Fn+<键> | 结果键(序列) |
---|---|
Fn+Ins | XF86Sleep |
Fn+Super_L | Super_R |
Fn+B | Pause |
Fn+R | |
Fn+S | Scroll_Lock |
Fn+A / D / E / F / G / T / Q / W | XF86Launch3 |
低调模式
如果在 BIOS 中启用,按 Fn+F7
将禁用声音、键盘和屏幕背光、充电 LED 以及电源按钮上的 LED。不幸的是,似乎无法仅禁用 LED — 一些用户建议使用黑色电工胶带。
当低调模式处于活动状态时,smbios-token-ctl -d
的输出仅列出与屏幕、键盘和声音相关的更改。
固件
戴尔通过 fwupd 提供固件更新。为了更新 BIOS,请确保同时安装可选依赖项 tpm2-tss。请注意,如果您已使用绑定挂载分区作为 /boot
或通过传统 BIOS/CSM 而不是 UEFI 启动,您将无法使用 fwupd 实用程序 — 请改用以下方法。
或者,可以从戴尔网站下载 BIOS 更新(按“BIOS”筛选)并将其放置在固件可访问的位置。这可以是 /boot
文件夹,也可以是 FAT32 格式化的 USB 驱动器。然后重启笔记本电脑并在启动时按 F12
。在启动菜单中选择固件更新并选择下载的文件。
休眠到空闲 (s2idle, S0ix)
根据 英特尔文章中描述的方法,此设备支持低功耗 S0 空闲 (S0ix)。
要尝试它,请参阅电源管理/挂起和休眠#更改挂起方法。
您可能需要阻止 xHCI 控制器唤醒系统。将 XHC
写入 /proc/acpi/wakeup
,或将 disabled
写入 /sys/devices/pci0000:00/0000:00:14.0/power/wakeup
。不同的型号可能有不同的 xHCI 控制器 PCI ID,请参阅 grep XHC /proc/acpi/wakeup
的第 4 列。
要使更改永久生效,请将文件放入 /etc/tmpfiles.d
/etc/tmpfiles.d/disable-xhci-wakeup.conf
w /sys/devices/pci0000:00/0000:00:14.0/power/wakeup - - - - disabled
如果您想启用按键唤醒
/etc/tmpfiles.d/enable-key-press-wakeup.conf
# Enable key press to wakeup w /sys/devices/platform/i8042/serio0/power/wakeup - - - - enabled
故障排除
EFISTUB 无法启动
BIOS 不会将任何启动参数传递给内核。请改用 UEFI 启动引导程序。
可以通过构建包含参数的单文件 EFI 映像来解决此问题。请参阅[2]。
无法从挂起中唤醒
将 BIOS 更新到 1.0.7 以修补此问题。
从待机唤醒后耗电过快
一些用户发现在从待机状态唤醒后,功耗增加了约 2W。转到 UEFI 固件设置(当出现 Dell 徽标时点击 F2 键)并取消选中“启用 Thunderbolt 启动支持”。您可以使用 powertop 或 powerstat-gitAUR 来重现并检查此行为。
耳机/外接扬声器出现爆音
在音频芯片上启用节能会导致出现嘶嘶声和爆音。
请查看ALSA troubleshooting#启动和停止播放时出现爆音 和 ALSA troubleshooting#从挂起恢复后出现爆音。
如果您正在使用 tlp,它将在电池供电时默认激活节能。编辑 /etc/default/tlp
并禁用它。
屏幕内容变化时出现噼啪声
一些用户在计算机从 S3 休眠状态唤醒后,当显示器更改其内容时,会遇到奇怪的噼啪声、白噪声。
此问题应已在 4.14.15 内核中得到修补。
如果您仍然遇到此问题,请尝试手动应用此补丁[3]。按照 Intel graphics 中的描述添加内核参数 i915 enable_guc=1
也可能有所帮助,但是多人报告说这并不能完全解决问题。
线圈啸叫
不幸的是,戴尔仍然没有解决这个问题,我的型号的声音非常大。该问题似乎与显卡有关。对于某些用户,可以通过激活帧缓冲压缩 Intel graphics#帧缓冲压缩 (enable_fbc) 来大大减少它。然后在图形负载较重的情况下,线圈啸叫将再次开始。对于触摸屏型号,由于高分辨率屏幕,这种情况可能非常频繁。类似地,显示器可以在较低分辨率下运行,从而再次减少显卡上的负载。
从挂起唤醒后死机
据报告,安装 xf86-video-intel-gitAUR 可以解决此问题。
当使用蓝牙设备(已确认 Logitech MX Anywhere 2S 和 gnome)时,计算机经常没有响应,并且 CapsLock 上的 LED 闪烁。使用 launchpad 中的解决方案在这种情况下有所帮助。
耳机持续发出嘶嘶声
打开 alsamixer 并将“Headphone Mic Boost”增益设置为 10 dB(请参阅 reddit 上的讨论)。请注意,这确实会稍微降低音量。
您也可以运行等效命令
$ amixer -c PCH cset 'name=Headphone Mic Boost Volume' 1
PulseAudio 将在每次启动时重写这些 ALSA 设置。因此,如果您使用 PulseAudio,您可以更改其配置以使设置永久生效
/usr/share/alsa-card-profile/mixer/paths/analog-input-headphone-mic.conf
[Element Headphone Mic Boost] required-any = any switch = select # Replace "volume = merge" by: volume = 1 override-map.1 = all override-map.2 = all-left,all-right
/usr/share/alsa-card-profile/mixer/paths/analog-input-internal-mic.conf
[Element Headphone Mic Boost] switch = off # Replace "volume = off" by: volume = 1
此更改将被 PulseAudio 的升级覆盖。要使这些更改在升级后仍然持久,您可以使用 pacman hook
/etc/pacman.d/hooks/headphones_hissing.hook
[Trigger] Operation = Install Operation = Upgrade Type = Package Target = pulseaudio [Action] Description = Set default Headphone Mic Boost volume to 1... When = PostTransaction Exec = /usr/bin/sed -i '/\[Element Headphone Mic Boost\]/,/^$/s/volume = .*/volume = 1/' /usr/share/alsa-card-profile/mixer/paths/analog-input-internal-mic.conf /usr/share/alsa-card-profile/mixer/paths/analog-input-headphone-mic.conf
或者,您可以避免对 /usr 下的文件进行这些更改,方法是在启动时调用 amixer。第一个解决方案是将上述命令添加到您的 shell 配置文件中(bash 的情况下为 ~/.bash_profile
)。或者,您可以设置一个由 PulseAudio 调用的 systemd 用户服务
~/.config/systemd/user/headphones_hissing.service
[Unit] Description=Disable hissing sound with headphones After=pulseaudio.service PartOf=pulseaudio.service [Service] Type=oneshot ExecStart=amixer -c PCH cset 'name=Headphone Mic Boost Volume' 1 [Install] WantedBy=pulseaudio.service
要将这些好处提供给系统上的其他用户,您可以全局设置它,即在 /etc/profile
中调用 amixer,并将 systemd 单元放在 /etc/systemd/user/headphones_hissing.service
中,并分别使用 --global
选项全局启用它。
指纹传感器
戴尔官方不支持指纹读取器功能[4],但是可以在 github 上找到反向工程 Validity 138a:0090
、138a:0094
、138a:0097
指纹读取器协议的努力[5]。