Dell XPS 13 (9370)

出自 ArchWiki

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

原因: 小作品(在Talk:Dell XPS 13 (9370)中讨论)
硬件 PCI/USB ID 工作状态?
GPU 8086:5917
Wi-Fi 168c:003e
蓝牙 0489:e0a2
音频 8086:9d71
触摸板
网络摄像头 0bda:58f4
红外
Thunderbolt 8086:15d3
指纹传感器1
读卡器 10ec:525a

Dell XPS 13 Early 2018 (9370) 是 XPS 13 系列的第五代型号。这款笔记本电脑于 2018 年 1 月发布,分为预装 Windows 的标准版和预装 Ubuntu 的开发者版。

  1. 指纹识别器在开发者版/Linux 版本上不可用,该版本取而代之的是带有内置电源指示灯的常规电源按钮。戴尔的信息在此处可用

安装

可以通过在启动时按 F2 键访问 UEFI 设置。

  • 将 SATA 模式从默认的“RAID”更改为“AHCI”。这将允许 Linux 检测到 NVMe SSD。如果与现有 Windows 安装双启动,Windows 在更改后将无法启动,但这可以在不重新安装的情况下修复
  • 禁用安全启动以允许 Linux 启动。
  • 要从通过包装盒中包含的 USB-C 转 USB-A 适配器连接的 USB 设备启动,您需要启用 Thunderbolt 启动。启用后,启动时按 F12 将进入启动菜单。也可以直接使用右侧的 USB-C 端口,而无需进行任何 UEFI 调整。

从 micro SD 卡启动和安装也是可能的,只要在 UEFI 设置中同时启用 SD 卡和 SD 卡启动。

dell-command-configureAUR 可用于修改设置,而无需重启进入 UEFI 菜单。例如,将电池配置为在充电至 75% 时停止充电,并在电量耗尽至 60% 时才重新开始充电

# cctk --PrimaryBattChargeCfg=Custom:60-75

固件

戴尔通过 Linux 供应商固件服务 (LVFS) 提供固件更新。有关更多信息,请参阅从 Linux 刷新 BIOS#fwupd。软件包在fwupd中 readily available。更新也为 Thunderbolt 控制器提供。存在一个问题,重新刷新后 Thunderbolt 版本号被检测为 00.00(目前正在调查中)。

或者,对于 BIOS 更新,您可以简单地从戴尔支持页面将 .exe 文件复制到任何 FAT32 驱动器(甚至启动分区似乎也可以工作)。然后在启动时按 F12 进入“BIOS Flash Update”实用程序。

戴尔还发布了 SSD 固件的更新,但这些只能从 Windows 更新,不能从 Linux 更新。

显示

enable_psr=1 内核参数似乎无法正常工作,至少在触摸屏型号上是这样。

如果无法调整背光亮度,请添加 i915.enable_dpcd_backlight=0 作为内核参数。

内容自适应亮度控制

在 XPS 13 中,显示面板(FHD 和 4K UHD)默认都启用了内容自适应亮度控制(通常称为 CABC 或 DBC,有时也称为“EcoPower”)。虽然在以前的型号中禁用需要刷新显示固件,但现在可以在最近的 BIOS 版本的“视频”部分中禁用 DBC。要测试是否启用了 DBS,请访问此测试页面

存储

固件

NVMe SSD 是 Toshiba KXG50ZNV256G、KXG50ZNV512G 或 KXG50ZNV1T02。库存固件版本 AADA4102 在 SSD 进入最低功耗状态时存在严重问题。这会导致设备无响应(内核抱怨只读文件系统)。问题可能随时发生,但在 Kernel 4.18 在电池供电时似乎变得更加常见。固件版本 AADA4107 似乎修复了该问题。固件仅适用于 Windows,但可以在 Linux 下更新,风险自负

注意: 在某些设备上,NVMe SSD 可能是 SK hynix EJ82N00301190264W (1TB),而不是 Toshiba 的。

