lspci(8)

NAZWA
lspci - wypisuje wszystkie urządzenia PCI

SKŁADNIA
lspci [opcje]

OPIS
lspci jest narzędziem do wyświetlania informacji o wszystkich szynach PCI systemu i podłączonych do nich urządzeniach. Domyślnie, pokazuje zwięzłą listę urządzeń. Używając opcji opisanych poniżej, można uzyskać bardziej szczegółowy wynik lub wyjście odpowiednie do przetworzenia przez inne programy. Aby zgłaszać błędy w sterownikach PCI lub w samym lspci, proszę dołączyć wynik wywołania "lspci -vvx", a jeszcze lepiej "lspci -vvxxx" (uwzględniając poniższe, ewentualne zastrzeżenia). Niektóre części wyniku, szczególnie w bardzo szczegółowych trybach, są zrozumiałe prawdopodobnie jedynie dla doświadczonych hakerów PCI. Aby poznać dokładne definicje pól, proszę zapoznać się ze specyfikacjami PCI lub plikami header.h i /usr/include/linux/pci.h. Dostęp do niektórych części przestrzeni konfiguracyjnej PCI, w wielu systemach operacyjnych jest ograniczony do roota, zatem funkcje lspci dostępne zwykłym użytkownikom są ograniczone. Program stara się jednak wyświetlić tak dużo informacji, jak tylko jest to możliwe oraz oznaczyć pozostałe informacje tekstem <access denied> (dostęp zastrzeżony).

OPCJE

  Podstawowe tryby wyświetlania

-m  Zrzuca dane urządzenia PCI w kompatybilnej wstecznie postaci czytelnej maszynowo. Patrz niżej.

-mm Zrzuca dane urządzenia PCI w postaci czytelnej maszynowo, do łatwego przetwarzania przez skrypty. Patrz niżej.

-t  Pokazuje drzewiasty diagram zawierający wszystkie szyny, mosty, urządzenia i połączenia między nimi.

  Opcje wyświetlania

-v  Wyświetla szczegółowe informacje o wszystkich urządzeniach.

-vv Wyświetla jeszcze więcej szczegółów. Ten poziom obejmuje wszystko co może okazać się przydatne.

-vvv
    Poziom najbardziej szczegółowy - wyświetlane jest wszystko co program jest w stanie przetworzyć, nawet jeśli wygląda na to całkowicie nieprzydatne (np. niezdefiniowane obszary pamięci).

-k  Pokazuje sterowniki jądra obsługujące każde z urządzeń oraz moduły jądra zdolne je obsłużyć. Włączone domyślnie, gdy podana jest opcja -v w normalnym trybie wyniku (obecnie działa wyłącznie z jądrem Linux 2.6 i nowszym).

-x  Pokazuje szesnastkowy zrzut standardowej części standardowej przestrzeni konfiguracyjnej (pierwsze 64 bajty lub 128 bajtów w przypadku mostków CardBus).

-xxx
    Pokazuje szesnastkowy zrzut całej przestrzeni konfiguracyjnej PCI. Dostępne tylko dla roota, gdyż część urządzeń PCI załamuje się gdy próbuje się odczytać niezdefiniowane obszary przestrzeni konfiguracyjnej (zachowanie to prawdopodobnie nie narusza standardu PCI, lecz jest co najmniej bardzo głupie). Ponieważ jednak takie urządzenia są rzadkością, nie należy się tym zbytnio przejmować.

-xxxx
    Pokazuje szesnastkowy zrzut rozszerzonej (4096-bajtowej) przestrzeni konfiguracyjnej PCI dostępnej w szynach PCI-X 2.0 i PCI Express.

-b  Widok szynocentryczny. Pokazuje wszystkie numery IRQ i adresy widziane przez karty na szynie PCI, zamiast punktu widzenia jądra.

-D  Zawsze wyświetla liczby domen PCI. Domyślnie, lspci nie czyni tego w przypadku komputerów posiadających wyłącznie domenę 0.

-P  Identify PCI devices by path through each bridge, instead of by bus number.

-PP Identify PCI devices by path through each bridge, showing the bus number as well as the device number.

  Opcje do kontroli przetwarzania identyfikatorów na nazwy

-n  Pokazuje dystrybutora PCI oraz kody urządzenia jako numery, bez rozwijania ich w bazie danych ID PCI.

-nn Pokazuje dystrybutora PCI oraz kody urządzenia jako numery oraz nazwy.

