2014年2月28日 星期五

樹苺派的 VNC 遠端連線

最近忙著復習測試 Java Swing, 已一週未碰樹苺派板子了, 故索性關機休息, 反正已經兩天熱機測試穩得很 (其實美光晶片就很穩, 除非想超頻, 否則不須要改換三星晶片, 差價約 200 元). 今日在硬派製作看到這一篇 :

# 硬 Pi 製作 - 基礎篇 - VNC 連線
# 遠端遙控軟體 - VNC / UltraVNC 心得

哈哈, 不錯不錯, 這正是我要的. 我按圖索驥, 照著這位大哥的指引操作一番, 哈哈哈, 成功地從我的 Windows 連線樹苺派, 進入 X 視窗了, 以下是操作實錄 :

首先在 Windows 上用 Putty 連線樹苺派, 登入後先鍵入下列指令下載安裝 tightvncserver 套件, 注意中間要輸入 Y 以便繼續安裝 :

pi@raspberrypi ~ $ date
Fri Feb 28 14:04:47 CST 2014
pi@raspberrypi ~ $ sudo apt-get install tightvncserver
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  xfonts-base
Suggested packages:
  tightvnc-java
The following NEW packages will be installed:
  tightvncserver xfonts-base
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. (安裝了兩個額外套件)
Need to get 6,967 kB of archives.
After this operation, 9,988 kB of additional disk space will be used. (需要約 10 M 空間)
Do you want to continue [Y/n]? Y  (按 Y 繼續安裝)
Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main tightvncserver armhf 1.3.9-6.4 [786 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main xfonts-base all 1:1.0.3 [6,181 kB]
Fetched 6,967 kB in 7s (913 kB/s)
Selecting previously unselected package tightvncserver.
(Reading database ... 65274 files and directories currently installed.)
Unpacking tightvncserver (from .../tightvncserver_1.3.9-6.4_armhf.deb) ...
Selecting previously unselected package xfonts-base.
Unpacking xfonts-base (from .../xfonts-base_1%3a1.0.3_all.deb) ...
Processing triggers for man-db ...
Processing triggers for fontconfig ...
Setting up tightvncserver (1.3.9-6.4) ...
update-alternatives: using /usr/bin/tightvncserver to provide /usr/bin/vncserver (vncserver) in auto mode
update-alternatives: using /usr/bin/Xtightvnc to provide /usr/bin/Xvnc (Xvnc) in auto mode
update-alternatives: using /usr/bin/tightvncpasswd to provide /usr/bin/vncpasswd (vncpasswd) in auto mode
Setting up xfonts-base (1:1.0.3) ...
pi@raspberrypi ~ $   (出現 SHELL 提示號就表示安裝完畢了)

VNC 套件安裝完畢後, 還要做一些設定, 按照該文步驟,須利用 nano 編輯器複製一份 script 檔叫做 tightvncserver 放在 /etc/init.d/ 下面, 改變此程式為 755 可執行權限後, 加入開機程序中, 這樣只要樹苺派一開機就會啟動 VNC 伺服端了 :

pi@raspberrypi ~ $ sudo nano /etc/init.d/tightvncserver  (編輯 SCRIPT)
pi@raspberrypi ~ $ sudo chmod 755 /etc/init.d/tightvncserver  (更改權限)
pi@raspberrypi ~ $ sudo update-rc.d tightvncserver defaults  (加入開機程序)
update-rc.d: using dependency based boot sequencing
pi@raspberrypi ~ $ tightvncserver  (執行伺服端 SCRIPT)

這時它會詢問密碼, 預設為 12345678 :

You will require a password to access your desktops.

Password: (這裡輸入 12345678 後按 ENTER)
Verify:  (再輸入 12345678 一次)
Would you like to enter a view-only password (y/n)? n  (不是只有看而已, 故輸入 n)

New 'X' desktop is raspberrypi:1

Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log

這樣樹苺派裡的伺服端就 OK 了, 接著要去 TIGHTVNC 網站下載客戶端軟體, 有 Windows 32/64 安裝版的, 也有 Java 免安裝版的 (須安裝 JRE), 我先用 Java 的 (是一個 zip 檔) :




解開 zip 後, 點擊執行其中的 tightvnc-jviewer.jar 這個 Java 壓縮檔, 若已安裝 JRE 就會出現一個用 Swing 寫的登入視窗 :



先在 PuTTY 用 ifconfig 指令查出樹苺派的 IP 為 192.168.2.107, 埠號為 5901, 按 Connect 即連線樹苺派的 VNC 伺服器, 會彈出視窗詢問密碼, 這不是樹苺派本身的密碼, 而是 VNC 的預設密碼 12345678,



按 Login 即出現樹苺派的 X 視窗了, 打開 LXterminal 執行預先用 nano 編輯的 Java Swing 程式 JLabel1.java 如下 :



真不錯, Swing 預設的 Metal 主題到哪裡都長的一模一樣. 要關掉 VNC 連線只要按上方最右邊的叉叉就可以了, 注意, 如果按了那個全螢幕鈕, 要再回到 Windows 可用 Ctrl+Alt+Del :


所以只要一塊樹苺派板子加上網路線就可以了, 根本不須要 HDMI 線.

我在學習上常常因為一時興起就來個 180 度轉向, 像 jQuery 學個七八成功力突然想寫 App, 馬上切換到 HTML5; 剛測試完 GeoLocation, 又因為代班時無聊, 在電腦中找到以前放在硬碟中的 ExtJS 電子書, 看著看著就著迷起來, 又一頭栽入 ExtJS 世界中.

前陣子買了樹苺派, 其 Rasbian Linux 作業系統已經內建 Python 與 Java 開發環境, 呵呵, 為了在 Linux 下執行 Java, 這又搬出陳年老梗的 Java 來玩, 曾經也覺得自己實在太喜新厭舊了 (但常是冷飯熱炒), 功夫沒練全又轉向, 學得太雜, 又忘得太快, 挺煩惱的. 不過, 想到笑傲江湖中風清揚說的, "大丈夫行事愛怎樣便怎樣, 行雲流水, 任意所至, 甚麼武林規矩, 門派教條, 全都是放他媽的狗臭屁!", 沒錯, 生活中太多不想做但又得做之事, 綁手綁腳, 殊屬無奈; 但在學習功夫上, 容許自己任性一下, 想幹啥就幹啥, 沒那麼多條條框框, 豈不快活!

2 則留言 :

Unknown 提到...

Would you like to enter a view-only password (y/n)? n
請問如果在這一段,動作太快直接Y確定了有辦法去哪邊改設定嗎?
還是需要重新卸載再安裝一次?

小狐狸事務所 提到...

您好, 這我倒沒試過 (因為我太謹慎了, 每一步都想好久), 您可以參考這篇試試 :
How can I configure a view-only password?
https://support.realvnc.com/knowledgebase/article/View/233/5/how-can-i-configure-a-view-only-password