Linux/Bluefin on Asus Laptop with AMD Ryzen AI (Vivobook M5406W)

Hello everyone :slight_smile:

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

Screen freezes

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

AI, NPU, Ollama

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! :slight_smile:

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.
3 Likes

It’s pretty cool (to me) that my post got mentioned lol. Anyways I may have found that reddit post Reddit - Dive into anything

Yeah I was asking myself the same question as yours lol. Otherwise it isn’t that reddit post haha, but I updated my post with a link to Phoronix where they specify using the kernel arg.

Hi! I’m looking into getting the vivobook S14 myself, but with the Ryzen AI 9 365 chip.

How has you experience been with bluefin / linux, and the laptop in general.

So, I bought it today and installed “latest” image of bluefin. Initially there were no issues at all, and as far as I’ve tested all components work.

I latest experienced the freezes, maybe once every hour so far. Will use the laptop for work tomorrow and learn more then.

Hey bia, sorry for the late answer.

What don’t work for me are:

  • suspend (s2idle)
  • I almost always get amdgpu crashes when watching a video from the Internet with hardware acceleration

I tried EndeavourOS with the Testing repo enabled to get a more recent kernel (6.11rc7+ IIRC) which fixed s2idle. Battery life also seem better but I haven’t rigorously tested it.

Unfortunately, with mesa 24.2 and linux-firmware (commit c979a065 from sept. 28th) I still get amdgpu crashes.

I hope you are luckier! Please keep me updated!

I applied the kernel argument you suggested, and that has complete eliminated the freezes for me (so far). I’ve used it for many hours today. Coding, browsing, gaming. Watched a bit of youtube in firefox as well, no issues.

I think suspend works as well. It looks like it’s sleeping and the battery doesn’t noticeably go down with the lid closed.

I think I found what the amdgpu.dcdebugmask=0x10 argument does, if you are interested. The best I found was here. I only added that argument, since that’s the only one listed in the linked article.

  • Disabling PSR using amdgpu.dcdebugmask=0x10
  • Panel self refresh can save power by allowing the panel to refresh independently

I would also like to throw my hat into the ring with being a newish owner of a Lenovo Yoga 7 Pro with the Ryzen 9 AI 365. It works great for the most part but it does experience frequent crashes in KDE Plasma which I guess stems from the AMD GPU issues. Otherwise working really nicely

1 Like

Thanks for the update!

I also found what dcdebugmask does here: https://gitlab.freedesktop.org/drm/amd/-/issues/3545#note_2538277.

This repo also provides a script to test if s2idle works correctly :slight_smile: scripts · master · drm / amd · GitLab

1 Like