[Raspberry Pi]如何用VNC遠端控制樹莓派(Ubuntu desktop 23.04)?

之前曾利用VMware探索CentOS,熟悉Linux操作系統的指令和配置運作方式,後來在樹莓派價格飛漲的時期,遇到貴人贈送Raspberry Pi 4 model B / 8GB,這下工具到位了,索性跳過樹莓派官方系統(Raspberry Pi OS),直接裝起Ubuntu做實機測試和應用。

當時利用Ubuntu 22.04做了些簡單的應用,包含配置Apache和MySQL等等伺服器,並讓使用者在BS架構(Bowser-server)下,可用網頁簡易操作開發版並取得感測器數據。近期打算用樹莓派做一個通信協定的模擬數據測試,其在開關機的過程出現死當,剛好可以重做映像檔,試試Ubuntu 23.04。

關於遠端控制樹莓派的方式,一般有CLI(Command Line Interface)和GUI(Graphical User Interface)兩種方式,簡言之,可理解為分別遠端到樹莓派的終端機(terminal),用文字傳送指令,以及遠端樹莓派的GNOME桌面。其中遠端桌面方式又可分為RDP(Remote Desktop Protocol)和VNC(Virtual Network Computing); 而遠端到樹莓派終端機的方式一般用SSH(Secure SHell)。以前將樹莓派作為Apache和MySQL伺服器,用SSH遠端並輸入命令行指令即足以啟用或停止伺服器和防火牆,同時只要其開機並連上網路,即可用SSH遠端。然而,若使用window系統內建的遠端桌面軟體(RDP),需登入用戶桌面後,才能順利連線。

此次趁安裝Ubuntu desktop 23.04,一併安裝VNC遠端桌面,期望讓樹莓派重新開機後且尚未登入用戶桌面時,亦能順利遠端樹莓派並登入用戶桌面。在安裝VNC遠端桌面前,先來檢視SSH和RDP是否能順利遠端連線。在Ubuntu desktop 23.04中,SSH和RDP的設定與22.04沒有差異,簡單紀錄如下:

SSH:
++樹莓派端(被控端)++

sudo apt update #取得update清單

sudo apt install openssh-server #安裝ssh server

sudo systemctl start ssh #啟用ssh服務

sudo service ssh status #查看ssh服務是否為active狀態

++電腦端(控制端)++

ssh 樹莓派用戶帳號@樹莓派IP

RDP:
++樹莓派端(被控端)++

++++

++電腦端(控制端)++

++++

來到本文主軸,VNC遠端桌面的安裝方式如下:

  1. 連結到RealVNC官網下載VNC安裝程式到樹莓派中,其中選擇arm64版本,表示適用於64bits。

2.下載的檔案為.tar.gz壓縮檔,可在終端機中先解壓縮,語法如下。

tar -xvf VNC-Connect-Installer-1.3.0-Linux-ARM64.tar.gz

3.接下來點擊解壓縮後的檔案,進到安裝畫面如下。樹莓派為被控端,所以應安裝的軟體為VNC Server。

4.完成上述的安裝過程後,接著在終端機輸入下列查看指令,確認VNC是否為啟動狀態(active)。

systemctl status vncserver-x11-serviced.service

systemctl status vncserver-virtuald.service

5.請仔細查看是否有下列異常訊息,若有,請繼續執行第6個步驟。
/usr/bin/vncserver-x11-core: error while loading shared libraries: libbcm_host.so.0: cannot open shared object file: No such file or directory.

vncserver-x11-serviced: Server exited with status 127, restarting in 5s

6.第5步驟說明找不到libbcm_host.so.0,需要在/usr/lib/aarch64-linux-gnu中建立函式庫連結,語法如下。

cd /usr/lib/aarch64-linux-gnu

sudo ln libvcos.so /usr/lib/libvcos.so.0

sudo ln libvchiq_arm.so /usr/lib/libvchiq_arm.so.0

sudo ln libbcm_host.so /usr/lib/libbcm_host.so.0

sudo ln libmmal.so /usr/lib/libmmal.so.0

sudo ln libmmal_core.so /usr/lib/libmmal_core.so.0

