zoukankan      html  css  js  c++  java
  • TFTP启动内核、设备树,NFS启动FS

    一、软硬件平台

    1、开发板:创龙AM3359核心板,网口采用RMII形式。

    2、UBOOT版本:U-Boot-2016.05,采用FDT和DM。

    3、交换芯片MARVELL的88E6321.

    二、问题背景

    开发板启动过程分三个阶段,即先启动U-Boot,再加载内核和设备树,然后挂载文件系统,这三个过程可以分别以不同方式启动。除了从SD系统启动卡启动开发板,我们可以将U-Boot镜像文件、内核镜像文件、设备树镜像文件以及文件系统固化到开发板的eMMC或者NAND FLASH中,然后从eMMC或者NAND FLASH启动开发板。

    这里可以选择从SD卡启动U-Boot,然后通过TFTP加载内核和设备树,再通过NFS挂载文件系统。

    将开发板设备树文件和内核镜像文件拷贝到Ubuntu的TFTP服务器工作目录中。

    在Ubuntu的NFS共享目录下,新建开发板文件系统存放文件夹rootfs,并将光盘 “ShellLinux-3.14.43-mksdbootfilesystem”目录下的开发板文件系统压缩包解压到此文件夹,解压命令如下:

    Host# sudo tar xvf tisdk-rootfs-image-am437x-evm.tar.gz -C /home/one/nfs_share/rootfs

    恢复为默认的环境变量,在命令行下输入:

    U-Boot> env default -a

    U-Boot> saveenv

     

    n 手动设置开发板IP方式

    开发板和 PC 先通过路由器或者交换机互联,也可以通过网线直联。先确保U-Boot环境变量为系统默认,然后在U-Boot命令行中执行如下命令,设置TFTP和NFS服务器IP、NFS服务器上的文件系统路径、开发板IP:

    U-Boot> setenv serverip 192.168.1.50

    U-Boot> setenv rootpath /home/one/nfs_share/rootfs/

    U-Boot> setenv ipaddr 192.168.1.30

    执行如下命令设置网络启动环境变量:

    U-Boot> setenv netargs 'setenv bootargs console=${console} root=/dev/nfs nfsroot=${serverip}:${rootpath} nfsaddrs=192.168.1.30:192.168.1.50:192.168.1.1:255.255.255.0::eth0:off'

    U-Boot> setenv netboot 'echo Booting from network ...; setenv autoload no; tftp ${loadaddr} ${bootfile}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - ${fdtaddr}'

    U-Boot> setenv bootcmd 'run findfdt; run init_console; run netboot;'

    U-Boot> saveenv

    环境变量console、nfsroot、nfsaddr会传递到内核,nfsaddrs=开发板IP:NFS服务器IP:网关:子网掩码,环境变量serverip、ipaddr仅用于U-Boot阶段,因此需要在nfsaddrs中再次设置开发板IP和NFS服务器IP。“eth0:off”代表开发板不自动获取IP。

  • 相关阅读:
    219. Contains Duplicate II
    189. Rotate Array
    169. Majority Element
    122. Best Time to Buy and Sell Stock II
    121. Best Time to Buy and Sell Stock
    119. Pascal's Triangle II
    118. Pascal's Triangle
    88. Merge Sorted Array
    53. Maximum Subarray
    CodeForces 359D Pair of Numbers (暴力)
  • 原文地址:https://www.cnblogs.com/lh03061238/p/10820160.html
Copyright © 2011-2022 走看看