Squeak on Linux Framebuffer
Last updated at 11:53 am UTC on 17 January 2006
Looking for a low-overhead way to run Squeak on Linux? Too hardcore to use X? Look no further- you can now run Squeak directly on the Linux framebuffer, with no need for X11!
Woah, Did you say Squeak on the Linux Framebuffer?
Yes, I did!
Information on this display port has been a bit hard to find in recent times, although the port has been around in one form or another for around 4 years.
In the newest Unix VM from Ian (3.6g-2 and newer), FB support comes as an option. The Linux binary download even includes the files required to use it.
Get it here: http://www-sor.inria.fr/~piumarta/squeak/
First, you have to make sure to boot into a framebuffer mode. On non x86 platforms, this is done by default, although it may not be in a FB mode you want. To boot into a framebuffer mode, you have to pass an argument to the bootloader at boottime, wither in your lilo.conf file, or to GRUB.
vga=xxx sets the framebuffer console to a specific resolution. You pass that parameter=value combo at boot, in a bootloader like LILO or GRUB.
|colour ||depth||640x480 ||800x600 ||1024x768||1280x1024|
|256 ||8bit ||769 ||771 ||773 ||775|
|32000 ||15bit||784 ||787 ||790 ||793|
|65000 ||16bit||785 ||788 ||791 ||794|
|16.7 Mill.||24bit||786 ||789 ||792 ||795|
Info taken from: http://ruslug.rutgers.edu/~mcgrof/HOWTOS/framebuffer/framebuffer.php
Good for general info about the Linux FB.
After you've booted into an FB mode, you can start Squeak. Login to a console, navigate to where you have your image. Execute a line like this:
/path/to/squeak -memory 64m -vm-display-fbdev Squeak3.2.image
(still have to verify that- not at home with linux machine)
You will then be in the beautiful world of Squeak-sans-X.
I've found this port to work quite well. Display is as fast as or faster than it is under X11, although I've only used both on one machine, a K6-2/350 with a Voodoo2- no X Server acceleration. If you have a card which is supported by accelerated XFree, running under X may be quite a bit faster- the Linux framebuffer isn't accelerated.
I've not had any stability problems, although I've not been doing too much work with it yet. Generally impressed.
One thing I noticed is that you can't run Squeak in 24 bit color. Why this is I am not sure. Perhaps because Squeak supports 32 bit color, not 24 bit?
You cannot change the bit depth of your image after you've started it- if you go into "change color depth..." within Squeak, you are only offered the depth of the framebuffer at that moment. I am not entirely sure you can't boot into a 16 bit FB and start a 32-bit color Squeak image, switching into 16-bit after Squeak has started, but will test this later and report back.
The Squeak FB VM grabs mouse info directly from /dev/mouse (by default, you can change this). If GPM is running, Squeak will start, but you will have no pointer support. Killing GPM fixes this. There has to be some way to work around this, but I've not found it yet.
For those who don't know, GPM is a Linux app that gives you a mouse pointer in plain-text console sessions. It allows you to select, copy and paste text in the consoles. If you have a text-mode app that is GPM/mouse aware, sometimes you have some of the abilities that a GUI app would- for example, in the links and w3m text-mode browsers, you can click on links, just as in a GUI browser.
About the Author
Page originally written by Aaron Reichow. firstname.lastname@example.org