sysinfo Fails to Find Hardware

Bug #211347 reported by GeekGirl1
4
Affects Status Importance Assigned to Milestone
sysinfo (Ubuntu)
Fix Released
Undecided
Unassigned
Declined for Intrepid by Luca Falavigna

Bug Description

Binary package hint: sysinfo

From 'apt-cache policy sysinfo':
sysinfo:
  Installed: 0.7-0ubuntu3
  Candidate: 0.7-0ubuntu3
  Version table:
 *** 0.7-0ubuntu3 0
        500 http://us.archive.ubuntu.com hardy/universe Packages
        100 /var/lib/dpkg/status

Source package: 0.7-0ubuntu3

Ubuntu Release: 8.04, Ubuntu hardy (development branch), KDE 3.5

Expected behavior:
- When selecting the "Hardware" menu with the appropriate drop-down sub-menu (right side of window), I expected to see my graphic card, sound card, and network configurations displayed.

What happened:
- There is no entry for graphic card. However, there is an additional entry of NVIDIA directly below the Hardware entry. The details display correctly. I expect this entry to be listed under the Hardware --> graphic card instead of stand-alone (using NVIDIA proprietary driver).

- There is no entry for the sound card. I am using a Creative Labs X-Fi Fatal1ty sound card with the OSS Hardy beta drivers. Sound is functioning.

- Ther is no entry for Network. KNetworkManager reports:
                             Active: Marvell Technology Group Ltd., 88E8053 PCI-E Gigabit Ethernet Controller (eth1)
                             Not active: nVidia Corporation CK804 Ethernet Controller (eth0)

Related branches

Revision history for this message
GeekGirl1 (my-e-mail1) wrote :
GeekGirl1 (my-e-mail1)
description: updated
Revision history for this message
levmatta (levmatta) wrote :

My sysinfo also displays no network information.
(Ubuntu Hardy 64bit)

Revision history for this message
Koen (koen-beek) wrote :

Hi,

  could you include the output of the lspci command

  thanks,

    Koen

Changed in sysinfo:
assignee: nobody → koen-beek
status: New → Incomplete
Revision history for this message
levmatta (levmatta) wrote :

Ubuntu Hardy 64bit lspci output.

Revision history for this message
GeekGirl1 (my-e-mail1) wrote :

My lspci output for reference:

00:00.0 RAM memory: nVidia Corporation C51 Host Bridge (rev a2)
00:00.1 RAM memory: nVidia Corporation C51 Memory Controller 0 (rev a2)
00:00.2 RAM memory: nVidia Corporation C51 Memory Controller 1 (rev a2)
00:00.3 RAM memory: nVidia Corporation C51 Memory Controller 5 (rev a2)
00:00.4 RAM memory: nVidia Corporation C51 Memory Controller 4 (rev a2)
00:00.5 RAM memory: nVidia Corporation C51 Host Bridge (rev a2)
00:00.6 RAM memory: nVidia Corporation C51 Memory Controller 3 (rev a2)
00:00.7 RAM memory: nVidia Corporation C51 Memory Controller 2 (rev a2)
00:02.0 PCI bridge: nVidia Corporation C51 PCI Express Bridge (rev a1)
00:03.0 PCI bridge: nVidia Corporation C51 PCI Express Bridge (rev a1)
00:04.0 PCI bridge: nVidia Corporation C51 PCI Express Bridge (rev a1)
00:09.0 Memory controller: nVidia Corporation CK804 Memory Controller (rev a4)
00:0a.0 ISA bridge: nVidia Corporation CK804 ISA Bridge (rev a4)
00:0a.1 SMBus: nVidia Corporation CK804 SMBus (rev a2)
00:0b.0 USB Controller: nVidia Corporation CK804 USB Controller (rev a2)
00:0b.1 USB Controller: nVidia Corporation CK804 USB Controller (rev a4)
00:0f.0 IDE interface: nVidia Corporation CK804 IDE (rev f3)
00:10.0 IDE interface: nVidia Corporation CK804 Serial ATA Controller (rev f3)
00:11.0 IDE interface: nVidia Corporation CK804 Serial ATA Controller (rev f3)
00:12.0 PCI bridge: nVidia Corporation CK804 PCI Bridge (rev a2)
00:13.0 Bridge: nVidia Corporation CK804 Ethernet Controller (rev a3)
00:16.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3)
00:17.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3)
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
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 15)
03:00.0 VGA compatible controller: nVidia Corporation G71 [GeForce 7900 GTX] (rev a1)
04:07.0 Multimedia audio controller: Creative Labs SB X-Fi
04:0b.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)

