该版本支持IPV6
1.获取source code, http://www.samba.org Samba 3.2.15
2.解压
方法一:自己指定了samba一些配置文件和日志文件的存放路径
运行.
/configure CC=arm-linux-gcc AR=arm-linux-ar LD=arm-linux-ld RANLIB=arm-linux-ranlib \
--host=i686 \
--target=arm-linux \
--prefix= \
--disable-cups \
--disable-iprint \
--disable-pie \
--disable-fam \
--with-ads=no \
--with-ldap=no \
--with-cifsmount=no \
--with-logfilebase=/var/log \
--with-libdir=/usr/lib \
--with-swatdir=/usr/local/swat \
--with-rootsbindir=/sbin \
--with-lockdir=/var/lock \
--with-piddir=/var/lock \
--with-privatedir=/etc/samba \
--with-configdir=/etc/samba \
--cache-file=arm-linux.cache
可以复制的
./configure CC=arm-linux-gcc AR=arm-linux-ar LD=arm-linux-ld RANLIB=arm-linux-ranlib \
--host=i686 \
--target=arm-linux \
--prefix= \
--disable-cups \
--disable-iprint \
--disable-pie \
--disable-fam \
--with-ads=no \
--with-ldap=no \
--with-cifsmount=no \
--with-logfilebase=/var/log \
--with-libdir=/usr/lib \
--with-swatdir=/usr/local/swat \
--with-rootsbindir=/sbin \
--with-lockdir=/var/lock \
--with-piddir=/var/lock \
--with-privatedir=/etc/samba \
--with-configdir=/etc/samba \
--cache-file=arm-linux.cache
方法二:使用samba默认的路径(推荐)
./configure CC=arm-linux-gcc AR=arm-linux-ar LD=arm-linux-ld RANLIB=arm-linux-ranlib \
--host=i686 \
--target=arm-linux \
--disable-cups \
--disable-iprint \
--cache-file=arm-linux.cache
可以复制的
./configure CC=arm-linux-gcc AR=arm-linux-ar LD=arm-linux-ld RANLIB=arm-linux-ranlib \
--host=i686 \
--target=arm-linux \
--disable-cups \
--disable-iprint \
--cache-file=arm-linux.cache
经过以上的配置会出现的错误:
查看config.log文件的最后,将光标移到最后,找到配置终止的地方,我找到的关键字是“HAVE_VOLATILE”,然后打开configure文件,直接在该文件下查找“HAVE_VOLATILE”
如图:
修改如下:
然后要删除config.log这个文件之后再来./configure
以后还会出现一个问题:(修改图如下)
这个问题解决了基本上就没有什么问题了,最后得到Makefile文件
3.make
二.使用
1.在ARM开发板上建以下目录:
/usr/local/samba/bin
/usr/local/samba/private
/usr/local/samba/lib/usr/local/samba/var
因为在上面的configure中的路径我用的是默认的,在smb运行时要用到.并把/samba3.0.23/source/bin目录下的所有文件考到ARM开发板的/usr/local/samba/bin目录中.
5.
share级别配置(ubantu下和开发板下这个配置都可以)
根据上面在./configure 的时候是否指定了路径来在arm文件系统中的/etc/samba或者在/usr/local/samba/lib/中创建smb.conf
[global]
workgroup = ARMSMB
netbios name =ArmSMB
server string = Arm Linux Samba Server
guest account = root
security = share[share]
path = /root/share
writeable = yes
browseable = yes
guest ok = yes
user级别配置(只在ubantu下配置有效,开发板下会出现问题)
根据上面在./configure 的时候是否指定了路径来在arm文件系统中的/etc/samba或者在/usr/local/samba/lib/中创建smb.conf
以下把samba默认的配置选项都列举出来了
[global]
workgroup = MYGROUP
server string = Samba Server
security = user
; hosts allow = 192.168.1. 192.168.2. 127.
load printers = no
; printcap name = /etc/printcap
; printcap name = lpstat
; printing = cups
; guest account = pcguest
log file = /usr/local/samba/var/log.%m
max log size = 50
; password server = <NT-Server-Name>
; realm = MY_REALM
; passdb backend = tdbsam
; include = /usr/local/samba/lib/smb.conf.%m
; interfaces = 192.168.12.2/24 192.168.13.2/24
; local master = no
; os level = 33
; domain master = yes
; preferred master = yes
; domain logons = yes
; logon script = %m.bat
; logon script = %U.bat
; logon path = \\%L\Profiles\%U
; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
dns proxy = no; add user script = /usr/sbin/useradd %u
; add group script = /usr/sbin/groupadd %g
; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
; delete user script = /usr/sbin/userdel %u
; delete user from group script = /usr/sbin/deluser %u %g
; delete group script = /usr/sbin/groupdel %g
以下 就是 一些 配置的例子
#============================ Share Definitions ==============================
;[homes]
; comment = Home Directories
; browseable = no
; writable = yes# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /usr/local/samba/lib/netlogon
; guest ok = yes
; writable = no
; share modes = no # Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
; path = /usr/local/samba/profiles
; browseable = no
; guest ok = yes # NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
;[printers]
; comment = All Printers
; path = /usr/spool/samba
; browseable = no# Set public = yes to allow user 'guest account' to print
guest ok = no
writable = no
printable = no# This one is useful for people to share files
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = no
; printable = no
; write list = @staff# Other examples.
#
# A private printer, usable only by fred. Spool data will be placed in fred's
# home directory. Note that fred must have write access to the spool directory,
# wherever it is.
;[fredsprn]
; comment = Fred's Printer
; valid users = fred
; path = /homes/fred
; printer = freds_printer
; public = no
; writable = no
; printable = yes# A private directory, usable only by fred. Note that fred requires write
# access to the directory.
;[fredsdir]
; comment = Fred's Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes# a service which has a different directory for each machine that connects
# this allows you to tailor configurations to incoming machines. You could
# also use the %U option to tailor it by user name.
# The %m gets replaced with the machine name that is connecting.
;[pchome]
; comment = PC Directories
; path = /usr/pc/%m
; public = no
; writable = yes# A publicly accessible directory, read/write to all users. Note that all files
# created in the directory by users will be owned by the default user, so
# any user with access can delete any other user's files. Obviously this
# directory must be writable by the default user. Another user could of course
# be specified, in which case all files would be owned by that user instead.
;[public]
; path = /usr/somewhere/else/public
; public = yes
; only guest = yes
; writable = yes
; printable = no # The following two entries demonstrate how to share a directory so that two
# users can place files there that will be owned by the specific users. In this
# setup, the directory should be writable by both users and should have the
# sticky bit set on it to prevent abuse. Obviously this could be extended to
# as many users as required.
;[myshare]
; comment = Mary's and Fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765[text2]
comment = text2
path = /home/zxh
writable = yes
valid users = movie1
public = no
简化之后就是如下的配置情况
[global]
workgroup = MYGROUP
server string = Samba Server
security = user
load printers = no
log file = /usr/local/samba/var/log.%m
max log size = 50
dns proxy = no[text2]
comment = text2
path = /home/zxh
writable = yes
valid users = movie1
public = no
经过testparam检查获得的结果:
在ubantu下需要建立进行如下操作
#useradd movie1//建立ubantu下的系统用户
#passwd movie1 //为该用户配置密码
#smbpasswd -a movie1 //添加samba用户同时建立登陆密码(注意一定要保证movie1在系统用户里面是有的)
6.运行(使用smbd -i -d 8 可以进行调试)
nmbd -D
smbd -D
在windows进行登陆\\ip
如果ps看不到如上如容,说明smb没有运行,可以用smbd -i -d 8 启动smb,可以打印启动信息,其中-i 是交互模式,-d是打印调试级别。
4.在windows-->开始-->运行,中输入//192.168.2.230(这是开发板IP)不用密码就可看到ARM开发板smb共享了.