MSI GS65
Device | Status | Modules |
Intel GPU | Working | modesetting |
Nvidia GPU | Working | nvidia (not nouveau) |
Ethernet | Working | alx |
Wireless | Working | iwlwifi |
Audio | Working | snd_hda_intel |
Webcam | Working | uvcvideo |
Bluetooth | Working | btusb |
USB | Working | |
Thunderbolt | Working | thunderbolt |
Power management | Partially Working | |
Keyboard | Partially Working | |
Touchpad | Partially Working | libinput |
For a general overview of laptop-related articles and recommendations, see Laptop.
Configuration
BIOS
2.20.1271
At bootup, the BIOS settings page is entered via the delete key, the quick boot select window can be activated via the F11 key, PXE scanning can be activated via the F12 key
In the BIOS setings, the model name can be seen in the Main tab, Secure Boot can be disabled from the Security tab and boot mode can optionally be switched from UEFI to legacy. Advanced BIOS options can be accessed by going to the 'Advanced' tab and holding down l-alt, then pressing r-ctrl, r-shift, then F2.
There is no known option to disable the discrete intel GPU, there may be one present after unlocking the advanced options.
E16Q2IMS.110
This BIOS version introduces many ACPI problems (if BIOS is changed from UEFI to legacy), including a flood of "No handler or method for GPE [00->6E]" at boot, which can be solved through kernel parameters:
acpi=off
allows to boot but most things won't work, including the keyboard and touchpad.pci=nomsi
oracpi=off acpi=force
allows to boot and have working keyboard and touchpad, but the NVidia card won't work ; neither will the USB3 ports.pcie_aspm=off
will allow most things to work: keyboard, touchpad, USB 3 devices, NVidia card.
Video
Backlight
Backlight works out of the box
# ls /sys/class/backlight/
intel_backlight
Drivers
PRIME functionality works by using only nvidia and will work without the intel video driver, instead using modsetting.
The xf86-video-nouveau driver does not work well in PRIME configuration (see #Known Issues}).
Multihead
The HDMI and DP ports are wired to the Nvidia GPU, so some additional actions required to make the multihead to work with monitors connected to this ports. Thunderbolt port is wired to Intel GPU thus allowing for external monitor to be used with Nvidia GPU off. See Bumblebee#Output wired to the NVIDIA chip, though configuration from there possibly wouldn't work as is.
Instructions to get the external monitor working on the HDMI and DP ports on MSI GS65:
1. Install bumblebee
and xf86-video-intel
.
2. Configure Xorg to use the intel
(not the modesetting
) video driver for the Intel GPU. Put it to the /etc/X11/xorg.conf.d/20-intel.conf
:
Section "Device" Identifier "intel" Driver "intel" EndSection
3. Set the /etc/bumblebee/xorg.conf.nvidia
contents to make Xorg launched by intel-virtual-output to use the Nvidia GPU:
Section "Device" Identifier "nvidia" Driver "nvidia" EndSection
4. Restart X server
5. Launch the intel-virtual-output -b
6. Use xrandr
or other tool to turn on the monitor and adjust its position.
xrandr --output VIRTUAL1 --right-of eDP1 --preferred
External monitor should be under the VIRTUAL1 output in xrandr -q
. If not - check that intel-virtual-output -b
successfully run the X server on DISPLAY=:8 and the xrandr -d :8 -q
shows the connected monitor.
Limitations
It looks like the only one is inability to use VDPAU hardware video decoding, though to be honest it could be used directly on DISPLAY=:8 as an ugly hack (make sure your WM ignores the external screen first). But NVENC/NVDEC doesn't depend on X and could be used with tools like ffmpeg and gstreamer, and the Intel Quick Sync VAAPI also works, so missing VDPAU is a minor issue.
Webcam
The webcam is device 003 on bus 001. See Webcam setup for more details.
# lsusb -vs 001:003
Bus 001 Device 003: ID 5986:211c Acer, Inc Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.01 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x5986 Acer, Inc idProduct 0x211c bcdDevice 3.01 iManufacturer 1 SunplusIT Inc iProduct 2 HD Webcam iSerial 0 bNumConfigurations 1 ...
Power Management
Battery indicator works out of the box.
Sleep and wake also work with the proper configuration (see Power management).
An issue when sleeping is that the networking will be disabled when waking and set to airplane mode. This issue does not affect hibernation.
Keyboard
Lights
# lsusb -vs 001:002
Bus 001 Device 002: ID 1038:1122 SteelSeries ApS Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x1038 SteelSeries ApS idProduct 0x1122 bcdDevice 2.29 iManufacturer 1 SteelSeries iProduct 2 SteelSeries KLC iSerial 0 bNumConfigurations 1
The Steel Series lights on the keyboard cannot be configured with msi-keyboard-gitAUR or msiklm-gitAUR, because those tools only work with region-based RGB lighting. For this laptop model, the tool msi-perkeyrgbAUR provides partial control.
$ msi-perkeyrgb -m gs65 --list-preset
Available presets for GS65: - aqua - chakra - default - disco - drain - freeway - plain - rainbow-split - roulette
$ msi-perkeyrgb -m gs65 -p aqua
If keyboard lights remain off, be sure you've rebooted after installing msi-perkeyrgb to refresh udev and that the brightness is turned to maximum with Fn+PgUp, then try the command again.
For switching colors with a key, create a script file:
$ ./.msi-rgb-switch.sh
and put the following content inside:
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
then
$ chmod +x ./.msi-rgb-switch.sh
and map the script to a shortcut key. This will rotate to the next rgb color automatically
Button Mapping
Airplane Mode Key Combination
The airplane mode key combination (FN + F10) is disabled by default. Adding the following kernel parameters activates airplane mode key combination:
acpi_osi=! acpi_osi="Windows 2009"
Unmapped Buttons
The following buttons don't have any function or keycodes.
- FN + F7
- FN + Home
Non-US Keyboards' Backslash/Pipe 102nd Key
Systemd v240 addressed an issue for US keyboards which broke the mapping for the 102nd key on non-US keyboards. This is the key on the right of the space bar. For a UK keyboard it is the backslash/pipe key and you can correct the scancode to keycode mapping with
setkeycodes 56 86
(as the root user). To make this permanent, save the command to an executable shell script with a #!/bin/sh shebang, then create and enable the following systemd unit file:
[Unit] Description=Remap backslash key [Service] Type=oneshot ExecStart=/path/to/shell/script [Install] WantedBy=multi-user.target
Touchpad
Single tap and double finger scrolling work. Multi gestures do not work out the box though, they are detected with libinput-gesturesAUR.
Fan Control
Fan control by "Fancontrol (lm-sensors)" or "NoteBook Fan Control (NBFC)" is not supported, but by the use of the tool iswAUR you can control the fans in the same way as Dragon Center on Windows.
Troubleshooting
Webcam is not detected
If /dev/video0
is unavailable and lsusb
does not list the webcam, make sure that hard webcam switch is activated. The switch is indicated on the F6 key and can be toggled with FN + F6
.
Tips and Tricks
Microphone noise reduction
GS65 has the twin microphone, which is very cool to have for noise reduction and echo cancellation, as well as background sounds suppression via beamforming technique. To get the best of it add this line to /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
Also, it could be useful to add analog_gain_control=0
to aec_args
to disable automatic gain control.
Known Issues
Lockup Issue (lspci and poweroff hang)
Symptoms:
- lspci hangs
- poweroff hangs
Applies to: Arch boot ISO and systems with nouveau or without nvidia driver installed. See NVIDIA Optimus#Lockup issue (lspci hangs).
Solutions:
- Arch ISO: Add
modprobe.blacklist=nouveau
to the kernel parameters (https://superuser.com/a/1301487). - System using nvidia: Shouldn't run into this issue. bbswitch may not work and cause this, however.
- System using nouveau: Add
nouveau.runpm=0
to the kernel parameters. This disables runtime power-management, which causes this issue to begin with.
Cheese Hangs While Opening Camera
The issue can be fixed by installing vlc and running:
$ vlc v4l:// :v4l-vdev="/dev/video0"
Following this, cheese should work correctly.
Wifi is hardblocked (airplane mode) after waking up from suspend
Waking from suspend will have wifi in airplane mode. [1]
# rfkill list
1: phy0: Wireless LAN Soft blocked: no Hard blocked: yes
Wifi can be reactivated by either using the airplane mode key combination twice or by hibernating and rebooting.
A way to mitigate this is by setting systemd to hibernate instead of suspending.
/etc/systemd/logind.conf
HandleSuspendKey=hibernate HandleLidSwitch=hibernate
System freeze
From time to time the graphical interface will freeze and the keyboard will be unresponsive, though audio keeps running. It tends to happen when CPU temperature is high and CPUs are throttling.
There is no known solution for this.
It is not clear what causes this issue:
$ 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.
Issue caused by the Intel E2500 Wifi card.
$ journalctl -f
iwlwifi 0000:00:14.3: BIOS contains WGDS but no WRDS
Wifi card ask for a hardware reset. (System will freeze for +/- 10s)
Fixed by replacing the Wifi card.
Display outputs don't work after suspend
If the laptop is suspended with another monitor connected, then on wake all display outputs do not recognise when an external display is connected to any port. This persists across reboots. Worryingly it also persists if you reboot into Windows.
One workaround is to boot into Windows, suspend the laptop, then wake it. Connected displays will then be recognised when rebooting into Windows or Arch. Another workaround is to suspend and wake until the connected display is recognized. Sometimes this takes several tries but it avoids having to boot into Windows.
More Information
MS-16Q2
Microarchitecture, Processor and Platform
uname -mpi
x86_64 unknown unknown
PCI Devices
lspci
00:00.0 Host bridge: Intel Corporation Device 3ec4 (rev 07) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07) 00:02.0 VGA compatible controller: Intel Corporation Device 3e9b 00:12.0 Signal processing controller: Intel Corporation Device a379 (rev 10) 00:14.0 USB controller: Intel Corporation Device a36d (rev 10) 00:14.2 RAM memory: Intel Corporation Device a36f (rev 10) 00:14.3 Network controller: Intel Corporation Device a370 (rev 10) 00:16.0 Communication controller: Intel Corporation Device a360 (rev 10) 00:1b.0 PCI bridge: Intel Corporation Device a340 (rev f0) 00:1d.0 PCI bridge: Intel Corporation Device a330 (rev f0) 00:1d.4 PCI bridge: Intel Corporation Device a334 (rev f0) 00:1f.0 ISA bridge: Intel Corporation Device a30d (rev 10) 00:1f.3 Audio device: Intel Corporation Device a348 (rev 10) 00:1f.4 SMBus: Intel Corporation Device a323 (rev 10) 00:1f.5 Serial bus controller [0c80]: Intel Corporation Device a324 (rev 10) 01:00.0 VGA compatible controller: NVIDIA Corporation GP104M [GeForce GTX 1070 Mobile] (rev a1) 3b:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a808 3c:00.0 Ethernet controller: Qualcomm Atheros Killer E2500 Gigabit Ethernet Controller (rev 10)
USB Devices
lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 1038:1122 SteelSeries ApS Bus 001 Device 003: ID 8087:0aaa Intel Corp. Bus 001 Device 005: ID 5986:211c Acer, Inc Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Input Devices
ls -lah /dev/input/by-id
total 0 drwxr-xr-x 2 root root 80 Oct 27 11:24 . drwxr-xr-x 4 root root 480 Oct 27 11:24 .. lrwxrwxrwx 1 root root 9 Oct 27 09:14 usb-SteelSeries_SteelSeries_KLC-event-if01 -> ../event5 lrwxrwxrwx 1 root root 10 Oct 27 11:24 usb-SunplusIT_Inc_HD_Webcam-event-if00 -> ../event10