【QNX】在linux Ubuntu14.04下移植Qt程序至QNX6.5.0操作系统

前言##

本文内容主要为如何在Ubuntu14.04上将Qt程序移植到装有Qnx6.5.0操作系统的嵌入式设备(x86架构)上,以供有需要的开发者参考。

准备工作##

1.在Ubuntu上安装Qt4.7.1;

2.在Ubuntu上安装QNX Momentics IDE,具体的安装步骤可以参考我以前写的博客:
http://blog.csdn.net/wangqingchuan92/article/details/78511824
这里写图片描述

3.下载这两个压缩包:qt_qnx_host_linux_x86.tar.gz,qt_qnx_targets.tar.gz(可以向你们的QNX经销商索要)

具体移植过程

1.编写一个Qt小程序,能够编译并运行在linux中:
这里写图片描述

2.打开linux终端,进入超级用户模式,输入指令:echo “${QNX_TARGET%/target/*}”,定位Momentics IDE的安装目录:
这里写图片描述

3.将qt_qnx_host_linux_x86.tar.gz解压到Momentics IDE的安装目录,例如我的:
这里写图片描述

4.进入Qt工程文件夹 ,新建一个文本文件,命名为“Makefile“,然后打开该文本文件,输入如下内容,保存退出:

LIST=OS CPU VARIANT
MAKEFILE=GNUmakefile
include recurse.mk
 ## eof

这里写图片描述

5.在该工程文件夹中,新建名为"nto-arm-le"(针对ARM),“nto-arm-le-v7”(针对ARM)以及 “nto-x86-o”(针对x86)子文件夹:
这里写图片描述

6.在每个文件夹中,新建一个文本文件,命名为"GNUmakefile",然后打开该文本文件,输入如下内容,保存退出:

ifndef QCONFIG
QCONFIG=qconfig.mk
endif
include $(QCONFIG)
include $(MKFILES_ROOT)/qmake-qt.mk
 ## eof

这里写图片描述

7.接下来就是常规编译:打开终端进入Qt工程文件夹,依次输入make clean,make,make install指令,这样就开始编译了:
这里写图片描述

8.打开三个子文件夹中的任意一个,可以看到编译后的可执行文件:
这里写图片描述

9.以上都是在Ubuntu上进行操作,接下来的步骤就是主要在QNX操作系统上进行。首先将主机和目标机通过网线连接设置同一网段,然后在QNX操作系统上新建一个用户,具体设置可以参考我以前写的博客:
http://blog.csdn.net/wangqingchuan92/article/details/78456302

10.在Ubuntu中,将qt_qnx_targets.tar.gz通过ftp传送至QNX中(简单,就不贴图了),然后在QNX上,打开终端,进入压缩包所传至的文件夹,输入指令: # tar xvf qt_qnx_targets.tar.gz -C/usr/qnx650,将文件解压至/usr/qnx650。

11.继续在QNX中,将解压后将/usr/qnx650/target/qnx6/usr以及/usr/qnx650/target/qnx6/x86/usr中的二进制文件拷贝到QNX的/usr目录下,完成对目标机的配置:

 # cp -r /usr/qnx650/target/qnx6/usr/* /usr
 # cp -r /usr/qnx650/target/qnx6/x86/usr/* /usr

12.继续在QNX中,编辑/root/.profile配置文件,输入指令vi /etc/profile,然后在文件末尾输入:

 export QWS_DISPLAY=qnx
 export QWS_KEYBOARD=qnx
 export QWS_MOUSE_PROTO=qnx
 export XDG_CONFIG_HOME=/root
 export QMAKESPEC=unsupported/qws/qnx-i386-g++

13.回到Ubuntu中,通过ftp将Qt工程拷贝到QNX系统上,然后换到QNX上,进入Qt工程所传至的文件夹,找到编译的可执行文件,打开终端,输入如下指令修改权限(简单,就不贴图了):chmod 777 ./test1。

14.点击下图的红框进行操作,进入QNX文本模式:
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

15.此时进入文本模式。首先回车一下,输入login为root,password为空,然后输入指令:
/usr/photon/bin/devi-hid –Pr mouse

16.进入到Qt工程文件夹所在目录,找到可执行文件,输入:./test1 -qws运行程序,成功:
这里写图片描述

17.输入Ctrl+c退出Qt程序。

PS:虽然步骤16能够运行Qt程序,但会发现运行Qt程序后,键盘不能够输入字符,不过可以通过写脚本的方式让Qt程序运行时能够使用键盘。在步骤15,输入完root和空密码后,进入Qt程序所在文件夹,用vi建立一个脚本命名为do.sh,脚本内容:

#/bin/sh   
chmod +x ./test1
/usr/photon/bin/devi-hid  –Pr kbd mouse
./test1  -qws

保存退出脚本后,给该脚本加可执行权限:

#chmod +x ./do.sh

最后执行该脚本,这样就可以在Qt程序中使用键盘了:
这里写图片描述

但是这把用Ctrl+c退出程序系统无反应,所以用鼠标点击右上角的关闭“X”退出到文本模式,但是进入到文本模式后用键盘输入无反应,这个问题先放着,等以后解决。

以上。

参考文档:
1.http://blog.csdn.net/quyunfei/article/details/8977864
2.Qt 4.7.1 for QNX systems

这个Qt 4.7.1 for QNX systems文档我上传到网上了,可以通过这个地址下载,:http://download.csdn.net/download/wangqingchuan92/10118987

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QNX QTD(QNX Trusted Device)是基于QNX操作系统的一个安全子系统,旨在提供安全的设备管理和数据保护功能。它的原理是通过引入多层安全策略和技术来实现设备的安全性。 QNX QTD的核心原理包括以下几个方面: 1. 安全分区:QNX QTD使用安全分区来隔离和保护敏感数据和功能。安全分区是一个独立的执行环境,具有自己的内存空间、文件系统和进程。它与其他非安全分区相互隔离,防止信息泄露和未授权访问。 2. 安全认证:QNX QTD支持各种安全认证机制,如数字证书、双因素认证等。这些认证机制确保只有经过授权的设备或用户可以访问安全分区,并对其进行身份验证。 3. 安全通信:QNX QTD提供了安全通信机制,确保在安全分区之间的数据传输是加密和完整性保护的。这样可以防止数据被窃听或篡改。 4. 安全启动:QNX QTD通过引入可信启动链来确保设备在启动过程中的安全性。它使用数字签名和哈希值验证引导加载程序和其他启动组件的完整性,以防止恶意软件的引入。 5. 安全策略:QNX QTD允许管理员定义和实施安全策略,以根据特定的需求和风险模型来保护设备和数据。这包括访问控制、权限管理、安全审计等。 总之,QNX QTD通过多层安全策略和技术来保护设备和数据的安全性。它提供了安全分区、安全认证、安全通信、安全启动和安全策略等功能,以确保设备在操作过程中的保密性、完整性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值