Dell XPS 13 (9360)

出自 ArchWiki

此文章或章节不符合笔记本电脑页面指南

原因: 页面在笔记本电脑页面指南之前创建,因此缺少 PCI/USB ID、功能键表格等 (在Talk:Dell XPS 13 (9360)中讨论)

此文章或章节需要语言、wiki 语法或风格改进。请参阅Help:Style 以获取参考。

原因: 使用了一些第一人称 (在Talk: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 应用戴尔的固件更新

  1. 安装(例如)woeusbAUR
  2. 微软网站下载 Windows 10 ISO
  3. 创建便携式 Windows 10 安装 使用 woeusb
  4. 从您的 Windows 10 USB 设备启动 XPS 13 (F12)
  5. 在 Windows 中,下载并安装英特尔显卡控制器的最新驱动程序
  6. 然后下载并安装此工具以更新面板固件。该工具为您提供了禁用 CABC 的选项
  7. 重启(从 USB)
  8. 重启到 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/nvme0nvme id-ctrl /dev/nvme0 查看)。

视频

英特尔 GPU 使用 i915 驱动程序工作正常。有关详细的安装和配置指南以及Intel graphics#故障排除,请参阅Intel graphics

如果您有 QHD+ (3200x1800) 型号,另请查看HiDPI 以获取 UI 缩放配置。

无线

警告: 已知 BIOS 版本 2.9.0 会使 Killer WiFi 极其不稳定 - 请在继续之前更新到至少版本 2.10.0。

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 月,戴尔支持建议通过以下方式更新网络适配器的固件

  1. 确认您有 QCA6174,检查以下输出
    # lspci 
  2. 下载[死链 2024-07-30 ⓘ] 最新固件并解压存档内容
  3. /lib/firmware/ath10k/ 中的 QCA6174 文件夹替换为下载的文件夹
  4. 在新文件夹中,将 firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1 重命名为 firmware-4.bin
  5. 重启并测试新的 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
注意: 如果您仍然遇到问题,可能需要安装替代的 WiFi M.2 2230 卡,例如 Intel AC-8265 (b/g/n/AC 20/40/80Mhz 867Mbps+蓝牙 4.2) 或 Intel AC-9260 (b/g/n/AC/6 20/40/80/160Mhz 1.73Gbps + 蓝牙 5.0)。

蓝牙

按照 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+<键> 结果键(序列)
Fn+Ins XF86Sleep
Fn+Super_L Super_R
Fn+B Pause
Fn+R Print
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 启动支持”。您可以使用 powertoppowerstat-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:0090138a:0094138a:0097 指纹读取器协议的努力[5]

参见