Seems the issue might be something else: libinput driver not linking · Issue #90 · lvgl/lv_drivers · GitHub
Turns out it was a bit of a compound issue:
- The “libdrm-dev” and “libinput-dev” packages only contain headers: they do not contain source code.
- I have to tell Make specifically which libraries to pull in:
- add “-linput” to the LDFLAGS pulls in “libinput”
- add “-ldrm” to the LDFLAGS pulls in “libdrm”
- BUT…I have to disable static compilation!
This of course results in a binary that can be run on the desktop environment…but not the cross-compile environment. Test results here show that there is no “version” of LibInput / LibDRM that LVGL is expecting…but rather just some basic C Makefile stuff.
Digging into LibInput for ARMv7, I noticed the long list of “dependencies”–oh, the quagmire gets deep really fast: libinput (armv7h) | Packages | Arch Linux ARM
Now I completely understand why almost every time this pops up on the LVGL forums, the answer is “just use evdev” or “just use framebuffer”. For tiny embedded systems, less truly is more.
I’ll say it again: for small embedded Linux systems, just use evdev instead of libinput…and just use fb instead of DRM! Works a treat.