一般调试嵌入式开发板喜欢选择  利用 TFTP 传送  内核与 设备树,  利用 nfs 加载根文件系统。

uboot 环境变量 设置如下:

  bootargs=root=/dev/nfs rw nfsroot=192.168.1.4:/exports/rfs ip=192.168.1.200 video=HDMI-A-2:1280x800

  Bootcmd  tftp 0x48080000 Image;tftp 0x48000000 XXXXXXXXXXX.dtb;booti 0x48080000 - 0x48000000

  如果内核调试完成 ,不再需要利用上位机调试,可以把 Image dtb rootfs 烧录到板子的emmc中或者SD卡中,快速启动。

uboot环境变量 设置如下: 

  bootargs=root=/dev/mmcblk0p2 video=HDMI-A-2:1280x800 console=ttySC0

  bootcmd 'ext4load mmc 1:1 0x48080000 Image;ext4load mmc 1:1 0x48000000 r8a7795-salvator-xs.dtb;booti 0x48080000 - 0x48000000'

  其中 exit4load 为uboot自带的程序 可以在uboot 命令 敲? 查看 。ext4load mmc 1:1 0x48080000 Image

(Image  *.dtb 为已经烧录到emmc中的文件   1:1 为第一个mmc下的第一个分区 p1   前提是分区 p1 已经格式化为 ext4 系统)

TIPS :

   可以将bootcmd赋值为run bootcmd_xxx  就可以轻松的切换启动方式,比如要nfs启动,就在uboot中设置 set bootcmd run bootcmd_nfs,然后保存重启就可以了,emmc启动也是同理。

格式化工具为 e2fsprogs     地址 https://sourceforge.net/projects/e2fsprogs/?source=typ_redirect

tar -zxvf /mnt/hgfs/linuxbak/e2fsprogs-1.43.7.tar.gz

sourc 交叉工具编译脚本

生成 makefile   ./configure --host=aarch64-poky-linux --prefix=/exports/rfs/usr

make install

  NFS 进入系统》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

  

首先需要使用fdisk 进行emmc 分区:

  fdisk /dev/mmcblk0
(  分区的大小   依据 自己的 emmc 大小 进行分区  )
Command (m for help): m        ---输入m获取fdisk工具的使用说明
Command (m for help): n                      ---输入n创建新的分区
Select (default p): p               ---输入p创建primary分区
Partition number (1-4, default 1): 1           ---输入分区号
First sector (2048-31116287, default 2048):              ---输入该分区的起始地址,回车使用默认值
Last sector, +sectors or +size{K,M,G} (2048-31116287, default 31116287): 10000000           ---输入该分区的结束地址

Command (m for help): n         ---创建第二个分区
Partition type: 
p primary (1 primary, 0 extended, 3 free) 
e extended 
Select (default p): p 
Partition number (1-4, default 2): 2 
First sector (10000001-31116287, default 10000001): 
Using default value 10000001 
Last sector, +sectors or +size{K,M,G} (10000001-31116287, default 31116287): 20000000

Command (m for help): p       ---打印mmcblk0的分区情况

Command (m for help): w                   ---保存分区设置并退出

<<<<<<<<<<<<<<<<<<<<<<<<<< EMMC 分区完成 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 

。。。。。。。。。。。。。。给分区格式化 文件系统  。。。。。。。。。。。。。。。。。。。。。。。

格式化FAT32

mkfs.vfat -F 32 /dev/sdb1

格式化ext
mkfs.ext4 /dev/mmcblk0p1

mkfs.ext4 /dev/mmcblk0p2   给  分区 1   分区 2  格式化   ext4 系统

mount 分区 

mkdir  /mnt/emmc1

mkdir /mnt/emmc2

mount  /dev/mmcblk0p1 /mnt/emmc1

mount /dev/mmcblk0p2 /mnt/emmc2

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

通过  NFS 登录 linux 系统中 ,

把  包含  Image dtb  文件 拷贝到    /mnt/emmc1 中

把  根文件目录  拷贝到  /mnt/emmc2 中

完成 emmc 烧录 。

至此   修改 uboot 启动  args  完成  emmc 启动 内核 ,加载 emmc中的文件系统 。

参考网址  : 

  http://blog.csdn.net/u011975319/article/details/51803126

  https://www.cnblogs.com/zero2nine/p/5138950.html

