背景:

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

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

概览:

  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)

最新文章

  1. table首行固定
  2. 70多G的Kindle电子书合集
  3. 基于SVG的web页面图形绘制API介绍
  4. c# 调用 ShellExecute
  5. treap 1296 营业额统计
  6. iOS - 导航控制器
  7. js方法在iframe父子窗口
  8. HttpMessageConverter 专题
  9. 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(2)- Boot配置(BOOT Pin/eFUSE)
  10. nginx——location匹配流程图
  11. [数]昨天欠下的一道立体几何题HDU-4741
  12. CAN总线相关的几个gitlab代码
  13. halcon应用案例探究
  14. [Socket]Socket聊天小程序
  15. Git 合并多次 commit 、 删除某次 commit
  16. Shiro学习笔记五(Shiro标签,及通配符)
  17. c# 主机和网络字节序的转换 关于网络字节序和主机字节序的转换
  18. 微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击
  19. Banana
  20. BZOJ4917: [Lydsy1706月赛]Hash Killer IV(模拟)

热门文章

  1. 三级联动的区域选择器 iOS组件
  2. javascript对象创建及继承
  3. 设计模式课程 设计模式精讲 3-10 里氏替换原则coding
  4. Linux - 监控工具Conky
  5. 单链表 C++ 实现 - 含虚拟头节点
  6. 番外篇!全球首个微信应用号开发教程!小程序 DEMO 视频奉上!
  7. 【代码总结】GD库中添加图片水印
  8. 【转】spring IOC和AOP的理解
  9. Java基础 -3.5
  10. Laravel 验证 教程