【问题标题】:Writing image to SD card programmatically以编程方式将图像写入 SD 卡
【发布时间】:2015-03-12 20:29:56
【问题描述】:

我正在尝试编写一个跨平台(Linux、Mac OS 和 Windows)工具/脚本,它可以通过连接到计算机的 SD 卡读卡器将 .img 图像写入 SD 卡。我尝试了很多关于如何使用各种语言完成此操作的教程/参考资料,但我找不到任何富有成果的东西。

我想更深入地了解将图像写入 SD 卡时发生的底层过程,以及使该过程平台依赖的因素。关于如何用某种语言实现这样的程序的某种指南/博客文章会很棒。 (dd 命令可以在 linux 和 mac os 上使用,但我正在探索编写一个可以在所有平台上完成工作的统一程序的可能性)

我想要一些关于此的指导/参考

【问题讨论】:

  • 没有机会做这个跨平台,至少不是在 Windows 上。 OS X 和 Linux 应该有大致相似的方法来做到这一点。什么是.img 文件?该后缀有很多用途。
  • .img 包含可启动操作系统的文件

标签: cross-platform sd-card diskimage


【解决方案1】:

从应用程序的角度来看,SD 卡只是一个文件。您可以使用通常使用的相同库函数和系统调用在 SD 卡上写入数据。在类 Unix 操作系统上,设备对应的文件通常放在文件夹/dev 中。例如,要在 Linux 上的第一张 SD 卡上写入图像 sd.img,您可以像这样调用命令 dd

dd if=sd.img of=/dev/mmcblk0

这会将sd.img 的内容复制到 SD 卡中。该过程在其他平台上类似,但并不完全相同。

【讨论】:

  • 如果它们被视为普通文件,那么我们为什么不能简单地使用文件系统访问函数(如C中的fopen,fwrite)。为什么需要像 dd 这样的专门程序
  • 您也可以像在cat sd.img >/dev/mmcblk0 或任何其他程序中一样使用cat,但dd 有选项cat 在您想要复制图像文件时没有派上用场。当然,您也可以使用文件系统函数,例如 fopenfwrite
  • 好吧,我现在有点明白了。非常感谢@FUZxxl 的帮助
  • 如果此答案对您有帮助,请单击答案分数下方的 ✓ 将其标记为已接受。
猜你喜欢
  • 2012-01-10
  • 2016-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-17
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
相关资源
最近更新 更多