I'm looking to build fbp on Danctnix Arch ARM, but don't know where to start. Which parts of the fbp UI are postmarketos specific? I can't imagine that any f_scripts are special pmOS, since they're based on oilshell. Any pointers to building on Arch would be helpful, i'll give it a shot without any modifications on Monday (busy weekend.)
On Fri, Mar 4, 2022, at 11:19 PM, Bobby Hamblin wrote:
> I'm looking to build fbp on Danctnix Arch ARM, but don't know where to
> start. Which parts of the fbp UI are postmarketos specific? I can't
> imagine that any f_scripts are special pmOS, since they're based on
> oilshell. Any pointers to building on Arch would be helpful, i'll give
> it a shot without any modifications on Monday (busy weekend.)
Running on Arch shouldn't be too hard; nothing with framebufferphone
was built specifically with pmOS in mind. I'd think the process from a
barebones Arch/Danctnix install, would look approximately like:
1. Install deps for fbp: freetype-dev, linux-headers equivalents on Arch
- Reference APKBUILD: https://git.alpinelinux.org/aports/tree/testing/fbp/APKBUILD
2. Install zig 0.8.1 via source
- Unfortunately Alpine is stuck at zig 0.8.1 and thus I'm targetting
fbp against 0.8.1 currently. Arch is ahead at 0.9.1. In the interim
you could build a custom arch package for zig 0.8.1 or simpler just
install from zig's binaries.
- You could use this script to fetch the 0.8.1 binary for zig and install to system:
https://paste.sr.ht/~mil/b87158f18076d174aa4d30d8d550b99c9908645e
- Above script could be run with: `./zig_upd.sh 0.8.1`
3. Run `zig build` and copy fbp binary to /usr/bin e.g. like APKBUILD does
4. Run `fbp` making sure to `modeprobe uinput` kernel module beforehand; note,
openrc service on postmarketos autostarts fbp on boot, similar methodology
could be used in systemd for autostarting on boot, see:
https://gitlab.com/postmarketOS/pmaports/-/blob/master/main/postmarketos-ui-framebufferphone/fbp.init
At that point you'd have `fbp` (the graphical UI & button bindings/touch
interface itself) installed. Note there is *no* dependency between
`fbp` and `f_scripts`. So you could test UI with fbp at this point. As
for f_scripts, each f_script is standalone (and on alpine its own
subpackage). You can reference the dependencies for each script at:
https://git.alpinelinux.org/aports/tree/testing/f_scripts/APKBUILD
Let me know how you make out, would be awesome to see ported to Arch as
I'm a fan there too. Also if you havn't already, maybe check things out
on pmOS too via pmbootstrap to get a sense of how things works / inspect
system. Basically only thing that runs as daemon is `fbp` binary so as
long as you get that compiled, your set; f_scripts are just niceties.
Miles