-This package contains the PCI Utilities, version 2.1.99-test1.
+This package contains the PCI Utilities, version @VERSION@.
-Copyright (c) 1997--2003 Martin Mares <mj@ucw.cz>
+Copyright (c) 1997--2008 Martin Mares <mj@ucw.cz>
All files in this package can be freely distributed and used according
to the terms of the GNU General Public License, either version 2 or
The PCI Utilities package contains a library for portable access to PCI bus
configuration registers and several utilities based on this library.
-Currently, pciutils work on all versions of Linux and they also have somewhat
-experimental support for FreeBSD, NetBSD and AIX. It should be very easy to add
-support for other systems as well (volunteers wanted; if you want to try that,
-please send the patches to me, so that I can include them in the next version).
+In runs on the following systems:
+
+ Linux (via /sys/bus/pci, /proc/bus/pci or i386 ports)
+ FreeBSD (via /dev/pci)
+ NetBSD (via libpci)
+ OpenBSD (via /dev/pci)
+ GNU/kFreeBSD (via /dev/pci)
+ Solaris/i386 (direct port access)
+ Aix (via /dev/pci and odmget)
+ GNU Hurd (direct port access)
+ Windows (direct port access)
+
+It should be very easy to add support for other systems as well (volunteers
+wanted; if you want to try that, I'll be very glad to see the patches and
+include them in the next version).
The utilities include: (See manual pages for more details)
- - lspci: displays detailed information about all PCI busses and devices.
+ - lspci: displays detailed information about all PCI buses and devices.
- setpci: allows to read from and write to PCI device configuration
registers. For example, you can adjust the latency timers with it.
2. Compiling and (un)installing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Just run "make" to compile the package and then "make install" to install it.
+Please note that GNU make is needed on most platforms.
If you want to change the default installation location, please override
-the ROOT and PREFIX variables specified in the Makefile -- e.g., you can
-use "make PREFIX=/opt/pciutils ROOT=/opt/pciutils install" to create
-a separate installation not interfering with the rest of your system.
+the PREFIX variable specified in the Makefile -- e.g., you can use
+"make PREFIX=/opt/pciutils install" to create a separate installation
+not interfering with the rest of your system. Setting the DESTDIR variable
+will allow you to install to a different directory from the one you intend
+to eventually run it from. This is useful for people who are packaging
+pciutils to install on other computers.
+
+There are several options which can be set in the Makefile or overridden
+when running make:
+
+ ZLIB=yes/no Enable support for compressed pci.ids (requires zlib).
+ If it is enabled, pciutils will use pci.ids.gz in preference to
+ pci.ids, even if the pci.ids file is newer. If the pci.ids.gz
+ file is missing, it will use pci.ids instead. If you do not
+ specify this option, the configure script will try to guess
+ automatically based on the presence of zlib.
+
+ DNS=yes/no Enable support for querying the central database of PCI ID's
+ using DNS. Requires libresolv (which is available on most
+ systems as a part of the standard libraries) and tries to
+ autodetect its presence if the option is not specified.
+
+ SHARED=yes/ Build libpci as a shared library. Requires GCC 4.0 or newer.
+ no/local The ABI of the shared library is intended to remain backward
+ compatible for a long time (we use symbol versioning to achieve
+ that, like GNU libc does). The value `local' includes the
+ right directory name in the binaries, so the utilities can be
+ run without installation. This is not recommended for any
+ production builds.
+
+"make install-lib" installs the library together with its header files
+for use by other programs.
When you are bored of dumping PCI registers, just use "make uninstall".
on the bleeding edge, download the most recent pci.ids file from
http://pciids.sf.net/ (e.g., by running the update-ids utility).
+Alternatively, you can use `lspci -q' to query the central database
+for new entries via network.
+
If your devices still appear as unknown, please send us their ID's and
names, the detailed instructions for submissions are listed on the
sf.net web page.
-4. Available access methods
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The library (and therefore all the utilities) know a variety of methods for
-accessing the PCI registers. Here is a list of them:
+4. Getting new versions
+~~~~~~~~~~~~~~~~~~~~~~~
+New versions of pciutils are available at the following places:
+
+ ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/
+ ftp://ftp.kernel.org/pub/software/utils/pciutils/ (expect a couple of hours delay)
+ ftp://metalab.unc.edu/pub/Linux/hardware/ (expect a couple of days delay)
+
+There is also a public GIT tree at:
- /proc/bus/pci on all Linux systems since kernel 2.1.82.
- direct port access on all Linux systems with i386, to be used when
- /proc/bus/pci is unavailable or you want to scan
- the bus manually when hunting kernel bugs.
- dumps reading of dumps produced by `lspci -x'.
- lsdev + odmget used on AIX
- /dev/pci used on FreeBSD
- libpci used on NetBSD
+ git://git.kernel.org/pub/scm/utils/pciutils/pciutils.git
5. Using the library
~~~~~~~~~~~~~~~~~~~~
-There is still no documentation for the library, if you want to use it
-in your programs, please follow the comments in lib/pci.h and in the
-example program lib/example.c.
+So far, there is only a little documentation for the library except for the
+general introduction in the pcilib(7) man page. If you want to use the
+library in your programs, please follow the comments in lib/pci.h and in
+the example program example.c.
6. Feedback
7. Miscellanea
~~~~~~~~~~~~~~
You also might want to look at the pciutils web page containing release
-notes and other news: http://atrey.karlin.mff.cuni.cz/~mj/pciutils.html .
+notes and other news: http://mj.ucw.cz/pciutils.shtml .
There also exists a utility called PowerTweak which is able to fine tune
parameters of many chipsets much better than the Bridge Optimization code