注:自己曾經嘗試過很多次使用VNC遠程登錄odroid-XU4的開發板,但是連接後均顯示未解碼的連接,剛開始燒寫的是odroid官方的ubuntu系統,我靠,就是因為燒寫了這個坑爹的系統,害的自己弄了一星期都沒解決遠程登錄跟直接用顯示器顯示的問題。有些linux系統是沒有圖形界面的,只有終端界面,因為圖形界面比較耗費cpu資源,占用內存。 後來由於使用putty不能登錄ssh時,被迫重裝系統,幸好自己看了下官網的一些非官方的系統介紹,其介紹的很好,其網站為:odroidbian系統,後來就下載了相應的XU4開發板的鏡像,燒進去後,接著使用IP地址通過putty來進行登錄終端,首先要更新系統,使用指令為:sudo apt-get update
不更新的話會出現,Unable to locate package錯誤,為什麼要更新?因為更新就是為了獲的最新的資源地址,然後才可以在這地址裡下載最新的資源。然後就安裝vnc,接著開啟vnc桌面1服務,注意在這個過程沒配置其他任何文件,不像網上說的要配置/etc/.vnc/xstartup.然後直接在Windows裡使用vnc進行登錄,結果就一下子又桌面了,圖如下:
所以,我得出了為什麼我前面使用vnc登錄時會出現灰色桌面,原因就是跟系統有關系,可能燒寫的ubuntu鏡像是沒有桌面環境的,或者其桌面環境是3D桌面環境(VNC是無法解碼這種桌面環境的,其就會出現灰屏)這個就是為什麼我後來在安裝了Xfce4桌面環境(2D桌面環境)後就可以使用vnc登錄ubuntu桌面的原因。網上那些很快就可以VNC登錄桌面環境的人,是因為他們剛剛好安裝的不是ubuntu系統。我在台式機上也測試過,像gnome、gnome-classic等桌面環境是不能使用VNc登錄的,你配置了xstartup文件也沒用,照樣灰屏,因為他們是3D桌面環境,VNC是無法解碼的,要成功的話,必須使用XFCe4桌面環境,可以根據我下面的教程來安裝和配置一下xstartup文件。通常我們都使用putty、secureCRT等軟件來遠程登錄linux系統,但這些軟件僅提供字符終端界面,若要像windows的遠程桌面連接那樣登錄linux的圖形界面,我們可以使用VNC這類的軟件。
VNC基本上是屬於一種顯示系統,也就是說他能將完整的窗口界面通過網絡,傳輸到另一台計算機的屏幕上.
vnc包括客戶端和服務器端,這裡我們在linux中安裝vnc-server,在windows下運行vnc-client去連接linux圖形界面:
1.ubuntu下安裝服務器端:$sudo apt-get install vnc4server
如果不知道該裝什麼軟件包,可用vnc-server來查詢軟件包_____________________________________________________________
$ sudo apt-get install vnc-server
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹
正在讀取狀態信息... 完成
軟件包 vnc-server 是一個由下面的軟件包提供的虛擬軟件包:
vnc4server 4.1.1+xorg4.3.0-37ubuntu2
tightvncserver 1.3.9-6
請您明確地選擇一個來進行安裝。
E: 軟件包 vnc-server 還沒有可供安裝的候選者
______________________________________________________________
2.配置服務器:$vi ~/.vnc/xstartup
xstartup文件的最後一行定義了vnc客戶端的界面風格,
ubuntu默認使用的是x-window-manager &
linux則默認使用twm &
默認的界面風格都只提供了終端字符界面,因此為了真正顯示圖形界面,我們要將默認風格改為gnome-session &(Gnome桌面)或者kde &(KDE桌面)
3.啟動vnc服務:$vncserver
第一次運行vncserver時會提示輸入連接密碼,之後便自動分配了一個vnc服務
___________________________________________________________
New 'jiong-desktop:1 (jiong)' desktop is xxx-desktop:1
Starting applications specified in /home/xxx/.vnc/xstartup
Log file is /home/xxx/.vnc/xxx-desktop:1.log
____________________________________________________________
其中顯示的數字就是vnc客戶端登陸時所要對應的窗口號,自此服務端已經配置完成,vnc服務也已經工作。
若要關掉vnc服務,則用 $vncserver -kill :窗口號 的格式來關閉相應vnc服務。
4.windows下使用客戶端登陸:RealVNC軟件
RealVNC包括客戶端和服務器端,我們只需要利用它的客戶端來登陸linux因此僅安裝客戶端部分(VNC Viewer)就行了。啟動vnc viewer,輸入對應地址,格式為:IP:590窗口號,如圖
當然也可以通過網頁浏覽器來登陸(需要額外的JAVA支持),浏覽器的地址格式為http:\IP:580窗口號。
點擊connect後跳出密碼對話框,輸入首次配置vncserver時設置的密碼便可登陸linux的途徑界面。
注:如果connect後無法連接登陸,提示10060錯誤,很有可能是服務器端防火牆導致,因此要麼把對應端口設為可信要麼降低防火牆設置,要麼關閉防火牆(linux可用"iptables -F"來臨時關閉防火牆)。
自己一段試驗後的總結:
其實要遠程桌面控制ubuntu(虛擬機上的系統)關鍵是要配置好 /root/.vnc/xstartup文件,但是其他的桌面系統自己沒有配置成功,例如gnome gnome-classic unity ubuntu等桌面環境,自己弄成功的是xfce桌面環境,其分為兩個步驟:安裝桌面環境;配置xstartup文件(其是指明在Windows上顯示的是什麼桌面環境)
a.sudo apt-get update
sudo apt-get install xfce4
b.安裝好後要自行新建配置文件,是的遠程登錄時默認使用xfce作為界面登錄。其指令為:
echo "xfce4-session">~/.xsession
c.配置xstartup文件,是定義vncviwer顯示的是什麼桌面環境,其跟主機上運行的界面可能不同。
配置為:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
x-sesion-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &
然後重啟一下VNC就可以連接了,其開啟指令為:
vncserver :1
我的連接界面如下:(其遠程終端的界面取決於xstartup的配置,可以跟主機上的不一致,但是指令扥操作產生的效果是一樣的,例如輸入reboot,會把主機給關了)
其中有個要注意的就是:很多連接是出現灰色屏幕的,這是由於一些桌面環境是3D,但是vnc是不支持3D桌面的,所以就會出現灰屏,例如ubuntu桌面環境其是一種unity類型的vnc是不能顯示的,所以此時要安裝別的桌面環境,然後配置xstartup文件,主要是這個環境配置要對,其他的真的沒什麼要注意的,
可以使用下面的指令來查看,桌面環境:
其是查看了桌面環境也沒啥用,關鍵是要看/.vnc/xstarup 文件裡配置的是什麼環境,則在遠程端看到的就是什麼環境,
一種解決沒有解碼的連接問題的方法,不過對自己沒有
ubuntu的一些桌面環境,其是在登錄界面右上角的一個圖標點擊出來的
2.XU4開發板的視頻接口是HDMI的,其在VGA、DVI幾種視頻接口的裡的聯系
其中自己使用的顯示屏是直接在XU4開發板上的HDMI接口出來,通過轉接器轉為VGA口(無源)然後就接在了液晶屏上就可以顯示了。自己還測試了一種,是VGA出來的口再轉接為HDMI口接在具有HDMI口的顯示屏上,但是沒有顯示出來,是黑屏的。
參考文獻:
使用eMMC做儲存器時如何燒寫鏡像