Display applet does not start

Bug #32915 reported by Luka Renko
16
Affects Status Importance Assigned to Milestone
kde-guidance (Ubuntu)
Fix Committed
Medium
Sebastian Kügler

Bug Description

Display applet in System settings cannot be loaded.

I have run "kcmshell displayconfig" and it reported the following:
Pythonize constructor -- pid = 6235
Python interpreter initialized!

Pythonize constructor -- pid = 6235
Traceback (most recent call last):
  File "<string>", line 8, in kcontrol_bridge_create_displayconfig
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 1624, in create_displayconfig
    return DisplayApp(parent, name)
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 425, in __init__
    self.xsetup = XSetup(self.xconfigpath)
  File "/usr/lib/python2.4/site-packages/displayconfigabstraction.py", line 354, in __init__
    self._finalizeInit()
  File "/usr/lib/python2.4/site-packages/displayconfigabstraction.py", line 362, in _finalizeInit
    gfxcard = self.primary_screen._getGfxCard()
AttributeError: 'NoneType' object has no attribute '_getGfxCard'
error: *** runFunction failure

I have also try to run is as root (with sudo), this time error is slightly different:
mkdir: Owner of /tmp/.ICE-unix should be set to root
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

kdeinit: Can't connect to the X Server.
kdeinit: Might not terminate at end of session.
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

kded: cannot connect to X server :0
DCOP aborting call from 'anonymous-6248' to 'kded'
kded: ERROR: Communication problem with kded, it probably crashed.

Pythonize constructor -- pid = 6240
Python interpreter initialized!

Pythonize constructor -- pid = 6240
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

Traceback (most recent call last):
  File "<string>", line 8, in kcontrol_bridge_create_displayconfig
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 1624, in create_displayconfig
    return DisplayApp(parent, name)
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 421, in __init__
    self.xf86server = xf86misc.XF86Server()
  File "/usr/lib/python2.4/site-packages/xf86misc.py", line 97, in __init__
    raise XF86Error, "Couldn't connect to X server."
xf86misc.XF86Error: Couldn't connect to X server.
error: *** runFunction failure
;

Revision history for this message
Luka Renko (lure) wrote :

This is on HP Compaq nw8240 with ATI FireGL V5000 card. I am currenctly using "fglrx", but applet could not be started also with "ati" driver.

Revision history for this message
Rocco Stanzione (trappist) wrote :

I can confirm this bug on my up-to-date dapper system (with nvidia card/drivers, if that's relevant).

Changed in kde-guidance:
status: Unconfirmed → Confirmed
Revision history for this message
daniel2501 (daniel2501) wrote :

Same here. I get :
Pythonize constructor -- pid = 13932
Traceback (most recent call last):
  File "<string>", line 8, in kcontrol_bridge_create_displayconfig
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 1624, in create_displayconfig
    return DisplayApp(parent, name)
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 425, in __init__
    self.xsetup = XSetup(self.xconfigpath)
  File "/usr/lib/python2.4/site-packages/displayconfigabstraction.py", line 191, in __init__
    monitor_model = self._matchMonitor(monitor_section)
  File "/usr/lib/python2.4/site-packages/displayconfigabstraction.py", line 403, in _matchMonitor
    monitor_model = monitor_model_db.detect()
  File "/usr/lib/python2.4/site-packages/displayconfigabstraction.py", line 2495, in detect
    hrange = line.split()[1].strip()
IndexError: list index out of range
error: *** runFunction failure
;

I'm running the ubuntu nvidia driver package.

Revision history for this message
Luka Renko (lure) wrote :

I have updated to kde-guidance 0.6.2-0ubuntu1, but this bug is still there. :-(

 kcmshell displayconfig

Pythonize constructor -- pid = 5325
Python interpreter initialized!

Pythonize constructor -- pid = 5325
Traceback (most recent call last):
  File "<string>", line 8, in kcontrol_bridge_create_displayconfig
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 1651, in create_displayconfig
    return DisplayApp(parent, name)
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 425, in __init__
    self.xsetup = XSetup(self.xconfigpath)
  File "/usr/lib/python2.4/site-packages/displayconfigabstraction.py", line 354, in __init__
    self._finalizeInit()
  File "/usr/lib/python2.4/site-packages/displayconfigabstraction.py", line 362, in _finalizeInit
    gfxcard = self.primary_screen._getGfxCard()
AttributeError: 'NoneType' object has no attribute '_getGfxCard'
error: *** runFunction failure
;

Revision history for this message
Luka Renko (lure) wrote :

I have debugged failing displayconfigabstraction.py with some additional print statements, and it seems that root cause of the problem is in function _detectGfxCards() when parsing PCI cards. The problem is that my card does not pass if pci_device.isGfxCard() check.
I have printed pci_device just before this check and this is what I get for my card:

PCI:1:0:0 Vendor:1002 Device:5653, Subvendor:103c, Subdevice:940, Class:300, Module:unknown, Text:ATI Technologies Inc.|Radeon Mobility X700 (PCIE)

I think the problem is that Module is "unknown" and is therefore not considered as Gfx card.

Interesting that lspci properly identify device as "VGA":

0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE)

What is wrong here?

Revision history for this message
Luka Renko (lure) wrote :

OK, this seems to be an issue with /usr/share/apps/guidance/pcitable not having proper data about my card (ATI FireGL V5000 PCI Express).

Workaround (may also work for other cards):

1. run "lspci" - find your graphic card and remember PCI address (first group of number)
$ lspci | grep VGA
0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE)

