MSI GS65

出自 ArchWiki

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

原因: 需要功能键表格。(在Talk:MSI GS65中讨论)
硬件 PCI/USB ID 工作状态?
触摸板 部分工作
键盘 1038:1122
GPU (Intel) 8086:3e9b
GPU (Nvidia) 10de:1ba1
网络摄像头 5986:211c
以太网 1969:e0b1
蓝牙 8087:0aaa
雷电接口
音频 8086:a348
Wi-Fi 8086:a370

有关笔记本电脑相关文章和建议的概述,请参阅Laptop

安装

安全启动可以在“安全”选项卡中禁用,启动模式可以选择从UEFI切换到传统模式。可以通过进入“高级”选项卡并按住 l-alt,然后按 r-ctrl、r-shift,最后按 F2 来访问高级 BIOS 选项。

固件

BIOS 版本 E16Q2IMS.110 引入了许多 ACPI 问题(如果 BIOS 从 UEFI 更改为传统模式),包括启动时大量 "No handler or method for GPE [00->6E]" 错误,可以通过内核参数解决

  • acpi=off 允许启动,但包括键盘和触摸板在内的大部分功能将无法工作。
  • pci=nomsiacpi=off acpi=force 允许启动并使键盘和触摸板工作,但 NVidia 显卡将无法工作;USB3 端口也无法工作。
  • pcie_aspm=off 将允许大多数功能工作:键盘、触摸板、USB 3 设备、NVidia 显卡。

视频

NVIDIA GPU 多显示器支持

本文或章节是与 Bumblebee 合并的候选对象。

注意: 其中一些内容可以去重。(在Talk:MSI GS65中讨论)

HDMI 和 DP 端口连接到 Nvidia GPU,因此需要一些额外的操作才能使多显示器与连接到这些端口的显示器一起工作。雷电端口连接到 Intel GPU,因此允许外部显示器与关闭的 Nvidia GPU 一起使用。参见 Bumblebee#Output wired to the NVIDIA chip,尽管那里的配置可能无法直接工作。

在 MSI GS65 上使 HDMI 和 DP 端口上的外部显示器工作的说明

1. 安装 bumblebeexf86-video-intel

2. 配置 Xorg 以使用 intel (而不是 modesetting) 视频驱动程序用于 Intel GPU。

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
    Identifier  "intel"
    Driver      "intel"
EndSection

3. 使 intel-virtual-output 启动的 Xorg 使用 Nvidia GPU

/etc/bumblebee/xorg.conf.nvidia
Section "Device"
    Identifier  "nvidia"
    Driver      "nvidia"
EndSection

4. 重启 X 服务器

5. 启动 intel-virtual-output -b

6. 使用 xrandr 或其他工具打开显示器并调整其位置。

$ xrandr --output VIRTUAL1 --right-of eDP1 --preferred

外部显示器应在 xrandr -q 中的 VIRTUAL1 输出下。如果不是,请检查 intel-virtual-output -b 是否成功在 DISPLAY=:8 上运行了 X 服务器,并且 xrandr -d :8 -q 显示了已连接的显示器。

局限性

看起来唯一的局限性是无法使用 VDPAU 硬件视频解码,尽管老实说,它可以直接在 DISPLAY=:8 上用作一种丑陋的 hack(确保你的 WM 首先忽略外部屏幕)。但 NVENC/NVDEC 不依赖于 X,可以与 ffmpeg 和 gstreamer 等工具一起使用,Intel Quick Sync VAAPI 也有效,因此缺少 VDPAU 是一个小问题。

混合显卡

与大多数具有混合显卡的现代笔记本电脑一样,GS65 使用 Optimus MUXless 方案,并支持专用 NVIDIA GPU 完全断电(Runtime D3cold)所需的 ACPI 方法,从而在不使用时节省大量电量。

如果使用最新的专有 NVIDIA 驱动程序 nvidianvidia-dkms,这应该几乎可以开箱即用,而无需像 Bumblebee 这样的工具,只需设置 nvidia 模块的 NVreg_DynamicPowerManagement 选项即可

/etc/modprobe.d/nvidia.conf
options nvidia NVreg_DynamicPowerManagement=2

如果笔记本电脑的电源 LED 从橙色变为白色,则表示 NVIDIA GPU 当前已断电。使用此方法和 nvtop 等工具来排查任何配置问题或程序在没有有效理由的情况下探测 GPU 的异常行为。

如果您在使用 GPU 的电源管理时遇到问题,请访问 PRIME#NVIDIA此页面 以获取更多详细信息。如果仍然无法解决问题,请检查高级 BIOS 设置中是否启用了显式 ACPI D3cold 功能。

