博客 / 詳情

返回

Jetson Nano windows遠程連接 mstsc 配置教程 黑屏閃退問題排查 解決方案

一 遠程連接

先直接用顯示器連接Jetson Nano,點擊右上角的wifi圖標進入到網絡設置界面,這裏我用的公司內部交換機直連的局域網,配置靜態ip地址,配置完成後點擊應用即可。

接着開啓遠程桌面功能,點擊左上角的“活動”,搜索“共享”,打開共享設置界面,開啓“遠程桌面”功能,允許其他用户查看你的桌面,並允許控制你的桌面。

Jetson Nano的圖形渲染策略是英偉達自己的,當我們登錄賬號時是無法遠程連接登錄的,有兩種解決辦法:一是關閉自動登錄,二是新建一個專門用來遠程連接的賬户。我這裏用了第二種。下面的各項配置最好也是在新建的賬户下進行。

由於我用習慣了Windows系統的遠程桌面連接工具,所以就不考慮VNC和No Machine了,Windows自帶的遠程連接mstsc走的協議是RDP,Ubuntu系統默認是沒有安裝RDP服務端的,我們需要手動安裝xrdp。

sudo apt update
sudo apt install xrdp
# 設置開機自啓
sudo systemctl enable xrdp

xrdp默認使用的是GNOME作為後端圖形服務器,但是我們用的是xrdp的X11協議,會與GNOME衝突,因此需要將桌面環境改成兼容性更好的xfce4。

sudo apt-get install xfce4
echo xfce4-session > ~/.xsession
sudo vi /etc/xrdp/startwm.sh
# 在文件開頭添加一行:
xfce4-session

安裝完成後,重啓Jetson Nano,然後在Windows系統下打開遠程桌面連接,輸入Jetson Nano的ip地址,點擊連接即可。

遠程連接黑屏閃退問題解決
如果能夠順利的登錄上去這部分就不用看,但是如果出現黑屏閃退的問題,可以參考下面的解決辦法:

sudo cat /var/log/xrdp.log

首先打印一下xrdp的日誌文件看看報錯
image-36.png
這裏可以看到報錯是因為SSL證書密鑰文件權限問題,xrdp無法讀取密鑰文件導致連接失敗。,我們需要修改一下key.pem的權限,這裏不能直接chomd這個文件的權限,改了還是會閃退,需要我們將xrdp的用户加到ssl-cert組中,ssl-cert組默認有讀取key.pem文件的權限。

# 將 xrdp 用户添加到 ssl-cert 組
sudo adduser xrdp ssl-cert
# 重啓 xrdp 服務
sudo systemctl restart xrdp

我這裏改了還是會閃退,重新打印了一下xrdp的log,沒看見什麼錯誤信息,於是往下排查會話的日誌。

cat /home/lzz/.xsession-errors

如下圖所示,發現問題是還是在啓動GNOME渲染桌面環境
這裏可以看到報錯是因為SSL證書密鑰文件權限問題,xrdp無法讀取密鑰文件導致連接失敗。,我們需要修改一下key.pem的權限,這裏不能直接chomd這個文件的權限,改了還是會閃退,需要我們將xrdp的用户加到ssl-cert組中,ssl-cert組默認有讀取key.pem文件的權限。

# 將 xrdp 用户添加到 ssl-cert 組
sudo adduser xrdp ssl-cert
# 重啓 xrdp 服務
sudo systemctl restart xrdp

我這裏改了還是會閃退,重新打印了一下xrdp的log,沒看見什麼錯誤信息,於是往下排查會話的日誌。

cat /home/lzz/.xsession-errors

如下圖所示,發現問題是還是在啓動GNOME渲染桌面環境
這裏可以看到報錯是因為SSL證書密鑰文件權限問題,xrdp無法讀取密鑰文件導致連接失敗。,我們需要修改一下key.pem的權限,這裏不能直接chomd這個文件的權限,改了還是會閃退,需要我們將xrdp的用户加到ssl-cert組中,ssl-cert組默認有讀取key.pem文件的權限。

# 將 xrdp 用户添加到 ssl-cert 組
sudo adduser xrdp ssl-cert
# 重啓 xrdp 服務
sudo systemctl restart xrdp

我這裏改了還是會閃退,重新打印了一下xrdp的log,沒看見什麼錯誤信息,於是往下排查會話的日誌。

cat /home/lzz/.xsession-errors

如下圖所示,發現問題是還是在啓動GNOME渲染桌面環境
image-37.png

# 1. 創建 .xsession 文件
echo "startxfce4" > /home/lzz/.xsession
chmod +x /home/lzz/.xsession

# 2. 創建 .xsessionrc 設置環境變量
cat > /home/lzz/.xsessionrc << EOF
export XDG_SESSION_DESKTOP=xfce
export XDG_CURRENT_DESKTOP=XFCE
EOF

# 3. 更新 startwm.sh
sudo bash -c 'cat > /etc/xrdp/startwm.sh << EOF
#!/bin/sh
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
export XDG_SESSION_DESKTOP=xfce
export XDG_CURRENT_DESKTOP=XFCE
exec startxfce4
EOF'

sudo chmod +x /etc/xrdp/startwm.sh

# 4. 清除舊的會話緩存
rm -rf /home/lzz/.cache/sessions/*

# 5. 重啓 xrdp
sudo systemctl restart xrdp

完成以上步驟後,重新連接遠程桌面,終於成功登錄上去了。

# 1. 創建 .xsession 文件
echo "startxfce4" > /home/lzz/.xsession
chmod +x /home/lzz/.xsession

# 2. 創建 .xsessionrc 設置環境變量
cat > /home/lzz/.xsessionrc << EOF
export XDG_SESSION_DESKTOP=xfce
export XDG_CURRENT_DESKTOP=XFCE
EOF

# 3. 更新 startwm.sh
sudo bash -c 'cat > /etc/xrdp/startwm.sh << EOF
#!/bin/sh
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
export XDG_SESSION_DESKTOP=xfce
export XDG_CURRENT_DESKTOP=XFCE
exec startxfce4
EOF'

sudo chmod +x /etc/xrdp/startwm.sh

# 4. 清除舊的會話緩存
rm -rf /home/lzz/.cache/sessions/*

# 5. 重啓 xrdp
sudo systemctl restart xrdp

完成以上步驟後,重新連接遠程桌面,終於成功登錄上去了。

# 1. 創建 .xsession 文件
echo "startxfce4" > /home/lzz/.xsession
chmod +x /home/lzz/.xsession

# 2. 創建 .xsessionrc 設置環境變量
cat > /home/lzz/.xsessionrc << EOF
export XDG_SESSION_DESKTOP=xfce
export XDG_CURRENT_DESKTOP=XFCE
EOF

# 3. 更新 startwm.sh
sudo bash -c 'cat > /etc/xrdp/startwm.sh << EOF
#!/bin/sh
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
export XDG_SESSION_DESKTOP=xfce
export XDG_CURRENT_DESKTOP=XFCE
exec startxfce4
EOF'

sudo chmod +x /etc/xrdp/startwm.sh

# 4. 清除舊的會話緩存
rm -rf /home/lzz/.cache/sessions/*

# 5. 重啓 xrdp
sudo systemctl restart xrdp

完成以上步驟後,重新連接遠程桌面,終於成功登錄上去了。
image-38.png

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.