Window和linux使用samba实现文件共享

news2024/11/24 2:26:27

开发环境

开发平台:IMX6
虚拟机环境:Ubuntu16.04
Samba版本:3.4.17

目的

实现无论IMX6作为客户端还是服务端,IMX6系统下与window系统、ubuntu系统文件共享。

Samba移植

  1. 下载Samba源码,这个网上一搜大把,我用的版本是samba-3.4.17.tar.gz
  2. 把samba-3.4.17.tar.gz源码放在Ubuntu下进行交叉编译。
  3. 如下步骤:

1、解压

tar -xvf samba-3.4.17.tar.gz 

2、进入到源码中的source3目录下进行交叉编译

在编译前,需要确定交叉编译器是否设为全局环境当中。如果输入以下指令能正常输出的话,证明已经设置了。

arm-linux-gnueabihf-gcc -v
配置
./configure  --host=arm-linux-gnueabihf --disable-cups --disable-iprint --enable-static=yes --disable-shared  samba_cv_CC_NEGATIVE_ENUM_VALUES=yes
编译
make
安装
make DESTDIR=./installDir install 

3、将编译出来的文件拷贝到开发板上

 1、可以通过U盘拷贝或者scp网络传输进行
 2、将installDir目录下的/usr拷贝到开发板的rootfs文件系统/usr上去
 3、将source3中bin目录下的一些工具也拷贝过去,如smbd,nmbd这两个守护进程拷贝到/bin下
 4、将source3/bin/libwbclient.a静态库拷贝到文件系统的/lib
 5、将source3/bin/mount.cifs拷贝到文件系统的/bin
  

4、在开发板上配置和搭建

第一种情况:开发板作为服务端server
1、创建samba的配置文件smb.conf
root@imx6dlsabresd:/# vi /etc/smb.conf
内容如下:
[global]
workgroup = root
security = user
client lanman auth = yes
lanman auth = yes
map to guest = bad user
guest account = root

[project]
comment = project
path = /home/hyb/samba
available = yes
browseable = yes
public = yes
guest ok = yes
writable = yes

开启Samba的守护进程(mnbd是Samba服务器中负责处理NetBIOS名称解析服务的守护进程,而smbd是负责处理SMB/CIFS协议请求的核心组件。它们分别提供了不同的功能和服务,但都是为了实现Samba服务器的文件共享和网络访问功能)

/bin/nmbd -s /etc/smb.conf -D
/bin/smbd -s /etc/smb.conf -D
默认的smb.conf是在/usr/local/samba/lib/路径下

通过指令ps -ef如下图即为正常启动
在这里插入图片描述
电脑端:
window+R键输入\开发板的IP地址,前提是一定window端和开发板端能够ping通
在这里插入图片描述
在这里插入图片描述
这就成功连接上了,可以在这个目录下共享文件了。

如果连接的时候报,window报以下错误的话。
在这里插入图片描述
解决方法如下:
在这里插入图片描述
配置成功后,电脑重启

第二种情况:window端为服务端,开发板为客户端
1、电脑端新建用户

在这里插入图片描述

新建共享目录

在这里插入图片描述

开发板端设置

如果在执行mount.cifs指令的时候出现如下错误:

root@imx6dlsabresd:/# /bin/mount.cifs //192.168.0.173/J  /home/hyb/dir -o username=hyb,password=123456
mount error: cifs filesystem not supported by the system
mount error(19): No such device
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

需要在kernel中支持cifs类型的文件系统。
在这里插入图片描述

root@imx6dlsabresd:/usr/local/samba/bin# /bin/mount.cifs //192.168.0.173/J  /home/hyb/dir -o username=hyb,password=123456

####如果输入df指令出现以下信息,就相当于挂载成功了
root@imx6dlsabresd:/usr/local/samba/bin# df
Filesystem        1K-blocks    Used Available Use% Mounted on
/dev/root           6779240 1224680   5187152  20% /
devtmpfs             867976       4    867972   1% /dev
tmpfs               1032536     152   1032384   1% /run
tmpfs               1032536     380   1032156   1% /var/volatile
/dev/mmcblk3p1       511720    7176    504544   2% /run/media/mmcblk3p1
//192.168.0.151/J    204796   16224    188572   8% /home/hyb/dir

