2. 嵌入式Linux搭建TFTP/NFS/SAMP服务器

  • 硬件平台

    ubuntu虚拟机:IP地址192.168.2.11

    window主机:IP地址:192.168.2.10

    注意:保证ubuntu和window在同一个网段,能互相ping即可

2.1. TFTP 服务器相关

目的:ubuntu下安装tftp服务器,设置共享目录为/home/book/tftpboot,arm板子在uboot阶段通过tftp服务下载ubuntu,tftp服务器中的内核、设备树、文件系统等到arm板子。

  1. 安装tftp服务器:sudo apt-get install tftp-hpa tftpd-hpa

  2. 配置tftp服务器

    mkdir -p /home/book/tftpboot
    chmod 777 /home/book/tftpboot
    sudo vim /etc/default/tftpd-hpa
    		TFTP_DIRECTORY="/home/book/tftpboot" #配置tftp服务器目录
    		TFTP_OPTIONS="-l -c -s"
    
  3. 重启

    sudo service tftpd-hpa restart
    
  4. 验证是否安装成功

    # 随便在一个目录下
    cd /home/book/tftpboot
    vim test.txt      # 在tftp共享目录下新建文件text.txt
    cd /home/book     # 切换到到它任意目录,除了tftp服务的共享目录/home/book/tftpboot
    tftp 192.168.2.11 # 连接tftp服务器
    tftp> get test.txt# 获取tftp服务器下的文件
    tftp> q           # 断开tftp连接
    ls                # 查看是否获取到文件
    b.txt
    

2.2. NFS 服务器相关

目的:ubuntu下安装nfs服务器,设置共享文件夹/home/book/nfs_rootfs,方便arm板子通过挂载nfs网络文件夹,开发调试。

  1. 安装nfs服务器

    sudo apt-get install nfs-kernel-server
    
  2. 配置nfs服务器

    sudo vim /etc/exports
    	/home/book/nfs_rootfs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
    
  3. 重启nfs服务

    sudo service nfs-kernel-server restart
    
  4. ubuntu下验证nfs服务器

    sudo mount -t nfs 192.168.2.11:/home/book/nfs_rootfs /mnt
    
  5. 开发板内核启动后挂载NFS网络共享文件夹

    [root@firefly-rk3288:/]# mount -t nfs  192.168.2.11:/home/book/nfs_rootfs /mnt
    

2.3. Samb服务器

# 第一步:更新软件
sudo apt-get upgrade
sudo apt-get update
sudo apt-get dist-upgrade
# 第二步:安装samba服务器
sudo apt-get install samba samba-common
sudo chmod 777 /home/book/
# 第三步:添加用户
sudo smbpasswd -a book
# 第三步:配置samba服务器
sudo vim /etc/samba/smb.conf
# 内容如下:
[share]                           
   comment = this is a  share folder
   browseable = no
   path = /home/book/embdefire   # 需要共享的目录
   #path = /home/book/ming
   create mask = 0755
   directory mask = 0755

   valid users = book,ming
   write list = book
   force user = book
   force group = book
   public = yes
   available = yes
   writeable = yes


# 第四步:从新启动
sudo service smbd restart



# 参数说明:
[share]                           指定共享名,也就是客户端在访问时所看到的共享目录名字
   comment = this is a share      共享文件说明,有没有都可以
   browseable = no                不让匿名用户看到共享内容
   path = /home/book/embdefire    指定共享目录实际路径,要求必须使用绝对路径
   valid users = book,ming        指定的可以访问Samba 共享的用户
   write list = book              只允许book具有写权限
   create mask = 0755             设置新建文件的权限, (rwx r-x r-x)
   directory mask = 0755          设置新建文件夹的权限, (rwx r-x r-x)
    force user = book             设置用户
   force group = book             设置用户所在的组 这两项可以使在win下创建文件夹和删除文件的权限
   available = yes
   writeable = yes     共享目录是否允许Samba用户写入,虽然设置了所有Samba用户都可以写入,但由于“valid users”设置项限制了只能book,ming访问
sudo smbpasswd -a book 创建smb用户,并创建访问密码

win下访问samp服务器,如下图所示

../../../../_images/image-20201121164243387.png

添加一个网络位置,这样我们就可以在win下我的电脑里面找到共享的文件夹

../../../../_images/image-20201121164401314.png