vbetool should subsume ddcprobe, use x86emu

Bug #8177 reported by Shawn Walker
84
This bug affects 1 person
Affects Status Importance Assigned to Milestone
vbetool (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

This is on an amd64 system using a Radeon 9800 Pro and a Sony Multiscan E400
Analaog monitor.

The installer defaulted my refresh rate to 60hz for 1280x1024.

The correct HorizSync for my monitor is 30-96, the correct VertRefresh is 48-120.

ubuntu@mindshadow ~ $ sudo /usr/sbin/xresprobe radeon
id:
res:
freq:

ubuntu@mindshadow ~ $ ddcprobe
VESA BIOS Extensions not detected.

Revision history for this message
Daniel Stone (daniels) wrote :

Yep -- the problem is that we're totally unable to do DDC probing on AMD64 right
now; it's on my TODO list for next week.

Revision history for this message
Shawn Walker (adonijah) wrote :

I know your time is limited, but it would neat to know why exactly. *Maybe* I
can fix it for you :)

Revision history for this message
Daniel Stone (daniels) wrote :

When we do a DDC probe to extract the list of supported resolutions, we have to
communicate with the card directly to query the monitor. That's always going to
hurt. On PowerPC, we are mercifully provided with a file called 'EDID' or some
variation thereof; on i386, we drop into real mode and make a VESA BIOS call (to
the video BIOS). It's just that I haven't been through the code available to do
it on amd64 and see how it happens.

Revision history for this message
Matt Zimmerman (mdz) wrote :

Give me a shout and I can set you up with a shell on an amd64 box to test this

(preferably while I'm asleep, since it requires hooking a monitor up to it
directly...no DDC through the KVM)

Revision history for this message
Matt Zimmerman (mdz) wrote :

Created an attachment (id=101)
probeonly log from an amd64 system using the vesa driver

Revision history for this message
Daniel Stone (daniels) wrote :

Since this is not great, jacking severity up from normal->major.

Revision history for this message
Shawn Walker (adonijah) wrote :

In my limited research of how various distributions accomplish this task, it
appears that none of the amd64 distributions I'm aware of (Mandrake, RedHat,
SuSE, Knoppix, Fedora) use ddcprobe to find monitor info. Almost all of them
seem to use ddcxinfo or use the same code X does to probe the monitor information.

Revision history for this message
Daniel Stone (daniels) wrote :

(sigh.)

The only code I found to do VBE (VESA BIOS Extensions; unless you want to steal
X's special-case code for every card, the only way to do DDC probes on
i386/amd64) is an entire x86 emulator, which later calls out to int 10h; it's
crack. If someone who has more skill with ASM and amd64 wants to hack this up,
great, but I'm not sure I can in the timeframe.

Revision history for this message
Matt Zimmerman (mdz) wrote :

What is the net effect of this bug? That all amd64 users will be asked the
modes question during install?

Revision history for this message
Daniel Stone (daniels) wrote :

Yep.

Revision history for this message
Matt Zimmerman (mdz) wrote :

*** Bug 8942 has been marked as a duplicate of this bug. ***

Revision history for this message
Matt Zimmerman (mdz) wrote :

This is something that ought to be addressed for Hoary. If there is no code
available to do the probe, please see if you can track down someone who could
write it.

Revision history for this message
Daniel Stone (daniels) wrote :

In the X server, there is x86 emulation code for AMD64 which handles the VESA
case, but every driver also has its own specific (i.e. not poking int10) DDC
routines. Fabio and I have been discussing the possibility of maybe using the
X.Org server's autoconfiguration stuff for this, but nothing has been decided yet.

Revision history for this message
Daniel Stone (daniels) wrote :

(depends: wtf? removed.)

Revision history for this message
Daniel Stone (daniels) wrote :

Punted to hoary+1 per IRC discussion; retitling to reflect reality.

Revision history for this message
Daniel Stone (daniels) wrote :

*** Bug 15470 has been marked as a duplicate of this bug. ***

Revision history for this message
Daniel Stone (daniels) wrote :

*** Bug 17415 has been marked as a duplicate of this bug. ***

Revision history for this message
Daniel Stone (daniels) wrote :

*** Bug 20390 has been marked as a duplicate of this bug. ***

Daniel Stone (daniels)
Changed in vbetool:
assignee: daniels → nobody
Revision history for this message
Tero Karvinen (karvinen+launchpad) wrote : 32 bits has wrong resolution too

I have exactly the same problem with a normal 32 bit PC and the same E400 monitor mentioned above. Resolution is wrong, 640x480, 60 Hz. Some bugs marked as duplicates don't mention 64bits either.

Hardware.
- Sony Multiscan E400 19" Trinitron CRT monitor
- Pentium III coppermine 800MHz 32 bits
- Matrox Graphics, Inc. MGA G400 AGP 32 MB

Software:
Ubuntu Dapper 6.06 LTS Desktop Live CD

After boot, my resolution is 640x480, 60 Hz. Should be 1280x1024, 85 Hz (Monitor Menu: Help: Recommended resolution). Can be fixed on installed system by modifying xorg.conf.

$ sudo ddcprobe # with linebreaks removed
vbe: VESA 2.0 detected. oem: Matrox Graphics Inc. memory: 32768kb
mode: 640x400x256 mode: 640x480x256 mode: 800x600x16 mode: 800x600x256 mode: 640x480x32k mode: 640x480x64k mode: 640x480x16m
mode: 800x600x32k mode: 800x600x64k mode: 800x600x16m mode: 132x43 (text) edidfail

$ sudo xresprobe nv
id:
res:
freq:
disptype:

Revision history for this message
will_in_wi (will-in-wi) wrote :

Is this bug fixed in Gutsy/Hardy? I have an amd64 machine and I got an accurate monitor detection. I think that this is fixed with the inclusion of Xorg 7.2.

Revision history for this message
Daniel Hahler (blueyed) wrote :

As far as I know, xresprobe/ddcprobe does not get used anymore in Hardy, so this has been worked around.

Changed in vbetool:
status: Confirmed → Fix Released
Revision history for this message
epeeist04 (epeeist01) wrote :

I had perhaps a similar problem. AMD64 GeForce7300 working fine in Gutsy broke on upgrade to Hardy. Could only get 640x480 and 800x600 resolutions. Now, before I knew what was wrong I tried many many things, so perhaps several variables were in play here, but in the end the way I fixed it was commenting out the "Device" and "Monitor" sections from my /etc/X11/xorg.conf. They were just dummy sections anyway:

#Section "Device"
# Identifier "Configured Video Device"
#EndSection

#Section "Monitor"
# Identifier "Configured Monitor"
#EndSection

After I did this, it seems that Hardy looked for the EDID info, found everything fine and I was on my way. But for some reason, during the upgrade it may have added those sections (or they got added in my post-install flailing to fix the problem).

Revision history for this message
Anders (lappen) wrote :

How is this solved?
Im guessing the workaround is using EDID to fetch display info

Im trying to use DDC/CI to query/control my monitor and ddcprobe seems to be one way to do it but the only thing i get is "VESA BIOS Extensions not detected."

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.