扩展

在ubuntu下搭建samba环境会相对于简单一些。
apt-get下载软件包

sudo apt-get install samba samba-common
sudo apt-get install smbclient cifs-utils

在配置文件中添加如下语句
/etc/samba/smb.conf

[share]
comment = share folder
browseable = yes
path = /home/hyb/sambadir
create mask = 0700
directory mask = 0700
valid users = hyb
force user = hyb
force group = hyb
public = yes
available = yes
writable = yes

新建samba用户

sudo smbpasswd -a hyb

可以使用smbclient连接

sudo smbclient  //192.168.0.151/share -U hyb
//192.168.0.151 >>>> 服务器端的IP
share           >>>> 共享名

其他步骤就像在imx6端和window端操作一样了,就不详细写了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/795293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ | 构造与析构

目录 普通构造 构造函数基础 显示调用与隐式调用 explicit关键字 初始化列表 拷贝构造 拷贝构造的写法 深拷贝和浅拷贝 拷贝构造的调用时机 返回值优化 析构函数 析构函数基础 析构函数的作用 注意事项 如果无法调用构造函数,那么就无法实例化出对象…

python进阶书籍的推荐 知乎,python入门后如何进阶

本篇文章给大家谈谈python进阶书籍的推荐 知乎,以及python入门后如何进阶,希望对各位有所帮助,不要忘了收藏本站喔。 1、Python应该怎么学_python应该怎么学 想要学习Python,需要掌握的内容还是比较多的,对于自学的同…

java设计模式之模板模式(结合示例)

文章目录 📋模板模式概念📖组成要素🔖代码示例 📈总结 📋模板模式概念 在Java中,模板模式(Template Pattern)是一种行为设计模式,它定义了一个操作中的算法框架&#xf…

Unity游戏源码分享-街机捕鱼2017版本

Unity游戏源码分享-街机捕鱼2017版本 完整的单机游戏 功能玩法,积分系统都已经齐全的了。 项目源码地址:https://download.csdn.net/download/Highning0007/88105459

音视频——帧内预测

H264编码(帧内预测) 在帧内预测模式中,预测块P是基于已编码重建块和当前块形成的。对亮度像素而言,P块用于44子块或者1616宏块的相关操作。44亮度子块有9种可选预测模式,独立预测每一个44亮度子块,适用于带有大量细节的图像编码&…

C语言中的函数(超详细)

C语言中的函数(超详细) 一、函数概述二、C语言中函数的分类1.库函数2.自定义函数三、函数的参数1.实际参数(实参)2.形式参数(形参)四、函数的调用1.传值调用2.传址调用五、函数的嵌套调用和链式访问1.嵌套调…

【手机】三星手机刷机解决SecSetupWizard已停止

