Вы находитесь на странице: 1из 4

BeagleBone Black running Ubuntu, Ruby, & Rails.

The above screenshot shows a BeagleBone Black running Ubuntu, Ruby, and Rails. Why Ubuntu? The Bone comes pre-installed with ngstrm, and it boots as soon as you unbox it. Why not stick with ngstrm?

My opinion: The factory standard is fine, but its always good to have options. Heres why I decided to try Ubuntu on the BeagleBone Black
Ubuntu documentation is plentiful. Books, blogs, and videos are readily available.
The Ubuntu community is huge. When a dev runs into an Ubuntu-related snag, its likely that another dev has encountered a similar problem, and they can collaborate on a solution.
Ubuntu is the distro that Im most familiar with. WisdomGroup uses Ubuntu for multiple projects. With a common operating system, knowledge gained in one environment is immediately useful in another.
Prepping for Parallella, the 64-core single-board computer that will cost about two hundred bucks. The Parallella is currently in short supply. When it becomes available, it will run Ubuntu. Experience with other singleboard computers, especially those running Ubuntu, will prove useful.
This article will show how to install Ubuntu on the BeagleBone Black. Gotchas will be pointed out along the way. Where possible, I will explain the reasons behind my decisions so that you can make different choices if you
like.
For a comparable examination of the Raspberry Pi, take a look at Ruby on Raspberry Pi.

First Gotcha: Ubuntu 13 on the Bone


As of this writing, Ubuntu 12 runs well on the BeagleBone Black, but Ubuntu 13 does not. My Ubuntu 13 installation appeared to be successful, but the Ubuntu 13 GUI hung up immediately after login. The Ubuntu 13
command line interface worked fine.
A quick search on Google reveals that others encountered similar roadblocks with version 13. One successful Bone/13 installation was used via SSH, not interactively via keyboard and GUI. Hopefully this will change with
future updates. Or, since were dealing in the open source world, maybe I can pitch in and help.
Due to the issues encountered with version 13, everything in this article will focus on Ubuntu 12.

Materials Needed for Installing Ubuntu 12


In addition to the BeagleBone Black, the following items should be gathered before installation:
Micro SD card of at least 8GB. Its possible to perform the installation with a 4GB card, but that wont leave much room for Ubuntu applications.
SD card reader/writer. Recent versions of Apples MacBook Pro come with an SD reader/writer built in.
SD to Micro-SD card adapter. The Bone is designed for micro SD, and the MacBook Pro is designed for full-sized SD. Some micro SD packages come with the adapter.
A monitor that accepts HDMI input.
USB keyboard and mouse.
Micro HDMI to HDMI adapter. The Bone uses micro HDMI for video output, but your monitor probably uses full-sized HDMI.
External 5V power adapter for the Bone. Personally, I trust the standard 5v power input more than I trust the power provided via USB. One never knows if USB can provide sufficient (and stable) amperage for a circuit
board. Power fluctuations can lead to strange behavior, including video flickering.
Ethernet cable with RJ-45 ends.
A fast internet connection.
The standard sudo disclaimer applies.

Homebrew Required
Homebrew is the easiest way to install nix utilities on Mac OS X. We need Homebrew in order to install some of the utilities needed to burn the SD card. The one-line Homebrew installation command is given on the
Homebrew site.
Each time we use Homebrew, we run $ brew doctor and $ brew update to make sure the packages are up-to-date.
1
2
3
4
5
6
7
8
9
10

$ brew doctor
Warning: Your Homebrew is outdated.
You haven't updated for at least 24 hours, this is a long time in brewland!
To update Homebrew, run `brew update`.
$ brew update
Updated Homebrew from a2e44659 to 4c7bc9ec.
$ brew doctor
Your system is ready to brew.

The xz Extraction Utility


Disk image files are downloaded in a compressed format. We need the xz utility in order to extract the files into something usable. If you already have Homebrew installed, this command will install xz for you.

1 $ brew install xz

Test the BeagleBone Black First


Power up your BeagleBone Black and make sure it runs with the built-in ngstrm Linux installation. One great thing about the Bone is that it will boot to the ngstrm GUI straight out of the box, with no prior configuration.
If the GUI boots, then youre in good shape.
If the GUI doesnt boot, it may have been damaged in a prior experiement. Embarassing note: I started looking for a way to install Ubuntu on the Bone because I broke my ngstrm installation. What can I say I learn more
from destructive experiments. Faced with a non-booting Bone, I had two choices.
1. Re-build ngstrm.
2. Try something different, like Ubuntu.
Option two worked well!

Prep the SD Card


