Lenovo ThinkPad X13s (lenovo-21bx): Difference between revisions
m →Installation: fixed typo |
mNo edit summary |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 21: | Line 21: | ||
| status_usbnet = - | | status_usbnet = - | ||
| status_flashing = - | | status_flashing = - | ||
| status_touch = | | status_touch = Y | ||
| status_screen = Y | | status_screen = Y | ||
| status_wifi = Y | | status_wifi = Y | ||
Line 64: | Line 64: | ||
| whet_dhry = 20658.4 | | 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 89: | Line 93: | ||
{{note|The <code>Linux Boot</code> option must be enabled, see {{MR|5027|pmaports}} for more info.}} | {{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 | Use [[pmbootstrap]] to build your own installation image, the regular procedure is: | ||
< | <syntaxhighlight lang="shell-session"> | ||
$ pmbootstrap init | $ pmbootstrap init | ||
$ pmbootstrap install --fde | $ pmbootstrap install --fde | ||
</ | </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 | $ pmbootstrap install --disk /dev/<usb disk> --add pmbootstrap | ||
# Boot the usb disk on the laptop | # Boot the usb disk on the laptop | ||
$ pmbootstrap init && pmbootstrap install --disk /dev/nvme0n1 | $ pmbootstrap init && pmbootstrap install --fde --disk /dev/nvme0n1 | ||
</ | </syntaxhighlight> | ||
== WWAN / Mobile Data == | == WWAN / Mobile Data == | ||
Line 110: | Line 114: | ||
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: | 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/* | $ sudo ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/* | ||
</ | </syntaxhighlight> | ||
== GPS == | == GPS == | ||
Line 118: | Line 122: | ||
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: | 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 | $ mmcli -m 0 --location-enable-gps-raw --location-enable-gps-nmea | ||
successfully setup location gathering | successfully setup location gathering | ||
$ watch mmcli -m 0 --location-get | $ watch mmcli -m 0 --location-get | ||
</ | </syntaxhighlight> | ||
It might be working fine on UIs that configure/start geoclue by default, that's TBD. | It might be working fine on UIs that configure/start geoclue by default, that's TBD. | ||
Line 128: | Line 132: | ||
== Camera == | == Camera == | ||
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. | ||
The Spectra DSP is not supported so the RAW images have to be processed on the CPU using soft IPA. | |||
* [https://gitlab.freedesktop.org/camera/libcamera-softisp Libcamera with softIPA] | * [https://gitlab.freedesktop.org/camera/libcamera-softisp Libcamera with softIPA] | ||
< | <syntaxhighlight lang="shell-session"> | ||
$ cam -l | $ cam -l | ||
[3:32:07.798064350] [21815] INFO Camera camera_manager.cpp:284 libcamera v0.2.0+102-99a77ff7 | [3:32:07.798064350] [21815] INFO Camera camera_manager.cpp:284 libcamera v0.2.0+102-99a77ff7 | ||
Line 141: | Line 144: | ||
1: Internal front camera (/base/soc@0/cci@ac4c000/i2c-bus@1/camera@10) | 1: Internal front camera (/base/soc@0/cci@ac4c000/i2c-bus@1/camera@10) | ||
$ qcam | $ qcam | ||
</ | </syntaxhighlight> | ||
The Black and White camera used for Facial Authentication (Windows Hello) is not yet supported. | 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] | * [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 == | == Known issues == | ||
Line 151: | Line 160: | ||
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] | 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] | ||
== 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 == | ||
Line 157: | Line 168: | ||
* [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] | * [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] | ||
* [https://github.com/jhovold/linux Kernel tree with WIP mainline patches] | * [https://github.com/jhovold/linux Kernel tree with WIP mainline patches (Johan Hovold)] | ||
* [https://github.com/jhovold/linux/wiki/X13s Lenovo Thinkpad X13s Kernel Status (Johan Hovold)] | |||
* [https://www.ifixit.com/Document/A1FreJTcrhGvcnEQ/x13s_gen1_hmm_en.pdf Hardware maintenance manual] | * [https://www.ifixit.com/Document/A1FreJTcrhGvcnEQ/x13s_gen1_hmm_en.pdf Hardware maintenance manual] |
Latest revision as of 11:23, 1 February 2025
![]() 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 |
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
Installation
Make the following changes in the EFI setup application:
EFI Config Option | Value |
---|---|
Secure Boot | Disabled |
Linux Boot | Enabled |
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.