一 遠程連接
先直接用顯示器連接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的日誌文件看看報錯
這裏可以看到報錯是因為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渲染桌面環境
# 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
完成以上步驟後,重新連接遠程桌面,終於成功登錄上去了。