注:自己曾经尝试过很多次使用VNC远程登录odroid-XU4的开发板,但是连接后均显示未解码的连接,刚开始烧写的是odroid官方的ubuntu系统,我靠,就是因为烧写了这个坑爹的系统,害的自己弄了一星期都没解决远程登录跟直接用显示器显示的问题。有些linux系统是没有图形界面的,只有终端界面,因为图形界面比较耗费cpu资源,占用内存。
后来由于使用putty不能登录ssh时,被迫重装系统,幸好自己看了下官网的一些非官方的系统介绍,其介绍的很好,其网站为:odroidbian系统,后来就下载了相应的XU4开发板的镜像,烧进去后,接着使用IP地址通过putty来进行登录终端,首先要更新系统,
使用指令为:
sudo apt-get update
所以,我得出了为什么我前面使用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
我们可以远程端运行XU4里的应用程序,其结果图如下: (其运行时间会比直接在本机上运行的大)
我的连接界面如下:(其远程终端的界面取决于xstartup的配置,可以跟主机上的不一致,但是指令扥操作产生的效果是一样的,例如输入reboot,会把主机给关了)
其中有个要注意的就是:很多连接是出现灰色屏幕的,这是由于一些桌面环境是3D,但是vnc是不支持3D桌面的,所以就会出现灰屏,例如ubuntu桌面环境其是一种unity类型的vnc是不能显示的,所以此时要安装别的桌面环境,然后配置xstartup文件,主要是这个环境配置要对,其他的真的没什么要注意的,
可以使用下面的指令来查看,桌面环境:
其是查看了桌面环境也没啥用,关键是要看/.vnc/xstarup 文件里配置的是什么环境,则在远程端看到的就是什么环境,
一种解决没有解码的连接问题的方法,不过对自己没有
ubuntu的一些桌面环境,其是在登录界面右上角的一个图标点击出来的
2.XU4开发板的视频接口是HDMI的,其在VGA、DVI几种视频接口的里的联系
其中自己使用的显示屏是直接在XU4开发板上的HDMI接口出来,通过转接器转为VGA口(无源)然后就接在了液晶屏上就可以显示了。自己还测试了一种,是VGA出来的口再转接为HDMI口接在具有HDMI口的显示屏上,但是没有显示出来,是黑屏的。
参考文献:
使用eMMC做储存器时如何烧写镜像