基于ZYNQ7035的PS-linux实现FTP服务器移植
一,下载vsftpd-3.0.3源码,修改Makefile文件,主要改编译器CC = arm-linux-gnueabihf-gcc,用petalinux2023给的编译器arm-xilinx-linux-gnueabi-gcc进行编译,出一堆错,没解决,怀疑是路径问题,遂换成常规arm编译器了。
给出vsftpd-3.0.3源码下载地址,其中的makefile已经改好,直接放入ubuntu中进行编译即可:vsftpd-3.0.3源码,配置文件链接:vsftpd.conf配置文件
二,编译后将vsftpd文件拷贝到arm板的/usr/sbin目录下,将配置文件vsftpd.conf拷贝到arm板的/etc目录下
三,将libcrypt.so.1以及相关库文件拷贝到/lib目录下,库文件链接:libcrypt
四,保证硬件板的ip和pc机的ip在同一个网段,互相能ping通;执行指令 ./ vsftpd或者 vsftpd & 运行ftp服务器,在pc端用filezilla软件访问硬件板的ftp。
五,报错及解决:
500 OOPS: could not bind listening IPv4 socket
用netstat -tuln | grep :21 能看到端口21已经被占用,没找到该端口被谁占了,所以改端口号:将vsftpd.conf中的端口号改成了25
500 OOPS: vsftpd: refusing to run with writable anonymous root 修改vsftpd.conf,找到:anonymous_enable=YES修改为anonymous_enable=NO
500 OOPS: vsftpd: not found: directory given in 'secure_chroot_dir':/usr/share/empty ,创建 mkdir -p /usr/share/empty
chown root:root /usr/share/empty
chmod 755 /usr/share/empty
六,遗留问题:在硬件板中创建或删除文件,通过ftp不能及时看到,重启ftp客户端软件也不好使,需要重启ftp服务器才行,待研究。