tag 标签: teamviewer

相关博文
  • 热度 19
    2019-7-8 18:03
    3391 次阅读|
    0 个评论
    By Toradex 秦海 1). 简介 在 PC 平台经远程桌面连接已经是非常方便了,而现在在嵌入式 ARM 平台,由于远程控制或者远程调试的需要,配置远程桌面的需求也越来越多,本文就着重演示基于嵌入式 ARM 平台实现远程桌面服务器端和客户端应用示例。 本文演示所使用的 ARM 平台来自 Toradex 基于 NXP iMX6Q SoC 平台的 Apalis iMX6 ARM 核心板。 2). 准备 a).Apalis iMX6QARM 核心版配合 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 $ wgethttps://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 为如下内容 ----------------------- 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 Type = forking PIDFile = /var/run/teamviewerd.pid ExecStart = /opt/teamviewer/tv_bin/teamviewerd -d Restart = on-abort StartLimitInterval = 60 StartLimitBurst = 10 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 配置的方法供参考。