Tuesday, December 12, 2023

[fedora-arm] Lenovo Thinkpad X13s Black Screen

Hey folks,

I recently purchased the X13s Qualcomm Arm laptop. I am very excited to try Linux on it! I'd like to use Fedora to align with what I use for work. The [Fedora Wiki](https://fedoraproject.org/wiki/Thinkpad_X13s) page appears to be out-of-date for this laptop and I would be happy to help update it once I get it working on my end.

From what I've read online, Linux support for it is good these days with many users reporting success with Arch Linux, Debian (Armbian, specifically), Ubuntu, and even Fedora running on it. However, I am having issues with Fedora and always end up with a black screen once the GPU gets loaded. I have tested with Fedora 39 (fully updated with the latest firmware and Linux 6.6) and Rawhide/40 (Linux 6.7.0-rc4 currently). Both GNOME (Workstation) and Xfce (Spin) desktop builds have been tested (I can never actually get that far to see them, though).

From my research, these are all of the steps required to get the laptop to even boot (kernel modules are missing from the initramfs and additional boot arguments are needed).

$ export DEVICE=sda
$ sudo -E mount -t btrfs -o subvol=root /dev/${DEVICE}3 /mnt
$ sudo -E mount -t btrfs -o subvol=home /dev/${DEVICE}3 /mnt/home
$ sudo -E mount -t ext4 /dev/${DEVICE}2 /mnt/boot
$ sudo -E mount -t vfat /dev/${DEVICE}1 /mnt/boot/efi
$ sudo mount -t proc none /mnt/proc
$ sudo mount --rbind /dev /mnt/dev
$ sudo mount --rbind /sys /mnt/sys
$ sudo mkdir -p /mnt/run/systemd/resolve/
$ echo "nameserver" | sudo tee /mnt/run/systemd/resolve/stub-resolv.conf
$ sudo nano /mnt/etc/dracut.conf.d/20_thinkpad-x13s.conf
force_drivers+=" nvme phy_qcom_qmp_pcie i2c_hid_of i2c_qcom_geni leds_qcom_lpg pwm_bl qrtr pmic_glink_altmode gpio_sbu_mux phy_qcom_qmp_combo panel-edp msm phy_qcom_edp i2c_hid_of i2c_qcom_geni qcom_q6v5_pas usb_storage uas "
$ sudo chroot /mnt dracut --regenerate-all --force
$ sudo nano /mnt/etc/default/grub
GRUB_CMDLINE_LINUX="efi=noruntime clk_ignore_unused pd_ignore_unused arm64.nopauth iommu.passthrough=0 iommu.strict=0 pcie_aspm.policy=powersupersave console=tty1 splash plymouth.ignore-serial-consoles loglevel=3"
$ sudo chroot /mnt grub2-mkconfig -o /boot/grub2/grub.cfg
$ sudo sync

Vanilla/upstream Fedora Arm raw image builds do not even boot without these tweaks. With these tweaks, I can boot to the GRUB menu and eventually see the Plymouth boot screen which shows the Fedora logo and then a loading spinner. When it switches to a graphical environment, the screen flashes and goes blank. I also seem to be unable to switch to a TTY console which could be due to the F keys not working properly.

There is a kernel thread [here](https://lore.kernel.org/all/ZUidVUomjf8GMzrG@hovoldconsulting.com/T/) that explains how to get the stable Fedora 39 working. I did all of the steps but the same thing happened: the screen ends up being black once the system is fully booted up. I have tested using USB and the internal drive. The USB, despite historically being unreliable, has been more reliable in my testing. I believe those issues with low power voltage for USB devices have been fixed.

Does anyone have any advice on how to get graphics working so I can get to the desktop environment? I feel so close to a solution but I seem to be missing a piece of the puzzle here. Thank you for any insight you may have!

Research references:
- [Thinkpad X13s - Fedora Project Wiki](https://fedoraproject.org/wiki/Thinkpad_X13s)
- [ThinkPad X13s - Gentoo wiki](https://wiki.gentoo.org/wiki/ThinkPad_X13s)
- [External display on the x13s?](https://lore.kernel.org/all/ZUidVUomjf8GMzrG@hovoldconsulting.com/T/)
- [HCL:ThinkpadX13s - openSUSE Wiki](https://en.opensuse.org/HCL:ThinkpadX13s)

Luke Short
arm mailing list -- arm@lists.fedoraproject.org
To unsubscribe send an email to arm-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/arm@lists.fedoraproject.org
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue

No comments:

Post a Comment