toradex的个人空间 https://blog.eetop.cn/1539194 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

Xorg下Qt应用自启动方法

已有 1371 次阅读| 2018-6-25 14:43 |系统分类:芯片设计

By Toradex 胡珊逢

1). 简介

Qt 作为嵌入式系统广泛选择的 GUI 框架,支持多种显示平台插件,如常见的 xcblinuxfbWaylandeglfs 等。Xcb 是基于 X 的插件,允许 Qt 应用在 X 中运行,这被目前大部分桌面电脑上 Qt 应用所使用。除了显示输出功能外,X 还可以处理诸如触摸屏、键盘等输入事件,无需单独采用第三方库 tsliblibinputX Qt 应用提供标准的输入、输出环境。由于采用了 X,所以在 Qt 应用运行前,需要先启动 X。接下来的内容,我们将针对 Toradex ARM嵌入式模块系统不同版本 BSP 介绍如何配置基于 X Qt 自启动方法。

 

2). 具体配置方法

a). Linux BSP v2.8b2 之前的 BSP

Toradex 已经为 Yocto/OpenEmbedded 提供现成的 recipe 用于编译基于 X Qt BSP angstrom-qt5-x11-image.bb。在 v2.8b2 之前的 BSP qt5-x11-demo.service 用于启动 qt5-x11-demo-init 脚本从而初始化 X 环境并直接加载 Qt 应用。用户可以修改 qt5-x11-demo-init 中的 QTAPP QTAPPSTART将其指向其他 Qt 应用所在的目录以及应用本身。qt5-x11-demo-init 同时也尝试了触摸屏的校准通过执行 tslib.sh ts_calibratexinput_calibrator_once.sh。但是 xinput_calibrator_once.sh 同样也需使用 X但此时 X 并未启动所以默认的脚本是无法使用 xinput_calibrator_once.sh 直接进行校准。

 

运行下面命令手动校准电阻触摸屏。

---------------------------------

root@colibri-imx6:~# set -e

root@colibri-imx6:~# Xorg &

root@colibri-imx6:~# xinput_calibrator

---------------------------------

 

校准完毕后,将 xinput_calibrator 校准信息复制到 /etc/X11/xorg.conf.d/99-calibration.conf 文件中。X 在启动时会自动加载这些校准数据。

---------------------------------

Section "InputClass"

   Identifier "calibration"

   MatchProduct "stmpe-ts"

   Option "Calibration" "108 3958 608 3929"

   Option "SwapAxes" "0"

EndSection

---------------------------------

 

完成以上步骤后,qt5-x11-demo.service 才能启动 Qt 应用,并正常使用触摸屏设备。

 

b). Linux BSP v2.8b2 之后的 BSP

直接使用脚本启动 X Qt 应用存在一些限制,如上面的无法自动调用 xinput_calibrator  进行触摸屏校准,或者在 Qt 应用启动前执行其他的 X 应用。为解决上述问题,自 v2.8b2 起,Toradex 采用了 nodm 显示管理工具来启动 X。在 X 启动后逐一完成 /etc/X11/Xsession.d 目录中的配置包括触摸校准最后为 90XWindowManager.sh。该脚本将加载 /usr/bin/x-window-manager在这里用户可以修改为您自己 Qt 应用所在的路径以并启动。

 

Yocto/OpenEmbedded recipe 你需要修改 x-window-simple-app_1.0.bb 文件中的 INITIAL_PATH X_APPLICATION指向你自己的 Qt 应用。

---------------------------------

INITIAL_PATH ?= "/usr/share/qtsmarthome-1.0"

X_APPLICATION ?= "${INITIAL_PATH}/smarthome"

---------------------------------

 

采用这种方法,用户无需手动执行 xinput_calibrator 完成校准。xinit 将会自动启动 X,并按序执行位于  /etc/X11/Xsession.d 中的 X 客户端程序。在这里用户可以添加自己的其他 X 应用。

 

5). 总结

v2.8b2 起,X 的启动由 xinit 完成,用户在是使用该新版本 BSP 需要修改原来自启动方式,xinit 方便用户启动不同的 X 客户端程序。

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 3

    粉丝
  • 0

    好友
  • 1

    获赞
  • 2

    评论
  • 13923

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 21:30 , Processed in 0.013549 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部