Monday, May 13, 2013

Beaglebone black first impressions on MacOS

I'm a bit of a sucker for a cheap unix computer. In recent months I've been playing with Raspberry Pi devices but ran in to problems with audio over the USB. When the $60 Beaglebone black went on sale, I couldn't resist.

This board, which is about the size of an Altoids tin, features:

  • 1GHz ARM Cortex-A8 processor
  • uHDMI video socket
  • uSD card socket
  • 2GB on-board storage all ready to boot
  • 5V in socket
  • 2 USB sockets
  • Ethernet socket

To get started, I've done the following:

  • Plug the board in to the USB port on my Mac using the supplied cable (no other power is needed for the board)
  • A USB storage device mounts and all the documentation and drivers are available. Open START.htm to read the documentation.
  • From the Drivers folder, there are two drivers, one for serial over USB and the other for a network connection over USB. I already have the serial FTDI driver so I installed the RNDIS driver (which seems to be an Android open source thing).
  • Unmounted the BEAGLEBONE disk, unplugged it from USB.
  • Re-plugged the USB and waited for the drive to mount.
  • At this point I could ping and load
  • In terminal ssh root@ (hit return for password)
  • Plugged the board into a hub on my network with an ethernet cable
  • ifconfig shows that the board now has an IP address and can reach the internet
  • opkg update
  • opkg upgrade # this runs for some time (I left it over night)
It's marvellous that the board has enough storage on-board to boot up linux and there is a socket for extra storage. Angstrom linux is a mystery to me but I'm going to give it a go and maybe switch to something more familiar to me later if I hit a wall.


Hmm, I left the opkg upgrade running over night but in the morning I notice that it didn't complete correctly - looks like it lost network connection.

 * opkg_install_pkg: Failed to download perl-module-unicode-collate-locale-da. Perhaps you need to run 'opkg update'?
 * pkg_run_script: package "bonescript" postinst script returned status 1.
 * opkg_configure: bonescript.postinst returned 1.
root@beaglebone:~# reboot

It did not reboot. I've tried with the ethernet cable disconnected (a user reported this as a possible issue). I have to go to the office so will come back to this and report when I figure out how to re-flash.

Today, I picked up a 4GB uSD card and followed the instructions here to re-flash the built-in on-board flash and all is well.


The provided instructions are rather focussed on Windows for imaging a uSD card for re-flashing but I was able to do it on MacOS as follows:

Use 'diskutil list' before and after inserting the card to figure out which /dev/diskX it is.

$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
$ sudo dd if=BBB-eMMC-flasher-2013.05.08.img of=/dev/disk2
7143424+0 records in
7143424+0 records out
3657433088 bytes transferred in 12416.160438 secs (294570 bytes/sec)

It's rather slow, this took 3.5 hours.

I like the way the default linux registers the beaglebone on mDNS (bonjour) so I can find it on the network like this:

ssh root@beaglebone.local

Incidentally, these things really do fit in a lolly tin, here's mine in a "Fisherman's Friend" tin along side a Raspberry Pi.


There is a big list of projects.  Angstrom Linux has a marvellous list of pre-built packages. I notice that gnu-radio is there...


Dave Appleton said...

After you reflashed, did you do an update again?

I am seeing LOTS of messages about bonescript returning status 1 after an install or upgrade...

Lars Ole said...

Yeah, I did that and got the same error. Anoying.
pkg_run_script: package "bonescript" postinst script returned status 1.

Anonymous said...

I have the same thing happening on mine. But it's worse. After an opkg upgrade, my BBB refuses ssh connections until I completely power it down and boot it up again.

Anonymous said...

Take a look at this post - it worked for me. now when I run opkg upgrade there are no errors...