Things you’ll need:

  1. The TI am335x-evm-sdk sources
  2. A git clone of the Arago am33xx v3.2-staging branch Linux source
  3. Some x86 to ARM cross compiler (I like Debian)
  4. Patience

First clone the Arago am33xx kernel tree, or if you already have a kernel tree locally, add the Arago repo as a remote and check out the v3.2-staging branch. Then unpack the TI am335x-evm-sdk sources, of which you’ll then again need to unpack the Linux kernel sources inside, so that you can get the Cortex-M3 firmware needed for proper power management. The firmware is located at firmware/am335x-pm-firmware.bin. Copy it to the firmware/ directory in the Arago kernel tree you’ve checked out.

Now, within the Arago Linux tree, you’ll execute all the rest of the commands.

First, make sure everything’s clean:

make mrproper
make ARCH=arm clean

Then load the am335x_evm_defconfig:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- am335x_evm_defconfig

If you’d like to make any changes, you may use menuconfig. I personally like to enable DEVTMPFS and automatically mount it at boot time since I don’t create any entries in /dev on my root file system (I’m lazy, patch available in a gist, apply the patch before loading the defconfig):

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig

Then build the uImage (replace the -j5 with an apropriate value for your build machine):

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j5 uImage

Copy the resulting uImage to your SD card and boot up your Beaglebone!

cp arch/arm/boot/uImage /path/to/sdcard/

Make sure when unmounting your SD card that you allow the unmount to return before physically removing it from your PC. A sync before the umount command is my usual operation, to ensure all data has been written to the SD card before I pull it. Linux on your PC will buffer data being written, so the actual cp command will return before data has been fully written to the card.


Published

08 May 2012