-q  Używa DNS do odpytania głównej bazy identyfikatorów PCI, jeśli urządzenie nie zostanie znalezione w lokalnym pliku pci.ids. Jeśli się to powiedzie, wynik jest buforowany w ~/.pciids-cache i jest rozpoznawany w kolejnych uruchomieniach programu nawet, jeśli nie poda się opcji -q ponownie. Proszę rozważnie używać tego przełącznika w automatycznych skryptach, aby zapobiec przeciążeniu serwerów z bazą danych.

-qq To samo co -q, ale lokalny bufor podręczny jest resetowany.

-Q  Odpytuje centralną bazę danych nawet, jeśli wpisy są rozpoznawane lokalnie. Proszę użyć tej opcji, w przypadku podejrzenia, że wyświetlany wpis jest nieprawidłowy.

  Opcje do wybierania urządzeń

-s [[[[<domain>]:]<bus>]:][<device>][.[<func>]]
    Show only devices in the specified domain (in case your machine has several host bridges, they can either share a common bus number space or each of them can address a PCI domain of its own; domains are numbered from 0 to ffff), bus (0 to ff), device (0 to 1f) and function (0 to 7). Each component of the device address can be omitted or set to "*", both meaning "any value". All numbers are hexadecimal. E.g., "0:" means all devices on bus 0, "0" means all functions of device 0 on any bus, "0.3" selects third function of device 0 on all buses and ".4" shows only the fourth function of each device.

-d [<vendor>]:[<device>][:<class>]
    Show only devices with specified vendor, device and class ID. The ID's are given in hexadecimal and may be omitted or given as "*", both meaning "any value".

  Inne opcje

-i <plik>
    Use <file> as the PCI ID list instead of /usr/share/hwdata/pci.ids.

-p <plik>
    Używa <pliku> jako mapy identyfikatorów PCI obsługiwanych przez moduły jądra. Domyślnie, lspci używa /lib/modules/wersja_jądra/modules.pcimap. Dotyczy tylko systemów Linux z odpowiednio nowymi narzędziami modułów.

-M  Przywołuje tryb mapowania szyny, który przeprowadza dokładne skanowanie wszystkich urządzeń PCI, w tym źle skonfigurowanych mostków itp. Ta opcja daje przydatne rezultaty wyłącznie w trybie bezpośredniego dostępu do sprzętu, który zazwyczaj wymaga uprawnień roota. Proszę zauważyć, że skanowana jest tylko domena 0 PCI.

--version
    Wyświetla wersję lspci. Opcja ta powinna być używana samodzielnie.

  Opcje dostępu do PCI

Narzędzia PCI używają biblioteki PCI do porozumiewania się z urządzeniami PCI (patrz pcilib(7), aby dowiedzieć się więcej). Aby wpłynąć na jej zachowanie można użyć następujących opcji:

-A <metoda>
    Biblioteka obsługuje wiele metod dostępu do sprzętu PCI. Domyślnie używa pierwszej dostępnej metody, ale można użyć tej opcji, aby przesłonić tę decyzję. Dostępne metody wraz z ich opisami można uzyskać za pomocą opcji -A help.

-O <parametr>=<wartość>
    Zachowanie biblioteki jest kontrolowane przez kilka nazwanych parametrów. Opcja pozwala ustawić wartość dowolnych z nich. Aby poznać rozpoznawane parametry i ich domyślne wartości proszę użyć opcji -O help.

-H1 Używa bezpośredniego dostępu do sprzętu poprzez mechanizm 1 konfiguracji Intela (jest to skrócona postać -A intel-conf1).

-H2 Używa bezpośredniego dostępu do sprzętu poprzez mechanizm 2 konfiguracji Intela (jest to skrócona postać -A intel-conf2).

-F <plik>
    Zamiast uzyskiwać dostęp do rzeczywistego sprzętu, odczytuje listę urządzeń i wartości ich rejestrów konfiguracyjnych z podanego pliku, uzyskanego wcześniej poleceniem lspci -x. Jest to przydatne do analizowania przekazanych przez użytkowników raportów o błędach, gdyż można wyświetlić konfigurację sprzętową w dowolnym stylu bez męczenia użytkownika o nowe zrzuty.

-G  Zwiększa poziom debugowania w bibliotece.

WYNIK ODCZYTYWALNY MASZYNOWO
Jeśli zamiarem użytkownika jest automatyczne przetworzenie wyjścia lspci, należy użyć jednego z formatów wyniku odczytywalnego maszynowo (-m, -vm, -vmm) opisanego w tym rozdziale. Wszystkie inne formaty mogą się zmienić pomiędzy wersjami lspci.

Wszystkie liczby są wyświetlane zawsze w postaci szesnastkowej. Aby przetworzyć identyfikatory numeryczne zamiast nazw, proszę dodać przełącznik -n.

  Format prosty (-m)
