technology from back to front

Squeak and OpenEmbedded

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.

by
tonyg
on
23/08/07
  1. 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

  2. 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.

  3. 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?

  4. 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.

  5. Michael
    on 09/08/08 at 2:21 am

    Hi Tony,

    Sorry for the long delay.

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

  6. 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.

  7. Davor Cubranic
    on 02/12/08 at 4:55 pm

    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.

 
 


− two = 1

2000-14 LShift Ltd, 1st Floor, Hoxton Point, 6 Rufus Street, London, N1 6PE, UK+44 (0)20 7729 7060   Contact us