嵌入式爱好者

查看: 20615|回复: 12

[Linux] 移植vsftpd至OK335XS开发板遇到问题请技术支持和大牛们帮忙指导

[复制链接]

1

主题

4

帖子

14

积分

AM335x通行证

扫一扫,手机访问本帖
发表于 2019-8-14 00:34:54 | 显示全部楼层 |阅读模式

环境:vsftpd-3.0.2, 硬件:OK335XS,虚拟机:ubuntu12.04(32位开发板自带)

(1) 修改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
(2) 修改Makefile

# Makefile for systems with GNU tools
#CC     =       gcc
CC      =       /usr/local/arm/cross/am335xt3/devkit/bin/arm-arago-linux-gnueabi-gcc
INSTALL =       install
IFLAGS  = -idirafter dummyinc
#CFLAGS = -g
CFLAGS  =       -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 \
        -Wall -W -Wshadow -Werror -Wformat-security \
        -D_FORTIFY_SOURCE=2 \
        #-pedantic -Wconversion

LIBS    =       `./vsf_findlibs.sh`-lcap -lpam
LINK    =       -Wl,-s
LDFLAGS =       -fPIE -pie -Wl,-z,relro -Wl,-z,now
保存后退出执行make

(3)执行 arm-arago-linux-gnueabi-readelf -d vsftpd 显示需要哪些库

0x00000001 (NEEDED)                     Shared library: [libcap.so.2]
0x00000001 (NEEDED)                     Shared library: [libpam.so.0]
0x00000001 (NEEDED)                     Shared library: [libc.so.6]
0x00000001 (NEEDED)                     Shared library: [ld-linux.so.3]

拷贝共享库至/rootfs/lib,把生成的vsftpd 拷贝到跟文件系统的sbin目录下,把vsftpd.conf文件拷贝到 根文件系统的/rootfs/etc目录下。

(4)修改配置文件vsftpd.conf
修改内容为:

anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftp
xferlog_std_format=YES
#nopriv_user=ftp
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ls_recurse_enable=YES
listen=YES
listen_port=21
anon_other_write_enable=YES

(5)开发板根文件系统创建必要的目录:
mkdir-p /var/ftp/pub
mkdir -p /usr/share/empty
chown root:root/var/ftp
chmod 755 /home/rootfs/var/ftp
cd /var/ftp
chmod 777 pub

(6)创建用户
/etc/group文件至少要有root:
root:*:0:
/etc/passwd文件增加ftp和nobody用户:
root::0:0:root:/:/bin/sh
ftp::14:50:FTPUser:/var/ftp:
nobody:*:99:99:Nobody:/:

(7)缺少libattr.so.1共享库,需拷贝至/lib;
(8)开发板执行vsftpd /etc/vsftpd.conf &

遇到问题:
(1)虚拟机ubuntu执行ftp 192.168.0.232显示信息:

