Hello everyone
This is a small post that I think could be useful to track Linux/Bluefin support on the latest Asus laptops with AMD Ryzen AI chips.
I bought an Asus Vivobook S 14 OLED (M5406W) this week, and successfully managed to install Bluefin using this link to get an image (thanks Jorge) https://download.projectbluefin.io/bluefin-asus-latest.iso
You need Kernel 6.10+ and mesa 24.2+ according to this Phoronix article: https://www.phoronix.com/review/amd-ryzen-ai-9-hx-370.
I will list the issues and fixes I’ve found.
TL;DR: surprisingly, it works pretty well. It should get better by the end of the year with newer kernels and Gnome 47.
Installation
- Installation wasn’t uneventful: I had to speedrun it because after some time the screen would completely freeze, thus forcing me to reboot and start again. Also there were some really funky rendering glitches.
- I know dual boot isn’t supported. Still, I followed these instructions and it has been working so far: Dual boot / Better support in Anaconda for existing EFI setup · Issue #284 · fedora-silverblue/issue-tracker · GitHub.
- Also, disable Secure Boot, install, re-enable Secure Boot and enroll the keys.
- I ran all the firmware updates using MyAsus + Windows Update.
Screen freezes
- Issue: as mentioned, the screen would freeze after some time.
- A partial fix was to force the laptop to go to sleep (hold power for 5-10 s & close the lid).
- Fix: add the following kernel arguments using
rpm-ostree kargs --editor
:amdgpu.dcdebugmask=0x10
amdgpu.sg_display=0 - Note: I don’t know what these kargs do. Also, maybe only the first one is needed.
- Source: a Reddit post I unfortunately cannot find again.
- Edit: Phoronix only used
amdgpu.dcdebugmask=0x600
on a Zenbook 16 with AMD Ryzen AI 9 365 (https://www.phoronix.com/benchmark/result/windows-11-vs-ubuntu-linux-benchmarks-on-amd-ryzen-ai-9-365/result.svgz) - Edit 2: Here is what
dcdebugmask
does: Zenbook S 16 with Ryzen HX AI 370 not reaching s2idle. (#3545) · Issues · drm / amd · GitLab
Battery life
- I bought this laptop for the amazing battery life displayed on benchmarks, unfortunately on Linux I’m closer to
6-7 hours(edit) 5-6 hours doing web browsing and light works (power saver mode), than the 10+ on Windows. - I will list optimizations here when I find them. Hopefully it’ll get better with newer kernels.
Keyboard & Touchpad
- Keyboard backlight works correctly, except for the RGB (it is just white).
- Rien à signaler regarding the touchpad, except that Asus custom touchpad gestures don’t work of course, but I don’t mind.
That Copilot key
- I haven’t found what to do with it yet. Unfortunately, mapping it for example to R-Ctrl isn’t an easy task, as this key sends Shift+Windows+F23 apparently. Not very pog. Apparently
keyd
works: keyboard - Make copilot key work as right-CTRL again under Linux - Super User
AI, NPU, Ollama
- The NPU isn’t easily usable on Linux yet. Drivers are installable (GitHub - amd/xdna-driver) / coming to the kernel (https://www.phoronix.com/news/AMDXDNA-Linux-Driver-v2). But Ollama doesn’t support it yet, for example. I’m not very knowledgeable on this topic.
- The iGPU (Radeon 880M) isn’t supported by ROCm yet, meaning you can’t leverage it to run models with Ollama for example. It is listed as
glx1105
. See ollama/docs/gpu.md at d889c6fd07533859502f9571a8f80ec1d4322d0e · ollama/ollama · GitHub. I tried overriding usingHSA_OVERRIDE_GFX_VERSION="11.0.2"
, without success.
Gnome, Wayland and HDPI
- Man, I’m really looking forward to Gnome 47 so that thoses annoying blurry XWayland apps like VSCode, Signal, Steam, Chromium based browser and stuff start behaving.
- Fixing the blurriness is possible, but at the cost of hardware acceleration (Why not forcing wayland on vscode in Bluefin-DX?).
Firefox VA-API
- Speaking of hardware acceleration, make sure to enable it on Firefox: Firefox - ArchWiki, as it isn’t by default for GPUs other than Intel’s.
Other distros
- I tried base Fedora, which worked but not quite as well as Bluefin.
- Ubuntu 24.04 doesn’t work OOB. and I didn’t have the fortitude to update the kernel using only a CLI, à la Arch.
- Edit: Ubuntu 24.10 works great out of the box! Looking forward to Fedora 41.
AMA!
I’ll try to keep this post updated with new info I (or you!) find.
(Edit) GPU Crashes
- I sometime get a GPU crash when watching videos on YouTube, leading to a Gnome Shell crash.
- I can instantly log back in.
- The
journalctl -b --priority=3 --no-pager
associated with it is below:
Error logs
Sep 16 21:12:02 fedora kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PCI0.GPP5.WLAN._S0W], AE_ALREADY_EXISTS (20240322/dswload2-326)
Sep 16 21:12:02 fedora kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20240322/psobject-220)
Sep 16 21:12:02 fedora kernel: amd_gpio AMDI0030:00: Failed to request GPIO for pin 0x0000, err -16
Sep 16 21:12:02 fedora kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PCI0.GPP5.WLAN._S0W], AE_ALREADY_EXISTS (20240322/dswload2-326)
Sep 16 21:12:02 fedora kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20240322/psobject-220)
Sep 16 21:12:02 fedora kernel: amd_gpio AMDI0030:00: Failed to request GPIO for pin 0x0000, err -16
Sep 16 19:12:08 fedora systemd-udevd[974]: /usr/lib/udev/rules.d/10-switch.rules:1 Unknown group 'nintendo_switch', ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:206 Invalid key/value pair, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:207 Invalid key/value pair, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:517 Invalid key/value pair, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:518 Invalid key/value pair, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:521 Invalid key/value pair, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:157 GOTO="go_adb" has no matching label, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:158 GOTO="go_adbrndis" has no matching label, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:159 GOTO="go_adbmtp" has no matching label, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:160 GOTO="go_adbptp" has no matching label, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:161 GOTO="go_adbmidi" has no matching label, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /etc/udev/rules.d/51-android.rules:162 GOTO="go_adb" has no matching label, ignoring.
Sep 16 19:12:08 fedora systemd-udevd[974]: /usr/lib/udev/rules.d/99-thrustmaster-wheel-perms.rules:12 Invalid operator for DRIVER.
Sep 16 19:12:08 fedora systemd-udevd[974]: /usr/lib/udev/rules.d/99-thrustmaster-wheel-perms.rules:13 Invalid operator for DRIVER.
Sep 16 19:12:08 fedora systemd-udevd[974]: /usr/lib/udev/rules.d/99-thrustmaster-wheel-perms.rules:14 Invalid operator for DRIVER.
Sep 16 19:12:09 fedora kernel: ucsi_acpi USBC000:00: error -ETIMEDOUT: PPM init failed
Sep 16 19:12:10 fedora systemd-tmpfiles[3799]: "/home" already exists and is not a directory.
Sep 16 19:12:10 fedora systemd-tmpfiles[3799]: "/srv" already exists and is not a directory.
Sep 16 19:12:10 fedora systemd-tmpfiles[3799]: "/root" already exists and is not a directory.
Sep 16 19:12:10 fedora systemd-logind[5006]: Failed to open '/boot//loader/entries': Remote address changed
Sep 16 19:12:11 fedora bluetoothd[4981]: Failed to set mode: Failed (0x03)
Sep 16 19:12:21 fedora gdm[5336]: Gdm: on_display_added: assertion 'GDM_IS_REMOTE_DISPLAY (display)' failed
Sep 16 19:12:21 fedora systemd-logind[5006]: Failed to open '/boot//loader/entries': Remote address changed
Sep 16 19:12:22 fedora systemd-logind[5006]: Failed to open '/boot//loader/entries': Remote address changed
Sep 16 19:12:23 fedora systemd-logind[5006]: Failed to open '/boot//loader/entries': Remote address changed
Sep 16 19:12:23 fedora systemd-logind[5006]: Failed to open '/boot//loader/entries': Remote address changed
Sep 16 19:12:30 fedora gdm-password][6392]: gkr-pam: unable to locate daemon control file
Sep 16 19:12:31 fedora gdm[5336]: Gdm: on_display_added: assertion 'GDM_IS_REMOTE_DISPLAY (display)' failed
Sep 16 19:12:31 fedora systemd-logind[5006]: Failed to open '/boot//loader/entries': Remote address changed
Sep 16 19:12:31 fedora systemd[6407]: Failed to start app-gnome-gnome\x2dkeyring\x2dsecrets-7273.scope - Application launched by gnome-session-binary.
Sep 16 19:12:31 fedora systemd[6407]: Failed to start app-gnome-gnome\x2dkeyring\x2dssh-7274.scope - Application launched by gnome-session-binary.
Sep 16 19:12:31 fedora systemd[6407]: Failed to start app-gnome-xdg\x2duser\x2ddirs-7287.scope - Application launched by gnome-session-binary.
Sep 16 19:12:32 fedora systemd-logind[5006]: Failed to open '/boot//loader/entries': Remote address changed
Sep 16 19:12:33 fedora systemd-logind[5006]: Failed to open '/boot//loader/entries': Remote address changed
Sep 16 19:12:33 fedora systemd-logind[5006]: Failed to open '/boot//loader/entries': Remote address changed
Sep 16 19:12:33 fedora gdm[5336]: Gdm: on_display_removed: assertion 'GDM_IS_REMOTE_DISPLAY (display)' failed
Sep 16 19:15:29 fedora systemd[6407]: Failed to start grub-boot-success.service - Mark boot as successful.
Sep 16 19:16:40 fedora kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring vcn_unified_0 timeout, signaled seq=6491, emitted seq=6493
Sep 16 19:16:40 fedora kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process RDD Process pid 10197 thread librewolf:cs0 pid 11562
Sep 16 19:16:45 fedora systemd-coredump[11734]: [🡕] Process 7295 (gnome-shell) of user 1000 dumped core.
- I haven’t found a solution yet. It is worth noting that on Fedora 40, only mesa 24.1 is available, whereas as mentioned above mesa 24.2+ is required. The best thing to do I think will be to just wait for Fedora 41, for updated kernel, mesa and linux-firmware.