请注意,某些与 ACPI 相关的内核参数(如 acpi_osi)或自定义 DSDT 表可能会使此功能无法运行。请谨慎操作。

电源管理

睡眠时的一个问题是,唤醒时网络将被禁用并设置为飞行模式。此问题不影响休眠。

键盘背光

键盘上的 Steel Series 灯光无法使用 msi-keyboard-gitAUR 进行配置,因为此工具仅适用于基于区域的 RGB 照明。对于此笔记本电脑型号,工具 msi-perkeyrgbAUR 提供了部分控制。

如果键盘灯仍然熄灭,请确保在安装 msi-perkeyrgb 后重新启动以刷新 udev,并将亮度用 Fn+PgUp 调到最大,然后再次尝试该命令。

为了用按键切换颜色,创建一个脚本文件

msi-rgb-switch.sh
profs=(aqua chakra default disco drain freeway plain rainbow-split roulette disable)
fn="./.msi-rgb"
touch $fn
prof=$(cat $fn)
if [ -z $prof ]; then
    echo "0" > $fn
    vl=0
else
    nv=$(($((prof+1)) > 9 ? 0 : $((prof+1))))
    echo $nv > $fn
    vl=$nv
fi
if [ ${profs[$vl]} = "disable" ]; then
    msi-perkeyrgb -m GS65 -d
else
    msi-perkeyrgb -m GS65 -p ${profs[$vl]}
fi

并将脚本映射到一个快捷键。这将自动轮换到下一个 rgb 颜色

功能键

按键 可见?1 标记?2 效果
Fn+F2 输入 Super+P
Fn+F3 F21/XF86XK_TouchpadToggle
Fn+F6 Camera。这也使网络摄像头上线并将其暴露给内核。
Fn+F7 4 未映射。
Fn+F8 WLAN/飞行模式。硬阻塞 Wi-Fi 并从 USB 总线上移除蓝牙。由 EC 启用。参见 #飞行模式开关
Fn+F9 Bluetooth。由 EC 启用。参见 #飞行模式开关
Fn+F10 类似于 Fn+F8,但不发送 WLAN。参见 #飞行模式开关
Fn+F12 3 睡眠
Fn+Del Insert
Fn+Home 无功能。
Fn+PgUp 4 增加键盘背光亮度。
Fn+PgDown 4 降低键盘背光亮度。
Fn+End 静音
Fn+Up 亮度调高
Fn+Down 亮度调低
Fn+Left 音量减小
Fn+Right 音量增大
Fn+Q/A 4 未映射。
Fn+W/Z 4 未映射。
  1. 该按键对 xev 和类似工具可见。
  2. 物理按键上有一个符号,描述了其功能。
  3. systemd-logind 默认处理此操作。
  4. 触发未知按键事件。可以使用 setkeycodes(8)输入重映射工具 将其映射到有效的按键码。按下这些按键时,监控 dmesg

飞行模式开关

飞行模式组合键 Fn+F8Fn+F9Fn+F10 默认禁用。可以通过几种方式重新启用它们。这尤其重要,因为从睡眠状态恢复通常会硬阻塞 Wi-Fi 卡。

使用内核参数

最简单和最安全的方法是添加以下内核参数

acpi_osi=! acpi_osi="Windows 2009"

但是,这可能会更改或禁用其他电源管理功能,因为它的工作原理是欺骗 ACPI DSDT,使其认为它正在旧版本的 Windows 上运行。

使用 EC (嵌入式控制器)

另一种更精确、略有风险但更完整的解决方案,不涉及 ACPI,是使用 iswAUR 写入笔记本电脑的 EC,以暂时恢复开关的功能。在偏移量 0x34 处写入字节 0x30(48)。除非您激活了上面的内核参数,否则写入前的值应为 0x50。使用 isw -c 检查。

# isw -s 0x34 48

几秒钟后,按键组合应起作用。

此外,在恢复飞行模式功能后,在偏移量 0x2e 处写入 1 (禁用) 或 9 (启用) 将更改无线电射频开关的状态

# isw -s 0x2e 9

这些命令可以用作 systemd 单元和其他脚本的一部分,以自动化控制平台的飞行模式并缓解睡眠恢复问题。

