主机环境

开发主机环境:Ubuntu16.04

samba:

  • 安装服务:
    sudo apt-get install samba

  • 配置:
    sudo vi /etc/samba/smb.conf
    在最后添加:

    #[共享名称] 远程网络看到的共享名称
    [share] 
    #comment 注释信息
    comment = samba
    #path 所共享的目录路径
    path = /home/xxx
    #public 能否被guest访问的共享,默认no,和guest ok 类似
    public = yes
    #writable 可以被所有用户读写,默认为no
    writeable = yes
    #browsable 是否允许所有用户浏览此共享,默认为yes,no为隐藏
    browseable = yes
    #read only=no 和writable=yes等价,如与以上设置冲突,放在 后面的设置生效,默认只读
    read only = no
    #write list 三种形式:用户,@组名,+组名,用,分隔 如writable=no,列表中用户或组可读写,不在列表中用户只读
    write list = 
    #valid users 特定用户才能访问该共享,如为空,将允许所有用 户,用户名之间用空格分隔
    valid users = 
    #是否允许匿名访问
    guest ok = no
  • 添加samba用户:
    sudo smbpasswd -a xxx

  • 修改samba用户密码:
    sudo smbpasswd xxx

  • 删除samba用户和密码:
    sudo smbpasswd –x xxx

  • 查看samba服务器状态:
    sudo smbstatus

  • 重启服务:
    sudo /etc/init.d/smbd restart

  • 客户端访问:
    路径: //192.168.1.44/share
    usr和pwd为上面设置的
    UNC路径: Universal Naming Convention,通用命名规范

tftp:

sudo apt-get install tftpd-hpa tftp-hpa
sudo vim /etc/default/tftpd-hpa #修改里面的路径 tftp路径:/home/xxx/tftpboot
重启:
service tftpd-hpa restart

ssh:

sudo apt-get install openssh-server

NFS:

开发主机配置

sudo apt-get install nfs-common nfs-kernel-server
创建文件夹:rootfs_nfs
修改/etc/exports,添加:
/home/xxx/rootfs_nfs *(rw,sync,no_root_squash,no_subtree_check)
重启:
/etc/init.d/nfs-kernel-server start
路径:/home/xxx/rootfs_nfs

设备端配置

支持NFS挂载

  1. 配置网络部分,主要是使能CONFIG_IP_PNP以在2中能够看到Root file system on NFS选项
    Networking support 
    Networking options 
    TCP/IP networking
    IP: kernel level autoconfiguration
    [*] IP: DHCP support
    [*] IP: BOOTP support
  2. 配置开启nfs服务
    File systems --->	
    Network File Systems --->
    <*> NFS client support 
    [*] NFS client support for NFS version 3 [*] NFS client support for the NFSv3 ACL protocol extension 
    [*] NFS client support for NFS version 4 (EXPERIMENTAL) 
    [*] NFS client support for NFSv4.1 (DEVELOPER ONLY) 
    [*] Root file system on NFS 

    在uboot中设置如下启动参数(IP根据实际使用更改)

    setenv bootargs root=/dev/nfs nfsroot=192.168.1.105:/mnt/rootfs/rootfs ip=192.168.1.88:192.168.1.105:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200

注:

1:uboot通过bootargs传递参数给内核,让内核以特定方式启动
2:console=ttySAC0,115200 表示使用串口0,波特率为115200
3:root=/dev/nfs rw 表示使用/dev/nfs 作为根文件系统,可读可写
4:nfsroot:指明NFS服务器的地址(就是linux主机的IP)
5:/home/rootfs:根文件在主机的路径
6:192.168.1.102:这个是开发板的ip地址
7:192.168.1.101:这个是linux主机的ip地址
8:192.168.1.1:网关地址
9:255.255.255.0:子网掩码
10:ARM11:开发板主机名,可以省略
11:eth0:内核启动之后,把IP地址复制给eth0这个网卡
12:off:关闭动态IP获取功能