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,并将光盘 “Shell\Linux-3.14.43-mksdboot\filesystem”目录下的开发板文件系统压缩包解压到此文件夹,解压命令如下:
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的更多相关文章
- 使用Uboot启动内核并挂载NFS根文件系统
配置编译好内核之后,将生成的内核文件uImage拷贝到/tftpboot/下,通过tftp服务器将内核下载到开发板,使用命令:tftp 31000000 uImage.下载完成之后配置bootargs ...
- 关于启动ubuntu中的nfs启动问题
嵌入式开发,如果使用nfs挂载来启动内核和文件系统,这样便于调试文件系统和驱动,则首先要保证ubuntu开启nfs服务, 执行以下命令安装nfs服务,安装后自动运行 sudo apt-get inst ...
- Linux内核 设备树操作常用API【转】
转自:https://www.linuxidc.com/Linux/2017-02/140818.htm 一文中介绍了设备树的语法,这里主要介绍内核中提供的操作设备树的API,这些API通常都在&qu ...
- Linux内核 设备树操作常用API
Linux设备树语法详解一文中介绍了设备树的语法,这里主要介绍内核中提供的操作设备树的API,这些API通常都在"include/of.h"中声明. device_node 内核中 ...
- uboot如何启动内核
2.7.1.uboot和内核到底是什么 2.7.1.1.uboot是一个裸机程序 (1)uboot的本质就是一个复杂点的裸机程序.和我们在ARM裸机全集中学习的每一个裸机程序并没有本质区别. 2.7. ...
- OK6410之tftp下载内核,nfs…
原文地址:OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]作者:千山我独行 由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩.以前一直都是 ...
- U-boot 启动内核
1:什么是UBOOT,为什么要有UBOOT? UBOOT的主要作用是用来启动linux内核,因为CPU不能直接从块设备中执行代码,需要把块设备中的程序复制到内存中,而复制之前还需要进行很多初始化工作, ...
- 转载]OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]
原文地址:OK6410之tftp下载内核,nfs挂载文件系统全过程详解[转]作者:千山我独行 由于工作的平台也是嵌入式,差不多的平台,所以一直就没有把自己买过来的ok6410板子好好玩玩.以前一直都是 ...
- 【转】UBOOT——启动内核
转自:https://www.cnblogs.com/biaohc/p/6403863.html 1:什么是UBOOT,为什么要有UBOOT? UBOOT的主要作用是用来启动linux内核,因为CPU ...
- 把Linux目录挂载到开发板、设置开发板从NFS启动、取消开发板从NFS启动
声明:文中"PC虚拟机Linux"是指在PC上安装了虚拟机,然后在虚拟机中装的Linux. 关于NFS的详细介绍可参考:http://www.cnblogs.com/nufangr ...
随机推荐
- 一起学习epoll
epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX select 和 poll 系统调用,并且在具有大量应用程序请求时能够获 ...
- 最新 大众书网java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.大众书网等10家互联网公司的校招Offer,因为某些自身原因最终选择了大众书网.6.7月主要是做系统复习.项目复盘.Leet ...
- java8新特性:对map集合排序
一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map,map是键值对的集合接口,它的实现类主要包括:HashMap, TreeMap, Hashtable以及LinkedHashMap等 ...
- 新手配置LNMP环境教程
回顾一下这几天自己配置LNMP环境踩得坑,希望帮助更多人 前期准备:VMtool.Linux.Nginx.Mysql.PHP.cmake 版本如下:Centos6.nginx1.6.0.mysql5. ...
- python 可变数据类型和不可变数据类型(7)
python数据类型分别有整数int / 浮点数float / 布尔值bool / 元组tuple / 列表list / 字典dict,其中数据类型分为两个大类,一种是可变数据类型:一种是不可变数据类 ...
- c+11 std::condition_variable and mutex
multiple threads synchronization primitive: 多线程同步语义 多线程的同步语义是多线程编程的核心,线程之间通过同步语义进行通信,实现并发.C++ JAVA 中 ...
- maven dependency中provided和compile的区别
重点:这个项目打成war包时,scope=provided的jar包,不会出现在WEB-INFO/lib目录下,而scope=compile的jar包,会放到WEB-INFO/lib目录 scope= ...
- fwrite & fread 的使用
每一次切换文件操作模式必须调用fclose关闭文件. 如果直接切换操作模式,文件将损坏(出现乱码)或操作失败. 在调用了fclose时,作为参数的文件指针将被回收,必须再次定义,因此最好将功能封装. ...
- kubernetes 实践五:Service详解
Service 是 k8s 的核心概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上. Service 的定义 Servic ...
- Scala 函数入门之默认参数和带名参数
Scala 默认参数 在Scala中,有时我们调用某些函数时,不希望给出参数的具体值,而希望使用参数自身默认的值,此时就定义在定义函数时使用默认参数. def sayHello(firstName: ...