]>
Commit | Line | Data |
---|---|---|
ab12277e | 1 | This package contains the PCI Utilities, version @VERSION@. |
2f48f637 | 2 | |
c5cf60d7 | 3 | Copyright (c) 1997--2024 Martin Mares <mj@ucw.cz> |
2f48f637 MM |
4 | |
5 | All files in this package can be freely distributed and used according | |
6 | to the terms of the GNU General Public License, either version 2 or | |
633e6f81 | 7 | (at your opinion) any newer version. See https://www.gnu.org/ for details. |
2f48f637 | 8 | |
53e73b36 MM |
9 | The author wants to clarify that he does not consider programs which link |
10 | dynamically to the libpci to be derived works of the library. | |
11 | ||
727ce158 | 12 | |
07159913 MM |
13 | 1. What's that? |
14 | ~~~~~~~~~~~~~~~ | |
15 | The PCI Utilities package contains a library for portable access to PCI bus | |
16 | configuration registers and several utilities based on this library. | |
727ce158 | 17 | |
0ac282f2 MM |
18 | In runs on the following systems: |
19 | ||
20 | Linux (via /sys/bus/pci, /proc/bus/pci or i386 ports) | |
21 | FreeBSD (via /dev/pci) | |
22 | NetBSD (via libpci) | |
ebbd5e81 | 23 | OpenBSD (via /dev/pci or i386 ports) |
0ac282f2 MM |
24 | GNU/kFreeBSD (via /dev/pci) |
25 | Solaris/i386 (direct port access) | |
26 | Aix (via /dev/pci and odmget) | |
27 | GNU Hurd (direct port access) | |
83b2cb2e | 28 | Windows (via cfgmgr32 or direct port access, see README.Windows for caveats) |
550d67d1 | 29 | CYGWIN (direct port access) |
40e253d7 FR |
30 | BeOS (via syscalls) |
31 | Haiku (via /dev/misc/poke) | |
8d1cb3d7 | 32 | Darwin (via IOKit) |
5c5ce192 | 33 | DOS/DJGPP (via i386 ports) |
5f22f791 | 34 | SylixOS (via /proc/pci) |
5b52ae79 | 35 | AmigaOS on PPC (via Expansion library) |
0ac282f2 | 36 | |
81abd2a7 MM |
37 | It should be very easy to add support for other systems as well (volunteers |
38 | wanted; if you want to try that, I'll be very glad to see the patches and | |
39 | include them in the next version). | |
b2c9b373 | 40 | |
07159913 | 41 | The utilities include: (See manual pages for more details) |
b2c9b373 | 42 | |
46ea554d | 43 | - lspci: displays detailed information about all PCI buses and devices. |
b2c9b373 | 44 | |
07159913 MM |
45 | - setpci: allows to read from and write to PCI device configuration |
46 | registers. For example, you can adjust the latency timers with it. | |
47 | CAUTION: There is a couple of dangerous points and caveats, please read | |
48 | the manual page first! | |
2f48f637 | 49 | |
1b95f396 MM |
50 | - update-pciids: download the current version of the pci.ids file. |
51 | ||
c5cf60d7 MM |
52 | - pcilmr: performs margining on PCIe links. |
53 | ||
f3395cc5 | 54 | |
07159913 MM |
55 | 2. Compiling and (un)installing |
56 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
57 | Just run "make" to compile the package and then "make install" to install it. | |
f7f2966b MM |
58 | Please note that a C compiler supporting the C99 standard is required. |
59 | Also, GNU make is needed on most platforms. | |
2f48f637 | 60 | |
07159913 | 61 | If you want to change the default installation location, please override |
f4ddb8d3 MM |
62 | the PREFIX variable specified in the Makefile -- e.g., you can use |
63 | "make PREFIX=/opt/pciutils install" to create a separate installation | |
64 | not interfering with the rest of your system. Setting the DESTDIR variable | |
65 | will allow you to install to a different directory from the one you intend | |
66 | to eventually run it from. This is useful for people who are packaging | |
67 | pciutils to install on other computers. | |
07159913 | 68 | |
d7ea742c MM |
69 | There are several options which can be set in the Makefile or overridden |
70 | when running make: | |
71 | ||
72 | ZLIB=yes/no Enable support for compressed pci.ids (requires zlib). | |
73 | If it is enabled, pciutils will use pci.ids.gz in preference to | |
74 | pci.ids, even if the pci.ids file is newer. If the pci.ids.gz | |
75 | file is missing, it will use pci.ids instead. If you do not | |
76 | specify this option, the configure script will try to guess | |
77 | automatically based on the presence of zlib. | |
78 | ||
dab118d2 | 79 | DNS=yes/no Enable support for querying the central database of PCI IDs |
d7ea742c MM |
80 | using DNS. Requires libresolv (which is available on most |
81 | systems as a part of the standard libraries) and tries to | |
82 | autodetect its presence if the option is not specified. | |
83 | ||
2f421184 | 84 | SHARED=yes/ Build libpci as a shared library. Requires GCC 4.0 or newer. |
d7ea742c MM |
85 | no/local The ABI of the shared library is intended to remain backward |
86 | compatible for a long time (we use symbol versioning to achieve | |
87 | that, like GNU libc does). The value `local' includes the | |
88 | right directory name in the binaries, so the utilities can be | |
89 | run without installation. This is not recommended for any | |
90 | production builds. | |
91 | ||
92 | "make install-lib" installs the library together with its header files | |
93 | for use by other programs. | |
cc062b4a | 94 | |
07159913 MM |
95 | When you are bored of dumping PCI registers, just use "make uninstall". |
96 | ||
97 | ||
dab118d2 | 98 | 3. Getting new IDs |
07159913 | 99 | ~~~~~~~~~~~~~~~~~~~ |
dab118d2 MM |
100 | The database of PCI IDs (the pci.ids file) gets out of date much faster |
101 | than I release new versions of this package, so it is maintained separately. | |
07159913 | 102 | |
633e6f81 | 103 | It lives at https://pci-ids.ucw.cz/, where you can browse the database, |
dab118d2 MM |
104 | download the most recent pci.ids file (e.g., by running the update-ids utility) |
105 | and also submit new entries. | |
a33d0eb7 | 106 | |
14b85d7c MM |
107 | Alternatively, you can use `lspci -q' to query the central database |
108 | for new entries via network. | |
109 | ||
cb968b8f | 110 | The pci.ids file is also mirrored at https://github.com/pciutils/pciids. |
07159913 | 111 | |
b5847329 MM |
112 | On Linux systems with a recent enough version of libudev, UDEV's HWDB |
113 | database is consulted when pci.ids lacks the device. | |
114 | ||
07159913 | 115 | |
0ac282f2 MM |
116 | 4. Getting new versions |
117 | ~~~~~~~~~~~~~~~~~~~~~~~ | |
dab118d2 MM |
118 | The current version of pciutils is available at: |
119 | ||
633e6f81 | 120 | https://mj.ucw.cz/sw/pciutils/ |
dab118d2 MM |
121 | |
122 | The tarball can be downloaded at the following places: | |
0ac282f2 | 123 | |
310a33cf MM |
124 | https://mj.ucw.cz/download/linux/pci/ |
125 | ftp://ftp.ucw.cz/pub/mj/linux/pci/ | |
e4d209fd | 126 | https://www.kernel.org/pub/software/utils/pciutils/ (expect a couple of hours delay) |
0ac282f2 MM |
127 | |
128 | There is also a public GIT tree at: | |
129 | ||
633e6f81 | 130 | https://git.kernel.org/pub/scm/utils/pciutils/pciutils.git |
cb968b8f | 131 | https://github.com/pciutils/pciutils |
07159913 MM |
132 | |
133 | ||
134 | 5. Using the library | |
135 | ~~~~~~~~~~~~~~~~~~~~ | |
14b85d7c MM |
136 | So far, there is only a little documentation for the library except for the |
137 | general introduction in the pcilib(7) man page. If you want to use the | |
138 | library in your programs, please follow the comments in lib/pci.h and in | |
bc46bc39 | 139 | the example program example.c. |
07159913 MM |
140 | |
141 | ||
142 | 6. Feedback | |
143 | ~~~~~~~~~~~ | |
144 | If you have any bug reports or suggestions, send them to the author. | |
145 | ||
dab118d2 | 146 | If you have any new IDs, I'll be very glad to add them to the database. |
633e6f81 | 147 | Just submit them at https://pci-ids.ucw.cz/. |
783ed67d | 148 | |
dab118d2 MM |
149 | Announcements of new versions are sent to linux-pci@vger.kernel.org |
150 | (see http://vger.kernel.org/ for instructions). | |
2bea6231 | 151 | |
55c815b5 MM |
152 | Have fun |
153 | Martin |