-
-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Automatically build binder
kernel modules as fallback
#211
Comments
Specifically referring to the pre-built binaries in |
Initially the script does not contain prebuit binaries - it all depended on pacman and AUR to build them but this is more prone to error - example when pacman repos are out of sync. here is how it started building from source also needs a lot of dependencies so ive decided to build and use prebuilt binaries. for the binder module - i use the AUR and build from there. - |
Thanks for the context Ryan!
Yea I figure, that makes sense to simplify. Especially for end-users on Deck who may not care so much about having everything built on their host. I would still suggest hosting prebuilt binaries either on GitHub Releases or via their own AUR packages (
For reference, you can install specific versions of packages with
Could you list the specific commands and specific AUR you use? If I'm understanding correctly and that relies on your host having the appropriate version of SteamOS installed to be built against the kernel, then the option I proposed in #202 (comment) of using |
binder
kernel modules
Ah, this is rarely the case with kernel modules and likely not for So auto-building specific kernel modules basically isn't really possible until Valve has an official kernel release (see also ValveSoftware/steamos_kernel#59). Until then, it basically requires someone to use their Deck since there is no other way to get a 1-to-1 release at the moment.
That being said, some of these benefits can be achieved by having there be a backup option that loads the module and compiles it via its sources if an exact match isn't available. Falco's container is one I look to as an example of broad support for a kernel module, and indeed it looks like it downloads and compiles it on the fly |
Yes thats correct. Once a new SteanOS beta gets released I'll try to update the script so it automatically builds the kernel module. It will install a few dependency but it will be fewer compared to when building waydroid from source. And once done remove those dependency so it's clean. |
binder
kernel modulesbinder
kernel modules as fallback
Sounds good. I updated the issue title and "Implementation Details" section to list that the script can fallback/backup to build its own modules. I might write up a PR if I get to it first.
Yea it only relies on |
had the same idea a while ago (#82). btw: what are the specific reasons to install manually precompiled lxc & dnsmasq (+ others) and not to rely on what steamos could deliver? |
Here - And additionally so it is tied to a specific version. stable / beta contains different versions of lxx dnsmasq etc. |
Motivation
Per #196 (comment), it seems like you're manually building the
binder
kernel modules to support Android/Waydroid whenever there's an update.This requires manual, human intervention and more maintenance effort -- the most of any other piece of the codebase afaict1 -- so I would suggest automating it.
Implementation Details
Instead, we could automatically build new ones with a GitHub Actioncron
schedule. This could check if a new version exists daily.The binary could be uploaded to GH Releases as well in order to keep the repository more clean and free of built binaries
The script could also check for the latest GH Release, meaning that users would not need to update their script if it's just for a binder module version update (if there are other changes, they might still need to). This is the most frequent reason an update is needed1, so this should significantly reduce the maintenance burden.
How to build?
I actually couldn't tell from the repo how you're building the binder kernel module, i.e. what commands you're specifically running.
From the
modprobe
command, I'm guessing you were following the "DKMS modules" route on the Arch Waydroid wiki (as linked to from the Waydroid install directions) and compiling the binder module alone, but I wasn't sureFuture Work
Footnotes
List of update issues: 6.5.0-valve23-1-neptune-65 kernel support #213, 6.5.0-valve22-1-neptune-65 is NOT supported #210, Can't install waydroid in steamos 3.6.20 #196, Kernel 6.5.0-valve23-1-neptune-65 is NOT supported. #194, kernel version NOT supported #183, Not supported (again) #181, SteamOs Update 11/5/2024 #179, Not supported #175, Kernel not supported 6.5.0-valve22-1-neptune-65-g9a338ed8a75e #173, Kernel not supported #171, Unable to install Waydroid due to unsupported Kernel #160, Missing bind for kernel 19-1 #158, unsupported kernel #149, etc ↩ ↩2
The text was updated successfully, but these errors were encountered: