2020年2月8日 星期六

Nvidia Jetson Nano 測試筆記 (二) : 安裝 VNC 伺服器

昨天順利將 Nvidia Jetson Nano 安裝 Linux 起來, 也安裝了 Nano 編輯器與 SSH 伺服器, 方便用筆電進行無頭存取. 但 Putty 的 SSH 連線只能登入 Ubuntu 的終端機介面, 無法進入 Genome 桌面, 必須使用 VNC 才行. 因為 Jetson Nano 的 Ubuntu 18.04 本身沒有像樹莓派的 Rasbian 那樣預載 VNC 伺服器, 需自行安裝.

我找到下面這篇文章, 以下依據其程序進行安裝設定 :

 # 在Ubuntu 18.04 架設VNC Server


1. 安裝 vnc4server 伺服器 : 

安裝指令如下, 除了 vnc4server 外, 還需要 xfce4 與其 goodies 套件 :

sudo apt-get install vnc4server xfce4 xfce4-goodies

下載過程顯示 "需要下載 31.8 MB 的套件檔。此操作完成之後,會多佔用 139 MB 的磁碟空間。", 可見 VNC 有點小佔空間.

安裝好後用 vncpasswd 指令設定 VNC 登入密碼 :

tony1966@jetson-nano-tony1966:~$ vncpasswd 
Password:
Verify:


2. 編輯啟動設定檔 : 

然後用 nano 編輯使用者目錄 (此處為 /home/tony1966) 底下的 VNC 啟動設定檔 .vnc/xstartup :
tony1966@jetson-nano-tony1966:~$ sudo nano ~/.vnc/xstartup 

輸入如下內容後按 CTRL + O 與 CTRL + X 存檔 :

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4

然後用 chmod 更改此啟動檔權限為 755 (擁有者有 rwx 權限, 群組與其他使用者僅有 rx 權限) : 

tony1966@jetson-nano-tony1966:~$ sudo chmod 755 ~/.vnc/xstartup    


3. 啟動 VNC 伺服器 : 

伺服器啟動指令在登入者目錄的子目錄 .VNC 下的 vncserver (其實不用切換, 在任何目錄接可啟動) : 

root@jetson-nano-tony1966:~# cd /home/tony1966  
root@jetson-nano-tony1966:/home/tony1966# cd .vnc   
root@jetson-nano-tony1966:/home/tony1966/.vnc# vncserver    

Warning: jetson-nano-tony1966:1 is taken because of /tmp/.X11-unix/X1
Remove this file if there is no X server jetson-nano-tony1966:1

New 'jetson-nano-tony1966:3 (root)' desktop is jetson-nano-tony1966:3

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/jetson-nano-tony1966:3.log

結果顯示有警告, 說因為 .X1-unix 下有一個 X1 檔而無法在建立編號 1 桌面,  所以建立編號 3 桌面, 建議要刪除 X1 檔. 我找到下面這篇, 看起來是可以刪除 : 


root@jetson-nano-tony1966:~# rm -f /tmp/.X11-unix/X1   

然後將之前建立的 3 號桌面刪除, 重新執行 vncserver 指令就不會有警告, 且順利建立編號 1 的虛擬桌面 : 

root@jetson-nano-tony1966:~# sudo vncserver -kill :3 

root@jetson-nano-tony1966:~# vncserver    

New 'jetson-nano-tony1966:1 (root)' desktop is jetson-nano-tony1966:1   

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/jetson-nano-tony1966:1.log

VNC 伺服器會開啟 5901 埠, 用 netstat 與 grep 檢查通訊埠 : 

root@jetson-nano-tony1966:~# netstat -tupln | grep 5901     
tcp6       0      0 :::5901                 :::*                    LISTEN      3160/Xvnc4

可見 VNC 伺服器已順利開啟. 

注意, 此 X1 檔每次開機系統都會自動產生, 所以每次都要刪掉, 否則無法建立編號 1 桌面, 而下面用的 tigervnc viewer 又必須使用編號 1 桌面. 


4. 下載 tigervnc viewer 客戶端軟體 :    

到 GitHub 下載 Tiger VNC : 


我下載的是 64 為元 binary 可執行檔 (exe) : 


此程式不須安裝直接可執行, 在 VNC viewer 欄填入 Jetson Nano 在區網中所取得之 IP 與預設埠號 5901, 按 "Connect" 連線 :




然後輸入前面用 vncpasswd 所設定之密碼再按 "OK" : 




雖然有出現桌面, 但卻是黑幕一片, WHY ??? 




另外我照步驟用 nano 編輯了系統服務設定檔 : 

root@jetson-nano-tony1966:~# sudo nano /etc/systemd/system/vncserver@.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=u
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -localhost no -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

按 CTRL+O 與 CTRL+X 存檔後啟動服務 : 

root@jetson-nano-tony1966:~# sudo systemctl enable vncserver@1.service
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@1.service → /etc/systemd/system/vncserver@.service.  

但結果還是一樣, 原因不明, 所以 VNC 實驗暫且打住, 先留下紀錄存查, 有空再來測試.


2020-02-13 :

今天在 Jetson Nano 的瀏覽器上從 Real VNC 網站下載 VNC connect 來安裝 Real VNC Server , 可惜不管是 Linux 版還是 Raspberry 版都與 Jetson Nano 不合而無法安裝, 必須是 arm64 版才行, 所以只好放棄.

不過我又找到一篇使用 Ubuntu 本身的分享桌面方法 (vivo VNC) :

Nvidia AGX Xavier/Jetson Nano遠端登入remote by VNC

我照其步驟安裝設定, 確實可以在區網遠端存取 Ubuntu 桌面, 只需三個步驟, 紀錄如下 :


1. 安裝 GNOME 桌面設定編輯器 dconf-editor :

tony1966@jetson-nano-tony1966:~$ sudo apt-get install dconf-editor 

這安裝指令可以用 PuTTY 遠端下指令.


2. 編輯 GNOME 桌面設定 : 

開啟端機, 下 dconf-editor 指令 :

tony1966@jetson-nano-tony1966:~$ dconf-editor 

這指令必須在 Jetson Nano 本機操作, 因為它會開啟一個 GUI 視窗 :




然後沿著 /org/gnome/desktop/remote-access 路徑一直點下去, 就會出現設定表了, 將其中的 "prompt-enabled" 與 "require-encryption" 這兩項切到 OFF, 然後關閉視窗即可 :





3. 編輯 Vivo VNC 伺服器設定檔 : 

Vivo VNC 伺服器的 schema 需補上一些缺漏的設定才能正常運作 :

sudo nano /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml 

開啟後游標移到最底下的 </schema> 前面, 將下列設定複製貼上, 然後按 CTRL + O 與 CTRL + X 存檔跳出 :

    <key name='enabled' type='b'>
      <summary>Enable remote access to the desktop</summary>
      <description>
        If true, allows remote access to the desktop via the RFB
        protocol. Users on remote machines may then connect to the
        desktop using a VNC viewer.
      </description>
      <default>false</default>
    </key>




這樣就完成設定了, 使用 VNC Viewer 連線 Jetson Nano :






可見 Vivo VNC Server 是使用 5900 埠通訊.

沒有留言 :