由于升级只能在 Windows 下进行,并且即使升级了驱动程序,磁盘也可能因 SSD 在最深睡眠模式下无响应而完全无法被内核检测到,因此以下内核参数可用作一种解决方法,防止磁盘进入有问题的睡眠模式(参见固态硬盘/NVMe

nvme_core.default_ps_max_latency_us=6000

性能

如果系统在创建任何类型的大文件或数据交换时变得无响应,则您可能需要通过添加内核参数 libata.force=noncq 来禁用本机命令队列。

外围设备

键盘

键盘背光具有一项功能,使其在给定的超时后自动关闭。可以通过写入 /sys/class/leds/dell\:\:kbd_backlight/stop_timeout 来调整此超时。例如,

# echo "5m" > /sys/class/leds/dell\:\:kbd_backlight/stop_timeout

这将超时设置为 5 分钟。请注意,当机器连接到交流电源和从电池运行时,会维护不同的超时。

触摸板

触摸板是基本的 Synaptics PS/2 设备。

光标跳动

触摸板有时可能会产生“光标跳动”。有时,libinput 会检测到并解决此问题,从而产生类似的日志条目

libinput error: event12 - DELL07E6:00 06CB:76AF Touchpad: kernel bug: Touch jump detected and discarded.

有一个关于此问题的libinput 错误,结论是这可能是硬件问题或内核驱动程序中的错误。

灵敏度

默认情况下,libinput 驱动程序可能不具有所需的灵敏度。可以通过xinput 更改加速度,如下所示

$ xinput --set-prop $(xinput | grep 'DELL.*Touchpad' | awk '{print $6}' | sed 's/id=//g') 'libinput Accel Speed' 0.5

网络摄像头

如果网络摄像头在进入深度睡眠后无法工作,您需要更新您的 bios 至版本1.5.1 或更高版本。一些用户报告了网络摄像头卡在 640x480 的问题。

红外摄像头

红外摄像头可以用作howdy的身份验证方法。

警告: 正如 howdy 的文档中所述,“请勿将 HOWDY 用作您系统的唯一身份验证方法”。

指纹识别器

不支持指纹识别器。有一个libfprint 功能请求

音频

内置音频的报告褒贬不一。据传闻,内置音频可以正常工作,没有问题(上次在 6.8.1-arch1-1 上测试),但其他用户报告了以下问题。

内置音频大约在 2020 年之前工作正常,但自内核 5.4 以来不再工作,原因是内核错误、固件/UEFI 问题或两者兼而有之。

已观察到内置声卡以低概率随机工作,大约在数十次启动中工作一次。指示性消息(供搜索引擎查找)

journalctl -k -b
snd_hda_intel 0000:00:1f.3: spurious response 0x0:0x0, last cmd=0xfff0005
hdaudio hdaudioC0D0: no AFG or MFG node found
hdaudio hdaudioC0D2: no AFG or MFG node found
hdaudio hdaudioC2D0: no AFG or MFG node found
hdaudio hdaudioC2D2: no AFG or MFG node found
snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to polling mode: last cmd=0x200f0000
snd_hda_intel 0000:00:1f.3: No response from codec, disabling MSI: last cmd=0x200f0000
snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to single_cmd mode: last cmd=0x200f0000
snd_hda_intel 0000:00:1f.3: no codecs initialized

截至 2022 年 9 月,似乎没有已知的解决此问题的方法(蓝牙耳机或坞站中的 USB 声卡除外)。

连接

蓝牙

蓝牙适配器有时会在从挂起状态唤醒后变得不可用,甚至在热重启后仍保持停用和不可见状态。2018 年 10 月底,戴尔宣布了一个内核补丁。但是,对于至少某些用户来说,该问题似乎仍然未解决。

一个快速的解决方法是在挂起之前 rmmod btusb,并在恢复后 modprobe btusb。为此,您可以将任何名称的可执行脚本放在 /lib/systemd/system-sleep/ 中。

#!/bin/sh
if [ "$1" 1 "pre" ]; then
  systemctl stop bluetooth && rmmod btusb
elif [ "$1" 1 "post" ]; then
  modprobe btusb && systemctl start bluetooth
fi

确保它是可执行的。感谢 Cyrus Lien 提供的此解决方法。

Wi-Fi

Wi-Fi 适配器包含 Qualcomm Atheros QCA6174 模块。它应该与最近linux内核中的 ath10k_pci 驱动程序一起开箱即用。

对于任何 Wi-Fi 问题,戴尔提供了指南来安装最新的 Killer 无线驱动程序。

USB Type-C 端口

9370 只有三个 Type-C 端口(没有其他端口,只有一个音频插孔)。其中两个(在左侧)支持 Thunderbolt 3。没有电源插孔。包装盒中包含一个 45 W USB Type-C 充电器。三个 Type-C 端口中的任何一个都可用于充电。由于笔记本电脑没有 USB-A 端口,因此包含一个戴尔品牌的 Type-C 转 A 适配器。

此外,所有三个 Type-C 端口都支持 DisplayPort 备用模式。它由固件处理,因此即使使用不支持它的旧内核也可以工作。对于操作系统来说,这看起来好像笔记本电脑有两个 DisplayPort 连接器(除了内部屏幕使用的嵌入式 DP)。到目前为止,已测试了以下适配器。所有这些都会在操作系统中显示,就像您将某些东西插入其中一个 DP 连接器一样。

电源

省电

要节省更多电池电量,请使用 TLP 软件包和/或 Powertop

您可以使用 s-tui 工具监控已用功率以及机器的温度。

要最大限度地降低 GPU 的功耗,请确保 i915 正确加载固件,如Intel graphics#Enable GuC / HuC firmware loading中所述。

默认情况下,为了节省电量,英特尔睿频模式在电池供电时似乎是被禁用的。如果不需要这样,可以配置 TLP 以在电池供电时重新启用睿频,但这并不总是成功。一个解决方案是使用 acpid 来检测 AC 充电器断开连接,并在短暂延迟后通过添加以下内容来重新触发 TLP

/etc/acpi/handler.sh
...
     ac_adapter)
       case "$2" in
           ACPI0003*|AC|ACAD|ADP0)
               case "$4" in
                   00000000)
                       logger 'AC unplugged'
                       sleep 2
                       tlp true
                       ;;
                   00000001)
                       logger 'AC plugged'
                       sleep 2
                       tlp false
                       ;;
               esac
               ;;
           *)
               logger "ACPI action undefined: $2"
               ;;
       esac
