移植Samba-2.2.12到Hi3520的方法

发布时间:2020-09-13编辑:脚本学堂
将Samba-2.2.12移植到海思开发板上,有需要的朋友不妨参考下。

将Samba-2.2.12移植到海思开发板上,有需要的朋友不妨参考下。

移植软件:
samba2(下载:samba2.2.12)

移植目标:
能在目标平台上正常以后台进程方式运行
能正常输出日志,便于查错

移植说明:
因samba3较大,相对samba2也只是提供了对域控的支持,一般情况下用不到,所以选择了samba2的最后一个版本

具体移植步骤:

解压源码
 

复制代码 代码如下:
$ tar –xvf samba-2.2.12.tar.gz
$ cd samba-2.2.12/source

3.编译源码
(1)设置环境变量
 

复制代码 代码如下:
$ export CC=arm-hismall-linux-gcc
$ export CFLAGS='-O3 -s -static -I/opt/hisi-linux/x86-arm/gcc-3.4.3-uClibc-0.9.28/usr/include'

(2)改lib/time.c:
 

复制代码 代码如下:
$ vi ./lib/time.c
53 void GetTimeOfDay(struct timeval *tval)
54 {
55 #ifdef HAVE_GETTIMEOFDAY_TZ
56 gettimeofday(tval,NULL);
57 #else
58 //gettimeofday(tval);
59 gettimeofday(tval,NULL);
60 #endif
61 }
 

说明:注译掉第58行;第59行加上"gettimeofday(tval,NULL);"

(3)编译
 

复制代码 代码如下:
$ ./configure --host=arm-linux
$ make 

4.使用方法

(1)在ARM开发板上建以下目录:
 

复制代码 代码如下:
/usr/local/samba/
/usr/local/samba/lib
/usr/local/samba/private
/usr/local/samba/sbin
/usr/local/samba/var
/usr/local/samba/var/locks
 

把/samba-2.2.12/source/bin目录下的smbd考到ARM开发板的/usr/local/samba/sbin目录中

(2)在ARM开发板的/usr/local/samba/lib目录中建smb.conf配置文件:
 

复制代码 代码如下:

[global]
interfaces = eth0
workgroup =MYGROUP
server string =Samba
netbios name =myarm
guest account=root
security =share

[share]
path =/bnc
writeable =yes
guest ok=yes
browseable=yes

(3)运行samba
# /usr/local/samba/sbin/smbd –D
# ps
308 root 2056 S /usr/local/samba/sbin/smbd  -D
如果ps看不到如上如容,说明smb没有运行,可以用smbd -i -d 8 启动smb,可以打印启动信息,其中-i 是交互模式,-d是打印调试级别

(4)配置开发板回环地址:
# ifconfig lo 127.0.0.1

(5)在windows-->开始-->运行,中输入//192.168.1.101(这是开发板IP)不用密码就可看到ARM开发板smb共享了。