DirectFB Squeak on the Zaurus SL-5xxx
Last updated at 5:22 pm UTC on 7 February 2007
By Tommy Thorn
I've worked on Squeak on the Zaurus (the Linux based SL-5xxxx, not the japaneese which is very different). The current version has working support for the touchpad and keyboard. Notice, this Squeak VM takes over the whole screen and keyboard and doesn't coexist with Qtopia (a feature, not a bug).
This particular VM must be run outside Qtopia. That is, from the application launcher run Shutdown, select Terminate Qtopia, and quickly press "/" at the console Wait... prompt, followed by "a" for a login prompt. Log in as root and launch Squeak for example like this:
./squeak -calibrate -rotate -memory 10m Squeak.image(I've used dynapad-0.01 for all my development). To suspend (that is, turn off) the Zaurus, evaluate
(StandardFileStream fileNamed: '/proc/sys/pm/suspend') nextPutAll: '1'; close.
It's usable, but it could be much better. For example:
- Power management is a major issue. While I can suspend the VM from inside (and it comes back nicely), I have still to find a way to make it turn off itself after some amount of idle time. The easiest solution is probably to put the sleep logic inside the keyboard and mouse layer itself as they know about the last UI activity.
- Currently, Squeak 3.2 + the latest VM burns a lot of cycles (= power) in idle. There has been a thread about gettimeofday, but I've yet to experiment with that.
- The filtering for touchpad needs improvement. I'm puzzled why it seems to work better for Qtopia (I'm using nearly the same simple algorithm).
- The keyboard is mostly working, but control and other modifiers aren't working, as well as the five special keys Zaurus. DirectFB is more part of the problem than the solution here.
- I haven't figured out how to control the backlight.
- Sound support is lacking (should be trivial).
I started with a sqUnixDirectFB.c that Lee Salzman posted to the Squeak development list, but to get the touch pad working I had to hack the DirectFB package.
- I want to throw the DirectFB cruft away and go straight to /dev/fb. The only major issue I can see is rotating the screen.
- Initial attempts at using Ian Piumarta's latest Squeak VM has yet to succeed.