TFTP启动内核、设备树,NFS启动FS

摘要:
除了从SD系统启动卡启动开发板外,我们还可以将U-boot映像文件、内核映像文件、设备树映像文件和文件系统固化到开发板的eMMC或NANDFLASH中,然后从eMMC或NANDFLASH启动开发板。在这里,您可以选择从SD卡启动U-Boot,通过TFTP加载内核和设备树,并通过NFS装载文件系统。

一、软硬件平台

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。

免责声明:文章转载自《TFTP启动内核、设备树,NFS启动FS》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WebSocket 详解CodeSmith模板代码生成实战详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ESXi挂载NFS共享存储

通常VMware的整体架构由三个部分组成,虚拟化环境(包括ESXi与vCenter以及VM),交换机(通常为万兆交换机或光纤交换机),存储(netap、EMC等)。使用光纤交换机,ESXi使用FC协议连接存储。使用万兆交换机,ESXi使用NFS协议连接存储。本文介绍的是通过NFS协议挂载共享存储上的VS01卷,共享存储上已经赋予ESXi主机访问该卷的权限。...

如何在Kubernetes集群动态使用 NAS 持久卷

1. 介绍: 本文介绍的动态生成NAS存储卷的方案:在一个已有文件系统上,自动生成一个目录,这个目录定义为目标存储卷; 镜像地址:registry.cn-hangzhou.aliyuncs.com/acs/alicloud-nas-controller:v1.11.5.4-433631d-aliyun 默认生成资源:生成的PV名字为:pvc-${pvc-u...

uboot完全手册---14

1. u-boot介绍 本次移植采用的是U-Boot-1.2.0版本。 3. U-Boot源码分析 3.1 源码入口的解释 可能大多数的同学上网查资料后都了解到,stage1阶段的启动代码,主要就在start.s文件里。此start.s也是系统上电后执行的第一个代码。它全部由汇编编写。在讲述start.s之前,我们先来了解一下,系统怎么知道它要先去star...

CentOs7.5安装配置NFS文件挂载

NFS即网络文件系统,它允许网络中的计算机之间通过TCP/IP协议来共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。可以理解为把远端服务器上的文件挂载到本地客户端上,所以文件权限需要在远端服务器上进行配置。 现在有2台服务器,server1(主):192.168.0.58, server2...

flashloader的问题解决过程

1.问题:flashloader无法烧写qspi flash(自行生成的FSBL.out不能烧写,golden FSBL.out可以烧写) 解决过程: 最开始是比对ps_init.c,替换后发现问题并未解决; 然后通过proxxxx_jtag-debug.exe烧写qspi flash判断fsbl load到了0xe8002800 而不是ocm (Prox...

NFS服务器搭建——可用于共享文件或负载均衡文件共享服务器使用

一、软件包安装 yum -y install nfs-utils  rpcbind 二、服务器端配置共享目录 1. 在服务器上创建NFS共享目录:mkdir /usr/local/test 2. 设置共享目录的读写权限: chmod 666 /usr/local/test 三、NFS服务器配置 NFS服务器的配置相对比较简单,只需要在相应的配置文件中进行设...