MSI P15

From ArchWiki

This article or section does not follow the Laptop page guidelines.

Reason: Lacks function keys table (Discuss in Talk:MSI P15)

This laptop may also be known as Prestige 15 or A10SC

Hardware PCI/USB ID Working?
Touchpad 06cb:cdaa Yes
Keyboard Yes
GPU (Intel) 8086:9bca Yes
GPU (nvidia) 10de:1f91 Yes
Thunderbolt 8086:15eb unknown
Wireless 8086:02f0 Yes
Bluetooth 8087:0026 Yes
Webcam 5986:211c Yes
Card reader 10ec:5250 Yes
Fingerprint reader 06cb:009b No

Installation

Secure Boot needs to be disabled at first startup, but it can be configured later. This laptop supports Secure Boot keys reset to factory and custom keys install. To access advanced options in the UEFI, press R_Alt+L_Ctrl+L_Shift+F2 after entering it.

Wireless

Sometimes the Wi-Fi card it gets stuck on startup and needs reset, which can also be accomplished by reloading iwlwifi, iwlmvm and restarting wpa_supplicant.

Function keys

All the Fn keys should work out of the box, but Fn12, Fn4, Fn5 and Fn7. The latter does not send an Fn input, but rather the proper F7 key, so this can be easily assigned. About the other Fn keys, Fn+F4 maps as the keycode 93, so it can be assigned to its original function (touchpad toggle) with xmodmap:

 ~/.Xmodmap
keycode  93 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle

About Fn5 and Fn12, these send a keycode, and needs to be configured asd described in Map scancodes to keycodes using udev instead of setkeycodes, as the latter does not seem to work properly. This is achieved modifying the file /lib/udev/hwdb.d/60-keyboard.hwdb or otherwise, adding at the end of the # Micro-Star section the followings:

evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*A10SC*:pvr*
 KEYBOARD_KEY_f1=f20
 KEYBOARD_KEY_f2=f21

The microphone mute button should now work out of the box, but the rotate screen one does need a script that toggles the rotation. This can be accomplished by this script

toggle_rotation.sh
#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=/tmp/.toggle

if [ ! -e $TOGGLE ]; then
    touch $TOGGLE
    xrandr -o inverted
else
    rm $TOGGLE
    xrandr -o normal
fi

which will need to be saved somewhere with execution permissions, then added to the shortcut menu in the currently used Desktop Environment and lastly enabled to be triggered by Fn12. Afterwards, please update the hardware database by running systemd-hwdb update && udevadm trigger as root.

Home and End buttons

These buttons are mapped to AltGr+PgUp and AltGr+PgDown respectively. A helpful solution is to modify the current layout in /usr/share/X11/xkb/symbols/$LAYOUT, where LAYOUT is the current keyboard layout. This is accomplished by writing the following two lines in the default section of the file:

   key <PGUP>  { [     Prior,      Prior,         Home,    Home      ] };
   key <PGDN>  { [      Next,       Next,          End,    End       ] };

Fingerprint reader

The fingerprint sensor implementation is not currently functioning but there are some promising projects.

python-validity and pam-validity.

There is also the Validity90 project on GitHub to port the Synaptics 06cb:009b device to Linux - but this project has not seen work in years.

Hibernation

If after hibernation the laptop does not power off but reboots, it is necessary to modify /etc/systemd/sleep.conf to the following:

/etc/systemd/sleep.conf
HibernateMode=shutdown