Jump to content

# Huawei MateBook 14s

From ArchWiki
Note: This page refers to the Huawei MateBook 14s i7 16GB/1TB with Thunderbolt 4.

Hardware | PCI/USB ID | Working?
--- | --- | ---
Touchpad | `27C6:01E0` | Yes
Touchscreen | `27C6:0114` | Yes
Keyboard | PS/2 | Yes
Webcam | `3408:c200` | Yes
Bluetooth | `8087:0026` | Yes
Audio | `8086:a0c8` | Partial
Wi-Fi | `8086:a0f0` | Yes
Fingerprint reader | `27c6:5125` | No

## Installation

Secure Boot must be disabled in the BIOS to boot an Arch Linux install medium. Other than that, the installation can proceed normally.

## Accessibility

The BIOS is text-based, OCR-friendly, and usable with the keyboard only.

## Firmware

fwupd detects the SSD, serial bus controller, USB camera, USB4 host controller, system firmware, and UEFI device firmware.

## Function keys

To make function keys trigger `F1`–`F12` by default and special functions with `Fn`, write 1 to `/sys/devices/platform/huawei-wmi/fn_lock_state`. This setting survives reboots, so writing once suffices.

Key | Visible?1 | Marked?2 | Effect
--- | --- | --- | ---
`Fn+F1` | Yes | Yes | `XF86MonBrightnessDown`
`Fn+F2` | Yes | Yes | `XF86MonBrightnessUp`
`Fn+F3` | Yes3 | Yes | Cycle keyboard backlight (no/low/high)
`Fn+F4` | Yes | Yes | `XF86AudioMute`
`Fn+F5` | Yes | Yes | `XF86AudioLowerVolume`
`Fn+F6` | Yes | Yes | `XF86AudioRaiseVolume`
Dictation key (above 7) | Yes3 | Yes | Does nothing by default
`Fn+F7` | Yes | Yes | `XF86AudioMicMute`
`Fn+F8` | No | Yes | `Super+p`
`Fn+F9` | Yes3 | Yes | Toggles Wi-Fi via rfkill
`Fn+F10` | Yes | Yes | `XF86Tools`
`Fn+F11` | Yes | Yes | `PrintScreen`
`Fn+F12` | Yes | Yes | `Ins`
`Fn+r` | Yes3 | No | Nothing; supposed to toggle display refresh rate between 60 and 90Hz
`Fn+p` | Yes3 | No | Nothing; supposed to toggle performance mode
`Fn+Left` | Yes | No | `Home`
`Fn+Right` | Yes | No | `End`
`Fn+Up` | Yes | No | `PageUp`
`Fn+Down` | Yes | No | `PageDown`

1. The key is visible to `xev` and similar tools
2. The physical key has a symbol on it, which describes its function
3. Not visible to `xev` by default, but detected by the kernel (`Unknown key pressed`) and can be handled as described in map scancodes to keycodes.

## Audio

Sound Open Firmware is required. The speakers and microphones work well but not perfectly out of the box; the audio jack has some issues which are being addressed[1].

Until the issue is fixed upstream, some workarounds can make the device usable.

### Headphones

To use headphones plugged in the audio jack, until the fixes are incorporated upstream, you can use this workaround [2] (which uses `hda-verb` from alsa-tools):

#### Enable speaker and disable headphones

First, move the output to the speaker DAC:

    # hda-verb /dev/snd/hwC0D0 0x16 0x701 0x0001

Then, enable the speaker:

    # hda-verb /dev/snd/hwC0D0 0x17 0x70C 0x0002

Finally, disable the headphones:

    # hda-verb /dev/snd/hwC0D0 0x1 0x715 0x2

#### Disable a speaker and enable headphones

First, move the output to the headphones DAC:

    # hda-verb /dev/snd/hwC0D0 0x16 0x701 0x0000

Then, disable the speaker:

    # hda-verb /dev/snd/hwC0D0 0x17 0x70C 0x0000

Afterwards, pin the output mode:

    # hda-verb /dev/snd/hwC0D0 0x1 0x717 0x2

Then, enable the pin:

    # hda-verb /dev/snd/hwC0D0 0x1 0x716 0x2

Finally, clear the pin value:

    # hda-verb /dev/snd/hwC0D0 0x1 0x715 0x0

In both cases, if using ALSA ensure the outputs are unmuted using `alsamixer` or `amixer`; if using PulseAudio, ensure the correct output (speaker/headphone) is selected using `pactl set-sink-port` or `pavucontrol`.

### ALSA

With plain ALSA you will have issues with simultaneous audio output from multiple sources that can be fixed with the following:

    /etc/modprobe.d/audio.conf

    options snd-intel-dspcfg dsp_driver=3

which unfortunately renders the microphones unusable.

### PulseAudio

If using PulseAudio, both simultaneous audio output and the microphones will kind of work (only the two left microphones). However, to have audio output through the speakers you should run the `hda-verb` script from #Enable speaker and disable headphones after launching PulseAudio.

## Battery protection

The `huawei_wmi` driver is available in the mainline kernel.

You can set the thresholds by writing directly to the file:

    # echo '40 70' > /sys/devices/platform/huawei-wmi/charge_control_thresholds

or you can use tools such as TLP:

    /etc/tlp.conf

    START_CHARGE_THRESH_BAT0=40
    STOP_CHARGE_THRESH_BAT0=70

Note: The battery is `BAT1` in sysfs, but `BAT0` in `tlp.conf`.

## Display

The native resolution (2520x1680) is fully recognized and the refresh rate is set to 90Hz but it can be changed to 60Hz and 48Hz. Decreasing the refresh rate means less screen fluidity but also longer battery life

Category:

- Huawei