快捷搜索:

嵌入式 ARM 平台配置远程桌面

关键词:

arm

teamviewer

vnc

择要:在PC平台经远程桌面连接已经是异常方便了,而现在在嵌入式ARM平台,因为远程节制或者远程调试的必要,设置设置设备摆设摆设远程桌面的需求也越来越多,本文就着重演示基于嵌入式ARM平台实现远程桌面办事器端和客户端利用示例。

1). 简介

在PC平台经远程桌面连接已经是异常方便了,而现在在嵌入式ARM平台,因为远程节制或者远程调试的必要,设置设置设备摆设摆设远程桌面的需求也越来越多,本文就着重演示基于嵌入式ARM平台实现远程桌面办事器端和客户端利用示例。

本文演示所应用的ARM平台来自Toradex基于NXP iMX6Q SoC平台的Apalis iMX6 ARM核心板。

2). 筹备

a). Apalis iMX6Q ARM核心版共同Apalis Evaluation Board载板,连接调试串口UART1(载板X29)到开拓主机方便调试。更多关于Apalis iMX6共同Apalis Evaluation Board载板的阐明请参考Datasheet和开拓上手指南。

b). Apalis iMX6Q 安装基于Toradex Linux BSP V2.8 并集成Qt opensource 5.9基础库的Embedded Linux,系统基于Ycoto Project/OpenEmbedded 编译情况进行编译,编译措施请参考这里,编译好的Linux Image安装措施请参考这里。

3). Apalis iMX6 WinCE 系统下远程桌面设置设置设备摆设摆设

a). Apalis iMX6 除了本文下面要演示的Embedded Linux系统,也支持WinCE系统,是以这里也将WinCE系统下远程桌面设置设置设备摆设摆设做简单列举,但并不做相关测试演示。

b). Apalis iMX6 WinCE 作为远程桌面Client设置设置设备摆设摆设,经由过程CETSC 对象,应用RDP协议来登录基于Windows(RDP支持)的远程桌面办事器,具体请参考如下:

https://developer.toradex.cn/knowledge-base/remote-desktop-protocol-rdp-on-windows-ce

c). Apalis iMX6 WinCE 作为远程桌面Server设置设置设备摆设摆设,经由过程VNC Server 对象,应用VNC协议来供支持VNC协议的Client登录,具体请参考如下:

https://developer.toradex.cn/knowledge-base/VNC-Server-(WinCE)

4). Apalis iMX6 Embedded Linux 系统下远程桌面设置设置设备摆设摆设之Client端

a). 经由过程 FreeRDP 对象,应用RDP协议连接 RDP 远程桌面Server端(Windows 主机为主)

./ 安装 FreeRDP 软件,可以经由过程下面两种措施:

// 经由过程OE情况直接编译到Embedded Linux Image里面去

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

# add freerdp to build/conf/local.conf

IMAGE_INSTALL_append = " freerdp"

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

// 或者经由过程OE情况编译出对应的ipk安装包,然后在Apalis iMX6模块系统上面经由过程opkg敕令来安装

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

# compile freerdp related ipk package in OE envirionment

$ bitbake freerdp

# cp below ipks to Apalis iMX6 and install

$ cd deploy/ipk/armv7at2hf-neon-mx6qdl

$ scp freerdp_1.0.0-7677-g62da9d2-r0_armv7at2hf-neon-mx6qdl.ipk libfreerdp1.2_1.0.0-7677-g62da9d2-r0_armv7at2hf-neon-mx6qdl.ipk root@ipaddress_aplis_imx6:/home/root/

$ opkg install libfreerdp1.2_1.0.0-7677-g62da9d2-r0_armv7at2hf-neon-mx6qdl.ipk

$ opkg install freerdp_1.0.0-7677-g62da9d2-r0_armv7at2hf-neon-mx6qdl.ipk

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

./ 经由过程下面示例敕令连接RDP 远程桌面Server,更多设置设置设备摆设摆设选项可以经由过程履行 “xfreerdp --help” 来查看

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

$ xfreerdp /u:username /p:password /v:server ipadress or domain name

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

b). 经由过程 Tightvnc viewer对象,应用VNC协议连接 VNC 远程桌面Server端(Linux 主机为主)

./ 安装 Tightvnc软件,可以经由过程下面两种措施:

// 经由过程OE情况直接编译到Embedded Linux Image里面去

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

# add tightvnc to build/conf/local.conf

IMAGE_INSTALL_append = " tightvnc"

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

// 或者经由过程OE情况编译出对应的ipk安装包,然后在Apalis iMX6模块系统上面经由过程opkg敕令来安装

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

# compile tightvnc related ipk package in OE envirionment

$ bitbake tightvnc

# cp below ipks to Apalis iMX6 and install

$ cd deploy/ipk/armv7at2hf-neon

$ scp libxaw6-6_1.0.13-r2_armv7at2hf-neon.ipk tightvnc-viewer_1.3.10-r2_armv7at2hf-neon.ipk root@ipaddress_aplis_imx6:/home/root/

$opkg install libxaw6-6_1.0.13-r2_armv7at2hf-neon.ipk

