历史上的今天
返回首页

历史上的今天

今天是:2024年08月30日(星期五)

正在发生

2019年08月30日 | S5PV210开发 -- Linux dd命令

2019-08-30 来源:eefocus

昨天群里有人询问,为什么破坏 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 擦除了它的第一个扇区。

推荐阅读

史海拾趣

Heyco公司的发展小趣事

Heyco非常重视与合作伙伴的关系建设。2021年,Heyco将年度全球最佳分销商称号授予了电子元器件分销商贸泽电子,以表彰其在过去一年中不懈的努力和出色的销售业绩。这一奖项的颁发不仅体现了Heyco对贸泽电子的高度认可,也展示了双方之间深入、愉快的合作关系。通过与贸泽电子等优秀分销商的紧密合作,Heyco能够更好地服务全球客户,满足其多样化的需求。

全志(Allwinner)公司的发展小趣事

2010年,平板电脑市场的崛起为全志科技带来了巨大的发展机遇。全志迅速调整产品策略,推出了AP处理器A系列,成功抓住了这一市场风口。其芯片产品在平板电脑领域的应用,不仅提升了公司的市场份额,也为公司的未来发展奠定了坚实的基础。

FINISAR公司的发展小趣事

2018年,FINISAR被II-VI Incorporated(II-VI公司)收购。II-VI是一家同样位于美国的光电子元件和材料制造商,专注于提供各种光学产品和解决方案。这次收购对FINISAR而言是一次重要的发展机遇。通过整合两家公司的资源和技术优势,FINISAR能够进一步扩大在光通信市场的业务规模,提升技术实力和产品组合。同时,这也为FINISAR带来了更广阔的发展空间和更多的市场机会。

以上五个故事展示了FINISAR公司在电子行业中从创立到发展壮大的历程以及所取得的成就和面临的挑战。这些故事不仅反映了FINISAR在技术创新、全球化布局、知识产权保护以及企业发展战略等方面的努力和成果,也展现了公司在光通信行业中的重要地位和影响力。

HELUKABEL公司的发展小趣事

2018年,FINISAR被II-VI Incorporated(II-VI公司)收购。II-VI是一家同样位于美国的光电子元件和材料制造商,专注于提供各种光学产品和解决方案。这次收购对FINISAR而言是一次重要的发展机遇。通过整合两家公司的资源和技术优势,FINISAR能够进一步扩大在光通信市场的业务规模,提升技术实力和产品组合。同时,这也为FINISAR带来了更广阔的发展空间和更多的市场机会。

以上五个故事展示了FINISAR公司在电子行业中从创立到发展壮大的历程以及所取得的成就和面临的挑战。这些故事不仅反映了FINISAR在技术创新、全球化布局、知识产权保护以及企业发展战略等方面的努力和成果,也展现了公司在光通信行业中的重要地位和影响力。

G-Mag Usa公司的发展小趣事

进入21世纪后,G-Mag意识到单一产品线难以满足市场多元化需求,于是开始实施并购扩张战略。2005年,G-Mag成功收购了国内一家领先的电子元器件制造商,这次收购不仅增强了G-Mag在供应链上的控制力,还为其带来了丰富的产品线和技术储备。随后几年,G-Mag又陆续完成了对多家在传感器、无线通信等领域具有优势企业的并购,逐步构建起了一个覆盖电子产业链上下游的庞大帝国。通过并购,G-Mag不仅实现了业务的快速增长,还巩固了其在电子行业中的领先地位。

ERGOBAHCO公司的发展小趣事

在快速发展的同时,ERGOBAHCO公司始终不忘履行社会责任和推动可持续发展。公司积极参与社会公益事业,捐款捐物支持贫困地区的教育、医疗等事业。同时,ERGOBAHCO公司还注重环保和节能减排工作,通过引进先进的环保技术和设备,实现了生产过程的绿色化、低碳化。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

问答坊 | AI 解惑

Protel 99从入门到精通教程(下)

接上面的Protel 99从入门到精通教程(下) 记得用下面的阅读器或者自己去网上下载pdg的阅读器…

查看全部问答>

关于求一有符号数补码的新想法

SETUP: MOV R3,#8;        MOV A,#80H; AA:    JB ACC.7, DD;         SJMP GG; DD:     RLC A; EE:        RLC A;   ...…

查看全部问答>

单片机PID控制

大家好,请问一下如果单片机PID控制的输出是要控制继电器的话(类似温控表用继电器输出控制的),那程序要怎样处理呢?有没有程序可以参考一下呢?…

查看全部问答>

大家用过CMMB或是DAB的手机电视吗?感觉怎么样?

RT 大家用过手机电视吗?就是用手持移动终端看电视。 感觉怎么样?…

查看全部问答>

汽车电子基本知识问答(上)

汽车基本知识问答 1).SOHC于DOHC两者有什么优劣点?  DOHC的设计是能使活瓣的角度更切合燃烧室的形状,因此整体活瓣面积可增大,每个活瓣轻一点,惯性质量减少,进汽效率因而可提高.相反SOHC只有一枝凸轮轴,局限了活瓣的角 ...…

查看全部问答>

基于WINDOWS CENET的1394摄像机驱动程序开发.pdf

基于WINDOWS CENET的1394摄像机驱动程序开发.pdf…

查看全部问答>

有关三星ARM芯片的问题,请高手帮助!!!!!

请问一下,三星的s3c2500或s3c4510这两块芯片是否带有休眠功能,找了半天芯片手册好象没有找到电源管理的功能,就是有一个power mode的选择,可以选:normal,slow,idle,power off等模式,请各位高手解惑!!!!!!!!!! …

查看全部问答>

谁在万利的板子调试CAN成功了?我实在是搞不出来了

我实在是搞不出来了,在normal模式下,和zlg的can模块怎么也通不上,双方都能发出同步信号,但不能建立连接。是我的波特率不对?怎么用示波器验证一下呢?希望有测试成功的人,吧代码发一份给我,不胜感激。swing2005@sohu.com…

查看全部问答>

【讨论】149的内部参考电压基准准码??

在以前的设计中我都是采用的外部参考基准电压,请问各位大侠用内部的参考采样的数值准码? EMC情况又如何?…

查看全部问答>