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-3470dcmartin@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