restricted-manager picks wrong BusID for video cards

Bug #91036 reported by bunz
8
Affects Status Importance Assigned to Milestone
restricted-manager (Ubuntu)
Fix Released
High
Martin Pitt

Bug Description

Binary package hint: restricted-manager

System: HP Pavilion DV8000

Video Device: (from lspci -v)

01:00.0 VGA compatible controller: nVidia Corporation GeForce Go 7400 (rev a1) (prog-if 00 [VGA])
        Subsystem: Hewlett-Packard Company Unknown device 30a5
        Flags: bus master, fast devsel, latency 0, IRQ 16
        Memory at d1000000 (32-bit, non-prefetchable) [size=16M]
        Memory at c0000000 (64-bit, prefetchable) [size=256M]
        Memory at d0000000 (64-bit, non-prefetchable) [size=16M]
        Capabilities: [60] Power Management version 2
        Capabilities: [68] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
        Capabilities: [78] Express Endpoint IRQ 0
        Capabilities: [100] Virtual Channel
        Capabilities: [128] Power Budgeting

restricted-manager configures my device in xorg.conf as:

Section "Device"
        Identifier "ATI Technologies, Inc. Radeon RV100 QY [Radeon 7000/VE]"
        Driver "nvidia"
        BusID "PCI:0:5:0"
        Option "AddARGBGLXVisuals" "True"
EndSection

Manually changing to the setting below fixes the problem:

Section "Device"
        Identifier "NVIDIA GeForce Go 7400"
        Driver "nvidia"
        BusID "PCI:1:0:0"
        Option "AddARGBGLXVisuals" "True"
EndSection

Also, the xorg.conf created by installing the nvidia driver omits the "1440x900' mode from my screen defs.

Revision history for this message
bunz (bunz) wrote :

Forgot to mention - restricted-manager version is 0.4

Revision history for this message
John Dong (jdong) wrote :

The same thing happened when I walked a friend thru configuring his fglrx card with restricted-manager.

BusID 0:5:0 got put in when 1:0:1 was the correct ID from lspci.

Changed in restricted-manager:
status: Unconfirmed → Confirmed
Revision history for this message
John Dong (jdong) wrote :

A sample snippet of lspci:

01:00.0 VGA compatible controller: ATI Technologies Inc RV380 [Radeon X600 (PCIE
)]
01:00.1 Display controller: ATI Technologies Inc RV380 [Radeon X600]

For ATI's that FIRST ONE that shows up (1:0:0) is the one that needs to go into xorg.conf. The second one is a fake, virtual phantom clone one that ATI' Windows drivers use to trick dual-head mode.

Revision history for this message
Martin Pitt (pitti) wrote :

restricted-manager does not configure bus IDs, it just sets some debconf keys and calls dexconf. So this needs to be fixed in x11-common.

Martin Pitt (pitti)
Changed in xorg:
importance: Undecided → High
Martin Pitt (pitti)
Changed in xorg:
assignee: nobody → pitti
status: Confirmed → In Progress
Revision history for this message
Martin Pitt (pitti) wrote :

What does

  grep -A 2 'xserver-xorg/config/device/bus_id$' /var/cache/debconf/config.dat

show for you?

Changed in xorg:
status: In Progress → Needs Info
Revision history for this message
Martin Pitt (pitti) wrote :

I changed r-m to not call dexconf directly any more, but use the magic in xserver-xorg's postinst script as well. Can you please install the attached r-m and check whether this still happens?

Thank you!

Revision history for this message
Jonathan Riddell (jr) wrote :

>grep -A 2 'xserver-xorg/config/device/bus_id$' /var/cache/debconf/config.dat
Name: xserver-xorg/config/device/bus_id
Template: xserver-xorg/config/device/bus_id
Value: PCI:1:5:0
Owners: xserver-xorg

Revision history for this message
Jonathan Riddell (jr) wrote :

Using the .deb from comment 6 it now keeps PCI:1:5:0

Revision history for this message
Martin Pitt (pitti) wrote :

For the record, this fixes the BusID issue for Jonathan.

Revision history for this message
Martin Pitt (pitti) wrote :

Hm, neither dexconf nor dpkg-reconfigure xserver-xorg do the right thing, but let's put this back to r-m for the time being, so that it appears on more of my radars.

Revision history for this message
Crashbit (crashbit-gmail) wrote :

