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开发板的更多相关文章

  1. arm linux 移植 x265

    背景 本来想着把 x265编译到ffmpeg里面,搞定了x265的编译:但是一直报ERROR: x265 not found using pkg-config这个错误,我按照网上的资料,查看了ffbu ...

  2. 【嵌入式】安装Linux系统到开发板

    一.开发板基本介绍 Flash --相当于硬盘 RAM -- 内存 Micro USB或232串口 连电脑 USB 接口连摄像头 启动方式 选择开关 :SD卡启动或NAND FLASH 启动 USB转 ...

  3. arm linux 移植 ffmpeg 库 + x264

    背景 Ffmpeg 中带有h264的解码,没有编码,需要添加x264.libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264. ...

  4. Linux 安装 go 以及 arm linux 移植 go

    背景 Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. 从Go1.4之后Go语言的编译器完全由Go语言编写,所以为了从源代码 ...

  5. arm linux 移植 PHP

    背景: PHP 是世界上最好的语言. host平台 :Ubuntu 16.04 arm平台 : 3531d arm-gcc :4.9.4 php :7.1.30 zlib :1.2.11 libxml ...

  6. arm linux 移植 udhcp 与 使用

    背景 在一些网络环境下,需要静态IP不够现实,需要使用DHCP进行自动获取IP地址. udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微μ- DHCP -客户端client(μDH ...

  7. arm linux 移植 jpeg

    背景: host平台 :Ubuntu 16.04 arm平台 : S5P6818 jpeg :v9c arm-gcc :4.8.1 主机准备: 运行以下脚本: ## # Copyright By Sc ...

  8. 014安装Linux系统到开发板

    SD卡----->开发板 1.安装准备: 硬件连接 USB下载线,一端连到开发板,另一端连到PC机: 串口线连好: 电源线连好: 设置开发板从SD卡启动: 2.打开开发板进入选单界面: 进入选单 ...

  9. [arm]虚拟机,2440开发板,主机三者互通

    想实现3着互通先必须保证三者的网段是相同的: 首先查看电脑主机的IP: 然后再看看虚拟机的IP: 惊喜的发现,他们在一个网段上---那就不用改了-- 再去看看开发板上的IP: 这里注意,输入命令时,是 ...

随机推荐

  1. 华硕主板 Vmware虚拟机 二进制转换与此平台上的长模式不兼容

    出现情况如下: 大概遇到过两次这个问题,第一次是在笔记本VM上装虚拟机,第二次是在台式机VM上装虚拟机. 原因是因为虚拟化(Intel Virtualization Technology)技术,在主板 ...

  2. hive 字符串截取

    语法 :substr(字段,starindex,len)  下标从 1 开始 测试 ,) from siebel_cx_order limit ; -- -- -- -- -- -- -- -- -- ...

  3. 升级libstdc++、libgcc_s.so、libc.so.6

    参考资料:https://blog.csdn.net/ltl451011/article/details/7763892/ https://blog.csdn.net/na_beginning/art ...

  4. 029 SSM综合练习05--数据后台管理系统--订单分页查询

    1.PageHelper介绍 PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql.oracle.mariaDB.DB2.SQLite.H ...

  5. [转帖]8个最佳Docker容器监控工具,收藏了

    8个最佳Docker容器监控工具,收藏了 https://www.sohu.com/a/341156793_100159565?spm=smpc.author.fd-d.9.1574127778732 ...

  6. Kaldi安装

    Kaldi是基于C++开发并遵守Apache License v2.0的一款语音识别工具包,是目前最流行的ASR工具之一,本文基于Ubuntu 18.04 LTS介绍了如何安装Kaldi. 首先按照官 ...

  7. HLP帮助文件源文件RTF文件的编写

    https://www.cnblogs.com/gaodu2003/archive/2008/12/17/1356861.html 举例说明如下: 每一节的标题在RTF文件中一般以特有的脚注($)指定 ...

  8. GO指南练习:切片

    最近开始GO语言的学习,在GO指南中练习到切片这个题目 练习:切片 实现 Pic.它应当返回一个长度为 dy 的切片,其中每个元素是一个长度为 dx,元素类型为 uint8 的切片.当你运行此程序时, ...

  9. 复制Linux虚拟机(VMware vSphere Client 工具)

    1.VMware vSphere Client 工具 登录,如下图          IP.用户名/密码均是物理机,登录完成界面: 2.选择一个复制的原虚拟机 A,点击左上角[文件]——导出——导出O ...

  10. 【题解】Luogu P5300 [GXOI/GZOI2019]与或和

    原题传送门 我们珂以拆位,拆成一个个0/1矩阵 贡献珂以用全0,全1的子矩阵的个数来计算 全0,全1的子矩阵的个数珂以用悬线法/单调栈解决 #include <bits/stdc++.h> ...