Running Squeak on Linux

"G–ran" Hultgren gohu at rocketmail.com
Tue Apr 6 07:12:03 UTC 1999


Hi!

---Ivan Brusic <ivan at cc.gatech.edu> wrote:
> Hello fellow squeakers,
> 
> I am unable to run Squeak on Linux.  There are two different errors
which
> I get when trying to run Squeak:
> 
> 1) When using Ian's precompiled VM (SqueakVM-2.3-i386-linux-2.0.36) or
>    using my own compiled VM (with the lastest sources) I get the
following
>    error:
>    This visual class is not supported

This has to do with X Windows. I got the same problem when trying to
get Squeak to work with VNC. After looking in the VM code (sqXwindos.c
- see below) it showed that Squeak does not support every possible X
configuration when it comes to colors.

I changed VNC to use PsuedoColors with 256 colors and everything works
great. So I suggest that you check your colordepth that X uses, if its
256 you have to raise it to 65536 or change your color support from
TrueColor/DirectColor to PseudoColor.

Exerpt from: ftp://alix.inria.fr/pub/squeak/unix/Squeak/src/sqXWindow.c
----
switch (stVisual->class)
    {
    case PseudoColor:
      if (stBitsPerPixel == 8)
        break;
      else
        {
          fprintf(stderr, "This visual class is not supported\n");
          exit(1);
          return;
        }
    case TrueColor:
    case DirectColor:
      getMaskbit(stVisual->red_mask,   &stRNMask, &stRShift);
      getMaskbit(stVisual->green_mask, &stGNMask, &stGShift);
      getMaskbit(stVisual->blue_mask,  &stBNMask, &stBShift);
      if (stBitsPerPixel == 16)
        {
          stHasSameRGBMask16= (stVisual->red_mask   == (0x1f << 10) &&
                               stVisual->green_mask == (0x1f << 5) &&
                               stVisual->blue_mask  == (0x1f));
          break;
        }
      else if (stBitsPerPixel == 32)
        {
          stHasSameRGBMask32= (stVisual->red_mask   == (0xff << 16) &&
                               stVisual->green_mask == (0xff << 8) &&
                               stVisual->blue_mask  == (0xff));
          break;
        }
      else
        {
          fprintf(stderr, "This visual class is not supported\n");
          exit(1);
          return;
        }
    case GrayScale:
    case StaticColor:
    case StaticGray:
    default:
      fprintf(stderr, "This visual class is not supported\n");
      exit(1);
      return;
    }

-----

So reading this correct I assume that 256 colors is OK in PseudoColor
but when using TrueColor or DirectColor you need 65536 or ~2 million
colors (16 or 32 bits).

Wll, that's my two cents.

regards, G–ran


===
G–ran Hultgren, gohu at rocketmail.com, icq#:6136722
GSM: +46 709 472152, http://195.22.65.4
"First they ignore you. Then they laugh at you.
Than they fight you. Then you win." -- Gandhi
_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com





More information about the Squeak-dev mailing list