复制相同的BeagleBone Black设置

23

我已经设置并自定义了我的“主”BeagleBone Black(BBB)上的应用程序等,存储在板载eMMC上,我想将其复制到其他BBB板上。

最佳的复制BBB的方法是什么?

我的选项理解:

  1. SD卡:通过插入准备好的包含映像的SD卡并按下“启动”开关来编程每个板子。
    • 我该如何准备 .img 文件或从我的主BBB准备SD卡?
    • 映像应复制到板载eMMC,以便之后可以拆下SD卡。
  2. USB:通过将板连接到(Win7)PC进行编程。
    • 是否可以从PC写入完整的板载eMMC?
    • 使用哪个应用程序进行写入?
    • 如何准备将要写入的映像,从主BBB开始?
  3. Ethernet:在默认的angstrom发行版启动后通过LAN进行编程。
    • 通过LAN是否可能?
    • 如何进行编写?
    • 如何准备将要写入的映像,从主BBB开始?

哪种方法是可能/最佳的?

编辑:我目前的解决方案是使用标准映像(从BeagleBone网站)进行闪存,然后让脚本完成所有预期的修改。这包括禁用我不需要的许多服务、安装应用程序和配置等。 如果有更简单的方法可以制作一个包含完整映像的SD卡,我仍然很感兴趣。


1
请检查这些脚本:https://github.com/RobertCNelson/tools/tree/master/scripts - Ottavio Campana
1
新用户@Master尝试在Angstrom Rev 6上找到并发现它可以工作,但在Rev C Debian板上,“当按住S2按钮启动时,它根本不会启动,所有LED都保持关闭状态,直到我正常重新启动BBB为止。”有人有什么想法吗? - Chris Stratton
@ChrisStratton 我也遇到了同样的问题。它把eMMC的副本备份到SD卡上,但我在启动时无法让S2工作...你有什么进展吗? - Robert C Edwards
1
@RobertCEdwards - 我只是转述了别人的评论,他错误地将其发布为答案。我个人没有尝试过这些特定的板子。 - Chris Stratton
5个回答

23

正如在 eLinux文章 的底部所指出的,如果您正在运行Debian发行版,则有一个更简单的方法:

  1. 不使用SD卡启动主BBB
  2. 插入SD卡
  3. 登录(例如使用串行终端、SSH等),运行命令sudo /opt/scripts/tools/eMMC/beaglebone-black-make-microSD-flasher-from-eMMC.sh。SD卡被写入时,LED将按顺序闪烁。
  4. 当LED停止并脚本终止时,取出SD卡。
  5. 将SD卡插入新的BBB然后开机。
  6. eMMC将被刷写;新BBB上的LED将按顺序闪烁直到完成。

1
这比@Paul Ryan的帖子容易多了。谢谢Debian! - Aaron

14

对于任何需要这个的人,我找到的最佳答案是按照以下步骤进行操作:

首先设置您的主 Beaglebone Black。

备份 eMMC

  • FAT 格式化一个 4GB 或更大的 SD 卡(必须是 MBR/可引导格式化的 microSD 卡)
  • 下载 beagleboneblack-save-emmc.zip 并将内容解压缩到您的 SD 卡上

    注意:这是 Jason Krinder 在他的 github 上使用 save-emmc-0.0.1 标签的镜像 https://github.com/jadonk/buildroot

  • 将卡插入已关闭电源的 Beaglebone Black 中
  • 按住 S2 按钮打开 Beaglebone Black 的电源
  • USR0 灯会闪烁约 10 分钟,当它稳定亮起时,您就有了一个带有您的 eMMC 副本的 .img 文件的 SD 卡

使用 eMMC 刷写新的 Beaglebone Black

  • 在 SD 卡上编辑 autorun.sh

    #!/bin/sh
    echo timer > /sys/class/leds/beaglebone\:green\:usr0/trigger 
    dd if=/mnt/<image-file>.img of=/dev/mmcblk1 bs=10M
    sync
    echo default-on > /sys/class/leds/beaglebone\:green\:usr0/trigger
    

    其中<image-file>是你在备份eMMC后得到的镜像文件

  • 将卡插入已关闭电源的Beaglebone Black中
  • 按住S2按钮启动Beaglebone Black
  • Beaglebone Black应该进入重建模式,在大约20分钟内,当所有4个USR LED都亮起时,您将拥有一个新闪存的Beaglebone Black(具有原始副本)

