The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.

    PSA: Running Linux on the MSI GS43VR 6RE Phantom Pro notebook.

    Discussion in 'MSI' started by Dennismungai, Nov 22, 2017.

  1. Dennismungai

    Dennismungai Notebook Deity

    Reputations:
    785
    Messages:
    933
    Likes Received:
    867
    Trophy Points:
    106
    Hello, brethren.

    This post will detail how to successfully run Linux on the aforementioned notebook, with common traps and exceptions explained.

    An overview:

    This is an Intel Skylake-based laptop with a desktop-class Pascal GPU, and Nvidia Optimus is enabled. On this laptop, the HDMI and the mini-DP port are wired to the Nvidia GPU. The HDMI version supported here is the 1.4 revision, and for the mDP port, version 1.2. The same limitation carries over to the newer GS43VR 7RE (Kabylake) version.

    Of note is that the Thunderbolt 3 port also supports external displays, wired to the Intel GPU. HDMI 2.0 is supported through the LSPCon (Level Shifter- protocol converter) chip present on the thunderbolt controller chain, see this for details: http://www.anandtech.com/show/9562/intels-skylake-gpu-analyzing-the-media-capabilities

    For storage, you get a single M.2 slot and another 2.5' SATA III storage bay on the motherboard which accepts drives of up to 7mm. The M.2 slot is also NVMe compliant, and should work with any NVMe drive in the market with an M-key slot and 2280 -spec board, such as the 960 Evo and Pro.

    Installation notes:

    1. For dual boot use, disable secure boot, and ensure that you're booting with pure UEFI mode enabled. Avoid CSM and legacy boot modes as much as possible.

    2. Install Windows first.

    3. With Linux, ensure that on boot, the nouveau module is blacklisted. You can do so by tapping the "e" button on the boot menu entry and appending "blacklist=nouveau" to the linux boot arguments, then tap F10 to resume booting. This prevents lockups.

    4. Proceed with the installation as usual. Depending on your installation media, and the distribution of choice, ensure that:
    (a). You install the Nvidia proprietary drivers. On Ubuntu, add the proprietary driver PPA and Oibaf's PPAs. On Fedora and CentOS, stick to Negativo's driver repositories and do not add RPMFusion. The two repos aren't compatible and negativo packages the most important packages from RPMFusion anyways.

    (b). Partition your drives with the GPT-style partition table. All current Linux distributions support this.

    (c). The wireless and LAN modules work out of the box, even for the Killer wireless card. Refer to this document on upgrading firmware and tweaking the wireless card if you have any concerns about reliability: https://wiki.gentoo.org/wiki/Qualcomm_Atheros_QCA6174

    1. Now, on Skylake and beyond, you must understand that Intel's drivers have a new requirement on loading proprietary firmware to enable media codec acceleration, power savings, etc, through the so-called GuC and HuC subsystems. I've documented that here: https://gist.github.com/Brainiarc7/aa43570f512906e882ad6cdd835efe57
    Things that are known to be broken:

    1. Nvidia PRIME-based switchable graphics: Do not switch to the Intel based PRIME selection as this results in total lockup, either via Nvidia's control panel or via the prime-select tool. For now, use the Nvidia driver as-is and ensure that you're running at least R370. Update: This is fixed in R380+ drivers, please use the proprietary driver PPA from here to install it: https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa
    To switch to the intel GPU via prime-select, there are some workarounds you must apply to the grub configuration file to get prime mode for Intel to work, as described here: https://github.com/Bumblebee-Project/Bumblebee/issues/764

    Add acpi_osi=! "acpi_osi=Windows 2009" to the kernel boot parameters and regenerate the grub configuration file. For Ubuntu, you can run update-grub.

    1. Fan control: This seems to be using the default fan control scheme in the BIOS, and as such, this laptop runs considerably warmer on Linux than on Windows. Performance seems unaffected. There is a project that has attempted to address independent fan control on Linux, though it has notable issues. See this for more details: https://github.com/SkyLandTW/clevo-indicator

    2. External display outputs will work with Nvidia PRIME. However, to address resolution issues with compiz on Ubuntu, the compositor running on Unity, you'll have to address that via this workaround: On CompizConfig Settings Manager, go to "General Options", then "Display Settings" and do the following:

      (a).Uncheck "Deteck Outputs"

      (b).In the Outputs array, set the resolutions of each of your screens. The numbers after the resolution "1920x1080+0+0" are the offset. It's important to add this offset according to your needs. I have two full HD screens, so I added the following configuration: 1920x1080+0+0 1920x1080+1920+0 The second output has an offset of 1920, because it is on the right side of the first output, which has a width of 1920.

    3. The ACPI DSDT tables parsed by Linux on boot seem to be broken on many fronts, and as such, some things may trigger MCE errors unintentionally. For instance, Linux will report that the CPU is overheating on boot while in fact, its' not. To suppress these warnings, unistall mcelog. Do not trust its' output. If you require alerts on events related to MCE errors, you should be using rasdaemon instead: http://manpages.ubuntu.com/manpages/zesty/man8/rasdaemon.8.html

    4. Where possible, use PowerTop to handle power management. With the --auto-tune option, it can significantly enhance power usage, making your Linux laptop usable on battery life. Also, remember to run powertop --calibrate often to get better approximations on power draw and savings. The Arch Wiki has an excellent resource on using PowerTop. The first Google search will take you there.

    5. Most of the WMI-driven keyboard keys work, such as sleep (suspend), backlight control, volume up and down, etc, with the exception of the Eco key (F10) and the F1 shortcut key for swapping Turbo modes.

    6. HDMI Audio: Under Nvidia PRIME, there is no HDMI audio output. This seems to be a bug on the Nvidia Linux driver for such setups.

    7. Media capabilities: For the Nvidia GPU, you're able to use NVENC on FFmpeg, libav and other applications that support it. Intel QuickSync on Linux also works on the integrated GPU with FFmpeg and Libav, if configured for that capability. For hardware-accelerated decode, Skylake is able to handle VP8 8-bit, HEVC 8-bit, MPEG-2, VC-1, H.264 High profile and stereo formats for both 8 and 10-bit depths under VAAPI, and the Pascal GPU can handle the same feature set through VDPAU, with the exception of VP8 and HEVC 10-bit decoding. For that, you will need CUVID, built as a decoder on FFmpeg or libav.
    If anyone else experiences other issues on Linux with this laptop, we'll keep adding to this thread and contributing to it.

    On hardware upgrades:

    1. I was able to install the 1 TB Samsung 960 Evo NVMe SSD and it works okay as a boot device. No performance regression(s) or thermal throttling observed, even under high load. This small notebook has adequate space for the heat sink on the 960 Evo, and it does not misbehave at all. On installing the NVMe SSD, be careful not to dislodge the block of Silicon cooling pad underneath the M.2 slot, as it helps the SSD controller dissipate heat.

    2. On Linux 4.11, the NVMe AST power saving patch is already included.

    3. With NVMe drives, you do not need to mount your filesystems with the discard option. Simply run fstrim via a systemd timer, as documented on the Arch Wiki here: https://wiki.archlinux.org/index.php/Solid_State_Drives/NVMe#Discards

    4. Whatever you do, ensure that you're running the latest firmware for the SSDs, and update them through bootable media created for that. Both Samsung and Crucial provide utilities that allow you to do this from within Windows, and common sense advises us against using them. Bricks happen :)

    5. With the 2.5" SSDs, ensure that they come with a spacer for 9mm height, as most of them come at 7mm only. The drive slot on this machine is 9 mm high, so consider that before upgrading. Crucial does include a spacer, but do not assume that other vendors do this. Do your research and ascertain that this is indeed the case.
    On assembly:

    1. The build quality is a bit on the flimsy side for a gaming laptop, so if you're opening the GS43VR for upgrades and repastes, exercise caution when removing the rear panel. It's very easy to break off some of the clips holding the chassis on re-assembly, particularly the clips around the cooling vents.
    2.It takes 8 screws only for the rear panel, and one is suspiciously hidden under a warranty sticker at the bottom.

    1. Every component, apart from the WLAN module, is easily accessible from the top side.
    Personal notes: I do have a bad feeling about the heat sinks running directly on top of PCBs, hope this is not a design flaw.


    Notes: Updated to reflect the current status of the Nvidia driver with handling external outputs, a fix for resolution settings under the compiz compositor running on Ubuntu's unity desktop, and the status of HDMI audio. Media capabilities have also been updated for the respective GPUs on the system.
     
    Last edited: Nov 29, 2017