嵌入式Linux vsftpd移植记录-(基于全志A20平台)

之前无论是查教程,还是下资料,CSDN都给了我莫大的帮助。恰好最近公司要用这个平台搭建FTP服务器,看了网上很多关于移植的例程,要么流程太简洁,不能用;要么流程太复杂,不想看。所幸把这次成功移植的经验分享出来,一为记录,二为帮助需要移植vsftpd的朋友少走些弯路。。

第1步:下载vsftpd-2.3.2.tar安装包。

         (注意:A20提供的固件最高只支持到2.3.2)
ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.2.tar.gz 

第2步:解压

$ tar -xzvf vsftpd-2.3.2.tar.gz
$ cd vsftpd-2.3.2

第3步:配置

$ vi Makefile

打开Makefile文件后,需要修改两个地方才能保证编译成功;
1)修改第2行CC变量的值,修改后如下:

CC = arm-linux-gnueabi-gcc  
(注意:要和A20 demo板用的交叉编译工具对应)

2)修改第8行LIBS变量的值,修改后如下:

LIBS = ‘./vsf_findlibs.sh’-lcrypt

第4步:编译

$ make

make后当前目录下生成vsftpdvsftpd.conf;然后更改这两个文件的所属权限为root,不然跑不起来;

$ sudo chown root:root vsftpd
$ sudo chown root:root vsftpd.conf

之后把这两个文件拷贝到以下目录:

$ sudo cp vsftpd /home/grj/Test_FTP/CQA20Linux_Qt5.3.2_bv2/lichee/buildroot/target/dragonboard/rootfs/usr/sbin/
$ sudo cp vsftpd.conf /home/grj/Test_FTP/CQA20Linux_Qt5.3.2_bv2/lichee/buildroot/target/dragonboard/rootfs/etc/

然后到etc目录下,新建vsftpd.user_list文件用于存放允许访问的ftp用户,并且修改其所有权为root;

$ touch vsftpd.user_list
$ vi vsftpd.user_list
$ sudo chown root:root vsftpd.user_list

在vsftpd.user_list文件中添加账户ftpadmin,然后保存退出。
接着修改vsftpd.conf文件;

$ vi vsftpd.conf

1) 修改第12行 anonymous_enable=YES为NO

	anonymous_enable=NO

2) 关闭第15行的注释 #

	local_enable=YES

3) 关闭第18行的注释 #,并添加以下语句

	write_enable=YES
	userlist_file=/etc/vsftpd.user_list
	userlist_enable=YES
	userlist_deny=NO

接下来进入如下目录

$ cd /home/grj/Test_FTP/CQA20Linux_Qt5.3.2_bv2/lichee/linux-3.4/net/ipv4

修改af_inet.c,屏蔽第297 ~ 302行,如下

297 	// if(!current_has_network())
298 	// return -EACCES;
300 	//if(unlikely(!inet_ehash_secret))
301 	//if(sock->type != SOCK_RAM && sock->type 1= SOCK_DGRAM)
302 	//build_ehash_secret();

回退到如下目录,

/home/grj/Test_FTP/CQA20Linux_Qt5.3.2_bv2/lichee/buildroot/target/dragonboard/

修改build.sh文件。在第64行添加一个empty空目录。此目录为vsftpd运行的必须项。

mkdir -p rootfs/usr/share/empty/

接下来回到以下目录编译

/home/grj/Test_FTP/CQA20Linux_Qt5.3.2_bv2/lichee/linux-3.4

$ make zImage

然后回到lichee目录下打包

$ ./build_dragonboard.sh
$ ./build_pack.sh

第5步:测试

在demo板上创建ftpadmin账户,输入账户密码;

$ adduser ftpadmin
Changing password for ftpadmin
New password: 
Retype password: 
Password for ftpadmin changed by root

打开FileZilla Client输入刚刚设置的账户密码登陆即可。

在这里插入图片描述

参考前辈的链接:
vsftpd移植到ARM Linux教程
Ubuntu 16.04下vsftpd 安装配置实例(ftp服务器搭建)
vsftpd 服务移植出现 500 oops : socket 解决

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值