Arch Linux on BeagleBone Black from USB-Stick

This guide shows how to install Arch Linux using a USB-Stick. A running U-Boot installation is required, in my case this was U-Boot 2013.04 which came with the original image. Next, I created a memory stick. I followed the documentation of Arch Linux ARM, I just used a USB stick instead of a Micro SD-Card. Now, plug the USB stick into your Beagle Bone Black and press a key to get the U-Boot prompt. U-Boot has the ability to boot from a USB stick, but some custom commands are required. First you need to scan the USB bus system.

U-Boot# usb reset
(Re)start USB...
USB0: scanning bus 0 for devices... 1 USB Device(s) found
 scanning usb for storage devices... 1 Storage Device(s) found

The command usb help shows all usb options. I listed my partitions first to make sure the USB stick is recognized correctly:

U-Boot# usb part 0 
Partition Map for USB device 0 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type  1 2048 131072 7a76ef26-01 0e Boot
  2 133120 61306880 7a76ef26-02 83

Ok, since we want use the Arch Linux provided kernel, we load it from the USB stick and start it.

U-Boot# ext4ls usb 0:2 /boot
<DIR> 4096 .
<DIR> 4096 ..
<DIR> 4096 dtbs
 3251480 zImage
U-Boot# ext4load usb 0:2 ${loadaddr} /boot/zImage
3251480 bytes read in 2551 ms (1.2 MiB/s)
U-Boot# ext4load usb 0:2 ${fdtaddr} /boot/dtbs/${fdtfile}
23801 bytes read in 357 ms (64.5 KiB/s)
U-Boot# setenv bootargs console=${console} root=/dev/sda2 rw rootdelay=5
U-Boot# bootz ${loadaddr} - ${fdtaddr}

Using this command you should end up in a running Arch Linux environment. In order to install the Arch Linux root filesystem I followed the “Installing to eMMC” instructions of the Arch Linux ARM guide.

Leave a Comment