vesa driver reports many modes, but only allows a few

Pat Kane pekane52 at gmail.com
Thu Mar 4 06:01:54 PST 2010


Here is an untest, not even compiled, patch to try:

diff --git a/hw/xfree86/common/xf86Configure.c
b/hw/xfree86/common/xf86Configure.c
index bce5aae..a8d8ef9 100644
--- a/hw/xfree86/common/xf86Configure.c
+++ b/hw/xfree86/common/xf86Configure.c
@@ -828,7 +828,9 @@ DoConfigure(void)
        ConfiguredMonitor = NULL;

        xf86EnableAccess(xf86Screens[dev2screen[j]]);
-       if ((*xf86Screens[dev2screen[j]]->PreInit)(xf86Screens[dev2screen[j]],
+
+       if ((*xf86Screens[dev2screen[j]]->PreInit) &&
+           (*xf86Screens[dev2screen[j]]->PreInit)(xf86Screens[dev2screen[j]],
                                                   PROBE_DETECT) &&
            ConfiguredMonitor) {
            MonitorPtr = configureDDCMonitorSection(j);


Pat
---


On Thu, Mar 4, 2010 at 7:52 AM, Pat Kane <pekane52 at gmail.com> wrote:
>  Ross Boylan <ross at biostat.ucsf.edu> wrote:
>   > Program received signal SIGSEGV, Segmentation fault.
>   > 0x0000000000000000 in ?? ()
>   > (gdb) where
>   > #0  0x0000000000000000 in ?? ()
>   > #1  0x000000000051a72a in DoConfigure ()
>   > at ../../../../hw/xfree86/common/xf86Configure.c:832
>
> The traceback says that someone branched to zero at
> line 832 of hw/xfree86/common/xf86Configure.c, that
> section of code (from git master) looks like this:
>
>        ConfiguredMonitor = NULL;
>
>        xf86EnableAccess(xf86Screens[dev2screen[j]]);
>        if ((*xf86Screens[dev2screen[j]]->PreInit)(xf86Screens[dev2screen[j]],
> 832:                                             PROBE_DETECT) &&
>            ConfiguredMonitor) {
>            MonitorPtr = configureDDCMonitorSection(j);
>        } else {
>            MonitorPtr = configureMonitorSection(j);
>        }
>
> So it appears that the expression:
>    (*xf86Screens[dev2screen[j]]->PreInit)
> is NULL;  it would be a good idea for that code to check
> if PreInit has been filled in before jumping through it.
>
> Can you recompile the X server with a test for NULL?
>
> Pat
> ---
>
>
> On Wed, Mar 3, 2010 at 6:12 PM, Ross Boylan <ross at biostat.ucsf.edu> wrote:
>> On Wed, 2010-03-03 at 15:41 -0600, Pat Kane wrote:
>>> Could you run the configure under gdb to see if you get a better trace back?
>>>
>>>     $gdb  Xorg
>>>       :r -configure
>>>
>>> could be some xemu hw emulated hw weirdness...
>>>
>> I also loaded some debug symbols.
>>
>> [tcsetpgrp failed in terminal_inferior: Operation not permitted]
>> (++) Using config file: "/root/xorg.conf.new"
>> (EE) open /dev/fb0: No such file or directory
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x0000000000000000 in ?? ()
>> (gdb) where
>> #0  0x0000000000000000 in ?? ()
>> #1  0x000000000051a72a in DoConfigure ()
>> at ../../../../hw/xfree86/common/xf86Configure.c:832
>> #2  0x0000000000471c17 in InitOutput (pScreenInfo=0x7d5a80, argc=<value
>> optimized out>, argv=<value optimized out>)
>> at ../../../../hw/xfree86/common/xf86Init.c:610
>> #3  0x0000000000425a25 in main (argc=2, argv=0x7fffffffe258, envp=<value
>> optimized out>) at ../../dix/main.c:203
>>
>> Ross
>>
>>>
>>> On Tue, Mar 2, 2010 at 1:04 PM, Ross Boylan <ross at biostat.ucsf.edu> wrote:
>>> > On Tue, 2010-03-02 at 05:34 -0600, Pat Kane wrote:
>>> >> On Mon, Mar 1, 2010 at 2:35 PM, Ross Boylan <ross at biostat.ucsf.edu> wrote:
>>> >> > Do I need to create a complete xorg.conf?
>>> >>
>>> >>
>>> >> The command "Xorg -configure"  will create one for you.
>>> > Hooray!  With some hacking I got it working.  However, I want to report
>>> > that Xorg -configure generated a segfault, and I'd like to improve my
>>> > understanding of how configuration works.
>>
>>
>



More information about the xorg mailing list