now | writings | rss | github | twitter | contact

OpenBSD on the Huawei MateBook X

posted to writings on jul 14th, 2017 with tags laptops, nerd, and openbsd, last updated on oct 1st, 2017

The Huawei MateBook X is a high-quality 13" ultra-thin laptop with a fanless Core i5 processor. It is obviously biting the design of the Apple 12" MacBook, but it does have some notable improvements such as a slightly larger screen, a more usable keyboard with adequate key travel, and 2 USB-C ports.

It also uses more standard PC components than the MacBook, such as a PS/2-connected keyboard, Intel WiFi card, etc., so its OpenBSD compatibility is quite good.

In contrast to the Xiaomi Mi Air, the MateBook is actually sold (2) in the US and comes with a full warranty and much higher build quality (though at twice the price). It is offered in the US in a "space gray" color for the Core i5 model and a gold color for the Core i7.

Hardware

The MateBook X has a fanless, 7th generation (Kaby Lake) Intel Core i5-7200U processor, 8 Gb of soldered-on RAM, and a 256 Gb NVMe Liteon SSD. It has a very small footprint of 11.25" wide, 8.3" deep, and 0.49" thick, and weighs just 2.3 pounds.

A USB-C port is located on each side, though only the left port can be used to charge the battery. A USB-C "dock" is included which has a USB-A, USB-C, HDMI, and VGA port. A white charging LED is located to the left (back) of the left USB-C port which blinks when charging and remains solid when fully charged, though unfortunately does not illuminate or blink when the machine is suspended. A headphone/microphone jack is also located on the left side next to the USB-C port.

Wireless connectivity is provided by an Intel 8265 802.11a/b/g/n/ac WiFi and Bluetooth 4.1 card. The webcam in the top screen bezel attaches internally over USB.

The fanless Core i5 processor feels snappy and doesn't get warm during normal usage on OpenBSD, though during a make -j4 build at full CPU speed, it can get quite hot.

The chassis is all aluminium and has excellent rigidity in the keyboard area. The 13.0" 2160x1440 glossy IPS "Gorilla glass" screen has a very small bezel and its hinge is a bit too tight to allow opening the lid with one hand. There is no wobble in the screen when open, even when jostling the desk that the laptop sits on. It has a reported brightness of 350 nits.

The keyboard has a roomy layout and a precise, clicky tactile. It does have a short key travel (reportedly 1mm) due to its thickness, though it is much more usable than the MacBook's 0.5mm key travel and much quieter. Page Up, Page Down, Home, and End are done through Fn+Up, Fn+Down, etc. and the left and right arrow keys are full-height, which I do not prefer.

The keyboard is backlit with two levels of light which can be adjusted with Fn+F3, and automatically turns on when pressing keys, then back off after a while of not typing. The indicator lights on the Caps Lock and Fn keys light up when the screen is powered off (via DPMS) which is handy for knowing when the laptop is powered on since there is no other power indicator on the laptop.

The F1-F12 keys have the usual screen brightness and volume adjustments among other things and by default, to use them as actual F1-F12, the Fn key must be used. A setting in Huawei's Windows app can reverse this which makes the change persist into OpenBSD so that the F1-F12 keys are the default, so you may want to make this change first before formatting the SSD. Unfortunately if the battery ever drains completely, this setting is reverted to its default of requiring Fn to use F1-F12.

The power button is located at the top right of the chassis above the F1-F12 row, and has an integrated Goodix fingerprint sensor in it like the Touch ID sensor on the iPhone. There is apparently some integration with the UEFI firmware and Windows such that pressing the button once when powering on the laptop will store the fingerprint that the sensor read, long enough to let Windows boot and then present the fingerprint as a login mechanism to Windows.

The glass ElanTech multi-touch touchpad is connected via I2C. The tacile of the touchpad button is solid, with a deep, quiet click volume. There is some vertical play in the touchpad surface between its resting position and pressing the button, which some other reviewers have mentioned. I was able to eliminate the play by removing the bottom lid and inserting a piece of electrical tape between the touchpad and its button mounted on the chassis, which I've had to do on a couple other laptops because such things bother me.

Removal of the bottom cover can be done by removing three visible Torx screws, then removing the four Phillips-head screws under each of the rubber feet, then sliding a tool between the bottom case and the main chassis to dislodge the plastic clips.

Firmware

The MateBook has a usable UEFI/BIOS menu which can be accessed by holding down F2 at boot. Most of the peripherals like the Webcam, audio, WiFi, etc. can be disabled from this menu and the boot order of devices can be adjusted. A temporary boot device can be selected by pressing F12 at boot.

I did not experience any of the UEFI boot variable problems that I did with the Xiaomi, and the MateBook booted quickly into OpenBSD after re-initializing the GPT table during installation.

OpenBSD Support

Status is relative to OpenBSD-current as of 2017-12-05.

Component Works? Notes
Ambient Light Sensor Yes Supported by acpials.
Audio Meh Intel audio supported by azalia, though sound only comes from the left speaker (headphones play stereo) but is quite high quality. This happens in Linux and Windows too, though installing Dolby drivers in Windows gets sound working through both speakers. As a workaround, sndio can be configured to convert stereo sound to mono and route it through the left speaker with sndiod_flags=-c 0:0 in /etc/rc.conf.local.
Battery status Yes Shows up through acpibat as of 2017-07-22.
Bluetooth No Shows up as a ugen device, but OpenBSD does not support Bluetooth. Can be disabled in the BIOS.
Fingerprint sensor No Goodix SPI-connected sensor embedded in the power button. No OpenBSD (or Linux) compatibility, can be disabled in the BIOS.
Keyboard backlight Yes Supported natively by the EC, including auto-dimming. Can be toggled with Fn+F3, but cannot (yet?) be controlled through software in OpenBSD.
Hibernation Yes Takes about 25 seconds to dump memory to the SSD.
Suspend/resume Yes Works as expected in response to lid closing or zzz.
Touchpad Yes ElanTech I2C, supported by the imt driver via Windows Precision Touchpad mode. Currently works in polling mode due to a problem with interrupts on Intel 100-series machines.
USB Yes The USB-C ports work fine, though only the left port supports charging (under any OS). The included USB-C "dock" with its USB-A and USB-C ports works.
Video Yes Kaby Lake video supported via inteldrm for accelerated video, DPMS, gamma control, integrated backlight control, and proper S3 resume. HDMI output through the provided USB-C dock works.
Webcam Yes Supported by the uvideo driver, can be disabled in the BIOS.
Wireless Yes The Intel 8265 802.11n wireless card is supported by the iwm driver. It works on 2.4Ghz and 5Ghz channels in G and N modes, up to about 25 Mbit/sec.
Comments? Contact me via Twitter or e-mail.