*BSD News Article 6039


Return to BSD News archive

Path: sserve!manuel!munnari.oz.au!uunet!mcsun!Germany.EU.net!unidui!du9ds3!veit
From: veit@du9ds3.uni-duisburg.de (Holger Veit)
Newsgroups: comp.unix.bsd
Subject: Re: X386 gives a bus error in ET4000EnterLeave()
Date: 5 Oct 92 09:30:51 GMT
Organization: Uni-Duisburg FB9 Datenverarbeitung
Lines: 70
Message-ID: <veit.718277451@du9ds3>
References: <48243@shamash.cdc.com>
Reply-To: veit@du9ds3.uni-duisburg.de
NNTP-Posting-Host: du9ds3.uni-duisburg.de

In <48243@shamash.cdc.com> pbd@runyon.cim.cdc.com (Paul Dokas) writes:

>I've completely rebuilt X11R5 from the original (patched) MIT source
>and now I'm trying to run it, but typing "X386 :0" results in:

>       X386 Version 1.2E 1.0.1  / X Window System
>       (protocol Version 11, revision 0, vendor release 5000)
>       Bus error

>:-(

>My SVGA card is a et4000 card (Diamond SpeedStar Plus) in a generic
>386.  I've tried several different Xconfig's, but there seems to be
>little difference:

> .
> .
> .
>#
># The graphics drivers
>#
>vga256
>  chipset "et4000"
>  videoram 1024
>  viewport 0 0
>  virtual 1024 1024
>  clocks 25 28 65 72 79 59 64
>  modes "640x480" "800x600" "1024x768"

>ModeDB
>#Modename    clock  horzontal timing      vertical timing
> "640x480"   25     640  664  760  800    480  491  493  525
> "800x600"   36     800  824  896 1024    600  601  603  625
>             40     800  840  968 1056    600  601  605  628
> "1024x768"  65    1024 1088 1200 1328    768  783  789  818

>I've run X386 through gdb and found that it's dying on line 398
>of et4000/driver4.c, which is:

>      vgaIOBase = (inb(0x3CC) & 0x01) ? 0x3D0 : 0x3B0;

>(actually in the inb() which is an inline function found in ../../compiler.h)
>So it seems that I can't read/write to the needed ports. Anyone have any
>suggestions?  Am I SOL because of the Diamond card?  I thought that the
>proprietary clocks were only on the newer cards like the Stealth.

>BTW, I've patched and rebuilt my kernel with the XSERVER patches.  I've
>also created a /dev/vga with "mknod /dev/vga c 12 0".

>-- 
>#include <std.disclaimer>
>#define FULL_NAME                          "Paul Dokas"
>#define EMAIL                              "pbd@runyon.cim.cdc.com"
>/* we are realizing infinite possibilities in exchange for our soul */

This problem at inb/outb occurs when the xserver does not run in the 
protection ring 0. The kernel patches to pccons accomplish that in the
CONSOLE_X_MODE_ON/OFF ioctl's. If they are not present, you get this 
fault. Also the xserver must be setuid root.
BTW, a simple stupid question: you may have done the XSERVER patches, but
did you rebuild the kernel with the XSERVER option in your config file,
and did you do a make depend?

Holger

-- 
|  |   / Dr. Holger Veit         | INTERNET: veit@du9ds3.uni-duisburg.de
|__|  /  University of Duisburg  | "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|  | /   Dept. of Electr. Eng.   |   Sorry, the above really good fortune has
|  |/    Inst. f. Dataprocessing |      been CENSORED because of obscenity"