参考文章:https://blog.csdn.net/ok_4444/article/details/43339715
https://blog.csdn.net/xiaobao090251634/article/details/49924017
交叉编译链:arm-poky-linux-gnueabi-gcc (已经默认路径安装)
1.解压
tar -xzvf vsftpd-3.0.3.tar.gz
2.环境变量
source /opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
利用echo $CC确认交叉编译链:
arm-poky-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/poky/1.7/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi
3.修改Makefile
进入vsftpd-3.0.3文件夹,修改Makefile
将CC=gcc注释掉
修改LDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,now,-lcap
4.执行make
5.生成可执行文件vsftpd,并修改vsftpd.conf中的参数
anonymous_enable=NO # 默认的 YES 改为 NO
local_enable=YES # 删除前面的#号注释符号
write_enable=YES # 删除前面的#号注释符号
anon_upload_enable=NO # 删除前面的#号注释符号,并将 YES 改为 NO
anon_mkdir_write_enable=NO # 删除前面的#号注释符号,并将 YES 改为 NO
anon_other_write_enable=NO # 删除前面的#号注释符号,并将 YES 改为 NO(这一项新版本中可能没有)
chroot_local_user=YES # 删除前面的#号注释符号,改行表示把FTP用户都限制在家目录中
allow_writeable_chroot=YES # 添加本行到文件最后
6.移植
将vsftpd复制到开发板上的/usr/sbin下,并赋予可执行权限
chmod 777 /usr/sbin/vsftpd
将vsftpd.conf复制到/etc目录下
在目标板上执行以下命令进行配置
adduser nobody # vsftpd默认配置需要
mkdir /usr/share/empty # vsftpd默认配置需要
创建一个本地用户,并设置密码:
adduser ftpuser
Changing password for ftpuser
New password:
Retype password:
Password for ftpuser changed by root
7.测试
配置完之后,在目标板上打开vsftp,命令:
vsftpd &
注意,后面还有一个 &。
如果要让 vsftpd 开机启动,可以将该命令添加到 /etc/profile 或者 rc.local 文件最后。
配置目标板 IP,使其能够与电脑ping通,然后在电脑上打开客户端,输入目标板IP、用户名、密码,就可以连接上去了。
发送一个hello文件过去进行测试。
查看目标板上/home/ftpuser上