Lenovo ThinkPad X13s (lenovo-21bx)

From postmarketOS Wiki
Lenovo ThinkPad X13s
Lenovo X13s running Sway
Lenovo X13s running Sway
Manufacturer Lenovo
Name ThinkPad X13s
Codename lenovo-21bx
Released 2022
Type laptop
Hardware
Chipset Qualcomm Snapdragon 8cx Gen 3 (SC8280XP)
CPU 4x 3.0GHz (Cortex-X1), 4x 2.4GHz (Cortex-A78)
GPU Adreno 690
Display 1920x1200 IPS
Storage 256GB, 512GB, 1TB
Memory 8GB, 16GB, 32GB
Architecture aarch64
Software
Original software Windows
Original version 11
postmarketOS
Category community
Pre-built images yes
Unixbench Whet/Dhry score 20658.4
Features
Internal storage
Works
Battery
Works
Screen
Works
Touchscreen
Keyboard
Works
Touchpad
Works
Multimedia
3D Acceleration
Works
Audio
Works
Camera
Partial
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Partial
Modem
Mobile data
Works
Miscellaneous
FDE
Works
USB OTG
HDMI/DP
Works
Sensors
Hall Effect
Works
Power Sensor
Works


Contributors

Users owning this device

  • Craftyguy (Notes: Daily driver laptop (2TB SSD upgrade))
  • Jja2000 (Notes: Daily driver laptop)
  • Kbingham
  • KurtisHanna (Notes: 32GB Ram version)
  • Marlock (Notes: Daily driver laptop (Manjaro ARM/Windows 11 dualboot))


Installation

Make the following changes in the EFI setup application:

EFI Config Option Value
Secure Boot Disabled
Linux Boot Enabled


Note The Linux Boot option must be enabled, see pmaports!5027 for more info.

Use pmbootstrap to build your own installation image.

$ pmbootstrap init
$ pmbootstrap install --fde

The most straight forward way to install pmOS to the local nvme disk, as least until ondev2, is to build a USB drive with a pmOS install, boot it, then use pmbootstrap to build/flash an image to the nvme disk. The process looks something like this:

$ pmbootstrap install --disk /dev/<usb disk> --add pmbootstrap
# Boot the usb disk on the laptop
$ pmbootstrap init && pmboostrap install --disk /dev/nvme0n1

WWAN / Mobile Data

With pmaports!4718, mobile data should be working after you enable the FCC unlock script for the modem. The most straight forward way to do this is by just enabling all scripts by:

$ sudo ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/*

GPS

Some initial support for GPS seems to be working, though I haven't been able to get geoclue to use it as a source yet:

$ mmcli -m 0 --location-enable-gps-raw --location-enable-gps-nmea
successfully setup location gathering
$ watch mmcli -m 0 --location-get

It might be working fine on UIs that configure/start geoclue by default, that's TBD.

Camera

Camera is now supported with custom kernel branch with camss patches and custom libcamera. The Spectra DSP is not supported so the RAW images have to be processed on the CPU using soft IPA.

$ cam -l
[3:32:07.798064350] [21815]  INFO Camera camera_manager.cpp:284 libcamera v0.2.0+102-99a77ff7
[3:32:07.805651580] [21818]  WARN CameraSensor camera_sensor.cpp:501 'ov5675 27-0010': Rotation control not available, default to 0 degrees
[3:32:07.813241831] [21818] ERROR IPAProxy ipa_proxy.cpp:149 Configuration file 'ov5675.yaml' not found for IPA module 'simple'
Available cameras:
1: Internal front camera (/base/soc@0/cci@ac4c000/i2c-bus@1/camera@10)
$ qcam

The Black and White camera used for Facial Authentication (Windows Hello) is not yet supported.

Known issues

A list of known issues can be found in the pmaports repository


See also