同步操作将从 韦东山/lv_100ask_linux_desktop 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
100ASK Linux LVGL desktop 是一个 MIT 许可的开源项目。本项目主要目的是为大家提供一个嵌入式Linux GUI的参考解决方案:低内存占用、简洁美观的视觉效果、稳定且拓展性强的项目架构。
100ASK Linux LVGL desktop 是一个 MIT 许可的开源项目。该项目由 百问网团队 研发、发布,目的是为 100ASK_IMX6ULL、100ASK_STM32MP157开发板提供提供一个基础GUI,使用Makefile组织管理源码、基于GCC编译。通过修改少量的配置便在其他Linux、Linux开发板上运行。
项目效果演示视频:https://www.bilibili.com/video/BV1nT4y1R7rz
如果使用的是百问网IMX6ULL开发板,那么你可以通过直接更新固件,最快获得体验。
烧写工具及镜像获取:
或者选择按照下面的章节按步骤开始。
VMware Workstation + Ubuntu
,
如果是学习韦东山嵌入式Linux教程的小伙伴可以跳过这一步,
需要搭建开发环境的请点击连接查看详细教程:xxxxxx 。
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路径参考修改即可。
xxxxx
,执行 make clean && make
开始编译。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 开发板上运行:
CFLAGS
的这两个链接路径,指定为你的路径:
-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开发板,并且是按照韦东山教程配套的资料文档配置好了工具链之后这样操作:
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
CFLAGS
的这两个链接路径,指定为你的路径:
-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
bin
目录下,将里面的可执行文件全部传到开发板文件系统中(如家目录),assets/icon
的 icon 目录及其中的所有图片文件传到开发板的文件系统中( icon 目录必须和可执行程序在同一级目录)assets/services
中的所有 .services
文件,假如你将可执行文件放在了家目录,那么就改成这样:[D-BUS Service]
Name=net.ask100.lvgl.About
Exec=~/general_About # 原来是这样的Exec=/usr/share/100ask_desktop/general_About
assets/services
中的所有 .services
文件,复制到开发板的 dbus 服务目录下,本项目的目录是: /usr/share/dbus-1/services/
上面 √ 选上的是必选仓库,如果不需要可选仓库,请注意修改配置文件和 Makefile。
├── assets # 程序运行所需的资源,二次开发需要将里面的文件copy开发板的文件系统中
│ ├── icon # 桌面背景和APP图标(默认存放位置:/usr/share/100ask_desktop/assets/icon)。需要将 assets/icon 文件夹复制到主桌面程序的同级目录(默认存放位置:/usr/share/100ask_desktop)下,背景、图标可以替换,注意名称要和之前的一样。
│ └── services # DBus服务列表。增加APP后需要参考里面的格式新建服务文件,并将服务文件(不是整个文件夹)copy到dbus服务文件目录下: /usr/share/dbus-1/services/
├── lv_100ask_app # APP程序(二次开发新的APP主要在这里添加自己的APP)
│ └── src
│ ├── general_app # 平台无关的通用APP
│ │ ├── general_2048_game # APP程序的目录
│ │ │ ├── obj # 编译过程输出文件存放在这里(执行后 make clean 会清除),可执行文件放在项目根目录的 bin 目录下
│ │ │ └── src # APP程序代码
│ │ ├── .......
│ └── imx6ull_app # 硬件相关的APP
│ ├── imx6ull_set_lan # APP程序的目录
│ ├── .......
├── lv_100ask_demos # 百问网平台无关的通用APP
│ ├── docs
│ └── src
│ ├── lv_100ask_demo_2048
│ ├── ......
├── lv_100ask_modules # 百问网模块仓库 (此仓库为本项目而设,目的是为了提供一些通用的模块供本项目使用,并减少代码量和项目维护难度)
│ ├── docs
│ └── src
│ ├── lv_100ask_boot_animation # 开机动画模块
│ ├── lv_100ask_dbus_handler # DBus消息处理模块
│ ├── lv_100ask_dbus_message_dispatch # 消息分发模块(目前是桌面主程序专用)
│ ├── lv_100ask_demo_assistive_touch # 辅助触摸悬浮球模块
│ └── lv_100ask_demo_init_icon # 桌面图标初始化模块(桌面主程序专用)
├── lv_demos # LVGL 官方的示例(LVGL官方仓库)
├── lv_drivers # 用于 LVGL 嵌入式 GUI 库的 TFT 和触摸板驱动程序(LVGL官方仓库)
├── lvgl # LVGL库,项目基于此仓库(LVGL官方仓库)
├── lv_lib_png # 显示png图片库(LVGL官方仓库)
├── bin # 编译完成后,所有的可执行文件存放在这里(执行后 make clean 会清除)
└── obj # 桌面程序的编译过程输出文件存放在这里(执行后 make clean 会清除),可执行文件放在项目根目录的 bin 目录下
参考 lv_100ask_app/
在原有基础上追加或创建自己的应用。
lv_100ask_app/src
目录创建新的目录lv_100ask_app/lv_100ask_app.h
包含添加你的应用路径。LVGL 文档教程:http://lvgl.100ask.net/
LVGL 视频教程: TODO
欢迎来论坛发帖交流:http://bbs.100ask.net/
TODO
TODO
MIT
Copyright © 2008-2020 深圳百问网科技有限公司 All Rights Reserved.
公司名称:深圳百问网科技有限公司
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。