嵌入式 emmc 中 安装 烧录 内核 kernel,设备树 devicetree ,根文件系统 rootfs的更多相关文章

  1. 野火 STM32MP157 开发板内核和设备树的编译烧写

    一.环境 编译环境:Ubuntu 版本:18.4.6 交叉编译工具:arm-linux-gnueabihf-gcc 版本:7.4.1 开发板:STM32MP157 pro 烧写方式:STM32Cube ...

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

    一.软硬件平台 1.开发板:创龙AM3359核心板,网口采用RMII形式. 2.UBOOT版本:U-Boot-2016.05,采用FDT和DM. 3.交换芯片MARVELL的88E6321. 二.问题 ...

  3. 我眼中的Linux设备树(五 根节点)

    五 根节点一个最简单的设备树必须包含根节点,cpus节点,memory节点.根节点的名字及全路径都是"/",至少需要包含model和compatible两个属性.model属性我们 ...

  4. Linux设备树(五 根节点)

    五 根节点 一个最简单的设备树必须包含根节点,cpus节点,memory节点.根节点的名字及全路径都是“/”,至少需要包含model和compatible两个属性.model属性我们在属性那节已经说过 ...

  5. 基于tiny4412的Linux内核移植 -- 设备树的展开

    作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...

  6. 基于tiny4412的Linux内核移植 -- 设备树的展开【转】

    转自:https://www.cnblogs.com/pengdonglin137/p/5248114.html#_lab2_3_1 阅读目录(Content) 作者信息 平台简介 摘要 正文 一.根 ...

  7. 嵌入式Linux驱动学习之路(八)创建最小的根文件系统

    busybox 在配置busybox,在是否选择要静态链接库时,在静态下,busybox中的工具不需要动态链接库,能够直接运行.而用户自己编写的程序如果需要动态链接库,还是依然需要有. 如果是动态链接 ...

  8. 关于用wubi安装Ubuntu,总是提示“没有定义根文件系统”的问题

    用diskgenius测试一下分区问题,就发现一些错误,所以怀疑可能就是因为这个分区参数错误导致WUBI安装不成功,费了大力气转移数据后,重新对硬盘分区,这里称赞一下diskgenius,的确不错,当 ...

  9. windows系统中在jupyter安装虚拟环境内核

    一.在jupyter中安装虚拟环境内核 1.创建Python3虚拟环境 参考本文其他博客 2.进入虚拟环境 3.安装jupyter pip install jupyter 4.添加当前环境到jupyt ...

随机推荐

  1. 解决div和img之间的空隙

    div盒子和img之间有空隙之前也遇到过几次这问题,今天又遇到了特地来总结下. 先上代码和效果图: <!doctype html><html lang="en"& ...

  2. Java中 Map用法

    public static Map GetGoodTypes() { Map goodTypes=new HashMap(); goodTypes.put(1,"原材料"); go ...

  3. ubuntu服务器端使用无界面selenium+ chrome + headless

    本来想直接用Ubuntu系统里面的firefox来实现selenium自动操作签到的,但是总是出各种问题.没办法,改为Chrome.参考:Ubuntu 线上无界面服务器 使用selenium chro ...

  4. 五、bootstrap-fileinput

    一.bootstrap-fileinput <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  5. awk 起始位置和长度和 mf 一致

    1位开始 , 925开始 截取24 awk '{OFS="";print(substr($0,925,24),substr($0,1,24),substr($0,436,1),&q ...

  6. mysql安装与修改密码

    数据库基本概念:数据的仓库 数据库服务器-->数据库-->表-->记录-->属性(列,字段) unix下数据库服务安装: apt-get install -y mysql-se ...

  7. 【串线篇】idea下的springboot入门配置

    1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,martin fowler 微服务: ...

  8. js学习笔记-日期对象

    <body> <script> var d = new Date() console.log(d) var arr = ['星期日', '星期一', '星期二', '星期三', ...

  9. 分布式存储Ceph之PG状态详解

    https://www.jianshu.com/p/36c2d5682d87 1. PG介绍 继上次分享的<Ceph介绍及原理架构分享>,这次主要来分享Ceph中的PG各种状态详解,PG是 ...

  10. C# 串口总结

    一.串口初始化 定义: using System.IO.Ports; SerialPort myPort = new SerialPort() 初始化: //port初始化 public void _ ...