X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=README;h=3e70fb34f4df750c12b12f74bd056ac38508d12a;hb=1c702facf4cbf0cda71f991e26fc750b3538b0ad;hp=3f53ea7605c0c72d3f42a454f96799de5c35a4f3;hpb=1c31d620ede1b47e3113aefa4e4b66d3191b166a;p=pciutils.git diff --git a/README b/README index 3f53ea7..3e70fb3 100644 --- a/README +++ b/README @@ -1,55 +1,148 @@ -This package contains the Linux PCI Utilities, version 1.99.4-alpha. +This package contains the PCI Utilities, version @VERSION@. -Copyright (c) 1997--1999 Martin Mares +Copyright (c) 1997--2009 Martin Mares 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 -(at your opinion) any newer version. This is the same distribution -policy as for the Linux kernel itself -- see /usr/src/linux/COPYING -for details. +(at your opinion) any newer version. See http://www.gnu.org/ for details. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -BIG FAT WARNING: This is an ALPHA version. The documentation is out of date - and the same holds for spec files and even for this README. - And, of course, you should expect this release to contain BUGS. -WHY ALPHA? I've split the real PCI access primitives from the rest - of the code and created libpci, which supports not only - /proc/bus/pci, but also direct hardware access and reading - of configuration space dumps and it's intended to work - on all Linux versions and even on non-Linux systems, making - creation of portable programs communicating with PCI devices - possible. +1. What's that? +~~~~~~~~~~~~~~~ +The PCI Utilities package contains a library for portable access to PCI bus +configuration registers and several utilities based on this library. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +In runs on the following systems: - The Linux PCI Utilities contain various utilities for dealing with the PCI -bus in Linux: + 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) + CYGWIN (direct port access) - - lspci: displays detailed information about all PCI busses and devices - in the system, replacing the original /proc/pci interface. +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). - - setpci: allows to read from and write to PCI device configuration - registers. For example, you can adjust the latency timers with it. +The utilities include: (See manual pages for more details) - See manual pages for more details. + - lspci: displays detailed information about all PCI buses and devices. - You need kernel 2.1.82 or newer to use all functions of this package. -For older kernels, only direct hardware access is supported and you must -be root to use it. + - setpci: allows to read from and write to PCI device configuration + registers. For example, you can adjust the latency timers with it. + CAUTION: There is a couple of dangerous points and caveats, please read + the manual page first! - If you have any bug reports or suggestions, send them to the author. + - update-pciids: download the current version of the pci.ids file. - If you want, subscribe to linux-pci@atrey.karlin.mff.cuni.cz (send -"subscribe linux-pci Your Full Name" to listproc@atrey.karlin.mff.cuni.cz). + +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 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". + + +3. Getting new ID's +~~~~~~~~~~~~~~~~~~~ +The database of PCI ID's (the pci.ids file) gets out of date much faster +than I release new versions of this package. + +If you are missing names for any of your devices or you just want to stay +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. 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: + + git://git.kernel.org/pub/scm/utils/pciutils/pciutils.git + + +5. Using the library +~~~~~~~~~~~~~~~~~~~~ +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 +~~~~~~~~~~~ +If you have any bug reports or suggestions, send them to the author. + +If you have any new ID's, I'll be very glad to add them to the database, but +please take a look at http://pciids.sf.net/ first and follow the instructions. + +If you want, subscribe to linux-pci@vger.kernel.org (take a look at +http://vger.kernel.org/ for instructions). Release notes about new versions will be send to the list and problems with the Linux PCI support will be probably discussed there, too. - 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. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +7. Miscellanea +~~~~~~~~~~~~~~ +You also might want to look at the pciutils web page containing release +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 +in Linux kernel (already removed in 2.3.x). See http://powertweak.sf.net/ +for more information. -TODO: - - lspci: "scan hard" function - - lib: "syscall" access method + Have fun + Martin