Search code examples
linuxembedded-linuxbootbeagleboardbeagleboneblack

Duplicating identical BeagleBone Black setups


After having set-up and customized my "master" BeagleBone Black (BBB) with applications etc. on the on-board eMMC, I want to duplicate it on other BBB boards.

What is the best way to duplicate the BBB?

My understanding of options:

  1. SD-Card: Programming each board by inserting a prepared SD card containing an image and pressing the "boot" switch while powering up.
    • How should I prepare that .img file or the SD card from my master BBB?
    • The image should copy to the on-board eMMC, so that the SD-card can be removed afterwards.
  2. USB: Programming by connecting the board over USB to a (Win7) PC.
    • Is it possible to write the full on-board eMMC from the PC?
    • With which app to do the writing?
    • How to prepare the image which will be written, starting from the master BBB?
  3. Ethernet: Programming over LAN after boot-up with default angstrom distro.
    • Is it even possible over LAN?
    • How to do the writing?
    • How to prepare the image which will be written, starting from the master BBB?

Which is possible/best?

Edit: My current solution is to flash with a standard image (from the BeagleBoe website) and then have a script do all modifications as expected. This includes disabling many services I don't need, installing applications and configuring stuff etc. If there is an easier way for making a SD card with a full image on it, I'm still interested.


Solution

  • For anyone else that needs this, the best answer I've found to this is to do the following:

    First setup your master Beaglebone Black the way you want it.

    Backup the eMMC

    • FAT format a 4GB or larger SD card (must be a MBR/bootable formatted microSD card)
    • Download beagleboneblack-save-emmc.zip and extract the contents onto your SD card

      Note: this is an image from Jason Krinder at his github https://github.com/jadonk/buildroot using the save-emmc-0.0.1 tag

    • Put the card into your powered off Beaglebone Black
    • Power on your Beaglebone Black while holding the S2 Button
    • The USR0 led will blink for about 10 minutes, when it's steady on you have an SD card with a copy of your eMMC in a .img file

    Use the eMMC to flash a new Beaglebone Black

    • On the SD card edit 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
      

      where <image-file> is the image file you got after copying backing up your eMMC

    • Insert the card into your powered off Beaglebone Black
    • Power on your Beaglebone Black while holding the S2 Button
    • The Beaglebone Black should go into rebuilding mode and within about 20 minutes you'll have a newly flashed Beaglebone Black (when all 4 USR LEDs are solid) with a copy of your original

    eLinux reference used for this article - http://elinux.org/BeagleBone_Black_Extracting_eMMC_contents