Хочу сделать на raspberry киоск с веб-интерфейсом (чтобы после загрузки открывался браузер на весь экран с HTML с диска).
Как я понял, свой линукс надо собирать через buildroot, вместо electron надо использовать wpewebkit и сейчас графика работает через wayland.
Но ничего у меня в итоге не получилось и не работает.
Минимальный образ buildroot-ом с помощью make raspberrypi4_defconfig
я собрал, он грузится, консоль есть, залогиниться можно. buildroot 2022.02.8
Далее долго пытался найти минимальный подбор опций, чтобы получилось выбрать wpewebkit. Вышло примерно следующее:
Toolchain
Enable WCHAR support
Target packages
Graphic libraries and applications (graphic/text)
mesa3d
Gallium vc4 driver
OpenGL ES
Libraries
Graphics
wpewebkit
Graphic libraries and applications (graphic/text)
cog
Wayland backend
Filesystem images
ext2/3/4 root filesystem
exact size: 180M
cog это, как я понимаю, браузер на этом wpewebkit, т.е. видимо то, что и должно показать мою HTML-ку и то, что я должен буду настроить на автозапуск.
В итоге cog этот не запускается. Пишу cog
(от рута), он начинает в цикле писать (сокращаю, т.к. перепечатываю)
error: XDG_RUNTIME_DIR not set in the environment.
WARNING Your application does not implement g_application_activate() and has no handlers connected to the activate signal. It should do one of these.
libEGL warning: MESA-LOADER: failed to open swrast: File not found (search paths /usr/lib/dri, suffix _dri)
EGLDisplay initialization failed: EGL_NOT_INITIALIZED
Cog Core WARNING THe rendered process crashed.
XDG_RUNTIME_DIR ставил, эта ошибка ушла, толку не было.
Что за libEGL warning я не понял. В /usr/lib/dri файла swrast_dri.so нет. Есть файл vc4_dri.so. Как я предполагаю, swrast это софтовый растеризатор, а vc4 это хардварный. Как этому libEGL сказать, чтобы он использовал vc4, я пока не понял, гугл не очень помогает.
Пробовал добавить weston, пришлось для этого udev ставить, но ничего не изменилось, weston тоже не запускается.
Пробовал запускать cog --platform=wl
, пишет preferred module
wlnot supported, cannot create platformm: could not find an usable platform module. could not load the impl library. Is there any backend installed? File not foudn
.
Может я вообще не в том направлении двигаюсь? raspi в целом это больше прототип, потом надо будет это на i.mx8 делать, поэтому хочу через buildroot сделать.
Также пробовал включать v3d драйвер, не помогло.