X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=README;h=04e9348f5b5a601b31bce336e016d4f13d42dced;hb=b6e558fb75b6e46b9a10d2b1e5c10c346b412331;hp=d784b8608cf70de2c7d5b099ff6167b54c923845;hpb=ab12277ebc10a443b4aeba834c2e05481d1bb78a;p=pciutils.git diff --git a/README b/README index d784b86..04e9348 100644 --- a/README +++ b/README @@ -1,26 +1,13 @@ This package contains the PCI Utilities, version @VERSION@. -Copyright (c) 1997--2003 Martin Mares +Copyright (c) 1997--2023 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. See http://www.gnu.org/ for details. - - -############################################################################ - -Beware, this is a preliminary test version! Anything might not work! - -Some more things I intend to merge before the 2.2.0 release: - - o pcimodules and possibly other Linux module related stuff - o Linux sysfs support - o Support for PCI domains (at least partially; needed for sysfs) - o New ID's from the pciids project - o Cross-compilation support - -############################################################################ +(at your opinion) any newer version. See https://www.gnu.org/ for details. +The author wants to clarify that he does not consider programs which link +dynamically to the libpci to be derived works of the library. 1. What's that? @@ -28,14 +15,31 @@ Some more things I intend to merge before the 2.2.0 release: 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 (via cfgmgr32 or direct port access, see README.Windows for caveats) + CYGWIN (direct port access) + BeOS (via syscalls) + Haiku (via /dev/misc/poke) + Darwin (via IOKit) + DOS/DJGPP (via i386 ports) + SylixOS (via /proc/pci) + +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. @@ -48,73 +52,99 @@ The utilities include: (See manual pages for more details) 2. Compiling and (un)installing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Just run "make" to compile the package and then "make install" to install it. +Please note that a C compiler supporting the C99 standard is required. +Also, 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 IDs + 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 +3. Getting new IDs ~~~~~~~~~~~~~~~~~~~ -The database of PCI ID's (the pci.ids file) gets out of date much faster -than I release new versions of this package. +The database of PCI IDs (the pci.ids file) gets out of date much faster +than I release new versions of this package, so it is maintained separately. + +It lives at https://pci-ids.ucw.cz/, where you can browse the database, +download the most recent pci.ids file (e.g., by running the update-ids utility) +and also submit new entries. + +Alternatively, you can use `lspci -q' to query the central database +for new entries via network. -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). +The pci.ids file is also mirrored at https://github.com/pciutils/pciids. -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. +On Linux systems with a recent enough version of libudev, UDEV's HWDB +database is consulted when pci.ids lacks the device. -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 +~~~~~~~~~~~~~~~~~~~~~~~ +The current version of pciutils is available 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 + https://mj.ucw.cz/sw/pciutils/ + +The tarball can be downloaded at the following places: + + https://mj.ucw.cz/download/linux/pci/ + ftp://ftp.ucw.cz/pub/mj/linux/pci/ + https://www.kernel.org/pub/software/utils/pciutils/ (expect a couple of hours delay) + +There is also a public GIT tree at: + + https://git.kernel.org/pub/scm/utils/pciutils/pciutils.git + https://github.com/pciutils/pciutils 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 ~~~~~~~~~~~ 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@atrey.karlin.mff.cuni.cz (send -"subscribe linux-pci" to majordomo@atrey.karlin.mff.cuni.cz). -Release notes about new versions will be send to the list and problems with -the Linux PCI support will be probably discussed there, too. - - -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 . +If you have any new IDs, I'll be very glad to add them to the database. +Just submit them at https://pci-ids.ucw.cz/. -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. +Announcements of new versions are sent to linux-pci@vger.kernel.org +(see http://vger.kernel.org/ for instructions). Have fun Martin