嵌入式视频行业。
分类: LINUX
2013-01-28 17:41:12
转载地址:
Samba-2.2.12移植到海思开发板
移植软件:
samba2(下载:)
移植目标:
能在目标平台上正常以后台进程方式运行
能正常输出日志,便于查错
移植说明:
因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共享了
yilumingzuo2014-03-13 15:47:57
root@sbc8118:/usr/local/samba/sbin# ls
nmbd smbd swat winbindd
root@sbc8118:/usr/local/samba/sbin# ./nmbd -i -d 8
./nmbd: line 1: syntax error: word unexpected (expecting ")")
请问楼主我咋不能执行呢,报语法错误是我开始设置./configure错了么,还是环境变量设置的不对,盼回复
yilumingzuo2014-03-13 15:45:42
iskey:file smbd, 看smbd是不是目标平台的可执行文件,可能是编译器版本不对的问题
可执行文件的路径不对,在sbin目录下
回复 | 举报