博客專欄

        EEPW首頁 > 博客 > 嵌入式 ARM 平臺配置遠程桌面

        嵌入式 ARM 平臺配置遠程桌面

        發布人:toradex 時間:2019-07-08 來源:工程師 發布文章

        By Toradex秦海

        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協議來登錄基于WindowsRDP支持)的遠程桌面服務器,詳細請參考如下:

        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:<DISPLAY#>

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

         

         

        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端進行連接訪問

                                                      image001.png

         

         

        6). 總結

        本文示例了基于ARM嵌入式平臺進行遠程桌面clientserver配置的方法供參考。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

        51單片機相關文章:51單片機教程




        關鍵詞:

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 盱眙县| 舞阳县| 新宁县| 永春县| 叶城县| 登封市| 建阳市| 万荣县| 尉氏县| 武穴市| 华亭县| 禄劝| 宜章县| 盐亭县| 定安县| 师宗县| 河津市| 安徽省| 连云港市| 驻马店市| 三门峡市| 阿巴嘎旗| 贞丰县| 黄平县| 大余县| 太白县| 元氏县| 剑阁县| 屯门区| 宣汉县| 亳州市| 宁阳县| 沐川县| 崇信县| 乐山市| 怀柔区| 绥化市| 大同市| 兴化市| 晋中市| 绥棱县|