Bug 88625

Summary: JJ: KInfoCenter should improve PCI view
Product: [Unmaintained] kcontrol Reporter: Gustavo Sverzut Barbieri <barbieri>
Component: kcminfoAssignee: Helge Deller <deller>
Status: RESOLVED FIXED    
Severity: wishlist CC: hannibal
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Improved pic info i info center
Improved PCI info in kinfocenter ver 2
latest patch with proposed fixes
Latest patch
Latest pciinfo patch

Description Gustavo Sverzut Barbieri 2004-09-01 19:47:18 UTC
Version:            (using KDE KDE 3.3.0)
Installed from:    Gentoo Packages
OS:                Linux

some kinfocenter modules/views are good, but some are really bad.

One module that should be improved is PCI.

It's only the lspci dump, it should be parsed and displayed in a more human readable form.
Comment 1 Helge Deller 2004-09-03 20:31:16 UTC
Agreed - the PCI info should be enhanced.
But instead of just parsing the lspci output in a different way, the KDE infocenter code should be rewritten to use the pciutils-devel package and scan the PCI bus itself.
(see: http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml)

Comment 2 Helge Deller 2006-02-19 11:53:41 UTC
marked as Junior Job (http://dot.kde.org/1094109399/)
Comment 3 Konrad Rzepecki 2006-07-09 19:18:19 UTC
Created attachment 16934 [details]
Improved pic info i info center

This patch (against 3.5.3) make changes in configure.in.in and Makefile.am so
it need rerun automake & friends (make -f Makefile.cvs).

Code isn't very nice and clear but it seems to work. Probably write this in
much cleaner way is impossible. 

And now some comments about it.

Need to be check:
Automake addons - I don't know this at all, I write this copying some other
parts of configure.in from net and adapt it to situation.

CardBus bridge: - I don't have info about it, this is based only on lspci. Also
i haven't such hardware.

Capability VPD, MSI - I haven't hardware support this. So this is not tested.

All - My knowlege about PCI is limted so some terms maybe innacurate, and some
code complety wrong. However for my hardware info from it and lspci are
identical.

TODO:
Support for BSD and AIX - This is easy, but I don't do this since I cannot test
it.

Add rest of capabilities - I have no health to do that (search spec in net,
coding it,...), especially my hardware don't support them.

Better tree desing - If you don't like current, you may design it better. This
include including some icons.

Finding way to check where in system is pci.ids file. - Currently this path is
hardcoded to /usr/share/pci.ids. But on some system this can be in somwhere
else place. The easies way is including kde own pci.ids, but this is also worst
solution (redundancy).

No more such "easy" JJ ;)
Comment 4 Konrad Rzepecki 2006-07-11 04:42:11 UTC
Created attachment 16951 [details]
Improved PCI info in kinfocenter ver 2

This second version fix some non-root errors (not all PCI config space is
available to normal users). This is ugly fix, It should add message like in
font installer, whitch is using setUseRootOnlyMsg, but currently I'm
unsucessfull with adding it.
Comment 5 Konrad Rzepecki 2006-07-11 05:20:29 UTC
Only needed change is adding "X-KDE-RootOnly=true" in "pci.desktop". If you want patch with this change tell me ;)

Also one TODO can be added:
setUseRootOnlyMsg in KInfoListWidget constructor. This problably need some widget reordering becuase this message have half of screen (if visible).

Comment 6 Konrad Rzepecki 2006-08-05 17:02:39 UTC
The patch is available almost a month. Any comments?
Comment 7 Helge Deller 2006-08-06 20:38:28 UTC
WOW !!
That's great and impressive work!
I'll send you my general thoughts and ideas in a private mail now...
Thanks,
Helge
Comment 8 Helge Deller 2006-08-26 13:46:12 UTC
Created attachment 17508 [details]
latest patch with proposed fixes

This is the latest patch by Hannibal <hannibal@megapolis.pl>
Comment 9 Konrad Rzepecki 2006-08-29 17:59:42 UTC
Created attachment 17556 [details]
Latest patch

Use KDE_PACKED and I18N_NOOP, sugested on kde-core-devel.
Comment 10 Rafael Fernández López 2006-09-27 02:51:34 UTC
Still has this one:

