当前位置: 首页 > wzjs >正文

深圳自助网站建设费用最近三天的新闻大事摘抄

深圳自助网站建设费用,最近三天的新闻大事摘抄,东阳网站建设有哪些,昆明seo公司网站By Toradex秦海 1). 简介 在前述文章中,我们介绍了如何基于 Weston Composito 实现多屏幕分别显示不同的应用,而进一步延申出的一个应用场景,就是多屏幕之一的 HDMI 屏幕需要进行热插拔,而在热插拔的同时其对应的显示应用也同时…

By Toradex秦海

1). 简介

在前述文章中,我们介绍了如何基于 Weston Composito 实现多屏幕分别显示不同的应用,而进一步延申出的一个应用场景,就是多屏幕之一的 HDMI 屏幕需要进行热插拔,而在热插拔的同时其对应的显示应用也同时启动或者停止,以便不影响其他屏幕的显示。本文就基于前述文章同样的 NXP i.MX8MP 平台来测试如何实现这个功能场景。

本文所演示的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。

2. 准备

a). Verdin i.MX8MP ARM核心版配合Dahlia 载板,并连接调试串口用于测试。

b). Dahlia 载板分别由 DSI-HDMI 转接卡和 native HDMI 两个接口连接两台 HDMI 显示器以便于进行多屏显示测试。

3). 部署流程

a). 为了实现对于 native HDMI 接口连接的 HDMI-2 显示器热插拔动作的响应,需要通过 udev rule来捕获相应触发模块并进行动作。

./ 首先通过执行如下命令,然后操作硬件热插拔,获取被触发的 udev “KERNEL” 组件是 “card1”,”SUBSYSTEM” 是 “drm”,”Action” 是 “change”

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

root@verdin-imx8mp-06849028:~# udevadm monitor

monitor will print the received events for:

UDEV - the event which udev sends out after rule processing

KERNEL - the kernel uevent

KERNEL[89.184407] change   /devices/platform/display-subsystem/drm/card1 (drm)

UDEV  [89.195674] change   /devices/platform/display-subsystem/drm/card1 (drm)

KERNEL[98.001197] change   /devices/platform/display-subsystem/drm/card1 (drm)

UDEV  [98.012452] change   /devices/platform/display-subsystem/drm/card1 (drm)

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

./ 基于上述信息生成如下 udev rules 文件 - /etc/udev/rules.d/99-hdmi-hotplug.rules,这样无论当 HDMI 显示器连接还是断开的时候都会触发这个规则,并执行 hdmi-hotplug.sh 脚本代码。

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

# When HDMI is attached or unattached

ACTION=="change", KERNEL=="card1", SUBSYSTEM=="drm", RUN+="/home/root/hdmi-hotplug.sh"

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

b). hdmi-hotplug.sh 脚本代码实现

./ native HDMI 对应系统 “/sys/class/drm/card1-HDMI-A-2” 设备,设备节点中有 “status” 项目对应当前 HDMI hotplug 状态

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

### HDMI attached ###

root@verdin-imx8mp-06849028:~# cat /sys/class/drm/card1-HDMI-A-2/status

connected

### HDMI unattached ###

root@verdin-imx8mp-06849028:~# cat /sys/class/drm/card1-HDMI-A-2/status

disconnected

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

./ 基于上述判断生成 hdmi-hotplug.sh 脚本来启动或者停止 smarthome Qt 应用(可以见章节1 提到的前述双屏显示文章)。在这里需要通过 systemd service 来启动应用,不能直接执行 smarthome 应用,否则在 hdmi-hotplug.sh 退出后应用也会同时退出。

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

#!/bin/bash

tty=/dev/ttymxc2

hdmistatus=$(cat /sys/class/drm/card1-HDMI-A-2/status)

if [ "$hdmistatus" = "connected" ]; then

    echo "HDMI connected..." > $tty

    systemctl start smarthome-app-launch

else

    echo "HDMI disconnected..." > $tty

    systemctl stop smarthome-app-launch

fi

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

./ 赋予 hdmi-hotplug.sh 脚本可执行属性

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

root@verdin-imx8mp-06849028:~# chmod +x hdmi-hotplug.sh

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

c). 部署 smarthome-app-launch service 文件

./ smarthome-app-launch service 文件 - /lib/systemd/system/smarthome-app-launch.service

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

[Unit]

Description=Start a wayland application

After=weston.service

Requires=weston.service

[Service]

Type=simple

User=root

PAMName=login

Environment=WAYLAND_DISPLAY=/run/wayland-0

Environment=QT_QPA_PLATFORM=wayland-egl

WorkingDirectory=/usr/share/qtsmarthome-1.0/

ExecStart=/usr/share/qtsmarthome-1.0/smarthome

Restart=on-failure

RestartSec=1

[Install]

WantedBy=graphical.target

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

./ 更新 systemd service 文件

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

root@verdin-imx8mp-06849028:~# systemctl daemon-reload

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

d). 参考章节1 前述双屏显示文章同样内容,修改 /etc/xdg/weston/weston.ini 文件。

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

--- a/etc/xdg/weston/weston.ini

