1 .\" {PTM/PB/0.1/02-04-1999/"pobierz/ustaw informacje o porcie szeregowym"}
2 .\" Translation 1999,2000 Przemek Borys <pborys@dione.ids.pl>
3 .\" Buu... Znowu trudny tekst :(
4 .\" Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu)
5 .\" May be distributed under the GNU General Public License
6 .\" Portions of this text are from the README in setserial-2.01.tar.z,
7 .\" but I can't figure out who wrote that document. If anyone knows,
10 .\" [tytso:19940519.2239EDT] I did... - Ted Ts'o (tytso@mit.edu)
11 .\" Sat Aug 27 17:08:38 1994 Changes from Kai Petzke
12 .\" (wpp@marie.physik.tu-berlin.de) were applied by Rik Faith
13 .\" (faith@cs.unc.edu)
15 .TH SETSERIAL 8 "Styczeñ 2000" "Setserial 2.17" "Podrêcznik programisty linuksowego"
17 setserial \- pobierz/ustaw informacje o porcie szeregowym
22 .BR "[ " parameter1 " [ " arg " ] ] ..."
29 jest programem przeznaczonym do ustawiania i/lub raportowania danych
30 konfiguracyjnych zwi±zanych z portem szeregowym. Dane te zawieraj±
31 port I/O, numer IRQ, to czy klawisz break powinien byæ interpretowany jako
32 Secure Attention Key, itd.
34 Podczas normalnego bootowania, inicjalizowane s± jedynie porty COM 1-4;
35 u¿ywane s± przy tym domy¶lne warto¶ci portów I/O i IRQ. Aby zainicjalizowaæ
36 dodatkowe porty szeregowe, lub aby zmieniæ konfiguracje portów 1-4, musisz
39 Zazwyczaj jest on wo³any ze skryptu
41 który z kolei jest normalnie uruchamiany z
46 okre¶la, które urz±dzenie szeregowe ma byæ skonfigurowane lub odpytane.
47 Zazwyczaj przyjmuje postaæ
52 drukuje rodzaj portu np. 8250, 16450, 16550, 16550A), sprzêtowy port I/O,
53 sprzêtow± liniê IRQ, szybko¶æ i niektóre flagi operacyjne.
57 argumenty setserial s± interpretowane jako lista urz±dzeñ, dla których
58 nale¿y wydrukowaæ charakterystykê.
62 pierwszy argument jest interpretowany jako urz±dzenie do
63 zmodyfikowania lub do wydrukowania charakterystyki, a dodatkowe argumenty
64 interpretowane s± jako parametry, które powinny byæ zaaplikowane do tego
67 W wiêkszo¶ci wypadków wymagane s± uprawnienia superu¿ytkownika. Jednak kilka
68 opcji portów mog± ustawiaæ zwykli u¿ytkownicy i opcje te zostan± zaznaczone
69 jako wyj±tki w tym podrêczniku.
73 przyjmuje nastêpuj±ce opcje:
77 Podczas raportowania konfiguracji urz±dzenia szeregowego, drukuj wszelkie
81 Podczas raportowania konfiguracji urz±dzenia szeregowego, drukuj
82 zestawienie konfiguracji urz±dzenia, które mo¿e byæ wystarczaj±ce do
83 wypisania podczas procesu bootowania w skrypcie /etc/rc.
86 Wydrukuj informacjê o konfiguracji portu szeregowego w postaci, która mo¿e
87 zostaæ zassana do setseriala jako argumenty linii poleceñ.
92 wydrukuje wtedy mniej linii na wyj¶ciu.
97 wydrukuje wtedy dodatkowy status na wyj¶ciu.
100 Wy¶wietl wersjê i zakoñcz.
103 Dokonaj dzikiej inicjalizacji przerwañ i zakoñcz. Opcja ta nie jest istotna
104 w j±drach po wersji 2.1.
107 Zeruj flagi szeregowe przed rozpoczêciem ich ustawiania. Jest to zwi±zane z
108 automatycznym zachowywaniem flag szeregowych z flag± \-G.
111 Portowi szeregowemu mo¿na przyznaæ ni¿ej wymienione parametry.
113 Wszystkie warto¶ci argumentów s± warto¶ciami dziesiêtnymi, chyba ¿e
117 .BR port " port_number"
120 ustawia port I/O, jak opisano wy¿ej.
122 .BR irq " irq_number"
125 ustawia sprzêtowe IRQ, jak opisano wy¿ej.
127 .BR uart " uart_type"
128 Opcja ta jest u¿ywana do ustawienia typu UART-a. Dozwolone typy to
130 8250, 16450, 16550, 16550A, 16650, 16650V2, 16654, 16750, 16850, 16950,
136 Niektóre modemy wewnêtrzne s± oznaczone jako maj±ce "UART 16550A z buforem 1K"
137 Jest to k³amstwo. Nie maj± w rzeczywisto¶ci UART-a kompatybilnego z 16550A;
138 zamiast niego maj± UART kompatybilny z 16450 z 1K buforem odbiorczym dla
139 zapobiegania spustoszeniom u odbiorcy. Jest to istotne, poniewa¿ nie maj±
140 one transmituj±cego FIFO. Dlatego nie s± kompatybilne z UART-em 16550A i
141 proces autokonfiguracji zidentyfikuje je prawid³owo jako 16450. Je¶li
142 spróbujesz obej¶æ to, u¿ywaj±c parametru
144 pojawi± siê porzucone znaki podczas transmisji plików. UART-y te maj± zwykle
145 inne problemy: parametr
147 powinien byæ równie¿ czêsto podawany.
150 Gdy podano ten parametr,
152 poprosi j±dro o próbê automatycznego skonfigurowania portu szeregowego. Port
153 I/O musi byæ ustawiony prawid³owo; j±dro spróbuje okre¶liæ typ UART, a
154 dodatkowo je¶li podano parametr
156 Linux spróbuje te¿ automatycznie okre¶liæ IRQ.
159 powinien byæ podawany po parametrach
160 .BR port , auto_irq ", i " skip_test .
163 Spróbuj podczas autokonfiguracji okre¶liæ IRQ. W³a¶ciwo¶æ ta nie zawsze musi
164 daæ prawid³owy wynik; niektóre konfiguracje sprzêtowe mog± og³upiæ j±dro.
165 Ogólnie, bezpieczniej jest nie u¿ywaæ w³a¶ciwo¶ci
167 lecz raczej samemu podawaæ warto¶æ IRQ, u¿ywaj±c parametru
172 próbuj okre¶liæ IRQ podczas autokonfiguracji.
175 Pomiñ test UART podczas autokonfiguracji. Niektóre modemy wewnêtrzne nie
176 maj± UART-ów kompatybilnych z National Semiconductor, lecz zamiast nich
177 tanie imitacje. Niektóre z nich nie wspieraj± w pe³ni trybu detekcji
178 loopback, którego u¿ywa j±dro do upewnienia siê, czy pod podanym adresem
179 jest rzeczywi¶cie UART. Dlatego dla niektórych modemów bêdzie trzeba podaæ
180 ten parametr aby mo¿na by³o zainicjalizowaæ UART prawid³owo.
184 pomijaj testu UART podczas autokonfiguracji.
186 .BR baud_base " baud_base"
187 Opcja ta ustawia podstawow± prêdko¶æ (baud rate), która jest czêstotliwo¶ci±
188 zegara podzielon± przez 16. Normalnie jest to 115200, co jest zarazem najwiêksz±
189 prêdko¶ci± wspieran± przez UART.
193 Gdy aplikacja ¿±da 38.4kb, u¿ywaj 57.6kb. Parametr ten mo¿e byæ ustawiany
194 przez nieuprzywilejowanego u¿ytkownika.
197 Gdy aplikacja ¿±da 38.4kb, u¿ywaj 115kb. Parametr ten mo¿e byæ ustawiany
198 przez nieuprzywilejowanego u¿ytkownika.
201 U¿yj 230kb gdy aplikacja ¿±da 38.4kb. Parametr ten mo¿e byæ podawany przez
202 u¿ytkownika nieuprzywilejowanego.
205 U¿yj 460kb gdy aplikacja ¿±da 38.4kb. Parametr ten mo¿e byæ podawany przez
206 u¿ytkownika nieuprzywilejowanego.
209 Gdy aplikacja ¿±da 38.4kb, u¿yj ustawionego dzielnika do ustawienia
210 szybko¶ci. W tym wypadku, prêdko¶æ jest okre¶lona przez
213 .BR divisor (dzielnik).
214 Parametr ten mo¿e byæ podawany przez nieuprzywilejowanego u¿ytkownika.
217 Gdy aplikacja ¿±da 38.4kb, u¿ywaj 38.4kb. Parametr ten mo¿e byæ ustawiany
218 przez nieuprzywilejowanego u¿ytkownika.
220 .BR divisor " divisor"
221 Opcja ta ustawia konfigurowalny dzielnik. Dzielnik bêdzie u¿ywany gdy
222 wybrana zostanie opcja
224 a port szeregowy bêdzie ustawiony przez aplikacjê na 38.4kb.
225 Parametr ten mo¿e byæ podawany przez nieuprzywilejowanego u¿ytkownika.
228 Ustaw klawisz break na Secure Attention Key.
231 wy³±cz Secure Attention Key.
234 Skonfiguruj port jako kartê AST Fourport.
237 Wy³±cz konfiguracjê AST Fourport.
239 .BR close_delay " delay"
240 Podaj ilo¶æ czasu w setnych sekundy, podczas których DTR powinien zostaæ w
241 stanie obni¿onym na linii szeregowej po tym, jak urz±dzenie wydzwaniaj±ce
242 (callout device) jest zamykane, zanim blokowane urz±dzenie wdzwaniaj±ce siê
243 (dialin device) znów podniesie DTR. Domy¶ln± warto¶ci± tej opcji jest 50 lub
246 .BR closing_wait " opó¼nienie"
247 Podaj ilo¶æ czasu w setnych sekundy, podczas której j±dro powinno czekaæ na
248 dane nadawane z portu szeregowego podczas jego zamykania. Je¶li podane
249 zostanie "none", nie bêdzie oczekiwania. Je¶li podane zostanie "infinite",
250 j±dro bêdzie czekaæ w nieokre¶lenie d³ugo na przybycie buforowanych danych.
251 Domy¶lnym ustawieniem jest 3000 lub 30 sekund opó¼nienia. Ta warto¶æ
252 domy¶lna jest wskazana dla wiêkszo¶ci urz±dzeñ. Je¶li wybrane zostanie
253 d³ugie opó¼nienie, to port szeregowy mo¿e siê zawiesiæ na d³ugi czas podczas
254 zamykania. Je¶li wybrany bêdzie zbyt krótki czas, to istnieje ryzyko utraty
255 danych. Je¶li urz±dzenie jest bardzo wolne, jak w ploterze, to mo¿na wybraæ
259 Blokuj dostêp do portu wydzwaniaj±cego (/dev/cuaXX) na przestrzeni ró¿nych
260 sesji. To znaczy, ¿e gdy proces otworzy port, to ¿aden inny proces nie mo¿e
261 go ju¿ otworzyæ, dopóki pierwszy proces go nie zamknie.
264 Nie blokuj portu wydzwaniaj±cego na przestrzeni sesji.
267 Blokuj port wydzwaniaj±cy (/dev/cuaXX) na przestrzeni ró¿nych grup procesów.
268 To znaczy, ¿e gdy proces otworzy³ port, to ¿aden inny proces z innej grupy
269 procesów nie mo¿e go otworzyæ, dopóki ten proces go nie zamknie.
272 Nie blokuj portu wydzwaniaj±cego na przestrzeni ró¿nych grup procesów.
275 Poinformuj proces blokowany na otwieraniu linii wdzwaniaj±cej, gdy
276 proces skoñczy u¿ywaæ linii wydzwaniaj±cej (zarówno przez zamkniêcie jej,
277 lub przez zawieszenie jej) przez zwrócenie (funkcji?) open EAGAIN.
279 Zastosowanie tego parametru odnosi siê do getty, które s± blokowane na
280 liniach wdzwaniaj±cych portów szeregowych. Umo¿liwia to getty zresetowanie
281 modemu (który mo¿e mieæ dziêki aplikacji u¿ywaj±cej urz±dzenia wydzwaniaj±cego
282 zmienion± konfiguracjê) przed ponownym blokowaniem.
285 Nie informuj procesu blokowanego na otwieraniu linii wdzwaniaj±cej, gdy
286 urz±dzenie wydzwaniaj±ce jest odwieszone.
289 Traktuj ustawienia termios u¿ywane przez urz±dzenie wydzwaniaj±ce i
290 ustawienia urz±dzenia wdzwaniaj±cego osobno.
293 U¿ywaj tej samej struktury termios do przechowywania ustawieñ urz±dzenia
294 wdzwaniaj±cego i wydzwaniaj±cego.
297 Je¶li dany port szeregowy jest otworzony jako urz±dzenie wydzwaniaj±ce, nie
298 odwieszaj tty gdy porzucony zostanie CD.
301 Nie pomijaj odwieszania tty gdy port szeregowy jest otworzony jako
302 urz±dzenie wydzwaniaj±ce. Oczywi¶cie musi byæ w³±czona flaga HUPCL termios,
303 je¶li odwieszenie ma siê pojawiæ.
306 Minimalizuj opó¼nienia odbioru z urz±dzenia szeregowego kosztem
307 wiêkszego zaanga¿owania CPU. (Normalnie jest 5-10ms opó¼nienie nim znaki
308 zostan± przekazane dyscyplinie linii.) Jest to domy¶lnie wy³±czone, lecz
309 niektóre aplikacje czasu rzeczywistego mog± tego potrzebowaæ.
312 Optymalizuj efektywne przetwarzanie przez CPU znaków szeregowych kosztem
313 p³acenia ¶redniego opó¼nienia 5-10ms nim znaki zostan± przetworzone. Jest to
316 .SH ROZWA¯ANIA O KONFIGUROWANIU PORTÓW SZEREGOWYCH
317 Wa¿nym jest, by zauwa¿yæ i¿ setserial zwyczajnie mówi j±dru Linuksa, gdzie
318 powinien spodziewaæ siê znale¼æ port I/O i linie IRQ okre¶lonego portu
319 szeregowego. Nie konfiguruje on sprzêtu! Aby to uczyniæ, musisz fizycznie
320 zaprogramowaæ kartê szeregow±, zazwyczaj przez przestawienie zworek, lub
321 prze³±czenie prze³±czników DIP.
323 Sekcja ta udostêpni pewne wskazówki pomocne w decydowaniu jak skonfigurowaæ
326 "Standardowe powi±zania MS-DOS" zosta³y pokazane ni¿ej:
330 /dev/ttyS0 (COM1), port 0x3f8, irq 4
331 /dev/ttyS1 (COM2), port 0x2f8, irq 3
332 /dev/ttyS2 (COM3), port 0x3e8, irq 4
333 /dev/ttyS3 (COM4), port 0x2e8, irq 3
337 Z powodu ograniczeñ w projekcie architektury szyn AT/ISA, normalnie linia
338 IRQ nie mo¿e byæ dzielona miêdzy dwoma lub wiêcej portami szeregowymi. Je¶li
339 spróbujesz tak zrobiæ, jeden lub obydwa z tych portów stan± siê niedostêpne,
340 gdy spróbujesz u¿ywaæ ich naraz. Ograniczenie to mo¿na obej¶æ przez specjalne
341 wieloportowe karty szeregowe, które s± skonstruowane do dzielenia wielu
342 portów szeregowych na jednej linii IRQ. Karty wspierane przez Linuksa
343 zawieraj± AST FourPort, Accent Async, Usenet Serial II, Bocaboard BB-1004,
344 BB-1008, i BB-2016, oraz HUB-6.
346 Wybór alternatywnej linii IRQ jest trudny, gdy¿ prawie wszystkie z nich s±
347 ju¿ w u¿ytku. Nastêpuj±ca tabela zawiera wykaz "standardowych przydzia³ów
348 MS-DOS" dla linii IRQ:
359 Wiele osób uwa¿a, ¿e IRQ 5 jest dobrym wyborem, zak³adaj±c ¿e w komputerze
360 aktywny jest tylko jeden port równoleg³y. Innym dobrym wyborem jest IRQ 2
361 (aka IRQ 9); chocia¿ to IRQ jest czasem u¿ywane przez karty sieciowe i
362 bardzo rzadko przez karty VGA (dla przerwania vertical retrace). Je¶li twoja
363 karta VGA jest tak skonfigurowana, spróbuj to wy³±czyæ, tak byæ móg³
364 wykorzystaæ to IRQ dla innej karty. Nie jest to niezbêdne pod GNU/Linuksem i
365 wiêkszo¶ci± innych systemów operacyjnych.
367 Jedynymi innymi dostêpnymi liniami IRQ s± 3, 4 i 7, a s± one prawdopodobnie
368 u¿ywane przez inne porty szeregowe i równoleg³e. (Je¶li twoja karta
369 szeregowa ma 16-bitowy edge connector i wspiera wy¿sze numery IRQ, to
370 dostêpne sa te¿ IRQ 10, 11, 12 i 15.)
372 W maszynach klasy AT, IRQ 2 jest widziane jako IRQ 9 i Linux interpretuje je
375 Przerwania inne ni¿ 2 (9), 3, 4, 5, 7, 10, 11, 12, i 15,
377 powinny byæ u¿ywane, gdy¿ s± przyznane innym elementom sprzêtowym i ogólnie
378 nie mog± byæ zmieniane. Oto "standardowe" przyznania:
384 IRQ 2 Kaskada kontrolera 2
385 IRQ 3 Port szeregowy 2
386 IRQ 4 Port szeregowy 1
387 IRQ 5 Port równoleg³y 2 (Zarezerwowane w PS/2)
389 IRQ 7 Port równoleg³y 1
390 IRQ 8 Zegar czasu rzeczywistego
391 IRQ 9 Przekierowane na IRQ2
394 IRQ 12 Zarezerwowane (Pomocnicze urz±dzenie w PS/2)
395 IRQ 13 Koprocesor matematyczny
396 IRQ 14 Kontroler dysku twardego
402 .SH KONFIGURACJA WIELOPORTOWA
404 Niektóre wieloportowe uk³ady szeregowe, dziel±ce wiele portów na jednym IRQ
405 u¿ywaj± jednego lub wiêcej portów do okre¶lania czy s± tam aktywne porty,
406 które nale¿y obs³u¿yæ. Je¶li twój uk³ad wieloportowy obs³uguje te porty, to
407 powiniene¶ z nich skorzystaæ aby zapobiec potencjalnym zablokowaniom, gdy
410 Aby ustawiæ te porty, musisz przekazaæ
412 jako parametr i wypisaæ za nim parametry wieloportowe. Parametry
413 wieloportowe przybieraj± postaæ podania sprawdzanego
416 wskazuj±cej, które bity rejestru s± znacz±ce oraz, ostatecznie parametru
418 (match), okre¶laj±cego, które bity znacz±ce tego rejestru musz± pasowaæ, gdy
419 nie ma ju¿ niczego do zrobienia.
421 Mo¿na podaæ do czterech takich kombinacji. Pierwsze kombinacje powinny byæ
422 podawane przez ustawianie parametrów
427 Nastêpne przez ustawianie
432 itd. Aby wy³±czyæ sprawdzanie wieloportowe, ustaw
436 Aby obejrzeæ bie¿±ce ustawienia wieloportowe, podaj w linii poleceñ parametr
439 Oto pewne ustawienia wieloportowe dla popularnych uk³adów szeregowych:
443 AST FourPort port1 0x1BF mask1 0xf match1 0xf
445 Boca BB-1004/8 port1 0x107 mask1 0xff match1 0
447 Boca BB-2016 port1 0x107 mask1 0xff match1 0
448 port2 0x147 mask2 0xff match2 0
452 .SH Konfiguracja ESP Hayesa
454 mo¿e byæ równie¿ u¿ywany do konfigurowania portów na uk³adzie ESP Hayesa.
456 Mo¿na do tego u¿ywaæ nastêpuj±cych parametrów:
459 Jest to poziom wyzwalania (w bajtach) FIFO odbiorczego. Wiêksze warto¶ci
460 powoduj± mniej przerwañ i lepsz± wydajno¶æ; jednak zbyt du¿e warto¶ci
461 powoduj± utratê danych. Dostêpne warto¶ci to 1 do 1023.
464 Jest to poziom wyzwalania (w bajtach) FIFO nadawczego. Wiêksze warto¶ci mog±
465 powodowaæ mniej przerwañ i lepsz± wydajno¶æ; jednak zbyt du¿e warto¶ci
466 powoduj± zdegradowan± wydajno¶æ nadawania. Dostêpne warto¶ci to 1 do 1023.
469 Jest to poziom (w bajtach) przy którym port ESP zrobi "flow off" dla
470 zdalnego nadajnika (tj. powie mu by przesta³ nadawaæ wiêcej
471 bajtów). Dostêpne warto¶ci to 1 do 1023. Warto¶æ ta powinna byæ wiêksza od
472 poziomu wyzwalania odbiorczego i poziomu flow on.
475 Jest to poziom (w bajtach) przy którym port ESP zrobi "flow on" dla zdalnego
476 nadajnika (tzn. powie mu by wznowi³ nadawanie bajtów) po "flow off".
477 Dostêpne warto¶ci to 1 do 1023. Warto¶æ ta powinna byæ mniejsza ni¿ poziom
478 "flow off", lecz wiêksza ni¿ poziom wyzwalania odbiorczego.
481 Jest to ilo¶æ czasu, przez któr± port ESP powinien czekaæ po odebraniu
482 ostatniego znaku przed sygnalizowaniem przerwania. Prawid³owe warto¶ci to 0
483 do 255. Zbyt du¿a warto¶æ zwiêkszy opó¼nienia, a zbyt ma³a spowoduje
484 niepotrzebne przerwania.
487 UWAGA: Skonfigurowanie portu szeregowego tak, by u¿ywa³ nieprawid³owego
488 portu I/O mo¿e zablokowaæ twoj± maszynê.
495 kernel/chr_drv/serial.c
497 Oryginalna wersja setserial zosta³a napisana przez Ricka Sladkeya
498 (jrs@world.std.com) i zosta³a zmodyfikowana przez Michaela K. Johnsona
499 (johnsonm@stolaf.edu).
501 Ta wersja zosta³a od tej pory napisana ponownie od zera przez Theodore Ts'o
502 (tytso@mit.edu) 1/1/93. Wszelkie b³êdy i problemy s± wy³±cznie jego