手把手带你基于嵌入式 Linux 移植 samba 服务
本文分享自华为云社区《嵌入式Linux下移植samba服务--<基于北斗和4G cat1模块的智慧物流>开发实战》,作者: 小小小橘。
Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
嵌入式开发过程中,往往需要将文件传输至开发板,移植 samba 服务之后,将开发板接入局域网之后,客直接通过访问开发板 IP 地址直接访问开发板 samba 共享文件夹,在开发板和局域网内传输文件方便快捷。此次主要介绍移植 samba 以及开发中可能遇到的问题。
此次感谢华为云 IoT 课程《基于北斗和 4G cat1 模块的智慧物流》提供的 STM32MP1 开发板,可关注华为云公众号、华为云 IoT 物联网论坛获取更多活动内容。
开发环境
系统:Ubuntu 18.04 64 位
开发板:STM32MP157
samba 版本:3.2.15
准备工作
samba 下载链接:https://download.samba.org/pub/samba/
选择 samba-3.2.15.tar.gz 下载。
编译
下载完成之后,在文件夹下使用 tar 命令进行解压,解压完成之后 cd 进入 samba-3.2.15/source 文件夹下进行配置。
进入文件夹下后
修改 configure 文件,修改内容见
编辑修改 configure 文件内容,修改内容如下,全文共 7 处需修改。
原文内容:
修改后见下图
执行如下命令
至此,配置完成。
配置完成之后执行 make 命令进行编译,编译完成如下图
编译完成之后执行 make install 命令安装,安装的路径默认为/usr/local/samba。
安装完成之后将/usr/local/samba 文件夹打包拷贝,打包命令
打包完成之后将 samba.tar.gz 文件拷贝至开发板/usr/local 文件夹下。此处使用 scp 命令拷贝至开发板(前提开发板已接入局域网内,并可 Ubuntu 系统可相互 ping 通,本次开发板 IP:192.168.124.11),命令如下
发送完成之后可在开发板/usr/local 文件下查看到压缩包,使用如下命令进行解压。
解压后进入/usr/local/samba/lib 文件夹下,添加 smb.conf 文件,此配置文件可根据需求进行配置。
添加内容如下
增加可 smb.conf 文件之后,可进入 samba/bin 文件进行测试,执行./findsmb 文件。可搜索局域网内的 samba 服务端。
进入 samba/sbin 文件夹下执行命令启动 samba 服务。
至此,samba 服务移植完成,可在 windows 下快捷键 win+r 打开“运行”,输入开发板开发板 ip 进行访问开发板共享文件夹,妈妈再也不用担心传文件问题了!
编译过程中出现的错误
1、checking that the C compiler understands negative enum values... configure: error
checking whether arm-none-linux-gnueabihf-gcc and cc understand -c and -o together... yes
checking that the C compiler understands -Werror... cross
checking that the C compiler understands -w2... cross
checking that the C compiler understands -errwarn... cross
checking that the C compiler understands volatile... yes
checking that the C compiler understands negative enum values... configure: error: in `/home/fan/Downloads/samba-3.2.15/source':
configure: error: cannot run test program while cross compiling
See `config.log' for more details.
解决办法:
命令行执行如下命令,并在执行./configure 命令时加参数 --cache-file=arm-linux.cache
2、configure: error: cannot run test program while cross compiling
checking for __open64... yes
checking for creat64... yes
checking for prctl... yes
configure: error: in `/home/fan/Downloads/samba-3.2.15/source':
configure: error: cannot run test program while cross compiling
See `config.log' for more details.
解决办法:
编辑修改 configure 文件内容,修改内容如下,全文共 7 处需修改。
原文内容:
更改后如下图
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/841bbb08be909738c4404bbf5】。文章转载请联系作者。
评论