执行这些操作的风险自负。 偏移量应该对您来说是相同的,但在写入之前,始终使用 isw -c 双重检查您自己的 EC 内存转储,将值与上述值进行比较。 除非您知道自己在做什么,否则不要写入任何其他位置。如果您遇到意外问题,您可能需要通过关闭笔记本电脑并移除电池或在底部按下针孔开关 10 秒钟(在 AC 电源线断开的情况下)来重置 EC。在启动前连接电源线。

更详细的解释可以在 Talk:MSI_GS65#Unblocking wifi after sleep 页面上找到。

触摸板

多指手势不能开箱即用,但可以使用 libinput-gesturesAUR 检测到。

散热

“Fancontrol (lm-sensors)” 或 “NoteBook Fan Control (NBFC)” 不支持风扇控制,但通过使用工具 iswAUR,您可以像在 Windows 上使用 Dragon Center 一样控制风扇。

麦克风

GS65 配备了双麦克风,这对于降噪和回声消除以及通过波束成形技术抑制背景声音非常有用。为了充分利用它,请将以下行添加到 /etc/pulse/default.pa

load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="beamforming=1 mic_geometry=-0.025,0,0,0.025,0,0"
set-default-source alsa_input.pci-0000_00_1f.3.analog-stereo.echo-cancel

此外,将 analog_gain_control=0 添加到 aec_args 以禁用自动增益控制也可能很有用。

已知问题

锁死问题 (lspci 和 poweroff 挂起)

症状:

  • lspci 挂起
  • poweroff 挂起

适用于:Arch 启动 ISO 和安装了 nouveau 或未安装 nvidia 驱动程序的系统。参见 NVIDIA Optimus#锁死问题 (lspci 挂起)

解决方案:

  • Arch ISO:modprobe.blacklist=nouveau 添加到内核参数 (https://superuser.com/a/1301487)。
  • 使用 nvidia 的系统:不应遇到此问题。bbswitch 可能无法工作并导致此问题。
  • 使用 nouveau 的系统:将 nouveau.runpm=0 添加到内核参数。这将禁用运行时电源管理,而运行时电源管理是导致此问题的根本原因。

Cheese 在打开摄像头时挂起

可以通过安装 vlc 并运行来修复此问题

$ vlc v4l:// :v4l-vdev="/dev/video0"

执行此操作后,cheese 应该可以正常工作。

从挂起唤醒后 Wi-Fi 被硬阻塞 (飞行模式)

从挂起唤醒后,Wi-Fi 将处于飞行模式。[1]

# rfkill list
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: yes

Wi-Fi 可以通过以下方式重新激活:要么使用飞行模式组合键两次,要么通过休眠并重启。

一种缓解此问题的方法是将 systemd 设置为休眠而不是挂起。

/etc/systemd/logind.conf
HandleSuspendKey=hibernate
HandleLidSwitch=hibernate

系统冻结

图形界面偶尔会冻结,键盘会无响应,但音频会继续运行。这种情况往往发生在 CPU 温度很高且 CPU 正在降频时。

目前尚无已知的解决方案。

尚不清楚是什么原因导致此问题

# journalctl -r --boot -1 
Jul 22 20:27:40 almsi kernel: nvidia-modeset: ERROR: GPU:0: Failed to allocate memory for the display color lookup table.

问题由 Intel E2500 Wi-Fi 网卡引起。

# journalctl -f 
iwlwifi 0000:00:14.3: BIOS contains WGDS but no WRDS

Wi-Fi 网卡请求硬件重置。(系统将冻结 +/- 10 秒)

通过更换 Wi-Fi 网卡修复。

挂起后显示输出不工作

如果笔记本电脑在连接另一台显示器的情况下挂起,则唤醒后所有显示输出都无法识别何时有外部显示器连接到任何端口。这种情况在重启后仍然存在。令人担忧的是,即使重启进入 Windows 系统后也仍然存在。

一种解决方法是启动进入 Windows,挂起笔记本电脑,然后再唤醒它。连接的显示器然后在重启进入 Windows 或 Arch 时将被识别。另一种解决方法是挂起和唤醒,直到连接的显示器被识别。有时这需要多次尝试,但它可以避免必须启动进入 Windows。

另一种解决方法是禁用音频设备。

blacklist-intel_snd_suspend.conf
#for kernel 4.x                                                                                                                        
blacklist snd_hda_intel                                                                                                                
                                                                                                                                       
#for kernel 5.x - additional modules, if not disable it - suspend not working                                                          
blacklist snd_sof_intel_hda                                                                                                            
blacklist snd_sof_intel_hda_common                                                                                                     
blacklist sof_pci_dev                                                                                                                  
blacklist snd_sof_intel_byt                                                                                                            
blacklist snd_sof_intel_ipc