Re: Problem with X starting when certain USB configurations exist

2016-03-09 Thread Adam Jackson
On Tue, 2016-03-08 at 16:10 -0800, russell.poffenber...@xcerra.com wrote:

> So could there be a bug, or a newer (read fixed) int10 driver in the
> Centos 7 version that can be ported to Centos 6.7? Where can I find
> the package or code for this driver that I may be able to compile for
> Centos 6.7? 

Interesting. CentOS 7 might behave differently, but it's very unlikely
to be the X server or X vesa driver causing that difference; the X code
supporting vesa is basically identical between 6.7 and 7.1. It's more
likely to be a difference in the boot loader (grub-0.97 vs. grub2) or
in the kernel.

- ajax
___
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: https://lists.x.org/mailman/listinfo/xorg
Your subscription address: %(user_address)s

Re: Problem with X starting when certain USB configurations exist

2016-02-25 Thread Adam Jackson
On Tue, 2016-02-23 at 13:12 -0800, russell.poffenber...@xcerra.com wrote:

> What happens is that the X server will not start. The relevant lines from the 
> X log appears to be.. 
> 
> [   561.239] (II) Loading /usr/lib64/xorg/modules/libint10.so 
> [   561.240] (II) Module int10: vendor="X.Org Foundation" 
> [   561.240]         compiled for 1.15.0, module version = 1.0.0 
> [   561.240]         ABI class: X.Org Video Driver, version 15.0 
> [   561.240] (II) VESA(0): initializing int10 
> [   561.240] (EE) VESA(0): V_BIOS address 0x367f0 out of range 

That's probably a firmware bug.

The vesa driver operates by executing the video BIOS code in a real-
mode emulator. It expects this code to be located between addresses
0xc and 0xf (ie, where the BIOS lives in the low 1M of RAM in
the classic DOS model). To verify this expectation, it examines the
software interrupt vector table and checks that it will jump to an
address in that range, since int 0x10 and 0x42 are the DOS VBIOS
service vectors.

For some reason, when you plug in a USB device, the firmware is
patching those vectors to point to an address lower than 0xc. (If I
had to guess, it's paging in some code to handle USB hubs so it can
handle keyboards behind those hubs, and needs to move some video code
out of the way to make room; why it bothers to do this after the OS
loads, I couldn't imagine, but there may be a BIOS configuration option
to make it stop doing that.) Since the vesa driver doesn't have code to
map the memory there, it knows that can't work, and refuses to try.

I'm reasonably sure CentOS 6 supports booting in UEFI mode, so if you
boot in UEFI mode instead of BIOS, you should get efifb for the kernel
video device and fbdev for the X driver, which won't have this problem.
The problem you will have instead is that efifb can't resize the
display, so if the video mode set up by the firmware at boot is wrong
there will be no fixing it. But booting in UEFI mode is probably good
advice on modern Intel systems in any case, the BIOS path routinely has
issues and seems to get much less QA than UEFI.

Alternatively, you can wait to see if CentOS 6.8 has native 2D support
for Skylake.

- ajax
___
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: https://lists.x.org/mailman/listinfo/xorg
Your subscription address: %(user_address)s

Problem with X starting when certain USB configurations exist

2016-02-23 Thread russell . poffenberger
Hi,

I am having a problem with a Centos 6.7 installation with  the latest 
patches (2.6.32-573.18.1.el6.x86_64). The X server  version is 
1.15.0-36.el6.centos
The motherboard is a SuperMicro X11SSV-Q. This is an i7-6700 CPU and Q170 
chipset.
It has a built-in intel graphics chip.

The system works fine, until I plug in some combinations of USB hubs. For 
example, I have an 8 port USB 3.0 hub (based on the VIA chip), but also 
some combinations of USB 2.0 hubs also cause the problem. A single 
Terminus USB 2.0 7 port hub by itself is fine, but adding a second hub 
does not work.

What happens is that the X server will not start. The relevant lines from 
the X log appears to be..

[   561.239] (II) Loading /usr/lib64/xorg/modules/libint10.so
[   561.240] (II) Module int10: vendor="X.Org Foundation"
[   561.240]compiled for 1.15.0, module version = 1.0.0
[   561.240]ABI class: X.Org Video Driver, version 15.0
[   561.240] (II) VESA(0): initializing int10
[   561.240] (EE) VESA(0): V_BIOS address 0x367f0 out of range
[   561.240] (II) UnloadModule: "vesa"
[   561.240] (II) UnloadSubModule: "int10"
[   561.240] (II) Unloading int10
[   561.240] (II) UnloadSubModule: "vbe"
[   561.240] (II) Unloading vbe
[   561.240] (EE) Screen(s) found, but none have a usable configuration.
[   561.240] (EE) 
Fatal server error:
[   561.240] (EE) no screens found(EE) 
[   561.240] (EE) 
Please consult the CentOS support 
 at http://wiki.centos.org/Documentation
 for help. 
[   561.240] (EE) Please also check the log file at "/var/log/Xorg.5.log" 
for additional information.
[   561.240] (EE) 
[   561.241] (EE) Server terminated with error (1). Closing log file.

It is the V_BIOS address out of range that appears to be the problem.
When I don't have the problem USB hubs installed, then the same section of 
the log file is fine..

[11.385] (II) Loading /usr/lib64/xorg/modules/libint10.so
[11.385] (II) Module int10: vendor="X.Org Foundation"
[11.385]compiled for 1.15.0, module version = 1.0.0
[11.385]ABI class: X.Org Video Driver, version 15.0
[11.385] (II) VESA(0): initializing int10
[11.385] (II) VESA(0): Primary V_BIOS segment is: 0xc000
[11.387] (II) VESA(0): VESA BIOS detected
[11.387] (II) VESA(0): VESA VBE Version 3.0
[11.387] (II) VESA(0): VESA VBE Total Mem: 32704 kB
[11.387] (II) VESA(0): VESA VBE OEM: Intel(R) SKL Mobile/Desktop 
Graphics Chipset Accelerated VGA BIOS
[11.387] (II) VESA(0): VESA VBE OEM Software Rev: 0.0
[11.421] (II) VESA(0): Creating default Display subsection in Screen 
section
"Default Screen Section" for depth/fbbpp 24/32

This happens whether the hubs are active at boot time (in which case the X 
server never starts), or if I plug the hub after booting, in which case if 
I log off, then the X server does not restart.

Any help would be greatly appreciated.

Thanks,

-
Russ Poffenberger | System Architecture Group
Phone:  +1 / 408 / 635-6049
russell.poffenber...@xcerra.com
Xcerra Corporation, LTX/Credence Division
1355 California Circle
Milpitas, CA 95035, USA
-___
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: https://lists.x.org/mailman/listinfo/xorg
Your subscription address: %(user_address)s