LVGL 应用

示例工程使用 LVGL 9.5.0 的 Linux framebuffer 和 evdev 驱动,不依赖旧版 lv_drivers 仓库。

准备 LVGL 源码

将资料包中的 lvgl-v9.5.0.tar.gz 复制到 ~/v3s-workspace,再解压到工程目录:

cd ~/v3s-workspace/projects/lvgl-v9-demo
mkdir -p third_party
tar -xzf ~/v3s-workspace/lvgl-v9.5.0.tar.gz -C third_party
mv third_party/lvgl-9.5.0 third_party/lvgl

也可以联网获取:

make fetch LVGL_VERSION=v9.5.0

编译

cd ~/v3s-workspace/projects/lvgl-v9-demo
export BUILDROOT_OUTPUT="$HOME/v3s-workspace/buildroot-2023.02.3/output"
make
file build/lvgl-v9-demo

上传和运行

scp build/lvgl-v9-demo root@<开发板IP>:/root/
ssh root@<开发板IP>

在开发板停止系统自带版本,再运行新程序:

/etc/init.d/S20lvgl-v9-demo stop
chmod +x /root/lvgl-v9-demo
/root/lvgl-v9-demo --fb /dev/fb0 --input /dev/input/event1

没有连接触摸屏时:

/root/lvgl-v9-demo --fb /dev/fb0 --no-input

直接启动指定演示:

/root/lvgl-v9-demo --demo widgets
/root/lvgl-v9-demo --demo benchmark
/root/lvgl-v9-demo --demo stress

安装到根文件系统

cd ~/v3s-workspace/projects/lvgl-v9-demo
make ROOTFS_OVERLAY="$HOME/v3s-workspace/strongpi-v3s-support/rootfs_overlay" \
    install-rootfs-overlay

重新编译 Buildroot 后,程序安装为 /usr/bin/lvgl-v9-demo

开机配置位于:

/etc/default/lvgl-v9-demo

可设置 framebuffer、输入设备、默认演示和是否开机启动。

默认 INPUT_DEVICE="auto",启动脚本会按 sysfs 设备名称查找 Goodix 触摸屏。需要固定其他输入设备时,可改为实际的 /dev/input/eventN