Jump to content

Lenovo ThinkPad X13s (lenovo-21bx): Difference between revisions

From postmarketOS Wiki
mNo edit summary
Halamix2 (talk | contribs)
mNo edit summary
 
(35 intermediate revisions by 6 users not shown)
Line 6: Line 6:
| imagecaption = Lenovo X13s running Sway
| imagecaption = Lenovo X13s running Sway
| releaseyear = 2022
| releaseyear = 2022
| category = testing
| category = community
| originalsoftware = Windows
| originalsoftware = Windows
| originalversion = 11
| originalversion = 11
| chipset = Qualcomm Snapdragon 8cx Gen 3 (SC8280XP)
| chipset = Qualcomm Snapdragon 8cx Gen 3 (SC8280XP)
| cpu = 3.0GHz 8C, 4x Kryo Prime + 4x Kryo Gold
| cpu = 4x 3.0GHz (Cortex-X1), 4x 2.4GHz (Cortex-A78)
| gpu = Adreno 690
| gpu = Adreno 690
| display = 1920x1200 IPS
| display = 1920x1200 IPS
Line 21: Line 21:
| status_usbnet = -
| status_usbnet = -
| status_flashing = -
| status_flashing = -
| status_touch = N
| status_touch = Y
| status_screen = Y
| status_screen = Y
| status_wifi = Y
| status_wifi = Y
Line 28: Line 28:
| status_battery = Y
| status_battery = Y
| status_3d = Y
| status_3d = Y
| status_audio = P
| status_audio = Y
| status_bluetooth = Y
| status_bluetooth = Y
| status_camera = N
| status_camera = P
| status_gps = -
| status_gps = P
| status_mobiledata = N
| status_mobiledata = Y
| status_sms = -
| status_sms = -
| status_calls = -
| status_calls = -
| status_otg = N
| status_otg =  
| status_emmc = Y
| status_nfc = -
| status_nfc = -
<!-- Sensors -->
<!-- Sensors -->
Line 42: Line 43:
| status_light = -
| status_light = -
| status_proximity = -
| status_proximity = -
| status_hall =  
| status_hall = Y
| status_barometer = -
| status_barometer = -
| status_powersensor = -
| status_powersensor = Y
<!-- Misc -->
<!-- Misc -->
| status_cameraflash = -
| status_cameraflash = -
Line 51: Line 52:
| status_usba = -
| status_usba = -
| status_hdmidp = Y
| status_hdmidp = Y
| status_sdcard = -
| status_irtx = -
| status_irtx = -
| status_irrx = -
| status_irrx = -
Line 60: Line 62:
| booting = yes
| booting = yes
| status = unknown
| status = unknown
| whet_dhry = 20658.4
}}
}}
== Introduction ==
Model numbers start with either 21bx or 21by, this page should apply to both. Note that some models have a touchscreen, whilst others do not. Models also differ in 8GB, 16GB and 32GB RAM, and in 256GB, 512GB or 1TB SDD size.


== Contributors ==
== Contributors ==
Line 72: Line 79:
<!-- you can use {{My devices}} on your profile page to show table with all your devices -->
<!-- you can use {{My devices}} on your profile page to show table with all your devices -->


== How to enter flash mode ==
== Installation ==


== Installation ==
Make the following changes in the EFI setup application:
Use [[pmbootstrap]] to build your own installation image.
 
{| class="wikitable" style="margin:auto"
|-
! EFI Config Option !! Value
|-
| Secure Boot || Disabled
|-
| Linux Boot || Enabled
|}
 
 
{{note|The <code>Linux Boot</code> option (In EFI BIOS: Config -> Linux -> Linux Boot) must be enabled, see {{MR|5027|pmaports}} for more info.}}
 
Use [[pmbootstrap]] to build your own installation image, the regular procedure is:


<!-- Expand this with the commands needed for flashing, add --sdcard to install if it makes sense etc. -->
<syntaxhighlight lang="shell-session">
<source lang="shell-session">
$ pmbootstrap init
$ pmbootstrap init
$ pmbootstrap install --fde
$ pmbootstrap install --fde
</source>
</syntaxhighlight>
 
For this device, the most straight forward way to install pmOS to the local nvme disk, at least until [[ondev2]] is ready, 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 then looks something like this:
 
<syntaxhighlight lang="shell-session">
$ pmbootstrap install --disk /dev/<usb disk> --add pmbootstrap
# Boot the usb disk on the laptop
$ pmbootstrap init && pmbootstrap install --fde --disk /dev/nvme0n1
</syntaxhighlight>
 
== WWAN / Mobile Data ==
 
With {{MR|4718|pmaports}}, 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:
 
