zoukankan      html  css  js  c++  java
  • 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

      

    参考:

    1. 在Linux下使用vsftpd搭建FTP服务器

  • 相关阅读:
    我爱java系列之---【微服务间的认证—Feign拦截器】
    我爱java系列之---【设置权限的三种解决方案】
    581. Shortest Unsorted Continuous Subarray
    129. Sum Root to Leaf Numbers
    513. Find Bottom Left Tree Value
    515. Find Largest Value in Each Tree Row
    155. Min Stack max stack Maxpop O(1) 操作
    painting house
    Minimum Adjustment Cost
    k Sum
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/4822913.html
Copyright © 2011-2022 走看看