一、目的:嵌入式开发板,通过emmc上的内核文件加载启动linux操作系统,以及存放其他程序文件。需要将所需文件先写入emmc中。

二、总体步骤是:uboot启动后,进入linux下,将emmc分区并格式化,uboot下支持fat和ext2的格式,这里用fat格式,并挂载,然后放入所需要的文件。这样重启后,进入uboot下,将emmc中的文件load到内存中运行。

三、uboot下emmc内容烧写(拷贝)步骤:

1、uboot启动后,输入mmc info有mmc的相关信息

2、通过tftp或其他方式启动linux

3、linux启动后,输入fdisk -l能看到/dev/mmcblk0的信息

4、linux下用fdisk命令对mmc分区,格式化

#fdisk /dev/mmcblk0

fdisk命令都是非常简单的。

WARNING: DOS-compatible mode is deprecated. It's strongly
recommended to

switch off the mode (command 'c') and change display units
to

sectors (command 'u').

Command (m for help): m

Command action

a   toggle a bootable
flag

b   edit bsd
disklabel

c   toggle the dos compatibility
flag

d   delete a
partition

l   list known partition
types

m   print this
menu

n   add a new
partition

o   create a new empty DOS
partition table

p   print the partition
table

q   quit without saving
changes

s   create a new empty Sun
disklabel

t   change a partition's system
id

u   change display/entry
units

v   verify the partition
table

w   write table to disk and
exit

x   extra functionality (experts
only)

先P,看看sd卡的分区现状。

然后d,删除原分区

n,创建分区

Command (m for help): n

Command action

e   extended

p   primary partition
(1-4)

p

Partition number (1-4): 1

First cylinder (1-62528, default 1): 1

Last cylinder, +cylinders or +size{K,M,G} (1-62528, default
62528):  +1500M

t,指定分区类型,

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): L


Empty          
24  NEC
DOS        
81  Minix / old Lin bf 
Solaris