root@ubuntu:~# ftp 192.168.0.232
Connected to 192.168.0.232.
220 (vsFTPd 3.0.2)
Name (192.168.0.232:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp>
ftp>
ftp>
ftp> ls
200 PORT command successful. Consider using PASV.
500 OOPS: socket

在我输入ls命令时出现“200 PORT command successful. Consider using PASV.500 OOPS: socket”。无法连接arm了。在xshell尝试也是出现“500 OOPS: socket”,断开了。
这个问题我网上查了很多资料尝试了,但是一直没解决。希望技术支持和各位大牛帮忙指导。先谢谢了。期待你们的回复。谢谢!








回复

使用道具 举报

1

主题

3669

帖子

3917

积分

发表于 2019-8-15 17:20:59 | 显示全部楼层
虚拟机能ping通开发板吗
技术支持电话:0312-3119192
技术支持邮箱:Android@forlinx.com
点评回复 支持 反对

使用道具 举报

1

主题

4

帖子

14

积分

AM335x通行证

 楼主| 发表于 2019-8-15 23:01:47 | 显示全部楼层
可以ping通的。
点评回复 支持 反对

使用道具 举报

1

主题

3669

帖子

3917

积分

发表于 2019-8-19 14:58:47 | 显示全部楼层
看看是否开启了selinux,如果开了,关了试试

点评

没有系统没有 selinux  详情 回复 发表于 2019-9-11 17:18
OK335XS默认里面应该没有selinux吧!  详情 回复 发表于 2019-8-22 10:07
技术支持电话:0312-3119192
技术支持邮箱:Android@forlinx.com
点评回复 支持 反对

使用道具 举报

5

主题

16

帖子

120

积分

LS1012A通行证A40i/T3/T507/T527通行证i.MX8MM通行证RK3399通行证AM5718通行证AM335x通行证i.MX6UL通行证i.MX RT通行证i.MX6Q通行证XX18通行证

发表于 2019-8-21 16:05:13 | 显示全部楼层
这个问题我遇到过,解决了

点评

请问您是如何解决的?可以提供下思路吗?  详情 回复 发表于 2019-8-22 10:06
点评回复 支持 反对

使用道具 举报

1

主题

4

帖子

14

积分

AM335x通行证

 楼主| 发表于 2019-8-22 10:06:18 | 显示全部楼层
YY88 发表于 2019-8-21 16:05
这个问题我遇到过,解决了

请问您是如何解决的?可以提供下思路吗?

点评

改linux内核  详情 回复 发表于 2019-8-28 17:22
点评回复 支持 反对

使用道具 举报

1

主题

4

帖子

14

积分

AM335x通行证

 楼主| 发表于 2019-8-22 10:07:21 | 显示全部楼层
飞凌-chongzi 发表于 2019-8-19 14:58
看看是否开启了selinux,如果开了,关了试试

OK335XS默认里面应该没有selinux吧!
点评回复 支持 反对

使用道具 举报

5

主题

16

帖子

120

积分

LS1012A通行证A40i/T3/T507/T527通行证i.MX8MM通行证RK3399通行证AM5718通行证AM335x通行证i.MX6UL通行证i.MX RT通行证i.MX6Q通行证XX18通行证

发表于 2019-8-28 17:22:27 | 显示全部楼层
fightinghui 发表于 2019-8-22 10:06
请问您是如何解决的?可以提供下思路吗?

改linux内核
点评回复 支持 反对

使用道具 举报

2

主题

12

帖子

23

积分

AM335x通行证

发表于 2019-9-11 17:18:31 | 显示全部楼层
飞凌-chongzi 发表于 2019-8-19 14:58
看看是否开启了selinux,如果开了,关了试试

没有系统没有 selinux

点评

请问下这个问题解决了吗?我也是遇见同样的问题,尝试网上各种方法也没能解决  详情 回复 发表于 2020-12-6 13:16
点评回复 支持 反对

使用道具 举报

1

主题

7

帖子

40

积分

AM335x通行证

发表于 2020-12-6 13:16:49 | 显示全部楼层
ouyang 发表于 2019-9-11 17:18
没有系统没有 selinux

请问下这个问题解决了吗?我也是遇见同样的问题,尝试网上各种方法也没能解决

点评

注释掉:kernel\net\ipv4\af_inet.c中,291、292行 //if (! current_has_network()) // return -EACCES; 原因未知~  详情 回复 发表于 2020-12-18 11:53
点评回复 支持 反对

使用道具 举报

0

主题

236

帖子

752

积分

A40i/T3/T507/T527通行证i.MX6Q通行证i.MX6UL通行证i.MX8MM通行证RK3568通行证RK3399通行证LS1028A通行证LS1012A通行证LS1043A\46A通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX RT通行证XX18通行证AM62x资料下载

发表于 2020-12-7 08:53:07 | 显示全部楼层
试试使用以下命令创建用户,大概率和登录用户没有权限有关
useradd testuser  创建用户testuser
passwd testuser  给已创建的用户testuser设置密码
点评回复 支持 反对

使用道具 举报

1

主题

7

帖子

40

积分

AM335x通行证

发表于 2020-12-18 11:53:24 | 显示全部楼层
emose 发表于 2020-12-6 13:16
请问下这个问题解决了吗?我也是遇见同样的问题,尝试网上各种方法也没能解决

注释掉:kernel\net\ipv4\af_inet.c中,291、292行
//if (! current_has_network())
//    return -EACCES;
原因未知~

点评

注释掉还是没法连接呀  详情 回复 发表于 2021-12-6 18:29
点评回复 支持 反对

使用道具 举报

0

主题

2

帖子

19

积分

AM335x通行证i.MX6UL通行证

发表于 2021-12-6 18:29:02 | 显示全部楼层
emose 发表于 2020-12-18 11:53
注释掉:kernel\net\ipv4\af_inet.c中,291、292行
//if (! current_has_network())
//    return -EAC ...

注释掉还是没法连接呀
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-4-19 10:33

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表