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 ...
随机推荐
- 1、简单的BackGroundWorker多线程时时刷新UI界面,并显示进度
BackGroundWorker是微软提供的封装好了的,非常实用的控件,我们可以在控件中将其拖到Winform之中,然后简单的系统生成代码式的编辑事件处理. 以下是,比较经典且简单的实用,后面的一篇较 ...
- java 快速求素数
package test ; import java.util.Scanner ; public class hello { public static void main(String [] arg ...
- Extending and Embedding PHP
Extending and Embedding PHP http://wizardmin.com/2010/08/extending-and-embedding-php-6/
- 阿里云ECS服务器Linux环境下配置php服务器(二)--phpMyAdmin篇
上一篇讲了PHP服务器的基本配置,我们安装了apache,php,还有MySQL,最后还跑通了一个非常简单的php页面,有兴趣的朋友可以看我的这篇博客: 阿里云ECS服务器Linux环境下配置php服 ...
- ubuntu(14.04) 安装ssh,并使用root用户登录
1.apt-get install openssh-server 2.修改ssh的配置文件/etc/ssh/sshd_config 注释掉以前的:PermitRootLogin without-pas ...
- jquerymobile 的特有 事件 和 方法 (转)
1.触摸屏事件—— Touch events tap Triggers after a quick, complete touch event. 本人实际测试效果:轻轻点击,效果和按普通按钮差不多. ...
- Android学习系列(6)--App模块化及工程扩展
这篇文章是Android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1.需求 无论是在.net还是java平台,合理的分层架构是最普遍的模块化思路之一. dll, ...
- iOS - App 上架审核被原因拒总结
1.未遵守苹果 iOS APP 数据储存指导方针 如果你的 App 有离线数据下载功能,尤其需要关注这一点.因为离线数据一般占用存储空间比较大,可以被重新下载和重建,但是用户往往希望系统存储空间紧时也 ...
- js 数据结构-栈与队列
/*[客栈的盘子/月井里的货物,后进先出]栈顶:最先入口/出口的位置栈底:最慢最晚出栈的位置*/ function Stack() { var item = []; //推(将货物推入月井) this ...
- 清理linux 某个文件夹下面所有的log文件
#!/bin/sh #目标文件夹下面所有问题 target_dir="/app/" #删除2天前新建的后缀为log的文件 -name "*.log" -exec ...