[oi-dev] Error from the vesa driver (Was: libdrm-2.4.75 is too old)

Gary Mills gary_mills at fastmail.fm
Mon Jun 1 14:20:30 UTC 2020


I just put together a desktop system using this CPU:

    Intel Core i3-9100 Coffee Lake 4-Core 3.6 GHz (4.2 GHz Turbo)
    LGA 1151 (300 Series) 65W BX80684I39100 Desktop Processor
    Intel UHD Graphics 630

and this motherboard:

    ASUS PRIME B360M-A LGA1151 (300 Series) DDR4 HDMI DVI VGA
    M.2 mATX Motherboard

It has 8GB (2 x 4GB) of DDR4-2400 memory, using KCP424NS6/4 DIMMs.

I tried booting this USB image: OI-hipster-gui-20200504.usb .

I made no changes to the BIOS setup.

The BIOS setup runs, the OI loader runs, and it boots OI from the
flash memory stick.  OI requests the language and reports that the
lightdm service has failed.  I can log in on the console as jack
and log in remotely as jack.

The Xorg log (/var/log/Xorg.0.log) shows that the vesa driver has
failed.  Errors are prefixed with EE:

    [   522.277] 
    X.Org X Server 1.19.7
    Release Date: 2019-03-02
    [   522.277] X Protocol Version 11, Revision 0
    [   522.277] Build Operating System: SunOS 5.11 i86pc 
    [   522.277] Current Operating System: SunOS openindiana 5.11 illumos-45de8795bc i86pc
    [   522.277] Build Date: 31 March 2020  06:51:43PM
    [   522.277] Solaris ABI: 64-bit 
    [   522.277] Current version of pixman: 0.38.0
    [   522.277]    Before reporting problems, check http://openindiana.org
            to make sure that you have the latest version.
    [   522.277] Markers: (--) probed, (**) from config file, (==) default setting,
            (++) from command line, (!!) notice, (II) informational,
            (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    [   522.277] (==) Log file: "/var/log/Xorg.0.log", Time: Sun May 31 13:20:59 2020
    [   522.277] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
    [   522.277] (==) No Layout section.  Using the first Screen section.
    [   522.277] (==) No screen section available. Using defaults.
    [   522.277] (**) |-->Screen "Default Screen Section" (0)
    [   522.277] (**) |   |-->Monitor "<default monitor>"
    [   522.277] (==) No monitor specified for screen "Default Screen Section".
            Using a default monitor configuration.
    [   522.277] (==) Automatically adding devices
    [   522.277] (==) Automatically enabling devices
    [   522.277] (==) Not automatically adding GPU devices
    [   522.277] (==) Max clients allowed: 256, resource mask: 0x1fffff
    [   522.277] (==) FontPath set to:
            catalogue:/etc/X11/fontpath.d
    [   522.277] (==) ModulePath set to "/usr/lib/xorg/modules/amd64,/usr/X11/lib/modules/"
    [   522.278] (II) The server relies on HAL to provide the list of input devices.        If no devices become available, reconfigure HAL or disable AutoAddDevices.
    [   522.278] (II) Loader magic: 6f9020
    [   522.278] (II) Module ABI versions:
    [   522.278]    X.Org ANSI C Emulation: 0.4
    [   522.278]    X.Org Video Driver: 23.0
    [   522.278]    X.Org XInput driver : 24.1
    [   522.278]    X.Org Server Extension : 10.0
    [   522.279] (--) PCI:*(0:0:2:0) 8086:3e91:1043:8694 rev 0, Mem @ 0xa0000000/16777216, 0x90000000/268435456, I/O @ 0x00004000/64
    [   522.280] (II) LoadModule: "glx"
    [   522.280] (II) Loading /usr/lib/xorg/modules/extensions/amd64/libglx.so
    [   522.283] (II) Module glx: vendor="X.Org Foundation"
    [   522.283]    compiled for 1.19.7, module version = 1.0.0
    [   522.283]    ABI class: X.Org Server Extension, version 10.0
    [   522.283] (==) Matched intel as autoconfigured driver 0
    [   522.283] (==) Matched vesa as autoconfigured driver 1
    [   522.283] (==) Assigned the driver to the xf86ConfigLayout
    [   522.283] (II) LoadModule: "intel"
    [   522.283] (II) Loading /usr/lib/xorg/modules/drivers/amd64/intel_drv.so
    [   522.283] (II) Module intel: vendor="X.Org Foundation"
    [   522.283]    compiled for 1.19.5, module version = 2.99.917
    [   522.283]    Module class: X.Org Video Driver
    [   522.283]    ABI class: X.Org Video Driver, version 23.0
    [   522.283] (II) LoadModule: "vesa"
    [   522.283] (II) Loading /usr/lib/xorg/modules/drivers/amd64/vesa_drv.so
    [   522.284] (II) Module vesa: vendor="X.Org Foundation"
    [   522.284]    compiled for 1.19.5, module version = 2.4.0
    [   522.284]    Module class: X.Org Video Driver
    [   522.284]    ABI class: X.Org Video Driver, version 23.0
    [   522.284] (II) intel: Driver for Intel(R) Integrated Graphics Chipsets:
            i810, i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G,
            915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM,
            Pineview G, 965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33,
            GM45, 4 Series, G45/G43, Q45/Q43, G41, B43
    [   522.284] (II) intel: Driver for Intel(R) HD Graphics
    [   522.284] (II) intel: Driver for Intel(R) Iris(TM) Graphics
    [   522.284] (II) intel: Driver for Intel(R) Iris(TM) Pro Graphics
    [   522.284] (II) VESA: driver for VESA chipsets: vesa
    [   522.284] (++) using VT number 7
    
    [   522.285] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support[   522.285] (II) Loading sub module "vbe"
    [   522.285] (II) LoadModule: "vbe"
    [   522.285] (II) Loading /usr/lib/xorg/modules/amd64/libvbe.so
    [   522.285] (II) Module vbe: vendor="X.Org Foundation"
    [   522.285]    compiled for 1.19.7, module version = 1.1.0
    [   522.285]    ABI class: X.Org Video Driver, version 23.0
    [   522.285] (II) Loading sub module "int10"
    [   522.285] (II) LoadModule: "int10"
    [   522.285] (II) Loading /usr/lib/xorg/modules/amd64/libint10.so
    [   522.285] (II) Module int10: vendor="X.Org Foundation"
    [   522.285]    compiled for 1.19.7, module version = 1.0.0
    [   522.285]    ABI class: X.Org Video Driver, version 23.0
    [   522.285] (II) VESA(0): initializing int10
    [   522.285] (EE) VESA(0): V_BIOS address 0x90000 out of range
    [   522.285] (II) UnloadModule: "vesa"
    [   522.285] (II) UnloadSubModule: "int10"
    [   522.285] (II) Unloading int10
    [   522.285] (II) UnloadSubModule: "vbe"
    [   522.285] (II) Unloading vbe
    [   522.286] (EE) Screen(s) found, but none have a usable configuration.
    [   522.286] (EE) 
    Fatal server error:
    [   522.286] (EE) no screens found(EE) 
    [   522.286] (EE) 
    Please consult the Project OpenIndiana support 
             at http://openindiana.org
     for help. 
    [   522.286] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
    [   522.286] (EE) 
    [   522.923] (EE) Server terminated with error (1). Closing log file.

The Intel video device looks like this in `scanpci -v':

    pci bus 0x0000 cardnum 0x02 function 0x00: vendor 0x8086 device 0x3e91
     Intel Corporation 8th Gen Core Processor Gaussian Mixture Model
     CardVendor 0x1043 card 0x8694 (ASUSTeK Computer Inc., Card unknown)
      STATUS    0x0010  COMMAND 0x0007
      CLASS     0x03 0x00 0x00  REVISION 0x00
      BIST      0x00  HEADER 0x00  LATENCY 0x00  CACHE 0x10
      BASE0     0x00000000a0000000 SIZE 16777216  MEM64
      BASE2     0x0000000090000000 SIZE 268435456  MEM64 PREFETCHABLE
      BASE4     0x00004000 SIZE 64  I/O
      MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0xff

The `out of range' error message comes from this code in the int10
sub-module:

    #define CHECK_V_SEGMENT_RANGE(x)   \
        if (((x) << 4) < V_BIOS) { \
            xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, \
                       "V_BIOS address 0x%lx out of range\n", \
                       (unsigned long)(x) << 4); \
            return FALSE; \
        }
    
    Bool
    xf86int10GetBiosSegment(xf86Int10InfoPtr pInt, void *base)
    {
        unsigned i;
        int cs = ~0;
        int segments[4];
    
        segments[0] = MEM_RW(pInt, (0x10 << 2) + 2);
        segments[1] = MEM_RW(pInt, (0x42 << 2) + 2);
        segments[2] = V_BIOS >> 4;
        segments[3] = ~0;
    
        for (i = 0; segments[i] != ~0; i++) {
            unsigned char *vbiosMem;
    
            cs = segments[i];
    
            CHECK_V_SEGMENT_RANGE(cs);
            vbiosMem = (unsigned char *) base + (cs << 4);
            if (int10_check_bios(pInt->pScrn->scrnIndex, cs, vbiosMem)) {
                break;
            }
        }
    
        if (segments[i] == ~0) {
            xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, "No V_BIOS found\n");
            return FALSE;
        }
    
        xf86DrvMsg(pInt->pScrn->scrnIndex, X_INFO, "Primary V_BIOS segment is: 0x%lx\n",
                   (unsigned long) cs);
    
        pInt->BIOSseg = cs;
        return TRUE;
    }

I assume that the error stems from a calculation error in that
sub-module, as it's unlikely there's actually an error in the video
device.  Other people must have encountered the same error, but may
have not seen the Xorg log file.


-- 
-Gary Mills-		-refurb-		-Winnipeg, Manitoba, Canada-




More information about the oi-dev mailing list