The BeagleBone Black is a stout piece of hardware. With all of this power, a world of operating systems are open to you but you can’t install just anything on it. Depending on how deep you want to dive into the rabbit hole you can stay with some pre-built packages or look all the way to building your own kernel for the device.
The reason there are some restrictions is that the Beaglebone Black is based on the ARM architecture which differs from what we normally expect of high powered computing environments that in the past have been x86 based. With the high performance of ARM based microprocessors at low power levels, especially within the growing IoT segment, they have been getting more attention from software developers and this opens up a whole world of possibilities.
BeagleBone Black & Debian: The Primary OS
The BeagleBone Black initially was developed with Angstrom Linux as the core system. Angstrom was built with the embedded systems world in mind so it is very lightweight and able to scale down to very small memory footprints. Eventually Debian was adapted as the primary OS image for the Beaglebone Black opening up a very large world of packages and compatible software. Debian is the backbone of distributions like Ubuntu and Mint so generally if you see someone posting instructions for how to do something on Ubuntu it will be possible to follow the same instructions on Debian as long as you install any missing dependencies first. One key to dependencies and software packages is that they must be ARMHF compatible to run on the Beaglebone Black. For Debian on the BeagleBone Black you have the options of version 7 named Wheezy and version 8 named Jessie. I would recommend going with the latest stable version which is Debian 8.3 as of this writing.
Both of these images (Debian 8.3 and 7.9) can be written to an SD card. I’d recommend a class 10 micro SD card with at least 8Gb of storage like the Kingston SDC10/8GBSP. You can use linux and the dd command, on Windows use the Win32DiskImager utility, and on Mac use the XZ utility.
BeagleBone Black & LXDE: Setting Up a GUI (Graphical User Interface)
Sometimes it is useful to have a GUI present on the board even though it is primarily and embedded computing platform. On one of my projects I have the board functioning as a standalone dashboard displaying some information over HDMI onto a monitor using a mini-HDMI to HDMI converter like the PNY C-H-A10-C10-C(https://www.arrow.com/en/products/c-h-a10-c10-c/pny-technologies). To get this up and running I needed X11 and the fastest route I found to get it was using the LXDE package which is the Lightweight X11 Desktop Environment, it provides all the elements needed to get a GUI up and running while being functional on rather limited graphical hardware. The fastest way to get LXDE installed is through apt-get, such as:
sudo apt-get update
sudo apt-get -y install lxde lxde-core lxde-icon-theme
sudo shutdown -r now
After rebooting you should be presented with an LXDE login screen and have some graphical utilities installed.
BeagleBone Black & Ubuntu 14.04: More Functional Options
Beyond these “officially” supported packages there are quite a few other distributions that do function on the board. I tested and ran Ubuntu 14.04, 12.04 and Snappy Core. All of them started on the board and were functional. For my projects i have been using Ubuntu 14.04. Snappy Core is an interesting one to experiment with as it is Ubuntu’s push into cloud container deployments supporting Docker applications. Android 4.2.2 Jelly Bean is has also been built for the BeagleBone Black along with Windows Embedded Compact 7 and 2013.
The takeaway is that there are a ton of options for any project you might envision for the BeagleBone Black. Some will be better supported than others and some will be a bit more lightweight to let you do more with the board.