Hey folks!
I followed some guides on how to get Waydroid installed and working on Silverblue and thought I would share my findings. I’m also hoping that someone will share a way of doing some of these things a bit easier by sharing my steps with you =)
Special thanks to Karuboniru for his blogpost “Waydroid need kernel with ashmem and binder”.
Instead of using fedpkg to make a build based on the vanilla Silverblue kernel I decided to use rmnscns kernel-xanmod copr repo. This is particularly laborious as you’ll have to run rpm-ostree override replace for the various kernel packages, for every update even. If you have a better way of doing it, I’d be all ears This requires that you have rpm-ostree 2021.12 or higher.
XANMOD_KERNEL_REPO="https://copr-be.cloud.fedoraproject.org/results/rmnscnce/kernel-xanmod/fedora-35-x86_64/02980126-kernel-xanmod-lts"
rpm-ostree override replace \
--uninstall=kernel \
--uninstall=kernel-core \
--uninstall=kernel-modules \
--uninstall=kernel-headers \
--uninstall=kernel-devel \
--install=${XANMOD_KERNEL_REPO}/kernel-xanmod-lts-5.10.80-xm1.0.fc35.x86_64.rpm \
--install=${XANMOD_KERNEL_REPO}/kernel-xanmod-lts-core-5.10.80-xm1.0.fc35.x86_64.rpm \
--install=${XANMOD_KERNEL_REPO}/kernel-xanmod-lts-modules-5.10.80-xm1.0.fc35.x86_64.rpm \
--install=${XANMOD_KERNEL_REPO}/kernel-xanmod-lts-headers-5.10.80-xm1.0.fc35.x86_64.rpm \
--install=${XANMOD_KERNEL_REPO}/kernel-xanmod-lts-devel-5.10.80-xm1.0.fc35.x86_64.rpm \
${XANMOD_KERNEL_REPO}/kernel-xanmod-lts-5.10.80-xm1.0.fc35.x86_64.rpm
If you have a better, easier, automatically updatable way of doing this, please let me know, as I have to uninstall the older xanmod kernel packages to then also install the newer xanmod kernel packages - which is laborious.
After that I would install the waydroid packages from yanqiyu’s fc35 waydroid copr repo by scrolling down to Active Releases, downloading the yanqiyu-waydroid-fedora-35.repo
repo file and placed it in /etc/yum.repo.d
and installed it using rpm-ostree install waydroid
. All dependencies should be installed automatically.
After that I had to set SELinux to permissive, despite the fact that the repo package provides SELinux configuration. I’m not sure why it didn’t work, but setting SELinux to permissive was necessary to not get access denied errors.
When all that is done you simply run sudo waydroid init
, systemctl start waydroid-container.service
, followed by waydroid session start
, waiting a little and then running waydroid show-full-ui
in a seperate terminal.
Presto! Lineage OS running containerised under Silverblue using lxc
I hope this helps and that you have a better way of doing this, because I had some pains going through the motions. If you do have a better way I will gladly edit this post and update the information
Thanks for reading!