...

睡眠

请参阅 电源管理/挂起和休眠#更改挂起方法

根据制造商的说法(参见 这个上游内核错误),该机器有意使用 S2 而不是 S3,他们正在努力解决 S2 上的功耗问题。

注意: 在较旧的 BIOS 和/或内核版本中,电源按钮不能用于从睡眠状态唤醒笔记本电脑。在这种情况下,睡眠按钮(Fn+End,或者如果您启用了“Fn 锁定”,则仅需 End)仍然可以唤醒机器。这已通过 BIOS 更新修复。

散热节流

默认情况下,散热节流在大约 80°C 时激活,导致最大持续 CPU 频率约为 2.4Ghz,远低于戴尔的标准 Windows 安装。

Package temperature above threshold, cpu clock throttled (total events = 971)

这可以使用 throttledintel-undervolt 来解决,这两者都可用于设置更高的跳变温度。两者也可用于降压以进一步减少节流,但是固件版本高于 1.12.1 的系统似乎禁用了此功能

散热模式 / 风扇配置文件

就像在 Windows 中使用 Dell Power Manager 一样,您可以设置机器的风扇和 CPU 的散热配置和行为。这可以通过以下命令完成(确保 libsmbios安装),或者通过 KDE Plasma 小部件 plasma5-applets-plasma-pstateAUR

要查找设置了什么散热模式,请输入

# smbios-thermal-ctl -g

要查找所有可用的散热模式,请输入

# smbios-thermal-ctl -i

最后,要设置您之前通过命令确定的所需散热模式,请输入

# smbios-thermal-ctl --set-thermal-mode=THERMAL_MODE
  • “安静”和“凉爽底面”配置文件将 CPU 功率限制为 11W(18W 睿频),从而降低整体系统性能。
  • “平衡”和“性能”配置文件取消了此限制。
  • 散热配置文件更改可能无法可靠地改变 CPU 功率限制。通过 Thunderbolt 扩展坞连接时,情况似乎更糟。
  • 在某些情况下,启动后(尤其是在“安静”配置文件下),功率可能被限制为 10W。
  • 断开并重新连接电源、更改散热配置文件或只是等待可能会解决这些问题。

为了更精细地控制风扇,可以使用 i8kutils 来指定应激活任一风扇的温度。这可能与 BIOS 风扇控制冲突,可以使用 dell-bios-fan-control-gitAUR 禁用 BIOS 风扇控制。

功能键

许多 Fn 组合由于某种原因产生 XF86Launch3

按键 可见?1 标记?2 效果
Fn+Esc 启用 Fn 锁定
Fn+F1 XF86AudioMute
Fn+F2 XF86AudioLowerVolume
Fn+F3 XF86AudioRaiseVolume
Fn+F4 XF86AudioPrev
Fn+F5 XF86AudioPlay
Fn+F6 XF86AudioNext
Fn+F7 Meta_L + Tab
Fn+F8 Meta_L + P
Fn+F9 XF86Search
Fn+F10 切换键盘背光
Fn+F11 Print
Fn+F12 Insert
Fn+Home XF86RFKill3
Fn+Super_L Super_R
Fn+Ctrl_R Menu
Fn+Up XF86MonBrightnessUp
Fn+Down XF86MonBrightnessDown
Fn+Q XF86Launch3
Fn+W XF86Launch3
Fn+E XF86Launch3
Fn+R Print
Fn+A XF86Launch3
Fn+S Scroll_Lock
Fn+D XF86Launch3
Fn+F XF86Launch3
Fn+G XF86Launch3
Fn+B Pause
  1. 该按键通过 wev 和类似工具可见
  2. 物理按键上有一个符号,描述了其功能
  3. systemd-logind 默认处理此项