在嵌入式开发板上移植FTP服务器
2014-04-30 15:13
405 查看
今天总结了一下在嵌入式开发板上移植FTP服务器,我个人是在Marvell板子上调试,不过就方法而言应该对于所有嵌入式开发板都通用吧。。。
ftp是基于tcp的文件传输服务器,配置很简单,但要真正的要理解,还需要自己对用户权限和协议本身有一定了了解。。。
一、下载源码包 vsftpd-2.1.2.tar.gz
我在UNIXCHINA网站找的资源
下载之后解压源码包:
tar zxvf vsftpd-2.1.2.tar.gz
cd vsftpd-2.1.2
二、 修改Makefile
找到 CC = gcc
改成 CC = arm-linux-gcc
以自己安装的交叉编译器为准
三、编译
make
如果编译时候出错,修改vsf_findlibs.sh
45-53行注释掉:
# Look for libcap (capabilities)
#if locate_library /lib/libcap.so.1; then
# echo "/lib/libcap.so.1";
#elif locate_library /lib/libcap.so.2; then
# echo "/lib/libcap.so.2";
#else
# locate_library /usr/lib/libcap.so && echo "-lcap";
# locate_library /lib/libcap.so && echo "-lcap";
#fi
再次执行make,成功则生成vsftpd可执行程序,放到根文件系统/usr/sbin目录下。
四、修改配置文件
vsftpd.conf
需要用到哪一项,就把这一项前面的注释去掉
anonymous_enable=YES 是否允许匿名登录
no_anon_password=YES
local_enable=YES 是否允许本地用户登录
write_enable=YES
local_umask=022 默认的umask码
anon_upload_enable=YES 是否允许匿名ftp上传文件
anon_mkdir_write_enable=YES 是否允许匿名用户有创建目录的权利
anon_other_write_enable=YES
dirmessage_enable=YES 是否显示目录说明文件,默认是YES但需要收工创建.message文件
xferlog_enable=YES 是否记录ftp传输过程
connect_from_port_20=YES 是否确信端口传输来自20
以下不一一赘述,根据自己需要来配置。。
chown_uploads=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
ls_recurse_enable=YES
listen=YES
listen_port=21
把修改后的vsftpd.conf文件放到根文件系统的/etc/vsftpd目录下,否则运行会出错:
500 OOPS vsftpd: cannot open config
五、创建必要的帐号、目录
匿名登录的设置:
1、建立FTP目录:
# mkdir -p /var/ftp/pub
因为ftp目录不能开启所有权限,所以建一个pub目录加上所有权限,用来传输文件。
# mkdir -p /usr/share/empty
程序运行所用到的目录。
2、改变目录权限
# chown root:root /var/ftp
# chmod 755 /var/ftp
# cd /var/ftp
# chmod 777 pub
3、添加帐号(如果系统中有,就不用添加)
# useradd nobody
# useradd -d /var/ftp ftp
六、在开发板上运行vsftpd
把制作好的文件系统下载到开发板上,在后台运行程序:
# vsftpd /etc/vsftpd/vsftpd.conf&
不出问题的话,pc和开发板就可以通过ftp传输文件了。。
好了,试到这里,应为工作原因不能再继续下去了,先记录下来。。。以后补充哦
ftp是基于tcp的文件传输服务器,配置很简单,但要真正的要理解,还需要自己对用户权限和协议本身有一定了了解。。。
一、下载源码包 vsftpd-2.1.2.tar.gz
我在UNIXCHINA网站找的资源
下载之后解压源码包:
tar zxvf vsftpd-2.1.2.tar.gz
cd vsftpd-2.1.2
二、 修改Makefile
找到 CC = gcc
改成 CC = arm-linux-gcc
以自己安装的交叉编译器为准
三、编译
make
如果编译时候出错,修改vsf_findlibs.sh
45-53行注释掉:
# Look for libcap (capabilities)
#if locate_library /lib/libcap.so.1; then
# echo "/lib/libcap.so.1";
#elif locate_library /lib/libcap.so.2; then
# echo "/lib/libcap.so.2";
#else
# locate_library /usr/lib/libcap.so && echo "-lcap";
# locate_library /lib/libcap.so && echo "-lcap";
#fi
再次执行make,成功则生成vsftpd可执行程序,放到根文件系统/usr/sbin目录下。
四、修改配置文件
vsftpd.conf
需要用到哪一项,就把这一项前面的注释去掉
anonymous_enable=YES 是否允许匿名登录
no_anon_password=YES
local_enable=YES 是否允许本地用户登录
write_enable=YES
local_umask=022 默认的umask码
anon_upload_enable=YES 是否允许匿名ftp上传文件
anon_mkdir_write_enable=YES 是否允许匿名用户有创建目录的权利
anon_other_write_enable=YES
dirmessage_enable=YES 是否显示目录说明文件,默认是YES但需要收工创建.message文件
xferlog_enable=YES 是否记录ftp传输过程
connect_from_port_20=YES 是否确信端口传输来自20
以下不一一赘述,根据自己需要来配置。。
chown_uploads=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
ls_recurse_enable=YES
listen=YES
listen_port=21
把修改后的vsftpd.conf文件放到根文件系统的/etc/vsftpd目录下,否则运行会出错:
500 OOPS vsftpd: cannot open config
五、创建必要的帐号、目录
匿名登录的设置:
1、建立FTP目录:
# mkdir -p /var/ftp/pub
因为ftp目录不能开启所有权限,所以建一个pub目录加上所有权限,用来传输文件。
# mkdir -p /usr/share/empty
程序运行所用到的目录。
2、改变目录权限
# chown root:root /var/ftp
# chmod 755 /var/ftp
# cd /var/ftp
# chmod 777 pub
3、添加帐号(如果系统中有,就不用添加)
# useradd nobody
# useradd -d /var/ftp ftp
六、在开发板上运行vsftpd
把制作好的文件系统下载到开发板上,在后台运行程序:
# vsftpd /etc/vsftpd/vsftpd.conf&
不出问题的话,pc和开发板就可以通过ftp传输文件了。。
好了,试到这里,应为工作原因不能再继续下去了,先记录下来。。。以后补充哦
相关文章推荐
- PHP计算当前程序执行时间
- Yii PHP 框架分析(四)
- Yii PHP 框架分析(三)
- Yii PHP 框架分析(二)
- PHP5.2至5.6的新增功能详解
- Yii PHP 框架分析 (一)
- php无法操作session
- php动态更改post_max_size, upload_max_filesize等值
- PHP内置的预定义常量大全
- NTP of rtp
- NTP
- php遍历递归遍历目录及文件
- 解析下zf工作目录下的init_autoloader.php
- php - final 关键字
- php mysql操作类
- 30 个很棒的 PHP 开源 CMS 内容管理系统
- php - cookie
- php环境无法上传文件的解决方法
- PHP引用(&)使用详解
- 关闭Cadence 原理图 弹出startpage 页面的方法