【转】Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板
开发板:mini2440(2011.04.21)环境:ubuntu9.10
为方便的将文件上传到开发板,采用vsftpd,移植过程如下:
1. 获取源码,地址:ftp://vsftpd.beasts.org/users/cevans/
2. 修改Makefile文件,按实际情况填写,请仔细查看路径,我的是
CC = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc
3. 修改vsf_findlibs.sh
屏蔽53、54、57行
50 # Look for libcap (capabilities)
51 if locate_library /lib/libcap.so.1; then
52 echo "/lib/libcap.so.1";
53 #elif locate_library /lib/libcap.so.2; then
54 # echo "/lib/libcap.so.2";
55 else
56 locate_library /usr/lib/libcap.so && echo "-lcap";
57 # locate_library /lib/libcap.so && echo "-lcap";
58 locate_library /lib64/libcap.so && echo "-lcap";
59 fi
4. make
5. 把动态链接库从编译器的lib下拷贝到跟文件系统的lib目录下,进入vsftpd-3.0.2目录,执行
$ arm-none-linux-gnueabi-readelf -d vsftpd
Dynamic section at offset 0x1caa0 contains 35 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libcrypt.so.1]
0x00000001 (NEEDED) Shared library: [libdl.so.2]
0x00000001 (NEEDED) Shared library: [libnsl.so.1]
0x00000001 (NEEDED) Shared library: [libresolv.so.2]
0x00000001 (NEEDED) Shared library: [libutil.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x00000001 (NEEDED) Shared library: [ld-linux.so.3]
0x0000000c (INIT) 0x44c8
0x0000000d (FINI) 0x19180
0x00000019 (INIT_ARRAY) 0x24a94
0x0000001b (INIT_ARRAYSZ) 4 (bytes)
0x0000001a (FINI_ARRAY) 0x24a98
0x0000001c (FINI_ARRAYSZ) 4 (bytes)
….
将上面的7个共享库拷贝过去,库路径是
/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/lib
cp –advfr libcrypt.so.1 libdl.so.2 libnsl.so.1 libresolv.so.2 libutil.so.1 libc.so.6 ld-linux.so.3 /rootfs/lib
6. 把生成的vsftpd 拷贝到跟文件系统的sbin目录下,把vsftpd.conf文件拷贝到 根文件系统的/rootfs/etc目录下。
至此,arm-linux环境下的ftp服务器移植完成,下面开始对服务器进行配置。以下为一个简单的配置,不考虑安全性。
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
nopriv_user=ftp
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
ls_recurse_enable=YES
listen_port=21
anon_other_write_enable=YES
7. 将文件系统镜像烧写,启动后在开发板上创建必要的账号、目录
#addusr nobody //vsftpd 默认配置需要
#mkdir /usr/share/empty //vsftpd 默认配置需要
#adduser –D ftp
#chown root:root /home/ftp //注意不是/var/ftp
#chmod 755 /home/ftp
8. 创建一个本地账户michael,创建好之后可以用michael登录
#addusr michael
#passwd 123456
9. 添加一个只能从ftp登录,而不能从本地的登录的用户yaho
#addusr -G ftp -S yaho //-G -S 如果用-g -s 客户将不能登录:530 Login incorrect
#passwd 12345
10. 服务器端执行 vsftpd /etc/vsftpd.conf ,客户端执行ftp YOUR_IP_ADDR ,输入帐号名yaho和密码即登入。
11. 用cat /etc/passwd cat /etc/group 命令查看yaho和ftp是否是同一组。
12.测试
Ubuntu下
$ ftp 板子IP
Connected toXX.
220 Welcome to blah FTP service.
Name (XX:XX): yaho
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
测试一般操作
ftp> cd ..
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rwxr-xr-x 1 1000 1000 584718 Nov 16 2011 Server
drwxr-xr-x 1 0 0 2048 Aug 31 11:23 ftp
drwxr-sr-x 1 1001 1001 2048 Aug 31 12:19 yaho
可见远程登录后会进入/home/yaho目录下
ftp> cd yaho
ftp> mkdir work //在开发板上创建也可以,开放权限chmod 777
ftp> cd work
250 Directory successfully changed.
测试上传文件
ftp> put filename
local: epaServer remote: epaServer
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
11541 bytes sent in 0.06 secs (189.1 kB/s)
注意:ftp本身好像不支持这种绝对路径文件的上传,要上传,先进入要上传文件的目录中及FTP服务器具有写权限的目录中。
Windows XP下用Cuteftp测试也是可以的。登录时用户名和密码同上,端口21,其他置空即可。
结果如下

=============================================================================
vsftpd移植比较麻烦些,可以使用另外一个程序 stupid-ftpd, 这个移植起来很快,百度下就可以找到了
【转】Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板的更多相关文章
- arm linux 移植 x265
背景 本来想着把 x265编译到ffmpeg里面,搞定了x265的编译:但是一直报ERROR: x265 not found using pkg-config这个错误,我按照网上的资料,查看了ffbu ...
- 【嵌入式】安装Linux系统到开发板
一.开发板基本介绍 Flash --相当于硬盘 RAM -- 内存 Micro USB或232串口 连电脑 USB 接口连摄像头 启动方式 选择开关 :SD卡启动或NAND FLASH 启动 USB转 ...
- arm linux 移植 ffmpeg 库 + x264
背景 Ffmpeg 中带有h264的解码,没有编码,需要添加x264.libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264. ...
- Linux 安装 go 以及 arm linux 移植 go
背景 Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. 从Go1.4之后Go语言的编译器完全由Go语言编写,所以为了从源代码 ...
- arm linux 移植 PHP
背景: PHP 是世界上最好的语言. host平台 :Ubuntu 16.04 arm平台 : 3531d arm-gcc :4.9.4 php :7.1.30 zlib :1.2.11 libxml ...
- arm linux 移植 udhcp 与 使用
背景 在一些网络环境下,需要静态IP不够现实,需要使用DHCP进行自动获取IP地址. udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微μ- DHCP -客户端client(μDH ...
- arm linux 移植 jpeg
背景: host平台 :Ubuntu 16.04 arm平台 : S5P6818 jpeg :v9c arm-gcc :4.8.1 主机准备: 运行以下脚本: ## # Copyright By Sc ...
- 014安装Linux系统到开发板
SD卡----->开发板 1.安装准备: 硬件连接 USB下载线,一端连到开发板,另一端连到PC机: 串口线连好: 电源线连好: 设置开发板从SD卡启动: 2.打开开发板进入选单界面: 进入选单 ...
- [arm]虚拟机,2440开发板,主机三者互通
想实现3着互通先必须保证三者的网段是相同的: 首先查看电脑主机的IP: 然后再看看虚拟机的IP: 惊喜的发现,他们在一个网段上---那就不用改了-- 再去看看开发板上的IP: 这里注意,输入命令时,是 ...
随机推荐
- k8s记录-node组件部署(十)
1)CA 证书配置登录 192.168.0.1 app 用户下cd ssl/kubernetes#注意修改 KUBE_HOME,BOOTSTRAP_TOKEN #与 3.5 3)token 一致,KU ...
- ElasticSearch集群状态查看命令大全(转)
原文地址: https://blog.csdn.net/pilihaotian/article/details/52460747 Elasticsearch中信息很多,同时ES也有很多信息查看命令,可 ...
- [转]Oringin 2016 安装教程
觉得有用的话,欢迎一起讨论相互学习~Follow Me 原文ll链接 http://www.downza.cn/soft/282296.html 打开setup.exe 一路Next和Yes,任意输入 ...
- matlab学习笔记12_3串联结构体,按属性创建含有元胞数组的结构体,filenames,isfield,isstruct,orderfields
一起来学matlab-matlab学习笔记12 12_3 结构体 串联结构体,按属性创建含有元胞数组的结构体,filenames,isfield,isstruct,orderfields 觉得有用的话 ...
- 【MongoDB学习之四】索引 聚合 备份与恢复 监控
环境 MongoDB 4.0 CentOS 6.5_x64 一.索引语法ensureIndex()方法基本语法格式如下所示:>db.COLLECTION_NAME.ensureIndex({KE ...
- Zipkin+Sleuth 链路追踪整合
1.Zipkin 是一个开放源代码分布式的跟踪系统 它可以帮助收集服务的时间数据,以解决微服务架构中的延迟问题,包括数据的收集.存储.查找和展现 每个服务向zipkin报告计时数据,zipkin会根据 ...
- mysql批量更新数据,循环select记录然后更新某一字段
-- 处理IEMI重复的历史数据,建档日期(只有年月日)倒序,档案ID倒序,根据IMEI查档案,查询的结果,相同IMEI下的第一条记录的IEMI不处理,其他的记录的imei 改为空. -- USE ` ...
- python 必选参数、默认参数、可变参数和、关键字参数
转自:https://www.liaoxuefeng.com/wiki/897692888725344/897693568201440 可变参数 在Python函数中,还可以定义可变参数.顾名思义,可 ...
- 解决 plsql 启动报错 Initialization error
由于文件 oci.dll 路径没添加 1.点击edit 2.点击PL/SQL 3.弹框中 填写oci.dll文件的完整路径!完整路径!完整路径!完整路径!完整路径!完整路径!完整路径!完整路径 ...
- Spring AOP的常用方法
转 https://blog.csdn.net/u014745069/article/details/84887765