9/17/2012

Project Gemini - Phase 1 - XBMC (complete)

Backstory 

If you're reading this post than you are probably where I was a couple of months ago.  You wanted to jump on the bandwagon of the single board, SOC craze and ran out and bought a Beagleboard XM (rev C in this case).  You did this not because you're a developer or a potential product manufacturer but you thought the idea of a 1Ghz computer that fits into the palm of your hand is just plain AWESOME.  You got it in the mail, opened it up, plugged it into your TV, and played with the demo image for 5 full minutes before going "ok, what else can I do with this?"



Then you started researching (and perhaps started secretly wishing you bought a Pandaboard or RasPi due to the overwhelming amount of prebuilt software/support available).  You spend hours sifting through Google Groups, forums, and blogs only to find that there are hardly any detailed 'how-tos'. Or even worse, only brief glimpses of people who are facing the exact same issues you are or the occasional, "I HAVE AN ISSUE"........."NEVERMIND.  I FIXED IT" with nothing explanation as to how....



So I decided that I could either be part of the problem, or part of the solution.  These posts won't contain issues or 'work in progress'.  These will be detailed how-to's on how myself and my partner in crime plan on turning a Beagleboard XM rev C into a "Swiss Army Knife" of portable computing.  Each 'phase' will basically be it's own 'sdcard' to swap out at will depending on what you want to accomplish.

Upcoming Projects:

Phase 1 - XBMC

  • Phase 1.5 - XBMC - CarPC
  • Phase 2 - Full Android System (rooted, google apps, etc)
  • Phase 3 - Wireless Webcam Monitoring System (mjpegstreamer, lighttp)
  • Phase 4 - Headless Music Server (MPD, lighttp)
  • Phase 5 - OpenWRT Wireless Router




Phase 1 - XBMC 

The first time I saw this little board my mind immediately jumped to using this thing as a replacement for my CarPC.  While that process is ongoing, the majority of my time was spend just getting Angstrom, SGX, and XBMC to play nicely.  Here is EXACTLY how to get XBMC running on your Beagleboard XM rev C (as long as you already have some basic knowledge of Linux).

(continued after the break)

Step 1 - Setup your Micro SD Card (minimum 4gb...maybe 2gb)

Using a Linux OS (ubuntu/debian/etc), plug in your Micro SD Card and check 'dmesg' to determine its location.  For the purposes of this how-to, we're going to use '/dev/sdb'

Fire up 'gparted', go to '/dev/sdb/' (unmount the partition(s) if necessary), delete the existing parition(s), and setup two partitions as follows:


Partition 1 - Primary - 100mb - fat32 - set boot/lba flag - Name='boot'
Partition 2 - Primary - remaining space - ext3 - Name='rootfs'


Step 2 - Get the files you'll need

Download the following files:

Recently prebuilt Angstrom rootfs (Gnome) this is the only version I could get SGX to work on 'out of the box'
MLO
u-boot.img
Ethernet Kernel Module (trust me)

Step 3 - Create uEnv.txt with the following:


Step 4 - Copy files to the 'boot' partition IN THIS ORDER:

#1 - MLO
#2 - u-boot.img
#3 - uEnv.txt

Step 5 - Extract the tar.gz to 'rootfs' partition



Step 6 - Copy ethernet kernel module to home directory on the rootfs partition


Step 7 - SYNC AND EJECT SAFELY

You just did alot of stuff to that card, make sure it's complete before you unplug it.


Step 8 - Insert SD and Boot up the Beagleboard (takes about 20-30 minutes the first time...be patient)

After the initial boot is complete, login as 'root' (no password)

Reboot (just to be safe after first initialization) and log back in

Make sure you have ethernet connectivity and execute:


Reboot
Reboot again (if any modules failed to load...it happens after an upgrade)

If you did everything perfectly, you're now on kernel 3.2.28 (as of Aug 2012) and your ethernet no longer works.  So you don't have internet connectivity to re-download the package........aren't you glad you copied over that ipk now?



Install everything you need to run XBMC:


Reboot

Set volume levels:


Set volume levels of [DAC2 Analog] [DAC2 Digital Fine] [DAC2 Digital Course] [Headset]

Unmute [HeadsetL Mixer AudioL2][HeadsetL Mixer AudioR2]

Save the volume levels


Reboot

Step 9 - Fire up XBMC!!!

You can login to Gnome by typing



OR you can set gdm to start on boot by executing:

Once gnome starts up open a terminal and execute:


(launching xbmc from the menu doesn't work.........here's why if you want to fix it)



DANCE A JIG!!!