OpenBSD/arm64 on the Lenovo ThinkPad T14s G6

Posted: October 25, 2024
ThinkPad T14s Gen 6 (Snapdragon) running emwm, xterm, tmux, Grace, Ted, xfile, NEdit on OpenBSD/arm

I tend to run OpenBSD on at least one computer in the house and usually use it for reading, some open source coding, and general “UNIX nostalgia” ;-)

After I bought my first ARM-powered ThinkPad, a T14s that I reviewed extensively, I decided to try and install OpenBSD and see how it fares.

Installation

The ThinkPad has a UEFI firmware, so installation is straight forward: Disable “Secure Boot” in the BIOS, create a USB installation medium, stick it in the right port, press F12 while booting and choose the correct boot device.

If you are reading this before OpenBSD 7.7 is released, do yourself a favor and start installation with a snapshot installation image, because the 7.6 will not be able to correctly detect the keyboard (or trackpad) but this issue is already resolved in -current. The 7.6 installation works fine using an external USB keyboard, though.

If you chose to install from a miniroot image, make sure to also provide a known-working USB Ethernet adapter, as there’s currently no support for the wifi. Apart from that, all necessary hardware works to get the system installed, and no further special settings are necessary.

Multi-boot

Working with multiple operating systems on the same machine is possible, but a few notes about this:

The OpenBSD installer will install its standard bootloader into the default UEFI location on the EFI system partition (ESP): efi\boot\bootaa64.efi. This loader is overwritten everytime you upgrade OpenBSD, which can be quite often, if you’re tracking snapshots due to the currently limited hardware support.

In order to be able to boot another OS, let’s say Windows, an entry for the Windows Boot Manager (at \efi\microsoft\boot\bootmgfw.efi) needs to be added into the laptop’s NVRAM, but OpenBSD currently does not provide the tools to do so. You need resort to efibootmgr on Linux or bcdedit on Windows.

Once this is set-up, you can easily switch between operating systems using the firmware’s boot device selector without fear that an OS update will leave you stranded.

Overview

While the system boots and is generally usable, there are least two things that would hold me back from actively working with it:

  • The non-supported power management leads to the fan spinning nearly all the time (if you read my original review, this is a problem with Windows, too; but it is a little worse on OpenBSD)
  • X11 will only work with a slightly scaled resolution of 1360x855 pixels that is unpleasent to use and external displays do not work, too

All the other issues can be worked around (for example by using a USB wifi dongle) or are not that important for my use case.

Software support

I did not expect this part to be so easy, but there are only a few minor things that don’t seem to have OpenBSD/arm64 support, yet, and essentially everything “just works.” The system can be used for office and programming tasks or browsing the web. Browsers lack hardware acceleration, but even YouTube works — without audio, though.

Hardware support table

The following table is current as of 2024-10-25. I’ll try to update it on a semi-regular basis and will keep a changelog below.

ComponentWorks?Notes
AudioNo
Battery statusNo
BluetoothNoAttaches as a ugen device, but OpenBSD does not support Bluetooth. Can be disabled in the BIOS.
DisplayPort (via USB-C Alt Mode)No
EthernetThe system does not sport an ethernet port, but there’s something I did not try, yet: apparently has some functionality to share its MAC address with an external USB-C adapter.
Fingerprint sensorNo
Keyboard backlightLimitedBacklight works as expected and can be switched using Fn+Space, but there’s currently support to control it using wsconsctl.
HDMIuntested
HibernationNo
IR CameraNoNo support in OpenBSD at all.
NVMe SSDYesWD PC SN740 works fine
Power managementLimitedSome temperature sensors are available via sysctl, but the thermal management is currently only managed by the firmware which leads to higher than necessary fan noise.
Presense sensorNoNo support in OpenBSD at all.
Suspend/resumeNoThe system will try to suspend, but stay running. It will resume fine again, though
Thunderbolt 4Untested
TouchpadYesSupported by ihidev
TrackPointYesSupported by ihidev
USBYes
VideoLimitedThe system will run with a basic framebuffer at 1360x855 provided by minifb (???). Currently, there’s no way to set a different (ie. the native) resolution of the display, even when trying from an official UEFI shell prior to booting OpenBSD.
WebcamNo
WirelessNoSupport for the WCN7850 chipset is not yet ready, but a driver (qwz) was started by patrick@ in August 2024.

Changelog

  • 2024-10-18: Initial try with OpenBSD 7.6: Successful boot, but no keyboard or trackpad support.
  • 2024-10-21: Update to -current: Keyboard and now trackpad work.