sudo ln libmmal_components.so /usr/lib/libmmal_components.so.0

sudo ln libmmal_util.so /usr/lib/libmmal_util.so.0

sudo ln libmmal_vc_client.so /usr/lib/libmmal_vc_client.so.0

sudo ln libvcsm.so /usr/lib/libvcsm.so.0

sudo ln libcontainers.so /usr/lib/libcontainers.so.0

過程中,可能會出現類似下列幾條失敗的回應訊息,不影響,只要libbcm_host.so.0順利建立即可。

ln: 存取 'libmmal.so' 失敗: 沒有此一檔案或目錄

ln: 存取 'libmmal_core.so' 失敗: 沒有此一檔案或目錄

ln: 存取 'libmmal_components.so' 失敗: 沒有此一檔案或目錄

7.接著在終端機輸入下列啟動VNC服務指令,可搭配上述的查看指令,確認其啟動狀態。

sudo systemctl enable vncserver-virtuald.service

sudo systemctl enable vncserver-x11-serviced.service

sudo systemctl start vncserver-virtuald.service

sudo systemctl start vncserver-x11-serviced.service

8.若有出現該VNC的icon,即是VNC Server已經安裝成功。另外,對該icon點擊右鍵,可看到功能清單,包含常用於Viewer端和Server端的File Transfer功能。

9.安裝完樹莓派端的VNC Server後,接著只要在電腦端安裝VNC Viewer,若電腦端的操作系統為window系統,可直接點擊該RealVNC官網連結,下載安裝後,即可看到VNC Viewer介面。如此一來,當樹莓派重新開機後且尚未登入用戶桌面時,亦能順利遠端樹莓派並登入用戶桌面,達到無需對樹莓派插接螢幕,鍵盤和滑鼠的真正本地(LAN or VPN)遠端操控。(OS:初步達到減少機房和電腦桌之間的來回奔波,降低運動量...)

然而,上述僅限於同一個本地網域的使用場景。若要進一步做到跨網域的遠端桌面,可進一步設定RealVNC cloud connection, 步驟如下:

1.用帳號登入Lite-RealVNC官網,選擇LITE版本和點擊Active,其可支持一位使用者操控三台遠端裝置的服務。

2.回到安裝VNC server的被控端裝置,點擊VNC icon, 並在清單中選擇Licensing,會出現如下圖對話視窗等等,依序填上VNC的帳號和密碼,並選擇Next.

3.選擇允許cloud和direct connection,並選擇Next,其中可依據個人需求自行設定密碼(VNC password),不一定要使用操作系統的密碼。

4.完成設定後,應可看到下圖摘要內容。

5.此時檢視剛已登入官網的畫面,應可看到下圖已設定的裝置狀態,點擊connect,其會啟動電腦端(控制端)的VNC Viewer軟體,並將該被控端設定在Viewer中,往後跨網域的遠端連線只要點選Viewer軟體中的被控端裝置,不用再進到官網中。

參考資料:

  1. #installing-vnc-on-raspberry-pi

  2. #What-are-cloud-connections-and-direct-connections

  3. #establishing-a-direct-connection

  4. #Lite-RealVNC

相关推荐
zzzhpzhpzzz1 分钟前
Ubuntu如何查看硬件型号
linux·运维·ubuntu
蜜獾云3 分钟前
linux firewalld 命令详解
linux·运维·服务器·网络·windows·网络安全·firewalld
o(╥﹏╥)37 分钟前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
娶不到胡一菲的汪大东41 分钟前
Ubuntu概述
linux·运维·ubuntu
Yuan_o_1 小时前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端
Sunyanhui11 小时前
牛客网 SQL36查找后排序
数据库·sql·mysql
那就举个栗子!1 小时前
Ubuntu 20.04下Kinect2驱动环境配置与测试【稳定无坑版】
linux·ubuntu
灯火不休➴1 小时前
[Xshell] Xshell的下载安装使用、连接linux、 上传文件到linux系统-详解(附下载链接)
linux·运维·服务器
Lukea111 小时前
【新教程】Ubuntu server 24.04配置无线网WiFi
linux·ubuntu·教程
小峰编程1 小时前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生