$ lspci -b
00:00.0 Host bridge: ALi Corporation M1695 K8 Northbridge [PCI Express and HyperTransport]
00:01.0 PCI bridge: ALi Corporation PCI Express Root Port
00:02.0 PCI bridge: ALi Corporation PCI Express Root Port
00:03.0 PCI bridge: ALi Corporation PCI Express Root Port
00:04.0 Host bridge: ALi Corporation M1689 K8 Northbridge [Super K8 Single Chip]
00:05.0 PCI bridge: ALi Corporation AGP8X Controller
00:06.0 PCI bridge: ALi Corporation M5249 HTT to PCI Bridge
00:07.0 ISA bridge: ALi Corporation M1563 HyperTransport South Bridge (rev 70)
00:07.1 Bridge: ALi Corporation M7101 Power Management Controller [PMU]
00:08.0 Multimedia audio controller: ALi Corporation M5455 PCI AC-Link Controller Audio Device (rev 20)
00:11.0 Ethernet controller: ALi Corporation ULi 1689,1573 integrated ethernet. (rev 40)
00:12.0 IDE interface: ALi Corporation M5229 IDE (rev c7)
00:13.0 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)
00:13.1 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)
00:13.2 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)
00:13.3 USB Controller: ALi Corporation USB 2.0 Controller (rev 01)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:00.0 VGA compatible controller: ATI Technologies Inc RV370 [Sapphire X550 Silent]
01:00.1 Display controller: ATI Technologies Inc RV370 secondary [Sapphire X550 Silent]
03:00.0 SATA controller: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller

and in the xorg.conf BusID 1:5:0 ----> Agp controller
no BusID 1:0:0 ----> vga compatible controller (PCI-Express)

Revision history for this message
Martin Pitt (pitti) wrote :

Adam, thanks for your help so far. Can you please install the attached version and try again? I. e. reset to defaults (vesa, etc.), then enable fglrx in restricted-manager, and then check whether it works as expected. There is a remote chance that this version already fixes the issue we had yesterday (keeping 'vesa' in xorg.conf even after enabling fglrx). If it does not work, can you please attach /var/log/restricted-manger.log and /etc/X11/xorg.conf after that?

Thank you!

Revision history for this message
Martin Pitt (pitti) wrote :

Please ignore the previous package, use this one instead. Thank you!

Revision history for this message
Martin Pitt (pitti) wrote :

Confirmed by two people that this works now. Thanks all!

Changed in restricted-manager:
status: Needs Info → Fix Committed
Revision history for this message
Martin Pitt (pitti) wrote :

 restricted-manager (0.10) feisty; urgency=low
 .
   * RestrictedManager/{fglrx,nvidia}.py: Call dpkg-reconfigure xserver-xorg
     instead of dexconf directly, to take advantage of its special magic. This
     also takes care of writing backup files, so disable our own backup file
     writing. (LP: #91036)
   * RestrictedManager/{fglrx,nvidia}.py: Set the 'seen' flags of the modified
     debconf questions, to reduce the chance of dpkg-reconfigure clobbering
     them.
   * RestrictedManager/{fglrx,nvidia}.py: Add some logging to
     /var/log/restricted-manager.log to debug currently open bugs. This will be
     removed again later.
   * restricted-manager: If there are no applicable handlers at all, display an
     info message box that the hardware does not need any restricted drivers
     and exit. (LP: #92485)
   * restricted-manager, RestrictedManager/core.py: Move reboot notification
     function into core.notify_reboot_required(), so that we can use in the
     handlers, too.
   * RestrictedManager/{fglrx,nvidia}.py: Trigger reboot notification on
     enabling, too. (LP: #92684)
   * Add modalias_override/fglrx_supported: Script to parse supported product
     IDs out of /usr/lib/xorg/modules/drivers/fglrx_drv.so. Thanks to Johan
     Kiviniemi!
   * RestrictedManager/modalias.append: Replace the 'catch all ATI graphics
     cards' line with the product ID list generated by fglrx_supported, so that
     the fglrx driver is not offered any more on models it doesn't support.
     (LP: #92498)
   * Renamed RestrictedManager/nvidia.py to RestrictedManager/xorg_driver.py
     and replaced the few nvidia-specific bits with ctor argument variables.
   * Reimplement nvidia.py and fglrx.py as XorgDriver subclasses, since they
     shared 95% of code.
   * RestrictedManager/xorg_driver.py: Set xserver-xorg/autodetect_video_card
     to false when enabling a driver, so that xserver-xorg's postinst does not
     clobber our freshly selected restricted driver. Enable it again when
     disabling the restricted driver.
   * po/POTFILES.in: Add missing fglrx.py and xorg_driver.py.
   * restricted-manager, RestrictedManager/core.py: Add new DefaultHandler
     method can_change() which checks if r-m can change this driver at all. If
     not, show an error message with an explanation.
   * RestrictedManager/xorg_driver.py: Add can_change() which checks for a
     modified xorg.conf. (LP: #92690)

Changed in restricted-manager:
status: Fix Committed → Fix Released
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.