linux 搭建tftp&nfs&samba服务

我是一名嵌入式开发人员,工作中经常需要在windows主机与linux主机进行文件传输,共享;或是linux 主机与arn linux 开发板之间进行文件传输。所以搭建tftp,nfs,samba服务是必须的。言归正传,开始记录我的简单说明和步骤。

开发环境:

PC :Windows 7, PC: linux Ubuntu 12.04.5 LTS(版本有点低哈哈),arm os:linux

一 :tftp 服务搭建 (主要是在linux主机与arm开发板之间进行文件传输)

我很倾向在u-boot阶段应用tftp工具来更新/烧写我的arm 开发板的flash中的镜像。tftp基于udp,有人认为在u-boot阶段应用tftp存在系统变砖的风险。但是如果是一名测试工程师或是研发人员,你总会有办法恢复;至于在实际应用中,只要你不把u-boot毁掉,就没有大问题,你不可能总有条件跑到现场通过存储设备去引导系统烧写。

网络服务通常是基于server-client架构,所以谈到搭建各种服务会涉及到两方面:server端配置与client端配置。

tftp 服务器端配置:

1.  安装ttfpd(server),tftp(client),(xinetd)

f42073@ubuntu:~$ sudo apt-get install tftpd tftp xinetd

按提示进行。

2. 在我的工作目录创建tftpboot文件夹,并修改tftpboot文件夹的访问权限

扫描二维码关注公众号,回复: 543743 查看本文章

f42073@ubuntu:~$ mkdir tftpboot

f42073@ubuntu:~$ chmod 777 tftpboot

3. 修改/etc/xinetd.d/tftp 文件,如果文件不存在则创建:

f42073@ubuntu:~$ cd /etc/xinetd.d/

f42073@ubuntu:/etc/xinetd.d$ sudo touch tftp

f42073@ubuntu:/etc/xinetd.d$ sudo chmod u+x tftp

f42073@ubuntu:/etc/xinetd.d$ vim tftp

配置如下:



4. 启动tftp服务  

f42073@ubuntu:~/service$ sudo service xinetd restart

5.  f42073@ubuntu: ~$sudo apt-get install tftp-hpa tftpd-hpa

6. f42073@ubuntu:~$ vim /etc/default/tftpd-hpa 配置如下


7.  f42073@ubuntu: ~$sudo service tftpd-hpa restart

8. 可以在本机进行下回环测试

f42073@ubuntu:~/service$ tftp 127.0.0.1

tftp> get test.txt

tftp>q

===9. 客户端测试:arm-linux===

接下来就可以在arm开发板的u-boot或是linux环境下应用tftp工具进行烧写flash或是下载文件了,以下是在u-boot下应用tftp的示例。

测试目标板:LS1012A  

linux 主机serverip 192.168.2.149

=> setenv ipaddr 192.168.2.85

=> setenv serverip 192.168.2.149

=> setenv ethaddr 00:04:9f:04:6e:c4

=> setenv eth_act pfe_eth0

=> saveenv

=> ping $serverip
Speed detected 3e8
Using pfe_eth0 device

host 192.168.2.149 is alive

=> setenv rootfs_bhr ls1012/ls1012a-rdb-bhr/jffs2-256k-openwrt-ls1012a-rdb-bhr

=> setenv update_rootfs "tftp a0000000 $rootfs_bhr && sf erase 0x1600000 0x2a00000 && sf write 0xa0000000 0x1600000 $filesize"

=> run update_rootfs

在linux 下的应用就easy了不再举例

==============================

二 :搭建nfs服务

nfs服务器端配置:

1. 安装 nfs-kernel-server(server) , nfs-common(client,这个在PC linux 上视需求而定)

f42073@ubuntu:~$ sudo apt-get install nfs-kernel-server nfs-common

2. pc linux 端创建nfs共享目录

f42073@ubuntu:~$ sudo mkdir nfs-data

3. f42073@ubuntu:~$ sudo vim /etc/exports

最后一行是我添加的内容



4. satrt nfs 服务

f42073@ubuntu:~$ exportfs -rv

f42073@ubuntu:~$ sudo /etc/init.d/portmap restart

f42073@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server restart

5. 释放一个rootfs文件到nfs-data目录

f42073@ubuntu:~$ tar -xvjf rootfs.tar.bz2  -C ~/nfs-data/

6. 客户端测试:arm-linux

===客户端linux 环境下测试:===

在client 端 ping server端测试网络连通

root@OpenWrt:/# ping 192.168.2.149 -c 3

root@OpenWrt:/# mount -t nfs -o nolock 192.168.2.149:/nfs_data /mnt

root@OpenWrt:/# ls -l mnt

后续打算深入了解nfs与RPC通讯。

===客户端u-boot到linux测试===

=> setenv ipaddr 192.168.2.85

=> setenv serverip 192.168.2.149

=> setenv ethaddr 00:04:9f:04:6e:c4

=> setenv eth_act pfe_eth0

=> saveenv

=> ping $serverip
Speed detected 3e8
Using pfe_eth0 device

host 192.168.2.149 is alive

 => setenv nandargs "setenv bootargs console=ttymxc0,115200 cma=64M
root=/dev/nfs ip=192.168.2.85:192.168.2.1:255.255.255.0 nfsroot=192.168.2.149:/n

fs-data,v3,tcp rootfstype=yaffs2,calibrate=${calibrate}"

=> run bootnand

进入到linux后从nfs挂载文件系统:

先阐明下我的nand flash布局


擦除文件系统:

root@OpenWrt:/# flash_erase /dev/mtd5 0 0

root@OpenWrt:/# mkdir /mtd5

root@OpenWrt:/# mount –t yaffs /dev/mtdblock5 /mtd5

reboot 开发板。

三: Samba服务(我的PC linux 与PC windows文件共享)

pc linux的配置:

1. f42073@ubuntu:~$ sudo apt-get install samba smbclient

2. f42073@ubuntu:~$ sudo vim /etc/samba/smb.conf 编辑结果如下:



3. f42073@ubuntu:~$ smbd –D –s /etc/smb.conf

4. f42073@ubuntu:~$ sudo smbpasswd f42073

按提示输入samba用户访问密码。

5. 在windows端通过映射网络驱动器打开


好了 今天先分享到这,如果文中有错误,欢迎指正!















猜你喜欢

转载自blog.csdn.net/hanpca/article/details/80266857