wallabako built on newer kernels doesn't run on older Kobo
in the .gitlab-ci.yml file, we build with a Debian stretch image. that is because this is the last known Debian release who is able to build a wallabako ARM binary that actually runs on older Kobo devices (tested on the Aura).
the first hurdle is that glibc is too old on the Kobo:
./wallabako.arm: /lib/libc.so.6: version `GLIBC_2.28' not found (required by ./wallabako.arm)
Doing a build with:
make build BINARY=build/wallabako.arm GOARCH=arm GOOS=linux CGO_ENABLED=1 CC="arm-linux-gnueabihf-gcc" GFLAGS='-a -tags netgo -installsuffix netgo -ldflags="-linkmode external -extldflags "-static" -X main.version=1.3.1-26-gef30547-dirty"'
results in a fully static binary BUT:
[root@kobo ~]# ./wallabako.arm -version
FATAL: kernel too old
Aborted
that kernel, for what it's worth, is the prehistoric Linux kobo 2.6.35.3-850-gbc67621+ #2049 PREEMPT Mon Jan 9 13:33:11 CST 2017 armv7l GNU/Linux. That was built in 2017, but the kernel was actually released in 2010, a whole 6 years before the Aura was released, in 2016 which is kind of outrageous. and yes, that is with the latest firmware release. my bet is they just don't upgrade the kernel on those things, as the Aura was probably bought around 2017...
so we're kind of stuck here. we can't build a working static binary because the "kernel is too old" and a dynamically linked one doesn't work because of libc.
also, for what it's worth, newer kobo devices have a more reasonable kernel. the Kobo Clara HD has Linux kobo 4.1.15-00113-gf2361811e104 #49 (closed) SMP PREEMPT Tue Oct 5 15:17:29 CST 2021 armv7l GNU/Linux