本文使用eLinux参考 - http://elinux.org/BeagleBone_Black_Extracting_eMMC_contents


1
感谢您的编辑。确实需要按住S2按钮直到USR灯开始闪烁(大约3-10秒)。 - Paul Ryan
1
我在启动BBB时遇到了问题,无法从SD卡引导。原来需要将SD分区标记为活动状态才能从中引导。请参见上面引用的eLinux文章中的讨论部分。 - Robert C Edwards
有人知道为什么这在旧的2G版本BBB上不起作用吗?我已经在新的4G版本上成功运行了它,但是当我尝试在2G版本上运行它时,它立即转到固定的LCD,并且我只得到一个1K的图像文件。我将ls /dev/的内容写入卡片并注意到那里没有mmcblk1,只有mmcblk0(SD卡)。为什么eMMC在4G版本上正常工作时,在2G版本上无法挂载? - Shawn Jacobson
如果您使用USB为板子供电,那么您可能需要通过电源插孔为其供电,以便为外围设备提供足够的电流。@LucaLenardi - Paul Ryan
@TimothyVann 我所能想到的唯一可能是您的卡没有使用MBR分区表,请尝试使用它重新格式化。 - Paul Ryan
显示剩余8条评论

9
我有同样的需求,使用dd和nc(NetCat)将文件直接保存在桌面上,无需使用中介SD卡。您可以通过USB连接或以太网连接执行此操作,只需按照以下步骤更改IP地址即可。在设置完所需应用程序的BBB后,基本步骤如下:
1. 在桌面上,在终端中运行此命令: nc -l 19000 | bzip2 -d | dd bs = 16M of = BBB.img
2. 在BeagleBone Black上,在终端中运行此命令(可以通过SSH登录,也可以直接从BBB中执行): dd bs=16M if=/dev/mmcblk0|bzip2 -c|nc 192.168.7.1 19000
注:192.168.7.1地址适用于USB连接。(BBB为192.168.7.2)如果您正在通过以太网连接进行此操作,则应使用桌面IP地址。
此说明取自此处
最后,按任何方法安装到下一个BBB。这里是将EMMC闪存的示例

这个几乎可以工作,但我花了一段时间才意识到你需要实际运行 nc -l -p 19000,否则在Linux Debian上无法工作。 - zabumba
SevakPrime,我已經成功獲取了我的圖像BBB.img,並將其複製到microSD上,插入了BBB,開機時按住S2,但仍然無法將其刷回到我的eMMC。也許在您的工作流程中我遺漏了某些內容。 - zabumba
@joelmaranhao,将其复制为文件到microSD卡上是行不通的。 您需要将其编写为图像并写入到microSD卡中。(请参见上面第二个链接中的第5步。)请参阅此链接以了解如何编写图像:http://www.embeddedarm.com/support/faqs.php?item=10 - Sevak Avakians
我没有正确表达我的意思,实际上这正是我所做的。我使用了dd命令来写入镜像,而不是将文件img复制到microSD卡中。也许这是由于我的BBB版本问题。 - zabumba
1
使用dd命令捕获正在不断写入设备的活动系统镜像是否安全? - kevinc
2
@kevinc 我觉得不是这样。这就是为什么我从 Micro SD 卡中启动,卸载了 eMMC 然后将其转移到桌面上的唯一安全方法。我认为这是在不使用任何软件的情况下进行操作的唯一安全方式。 - Hristo Ivanov

0
我们注意到,在使用2015年1月23日发布的Debian版本的Beaglebones上,成功从SD卡复制镜像的唯一方法是在开机时不要按住启动按钮。

0

将您的emmc映像复制回SD卡有点棘手,因为它需要以某种方式格式化才能挂载。以下是一些提示,以使其正常工作:http://dev.gentoo.org/~armin76/arm/beagleboneblack/install_emmc.xml#expand

可能更容易的方法是使用USB闪存驱动器或USB SD卡读卡器。请注意,目前存在一些热插拔USB设备的问题,因此请在插入时启动。

您可以将整个FS复制到USB驱动器上,然后进行压缩。创建一个新的可引导的Linux SD映像,并将压缩的FS放在其中,并使用Ottavio链接到的脚本之一来复制压缩的映像。您可以创建一个systemd服务,在启动时启动该脚本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接