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 的开发者版。
- 开发者版/Linux 版本没有指纹识别器,取而代之的是带有电源指示灯的普通电源按钮。戴尔的 信息在此处。
安装
可以通过在启动时按 F2 键来访问 UEFI 设置。
- 将 SATA 模式从默认的 "RAID" 更改为 "AHCI"。这将允许 Linux 检测到 NVMe SSD。如果与现有的 Windows 安装双启动,更改后 Windows 将无法启动,但 无需重装即可修复此问题。
- 禁用 安全启动 以允许 Linux 启动。
- 要从随附的 USB-C 转 USB-A 适配器连接的 USB 设备启动,您需要启用 Thunderbolt 启动。启用后,启动时按
F12将进入引导菜单。也可以直接使用右侧的 USB-C 端口,无需任何 UEFI 调整。
只要在 UEFI 设置中同时启用 SD 卡和 SD 卡启动,就可以从 micro SD 卡启动和安装。
dell-command-configureAUR 可用于在无需重启进入 UEFI 菜单的情况下修改设置。例如,配置电池在充满 75% 时停止充电,并在电量降至 60% 时才重新开始充电
# cctk --PrimaryBattChargeCfg=Custom:60-75
固件
戴尔通过 Linux 供应商固件服务 (LVFS) 提供固件更新。有关更多信息,请参阅 从 Linux 刷新 BIOS#fwupd。fwupd 软件包已准备就绪。还提供了 Thunderbolt 控制器的更新。 存在一个问题,即在重新刷新后,Thunderbolt 版本号被检测为 00.00 (目前正在调查中)。
或者,对于 BIOS 更新,您可以简单地将戴尔支持页面上的 .exe 文件复制到任何 FAT32 驱动器(甚至启动分区似乎也可以)。然后通过在启动时按 F12 键进入“BIOS 闪存更新”(BIOS Flash Update)实用程序。
戴尔还发布了 SSD 固件更新,但这些只能在 Windows 下更新,而不能在 Linux 下更新。
显示
enable_psr=1 内核参数在触摸屏型号上似乎无法正常工作。
如果无法调整背光亮度,请将 i915.enable_dpcd_backlight=0 添加为内核参数。
内容自适应亮度控制
XPS 13 的显示面板(FHD 和 4K UHD)默认启用了内容自适应亮度控制(通常称为 CABC 或 DBC,有时也称为 "EcoPower")。虽然在早期型号上禁用此功能需要刷新显示固件,但在最近的 BIOS 版本中,DBC 可以在 "Video" 部分禁用。要测试 DBS 是否已启用,请访问此 测试页面。
存储
固件
NVMe SSD 为 Toshiba KXG50ZNV256G、KXG50ZNV512G 或 KXG50ZNV1T02。库存固件版本 AADA4102 在 SSD 进入最低功耗状态时存在严重问题。这会导致设备无响应(内核抱怨只读文件系统)。问题可能随时发生,但在内核 4.18 下,电池供电时问题似乎变得更加普遍。固件版本 AADA4107 似乎可以解决此问题。该固件仅适用于 Windows,但 可以自行在 Linux 下更新。
由于升级只能在 Windows 下进行,并且即使升级了驱动程序,由于 SSD 在最深层睡眠模式下无响应,磁盘也可能完全不被内核检测到,因此以下 内核参数 可作为一种变通方法,防止磁盘进入有问题的睡眠模式(参见 固态硬盘/NVMe)。
nvme_core.default_ps_max_latency_us=6000
性能
当创建任何类型的大文件或进行数据交换时,如果系统变得无响应,您可能需要通过添加 内核参数 libata.force=noncq 来禁用原生命令队列 (Native Command Queuing)。
外设
键盘
键盘背光有一个功能,可以在给定超时后自动关闭。可以通过写入 /sys/class/leds/dell\:\:kbd_backlight/stop_timeout 来调整此超时。例如,
# echo "5m" > /sys/class/leds/dell\:\:kbd_backlight/stop_timeout
这将设置超时为 5 分钟。请注意,在连接 AC 电源和电池供电时,会维持不同的超时设置。
触控板
触摸板是基本的 Synaptics PS/2 设备。
光标跳动
触摸板有时会产生 "光标跳动"。有时 libinput 会检测到并进行规避,从而产生类似的 journal 条目
libinput error: event12 - DELL07E6:00 06CB:76AF Touchpad: kernel bug: Touch jump detected and discarded.
这是一个 libinput 错误,结论是这很可能是硬件问题或内核驱动程序中的 bug。
灵敏度
默认情况下,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。
指纹识别器
指纹识别器不支持。有一个 libfprint 功能请求。
音频
内置音频的报告参差不齐。据传闻,内置音频通常可以正常工作(上次测试于 6.8.1-arch1-1),但其他用户报告了以下问题。
内置音频在大约 2020 年之前工作正常,但由于内核 bug、固件/UEFI 问题或两者兼有,自从内核 5.4 开始 不再工作。
内置声卡在随机情况下工作的可能性很低,大约每几十次启动一次。指示性消息(供搜索引擎查找)
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。没有电源插孔。包装盒中包含一个 45W USB Type-C 充电器。三个 Type-C 端口中的任何一个都可以用于充电。由于笔记本电脑没有 USB-A 端口,因此包含一个戴尔品牌的 Type-C 转 A 适配器。
所有三个 Type-C 端口都支持 DisplayPort 交替模式。这由固件处理,因此即使是早期不支持它的内核也能工作。对于操作系统来说,这看起来就像笔记本电脑有两个 DisplayPort 连接器(除了内部屏幕使用的嵌入式 DP)。到目前为止,已测试了以下适配器。所有这些适配器都会在操作系统中显示为连接到 DP 连接器之一。
- Club3D Type-C 转 DisplayPort 1.2 适配器(已测试 1080p 和 4K,均以 60 Hz 工作)
- Dell Type-C 转 VGA 适配器(已测试 1080p @ 60 Hz)
- Dell Type-C 转 HDMI 适配器(已测试 1080p 和 4K,均以 60 Hz 工作)
- Moshi USB-C 转 HDMI 适配器(已测试 1080p 和 4K,均以 60 Hz 工作)
- Thinkvision P24h USB、供电、视频正常工作。
电源
省电
要节省更多电池,请使用 TLP 软件包和/或 Powertop。
您可以使用 s-tui 工具监控您的机器的功耗和温度。
要最大限度地减少 GPU 的功耗,请确保 i915 正确加载了固件,如 Intel 显卡#启用 GuC / HuC 固件加载中所述。
默认情况下,Intel Turbo 模式在电池供电时似乎被禁用以节省电力。如果不需要,TLP 可以配置为在电池供电时重新启用 Turbo,但并不总是成功。解决方法是使用 acpid 来检测交流适配器断开连接,并在短延迟后通过 添加以下内容来重新触发 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
...
睡眠
请参阅 电源管理/挂起和休眠#更改挂起方法。
根据制造商(参见 此上游内核 bug),该机器故意使用 S2 而不是 S3,并且他们正在努力修复 S2 的功耗问题。
Fn+End,或者如果启用了 "Fn 锁定" 则为 End)仍然可以唤醒机器。这已通过 BIOS 更新修复。热节流
默认情况下,热节流在约 80°C 时激活,导致最大持续 CPU 频率约为 2.4Ghz,远低于戴尔标准 Windows 安装中的频率。
Package temperature above threshold, cpu clock throttled (total events = 971)
可以使用 throttled 或 intel-undervolt 来解决此问题,两者都可以用于设置更高的触发温度。两者也可以用于 降压 以进一步减少节流,但系统固件版本高于 1.12.1 似乎会禁用此功能。
散热模式 / 风扇配置文件
就像在 Windows 中使用 Dell Power Manager 一样,您可以设置机器的风扇和 CPU 的散热配置和行为。这可以使用 smbios-thermal-ctl(1) 来完成。
- "Quiet" 和 "Cool Bottom" 配置文件将 CPU 功耗限制为 11W (18W 提升),从而降低了整体系统性能。
- "Balanced" 和 "Performance" 配置文件取消了此限制。
- 散热配置文件更改可能无法可靠地改变 CPU 功耗限制。通过 Thunderbolt 扩展坞连接时,情况似乎更糟。
- 在某些情况下,启动后(特别是使用 "Quiet" 配置文件时),功耗可能会被限制在 10W。
- 断开并重新连接电源、更改散热配置文件或只是等待可能可以解决这些问题。
为了更精细地控制风扇,可以使用 i8kutils 来指定风扇启动的温度。这可能会与 BIOS 风扇控制冲突,而 BIOS 风扇控制可以使用 dell-bios-fan-control-gitAUR 禁用。
功能键
出于某种原因,许多 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+End |
是 | 是 | XF86Sleep
|
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
|
- 通过
wev和类似工具可以看到按键 - 物理按键上有符号,描述了它的功能
- 默认由 systemd-logind 处理