如何让Linux与Windows CE协同工作

背景介绍

Linux是一个类似于UNIX 的操作系统,它起源于芬兰一个名为Linus Torvalds 的业余爱好,但是现在已经是最为流行的一款免费操作系统。普通用户在Linux 上办公、浏览网站、发送邮件以及玩游戏,许多大学和科研机构也Linux 来完成日常 的计算任务。在商业领域,由于Linux 系统价格低、安全性能高并且非常稳定,许 多公司均将自己的服务器构建在Linux的基础上。根据国际商用数据公司(IDC)的统计,世界上大约有三分之一的网站服务器使用Linux作为操作系统。

Windows CE,根据微软公司在Windows CE and Pocket PC: FAQ 中的定义,是操作系统开发商用以构建专有操作系统的一系列组件。原始设备制造商(OEM) 可以 向微软公司购买一个称为"Windows CE平台开发系统"的集成开发环境并利用该系 统组装和编译基于Windows CE的操作系统,该操作系统包括一系列基于Windows CE 的组件以及开发商自行开发的应用软件或者是设备驱动程序。由于基于Windows CE 的操作系统具有与微软Windows 系列操作系统相类似的用户界面,因此受到众多最 终用户以及开发商的青睐。目前Windows CE已经被广泛应用在手机,掌上型电脑,个人数字助理,快译通以及电子字典等便携式设备上。

长期以来,Windows CE设备的用户还需要配备一台基于Windows 9x/2000/NT的 主机用于与Windows CE设备交换数据。在该主机上运行微软公司提供的Windows CE 服务软件,该软件通过一条RS-232数据线与Windows CE设备建立起点对点连接,用 户可以通过这个服务软件访问Windows CE设备,但是局域网里面的其它计算机不能 够访问该Windows CE设备。如果需要使得局域网里面的其它计算机也能够访问该设备,则需要为该设备安装昂贵的专用网卡以及相关接入设备,是一种非常不经济的 解决方案。

本文利用Red Hat Linux 7.2操作系统自带的PPP服务器与Windows CE设备之间 建立起TCP/IP连接,然后在Windows CE设备上运行一个FTP服务器使得Linux主机能 够访问Windows CE设备上的资源。由于本方法基于Windows CE设备自带的RS-232数据线,不需要购买额外的任何设备,因此是一种经济实用的解决方案。此外,本文 所介绍的解决方案,对Windows 9x/2000/NT主机同样适用。

连接Linux与Windows CE
点对点数据传输协议(Point to Point Protocol, PPP)是一个通过串口线传送 IP数据包的协议。使用PPP 协议,一台计算机能够通过串口线、电话线等通讯设备登陆到远程主机并且利用该主机或者是主机所在网络的资源。在点对点通讯中包括服务器和客户机两个部分,其中客户机向服务器请求网络连接,服务器接收客户机的请求建立网络连接并分配给客户机相应的网络资源。当网络连接建立起来以后,服务器和客户机之间是严格对等的。由于Linux操作系统通常都带有PPP服务器和客 户端程序,而Windows CE操作系统通常仅带有PPP客户端程序,因此我们使用Linux 主机作为PPP服务器,Windows CE设备作为PPP客户端。

为了使用Linux主机作为PPP服务器,我们首先必须确认该主机上是否已经安装有PPP服务器程序pppd。通常该程序被安装在/usr/sbin目录下,我们可以利用下面 的命令查找该目录下是否存在这个文件:

ls /usr/sbin/pppd

最近正式发行的Linux操作系统(例如Red Hat Linux 6.x/7.x)通常都已经预先 安装有PPP服务器程序。如果Linux 主机尚未安装PPP服务器,那么我们应该首先下 载并安装一个PPP服务器程序,例如pppd2.3.4。安装该程序包可能还需要其它包的支持,由于应用程序的安装已经超出了本文的讨论范围,请感兴趣的读者自行参考 其它相关资料。

确认PPP服务器已经安装在Linux主机上之后,我们需要对Linux 主机进行一些必要的配置,为了进行这些配置我们需要拥有root权限。

建立文件/etc/ppp/peers/wince,内容如下:

       /dev/ttyS0 115200 crtscts

connect '/usr/sbin/chat -v -f /etc/ppp/wince.chat'