W formacie prostym, każde urządzenie jest opisane w pojedynczym wierszu, który jest sformatowany jako parametry odpowiednie do podania do skryptu powłoki tzn. wartości są oddzielone białymi znakami, jeśli to konieczne zastosowane jest cytowanie. Część argumentów jest pozycyjna: slot, klasa, nazwa dostawcy, nazwa urządzenia, nazwa dostawcy podsystemu i nazwa podsystemu (dwie ostatnie są puste, jeśli urządzenie nie ma podsystemu); pozostałe argumenty wyglądają jak opcje:

-rrew
    Numer rewizji.

-pintprog
    Interfejs programistyczny.

Względna kolejność argumentów pozycyjnych i opcji jest niezdefiniowana. W przyszłych wersjach mogą zostać dodane nowe opcje, ale będą one zawsze posiadały pojedynczy argument, nieoddzielony od opcji spacjami - dzięki czemu mogą być łatwo zignorowane, jeśli nie zostaną rozpoznane.

  Format szczegółowy (-vmm)
Format szczegółowy jest sekwencją rekordów oddzielonych pustymi wierszami. Każdy rekord opisuje pojedyncze urządzenie za pomocą sekwencji wierszy, a każdy wiersz zawiera pojedynczą parę "znacznik: wartość". Znacznik i wartość są oddzielone pojedynczym znakiem tabulacji. Rekordy ani wiersze wewnątrz rekordów nie posiadają określonej kolejności. W znacznikach istotna jest wielkość liter.

Zdefiniowano następujące znaczniki:

Slot
    Nazwa slotu, w którym istnieje urządzenie ([domena:]szyna:urządzenie.funkcja). Ten znacznik jest zawsze pierwszy w rekordzie.

Class
    Nazwa klasy.

Vendor
    Nazwa dostawcy.

Device
    Nazwa urządzenia.

SVendor
    Nazwa dostawcy podsystemu (opcjonalna).

SDevice
    Nazwa podsystemu (opcjonalna).

PhySlot
    Fizyczne gniazdo, w którym znajduje się urządzenie (opcjonalne, tylko Linux).

Rev Numer rewizji (opcjonalny).

ProgIf
    Interfejs programistyczny (opcjonalny).

Driver
    Sterownik jądra, który aktualnie obsługuje urządzenie (opcjonalny, tylko Linux).

Module
    Kernel module reporting that it is capable of handling the device (optional, Linux only). Multiple lines with this tag can occur.

NUMANode
    NUMA node this device is connected to (optional, Linux only).

IOMMUGroup
    IOMMU group that this device is part of (optional, Linux only).

W kolejnych wersjach mogą zostać dodane nowe znaczniki, dlatego należy po cichu ignorować te, które nie zostaną rozpoznane.

  Wstecznie kompatybilny format szczegółowy (-vm)
W tym trybie, lspci stara się być dokładnie kompatybilnym ze starszymi wersjami programu. Jest to prawie ten sam format co zwykły format szczegółowy, jednak znacznik Device jest używany zarówno jako nazwa slotu, jak i nazwa urządzenia, tak więc pojawia się dwukrotnie w pojedynczym rekordzie. Proszę nie używać tego formatu w nowo tworzonym kodzie.

PLIKI

/usr/share/hwdata/pci.ids
    A list of all known PCI ID's (vendors, devices, classes and subclasses). Maintained at https://pci-ids.ucw.cz/, use the update-pciids utility to download the most recent version.

/usr/share/hwdata/pci.ids.gz
    Jeśli lspci jest skompilowane z obsługą kompresji, to ten plik jest wypróbowywany przed pci.ids.

~/.pciids-cache
    Wszystkie identyfikatory znalezione w trybie odpytywania DNS są przechowywane w tym pliku.

BŁĘDY
Czasami lspci nie jest w stanie całkowicie zdekodować rejestrów konfiguracyjnych. Zdarza się to zwykle gdy autorzy nie posiadali wystarczającej dokumentacji. W takich przypadkach wyświetlane jest przynajmniej <?>, aby zasygnalizować, że być może da się wydobyć więcej informacji. Autorzy chętnie przyjmą łatki, jeśli ktoś zechce uzupełnić te braki. Dostęp do rozszerzonej przestrzeni konfiguracyjnej jest obecnie obsługiwany wyłącznie przez backend linux-sysfs.

ZOBACZ TAKŻE
setpci(8), pci.ids(5), update-pciids(8), pcilib(7)

AUTOR
Narzędziami PCI opiekuje się Martin Mares <mj@ucw.cz>.

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl> i Michał Kułach <michal.kulach@gmail.com> Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres manpages-pl-list@lists.sourceforge.net.