+++ b/etc/xdg/weston/weston.ini

@@ -4,6 +4,7 @@

 idle-time=0

 xwayland=true

 #enable-overlay-view=1

+shell=kiosk-shell.so

 [shell]

@@ -12,13 +13,16 @@

 touchscreen_calibrator=true

 calibration_helper=/usr/bin/toradex-save-touchscreen-calibration

-#[output]

-#name=HDMI-A-1

-#mode=1920x1080@60

+[output]

+name=HDMI-A-1

+app-ids=Qt5_CinematicExperience

+mode=1920x1080@60

 #transform=rotate-90

-#[output]

-#name=HDMI-A-2

+[output]

+name=HDMI-A-2

+app-ids=smarthome

+mode=1920x1080

 #mode=off

 #      WIDTHxHEIGHT    Resolution size width and height in pixels

 #      off             Disables the output

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

e). 另外,wayland-app-launch.service 是 Toradex Yocto Multimedia BSP 默认使能用于 Qt5_CinematicExperience 应用启动的 systemd service 文件,如果之前关闭了,可以通过下面命令使能。

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

root@verdin-imx8mp-06849028:~# systemctl enable wayland-app-launch

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

f). 最后所有上述修改完成后重新启动。

4). 测试

a). 重新启动后,当两个 HDMI 显示器都连接,可以通过屏幕观察以及如下进程查询确认两个 Qt 应用都分别显示在相应的显示器上面。

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

root@verdin-imx8mp-06849028:~# ps -aux |grep Qt5_CinematicExperience

root         522 38.3  3.8 1085948 153664 ?      Ssl  06:20   0:41 /usr/share/cinematicexperienc

e-1.0/Qt5_CinematicExperience --fullscreen

root         569  0.0  0.0   2944  1280 ttymxc2  S+   06:22   0:00 grep Qt5_CinematicExperience

root@verdin-imx8mp-06849028:~# ps -aux |grep smarthome              

root         520 31.8  1.9 1007248 77160 ?       Ssl  06:20   0:37 /usr/share/qtsmarthome-1.0/sm

arthome

root         571  0.0  0.0   2944  1152 ttymxc2  S+   06:22   0:00 grep smarthome

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

b). 当将 native HDMI 连接的 HDMI-2 屏幕断开后,对应的 smarthome 应用也同时退出

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

root@verdin-imx8mp-06849028:~# HDMI disconnected...

root@verdin-imx8mp-06849028:~# ps -aux |grep smarthome

root         645  0.0  0.0   2944  1152 ttymxc2  S+   06:28   0:00 grep smarthome

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

c). 当native HDMI 连接的 HDMI-2 屏幕重新连接后,对应的 smarthome 应用也同时启动

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

root@verdin-imx8mp-06849028:~# HDMI connected...

root@verdin-imx8mp-06849028:~# ps -aux |grep smarthome

root         650 72.3  1.8 1007248 74052 ?       Ssl  06:28   0:04 /usr/share/qtsmarthome-1.0/sm

arthome

root         662  0.0  0.0   2944  1280 ttymxc2  S+   06:28   0:00 grep smarthome

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

5). 总结

本文基于 NXP i.MX8MP 处理器平台测试了 Yocto Linux 下HDMI 显示器热插拔情况下对应显示应用同步启动和停止。

参考文档

https://blog.csdn.net/qq_17292655/article/details/134670878

http://www.dtcms.com/wzjs/394961.html

相关文章:

  • 分类信息多城市网站网站联盟营销
  • 做淘宝客怎么建网站网站制作建设
  • 在线咨询网站模板军事新闻最新
  • 免费网站重生做军嫂手机建站教程
  • 做网站最贵海外推广
  • 网站栏目页怎么做seo优化的作用
  • 网站建设需要的资料杭州seo网站推广
  • 定制网站建设提供商网店培训
  • 做球迷网站百度搜索推广登录入口
  • 怎样上传网站程序seo营销课程培训
  • 网站怎么做身份验证旅游最新资讯 新闻
  • 西安易扬众和网站建设深圳推广网络
  • 合肥网站建设求职简历seo搜索引擎优化论文
  • 企业网站推广联系方式广告宣传费用一般多少
  • 贵阳百度公司建网站电话seo诊断方法步骤
  • 七牛 wordpressseo博客网址
  • 怎样在网上建网站做电商生意百度收录推广
  • 政府网站外文版建设评估抖音视频seo霸屏
  • 中国建设银行招聘网站通知今日广州新闻最新消息
  • 无锡网页建站武汉网站推广很 棒
  • 在中国做博彩网站违法吗网站自助建站系统
  • 网站如何制作做吸引客户seo监控系统
  • 招聘网站如何做百度信息流推广和搜索推广
  • 政务公开网站建设意义关于友情链接的作用有
  • 卫浴响应式外贸网站建设视频营销成功的案例
  • 嘉瑞建设有限公司网站广告精准推广平台
  • 自己做的网站不能用手机访问网站seo思路
  • 郑州微科网站建设seo网站怎么优化
  • 网站建设和执纪监督百度百科创建
  • 主机屋做淘宝客网站外包网站