交叉编译samba和CIFS/SMB使用

作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

嵌入式samba功能的实现,linux下samba的移植
交叉编译samba(mipsel-linux) samba-3.3.3.tar.gz
samba交叉编译
Samba官网
Samba Github
Samba官网ftp samba2在old-version文件夹中
samba源码安装
Ubuntu 18.04交叉编译机顶盒samba软件
CIFS 与 SMB 有什么区别?
如何在 Windows 中检测、启用和禁用 SMBv1、SMBv2 和 SMBv3
默认情况下,windows 10 版本1709、Windows Server 版本1709及更高版本中未安装 SMBv1
Windows 7升级1月更新汇总后导致SMBv2网络无法正常工作

samba

最新的是samba4,还在更新中,总计有1,2,3,4四个版本的samba,

  • samba-1.9.18
  • samba-2.2.12
  • samba-3.6.25

交叉编译samba

编译中遇到一些错误,

#define HAVE_GETTIMEOFDAY_TZ
/*winbindd_nss.h*/
#define uint32 unsigned int
# for powerpc
/*readline.c*/
rl_event_hook = callback;//(Function *)callback;

bn编译,

./configure --cross-compile --cross-execute=arm-xilinx-linux-gnueabi- --hostcc=gcc

对于win7,打开windows文件浏览器,输入\\x.x.x.x即可访问,对于win10,默认只支持smb3.x,需要手动开启smb1.0,
交叉编译samba和CIFS/SMB使用_第1张图片
将smb1.0升级为smb2.0,官员打开powershell,

PS C:\Windows\system32> Set-SmbServerConfiguration -EnableSMB2Protocol $true

确认
是否确实要执行此操作?
正在执行操作“Modify”(针对目标“SMB Server Configuration”)[Y](Y)  [A] 全是(A)  [N](N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“Y”):

编写配置文件,在开发板上执行,

$ vi /usr/local/samba/lib/smb.conf
[global]
workgroup=workgroup
server string=zynq
netbios name=zynq
guest account=root
security=share
interfaces=eth0
[share]
path=/
guest ok=yes
browseable=yes
$ smbd -D

CIFS客户端

配置内核,添加2.0/3.0支持,

<*>   CIFS support (advanced network filesystem, SMBFS successor)
[ ]     CIFS statistics                                          
[ ]     Support legacy servers which use weaker LANMAN security  
[ ]     Kerberos/SPNEGO advanced session setup                   
[*]     CIFS extended attributes                                 
[*]       CIFS POSIX Extensions                                  
[*]       Provide CIFS ACL support

windows上创建文件夹,开启共享,允许在公共和家庭网络发现,
交叉编译samba和CIFS/SMB使用_第2张图片
在开发板上挂载,vers=2.0适用于win8以后的windows操作系统,解决Host is downnounix,noserverino解决Value too large for defined data type

# mount -t cifs -o username=zc,password=zc,vers=2.0,nounix,noserverino //192.168.6.6/share ./win

对于ubuntu,指定dir_modefile_mode

$ sudo mount -t cifs -o username=zc,password=zc,dir_mode=0777,file_mode=0777 //192.168.6.6/share ./windows

你可能感兴趣的:(linux应用开发,samba)