Waydroid broken after kernel update on L5

I solved the stuttering sound problem! The description in ArchWiki - PulseAudio/Troubleshooting - Troubleshooting buffer underruns (glitches, skips, crackling) matches the problem perfectly, and the solution from there helped:

Quote from ArchWiki

The newer implementation of the PulseAudio sound server uses timer-based audio scheduling instead of the traditional, interrupt-driven approach.

Timer-based scheduling may expose issues in some ALSA drivers. On the other hand, other drivers might have a tendency to experience buffer underruns without it on, so check to see what works on your system.

[…]

To turn timer-based scheduling off, add tsched=0 in
/etc/pulse/default.pa:

load-module module-udev-detect tsched=0

UPD: No, it did not help completely. Stuttering and time-skipping still happens, but now it is more rare. Or maybe it is my wishful thinking…

See here (use at own risk!)

1 Like

You can try and see whether the kernel from CI at Files · byzantium-config-revert · Sebastian Krzyszkowiak / linux-next · GitLab fixes the problem. Alternatively, you can upgrade to Crimson where this problem doesn’t happen.

I don’t have a Byzantium phone around at this moment, but I’m going to have to set one up soon so then I’ll be able to look closer.

Undo what you did there and change the default fragment count and size as seen here: default/audio/pulse/daemon.conf.d/95-librem5.conf · pureos/latest · Librem5 / librem5-base · GitLab

Waydroid’s Android image’s audio handling is buggy and expects the host to have matching buffer sizes. Older images expected a different setup (the one from Byzantium).

Please don’t. You can find builds with older kernels at Tags · Librem5 / linux · GitLab. On 6.3 you’re going to have a multitude of subtle issues that have been fixed years ago.

2 Likes

I updated to waydroid 1.6.1 on byzantium. But it does not start either.

Here is the log:

