HCL:ThinkpadX13s

Jump to: navigation, search

Lenovo Thinkpad X13s is an aarch64 laptop based on Qualcomm 8cx Gen3.

Technical details

  • CPU: Snapdragon® 8cx Gen 3 Compute Platform (3.00 GHz up to 3.00 GHz)
  • Display: 13.3" WUXGA (1920 x 1200) IPS
  • Memory: Up to 32GB LPDDR4x 4266MHz soldered down (dual channel)
  • Battery: Up to 28 hours* 49.5 Whr (Video playback)
    • Supports Rapid Charge
  • Storage: Up to 1TB PCIe SSD Gen 4
  • Graphics: Integrated Qualcomm® Adreno™ 690 Graphics
  • Security: TPM 2.0
  • Connectivity
    • WWAN*: Qualcomm Snapdragon X55 5G Sub6 Modem-RF System
    • WiFi 6E 802.11AX (2 x 2)
    • Bluetooth® 5.1 or above
  • Ports
    • 2 x USB-C 3.2 Gen 2
    • Headphone / mic combo
    • SIM slot
  • Please refer to the X13s official link for more technical details.

Notes & Prerequisites

  • The preload MSFT Windows is still required since a few configurations and bios updates still need to be applied via Windows due to limited Linux support from UEFI firmware.
  • You may have to shrink the SSD drive/volume space that Widnwos originally declared in order to install Linux. See shrink-a-basic-volume for more details.

UEFI Setup for Linux Boot

  • Upgrade your UEFI firmware to the newer versions which can support LINUX boot
    • v1.49 or later versions. The latest version tested: v1.58
  • Lenovo provides a specific option for booting LINUX via UEFI:
    • Press F1 during UEFI boot.
    • Select Config -> Enable the Linux Boot option.
    • Select Security -> Disable the Secure Boot option.
    • Save and restart.

Solving unexpected reset while booting openSUSE

In newer UEFI FW updates you may experience that system reset keeps happening either you run the openSUSE installer or the installed openSUSE tumbleweed. It could also happen when you reset the UEFI to the default state. Please try the following steps when it happens, otherwise please just skip this section.

  • Collect sc8280xp-lenovo-thinkpad-x13s.dtb from dtb-qcom-*.aarch64.rpm, you can find and download from the aarch64 tumbleweed repo
    • A command to extract files from a rpm:
      • rpm2cpio [rpm file] | cpio -idmv
  • Boot to Microsoft Windows and do the following steps:
    • Run `cmd` as administrator.
    • Run `diskpart`
    • Run `list volume` to check where the SYSTEM_DRV volume (FAT32) is.
    • select the SYSTEM_DRV volume, for example:
      • Run `select volume 1`
    • Run `assign` to give a letter to the volume, for example, `D`.
    • Run `exit`.
    • Copy the dtb file to the root of the SYSTEM_DRV volume
      • Run `copy sc8280xp-lenovo-thinkpad-x13s.dtb D:`
    • Reboot the laptop and make sure that UEFI setup tips for Linux Boot are applied.
    • Boot to openSUSE or installer.

Live Images

Live images are available for aarch64 and can be run on X13s (all flavors have been tested : Rescue, XFCE , KDE and GNOME images)

  • Download a live Tumbleweed ISO image from https://get.opensuse.org and then flash it to your USB stick (Using dd or RPi imager).
  • Enter the UEFI boot menu by pressing F12.
  • Select your USB disk as the boot entry.
  • Boot to grub and then edit the default entry by pressing "e".
    • add the following parameters on the kernel command line (linux xyz) and then press Ctrl+x:
arm64.nopauth iommu.passthrough=0 iommu.strict=0

ISO Installation

Geeko-white.png
Tumbleweed
https://download.opensuse.org/ports/aarch64/tumbleweed/iso/openSUSE-Tumbleweed-DVD-aarch64-Current.iso
Geeko-white.png
Tumbleweed
https://download.opensuse.org/ports/aarch64/tumbleweed/iso/openSUSE-Tumbleweed-NET-aarch64-Current.iso
  • Download an iso image from the following link and then dd to your USB stick.
  • Enter the UEFI boot menu by pressing F12.
  • Select your USB disk as the boot entry.
  • Boot to grub and then edit the Installation entry by pressing "e".
    • add the following parameters on the kernel command line and then press Ctrl+x:
arm64.nopauth iommu.passthrough=0 iommu.strict=0
  • Follow the steps from the openSUSE installer.
    • Note: See the section `Solving unexpected reset while booting openSUSE` if you are experiencing unexpected reset.

Alternative: JeOS EFI images

  • Download a generic EFI image from (Note that only minimal JeOS has been tested so far):
Geeko-white.png
Tumbleweed

JeOS-efi E20-efi XFCE-efi LXQT-efi KDE-efi X11-efi

  • Download a raw image from the link and then dd to your USB stick.
  • Copy the /boot/dtb/qcom/sc8280xp-lenovo-thinkpad-x13s.dtb from the linux fs (/boot/dtb/qcom, partition 3) to the root dir of EFI system partition (partition 1).
    • Note: ACPI for LINUX is not yet supported by Lenovo X13s so installing the device tree is required otherwise the system won't boot. The Lenovo UEFI loads the device-tree blob with some runtime DT overlays before jumping to grub2.
  • Power on the system and then enter the UEFI boot menu by pressing F12.
  • Select your USB disk as the boot entry and boot to grub and then edit the openSUSE Tumbleweed entry by pressing "e".
    • add the following parameters on the kernel command line and then press Ctrl+x:
arm64.nopauth iommu.passthrough=0 iommu.strict=0
    • Note: See the section `Solving unexpected reset while booting openSUSE` if you are experiencing unexpected reset.

Features

The features table below has been tested with kernel 6.6.2 and Firmware 1.58 on live images (Snapshot 20231126+).

  • Features working (tested):
    • Keyboard
    • WiFi
    • Display (on laptop screen)
    • 3D acceleration (Freedreno 690)
    • NVMe
    • USB (Still some bugs when rootfs is on USB - boo#1217314)
    • Audio (Speaker and Headphone / mic combo) - boo#1217412 (Snapshot 20231203+)
  • Features not yet available (or not working):
    • RTC - Detected but wrong date/time - Known upstream bug
    • Random MAC address
    • Bluetooth - Detected but not functional - Known upstream bug
    • Camera - Not detected - Known upstream bug
    • TPM - Not detected - Known upstream bug
    • Virtualization - Current UEFI firmware does not allow virtualization on Linux
  • Unstested features:
    • External Displays
    • SIM slot

Porting information are available here for the record.

Workarounds

  • Battery percentage is always 0% - boo#1216806
    • Please run the following commands to make it work.
# zypper in pd-mapper
# systemctl enable --now pd-mapper
# reboot

Reported/Solved Bugs

* Bugzilla