标题: 关于arm文件传输
eafoluke
新生入学
Rank: 1
注册用户



UID 167713
精华 0
积分 0(积分有什么用?)
帖子 2
阅读权限 10
注册 2006-9-20
状态 离线
发表于 2007-6-19 16:58  资料  个人空间  短消息  加为好友 
关于arm文件传输

现在正在做一个工程,需要在两个嵌入式arm板(ep9315和pxa270)上搭建一个文件传输的平台,原来没有作过,所以想请教高人专家们:应该如何搭建?能否搭建类似tcp/ip的简单协议来传输?
谢谢

顶部
不容错过的IBM 集群技术资源汇总
zhouliang55
新生入学
Rank: 1
注册用户



UID 182250
精华 0
积分 0(积分有什么用?)
帖子 25
阅读权限 10
注册 2007-3-3
状态 离线
发表于 2007-6-20 11:29  资料  个人空间  短消息  加为好友 
关注

我也有这方面的需求,也不知道怎么做
打算使用tftp传输文件,现在tftp-client已经可以了,板子可从PC机的/tftpboot目录下get 文件。现在我想在目标板上作一个tftp-server,不过现在还没有头绪---新手,望大家多多帮助!!
楼上的多多交流

顶部
zhouliang55
新生入学
Rank: 1
注册用户



UID 182250
精华 0
积分 0(积分有什么用?)
帖子 25
阅读权限 10
注册 2007-3-3
状态 离线
发表于 2007-6-20 11:40  资料  个人空间  短消息  加为好友 
继续

我看了有的说下在tftpd.tar.gz交叉编译,下载到目标上就可以,但是我下载了编译也通过下载也运行,ps命令也可以看到./tftpd在运行,也按照他的说明在/目录下建立了一个tftptab目录,但是我在用PC机子在tftp目标机时,提示超时失败。还有目标机在/etc/目录下根本就没有xined.conf文件,请问怎么才能启动tftp-server能,arm板子用的内核版本是arm-linux-2.4.19,busybox版本为busybox-1.00,我在busybox的选项里的inetd也打上了沟,不过还是没有用

顶部
不容错过的IBM 集群技术资源汇总
zhouliang55
新生入学
Rank: 1
注册用户



UID 182250
精华 0
积分 0(积分有什么用?)
帖子 25
阅读权限 10
注册 2007-3-3
状态 离线
发表于 2007-6-21 00:29  资料  个人空间  短消息  加为好友 
是不是我们问的问题太简单,怎么没有人响应呢?
最近比较急,请那个大虾指点一下,不要觉得很简单不屑于说
对于我们这些新手来说你们点滴指导都是很感激的

顶部
风雪狂客
版主
Rank: 7Rank: 7Rank: 7
版主



UID 7956
精华 1
积分 0(积分有什么用?)
帖子 614
阅读权限 100
注册 2001-12-17
来自 北京
状态 离线
发表于 2007-6-21 09:15  资料  个人空间  短消息  加为好友 
这个好像没有什么困难的啊?
您需要安装xinetd的包,通过它来启动tftpd服务!
如果您嫌配置这些麻烦,自己写个简单的程序交换文件也可以阿!
这些操作,linux howto文章中都有说明!





千日风雪,万里独行。 真痴假狂,亦侠亦客。
顶部
不容错过的IBM 集群技术资源汇总
zhouliang55
新生入学
Rank: 1
注册用户



UID 182250
精华 0
积分 0(积分有什么用?)
帖子 25
阅读权限 10
注册 2007-3-3
状态 离线
发表于 2007-6-23 10:09  资料  个人空间  短消息  加为好友 
版主,我下载了xinetd.2.3.14版本,交叉编译CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/usr/src/arm-xinetd; make;后在xinetd.2.3.14目录如下:
aclocal.m4    config.h.in    configure.in  install-sh   todo
audit         config.log     contrib       libs         xinetd
CHANGELOG     config.status  COPYRIGHT     Makefile     xinetd.spec
config.guess  config.sub     en720.sh      Makefile.in  xinetd.spec.in
config.h      configure      install       readme

[root@localhost xinetd-2.3.14]# ls contrib/
empty.conf  xinetd  xinetd.conf  xinetd.d

其中xinetd为可执行脚本,xinetd.conf为xinetd的默认配置文件(这里就和pc机上的一样,同样使用了xinetd.d/目录下的xinetd要启动的服务乡)

可是在xinetd/目录下还有一个xinetd可执行文件,
[root@localhost xinetd-2.3.14]# file xinetd/xinetd
xinetd/xinetd: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped

[root@localhost xinetd-2.3.14]# file contrib/xinetd
contrib/xinetd: Bourne-Again shell script text executable
于是现在我得到两个xinetd文件,一个是脚本文件,一个是可执行目标文件,

请问,这可两个文件在嵌入式下是如何应用的?

顶部
sun11
新生入学
Rank: 1
注册用户



UID 197050
精华 0
积分 0(积分有什么用?)
帖子 4
阅读权限 10
注册 2007-5-28
状态 离线
发表于 2007-6-25 15:16  资料  个人空间  短消息  加为好友 
回复 #6 zhouliang55 的帖子

