lspci - wypisuje wszystkie urządzenia PCI
lspci [opcje]
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 <
[email protected]>.
Autorami polskiego tłumaczenia niniejszej strony podręcznika
są: Przemek Borys <
[email protected]> i Michał
Kułach <
[email protected]>
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
[email protected]