嵌入式samba移植hi3531a记录

  这个samba程序也是够了,那么多版本,只修复后面的bug不修复之前发布的bug,本来以为分分钟搞定,结果入坑3个小时。

samba程序版本间变化好像比较大, 我下了好几个版本,要不是编译不过,要不就是差异太大自己懒得看。最后看到网上好多人用的都是这个版本samba-3.0.23。我也用这个版本放的最后搞定了。

 

移植过程:

1.程序下载:3.0.23 我不是在官网上下载的,官网上找不到,大家可以点【我的下载来down。

2.编译:

(1)解压进入编译目录

tar vxf samba-3.0.23.tar.gz
cd samba-3.0.23
cd source

(2)执行configue生成makefile

./configure CC=arm-hisiv400-linux-gcc LD=arm-hisiv400-linux-ld AR=arm-hisiv400-linux-ar --target=arm-hisiv400-linux --host=arm-hisiv400-linux samba_cv_CC_NEGATIVE_ENUM_VALUES=yes

 执行时会报错

configure: error: cannot run test program while cross compiling

解决方法:修改configure文件 重新执行(2)中的命令就可以通过了,共需要修改7处。

echo "$as_me: error: cannot run test program while cross compiling
See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
修改为
echo "$as_me: error: cannot run test program while cross compiling
See \`config.log' for more details." >&2;}
}

 (3)修改代码

source/lib/time.c
//gettimeofday(tval);
gettimeofday(tval,NULL);

source/client/mount.cifs.c
增加宏
#define PATH_MAX  50

(4)编译 source文件夹下执行make 顺利通过

3.移植:

(1)板卡端执行 创建samba需要用的文件夹

mkdir /usr/local/samba/bin -p
mkdir /usr/local/samba/lib -p
mkdir /usr/local/samba/private -p
mkdir /usr/local/samba/var -p

(2)准备可执行文件和samba配置文件 

拷贝交叉编译后的source/bin 目录下的smbd 到板卡/usr/local/samba/bin目录下
在/usr/local/samba/lib目录下创建smb.conf

smb.conf内容:
[global]
workgroup = myworkgroup
server string = samba
netbios name = hisi
guest account=root
security =share
interfaces = eth0
[share]
path = /
guest ok=yes
browseable=yes

4.测试

运行程序./smbd -D

打开window中的文件夹在目录中输入//192.xxx.xxx.xxx/成功开启samba服务

-----------------------------------------------------------------------------------------------------------------

ps:调试过过程中发现window 输入IP后只能见到分享的share文件夹,单share目录下的文件看不到,

因为我的板卡起初设计时网络相关的硬件有bug,所以也不清楚到底是硬件原因还是samba的配置原因引起的上面问题,

单最终还是解决了。

解决方法是修改配置文件中的

interfaces = eth0 改为 interfaces =lo eth0  192.168.1.120/24

IP为eth0

如果解决了你的问题请帮忙点个赞吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值