OpenBSD on the Lenovo ThinkPad X1 Nano (1st Gen)

posted on jan 27th, 2021 with tags hardware, laptops, openbsd, and thinkpad, and last updated on apr 7th, 2021

Lenovo has finally made a smaller version of its X1 Carbon, something I’ve been looking forward to for years.

side profile of thinkpad x1 nano on desk

Hardware

The X1 Nano is basically a 13” version of the 14” X1 Carbon, reducing its footprint, thickness, and weight. Availability in the US has been fairly limited (and expensive) at the moment, offering no WWAN or any customizable options, and Core i7 models are not shipping out for months. I purchased the Intel Core i5-1135G7 model with 16Gb of RAM and a 1Tb NVMe SSD. The only screen option currently available is a matte non-touch 2K display.

The X1 Nano (X1N1?) weighs 2.0 lbs compared to my previous X1C7’s 2.4 lbs. The width is reduced from the 14” X1 Carbon’s 12.71” to 11.53”, depth from 8.54” to 8.18”, and thickness from 14.95mm to 13.87mm.

On the left side of the laptop are two Thunderbolt 3-enabled (USB 4) USB-C ports and a headphone jack. The PCI ethernet device and its required dongle are no longer available, which is not really needed these days with non-Thunderbolt USB-C ethernet adapters being able to max out a gigabit ethernet connection (at least on non-OpenBSD platforms).

On the right side are just the fan vent and power button, which is now moved from about the middle of the side to the far-right edge. I find the power button very hard to press now, especially to hold it in for how ever many seconds it takes to force a hard power-off.

The Dolby Atmos sound system remains with its unfortunate branding still present on the left side of the keyboard deck. There are two up-firing speakers at the top of the keyboard deck, which sound excellent and loud.

The 13” 2K (2160x1350) matte, non-touch IPS screen looks great and is the same horizontal resolution as my 13” MateBook X which I’ve still been using for years. The resolution is high enough to use 1.5x scaling but low enough to not draw a lot of power. It can get very bright at 450 nits, and most of the time indoors I’m using it at about 40% brightness. I did a color calibration and it wasn’t too far off the factory default.

The Nano has a ThinkShutter device to physically cover up the webcam lens as my X1 Carbon did, and retains the black “ThinkPad” branding on the keyboard deck.

The screen hinge is tight and cannot really be opened one-handed due to the reduced weight of the laptop. However, the lid does not wobble at all when typing.

The keyboard still seems full-sized, though the function-row keys are shorter. The X1 Nano further reduces the X1C7’s key travel from 1.5mm to 1.35mm, though I still find it very enjoyable to type on and it retains a chunky tactile feel. The keys do have a bit of a creaky sound when typing or just moving fingers on keys without pressing them. The keyboard is backlit and offers two levels of adjustment with Fn+Space or through wsconsctl keyboard.backlight on OpenBSD, or through software utilities like xdimmer.

The Elan touchpad surface remains soft and easy to glide fingers across, and its integrated “diving-board-style” button has a quiet thud for a click with no play in its mechanism. The three physical TrackPoint buttons between the keyboard and touchpad have a shallow click. The TrackPoint still operates over a legacy PS/2 attachment and the touchpad is a Windows Precision Touchpad connected over I2C as on the X1C7.

I am using the far-superior “soft rim”-style TrackPoint cap that was made for my X1C7 and is probably a hair too tall for the lower-profile X1N1 keyboard, but it doesn’t stick up past the keys nor contact the screen when closed.

close-up of keyboard showing new trackpoint cap installed, with old cap next to it new trackpoint cap height compared to keyboard key height

A square USB-attached fingerprint sensor sits next to the touchpad which I’ve honestly forgotten about until I just looked.

Wireless connectivity is provided by a non-socketed Intel AX201 802.11ax WiFi and Bluetooth 5.1 chip. The NVMe SSD is a Western Digital PC SN530 removable m.2 2242 form-factor drive mounted under a heatsink.

There is no audible coil whine. The fan has a tendency to come on rather eagerly when the CPU is allowed to use its full frequency with turbo, and to remain on for what seems like a long time even after the CPU-intensive operation has stopped and the surface of the laptop is cool to the touch. Fortunately the fan is rather quiet (~33 dBA about an inch from the exhaust outlet at the fan’s highest setting) and has a neutral white-noise sound without any high-pitched whining. Perhaps a future update to the firmware/EC will adjust the temperature thresholds for the fan to come on less eagerly, and not stay on so long.