noauth

local

90.0.0.1:90.0.0.2

建立文件/etc/ppp/wince.chat,内容如下:

       TIMEOUT 3600

"CLIENT" "CLIENT\c"

"" "SERVER\c"

在上面的两个配置文件中,使用wince 作为文件名仅仅是用来表示这个配置文 件是给一个Windows CE设备使用的。读者也可以自行选用其它的文件名,例如palm 或者是handheld等等,但是必须保证两个文件名是一致的。

配置文件/etc/ppp/peers/wince指定使用串口ttyS0以115,200 bps的速率与客户设备建立连接,noauth参数说明在客户机请求连接的时候不需要身份认证。在这 个对等连接中,服务器(Linux 主机)的IP是90.0.0.1,客户机(Windows Ce设备)的 IP是90.0.0.2。配置文件/etc/ppp/wince.chat中的TIMEOUT参数指定服务器的等待时间,如果超过这个时间仍然没有接收到客户机的连接请求则终止当前的服务器程序。如果有读者需要更进一步的了解相关的配置,请自行参考chat以及pppd的相关 文档。

在Windows CE设备端需要做的配置相对来说比较简单。由于Windows CE默认的自动连接功能占用了该设备的串口,我们首先需要停止使用该功能。在开始菜单中选择"设置->通讯->PC连线"并将其设置为不启用与PC的连接即可停止该功能。然后我们重新建立一个连接,在开始菜单种选择"程序->通讯->连接管理器",然后点击 "新建连接"图标,将新的连接命名为Linux 并指定连接类型为"直线连接",在下一 步中指定使用COM1进行连接并设置其通讯速率为115,200,在TCP/IP 设置中指定该设备的IP为90.0.0.2。点击OK存盘以后该连接会出现在"程序->通讯"菜单里面。

利用如下命令在Linux主机上启动PPP服务器:

pppd call wince

在Windows CE 设备上启动新建的连接(程序->通讯->Linux)之后,网络连线图 标会出现在Windows CE设备的任务栏上,Linux 主机则显示如下信息表明已经成功 与Windows CE设备建立起连接:

       Serial connection established.

Using interface ppp0

Connect: ppp0 <--> ttyS0

found interface eth0 for proxy arp

local IP address 90.0.0.1

remote IP address 90.0.0.2

我们还可以使用Linux 主机提供的ping命令来验证是否已经成功与Windows CE 设备建立连接:

ping 90.0.0.2

如果Linux 主机已经成功的与Windows CE设备建立连接,那么我们应该能够看 到类似于下面的信息:

       PING 90.0.0.2 (90.0.0.2) from 90.0.0.1 : 56(84) bytes of data.

64 bytes from 90.0.0.2: icmp_seq=0 ttl=32 time=26.587 msec

64 bytes from 90.0.0.2: icmp_seq=1 ttl=32 time=19.928 msec

64 bytes from 90.0.0.2: icmp_seq=2 ttl=32 time=19.939 msec

64 bytes from 90.0.0.2: icmp_seq=3 ttl=32 time=19.947 msec

基于Windows CE的FTP软件

当我们成功的在Linux主机与Windows CE设备之间建立起PPP连接之后,下一步应该做些什么呢?当然,我们需要一些合适的程序用来在Linux 主机与Windows CE 设备之间进行文件交换。我们现在已经能够利用TCP/IP协议在Linux主机和Windows CE设备之间传输数据,很显然FTP程序是一个合适的选择。

FTP(File Transport Protocol,文件传输协议)是一种被广泛使用的在网络上进行文件交换的协议。由于数据传输可靠性的要求,FTP 是一种基于TCP/IP的传输 协议。在一个FTP 会话中包括一个服务器端和一个客户端,客户端主动连接到服务器端并向服务器发送文件传输请求,服务器端等待客户端的接入并处理客户端的文 件传输请求。

