Properly integrate "Phosh on framebuffer" efforts
It's best to avoid downstream kernels altogether, and mainlining your device. This is also the only option of getting it out of the testing category into community or even main (see device categories).
With that being said, we do have a lot of device ports that run on a downstream kernel, and it would be nice to run Phosh on them as well. I wrote a fbdev backend for wlroots PoC, and this issue is about streamlining it with the goal of being able to just select Phosh in pmbootstrap init
and install it to any device, no matter if it has proper KMS based GPU drivers, or is stuck on framebuffer.
The fbdev backend will not become part of the upstream wlroots repository. However, compositors based on wlroots (phoc in the case of phosh) can load third-party backends with like 4 lines of code added (see here).
I won't work on this anytime soon. But if somebody wants to pick it up, here is how I would approach it:
- run my branch without rebasing, as described in the wiki article (to have it working on your device for the first time)
- rebase my branch on wlroots master
-
fix up the code, so it runs again on wlroots master (hard!) -
turn the code into a third-party backend (see existing examples of third-party backends, as linked above) (hard!) -
add a small patch to phoc to load that third party backend -
upstream the patch to phoc (and add it to alpine's phoc package while upstreaming) -
package the fbdev backend to alpine -
add install_if
logic to your device, to install the backend together with phosh
If you decide to work on this, please post your results on a regular basis to this issue, and upload WIP code trees with your current state.
Note that if this was implemented, something similar could possibly be done with other wlroots based compositors (sway, cage).