<p align="center"><a href="https://www.100ask.net" target="_blank" rel="noopener noreferrer"><img width="100" src="http://wechatapppro-1252524126.file.myqcloud.com/appTVs2sJfo3933/image/b_u_5fb1e35c3d801_CUAzKqf9/knhb7p8x0j7u.png" alt="100ASK logo"></a></p>
<h2 align="center">100ASK Linux LVGL Desktop</h2>
100ASK Linux LVGL desktop 是一个 MIT 许可的开源项目。本项目主要目的是为大家提供一个嵌入式Linux GUI的参考解决方案:低内存占用、简洁美观的视觉效果、稳定且拓展性强的项目架构。
# 介绍(Introduction)
100ASK Linux LVGL desktop 是一个 MIT 许可的开源项目。该项目由 [百问网团队](https://www.100ask.net) 研发、发布,目的是为 100ASK_IMX6ULL、100ASK_STM32MP157开发板提供提供一个基础GUI,使用Makefile组织管理源码、基于GCC编译。通过修改少量的配置便在其他Linux、Linux开发板上运行。
项目效果演示视频:[https://www.bilibili.com/video/BV1nT4y1R7rz](https://www.bilibili.com/video/BV1nT4y1R7rz)
![https://img-blog.csdnimg.cn/da2dfa5b8a624d8f9390c4f3ad9847fb.jpg](https://img-blog.csdnimg.cn/da2dfa5b8a624d8f9390c4f3ad9847fb.jpg)
## 快速开始
如果使用的是[百问网IMX6ULL开发板](https://item.taobao.com/item.htm?id=610613585935),那么你可以通过直接更新固件,最快获得体验。
烧写工具及镜像获取:
- 百度云:链接: [https://pan.baidu.com/s/17QWdasg3lcSb82JK4uUJuQ](https://pan.baidu.com/s/17QWdasg3lcSb82JK4uUJuQ) 提取码: root
- 不限速下载地址: [https://download.csdn.net/download/qq_35181236/40774994](https://download.csdn.net/download/qq_35181236/40774994)
或者选择按照下面的章节按步骤开始。
### 编译项目
1. 配置开发环境
本项目的开发环境为:` VMware Workstation + Ubuntu` ,
如果是学习韦东山嵌入式Linux教程的小伙伴可以跳过这一步,
需要搭建开发环境的请点击连接查看详细教程:xxxxxx 。
2. 配置交叉编译环境。如果工具链没有配置正确,可能会导致编译不通过,即使编译通过了也不能在目标平台上运行,请注意检查运行环境,编译环境。
3. 项目用到了dbus库,但是由于工具链可能有问题(暂未解决),导致我们需要手动指定dbus的头文件路径,因此我们需要在工具链中进行一些操作:
```shell
book@100ask:~/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ ls dbus-
dbus-1.0/ dbus-c++-1/
book@100ask:~/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ pwd
/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include
book@100ask:~/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ cp dbus-1.0/dbus/ -rfd .
book@100ask:~/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ sync
book@100ask:~/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ ls dbus
dbus/ dbus-1.0/ dbus-c++-1/
book@100ask:~/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ ls dbus
```
> 编译的时候如果报错: `fatal error: dbus/dbus.h No such file or directory` 应该回来看这里的操作,按照自己的sdk路径参考修改即可。
4. 先克隆主仓库:git clone xxxxxxxx
5. 克隆主仓库后,同步子仓库模块: git submodule update --init --recursive
6. 后续更新子仓库模块: git submodule update --remote
7. 进入仓库根目录 `xxxxx` ,执行 `make clean && make` 开始编译。
8. 提升编译速度。全速编译命令: `make clean && make -j$(nproc) RUN_JOBS=-j$(nproc)`
"make -j$(nproc)" 的 **$(nproc)** 是指定编译 **主桌面程序** 的内核线程数,命令会自动获取系统支持最大的线程数,可以手动指定线程数,如: -j16 ,
"RUN_JOBS=j$(nproc)"的 **$(nproc)** 是指定编译 **APP程序** 的内核线程数,命令会自动获取系统支持最大的线程数,可以手动指定线程数,如: -j16 ,
Linux 下输入 `nproc` 命令返回的数字是你机器的线程数。
#### 编译其他板子
配置好交叉编译工具链之后,只需要稍作修改便可以在 100ASK_IMX6ULL_MINI、100ASK_STM32MP157 开发板上运行:
1. 参考[上面](#编译项目)的第三步操作
2. 修改 Makefile 变量 `CFLAGS` 的这两个链接路径,指定为你的路径:
```shell
-I ~/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include -I ~/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/dbus-1.0/include
```
---------------
示例:比如使用 100ASK_IMX6ULL_MINI开发板,并且是按照韦东山教程配套的资料文档配置好了工具链之后这样操作:
1. 复制 dbus 库:
```shell
book@100ask:~/100ask_imx6ull-mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ ls dbus-
dbus-1.0/ dbus-c++-1/
book@100ask:~/100ask_imx6ull-mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ pwd
/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include
book@100ask:~/100ask_imx6ull-mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ cp dbus-1.0/dbus/ -rfd .
book@100ask:~/100ask_imx6ull-mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ sync
book@100ask:~/100ask_imx6ull-mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ ls dbus
dbus/ dbus-1.0/ dbus-c++-1/
book@100ask:~/100ask_imx6ull-mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include$ ls dbus
```
2. 修改 Makefile 变量 `CFLAGS` 的这两个链接路径,指定为你的路径:
```shell
-I ~/100ask_imx6ull-mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/include -I ~/100ask_imx6ull-mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/dbus-1.0/include
```
### 如何运行
1. 编译出来的可执行程序会放在项目根目录的 `bin` 目录下,将里面的可执行文件全部传到开发板文件系统中(如家目录),
2. 将 `assets/icon` 的 **icon** 目录及其中的所有图片文件传到开发板的文件系统中( **icon** 目录必须和可执行程序在同一级目录)
3. 修改 `assets/services` 中的所有 `.services` 文件,假如你将可执行文件放在了家目录,那么就改成这样:
```shell
[D-BUS Service]
Name=net.ask100.lvgl.About
Exec=~/general_About # 原来是这样的Exec=/usr/share/100ask_desktop/general_About
```
4. 将修改后 `assets/services` 中的所有 `.services` 文件,复制到开发板的 dbus 服务目录下,本项目的目录是: `/usr/share/dbus-1/services/`
5. 在执行之前初始化 dbus 运行环境,执行: export $(dbus-launch)
6. 修改可执行文件的权限: sudo chmod +x ~/*
7. 最后在可执行文件的目录下执行桌面程序: ./100ask_lvgl_Main
8. 尽情享受吧
## 仓库子模块说明
- [x] lv_100ask_demos:百问网 LVGL 示例仓库 (平台无关,可以在支持LVGL的任意平台编译运行)
- [x] lv_100ask_modules:百问网模块仓�
没有合适的资源?快使用搜索试试~ 我知道了~
百问网linux桌面GUI,基于LVGL 8.x。.zip
共131个文件
c:34个
h:25个
png:17个
需积分: 5 0 下载量 110 浏览量
2024-04-29
19:45:19
上传
评论
收藏 1.85MB ZIP 举报
温馨提示
百问网linux桌面GUI,基于LVGL 8.x。
资源推荐
资源详情
资源评论
收起资源包目录
百问网linux桌面GUI,基于LVGL 8.x。.zip (131个子文件)
watch_bg.c 2.75MB
lodepng.c 258KB
minute.c 134KB
hour.c 131KB
second.c 129KB
png_decoder_test.c 31KB
set_wlan.c 27KB
set_time.c 19KB
general_calc.c 16KB
file_manager.c 13KB
set_lan.c 10KB
lv_png.c 8KB
set_lcd_brightness.c 8KB
general_game_memory.c 6KB
main.c 3KB
main.c 3KB
main.c 3KB
main.c 3KB
main.c 3KB
main.c 3KB
main.c 3KB
main.c 3KB
main.c 2KB
main.c 2KB
main.c 2KB
main.c 2KB
main.c 2KB
main.c 2KB
main.c 2KB
music_player.c 1KB
about.c 1KB
general_game_tiles.c 1KB
general_game_snake.c 1KB
general_2048_game.c 1KB
.gitignore 7B
.gitmodules 474B
lodepng.h 94KB
lv_conf.h 19KB
lv_drv_conf.h 12KB
lv_demo_conf.h 1KB
lv_100ask_demo_conf.h 1KB
lv_100ask_app.h 1KB
lv_100ask_modules_conf.h 1023B
general_app.h 861B
imx6ull_app.h 792B
lv_100ask_app_conf.h 731B
lv_100ask_app_conf_template.h 731B
lv_100ask_app.h 678B
set_lcd_brightness.h 662B
general_game_memory.h 634B
general_game_snake.h 630B
general_game_tiles.h 630B
file_manager.h 627B
music_player.h 627B
general_2048_game.h 626B
set_wlan.h 622B
set_time.h 622B
set_lan.h 618B
general_calc.h 606B
lv_png.h 588B
about.h 578B
LICENSE 1KB
LICENSE 1KB
Makefile 3KB
Makefile 870B
Makefile 834B
Makefile 832B
Makefile 829B
Makefile 829B
Makefile 828B
Makefile 820B
Makefile 818B
Makefile 816B
Makefile 783B
Makefile 781B
Makefile 777B
Makefile 774B
Makefile 773B
README.md 13KB
README.md 3KB
README.md 2KB
lv_lib_png.mk 95B
lv_100ask_app.mk 51B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
app_src.mk 46B
net.ask100.lvgl.bg.png 1.37MB
net.ask100.lvgl.Game2048.png 11KB
net.ask100.lvgl.Tiles.png 9KB
共 131 条
- 1
- 2
资源评论
普通的一个普通猿
- 粉丝: 1461
- 资源: 1761
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功