RE: [beagleboard] Re: Starting up: which board to put together a lightweight portable system

This is probably a start in the right direction for your cape issue: http://circuitco.com/support/index.php?title=BeagleBone_Breakout

For emulation, there are a variety of ARM-based solutions for video game emulation, although video games with higher frame rates and complex graphics typically won't run at full speed so you will be limited to less sophisticated video game emulation. However the GPU on the BeagleBone is not closed source, compared with for example the Raspberry Pi which has a completely closed GPU implementation and which can only be utilized via OpenGL ES. Although I've not done anything with ARM emulation, I would surmise that the BeagleBone is much better equipped for that based on the open nature of its GPU.

The choice between XM and BeagleBone, at least from my research so far, is more of a GPIO and expansion vs. multimedia capability question. For expansion, the BeagleBone has two full expansion headers with a ton of GPIO pins that can be muxed (17 I believe), and which can be controlled via the PRU for realtime performance (servo control, complex waveform generation etc). The XM has a limited expansion capability and doesn't support the concept of capes. However the XM does have a native camera interface, an onboard DSP, video and sound output etc.

So it sounds like your needs would be best served with the XM as opposed to the BeagleBone.

Unless you have a lot of Linux knowledge and expertise, the default Angstrom distribution would be the way to go initially, as many of the onboard hardware peripherals are accessible via sysfs. You can set pin muxing and directly manipulate GPIO with sysfs on Angstrom. More recent releases of Ubuntu for the BeagleBone also sport sysfs interfacing now but there is a bit steeper learning curve to get Ubuntu up and going as opposed to just using a stock Angstrom image to flash the system with.

If you are new to Linux, before diving in to an ARM-based environment I would suggest getting started with Linux from Scratch (LFS) on an x86 desktop machine:

http://www.linuxfromscratch.org/

LFS is probably the most difficult way of getting Linux installed on a PC, you compile each aspect of the system by hand and build it step by step. After you've completed a LFS installation, you will know everything about the Linux filesystem, run level boot process, kernel internals, location of system binaries and libraries etc. Spend a few days doing an LFS install on your desktop machine, it will help you immensely with the transition to an ARM-based SBC such as the BeagleBoard/Bone. For enterprise Linux training, many times I would have my students start with an LFS build first before training them on distribution-specific details such as package management wrappers and system administration.

Both Angstrom and Ubuntu for the BeagleBoard/XM/BeagleBone include native gcc development toolchains so you can develop and compile directly on the BeagleBone itself. However you would still want a desktop/laptop cross compile environment for doing kernel builds from a performance standpoint, it would probably take several days for any ARM-based system to do a full kernel build unless it's a quad core ARM processor. I have a laptop with an SSD that I use for kernel builds, everything else I just compile natively on the BeagleBone itself using gcc.

To get started with the BeagleBoard or BeagleBone these fellows have put together a very comprehensive wiki that includes labs and walk through examples on almost every topic related to BeagleBoard/Bone internals and cross compilation:

http://elinux.org/Main_Page

Here is the BeagleBone getting started guide:

http://beagleboard.org/static/beaglebone/latest/README.htm

Always make sure you use the HP format tool to prepare your SD card prior to imaging.

My linux is quite rusty...learned it at the time of the Red Hat,
Debian and Slackware; but then I just abandoned it because was very
time consuming to learn it...now I regret it since at that time I was
a student and had much more free time, compared to now. I know some
basics but I never dived into building my own version of the kernel
piece by piece; at most I would re-compile it to add drivers and
such, but I never did anything from scratch,

Give Robert Nelson's Debian or Ubuntu scripts a try. They make getting
going quite painless for Beagles and a few other boards.

https://github.com/RobertCNelson/netinstall

Almost forgot....is there any way to emulate a full Angstrom install
on a Mac? Something like running Parallels with an Angstrom virtual
machine in it?

If you install a Linux distribution on a virtual machine you should be
able to install Angstrom or anything else in a chroot to play with.

-Andrew