Install ArchLinux on BeagleBone Black (Updated)

A few things have changed since I last wrote about installing ArchLinux on BeagleBone Black. This is an updated tutorial for release 4.13.0.

ArchLinux is a great operating system for low-cost ARM based embedded devices, such as the Raspberry Pi and BeagleBone Black. The development team for the ARM port is doing an excellent job optimizing and updating the package repository.

There were some changes to the installation steps since the last time I wrote about Install ArchLinux on BeagleBone Black. Below you can find the condensed summary of the installation steps that I take on BeagleBones now.


Before you can start with the installation, you have to prepare a bootable SD card with ArchLinux that will be used to install the operating system. If your desktop PC is also an ArchLinux system then you can follow the SD Card Creation steps on the official web site. Insert the SD card into the BBB and power on the system.

Many developers always boot their BBB’s from an SD card, and if you are one of them, you can skip the next section. I prefer to install the OS on the on-board 2GB or 4GB eMMC flash memory, so that I can use the SD card slot for other things.

Install ArchLinux to eMMC

After the BeagleBone booted from the SD card, log into ArchLinux using the default credentials root / root. We are now ready to install the image in the BeagleBone’s on-board flash memory. The steps are the same as the ones for SD card creation, except we are installing to the mmcblk1 drive now. First, zero out the drive and partition it:

Inside fdisk, type o to clear out any partitions, then type p to verify that there are no partitions left, then type n to create a new partition, then p for primary, then 1 (one) for the first partition on the drive, 2048 for the first sector, and ENTER key to accept the default last sector. Finally, write the partition table and exit by typing w.

Next, create and mount the file system on the flash drive’s newly created primary partition:

Now, download and extract the root file system into the partition. It looks like wget is no longer part of the ARM image, so we’ll use curl instead:

Finally, install the boot loader:

That’s it, the OS installed and boot loader are now installed on the eMMC memory. Power down the system, and wait until all the LEDs go out:

Power off the BBB, remove the power chord, remove the SD card, and plug the power chord back in. Your BBB should now boot from eMMC.

Configure ArchLinux

Now that the system is up, log in as root / root and change the password:

You can take a look at the system log to check whether there are any problems:

Then edit the package mirror list and uncomment the download servers that work best for you:

Let’s update all installed packages, so that the system is up to date:

Set the system’s language and locale:

Identify your time zone and set it permanently, i.e. /usr/share/zoneinfo/America/New_York:

Set the machine’s host name:

Create a new user account that you will use to log in from now on, and set its password. Also disable the default alarm user account:

Finally, disable the default alarm account and reboot the device:

Optional Post-Install Steps

Your BeagleBone Black is now fully set up and ready to go. I usually perform the following additional steps before putting it to work.

Install the base-devel packages if you want to compile code on the BBB:

Install sudo, which will allow you to perform administrative tasks using the previously created new user account:

To further reduce the attack surface of your device, it is recommended to lock the root account. Note that you can always re-enable it later by setting a password for it:

Install auto completion for bash, so it is easier to find packages:

The BBB has an on-board entropy source for random number generation, so let’s use it instead of the software based one:

And that’s it!

Related Resources

For tips on how to enable networking via USB and finding the BBB via Bonjour, check out Mark Conway Wirt’s blog post.

Leave a Reply

Your email address will not be published. Required fields are marked *