SETSERIAL(8) | Podręcznik programisty linuksowego | SETSERIAL(8) |
setserial - pobierz/ustaw informacje o porcie szeregowym
setserial [ -abqvVWz ] device [ parameter1 [ arg ] ] ...
setserial -g [ -abGv ] device1 ...
Uwaga! To tłumaczenie może być nieaktualne!
setserial jest programem przeznaczonym do ustawiania i/lub raportowania danych konfiguracyjnych związanych z portem szeregowym. Dane te zawierają port I/O, numer IRQ, to czy klawisz break powinien być interpretowany jako Secure Attention Key, itd.
Podczas normalnego bootowania, inicjalizowane są jedynie porty COM 1-4; używane są przy tym domyślne wartości portów I/O i IRQ. Aby zainicjalizować dodatkowe porty szeregowe, lub aby zmienić konfiguracje portów 1-4, musisz użyć programu setserial. Zazwyczaj jest on wołany ze skryptu rc.serial, który z kolei jest normalnie uruchamiany z /etc/rc.local.
Argument(y) device określa, które urządzenie szeregowe ma być skonfigurowane lub odpytane. Zazwyczaj przyjmuje postać /dev/cua[0-3].
Bez parametrów, setserial drukuje rodzaj portu np. 8250, 16450, 16550, 16550A), sprzętowy port I/O, sprzętową linię IRQ, szybkość i niektóre flagi operacyjne.
Przy podanej opcji -g, argumenty setserial są interpretowane jako lista urządzeń, dla których należy wydrukować charakterystykę.
Bez opcji -g, pierwszy argument jest interpretowany jako urządzenie do zmodyfikowania lub do wydrukowania charakterystyki, a dodatkowe argumenty interpretowane są jako parametry, które powinny być zaaplikowane do tego urządzenia.
W większości wypadków wymagane są uprawnienia superużytkownika. Jednak kilka opcji portów mogą ustawiać zwykli użytkownicy i opcje te zostaną zaznaczone jako wyjątki w tym podręczniku.
Setserial przyjmuje następujące opcje:
Portowi szeregowemu można przyznać niżej wymienione parametry.
Wszystkie wartości argumentów są wartościami dziesiętnymi, chyba że poprzedzone są "0x".
Niektóre modemy wewnętrzne są oznaczone jako mające "UART 16550A z buforem 1K" Jest to kłamstwo. Nie mają w rzeczywistości UART-a kompatybilnego z 16550A; zamiast niego mają UART kompatybilny z 16450 z 1K buforem odbiorczym dla zapobiegania spustoszeniom u odbiorcy. Jest to istotne, ponieważ nie mają one transmitującego FIFO. Dlatego nie są kompatybilne z UART-em 16550A i proces autokonfiguracji zidentyfikuje je prawidłowo jako 16450. Jeśli spróbujesz obejść to, używając parametru uart, pojawią się porzucone znaki podczas transmisji plików. UART-y te mają zwykle inne problemy: parametr skip_test powinien być również często podawany.
Zastosowanie tego parametru odnosi się do getty, które są blokowane na liniach wdzwaniających portów szeregowych. Umożliwia to getty zresetowanie modemu (który może mieć dzięki aplikacji używającej urządzenia wydzwaniającego zmienioną konfigurację) przed ponownym blokowaniem.
Ważnym jest, by zauważyć iż setserial zwyczajnie mówi jądru Linuksa, gdzie powinien spodziewać się znaleźć port I/O i linie IRQ określonego portu szeregowego. Nie konfiguruje on sprzętu! Aby to uczynić, musisz fizycznie zaprogramować kartę szeregową, zazwyczaj przez przestawienie zworek, lub przełączenie przełączników DIP.
Sekcja ta udostępni pewne wskazówki pomocne w decydowaniu jak skonfigurować porty szeregowe.
"Standardowe powiązania MS-DOS" zostały pokazane niżej:
/dev/ttyS0 (COM1), port 0x3f8, irq 4 /dev/ttyS1 (COM2), port 0x2f8, irq 3 /dev/ttyS2 (COM3), port 0x3e8, irq 4 /dev/ttyS3 (COM4), port 0x2e8, irq 3
Z powodu ograniczeń w projekcie architektury szyn AT/ISA, normalnie linia IRQ nie może być dzielona między dwoma lub więcej portami szeregowymi. Jeśli spróbujesz tak zrobić, jeden lub obydwa z tych portów staną się niedostępne, gdy spróbujesz używać ich naraz. Ograniczenie to można obejść przez specjalne wieloportowe karty szeregowe, które są skonstruowane do dzielenia wielu portów szeregowych na jednej linii IRQ. Karty wspierane przez Linuksa zawierają AST FourPort, Accent Async, Usenet Serial II, Bocaboard BB-1004, BB-1008, i BB-2016, oraz HUB-6.
Wybór alternatywnej linii IRQ jest trudny, gdyż prawie wszystkie z nich są już w użytku. Następująca tabela zawiera wykaz "standardowych przydziałów MS-DOS" dla linii IRQ:
IRQ 3: COM2 IRQ 4: COM1 IRQ 5: LPT2 IRQ 7: LPT1
Wiele osób uważa, że IRQ 5 jest dobrym wyborem, zakładając że w komputerze aktywny jest tylko jeden port równoległy. Innym dobrym wyborem jest IRQ 2 (aka IRQ 9); chociaż to IRQ jest czasem używane przez karty sieciowe i bardzo rzadko przez karty VGA (dla przerwania vertical retrace). Jeśli twoja karta VGA jest tak skonfigurowana, spróbuj to wyłączyć, tak być mógł wykorzystać to IRQ dla innej karty. Nie jest to niezbędne pod GNU/Linuksem i większością innych systemów operacyjnych.
Jedynymi innymi dostępnymi liniami IRQ są 3, 4 i 7, a są one prawdopodobnie używane przez inne porty szeregowe i równoległe. (Jeśli twoja karta szeregowa ma 16-bitowy edge connector i wspiera wyższe numery IRQ, to dostępne sa też IRQ 10, 11, 12 i 15.)
W maszynach klasy AT, IRQ 2 jest widziane jako IRQ 9 i Linux interpretuje je w ten sposób.
Przerwania inne niż 2 (9), 3, 4, 5, 7, 10, 11, 12, i 15, nie powinny być używane, gdyż są przyznane innym elementom sprzętowym i ogólnie nie mogą być zmieniane. Oto "standardowe" przyznania:
IRQ 0 Kanał timera 0 IRQ 1 Klawiatura IRQ 2 Kaskada kontrolera 2 IRQ 3 Port szeregowy 2 IRQ 4 Port szeregowy 1 IRQ 5 Port równoległy 2 (Zarezerwowane w PS/2) IRQ 6 Stacja dysków IRQ 7 Port równoległy 1 IRQ 8 Zegar czasu rzeczywistego IRQ 9 Przekierowane na IRQ2 IRQ 10 Zarezerwowane IRQ 11 Zarezerwowane IRQ 12 Zarezerwowane (Pomocnicze urządzenie w PS/2) IRQ 13 Koprocesor matematyczny IRQ 14 Kontroler dysku twardego IRQ 15 Zarezerwowane
Niektóre wieloportowe układy szeregowe, dzielące wiele portów na jednym IRQ używają jednego lub więcej portów do określania czy są tam aktywne porty, które należy obsłużyć. Jeśli twój układ wieloportowy obsługuje te porty, to powinieneś z nich skorzystać aby zapobiec potencjalnym zablokowaniom, gdy zginie przerwanie.
Aby ustawić te porty, musisz przekazać set_multiport jako parametr i wypisać za nim parametry wieloportowe. Parametry wieloportowe przybierają postać podania sprawdzanego portu, maski, wskazującej, które bity rejestru są znaczące oraz, ostatecznie parametru dopasowania, (match), określającego, które bity znaczące tego rejestru muszą pasować, gdy nie ma już niczego do zrobienia.
Można podać do czterech takich kombinacji. Pierwsze kombinacje powinny być podawane przez ustawianie parametrów port1, mask1 i match1. Następne przez ustawianie port2, mask2 i match2, itd. Aby wyłączyć sprawdzanie wieloportowe, ustaw port1 na zero.
Aby obejrzeć bieżące ustawienia wieloportowe, podaj w linii poleceń parametr get_multiport.
Oto pewne ustawienia wieloportowe dla popularnych układów szeregowych:
AST FourPort port1 0x1BF mask1 0xf match1 0xf Boca BB-1004/8 port1 0x107 mask1 0xff match1 0 Boca BB-2016 port1 0x107 mask1 0xff match1 0
port2 0x147 mask2 0xff match2 0
Setserial może być również używany do konfigurowania portów na układzie ESP Hayesa.
Można do tego używać następujących parametrów:
UWAGA: Skonfigurowanie portu szeregowego tak, by używał nieprawidłowego portu I/O może zablokować twoją maszynę.
/etc/rc.local /etc/rc.serial
Oryginalna wersja setserial została napisana przez Ricka Sladkeya (jrs@world.std.com) i została zmodyfikowana przez Michaela K. Johnsona (johnsonm@stolaf.edu).
Ta wersja została od tej pory napisana ponownie od zera przez Theodore Ts'o (tytso@mit.edu) 1/1/93. Wszelkie błędy i problemy są wyłącznie jego odpowiedzialnością.
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:
Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.
Styczeń 2000 | Setserial 2.17 |