背景:

  在嵌入式开发中,经常需要对系统的各个部分进行修改。倘若每次修改都烧写到板子中,一来浪费时间,其次影响存储介质寿命。

  所以,需要一些手段来避免此类问题。

概览:

  1. 编译uboot

  2. 将uboot写入SD卡,并通过硬件设置从sd卡启动uboot程序

  3. 编译kernel,设置其可以通过NFS挂载根文件系统

  4. 开发环境安装TFTP服务器、NFS服务器

  5. 目标环境设置uboot参数,并进行测试

  6. 制作根文件系统(optional)

  7. 将uboot参数改回,烧写各部分到板子上

第2步不一定是用sd卡,根据硬件特性的差异决定,也可以考虑将uboot写入板子中,再进行此后的操作。

在这里我们重点介绍第三步以及第五步。其他步骤请参考其他资料。第三步以修改bootcmd为主,第五步以修改bootargs为主。

设置uboot,使其通过下载并引导内核

1.确保配置好了tftp服务器,并在tftp服务器指定的根目录下存放kernel镜像

2.明白镜像的运行地址位于何处(第三步中需要用到)

3.在uboot的下载模式中,设置bootcmd

setenv bootcmd 'tftp 0x42000000 kernel;bootm 0x42000000'
saveenv

嵌入式系统Linux内核对nfs文件系统的支持:

这里只做简单的介绍,具体细节可以参考:《配置uboot指定nfs挂载根文件系统

1.进入内核配置页,根据以下参数进行配置

-> Networking support
-> Networking options
[*] IP: kernel level autoconfiguration

-> File systems
[*] Network File Systems
<*> NFS client support
<*> NFS client support for NFS version
[*] NFS client support for the NFSv3 ACL protocol extension
[*] Root file system on NFS
 

2.uboot修改bootargs(最好是备份好bootargs) 添加下划线部分*其中的ip根据自己的实际情况进行修改

setenv bootargs 'root=/dev/nfs nfsroot=${serverip}:/xxx/fs,v3,tcp rw ip=${ipaddr}:${serverip}:${gatewayip}:${netmask} ::eth0:on init=/linuxrc console=ttyAMA0,115200'
saveenv

这样一来,调试就非常方便而且高效了。

改编自:《Tiny210v2( S5PV210 )平台下: 利用uboot启动远程Kernel(TFTP)以及挂载远程ROOTFS(NFS)

利用uboot下载引导Kernel(TFTP)以及挂载网络Rootfs(NFS)的更多相关文章

  1. 用Qemu模拟vexpress-a9 (四) --- u-boot引导kernel,用nfs挂载根文件系统

    环境介绍 Win7 64 + Vmware 11 + ubuntu14.04 32 u-boot 版本:u-boot-2015-04 Linux kernel版本:linux-3.16.y busyb ...

  2. 构建 ARM Linux 4.7.3 嵌入式开发环境 —— U-BOOT 引导 Kernel

    经过若干天的反复测试,搜索.终于成功利用 Qemu 在 u-boot 下引导 ARM Linux 4.7.3 内核.如下详细解释整个构建过程. 准备环境 运行环境:Ubuntu 16.04 需要的虚拟 ...

  3. 嵌入式 uboot引导kernel,kernel引导fs

    1.uboot引导kernel: u-boot中有个bootm命令,它可以引导内存中的应用程序映像(Kernel),bootm命令对应 common/cmd_bootm.c中的do_bootm()函数 ...

  4. 嵌入式 uboot引导kernel,kernel引导fs【转】

    转自:http://www.cnblogs.com/lidabo/p/5383934.html#3639633 1.uboot引导kernel: u-boot中有个bootm命令,它可以引导内存中的应 ...

  5. 利用站点ip引导提高站点权重的可行方案

    如题,利用站点每天高数额的ip訪问量来提高站点权重,首先在谈论这个话题之前,我举个样例.我们知道想要一个站点权重非常高,首先它站点本身的内容一定是有价值的,而且受大众欢迎的,人们会常常訪问这个站点来寻 ...

  6. iOS开发——网络篇——NSURLSession,下载、上传代理方法,利用NSURLSession断点下载,AFN基本使用,网络检测,NSURLConnection补充

    一.NSURLConnection补充 前面提到的NSURLConnection有些知识点需要补充 NSURLConnectionDataDelegate的代理方法有一下几个 - (void)conn ...

  7. Android利用Http下载文件

    Android利用Http下载文件 一.场景 下载存文本文件和下载如mp3等大容量的文件 界面 二.代码编写 1.AndroidMainfest.xml中配置 主要是解决网络权限和写SDCard的权限 ...

  8. Struts2漏洞利用工具下载(更新2017-V1.8版增加S2-045/S2-046)

    Struts2漏洞利用工具下载(已更新V1.8版) 2017-03-21:增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过部 ...

  9. CertUtil.exe被利用来下载恶意软件

    1.前言 经过国外文章信息,CertUtil.exe下载恶意软件的样本. 2.实现原理 Windows有一个名为CertUtil的内置程序,可用于在Windows中管理证书.使用此程序可以在Windo ...

随机推荐

  1. 【Fine学习笔记】python 文件l操作方法整理

    python脚本可以对excel进行创建.读.写.保存成指定文件名,保存到指定路径的操作.整理了以下处理方法:   首先区别几个操作方式: "r" 以读方式打开,只能读文件 , 如 ...

  2. 三年以上php开发经验常见面试题

    01 一般有三年以上php开发经验去百度.腾讯面试,常会接触的面试题小总结一下: 02 0.简单做一下自我介绍,?  然后谈一下近三年来你的得意之作? 03 1.面试官看过你的简历,会问一些你做的项目 ...

  3. JavaScript - 包装类型

    1. 概念 基本类型是没有方法的 包装类型作用是为了方便操作基本数据类型 // 下面代码的问题? // s1是基本类型,基本类型是没有方法的 var s1 = 'zhangsan'; var s2 = ...

  4. Activiti工作流数据库表结构

    Activiti工作流引擎数据库表结构 数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识.此用例大体与服务API是匹配的. ACT_RE_*: ...

  5. 吴裕雄--天生自然TensorFlow2教程:全连接层

    out = f(X@W + b) out = relut(X@W + b) import tensorflow as tf x = tf.random.normal([4, 784]) net = t ...

  6. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:将所有列表项放置同一行

    <!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...

  7. Caffe2 手册(Intro Tutorial)[2]

    Caffe2的相关概念   接下来你可以学到更多Caffe2中主要的概念,这些概念对理解和开发Caffe2相当重要. Blobs and Workspace,Tensors   Caffe2中,数据是 ...

  8. windows下 DEV-C++无法连接到pthread.h的解决办法

    参考的这个博文,原博文有图片:http://lslin.iteye.com/blog/776325 (我只是为了方便写.copy一遍) dev-C++编写C/C++程序时,非常方便轻巧,但是今天学习多 ...

  9. 夯实Java基础(二十二)——Java8新特性之Lambda表达式

    1.前言 Java 8于14年发布到现在已经有5年时间了,经过时间的磨练,毫无疑问,Java 8是继Java 5(发布于2004年)之后的又一个非常最重要的版本.因为Java 8里面出现了非常多新的特 ...

  10. 在ng-repeat 中使用 ng-click

    angular 中使用 ng-repeat  过程中,有时需要绑定 事件 click ,使用ng-click ,但是并没有效果,此时应该使用 data-ng-click 替代 ng-click ,并且 ...