Huawei MateBook 14 AMD (2020)

From ArchWiki

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Many style violations. (Discuss in Talk:Huawei MateBook 14 AMD (2020))
Note: This page refers to the Huawei Matebook 14 AMD (2020). Some information might also apply to the MateBook 13 AMD. Be aware that the MateBook D series is substantially different.
Hardware PCI/USB ID Working?
Touchpad Yes
Keyboard Yes
Webcam 13d3:56db Yes
Bluetooth 1358:c123 Yes
Audio 1022:15e3 Yes
Wireless 10ec:c822 Yes
Fingerprint reader 27c6:5110 No
Battery protection Yes

Installation

The Western Digital SN730 NVMe SSD comes pre-configured with a logical sector size of 512 bytes and a physical sector size of 4096 bytes. Switching the logical sector size to the native 4096 byte size might improve performance as indicated by the vendor. This will erase all data on the device! To format the SSD with a different sector size, run

$ nvme format --lbaf=NUMBER /dev/nvmeXnY

with the LBA format according to

$ nvme id-ns -H /dev/nvmeXnY
[...]
LBA Format  0 : Metadata Size: 0   bytes - Data Size:  512 bytes - Relative Performance: 0x2 Good 
LBA Format  1 : Metadata Size: 0   bytes - Data Size: 4096 bytes - Relative Performance: 0x1 Better

Installation of Arch Linux can proceed normally. Refer to the Installation guide for more information. Booting Arch using EFISTUB is supported by the firmware.

Firmware

fwupd detects the touchpad, GPU, UEFI, TPM, DisplayPort Hub and NVMe drive, although Huawei currently does not provide updates through the Linux Vendor firmware Service (LVFS).

Previous devices got their BIOS updates published on the Huawei homepage which could be manually installed[1]. However, currently no updates are available for download even though this device receive the update to BIOS version 1.06 after launch.

Power management

Power and temperature monitoring

Zen 2 (Ryzen 4000) is currently not supported by lm_sensors. zenpower3-dkmsAUR gives the die temperature and package power consumption.

Battery protection

The Huawei WMI driver v3.3 to expose battery protection thresholds was merged into kernel 5.5[2]. There is an issue[3] where the hardware reports incorrect values for the charge thresholds, preventing battery protection from working. The maintainer of the driver has stated this should be fixed in userspace[4].

A temporary fix is to write some sane values to the file:

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

This will enable battery protection (in this case, the device will stop charging at 70%). In order for matebook-appletAUR to run without superuser rights, add yourself to the huawei-wmi user group since the thresholds are still read-only to non-root.

Alternatively, huawei-wmiAUR will set the group write privileges. This will also take care of the thresholds resetting randomly upon reboot by automatically reinstating the battery charge-thresholds. For more information, see this guide.

In case that the thresholds does not apply (i.e. does not stop charging) despite being properly set, check whether "Smart Charging" is turned on by sending:

# echo 0x00001603 > /sys/kernel/debug/huawei-wmi/arg 

Then calling the call twice:

# cat /sys/kernel/debug/huawei-wmi/call
# cat /sys/kernel/debug/huawei-wmi/call

If the output reports [{0x00,0x00,0x00,0x00},{0x00,0x04,0x48,0x28,0x46,0x00... then the Smart Charging is enabled and the following instructions need to be run instead to set the limit to 40-70:

# echo 0x462848011503 > /sys/kernel/debug/huawei-wmi/arg
# cat /sys/kernel/debug/huawei-wmi/call
# cat /sys/kernel/debug/huawei-wmi/call

See Huawei-WMI issue 55 for details.

Audio

Speakers and internal microphone work out of the box although the internal microphone picks up a significant amount of noise. To correctly detect a headset with microphone, use the alc255-acer,dell-headset-multi for the value of model=, as explained in Advanced Linux Sound Architecture#Correctly detect microphone plugged in a 4-pin 3.5mm (TRRS) jack.

Fingerprint reader

The Goodix fingerprint reader is currently unsupported officially. There is a fork however, which aims to provide support for the device (along with other similar goodix ones). The driver is currently in testing but there is an aur package for it libfprint-goodixtls-gitAUR which works with fprintd