Apples Disk Utility is a convenient tool for wiping the SD card. Standard warnings about any disk utility apply. Double-check everything, and make sure youre wiping the right volume, or you could lose all of your data.
Next, download the Ubuntu 12.04 image from http://armhf.com.
Extract the image using the xz utility.
1 $ xz ubuntu-precise-12.04.3-armhf-3.8.13-bone30.img.xz

The extracted image will have a .img file extension. We will use the dd utility to burn the disk image to the SD card. But first, we need to determine the designation of the SD card.

Find the SD Card Designation


In order to burn the SD card, we need to make sure we target it correctly. Heres how to figure out which device to target.
$ diskutil list

will show all of the partitions mounted on the system.

1 $ diskutil list
2 /dev/disk0
3
#:
TYPE
4
0:
GUID_partition_scheme
5
1:
EFI
6
2:
Apple_HFS
7
3:
Apple_Boot
8 /dev/disk1
9
#:
TYPE
10
0:
FDisk_partition_scheme

NAME
Macintosh HD
Recovery HD
NAME

SIZE
*500.3
209.7
499.4
650.0
SIZE
*8.0 GB

GB
MB
GB
MB

IDENTIFIER
disk0
disk0s1
disk0s2
disk0s3
IDENTIFIER
disk1

I happen to know that my SD Card is 8.0 GB in capacity, and my system also has a 500 GB SSD. The goal is to burn the SD card while leaving the 500 GB SSD (home of the Mac OS X operating system and all of my data)
intact. From the $ diskutil list report, I can see that the SD cards designation in my system is /dev/disk1.
Note the italicized words in my system. Your system is probably different, especially if you have a DVD drive or a second hard drive. I have neither of those. The SD cards designation will be different in each system where it is
mounted depending on the number and location of the drives that are already there.
Now that we know the SD cards designation, we can unmount it. We unmount the drive (but leave the card inserted in the reader) so that it can be written with the Ubuntu disk image.
1 $ diskutil unmountDisk /dev/disk1
2 Unmount of all volumes on disk1 was successful

Looks like the SD card was unmounted successfully. Now we can write the Ubuntu image with the dd utility.

Writing the Ubuntu Image


The following command will write the decompressed Ubuntu image to the SD card.
1 $ sudo dd bs=1m if=ubuntu-precise-12.04.3-armhf-3.8.13-bone30.img of=/dev/disk1

Note that it may take up to an hour for the image to be written.


One drawback of using the command line is that there is no gauge to tell you how much progress the utility is making. Fortunately, I stumbled upon a way to measure progress at eLinux.org. While the command line utility is
running, and while that window has focus, type control-T. A few seconds later, the terminal window will show a brief activity report.
Heres a report from the first time I struck control-T
1 load: 2.03 cmd: dd 75608 uninterruptible 0.00u 0.54s
2 40+0 records in
3 39+0 records out

We can strike control-T again to receive additional updates. The numbers will tell us if we are making progress. Dont get carried away with control-T. A watched pot never boils :)

Booting with the New SD Card


The terminal will return to the command prompt after the Ubuntu image has been written to the SD card. Now its time to boot with the new image.
1. Eject the SD card from the Mac.
2. Remove power from the BeagleBone Black, and insert the micro SD card.
3. Note the location of the boot button on the Bone. Its the micro switch closest to the USB port. We will need to hold this switch down while powering up the Bone.
A few notes about item #3. It takes some juggling to hold down a micro switch while plugging in power to the board. I found it easier to plug the power adapter into a powered-off surge suppressor, hold down the microswitch,
and then power-on the surge suppressor with my elbow. Sounds ridiculous, but it worked.
About sixty seconds after boot, the Linux penguin appeared in the upper left corner of the Bone display. And then the login prompt appeared.
Another note about the boot switch: It looks like the Bone will boot into the SDs operating system (instead of the eMMC flash OS where Angstrom resides) without the micro switch if the switch was used in the previous
boot. I havent rebooted enough times to test this thoroughly.

Default Credentials for Ubuntu on BeagleBone Black


Ubuntus default BeagleBone Black login credentials are shown here because I always end up hunting for these when I need them. Its much easier to have information at ones fingertips.
1 login: ubuntu
2 pw: ubuntu

End of Part One


This marks the end of part one of this series about BeagleBone Black and Ubuntu.
Part two covers Ruby on BeagleBone Black, with information about
Getting the GUI running, including a disk resizing gotcha.
Installing Ruby, including a Ruby Version Manager (RVM) gotcha.
Installing Rails, and how to handle a JavaScript runtime gotcha.
Stay tuned!
Posted by Raymond T. Hightower - Chicago Ruby on Rails & iOS Developer January 02, 2014 beaglebone black, linux, os x, rails, ruby
Tweet

Вам также может понравиться