From Fedora Project Wiki

(update now that rawhide is bootable without filesystem modifications)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Page to keep track of Linux support development for Thinkpad X13s (SoC codename sc8280xp), the first Thinkpad with ARM CPU.
Page to keep track of Linux support development for Thinkpad X13s (SoC codename sc8280xp), the first Thinkpad with an 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.
Most of the following information comes from #aarch64-laptops on OFTC, #fedora-arm on Libera.chat and arm[AT]lists.fedoraproject.org. Upstream information changes daily, so this page may be outdated.


==== Bootable images ====
==== 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
Fedora Rawhide images are bootable as of the 15th of December, 2023, with some additional user interaction.
* The kernel must be booted with `arm64.nopauth clk_ignore_unused pd_ignore_unused rd.driver.blacklist=msm`
* 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.
* A recent firmware must be on the machine, and the linux/DT mode must be selected in the FW menus.
Line 11: Line 11:
* 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
* 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
** 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
** As a workaround, 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.
** [https://wiki.debian.org/InstallingDebianOn/Thinkpad/X13s#Install_Device_Tree_Blob_on_the_EFI_System_Partition Debian has instructions on how to do this from windows]
* To boot from USB, `modprobe.blacklist=qcom_q6v5_pas` must be added to the boot arguments. This keeps the USB from being reset and the storage device from 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
*Once the system is running, installing the [https://copr.fedorainfracloud.org/coprs/jlinton/x13s/ x13s copr], will pull in the remaining dependencies and correct a few configuration items:
* `sudo dnf install -y pd-mapper; sudo systemctl enable --now pd-mapper.service`
** <pre>dnf copr enable jlinton/x13s; dnf install x13s</pre>
** Charging may not work at all though any number of USB-C hubs
*** Reboot
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.  
 
* After major kernel updates, it is probably wise for the time being to run
** <pre>cp /boot/dtb-`uname -r`/qcom/sc8280xp-lenovo-thinkpad-x13s.dtb /boot/efi </pre>
 
==== Known Problems ====
* Audio works but is quiet
* Audio works but is quiet
* TPM support is missing
* TPM support is missing
* Try the https://fedoraproject.org/wiki/Thinkpad_X13s#Similar_pages link to get a few more things working.
* 5G Modem
==== Bluetooth ====
** Need to have ModemManager-1.22.0-1.fc40.aarch64 or newer installed, then follow the [https://modemmanager.org/docs/modemmanager/fcc-unlock/ documented] steps to unlock the modem
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`
* Virtualization is not yet available. The UEFI is not yet exposing [https://developer.arm.com/documentation/102412/0102/Privilege-and-Exception-levels the EL2 (exception level)], which is required to run VMs
 
** There has been some work done to unlock it with https://github.com/TravMurav/slbounce. YMMV
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.)
* The system does not suspend correctly so you need to poweroff if leaving unused
 
* Wifi address is randomized after each boot
<pre>
[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
</pre>
==== 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
<pre>
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/*
</pre>
==== Virtualization ====
Virtualization is not yet available. The UEFI is not yet exposing [https://developer.arm.com/documentation/102412/0102/Privilege-and-Exception-levels the EL2 (exception level)] which is required to run VMs
 
==== Webcam ====
Not working


==== Similar pages ====
==== Similar pages ====
https://github.com/ironrobin/archiso-x13s/wiki/Feature-Support
* https://github.com/jhovold/linux/wiki/X13s
* https://github.com/ironrobin/archiso-x13s/wiki/Feature-Support
* https://wiki.debian.org/InstallingDebianOn/Thinkpad/X13s
* https://en.opensuse.org/HCL:ThinkpadX13s

Latest revision as of 22:14, 9 April 2024

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

Most of the following information comes from #aarch64-laptops on OFTC, #fedora-arm on Libera.chat and arm[AT]lists.fedoraproject.org. Upstream information changes daily, so this page may be outdated.

Bootable images

Fedora Rawhide images are bootable as of the 15th of December, 2023, with some additional user interaction.

  • 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
  • To boot from USB, modprobe.blacklist=qcom_q6v5_pas must be added to the boot arguments. This keeps the USB from being reset and the storage device from being renamed mid-boot.
  • Once the system is running, installing the x13s copr, will pull in the remaining dependencies and correct a few configuration items:
    • dnf copr enable jlinton/x13s; dnf install x13s
      • Reboot
  • After major kernel updates, it is probably wise for the time being to run
    • cp /boot/dtb-`uname -r`/qcom/sc8280xp-lenovo-thinkpad-x13s.dtb /boot/efi 

Known Problems

  • Audio works but is quiet
  • TPM support is missing
  • 5G Modem
    • Need to have ModemManager-1.22.0-1.fc40.aarch64 or newer installed, then follow the documented steps to unlock the modem
  • Virtualization is not yet available. The UEFI is not yet exposing the EL2 (exception level), which is required to run VMs
  • The system does not suspend correctly so you need to poweroff if leaving unused
  • Wifi address is randomized after each boot

Similar pages