TFTP来传输目标板启动需要的内核映象文件zImage和ramdisk
首先必须安装tftp软件包,在RedHat Linux安装CD3中找到tftp文件包:tftp-0.32-4.i386.rpm,
[root@localhost] rpm –ihv tftp-server-0.32-4.i386.rpm
系统自动安装好tftp服务器;
进入目录/etc/xinetd.d
[root@localhost]cd /etc/xinetd.d
[root@localhost]vi tftp
–注:只有在安装了tftp服务后,才会出现tftp文件
  修改其中disable和server_args项,其余可保持不变。以下为一个完整的tftp文件:
  Service tftp
  {
  socket_type = dgram
  protocol = udp
  wait = yes
  user = root
  server =/usr/sbin/in.tftpd
  server_args = -s /tftpboot -- 根据需要设置tftp服务默认目录,缺省的指定输出文件目录是/tftpboot,文件必须放在该目录下才能被输出。
  disable = no -- 默认为yes,应修改成no
per_source = 11
  cps = 100 2
  flags = IPv4
  }
我做嵌入式软件移植的时候是将文件做到linux文件系统里的,没有所用NFS服务。交叉编译也是在PC机上完成的,通过U-boot 烧到 开发班。

顶部
不容错过的IBM 集群技术资源汇总
zhouliang55
新生入学
Rank: 1
注册用户



UID 182250
精华 0
积分 0(积分有什么用?)
帖子 25
阅读权限 10
注册 2007-3-3
状态 离线
发表于 2007-6-26 14:02  资料  个人空间  短消息  加为好友 
首先谢谢sunll

首先谢谢sunll.
我的板子现在都已经跑起来了,tftp客户端服务端在PC主机上也都可以了,
板子的linux系统的tftp客户端也可以了,内核和应用程序都可以通过tftp到板子上运行起来.

我的问题是在arm板子安装tftp服务端,因为我想作一个文件的传输的工作.版主建议自己作一个交换文件,而我也考虑了一下,网络编程我可以分配一个1024的buffer,也就是说每次可以传输1K字节的数据,但是我的文件大部分都在4~5M的大小,可能以后还会有更大的文件,这样我要来回发送数据几千次或者上万次.所以我还是主张移植tftp服务端.以下是我安装xinetd-2.3.14和tftpd.tar.gz的过程和出现的问题,请版主和大虾们再给些指导::

主机环境:redhat 9.0 内核版本:2.4.19
嵌入式arm-linux  内核:2.4.19 arm-linux-gcc为2.9.35
我下载了一个tftpd.tar.gz包交叉编译产生了一个tftpd的执行文件,其属性如下:
[root@localhost tftpd-1.3]# file tftpdtftpd: ELF 32-bit LSB executable,ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (usesshared libs), not stripped
我把他下载到arm板子上的/usr/sbin/目录下,创建/tftpboot目录(在其readme文件中有说明).运行可是从PC机还是不能get目录/tftpboot下的文件,超时退出,我想应该是没有连接到arm板上的tftpd服务器.请问,这里是不直接将tftpd可执行程序下载到arm板上运行就可以了,还有没有另外的设置????????
以肯定的是 我的arm板子上tftp-client是好的,PC端的客户端服务端都是可以的.

想起版主说要起动xined服务,于是下载了xinetd-2.3.14,
交叉编译:
export LDFLAGS=-L/usr/local/arm/2.9.53/lib
export CFLAGS=-l/usr/local/arm/2.9.53/include
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/usr/src/arm-xinetd
make
没有执行make install,网上说这一步不能执行,因为你要安装程序到arm板子上,只有将配置文件下载到你的嵌入式系统里.
编译生产生一个可执行的xinetd二进制文件
可是在原文件包里发现xontrib/目录下有下xinetd的配置文件:
[root@localhost xinetd-2.3.14]# ls contrib/
empty.conf  xinetd  xinetd.conf  xinetd.d
这时看到的和PC机配置一样的脚本,xinetd为xinetd服务脚本,xinetd.conf和xinetd.d/都是一些服务脚本,但是在xinetd.d/目下没有看到tftp脚本.
注意:这里有两个xinetd文件,一个是脚本文件,一个是可执行的二进制文件.我在PC机上也发现这两个文件1)脚本文件/etc/init.d/xinetd   (2)二进制可执行文件
/usr/sbin/xinets
如下:[root@localhost xinetd-2.3.14]# ls  contrib/
xinetd.d/chargen      cups-lpd  daytime-udp  echo-udp  servers  sgi_fam  timechargen-udp  daytime   echo         rsync     services  time-udp

我把PC主机的/etc/xinetd.d/tftp拷贝到上面的目录中,因为我想这两个应该都是一样的(不知道行不行)

接下来把xinetd.conf文件和xinetd.d/目下的文件拷贝到我的嵌入式系统的/etc/目录下,将xinetd可执行二进制文件拷贝到我的嵌入式linux的/usr/sbin/目录下,脚本文件拷贝到/etc下面,通过修改我的嵌入式系统启动脚本文件 /etc/init.d/rc.sysinit文件执行/etc/xinetd脚本程序.
到这里我有一个疑问,xinetd脚本文件和xinetd二进制文件分别有什么作用,怎么启动的,在哪里启动他们好呢??请哪个高手指点一下!!!!!!!!!!!!!!!!!!!
我运行xinet脚本程序的时候发生错误:/tftpboot # /etc/xinetd start
/bin/sh: /etc/xinetd:notfound
请问这是怎么回事?我看了一下这些配置工具和PC机环境下的一模一样,我想是不是要修改这些配置文件,才能适合arm系统呢?紧急,哪位大虾指点一下!谢!!!!!!!!!!!!!

顶部
 



当前时区 GMT+8, 现在时间是 2008-5-17 14:06

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.105388 second(s), 5 queries

清除 Cookies - 联系我们 - Linux伊甸园 - Archiver - WAP