$ opkg install tightvnc-viewer_1.3.10-r2_armv7at2hf-neon.ipk

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

./ 经由过程下面示例敕令连接VNC 远程桌面Server,更多设置设置设备摆设摆设选项可以经由过程履行 “vncviewer --help” 来查看

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

$ vncviewer vncserver_ipadress:

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

5). Apalis iMX6 Embedded Linux 系统下远程桌面设置设置设备摆设摆设之Server端

a). 经由过程 X11vnc对象,应用VNC协议供给基于X11桌面办事器的远程桌面Server端

./ 安装 X11vnc 软件,可以经由过程下面两种措施:

// 经由过程OE情况直接编译到Embedded Linux Image里面去

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

# add x11vnc to build/conf/local.conf

IMAGE_INSTALL_append = " x11vnc"

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

// 或者可以在Apalis iMX6模块系统上面经由过程opkg敕令来在线安装

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

# on Apalis iMX6 Linux, make sure it has internet access

$ opkg update

$ opkg install x11vnc

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

./ 经由过程下面示例敕令启动远程桌面Server,然后即可经由过程vncviewer client来进行连接

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

# on Apalis iMX6, startup vnc server

$ x11vnc -display :0

# on vnc client, use vncviewer to visit

$ vncviewer apalis_imx6_ipadress:0

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

b). 经由过程 Teamviewer Host对象,建立teamviewer远程桌面Server端

./ 因为teamviewer软件本身的特点,可以供给穿透局域网的远程桌面办事,而上述所列的软件默认都是只能在局域网内事情

./ 安装 Teamviewer Host软件

// 在Linux主机上面下载Teamviewer Host针对armv7架构的tar压缩包,解压并从新打包为tar.bz2压缩包以便于在Apalis iMX6系统上面解压

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

# on Linux host

$ wget https://download.teamviewer.com/download/linux/teamviewer-host_armhf.tar.xz

$ tar Jxf teamviewer-host_armhf.tar.xz

$ tar cjvf teamviewer-host_armhf.tar.bz2 teamviewer/

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

// 将teamviewer安装包上传到Apalis iMX6系统长进行解压并反省安装依附情况,teamviewer必要Qt的一些基础库。

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

# on Apalis iMX6 Linux

$ tar xjvf teamviewer-host_armhf.tar.bz2

$ cd teamviewer

# run below command to check the dependency requirement

./tv-setup checklibs

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

// 因为本文这里编译的image绝大年夜多半Qt库都已经有了,个别没有的可以经由过程OE情况零丁编译出来ipk安装包,再在Apalis iMX6上面进行安装。经由过程上面打印信息看到缺少的是 libqt5x11extras5 依附库,参考如下进行安装

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

# on OE envirionment

$ bitbake qtx11extras

# cp below ipks to Apalis iMX6 and install

$ cd deploy/ipk/armv7at2hf-neon

$ scp libqt5x11extras5_5.9.7+git0+34dcc9ea76-r0_armv7at2hf-neon.ipk root@ipaddress_aplis_imx6:/home/root/

$ opkg install libqt5x11extras5_5.9.7+git0+34dcc9ea76-r0_armv7at2hf-neon.ipk

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

// 反省依附没有问题后,经由过程下面敕令进行安装,安装历程中碰到提示都选择Yes。

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

$ ./tv-setup install

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

// 安装成功后,改动teamviewer开机自启动systemd办事文件 /etc/systemd/system/termviewerd.service 为如下内容

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

[Unit]

Description = TeamViewer remote control daemon

After = systemd-networkd-wait-online.service network.target network-online.target dbus-org.freedesktop.network1.service

Wants = dbus-org.freedesktop.network1.service network-online.target

Requires = dbus-org.freedesktop.network1.service

[Service]

Type = forking

PIDFile = /var/run/teamviewerd.pid

ExecStart = /opt/teamviewer/tv_bin/teamviewerd -d

Restart = on-abort

StartLimitInterval = 60

StartLimitBurst = 10

[Install]

WantedBy = multi-user.target

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

// 别的,我这里碰到了random pool 初始化延迟的问题导致teamviewer开机自启动timeout掉败,可以经由过程安装下面ipk经办理

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

# random pool initiate will print below kernel message when finished

kernel: random: crng init done

# on OE environment, compile rng-tools ipk package

$ bitbake rng-tools

# cp below ipks to Apalis iMX6 and install

$ cd deploy/ipk/armv7at2hf-neon

$ scp rng-tools_5-r0_armv7at2hf-neon.ipk root@ipaddress_aplis_imx6:/home/root/

$ opkg install rng-tools_5-r0_armv7at2hf-neon.ipk

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

// 上述项目都设置设置设备摆设摆设完成后重启

./ 卡机后轻细等待一小段光阴teamviewr办事即可自启动成功,这时刻打开teamviewr界面根据提示的ID等信息,经由过程teamviewer client端进行连接造访

6). 总结

本文示例了基于ARM嵌入式平台进行远程桌面client和server设置设置设备摆设摆设的措施供参考。

您可能还会对下面的文章感兴趣: