Dell XPS 13 (9350)
| 硬件 | PCI/USB ID | 是否工作? |
|---|---|---|
| GPU | 是 | |
| 无线 | 是 | |
| 蓝牙 | 是 | |
| 音频 | 是 | |
| 触控板 | 是 | |
| 摄像头 | 是 | |
| 读卡器 | 是 | |
| TPM 1.2/2.0 | 是 |
Dell XPS 13 2016 (9350) 是 XPS 13 系列的第三代型号。该笔记本电脑提供标准版(预装 Windows)和开发者版(仅在预装 Ubuntu 和将 Broadcom WiFi 卡替换为 Intel WiFi 卡方面有所不同)。与旧版本 (Dell XPS 13 (9333) 和 Dell XPS 13 (9343)) 类似,可以购买不同硬件配置的型号。
在 XPS 13 上安装 Arch 的过程与安装在任何其他 PC 上没有区别。有关安装帮助,请参阅 安装指南 和 UEFI。本文档涵盖了 Arch 上硬件支持的当前状态以及安装后的建议。
内容自适应亮度控制
XPS 13 的显示面板(FHD 和 QHD+)都内置了面板固件中的自适应亮度功能,这种“内容自适应亮度控制”(通常称为 CABC 或 DBC)会根据屏幕显示的内容自动调整屏幕亮度,对于可能会在深色和浅色屏幕内容之间切换的 Linux 用户来说,这通常是不可取的。戴尔已经为此发布了一个修复程序,但它只能在 Windows 中运行,并且仅适用于 QHD+ 型号笔记本电脑,因此在安装 Linux 之前应采取此预防措施。XPS 13 (9350) 的 FHD 型号无法修复。这不是面板本身的问题,而是 XPS 13 面板的配置方式有问题,因为戴尔 Latitude 13 7000 系列(e7370)FHD 型号使用了相同的面板,但 CABC 功能是禁用状态。修复程序可直接从 Dell 获取。
安装
安装 Arch Linux 最方便的方法是禁用“安全启动”(Secure Boot > Disable)。但是,可以自行签名内核并启用安全启动。有关更多信息,请参阅 Secure Boot 文章。
如果您的 efivars 未正确设置,最可能的原因是您未在 UEFI 模式下启动。如果问题仍然存在,请务必查阅 UEFI#UEFI 变量 部分。
固件
戴尔通过 Linux Vendor Firmware Service (LVFS) 提供固件更新。有关更多信息,请参阅 Flashing BIOS from Linux#fwupd。软件包 fwupd 随时可用。
或者,您可以手动更新,例如更新到 2020-10-06发布的 BIOS 更新 1.13.0,将更新二进制文件存储在 EFI 系统分区或 U 盘(FAT32)上,然后重启并从 F12 启动菜单中选择“BIOS Update”。这也有助于解决您的机器在恢复挂起后无法正常工作的问题。
Thunderbolt 3 / USB 3.1
USB-C 端口支持 Thunderbolt 3、Displayport-over-USB-C 和 USB 供电,以及 USB 3.1。
如果设备无法正常工作,请确保您已更新到最新的 BIOS(上方)和 Thunderbolt 固件(下方)。
戴尔正在开发一个 fwupd 扩展(github 仓库),允许从 Linux 更新 Thunderbolt 软件。
或者,2018-04-05 发布了 Thunderbolt 3 固件更新 4.26.11.001, A08。与 BIOS 更新和 Thunderbolt-nvm Linux 更新不同,这是一个图形应用程序,必须在现代 Windows 环境(MS-DOS 不行)中运行,或者您可以尝试以下(风险自负的)过程。
在没有 fwupd 或 Windows 的情况下进行 Thunderbolt 固件更新
Thunderbolt 更新比 UEFI 更新要复杂一些。以下内容已在内核 4.16.13 上进行测试。您需要下载 Thunderbolt 更新可执行文件,然后从中提取文件。
$ 7z x Intel_TBT3_FW_UPDATE_NVM26_FJJK7_A08_4.26.11.001.exe
如果您没有插入任何 Thunderbolt 设备,则需要强制启用控制器。
# echo 1 > /sys/devices/platform/PNP0C14:00/wmi_bus/wmi_bus-PNP0C14:00/*/force_power
检查控制器当前固件版本。
# cat /sys/bus/thunderbolt/devices/0-0/nvm_version
然后将文件复制到控制器的内存中并进行身份验证。
# dd if=Intel/0x0704_secure.bin of=/sys/bus/thunderbolt/devices/0-0/nvm_non_active0/nvmem # echo 1 > /sys/bus/thunderbolt/devices/0-0/nvm_authenticate
系统可能会挂起几秒钟,然后片刻之后,如果您再次读取 nvm_version,它应该会显示新的版本号。
外接显示器
应用较新的 BIOS 和 Thunderbolt 固件版本后,外接显示器工作良好,例如与外接扩展坞 Dell WD15 完全兼容。
在使用 USB-C 转 HDMI 或 USB-C 转 Mini Display 端口适配器的外接显示器支持在极少数情况下可能无法正常工作。通常,插入屏幕后会显示以下任一情况:
- 显示图像几毫秒后切换到黑屏;
- 完全没有图像;
- 几分钟后出现闪烁,导致基本无法使用。
在某些情况下,间歇性的外接显示器连接可能由 WiFi 干扰 9350 的 USB-C 端口引起——尤其是在笔记本合盖时。通过 iw 或 iwconfig 降低 WiFi 功率可能可以实现稳定的外接显示器连接。
有关工作适配器和 Dell 论坛帖子的详尽讨论,请参阅 对应的 Arch 论坛条目。
SATA 控制器
当 BIOS 中的 SATA 控制器设置为 RAID On 时,硬盘(至少是 SSD)无法被识别。在尝试安装 Arch 之前,请将其设置为 Off 或 AHCI(推荐使用 AHCI)。
双系统启动 Linux 和 Windows
为了在禁用 RAID 的情况下正确启动 Windows 而不出现 INACCESSIBLE_BOOT_DEVICE 错误,您必须将 Windows 配置为使用 AHCI 兼容的 SATA 存储控制器,假设您在安装 Linux 时使用了 AHCI。尽管已安装该驱动程序,但它实际上是被禁用的。以下任一方法都可以激活驱动程序而无需重新安装(效果可能因人而异):
有关更多信息,请参阅 Microsoft 支持页面。请注意,一些制造商会宣传重新安装 Windows 是唯一解决方案,但事实并非如此。
NVMe SSD
对于 "NVM Express" SSD 的 nvme 模块位置在 linux 内核版本 4.3 和 4.4 之间发生了变化。如果您在启动时遇到 cannot find root device,可能是因为 nvme 模块未包含在 initramfs 中。在这种情况下,以下方法可能会解决您的问题:
/etc/mkinitcpio.conf
... MODULES=(... "nvme") ...
无线
安装 linux-firmware 以获取所需的固件 brcmfmac4350-pcie.bin。
Broadcom 网卡不会报告其 监管域,因此默认情况下会设置全局的信道和频率设置。
蓝牙
Intel WiFi
如果您的 WiFi 网卡支持蓝牙,那么 BT 接口应该可以开箱即用,因为所需的固件已包含在 linux-firmware 中。
Broadcom Wifi
蓝牙应该可以立即工作。如果尚未加载,请加载 btusb 和 bluetooth 模块,然后 启动/启用 bluetooth.service。有关更多信息和配置选项,请参阅 Bluetooth。
brcmfmac 内核模块会导致 Dell USB-C 扩展坞出现问题。特别是,当 WiFi 连接出现问题时,USB 端口和以太网连接将停止工作。无线耳机:奇怪的蓝牙行为
如果您的蓝牙行为不稳定,例如连接丢失、声音卡顿、可以连接但无法播放声音等,您可能需要专有的固件。
Broadcom 蓝牙固件在内核中不可用(与 2015 年型号相同 来源),因此您需要从 Windows 的 .exe 文件中提取。您需要使用 7zip 提取 .exe 文件,然后使用 bluez-utils 中的 hex2hcd 将其转换为 .hcd 文件。
$ 7z x 9350_Network_Driver_XMJK7_WN32_12.0.1.720_A00.EXE $ cp Win32/BCM4350C5_003.006.007.0095.1703.hex ./ $ hex2hcd BCM4350C5_003.006.007.0095.1703.hex # mv BCM4350C5_003.006.007.0095.1703.hcd /lib/firmware/brcm/BCM-0a5c-6412.hcd
或者,您也可以直接安装 bcm4350-firmwareAUR。
重启后,固件应该就可以用于您的蓝牙接口了。
视频
使用当前 linux 内核的 i915 驱动程序应该可以正常显示视频。有关详细的安装和配置指南以及 故障排除,请参阅 Intel graphics。
省电
i915 模块的以下选项会污点内核,请自行承担风险使用!RC6
i915.enable_rc6=1 似乎是稳定的,将值设置为大于 1 的数字将被忽略。此选项启用的更深层的 GPU 电源状态(RC6p 和 RC6pp)在 gen7+ 硬件上不存在。[1][2]。
面板自刷新
i915.enable_psr=1 可以通过让软件包更长时间地处于更高效的 C 状态来节省大量电量。但是,用户经常会遇到此选项导致几秒钟的冻结。将值设置为 2 或 3 可能会获得类似的省电效果,但不会出现冻结。i915.disable_power_well=0 结合 i915.enable_psr=1 i915.enable_rc6=1 似乎也是 PSR 的稳定配置。
帧缓冲压缩
i915.enable_fbc=1 是稳定的,但似乎没有带来显著的省电效果。
GuC
使用 i915.enable_guc_loading=1 i915.enable_guc_submission=1 加载 GuC 也似乎是稳定的。
电源 management
风扇
风扇即使在低温下也可能保持运转,消耗电池并产生令人不愉快的噪音,只有在重启时才会停止。这是因为风扇默认由 BIOS 控制。
为防止此行为,请按照 Fan speed control#Dell laptops 中的说明配置 i8k,并使用 dell-bios-fan-control-gitAUR 工具禁用 BIOS 对风扇的控制,因为这与 i8k 冲突。您可能还希望 启用和启动 dell-bios-fan-control.service 以确保在启动时禁用 BIOS 对风扇的控制。
如果安装了 i8kutils,它将显示风扇速度和温度传感器,命令如下:
$ watch sensors
触控板
开箱即用仅支持按键。安装 xf86-input-libinput 足以提供正确的鼠标支持,它也支持触摸屏——有关配置,请参阅 libinput。诸如点击即点按等功能通常可以在 桌面环境中进行调整。
或者,您也可以安装 xf86-input-synaptics 作为驱动程序,但“它处于维护模式,并且 xf86-input-libinput 必须优先于它”(来自软件包本身的安装说明)。此外,它可能难以在您的 桌面环境中进行轻松调整。可能需要重启 X 服务器。
从 dmesg 中移除 psmouse 错误
如果以 root 权限运行 dmesg | grep -i psmouse 返回错误,但您的触摸板仍然工作,那么禁用 psmouse 可能是一个好主意。首先 创建
/etc/modprobe.d/modprobe.conf
blacklist psmouse
然后将其添加到
/etc/mkinitcpio.conf
...
FILES=("/etc/modprobe.d/modprobe.conf")
...
最后,重新生成 initramfs。
手势
有关当前开发状态和可用方法的信息,请参阅 libinput#Gestures。
键盘
默认情况下,键盘背光会在 10 秒不活动后关闭。一些用户可能会觉得这个时间太短且令人烦恼。自 BIOS 更新 1.40 以来,可以通过写入 /sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/stop_timeout 来调整此超时时间,就像在其他 Dell XPS 笔记本上一样。
声音
使用耳机时有线圈噪音
当使用 TLP 且没有播放音频但耳机已插入时,您可能会在计算机使用时体验到非常恼人的啸叫声。这发生在音频适配器省电功能启用之后。默认情况下,TLP 将电池上的超时设置为 1 秒,这会导致声音暂停后几乎立即出现啸叫。为了解决这个问题,您可以编辑 /etc/default/tlp 以设置更高的超时时间或禁用它。
SOUND_POWER_SAVE_ON_AC=300 SOUND_POWER_SAVE_ON_BAT=300
使用耳机时底噪很高
有些人报告在使用耳机时有白色嘶嘶声/噼啪声。要消除它们,您可以从 alsa-utils 运行 alsamixer。使用 F6 选择您的声卡,并将 headset-gain 设置为 22(从左边数第三个推子),或者使用 amixer(1) 命令。
$ amixer -c 0 cset 'numid=10' 1 numid=10,iface=MIXER,name='Headphone Mic Boost Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0 : values=1,1 | dBscale-min=0.00dB,step=10.00dB,mute=0
不幸的是,PulseAudio 会在您每次登录/退出环境时(或每次 PulseAudio 服务重启时)覆盖上述设置,即使 alsa-restore.service 在启动时已启用。
为了解决此问题,请编辑 /usr/share/pulseaudio/alsa-mixer/paths/analog-input-headphone-mic.conf 并注释掉 [Element Headphone Mic Boost] 部分。
--- #[Element Headphone Mic Boost] #required-any = any #switch = select #volume = merge #override-map.1 = all #override-map.2 = all-left,all-right ---
同样地,在 /usr/share/pulseaudio/alsa-mixer/paths/analog-input-internal-mic.conf 中,注释掉相同的部分。
--- #[Element Headphone Mic Boost] #switch = off #volume = off ---
这将完全阻止 PulseAudio 修改增益设置。
麦克风
对于 ALSA,请增加麦克风的“Digital”通道以使其正常工作。
组合插孔没有音频输入
插入耳机后设备会被识别,但说话时没有音频输入。要解决此问题,您需要将 model=auto 传递给 snd-hda-intel 内核模块。您可以使用一个覆盖文件来完成此操作:
/etc/modprobe.d/fix-audio-input.conf
options snd-hda-intel model=auto
TPM
按原样,可信平台模块(TPM)可以按照 Trusted Platform Module 中的步骤轻松配置,无需其他特殊配置。TPM 的便捷软件包包括 tpm-toolsAUR 和 trousersAUR。
TPM 2.0
最初,Dell XPS 13 (9350) 搭载 TPM 1.2——TPM 芯片配置为支持 TPM 标准 1.2 版本。然而,戴尔发布了一个 固件更新(内部版本 1.3.2.8,A02)来将 TPM 芯片转换为支持 TPM 标准 2.0 版本的功能集。不幸的是,目前该更新无法通过 Linux 或 BIOS 直接刷新功能应用。唯一的安装方法似乎是通过运行的 Windows OS 进行应用。最简单的方法是在 USB 驱动器上运行一个临时的 Windows 安装,启动到其中并从那里运行更新。
- 值得注意的是,此更新是可逆的(即恢复到 TPM 1.2),方法是使用 固件更新。它还需要完全清除 TPM 内存和配置。
- 关于 BIOS 更新,请确保笔记本电脑已连接到电源,并且电源稳定。
要安装更新,可以按照上述固件更新页面上的说明来清除和重置 TPM 芯片并启动更新。打算稍后在 Linux 中使用该设备的用户的,可以跳过“在 Windows 中禁用 TPM 自动配置”部分的最后步骤 11 和 12。另一个选择是按照 此指南清除 TPM,然后从 Windows 运行 .exe 文件。
更新成功后,Linux 内核应该会自动识别新配置的 TPM 设备并在下次启动时自动启用它。为了利用现在是 TPM 2.0 的芯片,安装几个软件包是值得的—— tpm2-tss-gitAUR 和 tpm2-tools-gitAUR。为了使 TSS 资源管理器在启动时工作,提供了一个便捷的 systemd 服务,其变体在此 处讨论。
恢复挂起后 CPU 降频
如果您在从挂起恢复后遇到电脑速度非常慢的问题,您可能遇到了 CPU 频率被限制在非常低值的 bug。使用 cpupower frequency-info 进行检查。如果是这样,请阅读 此论坛主题以获取调试信息和解决方法。