leastfixedpoint

Squeak and OpenEmbedded

This page is a mirrored copy of an article originally posted on the LShift blog; see the archive index here.

Neo1973 running Squeak VM 3.9 Recently, I’ve been getting interested in getting Squeak running on smaller pieces of hardware, such as cellphones or PDAs. Last week I received my FIC Neo1973 open-source GSM cellphone, which runs a system based on OpenEmbedded called OpenMoko.

I’ve managed to get the system compiled and running both in emulation and on the phone itself, and I’ve added support for building Squeak VM 3.9-8 to the base OpenEmbedded packages. It took a little while, but I’ve managed to get past the cross-compilation (libtool) and plugin-loading (-rdynamic) hurdles, and I’m pleased to report that everything is working well. Squeak images old (2.8) and new (3.9-final) run fine.

Here’s a (blurry) picture of the latest Squeak VM, version 3.9, running a tiny, stripped 2.8 image on the handset itself: Squeak on the Neo1973.

The next steps will be to use OSProcess and Flow to access the various bits of hardware jammed into the Neo (GSM modem, GPS, Bluetooth, touchscreen, audio, battery, auxiliary buttons, headset connection/mute-button events, etc), and to use something like Faure (screenshots) to construct a stylus- or finger-driven UI.

The Neo hardware is amazing - the display is VGA resolution at a crisp 285dpi, only slightly lower than a low-end laser printer, which opens up a lot of options for UI design - and the kernel programmers have done a great job of the kernel/userland interfaces.

Update: I’ve added an issue to OpenEmbedded’s bug tracker, to see if they would like to fold my build scripts into the main trunk. You can follow the discussion here: http://bugs.openembedded.org/show_bug.cgi?id=3013

Here’s a link to the squeak-x bitbake scripts, for those who would like to try it out in the meantime.

Comments

On 29 August, 2007 at 10:33 pm, Lothar wrote:

Hi,
your squeak port to the Neo1973 is really cool. I’m curious about the ongoing of your project..this sounds like a great plattform.

Please post any news on the squeak mailing-lists (like you did ;-)

cheers,
Lothar

On 16 September, 2007 at 12:59 am, tonyg wrote:

Update: I’ve added an issue to OpenEmbedded’s bug tracker, to see if they would like to fold my build scripts into the main trunk. You can follow the discussion here: http://bugs.openembedded.org/show_bug.cgi?id=3013

Here’s a link to the squeak-x bitbake scripts, for those who would like to try it out in the meantime.

On 22 May, 2008 at 10:06 pm, michael wrote:

Hi,

I have been working on a squeak-based tablet computer project and want to allow for portability to/from Freerunner. So many thanks for your work.
Is it likely your squeak port onto the Neo1973 will work on the Freerunner?

On 23 May, 2008 at 8:16 am, tonyg wrote:

Michael, yes, it should in principle, but it might require a bit of work to bring it back up-to-date with the rapidly-moving OpenEmbedded source tree.

On 9 August, 2008 at 2:21 am, Michael wrote:

Hi Tony,

Sorry for the long delay.

FYI, I have my Freerunner and will try to get started on this project.

On 9 August, 2008 at 2:14 pm, tonyg wrote:

Groovy. Let me know how you get on. I have been disappointed by the quality of recent FSO builds (using MokoMakefile) — my GTA01 reports many, many missing shared libraries in the root image. Very frustrating. YMMV.

On 2 December, 2008 at 4:55 pm, Davor Cubranic wrote:

Hi there. I was wondering if you have any advice on making Squeak run (reasonably) fast on a small machine like a PDA or a netbook. I tried running Damien Cassou’s 3.9 squeak-dev image on a stock OLPC, and it was incredibly painful. Just clicking on a scrollbar in the browser took about five seconds to scroll the list of methods. Other basic GUI operations were similarly slow, at which point I gave up. But I find it hard to believe that a 500MHz, 256MB machine is too slow to run Squeak, so I hope it’s just a matter of the VM+image combination I was using.