PC平台:ubuntu 12.04 lts
samba-4.0.8
解压samba-4.0.8.tar.gz进入source3目录,在这个目录下编写一个脚本config.sh内容如下:
./configure CC=arm-linux-gcc LD=arm-linux-ld AR=arm-linux-ar --target=arm-linux --host=i686 --cache-file=cache-file.cache
由于检查硬件信息的软件在宿主机上无法运行,在configure过程中可利用--cache-file将硬件平台已知信息保存到cache-file.cache中,再次configure时将从cache-file.cache中读取所需硬件信息。
在configure中出现一些如下所示错误:
在configure脚本中搜索到需要给ac_cv_c_bigendian赋值,由于ARM平台为小端,在cache-file.cache中加上ac_cv_c_bigendian=no,后面出现类似情况都这样处理。
configure成功后进行make
会出现#error SIZEOF_BLKCNT_T_NOT_A_SUPPORTED_VALUE错误,查找内核源码后发现ARM平台定义了typedef u64 blkcnt_t,将include/autoconf/config.h文件中/* #undef SIZEOF_BLKCNT_T_8 */改成/#define SIZEOF_BLKCNT_T_8重新make,编译成功
执行sudo make install prefix=/usr/local/arm/samba,
然后将/usr/local/arm/下的samba目录打包,复制到开发版上,解压到/usr/local目录,最后的路径必须为/usr/local/samba,加上相应权限。
进入/usr/local/samba/lib目录新建文件smb.conf内容如下:
[global]
workgroup =Mygroup
server string =Samba
netbios name =myarm
guest account=root
security =share
[share]
path =/home
writeable =yes
guest ok=yes
browseable=yes
进入/usr/local/samba/sbin/
执行
./smbd -D &
./nmbd -D &
samba服务器成功启动