目录
1.源码获取
lvgl有已经移植好的项目只需下载编译即可,项目地址:
GitHub - lvgl/lv_port_linux_frame_buffer: LVGL configured to work with a standard Linux framebuffer
在github上面使用git工具即可克隆完整源码:
git clone https://github.com/lvgl/lv_port_linux_frame_buffer.git
cd lv_port_linux_frame_buffer/
git submodule update --init --recursive
或者使用gitee直接克隆整个工程:
lvgl_linux_arm帧缓存工程: lvgl linux arm 帧缓存工程
直接克隆这个工程即可:
git clone https://gitee.com/already_use/lvgl_linux_arm.git
2. 修改对应配置
-
修改项目文件 lv_conf.h 的第33行改为屏幕的颜色位数rgb565
#define LV_COLOR_DEPTH 16 //32
-
修改项目文件 lv_drv_conf.h 334行指定使用的屏幕,如果默认为fb0则不用修改
#define FBDEV_PATH "/dev/fb0"
-
修改项目文件 lv_drv_conf.h 450行 改为实际映射的鼠标或者触摸屏映射驱动文件
#define EVDEV_NAME "/dev/input/event10"
修改为实际的触摸屏或者鼠标文件
#define EVDEV_NAME "/dev/input/event0"
-
修改main.c文件 32和33行
disp_drv.hor_res = 800;//屏幕宽度
disp_drv.ver_res = 480;//屏幕高度
改为实际屏幕的宽高
disp_drv.hor_res = 128;
disp_drv.ver_res = 160;
3.编译文件
-
Download工程项目源码
git clone https://gitee.com/already_use/lvgl_linux_arm.git
-
修改 lv_port_linux_frame_buffer/makefile 里面的cc编译器和安装目录
CC ?= gcc 改为 CC := arm-linux-gcc prefix ?= ./output
-
在lv_port_linux_frame_buffer目录里添加 output 目录
mkdir output
-
在lv_port_linux_frame_buffer/makefile里添加
.PHONY: install
-
执行编译命令
make -j4
-
执行安装命令
make install
如果遇到编译报警:
arm-linux-gcc: 错误:unrecognized command line option ‘-Wshift-negative-value’
删除makefile CFLAGS包含的 -Wshift-negative-value 标志。
4.测试程序
- 在output里有可以运行的demo文件,直接拷贝这个文件到arm linux 开发板即可运行
./demo
如果有警告:
ioctl(FBIOBLANK): Invalid argument
则屏蔽代码lvgl_linux_arm\lv_port_linux_frame_buffer\lv_drivers\display\fbdev.c 101-105 行:
// Make sure that the display is on.
// if (ioctl(fbfd, FBIOBLANK, FB_BLANK_UNBLANK) != 0) {
// perror("ioctl(FBIOBLANK)");
// return;
// }