Bug 15937

Summary: NoDDC option doesn't work for trident cyberblade/i1 resulting in system lockup
Product: xorg Reporter: Bryce Harrington <bryce>
Component: Driver/TridentAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: blocker    
Priority: medium CC: azurit3, diego.ml
Version: 7.3 (2007.09)   
Hardware: x86 (IA32)   
OS: Linux (All)   
URL: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-trident/+bug/223774
Whiteboard:
i915 platform: i915 features:

Description Bryce Harrington 2008-05-14 14:18:22 UTC
Forwarding report from Ubuntu:  https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-trident/+bug/223774

Sounds like trident needs autodetection added and/or needs DDC probing shut off to prevent lockups.

"it was possible get the display on a Toshiba Satellite 1800 working by editing the Device section of of /etc/X11/xorg.conf to have Option "NoDDC" "true". (vesa driver doesn't work either)

The display adaptor built into the laptop is a Trident CyberBlade/i1

It turns out that the right xorg.conf works (but not the autogenerated from Hardy, and for Gutsy it must be present before the install configures xserver-xorg or it'll hang during the configuration of that package), provided the NoDDC option is present.

http://launchpadlibrarian.net/14025687/Xorg.0.log.hardy

The xorg.conf I used in gutsy (and hardy when the default one failed) is derived one at from http://michaelminn.com/linux/toshiba1800/, the result of which looks like this:


# xorg.conf (X.Org X Window System server configuration file)
#
# Custom file by Michael Minn

Section "InputDevice"
 Identifier "Generic Keyboard"
 Driver "kbd"
 Option "XkbRules" "xorg"
 Option "XkbModel" "pc105"
 Option "XkbLayout" "us"
EndSection

Section "InputDevice"
 Identifier "Configured Mouse"
 Driver "mouse"
 Option "CorePointer"
 Option "Device" "/dev/input/mice"
 Option "Protocol" "ImPS/2"
EndSection

Section "Device"
    Identifier "Trident Microsystems CyberBlade/i1"
    Driver "trident"
    BusID "PCI:1:0:0"
    Option "NoDDC"
EndSection

Section "Monitor"
    Identifier "ToshLCD"
    Option "DPMS"
    HorizSync 30-71
    VertRefresh 50-100
EndSection

Section "Screen"
    Identifier "Default Screen"
    Monitor "ToshLCD"
    Device "Trident Microsystems CyberBlade/i1"
    DefaultDepth 24
    SubSection "Display"
        Depth 16
        Modes "1024x768" "800x600"
    EndSubSection
    SubSection "Display"
        Depth 24
        Modes "1024x768" "800x600"
    EndSubSection
EndSection

Section "ServerLayout"
 Identifier "Default Layout"
 Screen "Default Screen"
 InputDevice "Configured Mouse"
EndSection
Comment 1 Azurit3 2008-05-23 05:27:40 UTC
Change to severity blocker, there is no known workaround and xorg/gdm don't work.

I have a laptop(Compaq 1201EA) that had XP installed until today, running with no problem.
As I'm using mainly Ubuntu 8.04 in my Desktop since it came out, and I'm enjoying it, so I decided to install it in the laptop too.
I tried to install Ubuntu 8.04 with the x86 live CD,
but found the laptop monitor will hang.


Hoping in text mode the problem didn't exist, I downloaded the x86 alternate desktop CD to install in text mode, and installed Ubuntu without any problem.
The fist time my computer was booting the newly installed Ubuntu installation, the same problem occurred. The monitor hangs while starting Ubuntu, and it doesn't react to Ctr+Alt+F1 or Ctr+Alt+Backspace


To be able to start a session without gdm to crash I disable it, by booting in safe mode and:
update-rc.d -f gdm remove


after that I installed ssh server so I could login through my Desktop:
sudo apt-get install openssh-server


In my Desktop:
ssh 192.168.1.2
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install xresprobe
sudo apt-get install discover1
sudo apt-get install xserver-xorg-core-dbg
( tried to find xserver-xorg-video-trident-dbg but didn't found any. )
sudo update-rc.d -f gdm remove
sudo reboot


sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf_bak


sudo nano /etc/X11/xorg.conf
-----------------------
>Section "ServerFlags"
> Option "NoTrapSignals" "true"
>EndSection
-----------------------


sudo gdb /usr/bin/Xorg
(gdb) run -keeptty -dumbSched
-----------------------
Starting program: /usr/bin/Xorg -keeptty -dumbSched
[Thread debugging using libthread_db enabled]
This is a pre-release version of the X server from The X.Org Foundation.
It is not supported in any way.
Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.
Select the "xorg" product for bugs you find in this release.
Before reporting bugs in pre-release versions please check the
latest version in the X.Org Foundation git repository.
See http://wiki.x.org/wiki/GitPage for git access instructions.
X.Org X Server 1.4.0.90
Release Date: 5 September 2007
X Protocol Version 11, Revision 0
Build Operating System: Linux Ubuntu (xorg-server 2:1.4.1~git20080131-1ubuntu9)
Current Operating System: Linux laptop 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008 i686
Build Date: 15 April 2008 05:26:17PM
 Before reporting problems, check http://wiki.x.org
 to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
 (++) from command line, (!!) notice, (II) informational,
 (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Mon May 19 17:08:59 2008
(==) Using config file: "/etc/X11/xorg.conf"
[New Thread 0xb7c0b6b0 (LWP 5256)]
(II) Module "ramdac" already built-in
(II) Module "i2c" already built-in
(II) Module "ddc" already built-in
-----------------------


the last output was "ddc", It seems to get stuck in it
When I Ctr+C
-----------------------
Program received signal SIGINT, Interrupt.
[Switching to Thread 0xb7c0b6b0 (LWP 5256)]
0xb7acf3a6 in mmioReadST01 (hwp=0x821aa60) at ../../../../hw/xfree86/vgahw/vgaHW.c:419
419 ../../../../hw/xfree86/vgahw/vgaHW.c: No such file or directory.
 in ../../../../hw/xfree86/vgahw/vgaHW.c
-----------------------


(gdb) backtrace full
-----------------------
#0 0xb7acf3a6 in mmioReadST01 (hwp=0x821aa60) at ../../../../hw/xfree86/vgahw/vgaHW.c:419
No locals.
#1 0xb7afbc98 in ?? () from /usr/lib/xorg/modules/drivers//trident_drv.so
No symbol table info available.
#2 0x0821aa60 in ?? ()
No symbol table info available.
#3 0x0821dca8 in ?? ()
No symbol table info available.
#4 0x00000007 in ?? ()
No symbol table info available.
#5 0x080d13e2 in xf86ErrorFVerb (verb=-1214303270, format=0x821e500 "") at ../../../../hw/xfree86/common/xf86Helper.c:1382
 ap = 0x20 <Address 0x20 out of bounds>
#6 0x08073d9c in AddScreen (pfnInit=0xb7afbb50, argc=3, argv=0xbf84a8b4) at ../../dix/main.c:769
 i = 0
 scanlinepad = <value optimized out>
 depth = <value optimized out>
 bitsPerPixel = 136430456
 k = 2
 pScreen = <value optimized out>
#7 0x080a9c4e in InitOutput (pScreenInfo=0x8209620, argc=3, argv=0xbf84a8b4)
    at ../../../../hw/xfree86/common/xf86Init.c:850
 i = 0
 j = <value optimized out>
 k = <value optimized out>
 scr_index = 136353312
 modulelist = <value optimized out>
 optionlist = (pointer *) 0x82173d8
 layout = <value optimized out>
 screenpix24 = <value optimized out>
 pix24 = Pix24Use32
 pix24From = X_PROBED
 autoconfig = <value optimized out>
 generation = 1
#8 0x08074526 in main (argc=3, argv=0xbf84a8b4, envp=0xbf84a8c4) at ../../dix/main.c:369
 i = <value optimized out>
 error = 136163204
 xauthfile = <value optimized out>
 alwaysCheckForInput = {0, 1}
-----------------------


Some commands I runned:

uname -a
-----------------------
Linux laptop 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008 i686 GNU/Linux
-----------------------


lspci -vvnn
-----------------------
01:00.0 VGA compatible controller [0300]: Trident Microsystems CyberBlade i1 [1023:8520] (rev 6a) (prog-if 00 [VGA controller])
 Subsystem: Compaq Computer Corporation CyberBlade i1 AGP [0e11:b16e]
 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B+
 Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 Latency: 64
 Interrupt: pin A routed to IRQ 9
 Region 0: Memory at f5000000 (32-bit, non-prefetchable) [size=8M]
 Region 1: Memory at f4100000 (32-bit, non-prefetchable) [size=128K]
 Region 2: Memory at f4800000 (32-bit, non-prefetchable) [size=8M]
 [virtual] Expansion ROM at 28000000 [disabled] [size=64K]
 Capabilities: <access denied>
-----------------------


sudo discover --disable=parallel,serial,usb,ide,scsi,pcmcia --format="%M\t%S\t%D\t%i\n" video
-----------------------
CyberBlade i1 XFree86 trident 10238520
-----------------------


sudo xresprobe trident
-----------------------
id:
res: 1024x768
freq:
disptype: lcd/lvds
-----------------------


sudo ddcprobe
-----------------------
vbe: VESA 1.2 detected.
oem: Copyright 1998 TRIDENT MICROSYSTEMS INC.
memory: 2048kb
mode: 640x480x16m
mode: 800x600x16m
mode: 1024x768x32k
mode: 1024x768x64k
mode: 800x600x32k
mode: 800x600x64k
mode: 640x480x32k
mode: 640x480x64k
mode: 1024x768x256
mode: 640x400x256
mode: 640x480x256
mode: 800x600x256
mode: 1024x768x16
mode: 800x600x16
edid:
edidfail
-----------------------


I got edidfail, so I edit xorg.conf
sudo nano /etc/X11/xorg.conf
---------
Section "Monitor"
        Identifier "Configured Monitor"
> HorizSync 36-52
> VertRefresh 36-60
EndSection
------------
Section "Screen"
        Identifier "Default Screen"
        Monitor "Configured Monitor"
        Device "Configured Video Device"
> Option "NoDDC"
> Option "IgnoreEDID"
EndSection
-----------------


After this I tried to start x but with the same luck.


regards azurit3
Comment 2 Diego 2008-06-01 06:26:19 UTC
Very similar to:
https://bugs.freedesktop.org/show_bug.cgi?id=14048
Comment 3 Timo Aaltonen 2008-10-31 03:14:33 UTC

*** This bug has been marked as a duplicate of bug 14048 ***
Comment 4 Timo Aaltonen 2008-10-31 03:25:21 UTC
actually, the bugs are different, and the backtrace looks different too..
Comment 5 Luke 2015-05-16 16:23:52 UTC
I think the original bug report here (NoDCC causes hang) has been fixed. I am currently testing the trident driver on an ancient laptop here, and it has many bugs, but this isn't one of them. The "vesa" mode doesn't work, and most importantly auto-detection doesn't work. Manually writing your own Xorg configuration and assigning driver as "trident" however, works fine. 

What you need is:
        Driver      "trident"
        Option  "AccelMethod" "EXA"


At that point you get the proper response from Xorg:
(WW) TRIDENT(0): Option "NoDCC" is not used

So it simply skips NoDCC in the config file and in turn skips the hang.

I will be opening another bug report regarding detection.
Comment 6 GitLab Migration User 2018-08-10 20:48:24 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-trident/issues/6.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.