inside of x1 nano

Firmware

The X1 Nano defaults to a graphical firmware upon pressing F1, which can be switched back into a simple text mode. F12 can be used to temporarily select a different boot device. Pro-tip: press Fn+F1 to mute the speakers before pressing either of these options to prevent a loud, annoying beep.

I recommend enabling the “F1-F12 as Primary Function” option to not require using the Fn key to register these keys.

Installing a different boot logo is still possible through Windows, which also gets rid of the new “TCO Certified” logo in the bottom-right corner.

Secure Boot must be disabled in the BIOS menu to boot OpenBSD, and a “CSM Support” option is no longer available (nor needed).

Unfortunately the X1 Nano is an “Intel Evo” platform device, which means it no longer has a normal ACPI S3 suspend mode. The X1C7 had a firmware option to disable this “Modern Standby” and enable “Legacy S3 standby mode”, but the X1 Nano no longer has this option. This means that OpenBSD is unable to suspend the laptop since the firmware no longer supports it. Efforts to support S0ix and achieve a similar level of suspended power consumption are underway, as my Surface Go 2 was a similar device.

OpenBSD Support Log

2021-01-17: The usual round of PCI device ID additions have been made, and iwx has been updated to attach to the AX201 device found in the X1 Nano.

There are some minor issues with DPMS that cause the screen to take a few seconds longer to wake up after being shut off. Sometimes when returning to my laptop after it’s been locked (and the screen turned off via DPMS) it blinks a few times before showing the screen contents.

2021-01-25: I’ve been experimenting with adjustable fan control in acpithinkpad to silence the fan at all times. It doesn’t seem to raise the temperature too high, and the laptop seems capable of passively cooling itself down fairly well once CPU-intensive tasks have stopped.

2021-01-27: I’ve also been working on adding support for Intel HWP as a modern replacement for OpenBSD’s hw.setperf, where the processors/firmware dynamically adjust their frequency on their own in response to work load, rather than the OpenBSD kernel doing it.

2021-04-07: Due to the lack of S3 suspend and a keyboard repair (under warranty by Lenovo) that made the keyboard feel worse, I’ve sold my X1 Nano. At this time, I can’t recommend buying any “Intel Evo” branded laptop for OpenBSD use due to the lack of hardware S3 suspend support forced on these laptops, combined with a lack of any “instant wake” mechanism in OpenBSD’s kernel.

Current OpenBSD Support Summary

Status is relative to OpenBSD-current as of 2021-01-27.

Component Works? Notes
Audio Yes Intel audio with Realtek ALC287 codec and supported by azalia. Microphone can be disabled in the BIOS.
Battery status Yes 48Whr battery, status available through acpibat.
Bluetooth No Attaches as a ugen device, but OpenBSD does not support Bluetooth. Can be disabled in the BIOS.
Fingerprint sensor No Synaptics 00bd via USB, might be supported by libfprint with some extra firmware. Can be disabled in the BIOS.
Keyboard backlight Yes Supported natively by the EC. Can be toggled with Fn+Space and with wsconsctl keyboard.backlight values of 0, 50, and 100.
Hibernation Yes Can be triggered by ZZZ.
SSD Yes The Western Digital PC SN530 NVMe drive is supported by nvme.
Suspend / resume No The firmware does not support ACPI S3 suspend.
Thunderbolt 3 Kinda Any devices attached at boot time will work in OpenBSD, but hotplugging is not supported since we do not have an NHI driver.
Touchpad Yes Elan I2C, supported by imt.
TrackPoint Yes Supported by pms.
USB Yes The 2 USB-C ports work fine. I am using the Lenovo USB-C UltraDock which provides charging, USB ethernet (via ure) and a connection for the dongle for my wireless mouse, all over a single USB-C cable.
Video Yes inteldrm supports accelerated video, DPMS, gamma control, and integrated backlight control. HDMI output through a USB-C adapter works.
Webcam Yes Chicony USB, supported by the uvideo driver when the kern.video.record sysctl is enabled. Can be disabled in the BIOS.
Wireless Yes The non-removable Intel AX201 802.11ax wireless chip is supported by iwx.


Questions or comments? E-mail me or tweet your reply @jcs.