zoukankan      html  css  js  c++  java
  • 使用U-Boot的NFS(远程/网络用户空间)

    前提条件

    假设您的主机PC运行的是Ubuntu 14.04.1 LTS或更高版本,并且与您的开发平台在同一个本地网络上;为了简单起见,我们假设网络上也有DHCP服务器。
    如果使用Juno,请确保使用的是前端以太网端口。

    设置NFS服务器

       在主机上安装以下软件包:

    sudo apt-get update && sudo apt-get install nfs-kernel-server rpcbind
    切换到超级用户:
    sudo su -

     创建一个根“/export/”目录,我们将使用它作为存放文件系统的目录:  

    mkdir /export/

      设置文件系统的权限,并在'/etc/exports'文件末尾添加以下行:

    /export/ *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

        为了避免潜在的文件权限问题,我们将避免使用NFSv4。通过编辑' /etc/default/ ns -kernel-server',将默认值设置为NFSv3,如下所示:

    # Number of servers to start up
    # To disable nfsv4 on the server, specify `--no-nfs-version 4' here
    #RPCNFSDCOUNT=8
    RPCNFSDCOUNT="--no-nfs-version 4"

        然后重启nfs-kernel-server服务:

    service nfs-kernel-server restart

        现在检查一下,“portmapper”、“nfs”和“mountd”都同时运行在“tcp”和“udp”上:

    #rpcinfo -p
       program vers proto   port  service
        100000    4   tcp     111  portmapper
        100000    3   tcp     111  portmapper
        100000    2   tcp     111  portmapper
        100000    4   udp     111  portmapper
        100000    3   udp     111  portmapper
        100000    2   udp     111  portmapper
        100024    1   udp   43672  status
        100024    1   tcp   56293  status
        100003    2   tcp    2049  nfs
        100003    3   tcp    2049  nfs
        100003    4   tcp    2049  nfs
        100227    2   tcp    2049
        100227    3   tcp    2049
        100003    2   udp    2049  nfs
        100003    3   udp    2049  nfs
        100003    4   udp    2049  nfs
        100227    2   udp    2049
        100227    3   udp    2049
        100021    1   udp   53079  nlockmgr
        100021    3   udp   53079  nlockmgr
        100021    4   udp   53079  nlockmgr
        100021    1   tcp   50750  nlockmgr
        100021    3   tcp   50750  nlockmgr
        100021    4   tcp   50750  nlockmgr
        100005    1   udp   50127  mountd
        100005    1   tcp   48215  mountd
        100005    2   udp   49557  mountd
        100005    2   tcp   46457  mountd
        100005    3   udp   36349  mountd
        100005    3   tcp   54121  mountd

        接下来,将您需要的根文件系统提取到“/export/”目录中,也可以选择将其放在子目录中。在本例中,我们将根文件系统提取为“/export/juno/fs/”。

    挂载主机目录到juno板

    mount -t nfs 192.168.1.101:/export/  /mnt -o nolock

    挂载完成以后你就可以在开发板上/mnt目录下看到主机/export目录下的内容,可以使用cp命令把主机/export目录下的内容拷贝到开发板上。

    使用网络文件系统启动

    打开Juno板并中断U-Boot的默认启动选择:

    The default boot selection will start in   3 seconds
    

     将主机PC的IP地址保存到“serverip”环境变量:

    VExpress64# set serverip <host_pc_ip_address>
    VExpress64# saveenv
    

     接下来修改U-Boot的引导args,使用NFS找到根文件系统:

    VExpress64# set origbootargs "$bootargs"
    VExpress64# set bootargs "console=ttyAMA0,115200n8 root=/dev/nfs ip=dhcp nfsroot=${serverip}:/export/juno/fs rw rootwait earlyprintk=pl011,0x7ff80000 debug"
    VExpress64# saveenv
    

     然后重新启动juno板, 它应该会使用NFS找到根文件系统。
     恢复到默认启动行为的办法:

    VExpress64# set bootargs "$origbootargs"
    











     

  • 相关阅读:
    ubuntu16.04服务自启动(弹控制台)
    第十集 爱在天路唐古拉,青藏梦止长江源
    第九集 生死穿越风火山,感受尘世间轮回
    第八集 昆仑初度尘未洗,夜宿禁区五道梁
    第七集 久历风尘凡间路,终见西域玉珠峰
    第六集 飞沙走石共患难,夜扎昆仑饮圣泉
    第五集 插肩而过茶卡湖,朝发夕至格尔木
    辞职之后在家的挣扎与老爸的工作
    2018,怎么这么难,我该怎么办,我的ai和感情
    17年11月兄弟小聚
  • 原文地址:https://www.cnblogs.com/wanglouxiaozi/p/9577676.html
Copyright © 2011-2022 走看看