<QNX; Linux Host开发环境搭建

Posted 小贝也沉默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了<QNX; Linux Host开发环境搭建相关的知识,希望对你有一定的参考价值。

写在最前面

不得不吐槽一句, baidu想搜索一点资料,真的好难啊.尤其是这种小众的(或许在baidu看来是小众)资料,难上加难. 原本以为非常容易的事情,结果倒腾了一个下午.

Linux Host 系统安装

关于QNX的介绍,中文资料非常多,最直接的,可以参看百度百科(原谅我又在推荐baidu了….).
我采用的是ubuntu14.04/16.04作为Host PC,安装WMware,将QNX安装到虚拟机. 安装Ubuntu和WMware的过程不表.

我使用的是上述网站对应版本的QNX, 文件名: qnxsdp-6.5.0-201007091524-dvd.iso. 该文件可以免费下载,但是需要申请License Key,可以通过官网发邮件去申请(听说需要用公司邮箱,否则会被拒绝,或者通过学校去搞教育版).

WMware安装完成后,打开WMware,选择创建虚拟机.



选择Custom方式,以此下一步,在Install operating system from界面中选择第二项Use ISO image,当然,如果你有光盘,可以选择通过光盘安装.选择的镜像文件就是从官网下载的qnxsdp-6.5.0-201007091524-dvd.iso文件.



Guest Operating System中选择6.Other, Version选择Other.如下图所示:



其中有一项是选择网卡的类型, 选择如下所示:



其他的一路默认就OK了.在安装的过程中,会要求输入License Key. 安装很快,安装完成后可以直接进入系统.直接使用root用户登录,密码是空.



配置静态IP

进去之后,可以配置静态IP(看个人喜好,我喜欢使用固定IP,避免每次要使用时通过ifconfig查看). 当然,静态IP的配置可以通过命令行搞定,和linux非常类似.但有图形界面可以很直观的搞定静态IP.如下图所示



选择Connection方式为Manual,在下面直接输入IP和Netmask,在上方Network选项卡中可以配置网关和DNS.



开启ssh服务

vi /etc/ssh/sshd_config

修改文件内容,更改#PermitRootLogin noPermitRootLogin yes. 然后依次执行

slay sshd
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

mkdir -p /var/chroot/sshd/etc
chown -R root.root /var/chroot/sshd
chmod 744 /var/chroot/sshd
/usr/sbin/sshd

第一行的命令slay sshd应该会输出slay: Unable to find process sshd的提示,应该本来就没有ssh进程在运行.
上述命令仅仅是开启ssh服务,但是在远程ssh时,由于root用户并没有密码,是不能完成登录的.所以需要执行

passwd

给root用户创建密码.这个时候就可以使用远程主机ssh登录了.

QNX SDP 在Ubuntu14.04/16.04上的安装

从官网可以直接下载得到qnxsdp-6.5.0-201007091524-dvd.iso文件,首先挂载镜像:

sudo mkdir /tmp/QNX
sudo mount -o loop /path/to/qnxsdp-6.5.0-201007091524-dvd.iso /tmp/QNX
cd /tmp/QNX
sudo ./qnxsdp-6.5.0-201007091524-linux.bin

按照其他教程,这个时候应该会出现图形引导界面,傻瓜式点击完成IDE安装.但我在尝试的时候,出现的是如下结果:



PS: 上述结果截图于Ubuntu16.04, 在Ubuntu14.04电脑上, 结果比较类似,但是没有Aborted (core dumped)错误提示.
上述错误是由于使用的是64-bit系统,需要安装32-bit支持库.最后在QNX官网上面找到下述需要安装的内容.

sudo apt-get install ia32-libs

在官网教程中,只是提示输入如上命令,安装32-bit支持库,而ia32-libs在Ubuntu14.04的源中已经删除了.直接执行上述命令会提示找不到ia32-libs. 解决方案如下:

Ubuntu 14.04

依次执行如下指令即可

sudo -s
cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" > ia32-libs-raring.list
apt-get update
apt-get install ia32-libs

上述执行结束之后,就可以正常运行qnxsdp-6.5.0-201007091524-linux.bin, 在Ubuntu14.04测试,可以正常启动图形化引导界面.

Ubuntu 16.04

在Ubuntu16.04中已经不支持ia32-libs了,使用下述方式进行替代.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1

虽然不会出现错误,但是无法启动图形引导界面,很是奇怪.只能尝试使用命令行安装.执行下述命令

sudo -s
cd /tmp/QNX
./qnxsdp-6.5.0-201007091524-linux.bin -console

在Ubuntu16.04测试,执行结果如下图所示:



类似于安装系统,也需要输入License Key. 然后按照提示一路回车就好.安装也还是挺快的.最终结果如下所示:



完成后需要logout. 再次login. 打开命令行, 输入qde(心中万只XX马奔腾而过), 出现了错误. 很有可能,之前图形化界面不能正常出现,也是因为同样的原因.错误截图如下:



解决办法:

sudo apt-get install libgtk2.0-0:i386 libxtst6:i386 \\
libcanberra-gtk-module:i386 gtk2-engines-murrine:i386 libdbus-glib-1-2:i386 \\
libgail-common:i386 libatk-adaptor:i386

安装完成之后, 再次在命令行中输入qde, 熟悉的界面弹出来了.截图如下, 到此,大功告成.



PS: 写到最后, 后经验证, 在之前安装过程中, 未能正常弹出引导界面,就是因为最后的那几个库没有正确安装.再次尝试运行qnxsdp-6.5.0-201007091524-linux.bin, 截图如下:



以上是关于<QNX; Linux Host开发环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

QNX Hypervisor 2.2 用户手册4.2 支持的构建环境

QNX Hypervisor 2.2 用户手册4.2 支持的构建环境

QNX Hypervisor 2.2 用户手册4.4 构建Host

QNX Hypervisor 2.2 用户手册4.4 构建Host

QNX Hypervisor 2.2 用户手册4.3 获取host组件

QNX Hypervisor 2.2 用户手册4.3 获取host组件