vsftp移植(待续)
1. 下载sftp包,解压。如vsftpd-2.3.5.tar.gz
2. 编译
进入目录后,修改交叉编译工具(vi Makefile)
CC = arm-none-linux-gnueabi-gcc
直接make即可,生成可执行文件vsftpd。
出现错误:
sysdeputil.o: In function `vsf_sysdep_check_auth':
sysdeputil.c:(.text+0xce8): undefined reference to `crypt'
sysdeputil.c:(.text+0xd0c): undefined reference to `crypt'
collect2: ld returned 1 exit status
make: *** [vsftpd] Error 1
未连接库:crypt,查看Makefile,
10 #LIBS = `./vsf_findlibs.sh`
11 LIBS = -lcrypt
编译时发现vsf_findlibs.sh并未执行(即使执行,脚本也有误,ubuntu下shell 0为真,1为假)。
直接注释脚本,链接库(-lcrypt)。
3.移植文件和库
查看vsftpd属性:
~$file vsftpd
vsftpd: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, stripped
vsftpd为动态链接,需要拷贝动态库:
~$arm-none-linux-gnueabi-readelf -d vsftpd
Dynamic section at offset 0x165b4 contains 25 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libcrypt.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
......
需要两个动态库libcrypt.so.1和libc.so.6。
注:此外动态编译的可执行文件执行需要加载器,要确保加载器也一并移植:
交叉编译工具链提供的加载器文件:
~$ls -al ld*
-rwxrwxr-x 1 yuxi yuxi 144480 Aug 4 15:24 ld-2.5.so
lrwxrwxrwx 1 yuxi yuxi 9 Aug 4 15:24 ld-linux.so.3 -> ld-2.5.so
需拷贝的两个加载器文件:ld-2.5.so ld-linux.so.3
共5个文件:usr/sbin ->vsftpd
lib -> libcrypt.so.1 libc.so.6 ld-2.5.so ld-linux.so.3
现在可以下载到板卡上测试:
~ # vsftpd
500 OOPS: vsftpd: not configured for standalone, must be started from inetd
vsftpd可正常运行,只是缺少配置文件。
4. vsftpd配置文件vsftpd.conf
参考:
vsftp移植(待续)的更多相关文章
- 待续:s5p6818移植 uboot 2014.07 移植
前言: 之前半年一直在嵌入式Linux移植中挣扎,不知道该从哪个方面开始入手,也失败了很多次,苦思了很久最终决定先从uboot开始. uboot版本的不同会导致添加板子的时候的配置方法会不一样.由于手 ...
- 移植vsftpd到arm linux
vsftpd即very secure FTP daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux.BSD. ...
- 【转】移植vsftpd到arm linux
vsftpd即very secure FTP daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux.BSD. ...
- 基于tiny4412的Linux内核移植 -- 设备树的展开
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
- 基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九-2)
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
- ok6410 u-boot-2012.04.01移植五支持DM9000
继ok6410 u-boot-2012.04.01移植四后,开发板基本已支持MLC NAND,但还有一些细节地方修改,这节增加DM9000支持,通过网卡tftp程序到内存,接着通过NAND命令写到NA ...
- 在LwIP 协议栈移植 Snap 7
本文欢迎引用,转载. 引用,转载请标明出处! 调试完毕源码将上传到GitHub 为了嵌入式系统与STEP 7 PLC 通过S7 协议通讯,尝试移植 Snap 7 到STM32F407 cpu 上. 今 ...
- 1.移植3.4内核-分析内核启动过程,重新分区,烧写jffs2文件系统
1.在上章-移植uboot里.我们来分析下uboot是如何进入到内核的 首先,uboot启动内核是通过bootcmd命令行实现的,在我们之前移植的bootcmd命令行如下所示: bootcmd=nan ...
- 2.移植3.4内核-使内核支持烧写yaffs2
在上章-制作文件系统,并使内核成功启动jffs2文件系统了 本章便开始使内核支持烧写yaffs2文件系统 1.首先获取yaffs2源码(参考git命令使用详解) cd /work/nfs_root g ...
随机推荐
- System.err.println()
err是运行期异常和错误反馈的输出流的方向 System.err.println只能在屏幕上实现打印,即使你重定向了也一样 用err打印出的 字符串,再eclipse的console会显示成红色 标准 ...
- C#将Access数据库导出为JSON
一个Access数据库包含若干首诗歌,每首诗有content.author.title.description四个字段 using System; using System.Data; using S ...
- 使用winsound模块播放声音
import winsound import math s = """3345 1233345 234 431 434 -612 12334567 +1+1345 234 ...
- 【LeetCode】115. Populating Next Right Pointers in Each Node (2 solutions)
Populating Next Right Pointers in Each Node Given a binary tree struct TreeLinkNode { TreeLinkNode * ...
- 百度定位SDK实现获取当前经纬度及位置
使用Android自带的LocationManager和Location获取位置的时候,经常会有获取的location为null的情况,并且操作起来也不是很方便,在这个Demo里我使用了百度地图API ...
- Linux命令-某个用户组下面的所有用户
groups 查看当前登录用户的组内成员 groups gliethttp 查看gliethttp用户所在的组,以及组内成员whoami 查看当前登录用户名 系统内有关组的信息放在/etc/group ...
- Hadoop Map/Reduce教程
原文地址:http://hadoop.apache.org/docs/r1.0.4/cn/mapred_tutorial.html 目的 先决条件 概述 输入与输出 例子:WordCount v1.0 ...
- OGG_GoldenGate目标端库级别数据初始化(案例)
2014-03-07 Created By BaoXinjian
- 详细介绍Java中的堆和栈
栈与堆都是Java用来在RAM中寄存数据的中央.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运转时数据区,类的对象从中分配空间.这些对象经过new.newar ...
- JavaScript - 返回头部
制作浮动top $(window).scroll( function() { var scrollValue=$(window).scrollTop(); scrollValue > 600 ? ...