昨天群里有人询问,为什么破坏 BootLoader 破坏不掉。
出现错误:dd: writing '/dev/mtdblock0': Operation not permitted
我说需要插着 SD卡才可以。(这个也不对,不插SD卡也可以,那这个错误还是没有搞清楚)
然后我们来看一下它操作指令:
busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync
为了确保执行数据有效,再执行 sync 同步一下,即可破坏掉前一个块的数据。
进而引出了我们今天要讲的 dd命令。
参看:Linux dd命令
参看:Learning Linux commands: dd
一、dd 命令
Linux dd命令用于读取、转换并输出数据。
dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
二、参数说明
if=文件名:输入文件名,缺省为标准输入。即指定源文件。
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=<关键字>,关键字可以有以下11种:
conversion:用指定的参数转换文件。
ascii:转换ebcdic为ascii
ebcdic:转换ascii为ebcdic
ibm:转换ascii为alternate ebcdic
block:把每一行转换为长度为cbs,不足部分用空格填充
unblock:使每一行的长度都为cbs,不足部分用空格填充
lcase:把大写字符转换为小写字符
ucase:把小写字符转换为大写字符
swab:交换输入的每对字节
noerror:出错时不停止
notrunc:不截短输出文件
sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
--help:显示帮助信息
--version:显示版本信息
三、实例
[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s
[root@localhost text]# du -sh sun.txt
1.1M sun.txt
该命令创建了一个1M大小的文件sun.txt,其中参数解释:
if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。
bs 代表字节为单位的块大小。
count 代表被复制的块数。
/dev/zero 是一个字符设备,会不断返回0值字节( )。
块大小可以使用的计量单位表:
以上命令可以看出dd命令来测试内存操作速度:
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s
四、解释破坏指令
接下来我们根据 dd 指令参数说明来看一下破坏指令:
busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync
if 代表输入文件。 /dev/zero 是一个字符设备,会不断返回0值字节( )。
of 代表输出文件。/dev/mmcblk0 是一个块设备。
bs 代表512字节为单位的块大小。
seek 代表从输出文件开头跳过 1个块后再开始复制。
count 代表被复制1个块。
conv:若读取的输入块不足512字节,不足部分用空(NUL)字符补齐。
注释:输入以上命令的意思为,把板载中iNand的第一个扇区用0来填充,即擦除了iNand的第一个扇区,当再次启动时,IROM还是会先去读取iNand中的前16kb的数据,计算校验和,校验和不通过,启动失败,此时就会执行第二种启动方式即从SD卡启动。
若此时未检测到SD卡,SecureCRT中将会显示:SD checksum Error
分析:
然后参看:How to make an image (.img) from what's on the SD card?
使用指令 fdisk -l /dev/mmcblk0 查看:
翻译一下:
磁盘/ dev / mmcblk0:3959 MB,3959422976字节
229头,33个部门/轨道,1023个汽缸,总计7733248个部门
单位= 1 * 512 = 512字节的扇区
扇区大小(逻辑/物理):512字节/ 512字节
I / O大小(最小/最佳):512字节/ 512字节
磁盘标识符:0x00000000
可知磁盘大小为 4G,我们的 eMMC 内存大小正好就是 4G 的。可以得出 mmblk0 是 eMMC 的块设备。
然后它的单位是 512 字节的扇区。这就是为什么 bs=512 的原因。我们使用 dd 擦除了它的第一个扇区。
上一篇:S5PV210开发 -- 交叉编译器
下一篇:S5PV210开发 -- SPI 你知道多少?
推荐阅读
史海拾趣
随着技术的不断发展,Cynergy 3不断将新技术应用于产品研发中。在液位传感器和流量传感器领域,公司推出了多款具有创新功能的产品,满足了市场对于高精度、高可靠性的需求。此外,Cynergy 3还在RF中继技术方面取得了重大突破,开发出了一系列适用于特定通信应用的继电器产品。这些技术创新不仅提升了公司的市场竞争力,也为公司赢得了众多行业奖项和荣誉。
随着技术的不断发展,Cynergy 3不断将新技术应用于产品研发中。在液位传感器和流量传感器领域,公司推出了多款具有创新功能的产品,满足了市场对于高精度、高可靠性的需求。此外,Cynergy 3还在RF中继技术方面取得了重大突破,开发出了一系列适用于特定通信应用的继电器产品。这些技术创新不仅提升了公司的市场竞争力,也为公司赢得了众多行业奖项和荣誉。
Cynergy 3注重企业的社会责任和文化建设。公司积极参与公益事业和环保活动,致力于为社会做出贡献。同时,Cynergy 3还注重员工的培养和发展,为员工提供良好的工作环境和福利待遇。这种注重社会责任和企业文化建设的做法使得Cynergy 3在行业中树立了良好的形象,也为公司的长期发展奠定了坚实的基础。
以上五个故事框架涵盖了Cynergy 3在电子行业中的发展历程、技术创新、国际化战略、客户需求驱动以及社会责任与企业文化等方面。每个框架都可以进一步扩展为完整的故事,详细描述Cynergy 3在不同阶段的发展情况和取得的成就。
为了确保产品质量的稳定性和可靠性,Anaren Ceramics公司建立了一套完善的质量管理体系。公司严格按照国际标准进行生产和管理,从原材料的采购到产品的出厂,每一个环节都经过严格的检测和把控。这种对质量的严格把控不仅赢得了客户的信任,也为公司在电子行业中树立了良好的口碑。
在多年的发展中,AMOTECH始终坚持以技术创新为核心竞争力。除了压敏电阻技术的突破外,公司还在多个领域取得了显著成果。例如,在LED照明和传感器领域,AMOTECH通过不断研发和创新,成功在韩国安山建立了第四工厂,进一步提升了公司的技术实力和产能规模。这些技术的不断突破和创新,使得AMOTECH在电子行业中始终保持领先地位。
常用元器件的识别 电阻 电阻在电路中用“R”加数字表示,如:R1表示编号为1的电阻。电阻在电路中的主要作用为 分流、限流、分压、偏置等。 1、参数识别:电阻的单位为欧姆(Ω),倍率单位有:千欧(KΩ),兆欧(MΩ)等。换算 方法是:1兆欧 ...… 查看全部问答∨ |
|
1.定、转子铁芯故障检修 定、转子都是由相互绝缘的硅钢片叠成,是电动机的磁路部分。定、转子铁芯的损坏和变形主要由以下几个方面原因造成。 ①轴承过度磨损或装配不良,造成定、转子相擦,使铁芯表面损伤,进而造成硅钢片间短路,电动机 ...… 查看全部问答∨ |
|
本人正在移植一段程序,现在用pb5.0定制了一个sdk,但是安装sdk后发现只有dsound的头文件,没有库文件,主要移植的是directx的调用。 在论坛里也搜索了下过去的帖子,喜忧参半,有说有库文件,也有说没有库文件的,都没有具体的明白。我查了下msdn ...… 查看全部问答∨ |
|
LIB_VER2.0.LIB(1): error C100: unprintable character 0x07 skipped LIB_VER2.0.LIB(1): error C141: syntax error near \',\' LIB_VER2.0.LIB(2): error C100: unprintable character 0xFD skipped LIB_VER2.0.LIB(3): error C129: missing \ ...… 查看全部问答∨ |