Jump to content

# 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

Category:

- MSI

Hidden category:

- Pages or sections flagged with Template:Laptop style