waydroid log
(1771) [Sun, 18 Jan 2026 13:00:54] % /usr/lib/waydroid/data/scripts/waydroid-net.sh stop
(1771) [Sun, 18 Jan 2026 13:00:54] vnic is waydroid0
(1771) [Sun, 18 Jan 2026 13:00:54] waydroid-net isn’t running
(1771) [Sun, 18 Jan 2026 13:00:54] % systemctl is-enabled -q nfcd
(1771) [Sun, 18 Jan 2026 13:00:54] Failed to get unit file state for nfcd.service: No such file or directory
(1771) [Sun, 18 Jan 2026 13:02:15] Stopping container
(1771) [Sun, 18 Jan 2026 13:02:15] % lxc-info -P /var/lib/waydroid/lxc -n waydroid -sH
(1771) [Sun, 18 Jan 2026 13:02:15] STOPPED
(1771) [Sun, 18 Jan 2026 13:02:15] % /usr/lib/waydroid/data/scripts/waydroid-net.sh stop
(1771) [Sun, 18 Jan 2026 13:02:15] vnic is waydroid0
(1771) [Sun, 18 Jan 2026 13:02:15] waydroid-net isn’t running
(1771) [Sun, 18 Jan 2026 13:02:15] % systemctl is-enabled -q nfcd
(1771) [Sun, 18 Jan 2026 13:02:15] Failed to get unit file state for nfcd.service: No such file or directory
(549) [Sun, 18 Jan 2026 13:06:04] Stopping container
(549) [Sun, 18 Jan 2026 13:06:04] Hardware service is not even started
(549) [Sun, 18 Jan 2026 13:06:04] % lxc-info -P /var/lib/waydroid/lxc -n waydroid -sH
(549) [Sun, 18 Jan 2026 13:06:04] STOPPED
(549) [Sun, 18 Jan 2026 13:06:04] % /usr/lib/waydroid/data/scripts/waydroid-net.sh stop
(549) [Sun, 18 Jan 2026 13:06:04] vnic is waydroid0
(549) [Sun, 18 Jan 2026 13:06:04] waydroid-net isn’t running
(549) [Sun, 18 Jan 2026 13:06:04] % systemctl is-enabled -q nfcd
(549) [Sun, 18 Jan 2026 13:06:04] Failed to get unit file state for nfcd.service: No such file or directory
(1899) [Sun, 18 Jan 2026 13:06:25] Stopping container
(1899) [Sun, 18 Jan 2026 13:06:25] Hardware service is not even started
(1899) [Sun, 18 Jan 2026 13:06:25] % lxc-info -P /var/lib/waydroid/lxc -n waydroid -sH
(1899) [Sun, 18 Jan 2026 13:06:26] STOPPED
(1899) [Sun, 18 Jan 2026 13:06:26] % /usr/lib/waydroid/data/scripts/waydroid-net.sh stop
(1899) [Sun, 18 Jan 2026 13:06:26] vnic is waydroid0
(1899) [Sun, 18 Jan 2026 13:06:26] waydroid-net isn’t running
(1899) [Sun, 18 Jan 2026 13:06:26] % systemctl is-enabled -q nfcd
(1899) [Sun, 18 Jan 2026 13:06:26] Failed to get unit file state for nfcd.service: No such file or directory
(530) [Sun, 18 Jan 2026 13:07:18] % modprobe -q ashmem_linux
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 666 -R /dev/binder
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 666 -R /dev/vndbinder
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 666 -R /dev/hwbinder
(530) [Sun, 18 Jan 2026 13:07:18] Starting up container for a new session
(530) [Sun, 18 Jan 2026 13:07:18] % /usr/lib/waydroid/data/scripts/waydroid-net.sh start
(530) [Sun, 18 Jan 2026 13:07:18] vnic is waydroid0
(530) [Sun, 18 Jan 2026 13:07:18] % systemctl is-active -q nfcd
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 777 -R /dev/dri/renderD128
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 777 -R /dev/fb0
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 777 -R /dev/video3
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 777 -R /dev/video2
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 777 -R /dev/video1
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 777 -R /dev/video0
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 777 -R /dev/dma_heap/reserved
(530) [Sun, 18 Jan 2026 13:07:18] % chmod 777 -R /dev/dma_heap/system
(530) [Sun, 18 Jan 2026 13:07:18] % mv /var/lib/waydroid/config_session /var/lib/waydroid/lxc/waydroid
(530) [Sun, 18 Jan 2026 13:07:19] % mount -o ro /var/lib/waydroid/images/system.img /var/lib/waydroid/rootfs
(530) [Sun, 18 Jan 2026 13:07:19] % mount -t overlay -o ro,lowerdir=/var/lib/waydroid/overlay:/var/lib/waydroid/rootfs,upperdir=/var/lib/waydroid/overlay_rw/system,workdir=/var/lib/waydroid/overlay_work/system,xino=off overlay /var/lib/waydroid/rootfs
(530) [Sun, 18 Jan 2026 13:07:19] % mount -o ro /var/lib/waydroid/images/vendor.img /var/lib/waydroid/rootfs/vendor
(530) [Sun, 18 Jan 2026 13:07:19] % mount -t overlay -o ro,lowerdir=/var/lib/waydroid/overlay/vendor:/var/lib/waydroid/rootfs/vendor,upperdir=/var/lib/waydroid/overlay_rw/vendor,workdir=/var/lib/waydroid/overlay_work/vendor,xino=off overlay /var/lib/waydroid/rootfs/vendor
(530) [Sun, 18 Jan 2026 13:07:19] % mount -o bind /var/lib/waydroid/waydroid.prop /var/lib/waydroid/rootfs/vendor/waydroid.prop
(530) [Sun, 18 Jan 2026 13:07:19] Save config: /var/lib/waydroid/waydroid.cfg
(530) [Sun, 18 Jan 2026 13:07:19] % lxc-start -P /var/lib/waydroid/lxc -F -n waydroid – /init
(530) [Sun, 18 Jan 2026 13:07:19] New background process: pid=1539, output=background
(530) [Sun, 18 Jan 2026 13:07:19] % lxc-info -P /var/lib/waydroid/lxc -n waydroid -sH
(530) [Sun, 18 Jan 2026 13:07:19] RUNNING
(530) [Sun, 18 Jan 2026 13:07:19] lxc-start: waydroid: conf.c: run_buffer: 314 Script exited with status 126
(530) [Sun, 18 Jan 2026 13:07:19] lxc-start: waydroid: start.c: lxc_end: 958 Failed to run lxc.hook.post-stop for container "waydroid

Yes, we already established that above.

  1. Reverted my changes in Pulseaudio configs and changed the default fragment count and size according to the file you linked. Now the sound in Android works properly! :tada:
  2. Installed the kernel from CI you pointed at. Waydroid container starts without issues! :tada:

Thanks!


I’ll upgrade to Crimson once I have a day to spend on it. It is reassuring to hear that it is already usable and a relatively safe upgrade is possible.

1 Like

Also, a tip for those who, like me, placed their Waydroid onto a MicroSD using bind-mounts. IO on MicroSD is slow, which results in “Application Not Responding” messages popping up all the time. I’ve just fixed it by increasing the timeout in /var/lib/waydroid/waydroid.cfg by adding the following:

[properties]
ro.hw_timeout_multiplier = 12

It would multiply the default 5s timeout by 12. As usual, waydroid upgrade -o is required to apply this new config. Found this tip in GitHub - reiryuki/ANR-Timeout-Multiplier-Magisk-Module. It seems like this option was added only in Android 12.

2 Likes

Kernel 6.6.119pureos1~byz2 is now available in byzantium-updates.

3 Likes

Waydroid successfully starts and runs in my case after updating to this kernel (I did not modify any other settings or the installation from when it worked previously).
Much thanks and appreciation are in order especially after working a fix in such a short timeframe.

1 Like

@dos it is fine to go 8k, 16k on gnu dawn to get better performance on Gnu Librem 5?

thanks of advance