Microsoft Surface Book 2 - ArchWiki

Jump to content

# Microsoft Surface Book 2

From ArchWiki

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

Reason: Stub (Discuss in Talk:Microsoft Surface Book 2)

Hardware | PCI/USB ID | Working?
--- | --- | ---
GPU (Intel) |  | Yes
GPU (Nvidia) |  | Yes
Wireless |  | Yes
Audio |  | Yes
Touchpad |  | Yes
Touchscreen |  | Yes
Camera |  | No
Card reader |  | Yes
Bluetooth |  | Yes

This page contains instructions, tips, pointers, and links for installing and configuring Arch Linux on Microsoft Surface Book 2 devices.

## Compatibility

The laptop works surprisingly well with Arch Linux, but requires a kernel with modules and updated drivers, available on GitHub.

### What works?

Note: Touchscreen only works in a Window Manager or Desktop Environment that has full support for it. It is recognized as a mouse click otherwise.

- Touchscreen
  - Requires kernel with modules/drivers in link above.
- Pen Input
  - Requires kernel with modules/drivers in link above.
- Removal of keyboard base
  - A few seconds slower in Linux than in Windows
  - May cause touchscreen to stop working until reboot
  - May cause issues with dedicated graphics (if equipped)
- Keyboard function and media keys, including volume and brightness adjustment of the keyboard and screen backlights.
- Wireless Networking
  - May need a tweak from #WiFi if Wireless Networking hardware disconnects during use
- Speakers / Headphones
  - Speakers sometimes have a hissing noise that can be fixed, details in #Audio
- Dedicated Nvidia graphics (If equipped)
- Hibernation
  - Only when the touchscreen is disabled, see #Hibernation
- ACPI, Battery stats, power saving, etc.

### What does not work?

- Cameras

### Nvidia

The Nvidia 1050 and 1060 cards in the Surface Book 2 Performance Base are recognized by the kernel and supported by `nvidia` and `nvidia-dkms` drivers. Without the kernel ([linux-surface https://github.com/qzed/linux-surface]), there was a bug which causes it to be effectively useless because when a load is put on the Nvidia graphics hardware, it immediately and severely throttles down to around 139MHz. The reason, as reported by `nvidia-smi`, is software thermal throttling. The cause is that, apparently, the fan cannot be controlled automatically, nor through `nvidia-smi` or `nvidia-settings`, even when the nvidia xorg `Coolbits` option is set to 8.

## UEFI Setup and Disabling Secure Boot

Disabling Secure Boot is not necessary, but makes things easier.

Follow The manufacturer's directions for accessing UEFI setup:

1. Shut down your Surface and wait about 10 seconds to be sure it is off.
2. Press and hold the volume-up button on your Surface, and, at the same time, press and release the power button.
3. When you see the Surface logo, release the volume-up button. The UEFI menu will appear within a few seconds.

## Booting

The information in Boot loaders applies here. refind and Systemd-boot work well.

### Boot from USB

Booting from USB is possible by reordering boot devices in the UEFI setup.

## Graphics Drivers

The standard xf86-video-intel driver works with the Surface Book devices.

For devices equipped with dedicated Nvidia graphics, the nvidia or nvidia-dkms driver supports the dedicated GPU.

## Audio

Surface Book 2 devices exhibit a hissing noise at times. This can be fixed by installing alsa-utils and running the following commands:

    amixer -c 0 sset 'Auto-Mute Mode' Disabled
    sudo alsactl store

## WiFi

Since September 2018, Surface Book 2 WiFi may power off during use. When this happens, it is not visible in lspci and rebooting is a way to get it back on. However, this behavior can be prevented (temporarily) by installing iw and running the following command as root:

    # iw dev wlp1s0 set power_save off

To permanently fix the issue with NetworkManager, add this to your NetworkManager config. (Such as /etc/NetworkManager/NetworkManager.conf)

    [connection]
    wifi.powersave = 2
    [device]
    wifi.scan-rand-mac-address=false

## Console fonts

Because of the screen's resolution, the console font is barely readable - refer to Linux console#Fonts on how to change them.

Using terminus-font with 32pt looks good on Surface Book 2 on the vconsole (add `FONT=ter-m32n` to `/etc/vconsole.conf` after installing).

## Hibernation

Hibernation with the qzed kernel only works when the touchscreen firmware loading is disabled (adding `i915.enable_guc=0` to the kernel parameters).

Categories:

- Microsoft
- Mobile devices

Hidden category:

- Pages or sections flagged with Template:Laptop style