【Jetson 教學】NVIDIA Jetson Orin 遠端桌面設定指南:xrdp + XFCE4 避開 0x904 閃退教學

在開發 NVIDIA Jetson Orin 系列(Nano / NX)時,許多開發者習慣使用遠端桌面(RDP)來檢視 GUI 介面或影像畫面。然而,使用 Ubuntu 預設的 GNOME 桌面搭配 xrdp 時,經常會遇到 0x904 錯誤、登入後黑屏 或 畫面閃退 的狀況。


本篇文章將帶大家透過 xrdp 結合輕量化的 XFCE4 桌面環境,建立一個非常穩定且順暢的遠端桌面連線環境!

📌 預備條件與環境說明

  • 目標設備:NVIDIA Jetson Orin Nano / NX(JetPack / Ubuntu 20.04 或 22.04 LTS)

  • 測試帳號:<your_username>(請替換為您的系統帳號)

  • 預設 IP:<your_jetson_ip>(例如 192.168.x.x)

  • 連線工具:VS Code Remote-SSH 或任何 SSH 終端機

🛠️ 步驟一:安裝 xrdp 服務與 XFCE4 桌面

請開啟 SSH 終端機連線至 Jetson,依序執行以下指令安裝必要套件:

Bash
# 1. 更新套件清單並安裝 xrdp 與 XFCE4
sudo apt-get update
sudo apt-get install -y xrdp xfce4 xfce4-goodies

# 2. 將使用者加入 ssl-cert 群組,解決權限問題(請將 <your_username> 改為您的帳號)
sudo adduser $USER ssl-cert

# 3. 設定服務開機自動啟動
sudo systemctl enable --now xrdp

🛠️ 步驟二:優化色彩與指定桌面環境

這是避開 0x904 閃退 的關鍵步驟!我們需要將 xrdp 的色彩深度降為 24 位元,並指定預設載入輕量的 XFCE4 桌面。

Bash
# 1. 設定預設載入 XFCE4 桌面
echo "startxfce4" > ~/.xsession

# 2. 清除殘留的桌面權限鎖定檔
rm -rf ~/.Xauthority ~/.ICEauthority

# 3. 將 xrdp 最大色彩深度調整為 24 位元 (避免 0x904 閃退)
sudo sed -i 's/max_bpp=32/max_bpp=24/g' /etc/xrdp/xrdp.ini

# 4. 重啟 xrdp 服務套用設定
sudo systemctl restart xrdp

🛠️ 步驟三:重置桌面服務(釋放本機鎖定)

如果你的 Jetson 原本開啟了「本機自動登入」,gdm3 會佔用桌面 Session 導致遠端連線失敗。請執行以下指令重置:

Bash
sudo systemctl restart gdm3
💡 小建議:如果希望未來開機後遠端連線更穩定,可以編輯 /etc/gdm3/custom.conf,將 AutomaticLoginEnable=true 那一行最前面加上 # 註解掉,停用本機自動登入。

🚀 步驟四:從 Windows 發起遠端桌面連線

  1. 在 Windows 按下 Win + R 鍵,輸入 mstsc 開啟「遠端桌面連線」。

  2. 輸入 Jetson 的 IP 位址:<your_jetson_ip>。

  3. 點擊 「顯示選項」 $\rightarrow$ 切換至 「顯示」 頁籤,將色彩深度調整為 「全彩 (24 位元)」。

  4. 點擊 「連線」,在 xrdp 登入畫面選擇 Xorg,輸入您的帳號與密碼即可順利登入!


❓ 常見問題與排除 (Troubleshooting)

Q1:連線時出現錯誤碼 0x904 或登入後瞬間中斷?

  • 原因:通常是因為實體螢幕/本機已登入同一個帳號,或是 RDP 32 位元色彩與 GNOME 發生衝突。

  • 解法:

    1. 在 SSH 終端機執行 sudo systemctl restart gdm3 強制清理 Session。

    2. 確認已將 max_bpp=24 寫入 /etc/xrdp/xrdp.ini。

    3. 確認 Windows 遠端桌面用戶端將色彩設為 24 位元。

Q2:開啟遠端桌面的同時,還能使用 VS Code Remote-SSH 嗎?

  • 答案:完全沒問題!SSH(Port 22)與 xrdp(Port 3389)屬於獨立的傳輸通道,可以同時並存。建議平時以 VS Code 撰寫程式碼與執行命令,遠端桌面僅在需要觀看 GUI 視窗時開啟使用。

留言

這個網誌中的熱門文章

在 VS Code 安裝Opencode

使用VS code開發Python程式 - Matplotlib繪圖

LabVIEW教學: 如何在VI中使用.dll檔