[comp.windows.x] X for color sun 3/60

sid@llama.rtech.UUCP (Sid Shapiro) (11/18/87)

Hi there,
We have a color sun 3/60 that we are trying to run X on.  The
get-sun-type ioctl is returning the wrong values for the frame buffer.
Sun Tech support says it is a known problem, but that "some one on the
net has solved the problem".  Has someone out there solved this?  If
there a port of X (or patchs to  - well, I suppose 11 would be best,
but I'll take 10 -) that will correctly work with the color fb?  Oh
yeah, this is Sun OS/3.4 .
Thanks,
-- 
Sid Shapiro -- Relational Technology, Inc
	{mtxinu,cpsc6a}!rtech!sid
	(415)748-3470

dcmartin@POSTGRES.BERKELEY.EDU (David C. Martin) (11/18/87)

Sun tech support can't read manuals, apparently.  I have been hacking on 
10.4 to support the cg4 and the file is available for public ftp from
postgres.Berkeley.EDU.  If you can't get ftp access, let me know and I will
see that Joe Cortopossi gets a tape.

Anyway, in addition to the fixes for the cg4, there are some enhancements of
the basic Sun implementation (for dashed lines, etc...).  As for the ioctl
problem, this solves it:

    if ((fd = open(DEV_FB, O_RDWR, 0)) < 0) {
        fprintf(stderr, "Can't open device %s\n", DEV_FB);
        return(-1);
    }
    /* attempt to get attributes */
    if (ioctl(fd, FBIOGATTR, (char *) &fbgattr) < 0) {
        /* standard ioctl since cg4 special failed */
        if (ioctl(fd, FBIOGTYPE, (char *) &fbt) < 0) {
	    /* oops! */
            fprintf(stderr, "Can't access device %s.\n", DEV_FB);
            close(fd);
            return(-1);
        }
    } else {
        /* set video display to emulate itself */
        fbgattr.sattr.emu_type = fbgattr.real_type;
        /* do the ioctl */
        if (ioctl(fd, FBIOSATTR, (char *) &fbgattr.sattr) < 0) {
            fprintf(stderr, "Can't set the attribute emulation type");
            close(fd);
            return(-1);
        }
        /* use fbtype structure for real device */
        fbt = fbgattr.fbtype;
    }
    close(fd);

dcm