From Fedora Project Wiki

Revision as of 22:43, 17 December 2023 by Ausil (talk | contribs) (update now that rawhide is bootable without filesystem modifications)

Page to keep track of Linux support development for Thinkpad X13s (SoC codename sc8280xp), the first Thinkpad with ARM CPU.

Most of following informations come from #aarch64-laptops on OFTC, #fedora-arm on Libera.chat and arm[AT]lists.fedoraproject.org. Upstream infos change on daily basis, so this page may be outdated, therefore read it with pinch of salt / cum grano salis.

Bootable images

Fedora Rawhide images are bootable as of the 15th of December, 2023. There are, unfortunately some boot arguments that need to be added to boot successfully

  • The kernel must be booted with arm64.nopauth clk_ignore_unused pd_ignore_unused rd.driver.blacklist=msm
  • A recent firmware must be on the machine, and the linux/DT mode must be selected in the FW menus.
    • Recommend minimum version:
      • Version: N3HET84W (1.56 )
  • A 6.5 or newer device tree must be placed on the ESP of the internal NVMe disk and named sc8280xp-lenovo-thinkpad-x13s.dtb
    • ex: /boot/efi/sc8280xp-lenovo-thinkpad-x13s.dtb
    • as a workaround you can add a devicetree line in grub to load the dtb until it can be put in place on the ESP
  • to boot from USB you need to add modprobe.blacklist=qcom_q6v5_pas to the boot arguments, this keeps the USB from being reset and the storage device being renamed mid boot.

Once the system is installed you need to install pd-mapper and enable the pd-mapper service to get battery charge reporting working

  • sudo dnf install -y pd-mapper; sudo systemctl enable --now pd-mapper.service
    • Charging may not work at all though any number of USB-C hubs

Anaconda persists module.blacklist boot arguments to the installed system in order for pd-mapper to run properly we need to remove /etc/modprobe.d/anaconda-denylist.conf and regenerate the initrd with sudo dracut-f to enable qcom_q6v5_pas to be loaded automatically.

Bluetooth

By default there is no Bluetooth mac address set. You can manually set an address with btmgmt. e.g., sudo btmgmt public-addr F4:A8:0D:30:A3:47

To make it just work, copy this file to /etc/systemd/system/bluetooth.service.d/override.conf (It is courteous to use your own public-addr, put a random string of numbers to make it unique.)

[Service]
ExecStartPre=/bin/bash -c 'sleep 5 && yes | btmgmt public-addr 00:24:81:17:62:36'
# Blank ExecStart line to clear the service file, overrides are additive.
ExecStart=
ExecStart=/usr/lib/bluetooth/bluetoothd

Touch Screen

There is some probe defer issue to get touch screen bound to i2c_hid_of driver. To workaround temporarily run sudo echo 4-0010 > /sys/bus/i2c/drivers/i2c_hid_of/bind to make it persit install the file at https://github.com/ironrobin/x13s-alarm/blob/trunk/x13s-touchscreen-udev/72-x13s-touchscreen.rules in /etc/udev/rules.d/

5G Modem

While waiting on a new release of ModemManager we can take the following steps

sudo ln -s 105b /usr/share/ModemManager/fcc-unlock.available.d/105b\:e0c3
sudo mkdir -p /etc/ModemManager/fcc-unlock.d
sudo ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/*

Virtualization

Virtualization is not yet available. The UEFI is not yet exposing the EL2 (exception level) which is required to run VMs

Webcam

Not working

Similar pages

https://github.com/ironrobin/archiso-x13s/wiki/Feature-Support