*BSD News Article 20508


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!spool.mu.edu!news.clark.edu!netnews.nwnet.net!news.uoregon.edu!cs.uoregon.edu!nntpserver!mike
From: mike@majestix.cs.uoregon.edu (Michael John Haertel)
Newsgroups: comp.os.386bsd.questions
Subject: NetBSD 0.9: Building Xfree86-1.3 from source?
Date: 6 Sep 93 12:30:03
Organization: CS Dept, University of Oregon
Lines: 59
Message-ID: <MIKE.93Sep6123003@majestix.cs.uoregon.edu>
NNTP-Posting-Host: majestix.cs.uoregon.edu

I have been trying to build XFree86-1.3 from source under NetBSD 0.9.
My machine is an EISA 486 with a wd90c31 video chip on the motherboard.
I am running the generic "ahbbt" kernel from the NetBSD 0.9 distribution
floppy; I have not yet configured my own kernel.  The distribution kernel
appears to have XSERVER configured in.

Unfortunately, the stock XFree source distribution does not compile.
The problem lies in various server/ddx/x386/common files which expect an
#include file called <sys/ioctl_pc.h> to exist.  Apparently this file
existed in 386bsd, but was removed from NetBSD as part of the cleanup
of PC dependencies from the mainstream source.  In addition, various
x386/common source files seem to believe in some ioctls and struct types
that NetBSD doesn't have.  It appears that most of these come from some
sort of add-on/replacement console driver called "codrv".  I have not
had time to track that down, and in any case the stock (i386/isa/pccons.c)
driver looks like it ought to provide minimal support for X.

I attempted to kludge around several problems:

	I created an ioctl_pc.h file containing #defines for
	the three CONSOLE_X_* ioctls recognized in pccons.c.
	(Why aren't these in a /usr/include file somewhere?)

	I #ifdef'd out any code that failed to compile that
	looked like it was related to codrv.

	I #ifdef'd out code related to setting the keyboard LEDs;
	it looks like pccons.c will do this itself, and in
	any case the relevant ioctls are gone in NetBSD 0.9.

	I symlinked /dev/console to /dev/vga.

At this point, everything compiled and installed.  I then attempted to
start up X using an Xconfig file that I had debugged under Linux.
(Incidentally, XFree-1.3 compiled and installed just fine under
Linux.)

Then, I started it up.
I got the usual stuff about VGA clocks.
Then the screen blanked and it switched display modes.
Then, the text screen flickered back on momentarily,
and the machine rebooted.  If it printed any thing
after the text screen came on, I didn't have time to
see before the BIOS boot screen took over.

I'm not actually sure whether the text screen came
back due to XFree, or whether at that point the machine
had already rebooted and the text screen came back
because of the BIOS.

Does anybody have any suggestions?  Has anybody succeeded in getting
XFree to compile and run under stock NetBSD 0.9?  If so, could you
please send me your patches to the x386/common files?  I may well have
succeeded in eliminating something crucial while #ifdef'ing out
various apparent codrv-related stuff, but I don't know enough about
the X server sources and/or VGA hardware to know what to look for.

Please don't tell me to get someone else's precompiled binaries.
I prefer to know what the hell is going on. :-)