wezm.net/v2/content/posts/2024/linux-on-yoga-7x-snapdragon/index.md

140 lines
6 KiB
Markdown
Raw Permalink Normal View History

2024-12-01 04:07:24 +00:00
+++
title = "Ubuntu Linux on Snapdragon X Laptop (Lenovo Yoga Slim 7x)"
date = 2024-12-01T11:17:03+10:00
# template = "yoga7x.html"
# [extra]
# updated = 2024-07-26T10:34:50+10:00
+++
{{ figure(image="posts/2024/linux-on-yoga-7x-snapdragon/fastfetch.png",
link="posts/2024/linux-on-yoga-7x-snapdragon/fastfetch.png",
resize_width=1600,
alt="Screenshot of fastfetch output in a terminal window. The details indicate that it's running Ubuntu oracular 24.10 on aarch64.",
caption="Ubuntu running on Yoga Slim 7x") }}
Over the course of the last few months some fine folks in the Linux community
have been plugging away implementing support for Qualcomm Snapdragon X based
ARM laptops. Recently Canonical published [Ubuntu 24.10
Concept][ubuntu-concept] for testing on these laptops, which I
installed and tested on my Lenovo Yoga Slim 7x.
<!-- more -->
### Installation
2024-12-03 10:26:19 +00:00
{% aside(title="Want a full review?", float="right") %}
See: [A Developer's Review of a Snapdragon X Laptop (Lenovo Yoga Slim 7x)](@/posts/2024/linux-on-yoga-7x-snapdragon/index.md)
for my detailed review of this laptop.
{% end %}
2024-12-01 04:07:24 +00:00
Installation alongside Windows was almost as straightforward as a normal Ubuntu
install. It booted to a graphical live environment with working Wi-Fi.
The main issue was that the installer application in the live environment was only
rendering the bottom quarter of its window when display scaling was set to 200%
(which is the expected value for the display and was automatically applied at
boot). Changing it to 100% made everything tiny, but allowed me to complete the
install.
As per the notes in the forum post I installed and ran `qcom-firmware-extract`
after installation to fetch and install firmware blobs from the Windows
partition, and then rebooted. This appeared to fix battery level reporting and
possibly hardware video acceleration.
{{ figure(image="posts/2024/linux-on-yoga-7x-snapdragon/qcom-firmware-extract.png",
link="posts/2024/linux-on-yoga-7x-snapdragon/qcom-firmware-extract.png",
resize_width=1600,
alt="Screenshot of a terminal showing the output from running qcom-firmware-extract. It says 'extracting firmware' followed by a list of files, and ends with 'Building package qcom-x1e-firmware-extracted_20241201_arm64'.",
caption="Running qcom-firmware-extract") }}
### Usage
{{ figure(image="posts/2024/linux-on-yoga-7x-snapdragon/system-details.png",
link="posts/2024/linux-on-yoga-7x-snapdragon/system-details.png",
resize_width=1600,
alt="Screenshot of System Details in GNOME settings indicating that GNOME is running on a Lenovo Yoga Slim 7 14Q8X9 with 32Gb RAM, 1Tb disk, GNOME 47 on Wayland. The Processor section is blank.",
caption="System Details in GNOME Settings") }}
I have not spent a huge amount of time with this installation as Ubuntu isn't my
distro of choice, so I don't want to invest much time setting it up. I did
try most common functionality to get an idea of what works though.
#### Wi-Fi
I was about to connect to my 5Ghz AP without issue. A [speed test] showed very
similar results between Windows and Linux (although Linux was a bit faster):
- Linux: 137 Mbps down, 47 Mbps up
- Windows: 131 Mbps down, 45 Mbps up
#### Bluetooth
I was able to pair and use some Sennheiser Bluetooth headphones.
#### Graphics
The display works fine. I was able to change it to run at the full 90Hz in the
GNOME settings. The Wayland based GNOME desktop appears to be using GPU
acceleration and runs smoothly.
{{ figure(image="posts/2024/linux-on-yoga-7x-snapdragon/glxgears.png",
link="posts/2024/linux-on-yoga-7x-snapdragon/glxgears.png",
resize_width=1600,
alt="Screenshot showing glxgears running and reporting 89fps in the terminal.",
caption="glxgears running at 90Hz") }}
[glxinfo](glxinfo.txt) and [vulkaninfo](vulkaninfo.txt) both suggest hardware
graphics acceleration is available. However, Firefox reports `llvmpipe` in
`about:support` and drops frames playing 4K 60Hz video on YouTube, same with
Chromium. Despite `llvmpipe` Firefox runs smoothly.
It appears that hardware video decoding via is not supported yet (`vainfo`
doesn't find a suitable device).
#### Audio
The built-in speakers didn't work, with the only output device being a dummy device.
However, pairing Bluetooth headphones worked as expected. I didn't test microphones.
#### Input Devices
The keyboard and trackpad work, including tap-to-click out of the box on the
trackpad. The brightness and volume controls work on the keyboard.
#### Power Management
As mentioned above, installing and running `qcom-firmware-extract` copies
firmware from the Windows installation and fixed battery level reporting. I
can't comment on battery life yet but it did seem to run a bit warmer than
Windows, although not as hot as
[my early testing of OpenBSD](@/posts/2024/yoga-7x-snapdragon-developer-review/index.md#non-windows-operating-systems).
#### Other
I didn't try the USB ports. Suspending _appeared_ to work: the screen turned
off, however the LED on the power switch did not start pulsing like it does in
Windows. More testing required here.
### Conclusion
Linux support for these laptops is coming along quite nicely, and if you're
willing to put up with a few rough edges Ubuntu is quite usable. No doubt
things will continue to improve.
There's been working happen in other distros too. Relevant to my interests
[Jami Kettunen has also being working on X1E support in Chimera Linux][JamiKettunen]
and has that running on a HP OmniBook X. It's on my TODO list to try out Jami's
work on my Yoga 7x.
{{ figure(image="posts/2024/linux-on-yoga-7x-snapdragon/chimera-kde-plasma-x1e.png",
link="posts/2024/linux-on-yoga-7x-snapdragon/chimera-kde-plasma-x1e.png",
resize_width=1600,
alt="About this system in KDE Plasma showing Chimera Linux running on Snapdragon X hardware.",
caption="About this system in KDE Plasma showing Chimera Linux running on Snapdragon X hardware.") }}
[JamiKettunen]: https://github.com/JamiKettunen/cports/tree/x1e
[ubuntu-concept]: https://discourse.ubuntu.com/t/ubuntu-24-10-concept-snapdragon-x-elite/48800/1
[speed test]: https://www.speedtest.net/