一般调试嵌入式开发板喜欢选择  利用 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. db2 load命令装载数据时定位错误出现的位置

    使用如下命令装载数据(注意CPU_PARALLELISM 1): db2 load from filename.del of del replace into tab_name  CPU_PARALL ...

  2. capserjs-prototype(上)

    Casper prototyp back() 具体样式: back() Moves back a step in browser's history: 在浏览器历史中回退一步: casper.star ...

  3. element checkbox 勾选时出现弹框提示。

    复选框选中的时候,必须提示是否确定选中,取消勾选的时候也要. 不能解决的思路: 1.element的checkbox只有一个change事件,该事件只返回该选项最新的值(true,false)(不会返 ...

  4. go语言从例子开始之Example10.map(字典)

    map 是 Go 内置关联数据类型(在一些其他的语言中称为哈希 或者字典 ) package main import "fmt" func main() { 要创建一个空 map, ...

  5. EnumPrinters

    https://blog.csdn.net/jilong17/article/details/6663734 已解决.开始hook的spoolss.dll里面的EnumPrinterW函数,应该hoo ...

  6. vue基础六

    列表渲染 1.v-for 我们用 v-for 指令根据一组数组的选项列表进行渲染. v-for 指令需要以 item in items 形式的特殊语法(也可以用of代替in), items是源数据数组 ...

  7. Database基础(七):部署集群基础环境、MySQL-MMM架构部署、MySQL-MMM架构使用

    一.部署集群基础环境 目标: 本案例要求为MySQL集群准备基础环境,完成以下任务操作: 数据库授权 部署MySQL双主多从结构 配置本机hosts解析记录 方案: 使用4台RHEL 6虚拟机,如下图 ...

  8. c#发送邮件功能

    protected void Page_Load(object sender, EventArgs e)    {        //先到qq邮箱设置中启用smtp服务        Random r ...

  9. php多张图片打包下载

    <?php /** * 图片打包下载 */ namespace app\common\extend; class Imagedown { var $datasec = array (); var ...

  10. VIEW当中自定义属性的使用

    主要有三种方法可以实现自定义属性. 第一种方法,直接设置属性值,通过attrs.getAttributeResourceValue拿到这个属性值. (1)在xml文件中设置属性值 [html] vie ...