• 在嵌入式平台中如何实现广域网下的远程登录控制?

1 项目需要

  • 在IM.X6q硬件平台,Linux4.1.15内核版本中实现在广域网下进行远程登录控制。
  • 主控机为Windows机器,被控机是IMX6平台的Linux系统
  • 被空机与主控机都必须能够连接互联网

2 解决方案

使用开源软件VNC+花生壳进行内网穿透,连接外网。

  • 如何使用VNC+花生壳进行内网穿透实现广域网下的远程控制?

参看下图:

  • 具体实现步骤如下:
  1. 首先使被控主机和主控机能够联网。并且将花生壳软件移植到被控机器。
  2. 将开源软件VNC的客户端和服务端分别移植到主控机和被控机中。
  3. 申请花生壳免费域名,并注册一个护照。
  4. 在被控机上,将花生壳的软件登录到花生壳官网服务器。并运行VNC服务端程序。
  5. 在主控端使用VNC客户端或者直接使用浏览器登录之前注册的域名
  6. 通过花生壳官网服务器的中转,主控机将连接到被控机,并通过VNC服务端获取到的数据,通过花生壳服务器将数据返回给主控机,达到主控机可以控制被控机的功能。

3 首先实现局域网下的VNC远程控制

在实现广域网下的远程控制功能之前,我们这里先实现局域网下的远程控制功能。

首先下载X11VNC源码:点击下载

然后将源码拷贝到Linux系统解压,并进入到源码目录,然后使用下面的命令进行源码编译:

$ tar -xjvf x11vnc-0.9.13.tar.gz
$ cd x11vnc-0.9.13
$CC=arm-fsl-linux-gnueabi-gcc CFLAGS=-O2 ./configure --host=arm-linux --without-x –
prefix=/home/zsl/work/system/x11vnc-0.9.13/_INSTALL/
$ make
$ make install

生成名为x11vnc的可执行程序。将该可执行程序拷贝到IMX6开发板使用下面命令即可:

./x11vnc -noipv6 -rawfb /dev/fb0 -pipeinput UINPUT:touch,tslib_cal=/etc/pointercal,direct_abs=/dev/input/event2,nouinput,dragskip=4 -clip 
1024x768+0+0

最后在Windows主机上下载vnc客户端,将Widows主机与Linux客户机用网线进行连接,并置于同一局域网。然后再VNC客户端中输入Linux服务端中的IP地址,进行远程登录即可控制服务端的界面。

4 总结

  • 目前先实现在局域网内进行远程控制,后面实现了在广域网下的远程控制后会继续写入博客中

学习交流加左侧联系方式