三星手机恢复出厂设置之后,出现SecSetupWizard已停止的解决方案 零、问题 我手上有一部同学给的三星 GT-S6812I,这几天搞了张新卡,多余出的卡就放到这个手机上玩去了。因为是获取了root权限的(直接使用KingRoot就可以&#xff0…

C++ 提高编程

C 提高编程 主要针对C泛型编程和STL技术 一、 模板 1、 概念 模板就是建立通用的模具,大大提高代码的复用性 模板特点 模板不可以直接使用,它只是一个框架 ​ 模板的通用并不是万能的 2、 函数模板 C 另一种编程思想为泛型编程,主要利用的…

ChatGPT如何帮助学生学习

​ 一些教育工作者担心学生可能使用ChatGPT作弊。因为这个AI工具能写报告和计算机代码,画出复杂图表……甚至已经有许多学校把ChatGPT屏蔽。 研究发现,学生作弊的主要原因是想考得好。是否作弊与作业和考试的打分方式有关,所以这与技术的便…

浅谈前端跨平台框架

概述 前端跨端实践是指在开发过程中,使用统一的代码库或框架来实现在不同平台上运行的应用程序。 这种实践旨在减少重复开发和维护成本,并提高开发效率和用户体验。 以下是一些前端跨端实践的方法和技术: 响应式设计(Responsiv…

0-虚拟机补充知识

虚拟机克隆 如果想要构建服务器集群,没有必要一台一台的去进行安装,只要通过克隆就可以。 快速获得多台服务器主要有两种方式,分别为:直接拷贝操作和vmware的克隆操作 直接拷贝 将之前安装虚拟机的所有文件进行拷贝&#xff0…

聊聊单片机编程测量电机的电流

要测量电机的电流,可以使用电流传感器来实现。常见的电流传感器有霍尔效应传感器和电阻式传感器。 在单片机编程中,可以通过 ADC(模拟数字转换器)模块来实现对电流传感器输出电压的采样和转换。下面是一个简单的步骤:…

笔记本充满电后,充电器可以长期不拔,会有安全隐患吗?

笔记本充满电后,一直插着不拔 1.建议人在身边可以暂时不拔,偶尔还是要使用电池当笔记本电池充满之后,电脑会自动使用电源供电,不会使用电池供电 2.笔记本电池都带有电池保护机制,在电池充满电后会自动停止充电 3.现在…

Ceph的应用

文章目录 一、创建 CephFS 文件系统 MDS 接口1)在管理节点创建 mds 服务2)查看各个节点的 mds 服务3)创建存储池,启用 ceph 文件系统4)查看mds状态,一个up,其余两个待命,目前的工作的…

Python - Opencv + pyzbar实时摄像头识别二维码

直接上代码: import cv2 from pyzbar.pyzbar import decodecap cv2.VideoCapture(0) # 打开摄像头while True: # 循环读取摄像头帧ret, frame cap.read()# 在循环中,将每一帧作为图像输入,使用pyzbar的decode()函数识别二维码barcodes …

gitignore文件使用方法(gitignore教程)(git status --ignored)(git check-ignore -v <file>)

文章目录 Gitignore文件使用描述Gitignore基本语法1. 基本语法★★★★★2. 配置方法 匹配示例示例1示例2示例3 其他命令git status --ignored&#xff08;用于显示被Git忽略的文件和文件夹的状态&#xff09;git check-ignore -v <file>&#xff08;用于检查指定文件是否…

springMVC--异常处理

文章目录 springMVC--异常处理基本介绍局部异常应用实例演示局部异常处理机制代码实现测试(页面方式) 全局异常应用实例应用实例需求代码实现完成测试(页面方式) 自定义异常应用实例应用实例需求应用实例-代码实现完成测试 全局异常处理---SimpleMappingExceptionResolver基本说…

Docker 阿里云容器镜像服务

阿里云-容器镜像服务ACR 将本地/服务器docker image&#xff08;镜像&#xff09;推送到 阿里云容器镜像服务仓库 1. 在容器镜像服务ACR中创建个人实例 2. 进入个人实例 > 命名空间 创建命名空间 3. 进入个人实例 > 镜像仓库 创建镜像仓库 4. 进入镜像仓库 > 基本信…

商品分类新建,修改,删除。手机扫码开单打印进销存,商贸批发生产企业仓库条码管理软件系统

商品分类新建&#xff0c;手机扫码开单打印进销存&#xff0c;商贸批发生产企业仓库条码管理软件系统&#xff0c;超市便利店五金茶叶烟酒鞋帽门店零售手机收银管理软件APP_哔哩哔哩_bilibili本期视频讲解&#xff1a;商品分类新建, 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚…

小程序picker 在苹果手机不兼容 bug,按month时在iPhone 显示不正确及自动定位时间问题

如下图&#xff1a;点击弹出时间列表&#xff1a;日历控件点击选择显示1年1月 解决: 加上起始时间字段 <picker mode"date" value"{{date}}" start"1970-09-01" end"2030-09-01"></picker> 问题二&#xff1a; 还是&a…