嵌入式根文件系统里tftpd服务器的移植和架设

来源:本站
导读:目前正在解读《嵌入式根文件系统里tftpd服务器的移植和架设》的相关信息,《嵌入式根文件系统里tftpd服务器的移植和架设》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《嵌入式根文件系统里tftpd服务器的移植和架设》的详细说明。
简介:文章主要介绍了嵌入式根文件系统里tftpd服务器的移植和架设

有一个项目,使用ramdisk和jffs2混合根文件系统,偶尔需要跟新机器的个别应用,但是不想重新烧写根文件系统,于是想在arm linux里架设一个tftpd服务器,使用windows机器传应用程序到arm linux机器上,本应该是一个很简单的事情,但是实际做的时候还是遇到很多麻烦。好在最后终于搞成功,现在把过程记录下来,以备后来者参考。

1. 找tftpd源代码.

我共找到3份tftpd源代码一个是tftpd.tar.gz tftpd-1.3.tar.gz, tftp-hpa_0.40.orig.tar.gz,

2. 移植

我最先移植的 是tftpd-1.3.tar.gz,移植好后发现该代码不支持上传,只支持下载。

有移植tftpd但是很快发现tftpd不支持standlone方式工作,这里有必要解释一下tftpd的工作方式:

a. 使用standlone方式工作,也就是把tftpd当作一个应用程序,背景下运行相当于一个守护进程,当接收到tftp客户端连接时,直接和客户端交互。

b. 使用inetd 服务启动方式,需要配置inetd.conf,当inetd接收到tftp连接请求时,启动tftpd进行tftp传输。

我比较喜欢第a种工作方式。所以tftpd不适合我,同样tftpd-1.3不支持上传当然也不适合我。最后找到tftp-hpa_0.40.orig.tar.gz可以正常工作对于tftp-hpa_0.40.orig.tar.gz的修改如下:

a. 直接写standalone等于1 只工作在standalone方式。

b. 修改 validate_access函数里的上传文件的而进行文件创建时的文件属性检测,直接#if 0掉open 文件后的部分代码。

3. 测试

经过上面的处理tftpd应该可以正常工作了,测试方法是:

1. 在root用户下运行tftpd

2. 建立/tftpboot/ 目录并且使用chmod 777 -R /tftpboot 修改该目录权限

3. 在主机上运行tftp 192.168.2.20 (192.168.2.20是arm linux板的ip)

4. 在tftp里输入:

get /tftpboot/a.txt //从arm linux板子下载 a.txt文件

put a.txt /tftpboot/b.txt //上传a.txt 到arm linux板子的tftpboot目录下并命名为b.txt

4. 注意:

其实上面的步骤看起来很简单,但是实际调试时还是很麻烦的,这里有几点要注意的是

1. 在主机上运行tftp时可以使用trace命令把执行的过程打印出来

2. 在arm linux板子上把syslogd启动起来,这样就可以通过/var/log/message查看到log记录。 这样调试起来就很容易定位故障信息了。

20100316 : 测试方法

1. 在winxp的cmd窗口运行: tftp -i 192.168.2.177 put c:rr.log /bin/rr.log

可以把c盘的rr.log 传到.177 arm板子上的bin目录下

2. tftp -i 192.168.2.177 get /bin/a.txt

从.177 arm板的bin目录下载a.txt到winxp

提醒:《嵌入式根文件系统里tftpd服务器的移植和架设》最后刷新时间 2024-03-14 01:05:20,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《嵌入式根文件系统里tftpd服务器的移植和架设》该内容的真实性请自行鉴别。