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