2. run "lspci -d" and search for same PCI address and get product identification numbers (last two number separated by : )
$ lspci -n | grep 0000:01:00.0
0000:01:00.0 0300: 1002:5653

3. Edit /usr/share/apps/guidance/pcitable and find your card (search for line with 1002 and 5653)

for my card, I had to change:
0x1002 0x5653 "unknown" "ATI Technologies Inc.|Radeon Mobility X700 (PCIE)"

to something like this:
0x1002 0x5653 "Card:ATI Radeon (fglrx)" "ATI Technologies Inc.|Radeon Mobility X700 (PCIE)"

Please report to this bug if you succeeded and which card to you have (with the two identification numbers).

Kenny Duffus (kduffus)
Changed in kde-guidance:
assignee: nobody → kubuntu-team
Revision history for this message
Rob Hughes (rob-robhughes) wrote :

Unfortunately for me, even after making these changes, kcmshell displayconfig results in the same error. But at least /etc/init.d/displayconfig-hwprobe.py does something now. Namely, it screws over my config. But that's a seperate issue.

Revision history for this message
Rob Hughes (rob-robhughes) wrote :

OK, after I also added my card to Cards+, it works. However, this whole thing seems a really bad kludge. It's way too easy to break.

Revision history for this message
Simon Edwards (simon-simonzone) wrote :

Rob, have you updated kde-guidance to version 0.6.3 (now in the dapper repository) and tried again? The problem may already be solved.

Revision history for this message
Luka Renko (lure) wrote :

Still there wiTraceback (most recent call last):
  File "<string>", line 8, in kcontrol_bridge_create_displayconfig
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 1668, in create_displayconfig
    return DisplayApp(parent, name)
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 440, in __init__
    self.xsetup = XSetup(self.xconfigpath)
  File "/usr/lib/python2.4/site-packages/displayconfigabstraction.py", line 161, in __init__
    proprietary_driver=(pci_device_tuple[2].getProprietaryDriver()==device_section.driver))
AttributeError: 'NoneType' object has no attribute 'getProprietaryDriver'
error: *** runFunction failure
th kde-guidance 0.6.3, but this time it fails with different error:

Revision history for this message
Simon Edwards (simon-simonzone) wrote :

The fix for this bug was just tested with Luka on #kubuntu-devel and the fix will be released in version 0.6.4.

Revision history for this message
Rob Hughes (rob-robhughes) wrote :

I'm getting a different error than you say was fixed in 0.6.4:

$ kcmshell displayconfig

Pythonize constructor -- pid = 6393
Python interpreter initialized!

Pythonize constructor -- pid = 6393
Traceback (most recent call last):
  File "<string>", line 8, in kcontrol_bridge_create_displayconfig
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 1668, in create_displayconfig
    return DisplayApp(parent, name)
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 440, in __init__
    self.xsetup = XSetup(self.xconfigpath)
  File "/usr/lib/python2.4/site-packages/displayconfigabstraction.py", line 175, in __init__
    if pci_device_tuple[1].getDriver()==driver_name \
AttributeError: 'PCIDevice' object has no attribute 'getDriver'
error: *** runFunction failure
;

Revision history for this message
Rob Hughes (rob-robhughes) wrote :

Still not working. Just updated to 0.6.4

$ kcmshell displayconfig

Pythonize constructor -- pid = 9056
Python interpreter initialized!

Pythonize constructor -- pid = 9056
Traceback (most recent call last):
  File "<string>", line 8, in kcontrol_bridge_create_displayconfig
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 1677, in create_displayconfig
    return DisplayApp(parent, name)
  File "/usr/lib/python2.4/site-packages/displayconfig.py", line 443, in __init__
    self.xsetup = XSetup(self.xconfigpath)
  File "/usr/lib/python2.4/site-packages/displayconfigabstraction.py", line 177, in __init__
    if pci_device_tuple[2].getDriver()==driver_name \
AttributeError: 'NoneType' object has no attribute 'getDriver'
error: *** runFunction failure
;

Revision history for this message
Simon Edwards (simon-simonzone) wrote :

Will be fixed in version 0.6.5 of guidance.

Revision history for this message
Tarek Loubani (tareko) wrote :

I am having the same problem. Here is my lspci result:

0000:01:00.0 VGA compatible controller: nVidia Corporation: Unknown device 01df (rev a1)

and with -n:

$ lspci -n | grep 01:00
0000:01:00.0 0300: 10de:01df (rev a1)

The card is a 7300 to the best of my knowledge.

Revision history for this message
Jared Sutton (jpsutton) wrote :

This still seems to be an issue on Edgy. I'm using kde-guidance 0.7.0-0ubuntu4. I've got a dual-card setup with a integrated Intel i810-based chipset, and a ATI Rage 128 in a PCI slot. I was able to work-around the problem by renaming my xorg.conf and re-generating one with 'dpkg-reconfigure xserver-xorg.' However, the problem seems to re-present itself if I make any modifications to xorg.conf.

Revision history for this message
vidak (vidakris) wrote :

I'm using the same (kde-guidance 0.7.0-0ubuntu4) package, and still having problems with my i915 card. Tried to edit /usr/share/apps/guidance/pcitable, but my card was correctly on the list, so there was nothing to do... The xorg.conf-workaround didn't help, either.

The module dies with these words:

Traceback (most recent call last):
  File "<string>", line 8, in kcontrol_bridge_create_displayconfig
  File "/var/lib/python-support/python2.4/displayconfig.py", line 1685, in create_displayconfig
    return DisplayApp(parent, name)
  File "/var/lib/python-support/python2.4/displayconfig.py", line 478, in __init__
    self._loadConfig()
  File "/var/lib/python-support/python2.4/displayconfig.py", line 1029, in _loadConfig
    self.targetgamma = self.availabletargetgammas.index(t)
ValueError: list.index(x): x not in list
error: *** runFunction failure
;

Revision history for this message
vidak (vidakris) wrote :

I think I found the problem, at least at my pc. I am using Hungarian localization on the machine, and so the numbers are written in eg. 2,5 form instead of 2.5 by default.
So, when the gamma values are given in a list in this form (line 431):
self.availabletargetgammas = [unicode(i18n('1.4')),unicode(i18n('1.6')),unicode(i18n('1.8')),unicode(i18n('2.0')),unicode(i18n('2.2')),unicode(i18n('2.4'))]

all the dots are changed to commas because of the localization procedure. In line 1028, however the program searches for a simple string, without localization:
t = self.config.readEntry("targetgamma","2.0")
and later in line 1034:
t = '2.0'

The problem can be solved either by removing i18n from line 431 or by adding it also to lines 1028 and 1034 to get:
t = self.config.readEntry("targetgamma",unicode(i18n("2.0")))
and
t = unicode(i18n('2.0'))
respectively.

Revision history for this message
Sebastian Kügler (sebasje) wrote :

Thanks, I've committed your fix to svn

Changed in kde-guidance:
assignee: kubuntu-team → sebas-kde
status: Confirmed → Fix Committed
Revision history for this message
Andreas Ntaflos (daff) wrote :

I think I found another incarnation of this error. Running Kubuntu Edgy, with kde-guidance 0.7.0-0ubuntu4 on my Thinkpad T41p with a Radeon M10 (FireGL T2) and the open source drivers from Xorg.

I don't think it has to do with numbers getting i18n'd wrongly as I set my system's language to English.

print self.availabletargetgammas outputs: [u'1.4', u'1.6', u'1.8', u'2.0', u'2.2', u'2.4'] which seems correct. Nonetheless I applied the fix described by vidak, but I get the following error message:

Pythonize constructor -- pid = 5118
Python interpreter initialized!

Pythonize constructor -- pid = 5118

Traceback (most recent call last):
  File "<string>", line 8, in kcontrol_bridge_create_displayconfig
  File "/var/lib/python-support/python2.4/displayconfig.py", line 1686, in create_displayconfig
    return DisplayApp(parent, name)
  File "/var/lib/python-support/python2.4/displayconfig.py", line 442, in __init__
    self.xsetup = XSetup(self.xconfigpath)
  File "/var/lib/python-support/python2.4/displayconfigabstraction.py", line 387, in __init__
    self._finalizeInit()
  File "/var/lib/python-support/python2.4/displayconfigabstraction.py", line 406, in _finalizeInit
    self.setLayout(gfxcard._getDetectedLayout())
  File "/var/lib/python-support/python2.4/displayconfigabstraction.py", line 954, in setLayout
    gfxcard.setLayout(XSetup.LAYOUT_CLONE)
  File "/var/lib/python-support/python2.4/displayconfigabstraction.py", line 1162, in setLayout
    screen._resyncResolution()
  File "/var/lib/python-support/python2.4/displayconfigabstraction.py", line 1801, in _resyncResolution
    self.gfx_card.setup.getPrimaryScreen()._resyncResolution()
  File "/var/lib/python-support/python2.4/displayconfigabstraction.py", line 1757, in _resyncResolution
    (preferred_width,preferred_height) = self.getAvailableResolutions()[self.getResolutionIndex()]
IndexError: list index out of range
error: *** runFunction failure
;

Unfortunately I'm not so good with Python backtraces to know where to look for further possible errors.

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.