Interesting to compare- we both have Marvell Technology Ethernet controller chips:

GeekGirl1- 02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 15)
levmatta - 09:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8040 PCI-E Fast Ethernet Controller (rev 12)

My motherboard is Asus A8N32-SLI Deluxe.

Revision history for this message
Koen (koen-beek) wrote :

Hi,

  could you also include the output of lspci -v ?

   thanks,

     Koen

Revision history for this message
GeekGirl1 (my-e-mail1) wrote :

Hi,

Not a problem. Output of sudo lspci -v attached to this comment. I used root priv to be sure of capturing all the data.

Regards,

GeekGirl1

Revision history for this message
Koen (koen-beek) wrote :

Hi,

  I've been able to reproduce with the lspci output attached to the previous comment

  I'll have a look at the code to see what is causing this

    Koen

Changed in sysinfo:
status: Incomplete → In Progress
Revision history for this message
Koen (koen-beek) wrote :

The problem seems to be that sysinfo can only handle a maximum 5 PCI bridges and that your system seems to have 6 of them
When HardInfo.cs reads the 6th PCI bridge it uses an index that is out of the allocated range
Following error messages are output to the console when this happens :

System.IndexOutOfRangeException: Array index is out of range.
  at (wrapper stelemref) System.Object:stelemref (object,intptr,object)
  at Sysinfo.HardwareInfo.StaticInfo () [0x00000]

There are also some other hardcoded limits : max 2 host bridges, max 5 usb controllers, max 2 isa bridges, max 2 ide interfaces, max 2 vga controllers, max 2 multimedia controllers, max 2 network controllers, max 2 modems

Changes are needed to the HardwareInfo.cs, Main.cs and SaveToFile.cs source code files
I'll upload a debdiff with these code changes

Revision history for this message
Koen (koen-beek) wrote :

This is a debdiff to correct this issue

Koen (koen-beek)
Changed in sysinfo:
assignee: koen-beek → nobody
status: In Progress → Confirmed
Revision history for this message
Koen (koen-beek) wrote :

I have published the new version on my ppa : https://launchpad.net/~koen-beek/+archive

The new deb file is stored here : http://launchpadlibrarian.net/15125885/sysinfo_0.7-0ubuntu4_all.deb

Revision history for this message
Koen (koen-beek) wrote :

Hi Luca, why did you not accept this change for intrepid ?

Changed in sysinfo:
assignee: nobody → dktrkranz
Revision history for this message
Luca Falavigna (dktrkranz) wrote :

I just declined milestoning this bug for the release, but I think this will be uploaded in Intrepid soon. I haven't chances to test it myself, though (lack of hardware).

Changed in sysinfo:
assignee: dktrkranz → nobody
Koen (koen-beek)
Changed in sysinfo:
status: Confirmed → In Progress
status: In Progress → Confirmed
Revision history for this message
Koen (koen-beek) wrote :

This is a new debdiff

It corrects the three open bugs of sysinfo including this one