<syntaxhighlight lang="shell-session">
$ sudo ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/*
</syntaxhighlight>
 
== 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:
 
<syntaxhighlight lang="shell-session">
$ mmcli -m 0 --location-enable-gps-raw --location-enable-gps-nmea
successfully setup location gathering
$ watch mmcli -m 0 --location-get
</syntaxhighlight>
 
It might be working fine on UIs that configure/start geoclue by default, that's TBD.
 
== Camera ==
 
Camera should work out of the box in postmarketOS. The Spectra DSP is not supported so the RAW images have to be processed on the CPU using soft IPA, which gives the image a yellowish tint. The libcamera developers know about this.
 
* [https://gitlab.freedesktop.org/camera/libcamera-softisp Libcamera with softIPA]
<syntaxhighlight lang="shell-session">
 
$ 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
</syntaxhighlight>
 
The Black and White camera used for Facial Authentication (Windows Hello) is not yet supported.
 
* [https://gitlab.freedesktop.org/camera/libcamera-softisp/-/issues/4 Support the IR Camera OV9734]
 
== Audio ==
 
Audio works out-of-the-box with the combination pipewire, pipewire-pulse and wireplumber.
 
There may be some audio artifacts, especially whilst pavucontrol is running.
 
== Known issues ==
 
A list of known issues can be found [https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/?sort=closed_at_desc&state=opened&label_name%5B%5D=device-lenovo-21bx&first_page_size=20 in the pmaports repository]


<!-- add more sections below as necessary, e.g. WiFi, photos, ... -->
== Magic Sysrq ==
 
The Lenovo keyboard shortcuts document mentions using <code>Fn+S</code> to type <code>SysRq</code>, however it is much more reliable to hold <code>Alt</code>, press and release <code>PrtSc</code>, then continue with the magic sysrq commands. You must continue holding <code>Alt</code> when entering magic sysrq commands.


== See also ==
== See also ==
<!--
 
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):
* [https://download.lenovo.com/pccbbs/pubs/tp_13s_gen1/ug/html_en/index.html#t=en%2FUse_the_keyboard_shortcuts.html%23SpecialKeysForE420-FD0FF3311&rhtocid=_4_1_1 Keyboard shortcuts / bindings]
* {{MR|CHANGEME|pmaports}} Initial merge request
 
* {{issue|CHANGEME|pmaports}} Some related issue
* [https://github.com/jhovold/linux Kernel tree with WIP mainline patches (Johan Hovold)]
You can also add normal web links:
* [https://github.com/jhovold/linux/wiki/X13s Lenovo Thinkpad X13s Kernel Status (Johan Hovold)]
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]
 
-->
* [https://www.ifixit.com/Document/A1FreJTcrhGvcnEQ/x13s_gen1_hmm_en.pdf Hardware maintenance manual]
<!--
 
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.
* [https://gitlab.com/TheOneWithTheBraid/x13s-firmware-update Installing EFI firmware updates on the Thinkpad x13s, without Windows]
* {{Device package|DEVICE_CODENAME}}
 
* {{Kernel package|DEVICE_CODENAME}}
* [https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x13s-type-21bx-21by/downloads/driver-list/component?name=BIOS%2FUEFI Firmware download, from Lenovo.com]
-->
 
* [https://git.codelinaro.org/clo/ath-firmware/ath11k-firmware.git Staged linux-firmware updates, from Linaro]
 
* {{Device package|lenovo-21bx|community}}
* {{Kernel package|lenovo-21bx|community}}

Latest revision as of 11:23, 1 February 2025

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
Works
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
SATA/eSATA
No data
USB OTG
No data
HDMI/DP
Works
Sensors
Hall Effect
Works
Power Sensor
Works


Introduction

Model numbers start with either 21bx or 21by, this page should apply to both. Note that some models have a touchscreen, whilst others do not. Models also differ in 8GB, 16GB and 32GB RAM, and in 256GB, 512GB or 1TB SDD size.

Contributors

Users owning this device

  • Craftyguy (Notes: Daily driver laptop (2TB SSD upgrade))
  • Jja2000 (Notes: Daily driver laptop)
  • Kbingham
  • KurtisHanna (Notes: 32GB Ram version)
  • Linmob (Notes: postmarketOS edge)
  • Marlock (Notes: Daily driver laptop (Manjaro ARM/Windows 11 dualboot))
  • Proycon (Notes: 21bys03y00, pmos edge, sxmo, riverwm)


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 (In EFI BIOS: Config -> Linux -> Linux Boot) must be enabled, see pmaports!5027 for more info.

Use pmbootstrap to build your own installation image, the regular procedure is:

$ pmbootstrap init
$ pmbootstrap install --fde

For this device, the most straight forward way to install pmOS to the local nvme disk, at least until ondev2 is ready, 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 then looks something like this:

$ pmbootstrap install --disk /dev/<usb disk> --add pmbootstrap
# Boot the usb disk on the laptop
$ pmbootstrap init && pmbootstrap install --fde --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 should work out of the box in postmarketOS. The Spectra DSP is not supported so the RAW images have to be processed on the CPU using soft IPA, which gives the image a yellowish tint. The libcamera developers know about this.

$ 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.

Audio

Audio works out-of-the-box with the combination pipewire, pipewire-pulse and wireplumber.

There may be some audio artifacts, especially whilst pavucontrol is running.

Known issues

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

Magic Sysrq

The Lenovo keyboard shortcuts document mentions using Fn+S to type SysRq, however it is much more reliable to hold Alt, press and release PrtSc, then continue with the magic sysrq commands. You must continue holding Alt when entering magic sysrq commands.

See also