+union pciInfo{
+	unsigned char raw[256];
+	struct {
+		unsigned short vendor;
+		unsigned short device;
+		union {
+			unsigned short command;
+			struct {
+				unsigned comIo:1;
+				unsigned comMemory:1;
+				unsigned comMaster:1;
+				unsigned comSpecial:1;
+				unsigned comInvalidate:1;
+				unsigned comVgaPalette:1;
+				unsigned comParity:1;
+				unsigned comWait:1;
+				unsigned comSerr:1;
+				unsigned comFastBack:1;
+				unsigned comInterrupt:1;
+				unsigned comUnk:5;
+			} __attribute__ ((packed));
+		} KDE_PACKED;

"__attribute__ ((packed));" should be replaced with "KDE_PACKED;".
Comment 11 Konrad Rzepecki 2006-09-27 17:21:55 UTC
Created attachment 17938 [details]
Latest pciinfo patch

Fixed one left "__attribute__ ((packed))", thanks to Rafael.
Comment 12 Mike Williams 2007-01-03 19:16:07 UTC
Is there a reason this isn't being merged in? I know 3.5.6 is coming up...
Comment 13 Konrad Rzepecki 2007-01-04 17:10:31 UTC
The main reason is that, 3.5.6 is comming up (15 january AFAIR) ;-).

But the truth is that is lo interest in adding new functionality in 3.5.X branch. Especially this one, because of a lot strings to translate.

It probably be in 4.0, if I found some time to port it, and someone want to add it.
Comment 14 Nicolas Ternisien 2008-04-11 01:09:45 UTC
SVN commit 795596 by ternisien:

Complete source rewrite/improvement of KInfocenter :
- Complete port to KDE/Qt 4, no more use of QT3 Support
- Simplify interface (remove multiple left tabs, add quick help in the top of the layout, use a KListWidgetSearchLine to filter by keywords and name)
- Fix General Page (modules were not displayed), and allow user to select it from the left panel
- Clean code and indentation structure
- Remove big margins and useless layout/widgets to integrate KCMModule (request from Aaron Siego)
- Memory module is now in a separate folder
- Memory module has been rewritten, and the chart generation is now simpler.
- Use color gradient and color scheme of System Monitor app (request from John Tapsell)
- Use a default icon when the requested icon does not exist (request from David Jarvie)
- Integrate patch from Konrad Rzepecki about improve PCI module by using libpci API. Add an optional dependency in CMake for this library
FEATURE:88625
- The porting to KDE4 of all architecture may add some compilation errors (sorry, I have no AIX, HPUX, Solaris, SGI, FreeBSD, OpenBSD systems to test those source). However, some existing codes already did not compile.
- Simplify source code by removing some part corresponding to the moment where KInfocenter and KControl were the same (it seems to).
- Name and comments of each modules are now normalized. (even IOSlaves Info and Samba Status)
CCMAIL:kde-core-devel@kde.org
- Allow the future move of inner modules of kcm_info to a dedicated module (examples: Sound, X-Server, Partitions,...)
TODO : - Improve Loading page layout
- Port Partitions, Sound and Network Interfaces modules to Solid
- Set my email as current maintainer

 M  +0 -2      apps/CMakeLists.txt  
 A             apps/cmake/modules/FindPCIUTILS.cmake  
 M  +24 -16    apps/kinfocenter/CMakeLists.txt  
 M  +0 -6      apps/kinfocenter/about/kinfocenter.css  
 M  +5 -9      apps/kinfocenter/about/main.html  
 M  +96 -149   apps/kinfocenter/aboutwidget.cpp  
 M  +5 -11     apps/kinfocenter/aboutwidget.h  
 A             apps/kinfocenter/base (directory)  
 A             apps/kinfocenter/base/CMakeLists.txt  
 A             apps/kinfocenter/base/config-infocenter.h.cmake   apps/kinfocenter/info/config-infocenter.h.cmake#794405
 A             apps/kinfocenter/base/info_aix.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/base/info_fbsd.cpp   [POSSIBLY UNSAFE: system,popen] [License: UNKNOWN]
 A             apps/kinfocenter/base/info_generic.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/base/info_hpux.cpp   [POSSIBLY UNSAFE: popen] [License: UNKNOWN]
 A             apps/kinfocenter/base/info_linux.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/base/info_netbsd.cpp   [POSSIBLY UNSAFE: popen] [License: Public Domain]
 A             apps/kinfocenter/base/info_openbsd.cpp   [POSSIBLY UNSAFE: popen] [License: Public Domain]
 A             apps/kinfocenter/base/info_osx.cpp   [License: GPL (v2+)]
 A             apps/kinfocenter/base/info_sgi.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/base/info_solaris.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/base/info_svr4.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/base/os_base.h   [License: UNKNOWN]
 A             apps/kinfocenter/base/os_current.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/base/os_current.h   [License: UNKNOWN]
 M  +130 -199  apps/kinfocenter/dockcontainer.cpp  
 M  +47 -38    apps/kinfocenter/dockcontainer.h  
 M  +47 -77    apps/kinfocenter/global.cpp  
 M  +77 -56    apps/kinfocenter/global.h  
 D             apps/kinfocenter/helpwidget.cpp  
 D             apps/kinfocenter/helpwidget.h  
 M  +74 -109   apps/kinfocenter/indexwidget.cpp  
 M  +37 -36    apps/kinfocenter/indexwidget.h  
 _M            apps/kinfocenter/info (directory)  
 M  +19 -17    apps/kinfocenter/info/CMakeLists.txt  
 D             apps/kinfocenter/info/config-infocenter.h.cmake  
 A             apps/kinfocenter/info/info.cpp   [License: UNKNOWN]
 M  +7 -20     apps/kinfocenter/info/info.h  
 D             apps/kinfocenter/info/info_aix.cpp  
 D             apps/kinfocenter/info/info_fbsd.cpp  
 D             apps/kinfocenter/info/info_generic.cpp  
 D             apps/kinfocenter/info/info_hpux.cpp  
 D             apps/kinfocenter/info/info_linux.cpp  
 D             apps/kinfocenter/info/info_netbsd.cpp  
 D             apps/kinfocenter/info/info_openbsd.cpp  
 D             apps/kinfocenter/info/info_osx.cpp  
 D             apps/kinfocenter/info/info_sgi.cpp  
 D             apps/kinfocenter/info/info_solaris.cpp  
 D             apps/kinfocenter/info/info_svr4.cpp  
 M  +10 -17    apps/kinfocenter/info/main.cpp  
 D             apps/kinfocenter/info/memory.cpp  
 D             apps/kinfocenter/info/memory.desktop  
 D             apps/kinfocenter/info/memory.h  
 D             apps/kinfocenter/info/memory_fbsd.cpp  
 D             apps/kinfocenter/info/memory_hpux.cpp  
 D             apps/kinfocenter/info/memory_linux.cpp  
 D             apps/kinfocenter/info/memory_netbsd.cpp  
 D             apps/kinfocenter/info/memory_osx.cpp  
 D             apps/kinfocenter/info/memory_sgi.cpp  
 D             apps/kinfocenter/info/memory_solaris.cpp  
 D             apps/kinfocenter/info/memory_tru64.cpp  
 D             apps/kinfocenter/info/pci.desktop  
 D             apps/kinfocenter/kcrootonly.cpp  
 D             apps/kinfocenter/kcrootonly.h  
 M  +0 -12     apps/kinfocenter/kinfocenterui.rc  
 M  +63 -79    apps/kinfocenter/main.cpp  
 M  +19 -20    apps/kinfocenter/main.h  
 A             apps/kinfocenter/memory (directory)  
 A             apps/kinfocenter/memory/CMakeLists.txt  
 A             apps/kinfocenter/memory/Messages.sh  
 A             apps/kinfocenter/memory/base.h   [License: UNKNOWN]
 A             apps/kinfocenter/memory/chartWidget.cpp   [License: GPL (v2+)]
 A             apps/kinfocenter/memory/chartWidget.h   [License: GPL (v2+)]
 A             apps/kinfocenter/memory/kcm_memory.desktop  
 A             apps/kinfocenter/memory/memory.cpp   [License: GPL (v2+)]
 A             apps/kinfocenter/memory/memory.h   [License: GPL (v2+)]
 A             apps/kinfocenter/memory/memory_fbsd.cpp   [POSSIBLY UNSAFE: popen] [License: UNKNOWN]
 A             apps/kinfocenter/memory/memory_hpux.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/memory/memory_linux.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/memory/memory_netbsd.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/memory/memory_osx.cpp   [License: GPL (v2+)]
 A             apps/kinfocenter/memory/memory_sgi.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/memory/memory_solaris.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/memory/memory_tru64.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/memory/physicalMemoryChart.cpp   [License: GPL (v2+)]
 A             apps/kinfocenter/memory/physicalMemoryChart.h   [License: GPL (v2+)]
 A             apps/kinfocenter/memory/swapMemoryChart.cpp   [License: GPL (v2+)]
 A             apps/kinfocenter/memory/swapMemoryChart.h   [License: GPL (v2+)]
 A             apps/kinfocenter/memory/totalMemoryChart.cpp   [License: GPL (v2+)]
 A             apps/kinfocenter/memory/totalMemoryChart.h   [License: GPL (v2+)]
 D             apps/kinfocenter/moduleIface.cpp  
 D             apps/kinfocenter/moduleIface.h  
 D             apps/kinfocenter/moduleiconview.cpp  
 D             apps/kinfocenter/moduleiconview.h  
 M  +74 -272   apps/kinfocenter/modules.cpp  
 M  +35 -86    apps/kinfocenter/modules.h  
 M  +99 -332   apps/kinfocenter/moduletreeview.cpp  
 M  +46 -62    apps/kinfocenter/moduletreeview.h  
 M  +1 -1      apps/kinfocenter/nics/CMakeLists.txt  
 M  +193 -208  apps/kinfocenter/nics/nic.cpp  
 M  +10 -15    apps/kinfocenter/opengl/CMakeLists.txt  
 M  +1 -2      apps/kinfocenter/opengl/opengl.desktop  
 AM            apps/kinfocenter/pci (directory)  
 A             apps/kinfocenter/pci/CMakeLists.txt  
 A             apps/kinfocenter/pci/Messages.sh  
 A             apps/kinfocenter/pci/kcm_pci.cpp   [License: GPL (v2+)]
 A             apps/kinfocenter/pci/kcm_pci.desktop  
 A             apps/kinfocenter/pci/kcm_pci.h   [License: GPL (v2+)]
 A             apps/kinfocenter/pci/pci.cpp   [License: UNKNOWN]
 A             apps/kinfocenter/pci/pci.h   [License: UNKNOWN]
 A             apps/kinfocenter/pci/pci_private.h   [License: UNKNOWN]
 M  +36 -283   apps/kinfocenter/proxywidget.cpp  
 M  +29 -45    apps/kinfocenter/proxywidget.h  
 D             apps/kinfocenter/quickhelp.cpp  
 D             apps/kinfocenter/quickhelp.h  
 D             apps/kinfocenter/searchwidget.cpp  
 D             apps/kinfocenter/searchwidget.h  
 M  +2 -0      apps/kinfocenter/solidproc/kcmsolidproc.desktop  
 M  +141 -402  apps/kinfocenter/toplevel.cpp  
 M  +7 -24     apps/kinfocenter/toplevel.h  
 M  +1 -1      apps/kinfocenter/usbview/CMakeLists.txt  
 M  +114 -137  apps/kinfocenter/usbview/kcmusb.cpp  
 M  +1 -1      apps/kinfocenter/usbview/kcmusb.desktop  
 M  +12 -18    apps/kinfocenter/usbview/kcmusb.h  
 M  +67 -107   apps/kinfocenter/usbview/usbdb.cpp  
 M  +11 -14    apps/kinfocenter/usbview/usbdb.h  
 M  +208 -240  apps/kinfocenter/usbview/usbdevices.cpp   [POSSIBLY UNSAFE: scanf]
 M  +39 -34    apps/kinfocenter/usbview/usbdevices.h  
 D             apps/kinfocenter/version.h  
 M  +1 -2      apps/kinfocenter/view1394/CMakeLists.txt  
 M  +230 -245  apps/kinfocenter/view1394/view1394.cpp  
 M  +31 -34    apps/kinfocenter/view1394/view1394.h  
 M  +1 -1      apps/kinfocenter/view1394/view1394widget.ui  
 M  +1 -1      runtime/kcontrol/infocenter/ioslaveinfo/ioslaveinfo.desktop  


WebSVN link: http://websvn.kde.org/?view=rev&revision=795596