2015年12月25日 星期五

Windows 與遠端 ubuntu / raspberry pi 建立 X-session 連線

說到 Windows 要和遠端的 Linux (如 ubuntu 或 Raspberry Pi) 連線,最簡便的方式就利用 SSH 和 putty。但是,putty 有個限制 --- 只能執行命令列的程式。當我們遇到圖形介面的程式時,必須回到 Linux 本機,將 X-window 啟動,並執行該程式。

有辦法在遠端建立一個 X-window 的連線嗎? 事實上,X-windows 本身就是 server-client 架構,這樣的想法基本上是可行的。

以下是我搜尋到的方法,目前用起來還OK。



1. Local 端 (windows) 需要 X-server

下載 MobaXterm for windows (portable 免安裝),這是一套免費的 X-Server ,可以利用 local 的 Windows 環境,來架構出 X-Server。

2. 遠端 (ubuntu/ RPi ) 需要 X-Session manger

甚麼是 X-Session manger ? 它是 X-client 的一部分,負責將上層 APP 所需要的繪圖命令送給 X-server。有點像是一個中間管理層的概念。

如果在遠端已經執行了 X-window  (如 ubuntu),那麼基本上在系統中已經有一個 X-Session manger 了,我們不需要做任何事。

但是如果遠端系統沒有安裝 X-window (如 RPi) ,是否就應該安裝呢? 事實上,我們可以考慮使用 LXDE (Lightweight X11 Desktop Environment),並且啟動它的  X-Session manger,也就是所謂的 LXSession。

下面是官網對 LXSession 的介紹:
LXSession
標準相容的 X11 作業階段管理器,支援透過 HAL 與 GDM 關機、重新開機與暫停

3. 試用紀錄

A. 平台: 

我使用手邊的 RPi 與 Win7,Raspbian版本是 2015-05-05-raspbian-wheezy

B. 在 Win7 執行 MobaXterm:

點擊 Sessions -> New Session 按鈕,和 RPi 建立一個 SSH連線。



C. 安裝並執行 lxsession:

SSH 連線建立後,在提示符號下安裝 lxsession 並放到背景執行:
sudo apt-get install lxsession
lxsession &
有趣的是,LXDE的 File Manger 會自動跑出來,而且這視窗還關不掉。


D. 試試瀏覽器:

在此我以 Firefox 當作試驗品。在 SSH shell 下,用以下指令安裝並執行:
sudo apt-get install iceweasel
firefox
然後瀏覽器視窗就在 Win7 畫出來啦。



E. ubuntu 也可以嗎?

是可以的! 只要同樣照著上面的步驟做就可以了。但特別要注意的是,若你的 ubuntu 已經執行了 X-window,那麼 lxsession 是可以不用安裝和執行的。也就是說,步驟C. 可以省略。

沒有留言:

張貼留言