lspci - wypisuje wszystkie urządzenia PCI
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).
- -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.
- -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.
- -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.
- -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
[<vendor>]:[<device>][:<class>[:<prog-if>]]
- Show only devices with specified vendor, device, class ID, and programming
interface. The ID's are given in hexadecimal and may be omitted or given
as "*", both meaning "any value". The class ID can
contain "x" characters which stand for "any digit".
- -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
- Invoke bus mapping mode which performs a thorough scan of all PCI devices,
including those behind misconfigured bridges, etc. This option gives
meaningful results only with a direct hardware access mode, which usually
requires root privileges. By default, the bus mapper scans domain. You can
use the -s option to select a different domain.
- --version
- Wyświetla wersję lspci. Opcja ta powinna być
używana samodzielnie.
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.
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.
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 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.
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.
- /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.
- ~/.pciids-cache
- Wszystkie identyfikatory znalezione w trybie odpytywania DNS są
przechowywane w tym pliku.
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.
setpci(8), pci.ids(5), update-pciids(8),
pcilib(7)
Narzędziami PCI opiekuje się Martin Mares
<mj@ucw.cz>.
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 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.