关于SD卡启动linux的问题
2017-01-04 10:45
411 查看
(2013年5月14日)经过前段时间的折腾,到今天为止,对于uboot终于有点头绪了,虽然上星期已经成功移植了uboot到tiny210上,但感觉到很多东西都是半懂不懂的。很多都是照搬来。只能说是会用,那个之 所以而然确不一定能说得上来。
本次对linux下为SD卡烧写uboot.bin的原理与方法进行一个讲解
一、对于网上关于SD卡烧写的问题,得出以下结论:
原命令为:
$sudo dd iflag=dsync oflag=dsync if=tiny210-uboot.bin of=/dev/sdb seek=1
此处查资料可得----
dd是linux 的命令语法以及功能如下-
功能说明:读取,转换并输出数据。
语 法:dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][seek=<区块数>][skip=<区块数>][--help][--version]
补充说明:dd可从标准输入或文件读取数据,依指定的格式来转换数据,再输出到文件,设备或标准输出。
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾则乘以相应的数字:b=512;c=1;k=1024;w=2
参数:
1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
8. conv=conversion:用指定的参数转换文件。
ascii:转换ebcdic为ascii
ebcdic:转换ascii为ebcdic
ibm:转换ascii为alternate ebcdic
block:把每一行转换为长度为cbs,不足部分用空格填充
unblock:使每一行的长度都为cbs,不足部分用空格填充
lcase:把大写字符转换为小写字符
ucase:把小写字符转换为大写字符
swab:交换输入的每对字节
noerror:出错时不停止
notrunc:不截短输出文件
sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
FLAGS参数说明:
append -append mode (makes sense only for output; conv=notrunc sug-gested)
direct 读写数据采用直接IO方式;
directory 读写失败除非是directory;
dsync 读写数据采用同步IO;
sync 同上,但是针对是元数据
fullblock 堆积满block(accumulate full blocks of input )(iflag only);
nonblack 读写数据采用非阻塞IO方式
noatime 读写数据不更新访问时间
noctty -do not assign controlling terminal from file
nofollow -do not follow symlinks
因此,可以知道前面提到的命令
$sudo dd iflag=dsync oflag=dsync if=tiny210-uboot.bin of=/dev/sdb seek=1
意思为:
(sudo为超级用户权限)把tiny210-uboot.bin输出到设备sdb上,跳过该设备的第一个block
(每个block的大小为512B,具体原因请参考本节后的图片(在三星官方的irom说明书中提取))
fdisk -l,检查是否识别了USB设备 fdisk -l,检查是否识别了USB设备 找出SD卡对应的设备
前提:
1、SD卡
2、linux系统,装虚拟机中就行。
步骤:
1、格式化SD卡为FAT32格式。
2、把光盘的images复制到SD卡的根目录
3、linux命令行中执行: dd iflag=dsync oflag=dsync if=Superboot210.bin of=/dev/sdc seek=1
/dev/sdc SD卡在linux中的设备名字
Superboot210.bin 友善bootloader文件
4、linux命令行中执行: sync
把缓存中的东西强制写入SD卡
5、开发板从SD卡启动,就会出现烧写界面了
本次对linux下为SD卡烧写uboot.bin的原理与方法进行一个讲解
一、对于网上关于SD卡烧写的问题,得出以下结论:
原命令为:
$sudo dd iflag=dsync oflag=dsync if=tiny210-uboot.bin of=/dev/sdb seek=1
此处查资料可得----
dd是linux 的命令语法以及功能如下-
功能说明:读取,转换并输出数据。
语 法:dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][seek=<区块数>][skip=<区块数>][--help][--version]
补充说明:dd可从标准输入或文件读取数据,依指定的格式来转换数据,再输出到文件,设备或标准输出。
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾则乘以相应的数字:b=512;c=1;k=1024;w=2
参数:
1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
8. conv=conversion:用指定的参数转换文件。
ascii:转换ebcdic为ascii
ebcdic:转换ascii为ebcdic
ibm:转换ascii为alternate ebcdic
block:把每一行转换为长度为cbs,不足部分用空格填充
unblock:使每一行的长度都为cbs,不足部分用空格填充
lcase:把大写字符转换为小写字符
ucase:把小写字符转换为大写字符
swab:交换输入的每对字节
noerror:出错时不停止
notrunc:不截短输出文件
sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
FLAGS参数说明:
append -append mode (makes sense only for output; conv=notrunc sug-gested)
direct 读写数据采用直接IO方式;
directory 读写失败除非是directory;
dsync 读写数据采用同步IO;
sync 同上,但是针对是元数据
fullblock 堆积满block(accumulate full blocks of input )(iflag only);
nonblack 读写数据采用非阻塞IO方式
noatime 读写数据不更新访问时间
noctty -do not assign controlling terminal from file
nofollow -do not follow symlinks
因此,可以知道前面提到的命令
$sudo dd iflag=dsync oflag=dsync if=tiny210-uboot.bin of=/dev/sdb seek=1
意思为:
(sudo为超级用户权限)把tiny210-uboot.bin输出到设备sdb上,跳过该设备的第一个block
(每个block的大小为512B,具体原因请参考本节后的图片(在三星官方的irom说明书中提取))
fdisk -l,检查是否识别了USB设备 fdisk -l,检查是否识别了USB设备 找出SD卡对应的设备
前提:
1、SD卡
2、linux系统,装虚拟机中就行。
步骤:
1、格式化SD卡为FAT32格式。
2、把光盘的images复制到SD卡的根目录
3、linux命令行中执行: dd iflag=dsync oflag=dsync if=Superboot210.bin of=/dev/sdc seek=1
/dev/sdc SD卡在linux中的设备名字
Superboot210.bin 友善bootloader文件
4、linux命令行中执行: sync
把缓存中的东西强制写入SD卡
5、开发板从SD卡启动,就会出现烧写界面了
相关文章推荐
- 关于linux下tomcat启动出现cannot find ./catalina.sh以及cannot find setclasspath问题的解决办法
- 关于gnuplot每次启动都要配置环境变量的问题(Linux系统中)
- 关于关于Linux 系统中 oracle lsnrctl 无法启动问题
- 关于,系统启动问题。linux,windows etc.
- 开发板之——关于ARM Linux下的SD卡及U盘的挂载问题
- 主题:关于在linux中无法启动MySQL的问题.
- 关于启动Linux时出现Error $15的问题
- 关于redis启动时linux的防火墙关闭问题解决
- 关于linux mysql启动错误问题
- Linux下关于不接显示器启动或者连接KVM切换器启动,分辨率默认800x600无法改变的问题解决办法!
- 关于新版网易风云音乐(linux版)无法启动的问题>>>Failed to load module "overlay-scrollbar"
- 关于ubuntu系统启动时显示.dmrc权限不正确的问题的解决
- 最近在看一些关于字符集的文章,什么iso8859-1 unicode utf8 gb2312,突然想起在linux终端上显示汉字的问题.
- 关于Tomcat安装后无法启动的问题
- 关于apache2不能启动的问题的解决方法
- 今天LINUX下的MYSQL 启动问题
- 关于spring启动的优化的问题
- 关于Linux下C语言编译器gcc不认识bool类型的问题
- 关于Eclipse启动不了的问题
- 关于“无法在web服务器上启动调试,不是Debugger User组成员..."问题