FAT12          
39  Plan
9         
82  Linux swap / So c1  DRDOS/sec
(FAT-

2  XENIX
root     
3c  PartitionMagic 
83 
Linux          
c4  DRDOS/sec (FAT-

3  XENIX
usr      
40  Venix
80286    
84  OS/2 hidden C: 
c6  DRDOS/sec (FAT-

4  FAT16
<32M     
41  PPC PReP
Boot   85  Linux
extended  c7 
Syrinx


Extended       
42 
SFS            
86  NTFS volume set da  Non-FS
data


FAT16          
4d 
QNX4.x         
87  NTFS volume set db  CP/M /
CTOS / .


HPFS/NTFS      
4e  QNX4.x 2nd part 88  Linux
plaintext de  Dell
Utility


AIX            
4f  QNX4.x 3rd part 8e  Linux
LVM      
df 
BootIt

9  AIX
bootable   
50  OnTrack
DM     
93 
Amoeba         
e1  DOS
access

a  OS/2 Boot Manag 51  OnTrack
DM6 Aux 94  Amoeba
BBT     
e3  DOS
R/O

b  W95
FAT32      
52 
CP/M           
9f 
BSD/OS         
e4 
SpeedStor

c  W95 FAT32 (LBA) 53  OnTrack
DM6 Aux a0  IBM Thinkpad hi eb 
BeOS
fs

e  W95 FAT16 (LBA) 54 
OnTrackDM6     
a5 
FreeBSD        
ee 
GPT

f  W95 Ext'd (LBA) 55 
EZ-Drive       
a6 
OpenBSD        
ef  EFI (FAT-12/16/

10 
OPUS           
56  Golden
Bow     
a7 
NeXTSTEP       
f0  Linux/PA-RISC b

11  Hidden
FAT12   
5c  Priam
Edisk    
a8  Darwin
UFS     
f1 
SpeedStor

12  Compaq diagnost 61 
SpeedStor      
a9 
NetBSD         
f4 
SpeedStor

14  Hidden FAT16 <3 63  GNU
HURD or Sys ab  Darwin
boot    
f2  DOS
secondary

16  Hidden
FAT16   
64  Novell Netware 
af  HFS /
HFS+     
fb  VMware
VMFS

17  Hidden HPFS/NTF 65  Novell
Netware  b7  BSDI
fs        
fc  VMware VMKCORE

18  AST SmartSleep 
70  DiskSecure Mult b8  BSDI
swap      
fd  Linux raid auto

1b  Hidden W95 FAT3 75 
PC/IX          
bb  Boot Wizard hid fe 
LANstep

1c  Hidden W95 FAT3 80  Old
Minix      
be  Solaris
boot   
ff 
BBT

1e  Hidden W95 FAT1

Hex code (type L to list codes): 6

Changed system type of partition 1 to 6 (FAT16)

这样就分好了第一个分区,并且指定了分区为fat16

好了,看看成果。

Command (m for help): p

Disk /dev/mmcblk0: 2048 MB, 2048917504 bytes

4 heads, 16 sectors/track, 62528 cylinders

Units = cylinders of 64 * 512 = 32768 bytes

Sector size (logical/physical): 512 bytes / 512
bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x6f20736b

Device
Boot     
Start        
End     
Blocks   Id 
System

/dev/mmcblk0p1              
1      
48001    
1536024   
6  FAT16

/

好了,把分区信息写入磁盘。

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS
6.x

partitions, please see the fdisk manual page for
additional

information.

Syncing disks.

下面开始格式化。

首先是fat16分区

#mkdosfs 
/dev/mmcblk0p1

看一下格式化后的

~ # fdisk
-l

Disk /dev/mmcblk0: 1920 MB, 1920991232 bytes
4 heads, 16 sectors/track, 58624 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

Device
Boot     
Start        
End     
Blocks  Id System
/dev/mmcblk0p1              
1      
58624    
1875960   6 FAT16

把emmc挂载在一目录下
~ # mount /dev/mmcblk0p1 /vm
1      
58624    
1875960   6 FAT16

这样就可以将文件拷贝到/vm下,这里新建了一txt文件,并输入内容,重启后在uboot下查看emmc中是否有改文件。

~ # cd vm
/vm # ls
/vm # vi a.txt

11111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000

11111111111111111111111111111111111111111111

00000000000000000000000000000000000000000000
 
 #reboot

重启后进入uboot下,查看mmc设备

Octeon# mmc list
Octeon MMC/SD0: 0

用fatls命令查看mmc下的文件信息,可以看到有linux下建的a.txt文件

Octeon #fatls mmc 0
     
181   a.txt

1 file(s), 0 dir(s)

将mmc中a.txt拷贝到内存中查看内容

先看一下原来内存的信息

Octeon# md 30000000
30000000: 00000000 00000000 00000000
5f800000   
............_...
30000010: 00000000 00000000 00000000
00000000   
................
30000020: 00000000 00000000 00000000
00000000   
................
30000030: 00000000 00000000 00000000
00000000   
................
30000040: 00000000 00000000 00000000
00000000   
................
30000050: 00000000 00000000 00000000
00000000   
................
30000060: 00000000 00000000 00000000
00000000   
................
30000070: 00000000 00000000 00000000
00000000   
................
30000080: 00000000 00000000 00000000
00000000   
................
30000090: 00000000 00000000 00000000
00000000   
................
300000a0: 00000000 00000000 00000000
00000000   
................
300000b0: 00000000 00000000 00000000
00000000   
................
300000c0: 00000000 00000000 00000000
00000000   
................
300000d0: 00000000 00000000 00000000
00000000   
................
300000e0: 00000000 00000000 00000000
00000000   
................
300000f0: 00000000 00000000 00000000
00000000   
................

将mmc中a.txt load到内存中

Octeon# fatload mmc 0 30000000 a.txt
reading a.txt

181 bytes read

查看内存信息,可以看到就是a.txt的内容,说明emmc内容写入成功 。

Octeon# md 30000000
30000000: 31313131 31313131 31313131
31313131

1111111111111111
30000010: 31313131 31313131 31313131
31313131   
1111111111111111
30000020: 31313131 31313131 31313131
0a303030   
111111111111.000
30000030: 30303030 30303030 30303030
30303030   
0000000000000000
30000040: 30303030 30303030 30303030
30303030   
0000000000000000
30000050: 30303030 30303030 0a313131
31313131   
00000000.1111111
30000060: 31313131 31313131 31313131
31313131   
1111111111111111
30000070: 31313131 31313131 31313131
31313131   
1111111111111111
30000080: 31313131 310a3030 30303030
30303030   
11111.0000000000
30000090: 30303030 30303030 30303030
30303030   
0000000000000000
300000a0: 30303030 30303030 30303030
30303030   
0000000000000000
300000b0: 30300a0a 0a000000 00000000
00000000   
00..............
300000c0: 00000000 00000000 00000000
00000000   
................
300000d0: 00000000 00000000 00000000
00000000   
................
300000e0: 00000000 00000000 00000000
00000000   
................
300000f0: 00000000 00000000 00000000
00000000   
................

uboot下emmc内容烧写(拷贝)步骤的更多相关文章

  1. 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc

    转载 : http://www.arm9home.net/read.php?tid-83474.html 本人是第一次在此发帖,希望大家多多支持,发帖目的是为了分享,分享的目的是传递开源的精神.Tin ...

  2. 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc【转】

    本文转载自:http://www.arm9home.net/read.php?tid-80810.html 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc   ...

  3. UBoot的编译与烧写

    每当我们学习任何编译语言之前,第一节课都是介绍我们要学习的是什么,以及编译语言和工具,最后写一个小程序编译并运行就算入门,也就是所谓的"Hello, world!".这里也不例外, ...

  4. Linux和Uboot下eMMC boot分区读写

    关键词:eMMC boot.PARTITION_CONFIG.force_ro等. 1. eMMC的分区 大部分eMMC都有类似如下的分区,其中BOOT.RPMB和UDA一般是默认存在的,gpp分区需 ...

  5. uboot从SD卡烧写内核和文件系统

    环境:ubuntu 13.04一.首先制作sd启动盘: 插入SD卡    sudo dd iflag=dsync oflag=dsync if=tiny210v2-uboot.binof=/dev/m ...

  6. 1)uboot的编译和烧写

    购买荔枝派ZERO已经将近一个星期了,由于官方资料不够完整一直没有任何进展.经过今夜近三个小时的折腾终于将UBOOT烧写成功,现将过程记录如下: 1)获取官方uboot 源码 : git clone  ...

  7. U-boot新手入门,烧写进mini2440

    拿到一块开发板,首先就要找到它的资料,当然了,开发板的厂商或者代理商会提供资料,资料里会有你需要的. 比如我的这块mini2440,在友善之臂代理商提供的资料里面,就有我们这篇所需要的 把这个文件夹下 ...

  8. Vivado下生成及烧写MCS文件

    Jtag模式: 1.打开Open Hardware Manager 2. Tools ->Auto Connect 3.TCL输入: write_cfgmem -format MCS -size ...

  9. 在Linux下制作一个磁盘文件,在u-boot 阶段对emmc 烧写整个Linux系统方法

    在Linux 下制作一个磁盘文件, 可以给他分区,以及存储文件,然后dd 到SD卡便可启动系统. 在u-boot 下启动后可以读取该文件,直接在u-boot 阶段就可以做烧写操作,省略了进入系统后才进 ...

随机推荐

  1. UnicodeDecodeError: 'utf-8' codec can't decode byte

    for line in open('u.item'): #read each line whenever I run this code it gives the following error: U ...

  2. javaScript的变量

    1.声明 用 var 或 let 声明的未赋初值的变量,值会被设定为undefined(译注:即未定义值,本身也是一个值) 试图访问一个未初始化的变量会导致一个 ReferenceError 异常被抛 ...

  3. python执行selenium报错

    python + unittest + HTMLTestRunner 执行suite用例报错 Traceback (most recent call last): File "C:/ws/S ...

  4. libsvm_readme[zz from github]

    Libsvm is a simple, easy-to-use, and efficient software for SVM classification and regression. It so ...

  5. MySQL存储过程相互调用

    什么都不说了上代码: 方式一: 第一个存储过程:test1,参数如下:IN `user_name` VARCHAR(50),OUT `uid`  bigint(20) BEGIN #Routine b ...

  6. elk 使用中遇到的问题(kafka 重复消费)

    问题描述: 在使用过程中,当遇到大量报错的时候,我们到eagle后台看到报错的那个consumer的消费情况到到lag 远远大于0(正常情况应该为0),activie  节点没有,kibana面板上没 ...

  7. supervisor 完整安装步骤

    Supervisorhttp://www.jianshu.com/p/bf2b3f4dec73http://www.jianshu.com/p/9abffc905645http://blog.csdn ...

  8. 在 Unity 中基于 Oculus DK1 的开发

    开发环境: Windows 10 专业版 64位(GeForce GTX 970M,驱动版本:378.72) 大朋助手 1.3.2.10,大朋E2(http://www.deepoon.com/dap ...

  9. 腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动

    在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH ...

  10. [vt][xen]xenserver初始安装增加第二块硬盘&xen图形界面安装vm&设置xen里vm开机启动

    为XenServer挂载/增加第二块硬盘的方法 注意: xen6.x和xen7.x vm导出导入是不兼容的.这点有点蛋疼 新买机器后安装xenserver(一般都买刻录机+dvd来刻录xen官网的io ...