PE FTP Explorer是非常流行的基于Windows CE的FTP客户端软件,同时也是一 个功能齐全的文件浏览器。与在PC机上常用的Cute FTP和WS FTP等FTP 客户端相类 似,用户能够利用鼠标(指针)放缩本地端和服务器端的目录树,上载或者是下载文件和目录,也可以对文件或者是目录进行改名和删除。这个软件可以从CE Archive 网站(http://www.cearchives.com/ftp.html)获得。在该网站读者还可以找到另外 一个很流行的FTP客户端vxFTP。

FTP 客户端软件的功能虽然已经非常的完备而且操作简单,但是仍然不可避免的要收到便携式设备窄小的显示器的限制。如果能够在便携式设备上建立一个FTP 服务器,那么文件传输操作就可以在Linux主机上利用常用FTP客户端的进行。

ftpsrv.exe就是这样一个基于Windows CE的FTP服务器软件。这个仅有28.5 KB 的小程序,除了不提供身份认证功能和Passive 传输模式以外,能够处理大多数常 见的FTP 请求。利用微软提供的Windows CE服务软件将ftpsrv.exe上载到便携式设备的任意目录下,启动该程序以后在任务条上会出现一个类似于一台计算机连接两个便携式设备的小图标。利用指针点击该图标以后会出现一个小小的控制窗口,在这里我们可以改变FTP服务器的端口号或者是终止该程序。

ftpsrv.exe可以从 http://pda.tucows.com/或者是 http://www.oohito.com/获 得。在这两个网站读者还可以找到更多有用的小程序。

其它
如果有读者使用的是Windows 9x/2000/NT主机,那么也可以利用Windows 提供 的直线电缆连接功能与Windows CE设备建立起PPP连接。

例如:在Windows 2000主机上,从开始菜单中选择设置->网络和拨号连接->新建连接。在随后出现的网络连接向导中选择直接连接到另一台计算机并将该机器配置为主机。选择合适的通讯端口并配置通讯速率以后,该主机作为PPP 服务器等待 客户机接入。同样,在Windows CE设备上新建一个连接,指定合适的通讯端口并配 置起通讯参数以后,即可与Windows主机建立起点对点连接。由于Windows主机已经配备了动态网络地址分配(DHCP)服务器,因此Windows CE设备既可以使用实现指定的静态IP地址,也可以使用服务器实时分配的动态IP地址。但是,由于直线电缆连 接所允许的最高传输速率为19,200 bps,使用Windows 9x/2000/NT主机作为PPP 服 务器似乎比不上Linux主机实用。

如果将PPP 服务器设置为网关,则局域网里面所有的机器都可以通过改网关访 问已经连接到网络上的Windows CE设备。在Linux 主机上,可以通过ipchains将该 主机设置成透明网关;在Windows 9x/2000/NT 主机上,可以通过Win Proxy等代理服务器软件将其设置为透明网关。如果有读者需要更进一步了解如何将Linux 或者是Windows主机设置为透明网关的方法,请自行阅读其它参考资料。

文章录入:csh    责任编辑:csh

(0)

相关推荐

  • 如何让Linux与Windows CE协同工作

    背景介绍 Linux是一个类似于UNIX 的操作系统,它起源于芬兰一个名为Linus Torvalds 的业余爱好,但是现在已经是最为流行的一款免费操作系统.普通用户在Linux 上办公.浏览网站.发送邮件以及玩游戏,许多大学和科研机构也Linux 来完成日常 的计算任务.在商业领域,由于Linux 系统价格低.安全性能高并且非常稳定,许 多公司均将自己的服务器构建在Linux的基础上.根据国际商用数据公司(IDC)的统计,世界上大约有三分之一的网站服务器使用Linux作为操作系统. Windo

  • Log4j 日志文件Linux/Mac/Windows通用存放位置设置方法

    log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置) 一.场景和需求 假设我现在有3个独立的用project(暂时用maven关联起来,当然也可以不用maven),一个是提供公共服务的infrastructure,一个是提供存储的persister,一个是提供搜索的searcher,其中提供基础服务的所有的类,例如DateUtils,HttpUtils等工具类都位于目录com.chuanliu.platform.activity

  • Linux加入windows ad域步骤详解(winbindsamba方案)

    linux加入域中,一般都会想到加入LDAP中,这样管理起来方便,不过在linux下LDAP配置起来可不是很容易的,在企业办公环境中一般windows AD域占据霸主地位,配置方便嘛,针对生产环境的linux集群机器才会选择LDAP,不过有时候在办公环境中也混杂了linux机器,为了规范管理,也是需要把linux机器加入window是 AD中的. linux加入windows AD中方便操作的有两种方案(分为centos/ubuntu两种情况).都说了是方便操作,那必然是懒人的首选方法了. 1

  • 在Linux与Windows上获取当前堆栈信息的方法

    在编写稳定可靠的软件服务时经常用到输出堆栈信息,以便用户/开发者获取准确的运行信息.常用在日志输出,错误报告,异常检测. 在Linux有比较简便的函数获取堆栈信息: #include <stdio.h> #include <execinfo.h> #include <signal.h> #include <stdlib.h> #include <unistd.h> void handler(int sig) { void *array[5]; s

  • 分别在Linux和Windows下设置JVM内存的简单方法

    Linux服务器: 在/usr/local/apache-tomcat-5.5.23/bin 目录下的catalina.sh 添加:JAVA_OPTS='-Xms512m -Xmx1024m' 或者 JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m" 或者 CATALINA_OPTS="-server -Xms256m -Xmx300m" Windows服务器: 在/apache-tomcat-5.5.

  • Linux与Windows硬盘资源互访

    目前,个人电脑用户中许多人都使用Windows系统,但也安装了Linux系统,因此如何在Linux或Windows中实现硬盘资源互访就显得非常重要. Linux下访问Windows硬盘分区 在Red Hat Linux下访问Windows系统的硬盘分区很简单.因为Red Hat Linux提供了对几乎所有文件系统的支持,因此它可以直接读写Windows系统的分区.安装Red Hat Linux 时,就可以指出计算机中存在的Windows分区的位置,并指定想要将它们载入到Linux文件系统中的位置

  • cwrsync实现从linux到windows的数据同步备份

    rsync的最新版本可以从http://rsync.samba.org/rsync/获得.它的特性如下: 1.可以镜像保存整个目录树和文件系统. 2.可以很容易做到保持原来文件的权限.时间.软硬链接等等. 3.无须特殊权限即可安装. 4.优化的流程,文件传输效率高. 5.可以使用rcp.ssh等方式来传输文件,当然也可以通过直接的socket连接. 本文介绍了如何使用rsync服务从Linux到Windows进行远程备份. 一.配置服务器端 首先我们需要配置rsync,打开配置文件/etc/xi

  • 混合使用Linux和Windows

    在个人计算机上,Windos系统和Linux系统可以用来相互补充,在本文中我们将向你介绍如何在一台计算机上使用这两个系统,包括最好开始方式.有哪些文件可以使用等其他内容. 在刚刚过去的几年中,作为服务器和工作站操作系统的选择之一,Linux 已经很好的确定了自己的地位. 很多专业的用户发现,Linux还是一个很安全的网上冲浪平台.也许,Linux的安全漏洞并不比微软的操作系统少,但是,SuSE.Knoppix.Red Hat等系统都很少受到病毒攻击,因为这些系统不是黑客攻击的主要目标. 从另外一

  • Linux与Windows文件互传(VMWare)

    虚拟机无桌面的Linux 与 物理机Windows 文件互传有很多种方法,现在先说一种通过共享文件夹的形式,其他方法后续再补充 1.背景 1) 虚拟机系统:VMWare无桌面的Linux 2) 物理机系统:Win 7 3) 共享文件夹:物理机的D:\Virtual Machines\shared_vm3 要求:实现Linux 与 Windows 文件互传 注意:要通过共享文件夹实现linux与windows文件共享,必须安装 VMWare-tools ,该工具的安装可以借鉴:无桌面的linux安

  • Easypanel免费的VPS主机面板 可跨平台Linux和Windows

    细数一下,国内的能够被多数用户认可并被广泛使用的免费VPS主机面板应该是:LNMP.WDCP.AMH 4.2.LuManager等这几个了,其它的一些VPS面板要么就是功能太简单,要么就是团队继续支持和维护,要么就是开始转向收费,找一个好用的VPS面板实在不容易. 中文类的免费且好用的VPS主机面板已经越来越少了,本文要介绍的Easypanel,恐怕将会是部落介绍的最后一个中文类国人开发的VPS控制面板了.Easypanel作为一款早在2011年就已经推出的VPS面板,虽然与国外的优秀VPS面板

随机推荐