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  Identyfikuje urządzenia PCI przez ścieżkę każdego mostu, zamiast za pomocą numeru szyny.

-PP Identyfikuje urządzenia PCI przez ścieżkę każdego mostu, pokazując zarówno numer szyny jak i numer urządzenia.

  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 $XDG_CACHE_HOME/pci-ids 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 [[[[<domena>]:]<szyna>]:][<urządzenie>][.[<funkcja>]]
    Pokazuje urządzenia tylko w określonej: domenie (w przypadku jeśli ten komputer posiada kilka mostków głównych, mogą one albo współdzielić wspólną przestrzeń numerów szyn, albo każdy z nich może adresować swoją domenę PCI; domeny są numerowane od 0 do ffff), szynie (0 do ff), urządzeniu (0 do 1f) i funkcji (0 do 7). Każdy komponent adresu urządzenia można pominąć lub oznaczyć gwiazdką, co oznacza dowolną wartość. Wszystkie numery są szesnastkowe. Np. "0:" oznacza wszystkie urządzenia na szynie 0, "0" oznacza wszystkie funkcje urządzenia 0 na dowolnej szynie, "0.3" wybiera trzecią funkcję urządzenia 0 na wszystkich szynach, a ".4" pokazuje czwartą funkcję każdego urządzenia.

-d [<dostawca>]:[<urządzenie>][:<klasa>][:<interf-program>]]
    Pokazuje tylko urządzenia o określonym ID dystrybutora, urządzenia, klasy i interfejsu programistycznego. Obydwa identyfikatory są podawane szesnastkowo i mogą być pominięte lub określone jako "*" (w obu przypadkach oznacza to "dowolne"). Identyfikator klasy może zawierać znaki "x" oznaczające "dowolna cyfra".

  Inne opcje

-i <plik>
    Używa <pliku> jako listy identyfikatorów PCI, zamiast pliku /usr/share/misc/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. Domyślnie skanowana jest tylko domena. Można użyć opcji -s aby wybrać inną domenę.

--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
    Moduł jądra, który wskazuje że jest zdolny obsłużyć to urządzenie (opcjonalny, tylko Linux). Może się pojawić wiele wierszy z tym znacznikiem.

NUMANode
    Węzeł NUMA, z którym połączone jest urządzenie (opcjonalne, tylko Linux).

IOMMUGroup
    Grupa IOMMU, której częścią jest urządzenie (opcjonalne, tylko Linux).

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/misc/pci.ids
    Lista wszystkich znanych identyfikatorów PCI (dostawcy, urządzenia, klasy i podklasy). Zarządzana na stronie https://pci-ids.ucw.cz/, proszę użyć narzędzia update-pciids aby pobrać najnowszą wersję.

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

$XDG_CACHE_HOME/pci-ids
    Wszystkie identyfikatory znalezione w trybie odpytywania DNS są przechowywane w tym pliku.

USTERKI

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
Tłumaczenie niniejszej strony podręcznika: 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 listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.