three bugfixes :
 * sysinfo fails to show all hardware when there are a lot of usb or pci controllers
 * debian/patches/02_fix_usb_pci_limit.dpatch (LP: #211347)
 * the close button of the about dialog does not work
 * debian/patches/03_fix_about_close_button.dpatch (LP: #174863)
 * sysinfo should check whether nvidia-settings is installed
 * debian/patches/04_check_nvidia_settings.dpatch (LP: #213507)

Revision history for this message
levmatta (levmatta) wrote :

Just to note that still it is not showing network devices information - now on Intrepid.
Thanks

Revision history for this message
James Westby (james-w) wrote :

Hi Koen,

The debdiff looks pretty good, thanks.

Increasing the limits by one doesn't seem like a great way
to avoid the problems. I would upload it, but how hard would
it be to make it dynamic so that it doesn't have a limit?

Also, could you check that all of the patches are forwarded
to

  http://sourceforge.net/tracker/?atid=746610&group_id=139177&func=browse

please? I see some of them are already, but it would be good
to make sure they all are.

Thanks,

James

Revision history for this message
Koen (koen-beek) wrote :

Hi,

  indeed increasing the limit by one isn't too great as a solution

  the major correction though, is that limit checking is being applied while it wasn't before - if there are more than 6 usb-controllers, only the first 6 will be shown but the program will not fail and will show all the other hardware.

  before this change when more than 5 usb controllers where mentioned in the 'lspci -v' list, the program would stop detecting any other hardware in the 'lspci -v' list when it reached the 6th usb controller and it would produce a 'IndexOutOfRangeException' exception - any hardware listed in lspci -v from the 6th usb controller was therefore missing from the sysinfo gui

  I chose this way of correcting the code to limit the size of the code changes to a minimum and because my mono programming skills are very small - I've only used Mono for sysinfo bug corrections
  I could easily increase the limit to a size that will be sufficient for 99.999% of all machines (for example 10 usb controllers) but it would take me much more effort to get a truly dynamic list size as I'm not accustomed to Mono development

  I'll add the bug reports and a link to the patches upstream but I think upstream might be dead since +- middle of 2006

     Koen

Revision history for this message
James Westby (james-w) wrote :

Hi,

I'm still reluctant to upload this fix. Firstly, because I believe it will exceed the limits
quite often, and secondly because doing that silently may cause confusion, and could
even be harmful.

Increasing the limits to a large number would help with this, but it's quite ugly, making
it dynamic would be much better.

I asked a C# expert, and they said that System.Collections.ArrayList would be suitable
for this. I don't know how much work it would be though.

Thanks,

James

Revision history for this message
Koen (koen-beek) wrote :

Hi,

  I tried to use the ArrayList class to remove the limit on the number of usb controllers and pci bridges

  It compiles and works correctly, but I'd recommend a C#, C++ or Mono developer to have a look at the code to make sure it is sane

  this is the new debdiff

    Koen

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package sysinfo - 0.7-0ubuntu4

---------------
sysinfo (0.7-0ubuntu4) intrepid; urgency=low

  * three bugfixes :
  * sysinfo fails to show all hardware when there are a lot of usb or pci
    controllers
  * debian/patches/02_fix_usb_pci_limit.dpatch (LP: #211347)
  * the close button of the about dialog does not work
  * debian/patches/03_fix_about_close_button.dpatch (LP: #174863)
  * sysinfo should check whether nvidia-settings is installed
  * debian/patches/04_check_nvidia_settings.dpatch (LP: #213507)

 -- Koen Beek <email address hidden> Sun, 24 Aug 2008 01:52:37 +0200

Changed in sysinfo:
status: Confirmed → Fix Released
Revision history for this message
James Westby (james-w) wrote :

Uploaded, thanks for your contribution.

Please submit the patch upstream, even if it appears
dead, it should only take a moment.

It would be good to encourage them to move away
from fixed size arrays for everything else as well. I had a look
at doing this, but the logic with them is slightly more complex.

Thanks for delving in to C# to fix this, I ran it by an expert, and
they said that it was spot on.

Thanks,

James

Changed in sysinfo:
status: Fix Released → Fix Committed
James Westby (james-w)
Changed in sysinfo:
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.