在 NVIDIA Jetson Orin Nano(運行基於 Ubuntu 的 Jetson Linux / GNOME 桌面環境)上安裝與配置 VNC 伺服器,最常用的方法是使用內建的 Vino 服務,或是安裝 x11vnc。以下為最推薦的 Vino 內建 VNC 服務 設定步驟:
方法一:啟用 Jetson 內建的 Vino VNC 伺服器(最推薦)
Jetson 系統通常預先安裝了 vino,只需進行設定與開機自啟動即可。
1. 安裝 Vino(若系統未安裝):bash
- sudo apt-get update
- sudo apt-get install vino -y
複製代碼
2. 設定 Vino 參數(關閉加密與連線確認提示):bash
- gsettings set org.gnome.Vino prompt-enabled false
- gsettings set org.gnome.Vino require-encryption false
複製代碼
3. 設定 VNC 存取密碼(將 <your_password> 換成你的密碼,密碼會轉成 Base64 格式):bash
- echo -n '<your_password>' | base64
複製代碼
將輸出的一串 Base64 字串設定到 Vino:bash
- gsettings set org.gnome.Vino authentication-methods "['vnc']"
- gsettings set org.gnome.Vino vnc-password "['<base64_encoded_password>']"
複製代碼
4. 設定開機自動啟動 VNC 服務:
將系統的 vino-server.service 建立軟連結至 Autostart 資料夾,或透過 Systemd 啟動:bash
- mkdir -p ~/.config/autostart
- cp /usr/lib/systemd/user/vino-server.service ~/.config/autostart/
複製代碼
或者啟用 systemd 服務:
- sudo ln -s /usr/lib/systemd/system/vino-server.service /etc/systemd/system/default.target.wants/
複製代碼
在基於 Ubuntu 的 Jetson 系統中,Vino VNC 伺服器必須在使用者成功登入圖形桌面(GDM/LightDM)後才會啟動。如果你的 Jetson Orin Nano 目前是無螢幕(Headless)狀態,或者重啟後停在使用者登入畫面(尚未輸入密碼登入),Vino 就不會被觸發,因此 5900 連接埠就不會開啟。
開啟「自動登入」(最簡單,適用有接螢幕或 dummy 插頭)
使用 Vino,最快的方法是讓 Jetson 開機時不需輸入密碼直接自動登入桌面:
- 在 Jetson 的圖形介面中,開啟 Settings (設定) -> Users (使用者)。
- 點擊右上角的 Unlock (解鎖) 並輸入密碼。
- 將 Automatic Login (自動登入) 開關切換為 開啟 (ON)。
- 重新開機,系統自動進入桌面後,5900 連接埠就會正常開啟。
手動啟動指令
請在終端機中改輸入以下這行:
- export DISPLAY=:0
- /usr/lib/vino/vino-server &
複製代碼
5. 重新啟動 Jetson Orin Nano:
這時重啟後並無法使用 VNC Viewer(例如 RealVNC Viewer)輸入 Jetson的IP地址:5900 進行連線。
需要自動啟動VNC腳本
Jetson orin nano vncserver
步驟一:建立 VNC 自動啟動腳本
- 使用 vi 建立並編輯檔案:
- sudo vi /usr/local/bin/start-vnc.sh
複製代碼
進入畫面後,請先按下鍵盤上的英文字母 i(這會切換到編輯模式,左下角會顯示 -- INSERT --)。 - 複製並貼上以下內容:
- #!/bin/bash
- export DISPLAY=:0
- sleep 5
- /usr/lib/vino/vino-server &
複製代碼
貼上後,按下鍵盤左上角的 Esc 鍵退出編輯模式。 - 輸入 :wq(冒號、w、q),然後按下 Enter 鍵即可存檔並離開。
接著,賦予腳本執行權限:
- sudo chmod +x /usr/local/bin/start-vnc.sh
複製代碼
修正步驟二:建立開機服務檔案(Systemd)
- 使用 vi 建立服務檔案:
- sudo vi /etc/systemd/system/vino-vnc.service
複製代碼
一樣先按下 i 進入編輯模式。 - 複製並貼上以下內容(請確認 User=xxx 的 xxx 是你的使用者名稱):
- [Unit]
- Description=Auto Start Vino VNC Server
- After=graphical.target
- [Service]
- Type=forking
- User=xxx
- ExecStart=/usr/local/bin/start-vnc.sh
- Restart=on-failure
- [Install]
- WantedBy=graphical.target
複製代碼
按下 Esc 鍵,接著輸入 :wq 並按下 Enter 存檔離開。
步驟三:啟用並重開機測試
依序執行以下指令來啟用剛剛建立 market 的服務:
- sudo systemctl daemon-reload
- sudo systemctl enable vino-vnc.service
- sudo systemctl start vino-vnc.service
複製代碼
現在可以放心重新開機了:
|