Serial HOWTO pl (2)


Linux, a porty szeregowe. Linux, a porty szeregowe. by Greg Hankins, greg.hankins@cc.gatech.edu v1.10, 31 March 1997 Wersja polska: Piotr Pogorzelski piotr.pogorzelski@ippt.gov.p w1.0; Listopad 1997 Niniejszy dokument opisuje zagadnienia związane z konfiguracją i obsługą portów szeregowych i programów komunikacyjnych. 1. Wprowadzenie. Przed Tobą Linux Serial-HOWTO. Wszystko na temat konfiguracji modemów i terminali pod Linux-em. Trochę sztuczek na temat portów szeregowych i porad na temat najczęstszych kłopotów. Niniejszy dokument koncentruje się na sytemech pracujących na komputerach klasy x86, choć zawarte w nim informacje mogą być prawdziwe również dla innych architektur sprzętowych. 1.1 Prawa autorskie. Prawa autorskie Linux Serial HOWTO należą do Grega Hankinsa. Dokumenty HOWTO mogą być powielane i redystybuowane w całości lub w części, na dowolnym nośniku fizycznym lub elektronicznym, tak długo, jak niniejsza notka o prawach autorskich jest umieszczana na wszystkich kopiach. Dystrybucja komercyjna jest dozwolona, a wręcz do niej zachęcamy. Autor chciałby być poinfirmowany o takim fakcie. Wszelkie tłumaczenia, prace powstałe na bazie tego dokumentu lub prace zawierające fragmenty tego dokumentu muszą być objęte tymi samymi warunkami, co oryginał. To znaczy, że nie możesz na dokumenty powstałe z HOWTO nakładać dodatkowych ograniczeń na ich rozpowszechnianie. W pewnych warunkach możemy odstąpić od tej reguły; prosze skontaktować się w tym celu z koordynatorem HOWTO - adres można znaleźć dalej w dokumencie. Chcemy aby ten dokument był rozpowszechniany na wszelkie możliwe sposoby, chcemy również zachować prawa autorskie do tego dokumentu i chcielibyśmy być informowani o wszelskich nowych planach redystrybucji dokumentów HOWTO. Jeśli masz jakieś pytania, skontaktuj się z Gregiem Hankinsem, koordynatorem projektu Linux HOWTO - gregh@sunsite.unc.edu tel. +1 404 853 9989. 1.2 Nowe wersje tego dokumentu. Nowe wersje Serial HOWTO będą dostępne pod adresem ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Serial-HOWTO i na wszystich kopiach (mirrorach). Dokument jest dostępny również w innych formatach, mozna je znaleźć w katalogu other-formats. Serial-HOWTO jest dostęne również pod adresem http://sunsite.unc.edu/LDP/HOWTO/Serial-HOWTO.html i co miesiąc będzie wysyłane na comp.os.linux.answers. Najnowsze wersje tłumaczenia można jak zwykle znaleźć na stroanch http://www.jtz.org.pl/. 1.3 Uwagi i komentarze. Prosze, przysyłajcie wszelkie uwagi, komentarze oraz dodatkowe materiały. Zawsze jestem chętny usłyszeć co myślicie o HOWTO. Zawsze staram się wprowadzać ulepszenia. Powiedzcie mi dokładnie czego znie zrozumieliście, lub co mogłoby być napisane jaśniej. Możecie się ze mną skontakować pisząc na adres greg.hankins@cc.gatech.edu. Na każdy list odpiszę, choć może mi to zając tydzień albo więcej, w zależności jak jestem aktualnie zajęty. Otrzymuje mnóstwo listów od root-a i ze źle skonfigurowanych komputerów. Wysyłajcie do mnie listy, ze sprawdzonych kont pocztowych. Jeśli nie odpowiem w ciągu dwóch tygodni, napiszcie do mnie raz jeszcze. Można mnie złapać pod adresem: Greg Hankins College of Computing 801 Atlantic Drive Atlanta, GA 30332-0280 to pocztą slimaczą, lub http://www.cc.gatech.edu/staff/h/Greg.Hankins/. Proszę, podawajcie wersje dokumentu, ten dokument nosi numer 1.10. 1.4 Zrzeczenie się odpowiedzialności. Podane tutaj przykłady lub odpowiedzi nie muszą być odpowiednie dla wszystkich komputerów. 2. Obsługiwany sprzęt. Linux potrafi współpracować z następującymi urządzeniami szeregowymi. 2.1 Standardowe karty portów szeregowych komputerów PC. standardowe karty PC z portami szeregowymi (COM1 - COM4), do których podłącza się urządzenia zewnętrzne (modemy, myszki, drukarki, itp...) standardowe wewnętrzne modemy dla komputerów IBM PC (COM1-COM4). Quickpath Systems Port-Folio 550e (pozwala na wybór jednego z przerwań 3, 4, 5, 9, 10, 11, 12, i 15) Uwaga: ze względu na konflikt adresów nie możesz używać jednocześnie portu COM4 i karty video IBM8514. 2.2 Modemy Plug And Play (PnP). Modemy PnP będą pracowały pod Linux-em. Jednakże odradzam ich użytkowanie, ponieważ są trudne we współżyciu. Jest kilka rzeczy, których możesz spróbować: Spróbuj wyłączyć udogodnienie PnP w BIOSie komputera i w modemie. Wystertuj Win95, skonfiguruj modem i sprawdź, czy zachowuje ustawienia po uruchomieniu Linux-a. Jeśli nie, wtedy: Uruchom Win95, skonfiguruj modem i zrestartuj na ciepło Linux-a aby zapamiętać ustawienia modemu. Możesz to zrobić korzystając z ładowacza loadlin. Zdobądź PnP Tools http://www.redhat.com/linux-info/pnp. Zawsze możesz zdobyć prawdziwy modem. 2.3 Karty wieloportowe (z układem 16450/16550A). AST FourPort and clones (4 ports) Accent Async-4 (4 ports) Arnet Multiport-8 (8 ports) Bell Technologies HUB6 (6 ports) Boca BB-1004 (4 ports), BB-1008 (8 ports), BB-2016 (16 ports) Boca IOAT66 (6 ports) Boca 2by4 (4 serial ports, 2 parallel ports) Computone ValuePort V4-ISA (AST FourPort compatible) Digi PC/8 (8 ports) GTEK BBS-550 (8 ports) Longshine LCS-8880, Longshine LCS-8880+ (AST FourPort compatible) Moxa C104, Moxa C104+ (AST FourPort compatible) PC-COMM (4 ports) SIIG I/O Expander 2S IO1812 (4 ports) STB-4COM (4 ports) Twincom ACI/550 Usenet Serial Board II (4 ports) Zasadniczo Linux obsługuje dowolną kartę portów szeregowych, która wykorzystuje układy UART 8250, 16450, 16550, 16550A (lub zgodne) lub modemy wewnętrzne emulujące jeden z tych układów. Specjalna uwaga na temat BB-1004 i BB-1008. Obie nie obsługują linii DCD i RI, i dlatego nie nadają się do obsługi modemów wejściowych. Zastosowane do innych celów będą się sprawować poprawnie. 2.4 Inteligentne karty wieloportowe. Comtrol RocketPort (36MHz ASIC; 4, 8, 16 lub 32 porty) kontakt: info@comtrol.com lub http://www.comtrol.com dostępność sterownika: udostępniany przez Comtrol lokalizacja sterownika: ftp://tsx-11.mit.edu/pub/linux/packages/comtrol Computone IntelliPort II (16MHz 80186; 4, 8, lub 16 portów), IntelliPort II EXpandable (20MHz 80186; 16 - 64 porty) kontakt: Michael H. Warfield, mhw@wittsend.atl.ga.us dostępność sterownika: pre-ALPHA Cyclades Cyclom-Y (Cirrus Logic CD1400 UARTs; 8 - 32 porty), Cyclom-Z (25MHz MIPS R3000; 8 - 128 portów) kontakt: sales@cyclades.com or http://www.cyclades.com dostępność sterownika: udostępniany przez Cyclades lokalizacja sterownika: ftp://ftp.cyclades.com/pub/cyclades w jądrze Linux-a. Decision PCCOM8 (8 ports) kontakt: pccom8@signum.se lokalizacja sterownika: ftp://ftp.signum.se/pub/pccom8 Digi PC/Xi (12.5MHz 80186; 4, 8, lub 16 portów), PC/Xe (12.5/16MHz 80186; 2, 4, lub 8 porty), PC/Xr (16MHz IDT3041; 4 lub 8 portów), PC/Xem (20MHz IDT3051; 8 - 64 portów) kontakt: sales@dgii.com lub http://www.dgii.com dostępność sterownika: udostępniany przez Digi lokalizacja sterownika: ftp://ftp.dgii.com/drivers/linux w dystrybucji jądra Linux-a od wersji 2.0. Digi COM/Xi (10MHz 80188; 4 lub 8 portów) kontakt: Simon Park, si@wimpol.demon.co.uk dostępność sterownika: ALPHA note: Simon często jest z dala od swojej poczty, nawet przez kilka miesięcy (ze względu na charakter swej pracy) Mark Hatle, fray@krypton.mankato.msus.edu zgłosił się dobrowolnie udostępnić sterownik, jęsli będziesz go potrzebować. Jednakże Mark nie zapenia żadnego wsparcia. Equinox SuperSerial Technology (30MHz ASIC; 2 - 128 porty) kontakt: sales@equinox.com lub http://www.equinox.com dostępność sterownika: udostępniany przez Equinox lokalizacja sterownika: ftp://ftp.equinox.com/library/sst GTEK Cyclone (16C654 UARTs; 6, 16 i 32 porty), SmartCard (24MHz Dallas DS80C320; 8 portów), BlackBoard-8A (16C654 UARTs; 8 portów), PCSS (15/24MHz 8032; 8 portów) kontakt: spot@gtek.com lub http://www.gtek.com dostępność sterownika: udostępniany przez GTEK lokalizacja sterownika: ftp://ftp.gtek.com/pub Hayes ESP (COM-bic; 1 - 8 portów) kontakt: Andrew J. Robinson, arobinso@nyx.net lub http://www.nyx.net/~arobinso dostępność sterownika: udostępniany prze autora lokalizacja sterownika: http://www.nyx.net/~arobinso i w dystrybucji jądra Linux-a od wersji 2.1.15. Maxpeed SS (Toshiba; 4, 8 i 16 portów) kontakt: info@maxpeed.com lub http://www.maxpeed.com dostępność sterownika: udostępniany przez Maxpeed lokalizacja sterownika: ftp://maxpeed.com/pub/ss Moxa C218 (12MHz 80286; 8 portów), Moxa C320 (40MHz TMS320; 8 - 32 porty) kontakt: info@moxa.com.tw lub http://www.moxa.com.tw dostępność sterownika: udostępniany przez Moxa lokalizacja sterownika: ftp://ftp.moxa.com.tw/drivers/c218-320/linux SDL RISCom/8 (Cirrus Logic CD180; 8 portów) kontakt: sales@sdlcomm.com lub http://www.sdlcomm.com dostępność sterownika: udostępniany przez SDL lokalizacja sterownika: ftp://ftp.sdlcomm.com/pub/drivers Omega COMM-8 (8 portów) kontakt: Vance Petree, vpetree@infi.net Specialix SIO (20MHz Zilog Z280; 4 - 32 porty), XIO (25MHz Zilog Z280; 4 - 32 porty) kontakt: Simon Allen, simonallen@cix.compulink.co.uk dostępność sterownika: BETA lokalizacja sterownika: ftp://sunsite.unc.edu/pub/Linux/kernel/patches/serial Stallion EasyIO-4 (4 porty), EasyIO-8 (8 portów) i EasyConnection (8 - 32 porty) - każdy Cirrus Logic CD1400 UART, Stallion (8MHz 80186 CPU; 8 lub 16 portów), Brumby (10/12 MHz 80186 CPU; 4, 8 lub 16 portów), ONboard (16MHz 80186 CPU; 4, 8, 12, 16 lub 32 porty), EasyConnection 8/64 (25MHz 80186 CPU; 8 - 64 porty) kontakt: sales@stallion.com lub http://www.stallion.com dostępność sterownika: udostępniany przez Stallion lokalizacja sterownika: ftp://ftp.stallion.com/drivers/ata5/Linux i w dystrybucji jądra Linux-a od wersji 1.3.27. Przegląd urządzeń Comtrol, Cyclades, Digi i Stallion można znaleźć w numerze Czerwiec 1995 Linux Journal. Artykuł jest dostępny pod adresem http://www.ssc.com/lj/issue14. 2.5 Nieobsługiwane urządzenia szeregowe. Modemy, które nazywają siebie ``Winmodems'', np. USR Sportster Winmodem i IBM Aptiva MVAVE, nie są obsługiwane przez Linux-a. Te modemy korzystają z prywatnych, niedostępnych rozwiązań technicznych i wymagają specjalnych sterowników. Unikaj modemów tego typu. Co więcej, z tych samych powodów, trzymaj się z daleka od modemów wymagajacych sterowników RPI Rockwella. 3. Jak nazywają sie porty szeregowe? Każdy port I/O umożliwia wymianę danych pomiędzy komputerem i otoczeniem. Istnieje wiele rodzajów portów I/O, porty szeregowe, równoległe, sterowniki dysków, karty ethernetowe itp. My będziemy omawiać porty szeregowe, ponieważ modemy i terminale są urządzeniami korzystającymi z portów szeregowych. Każdy port szeregowy musi posiadać adres I/O i przerwanie (IRQ). Istnieją 4 porty szeregowe odpowiadające odpowiednio COM1-COM4: ttyS0 (COM1) adres 0x3f8 IRQ 4 ttyS1 (COM2) adres 0x2f8 IRQ 3 ttyS2 (COM3) adres 0x3e8 IRQ 4 ttyS3 (COM4) adres 0x2e8 IRQ 3 Jeśli podczas startu Linux nie rozpozna żadnego portu szeregowego upewnij się, że obsługa portów szeregowych jest wkompilowana w jądro. W tym dokumencie przyjeliśmy, że ttyS0 odnosi się do portu COM1, ttyS1 do COM2, ttyS2 do COM3 i ttyS3 do COM4. Zauważ, że domyślnie porty współdzielą przerwania IRQ. Jednakże nie można korzystać ze wszystkich portów w konfiguracji domyślnej, trzeba na nowo przydzielić przerwania. Informacje na temat ustawiania IRQ znajdziesz w rozdziale Czy mogę używać więcej niż dwóch urządzeń portów szeregowych?W niektórych systemach tworzone są dodatkowe dwa pliki urządzeń, /dev/modem dla modemu i /dev/mouse dla myszy. Oba są dowiązaniami symbolicznymi do właściwych urządzeń w katalogu dev, które podałeś podczas Instalacji systemu (chyba, że posiadasz mysz sbus, wtedy /dev/mouse będzie wskazywać na urządzenie bus mouse). Wiele dyskutowano na temat użyteczności /dev/mouse i /dev/modem. Ja mocno odradzam korzystania z tych dowiązań. W szczególności, jeśli planujesz korzystać ze swojego modemu do dzwonienia do twojego komputera (dialin), a będziesz korzystał z /dev/modem, to możesz napotkać na problemy związane z plikami blokad (lock files). Jeśli ten pomysł podoba Ci się, korzystaj z niego, lecz upewnij się, że wspomniane dowiązania wskazują na właściwe urządzenia. Jednakże jeśli usuniesz te dowiązania, wtedy niektóre aplikacje będą wymagać zmianiy konfiguracji (np. minicom). 3.1 Urządzenia portów szeregowych i numery w dev. /dev/ttyS0 major 4, minor 64 /dev/cua0 major 5, minor 64 /dev/ttyS1 major 4, minor 65 /dev/cua1 major 5, minor 65 /dev/ttyS2 major 4, minor 66 /dev/cua2 major 5, minor 66 /dev/ttyS3 major 4, minor 67 /dev/cua3 major 5, minor 67 Proszę zwróć uwagę, że wszystkie dystrybucje powinny same utworzyć pokazane powyżej pliki urządzeń. Czy tak się stało możesz to sprawdzić wydając polecenie: linux% ls -l /dev/cua* linux% ls -l /dev/ttyS* Tworzenie plików urządzeń w katalogu /dev. Jeśli nie znalazłeś pliku urządzenia, musisz go utworzyć za pomocą polecenia mknod. Przykład: załóżmy, że potrzebujesz utworzyć urządzenie ttyS0: linux# mknod -m 666 /dev/cua0 c 5 64 linux# mknod -m 666 /dev/ttyS0 c 4 64 Możesz w tym celu wykorzystać skrypt MAKEDEV, dostępny w katalogu /dev lub archiwach ftp. Znacznie upraszcza tworzenie plików urządzeń. Na przykład jeśli chesz utworzyć urządzenie ttyS0 wystarczy napisać: linux# cd /dev linux# ./MAKEDEV ttyS0 Skrypt zajmie się utowrzeniem urządzeń wyjściowych (cua) i wejściowych (ttyS). 3.2 Uwagi na temat kart wieloportowych. Pliki urządzeń wykorzystywane przez karty wieloportowe zależą od rodzaju karty. Szczegóły można znaleźć w rc.serial, który znajduje się w dystrybucji programu setserial. Jeśli starasz się uruchomić kartę wieloportową bardzo polecam zaopatrzyć się w najnowszą wersję programu setserial. Prawdopododobnie będziesz musiał własnoręcznie utworzyć pliki specjalne urządzeń. Skorzystaj albo z programu mknod albo skryptu MAKEDEV. Pliki urządzeń kart wieloportowych charakteryzują się tym, że numer główny (major number) jest równy 64 + numer portu karty. Jeśli chiałbyś utworzyć plik urządzenia dla portu ttyS17 muszisz wydać polecenie: linux# mknod -m 666 /dev/cua17 c 5 81 linux# mknod -m 666 /dev/ttyS17 c 4 81 Zauważ, że ``64 + 17 = 81''. Korzystając ze skryptu MAKEDEV trzeba napisać: linux# cd /dev linux# MAKEDEV ttyS17 Uwaga: dokumentacja SIIG dla IO1812 dotycząca portów COM5-COM8 zawiera błąd. Powinno być COM5=0x250, COM6=0x258, COM7=0x260 i COM8=0x268. Uwaga: Rejestr stanu (status register) karty DIGI PC/8 znajduje się pod adresem 0x140. Uwaga: Korzystając z karty AST Fourport może być potrzebne umiesczenie w skrypcie rc.serial parametru skip_test. 3.3 Uwagi na temat inteligentnych kart wieloportowych. Przeczytaj dokumentacje dostarczaną ze sterownikiem. Te karty korzystają ze specjalnych urządzeń, nie ze standardowych. Informacje ich dotyczące różnią się w zależności od posiadanego sprzętu. 4. Interesujące oprogramowania, o którym powinieneś wiedzieć. 4.1 Co to takiego getty? getty to program, który obsługuje proces wejścia do systemu Unix. Będziesz musiał używać getty jeśli chcesz dzwonić do swojego Linux-a. Nie potrzebujesz getty jeśli zamierzasz jedynie dzwonić ze swojego Linux-a w świat. W świecie Linux-a rozpowszechnione są trzy wersje tego programu: getty_ps, mgetty i agetty. Każdy z nich posiada własną składnie i pramatery wywołania, upewnij się, że korzystach z poprawnych dla wersji getty, której używasz. Trochę o getty_ps. Większość dystrybucji instaluje pakiet getty_ps. Zawiera on dwa programy getty. getty stosowany do konsoli wirtualnych i terminali, oraz uugetty wykorzystywany do modemów. Skoncentruję się na getty_ps, ponieważ korzystam z tej właśnie wersji getty. Kilka słów na temat mgetty. mgetty jest wersja getty przeznaczoną do modemów. Pozwala na logowanie się przez modem, dostarcza obsługę FAXu i rozpoznaje połączenia PPP. Dokumentacja mgetty jest bardzo dobra i nie potrzebuje uzupełnień. Znajdziesz w niej informacje na temat instalacji i konfiguracji programu. Najnowsze informacje o pakiecie możesz znaleźćpod adresem http://www.leo.org/~doering/mgetty/. I na koniec agetty. agetty to trzeci wariant getty. Jest to prosta, w pełni funkcjonalna implementacja getty bardzo dobrze nadająca się do obsługi wirtualnych konsol i teminali. 4.2 Co to takiego setserial? setserial to program, który pozwala na sprawdzanie i zmianę różnego rodzaju atrybutów portów szeregowych, adresów, przerwań i innych parametrów. Aby dowiedzieć się, która wersja jest zainstalowana na twoim komputerze należy uruchomić program bez żadnych argumentów. Kiedy twój Linux startuje, konfigurowane są tylko porty ttyS{0-3}, wykorzystane są standardowe ustawienia IRQ równe 3 i 4. Dlatego jeśli posiadasz inne karty portów szeregowych lub porty ttyS{0-3} nie mają standardowych ustawień przerwań IRQ, to aby zostały prawidłowo sonfigurowane musisz skorzystać z programu setserial. Pełny spis dostępnych opcji znajduje się na stronach podręcznika (man setserial). 5. Jak mogę zadzwonić z mojego modemu? 5.1 Wymagania sprzętowe. Po pierwsze upewnij się czy masz dobry kabel. Modem wymaga kabla prostego, bez żadnych krzyżowań przewodów. Każdy sklep komputerowy posiada w swej ofercie taki kabel. Pamiętaj aby miał odpowiednie wtyczki. Jeśli używasz gniazda DB25, to zawsze bedzie to męskie DB25. Nie pomyl go z gniazdem portu równoległego, którego gniazdo to damskie DB25. Podłącz modem do jednego z portów szeregowych. Jeśli potrzebujesz pomocy skorzystaj z dokumentacji modemu. Uwagi na temat modemów wewnętrznych. Do podłączenia modemu wewnętrznego nie potrzebujesz kabla modemowego. Modem wewnętrzny nie potrzebuje również portu szeregowego, posiada własny. Muszisz jedynie poprawnie skonfigurować przerwanie, oraz adresy portów We/Wy, tak aby nie było wykorzystywane przez inne urządzenia. Jeśli utknąłeś skorzystaj z dokumentacji modemu. Jeśli potrzebujesz rady na temat wyboru przerwania IRQ zobacz Czy mogę używać więcej niż 2 porty szeregowe?. Na niektórych płytach głównych musisz wyłączyć port szeregowy, który ma zostać zastąpiony przez modem. Robi się to przełączając odpowiednnie zworki lub zmieniając ustawienia w BIOSie. Przeczytaj instrukcje do płyty głównej. Z powodu błędu w karcie graficznej IBM8514, możesz napotkać na kłopoty konfigurując twój modem wewnętrzny na porcie ttyS3. Jeśli linux nie znajdzie modemu na porcie ttyS3 możesz wykorzystać setserial, wtedy modem będzie pracował prawidłowo. Modemy wewnętrzne skonfigurowane na portach ttyS{0-2} nie powinny mieć klopotów z wykrycem ich przez system. 5.2 Rozmowy z twoim modemem. Zanim zaczniesz korzystać z bardziej skomplikowanych programów komunikacyjnych, do testów skorzystaj z kermit-a lub innego prostego programu (minicom?). Ostanią wersję kermita można zawsze znaleźć pod adresem ftp://sunsite.unc.edu:/pub/Linux/apps/comm i na jego kopiach. Powiedzmy, że twój modem jest przyłączony do portu ttyS3 i potrafi obsłużyć prędkość 115200 bps. Powinieneś wtedy napisać: linux# kermit C-Kermit 6.0.192, 6 Sep 96, for Linux Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New York. Default file-transfer mode is BINARY Type ? or HELP for help. C-Kermit>set line /dev/ttyS3 C-Kermit>set carrier-watch off C-Kermit>set speed 115200 /dev/ttyS3, 115200 bps C-Kermit>c Connecting to /dev/ttyS3, speed 115200. The escape character is Ctrl-\ (ASCII 28, FS) Type the escape character followed by C to get back, or followed by ? to see other options. ATE1Q0V1 ; wpisz to i naciśnij Enter OK ; modem powinien odpowiedzieć w ten ; sposób Jeśli modem odpowie na polecenie AT możesz założyć, że twój modem po stronie Linux-a działa poprawnie. Spróbuj połączyć się z innym modemem (np. numer 0202122 - nasza kochana TPSA - przyp. tłumacza). Napisz ATDT0202122,, Jeśli twoja linia nie obsługuje wybierania tonowego zamiast ATDT napisz ATDP. Jeśli nawiązałeś połączenie, to znaczy, że twój modem działa. Aby wróćic na konsole Kermita trzymajac wciśniety Ctrl wciśnij backslasz '\', zwolnij Ctrl i wciśnij C. Ctrl-\-C (Back at linux) C-Kermit>quit linux# To był prosty test przy wykorzystaniu prymitywnych, ręcznych metod wybierania numeru. Normalnie należy pozwolić Kermitowi na automatyczne wybranie numeru, korzystając z jego bazy numerów i zaawansowanych metod nawiązywania połaczeń. Np. korzystając z modemu USR Robotics należy zrobić tak: linux# kermit C-Kermit 6.0.192, 6 Sep 1997, for Linux Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New York. Default file-transfer mode is BINARY Type ? or HELP for help C-Kermit>set modem type usr ; wybuerz rodzaj modemu C-Kermit>set line /dev/ttyS3 ; wybierz urządzenie C-Kermit>set speed 115200 ; ustaw domyślną prędkość C-Kermit>dial 7654321 ; wybierz numer Number: 7654321 Device=/dev/ttyS3, modem=usr, speed=115200 Call completed.<BEEP> Connecting to /dev/ttyS3, speed 115200 The escape character is Ctrl-\ (ASCII 28, FS). Type the escape character followed by C to get back, or followed by ? to see other options. Welcome to ... login: Jeśli potrzebujesz wskazówek zobacz rozdział Programy komunikacyjne. Kiedy dzwonisz wykorzystując swój modem, ustaw prędkość portu szeregowego na największą jaka jest obsługiwana przez twój komputer. Instalacje Linux-a z biblioteką libc w wersji 5.x lub nowszej obsługują prdkości do 115200bps. libc znajduje się zwykle w katalogu /lib, zobacz jaką wersję posiadasz. Jeśli twój Linux nie rozpoznaje prędkości 57600 lub 115200bps, musisz skorzystać z programu setserial aby ustawić port na większą prędkość. Jak to zrobić jest opisane w rozdziale Jak ustawić port szeregowy na większe predkości?. Następnie w programi komunikacyjnym ustaw prędkość portu na 38400. 5.3 Konfiguracja modemów wyjściowych. Jeśli będziesz korzystał z modemu tylko do dzwonienia, możesz go skonigurować w niemal dowolny sposów. Jeśli jednak chcesz go wykorzystywać jako modem wejściowy, musisz skonfigurowac modem w taki sposób, aby wykorzystywał tę samą prędkość z jaką zamierzasz uruchomić program getty. Więc jeśli zamierzasz uruchomić getty z prędkościa 38400 bps. podczas konfigiracji modemu ustaw prędkość na 38400. Ma to na celu zpobiec nieporzumienim wynikłym ze złego dopasowania prędkości między portem szeregowym, a modemem. Zasadniczo, ustawienia fabryczne włączające korekcję błędów i sprzętowe sterowanie przepływem danych są najlepszymi ustawieniami modemów wyjściowch. Dokładne informacje o tych ustawieniach znajdziesz w dokumentacji modemu. 5.4 Sprzetowe sterowanie przepływem danych. Jeśli twój modem obsługuje sprzętowe sterowanie przepływem danych (RTS/CTS), stnowczo polecam wykorzystanie tego. Jest to szczególnie ważne w przypadku modemów posiadającą kompresję. Wpierw musisz włączyć RTS/CTS na samym porcie szeregowym. Najlepiej jest to zrobić w skryptach startowych /etc/rc.d/rc.local lub /etc/rc.d/rc.serial. Upewnij się ze te pliki są uruchamiane z głównego skryptu rc.sysinit. Dla każdego portu, dla którego chcesz uruchomic CTR/CTS należy wykonać polecenie: stty crtscts < /dev/ttyS3 Musisz również włączyć RTS/CTS w modemie. Jak to zrobić znajdzesz w dokumentacji modemu, ponieważ różni się to między modelami. Pamiętaj o zapamiętaniu konfiguracji modemu (w jego pamięci stałej), oczywiście jeśli twoj modem to potrafi. 6. Jak dzwonić na zewnątrz i do mojego komputera, wykorzystując jednocześnie getty_ps? Skonfiguruj modem w taki sposób, aby prawidłowo wybierał numery. Jeśli nie czytałeś rozdziału Jak mogę zadzwonić z mojego modemu? zrób to teraz! Podałem tam bardzo ważne informacje. Nie musisz czytać tego rozdziału, jeśli zamiesza jedynie dzwonic ze swojego modemu. 6.1 Konfiguracja modemu do dzwonienia na zewnątrz i przyjmowania połączeń. Aby mieć wyjście przez modem i jednocześnie obsługiwać przychodzące połączenia, musisz skonfigurować modem w specjalny sposób (znów za pomocą poleceń AT.): E1 wyświetlane wprowadzanych poleceń Q0 wyświetlanie kodów rezultatów V1 bądź bardziej rozgadany, podawaj więcej informacji S0=0 nigdy nie odpowiadaj na połączenie (uugetty obsługuje przychodzące połączenia, za pomocą opcji waitfor). Jeśli nie ustawisz tych opcji, ciąg znaków inicjujący modem, może nie wykonać poprawnie swej pracy, niwecząc całą procedurę. Lecz o plikach konfiguracyjnych później. &C1 DCD włączone tylko po nawiązaniu połączenia &S0 DSR zawsze włączone Przełączenie DTR resetuje modem (w zależności od producenta - RTFM). Powyższe ustawienia mają wpływ na zachowanie modemu podczas nawiązywania i zakańczania połączenia. Jeśli twój modem nie potrafi zapamiętać konfiguracji, możesz wcześniej opisane ustawienia zapamiętać w tzw. "INIT string". Zaraz o tym napiszemy. Niektóre modemy posiadają mikroprzełączniki służące do zmiany konfiguracji modemu (zmiany wartości rejestrów). Upewnij się że są poprawnie ustawione. Zacząłem zbierać listę sprawdzonych konfiguracji, dla różnych typów modemów. Jeśli masz ochotę przysłać mi swoją, proszę bardzo. Jeśli chciałbyś otrzymać jedną z konfiguracji, po prostu przyslij list. Posiadane przez mnie informacje są dostępne pod adresem ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs. Uwaga: aby zmusić mój Courier V.34 do poprawnego zerowania po spadku DTR musiałem ustawić &D2 i S13=1 (ustawienie bitu 0 rejestra S13). Otrzymałem potwierdzenia, że ten sposób działa również w przypadku USR Sportster V.34. Uwaga: Niektóre modele Supra traktują DCD inaczej niż inne modemy. Jeśli używasz Supry spróbuj ustawić &C0, a nie &C1. Aby poprawnie obsługiwać DTR trzeba również ustawić &D2. 6.2 Instalacja getty_ps. Pobież najnowszą wersję z sunsite.unc.edu:/pub/Linux/system/serial. Jeśli planujesz korzystać z wysokich prędkości (57600 i 115200bps), musisz zdobyć wersję 2.0.7j lub nowszą. Muszisz mieć również libc 5.x lub nowszą. getty_ps jest domyślnie skonfigurowane zgodnie ze standardem FSSTND (FileSystem STaNDard). To znaczy, że programy binarne będą w katalogu /sbin, a pliki konfiguracyjne będą się nazywały /etc/conf.{uu}getty.ttySN. Pliki blokady (lock files) będą umieszczane w katalogu /var/lock. Upewnij się, że katalog /var/lock istnieje. Jeśli nie chesz zgodności z FSSTND, programy binarne zostaną umieszczone w /etc, pliki konfiguracyjne zostaną nazwane /etc/default/{uu}getty.ttySN, a pliki blokady będą umieszczane w katalogu /usr/spool/uucp. Jeśli korzystasz z UUCP, zaleceamy ten drugi sposób, ponieważ Taylor UUCP napotka na problemy, jeśli przeniesiesz pliki blokady w miejsce, które nie bedzie sprawdzane (przez uucp w poszukawaniu plików blokady). W celu rejestracji komunikatów getty_ps korzysta z syslogd. Jeśli chesz skonfigurować syslogd przeczytaj strony podręcznika dla syslogd(1) i syslog.conf(5). Komunikaty są rejestrowane z priorytetem LOG_AUTH, błędy wykorzystują LOG_ERR, a informacje odpluskwiające LOG_DEBUG. Jeśli nie chcesz korzystać z syslogd tylko chesz aby komunikaty były zapisywane do pliku (domyślnie będzie to /var/adm/getty.log) , to musisz zmodyfikować plik tune.h w zrodłach getty_ps. Zastanów się i zdecyduj się czy chcesz zachować zgodność ze standardem FSSTND i czy chesz korzystać z syslogd, zmodyfikuj odpowiednio pliki Makefile, config.h i tune.h znajdujące się w katalogu źródłowym pakietu getty_ps. Następnie zainstaluj programy zgodnie z instrukcjami. Od tej chwili, wszystkie odwolania do getty należy traktować jako odwołania do getty_ps. Natomiast uugetty będzie odnosiło się do uugetty pochodzącego z pakietu getty_ps. 6.3 Konfiguracja uugetty. Dla przychodzących i wychodzących połączeń modemowych, chcemy zastosować uugetty. uugetty sprawdza czy odpowiednie pliki nie są zablokowane. Trzeba poprawić plik /etc/gettydefs, aby zawierał pozycje dotyczące modemu (pamiętaj, że te pozycje wzajemnie na siebie wskazują (są od siebie zależne), jednak nie mają zastosowania do połączeń z ustaloną prędkością - między każdą pozycją konieczny jest pusty wiersz): # Modem entries 115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #57600 57600# B57600 CS8 # B57600 SANE -ISTRIP HUPCL #@S @L @B login: #38400 38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #19200 19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #9600 9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #2400 2400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #115200 Jeśli posiadasz modem 9600 bps lub szybszy, z kompresją danych, wtedy możesz zablokować prędkość portu szeregowego i pozwolić aby modem sam wykonywał przejścia na inne prędkości bps. W takim przypadku zamiast wypróbowywania poszczególnych pozycji pliku /etc/gettydefs, wystarczy aby była tylko jedna pozycja opisujaca ustawienia modemu: # 115200 fixed speed F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200 Jeśli tój modem obsługuje sprzętowe sterowanie RTC/CTS, możesz do pliku /etc/gettydefs dodac opcję CRTSCTS: # 115200 fixed speed with hardware flow control F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200 Jeśli chcesz możesz zmusic uugetty do wyświetlania ciekawych informacji w nagłówku (login banner). W dalszych przykładach pokazuję jak wyświetlić nazwę systemu (komputera), numer portu, prędkość bps. Możesz dodać własne informacje: @B Aktualna (sprawdzona w momencie napotkania @B ) prędkość bps. @D Aktualna data w formacie MM/DD/YY. @L Linia szeregowa do któej przyłączone jest getty. @S Nazwa systemu (komputera). @T Aktualny czas, w formacie HH:MM:SS (24-godziny). @U Liczba aktualnie przcujących użytkowników. Jest to liczba pozycji w pliku /etc/utmp o niezerowym polu ut_name. @V Warość stałej VERSION, zdefiniowanej w plkiku ustawień standardowych. Aby wyświetlić pojedynczy znak @ musisz napisac '\@\ lub '@@'. Następnie upewnij się, że istnieją odpowiednie pliki urządzeń wejściowych i wyjściowych, i że modem jest włączony. Jeśli twoj modem jest podłączony do portu ttyS3 muszą istnieć pliki /dev/cua3 i /dev/ttyS3. Jeśli odpowiendnie pliki urządzeń nie istnieją wróć do rozdziału Tworzenie plików urządzeń w katalogu <tt>/dev</tt> i utwórz niezbędne pliki urządzeń. Jeśli chcesz mieć możliwość dzwonienia, podczas gdy uugetty czeka na nadejscie połączeń z zewnątrz, skorzystaj z urządzeń /dev/cua zamiast /dev/ttyS. Po zakończeniu edycji /etc/gettydefs możesz sprawdzić, czy składnia pliku jest poprawna wydając polecenie: linux# getty -c /etc/gettydefs 6.4 Przystosowywanie uugetty. Istniej mnóstwo parametrów, które możesz modyfikować oddzielnie dla każdego posiadanego portu. Przechowywane są w odzielnych plikach, każdy port może miećswój plik. Program uugetty zawsze wpierw sprawdza zawartość pliku /etc/conf.uugetty zawierajacego wspólne parametry dla wszystkich portów, a dopiero później wczytuje z /etc/conf.uugetty.ttySN konfiguracje konkretnego portu. Przykładowe pliki konfiguracyjne można znaleźć w zródłach pakietu. Zwykle są w każdej dystrybucji Linux-a. Nie przedstawiamy ich tutaj ze wzgledu na ich objętość. Jeśli używasz starszych wersji getty_ps (tzn. wcześniejszych od 2.0.7e) lub nie korzystasz ze schematu FSSTND, domyślnym plikiem konfiguracyjnym będzie /etc/default/uugetty.ttySN. Mój plik /etc/conf.uugetty.ttyS3 wygląda tak: # przykładowy plik konfiguracyjny modemu standardu Hayes # umożliwiający przyjmowanie połączeń z zewnątrz # # alternatywny plik blokaty, który należy sprawdzać. Jeśli istnieje, # wtedy uugetty jest uruchamiane ponownie, a więc modem jest # równiez powtórnie inicjowany ALTLOCK=cua3 ALTLINE=cua3 # uzywana linia INITLINE=cua3 # czas po jakim przerywamy, jeśli brak reakcji użytkownika TIMEOUT=60 # Ciag znaków zaierające polecenia inicjujące modem # format: (oczekiwane) (wysyłane) ... (sekwencja) INIT="" AT\r OK\r\n WAITFOR=RING CONNECT="" ATA\r CONNECT\s\A # istawiamy opóżnienie przez pokazaniem nagłówka Loginu. DELAY=1 #DEBUG=010 Aby uugettty było uruchomione i nasłuchiwało na porcie, musisz do pliku /etc/initab dopisać wiersz (wstawiając odpowiednie informacje typu port,prędkość,typ terminala): S3:456:respawn:/sbin/uugetty ttyS3 F38400 vt100 Zrestartuj proces init: linux# init q Parametr podany w pliku /etc/inittab określający predksość w bps powinien wskazywać możliwie jak największą prędkość. Teraz Linux będzie oczekiwał na połączenia przychodzące przez port szeregowy. Zadzwoń z innego komputera i wejdź do swojego systemu. uugetty posiada mnóstwo opcji. Zobacz stronę podręcznika dla getty(1m). Prócz innych ciekawych cech dostępne są funkcje ringback i udostępnianie modemu w zależnośći od pory dnia/nocy. RTFM :-). 7. Jak skonfigurować terminal przyłączony do mojego komputera PC? Instrukcje zawarte w tym rozdziale przedstawiają w jaki sposób przyłączyc do portu szeregoweg onaszego Linux-a terminal lub inny komputer. 7.1 Wymagania sprzętowe. Upewnij się, że posiadasz dobry kabel. Kabel bezmodemowy (null modem cable) kupiony w sklepie komputerowym będzie dobry. Tylko to musi być kabel bezmodemowy!. Wiele sklepów nazywa ten kabel kablem do drukarki szeregowej. Pamiętaj aby podłączyć modem do portu szeregowego (męski DB25 lub DB9), a nie równoległego. Gniazdo DB25 potrzebuje co najmniej kabla o takich połączeniach: PC male DB25 Terminal DB25 TxD Transmit Data 2 --> 3 RxD Receive Data RxD Receive Data 3 <-- 2 TxD Transmit Data SG Signal Ground 7 --- 7 SG Signal Ground Jeśli chesz korzystać ze sprzętowego uzgadniania prędkości, musisz mieć pełny kabel bezmodemowy: PC male DB25 Terminal DB25 TxD Transmit Data 2 --> 3 RxD Receive Data RxD Receive Data 3 <-- 2 TxD Transmit Data RTS Request To Send 4 --> 5 CTS Clear To Send CTS Clear To Send 5 <-- 4 RTS Request To Send DSR Data Set Ready 6 | DCD Carrier Detect 8 <-- 20 DTR Data Terminal Ready SG Signal Ground 7 --- 7 SG Signal Ground 6 DSR Data Set Ready | DTR Data Terminal Ready 20 --> 8 DCD Carrier Detect Jeśli masz gniazdo DB9 spróbuj takich połączeń: PC DB9 Terminal DB25 RxD Receive Data 2 <-- 2 TxD Transmit Data TxD Transmit Data 3 --> 3 RxD Receive Data SG Signal Ground 5 --- 7 SG Signal Ground I na koniec pełny kabel DB9-DB25 wygląda tak: PC DB9 Terminal DB25 RxD Receive Data 2 <-- 2 TxD Transmit Data TxD Transmit Data 3 --> 3 RxD Receive Data 6 DSR Data Set Ready | DTR Data Terminal Ready 4 --> 8 DCD Carrier Detect GND Signal Ground 5 --- 7 GND Signal Ground DCD Carrier Detect 1 | DSR Data Set Ready 6 <-- 20 DTR Data Terminal Ready RTS Request To Send 7 --> 5 CTS Clear To Send CTS Clear To Send 8 <-- 4 RTS Request To Send (RI Ring Indicator 9 not needed) (Tak, piny 2 i 3 w złączkach DB9 i DB25naprawdę mają przeciwne znaczenie). Jeśli nie używasz pełnego kabla bezmodemowego, możesz być zmuszony do zrobienia następującej sztuczki: po stronie komputera połącz ze sobą RTS i CTS, oraz DSR,DCD i DTR. W ten sposób jeśli komputer zażyczy sobie sygnału uzgadniania, otrzyma go, od samego siebie. Teraz, kiedu masz już dobry kabel podłącz terminal do komputera. Jeśli możesz powiedz terminalowi aby ignorował sygnały sterujące modeme. Spróbuj ustawić następujące parametry terminala: prędkosć 9600 bps, 8bitów danych, 1 bit stopu, brak bitu parzystości. 7.2 Konfigurowanie getty. Zainstaluj getty_ps zgodnie z instrukcjami zawartymi w rozdzaiale 7.2. Dodaj do pliku /etc/gettydefs pozycję opisującą twój terminal: # 38400 bps Dumb Terminal entry DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400 # 19200 bps Dumb Terminal entry DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200 # 9600 bps Dumb Terminal entry DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600 Jeśli chesz możesz w zachęcie do sysytemu wyświetlać różne interesujące informacje. W moich przykładach wyświetlana jest nazwa systemu i nazwa linii. Możesz dodać inne rzeczy: @B Aktualna (sprawdzona w momencie napotkania @B ) prędkość bps. @D Aktualna data w formacie MM/DD/YY. @L Linia szeregowa do któej przyłączone jest getty. @S Nazwa systemu (komputera). @T Aktualny czas, w formacie HH:MM:SS (24-godziny). @U Liczba aktualnie przcujących użytkowników. Jest to liczba pozycji w pliku /etc/utmp o niezerowym polu ut_name. @V Warość stałej VERSION, zdefiniowanej w plkiku ustawień standardowych. Aby wyświetlić pojedynczy znak @ musisz napisac '\@\ lub '@@'. Po zmodyfikowaniu /etc/gettydef możesz się upewnić, że składnia pliku jest poprawna wydając polecenieL linux# getty -c /etc/gettydefs Każdemu z istniejących portów szeregowych można przydzielić mnóstwo parametrów. Umieszcza się je w odzielnych plikach, po jednym dla każdego z portów. Każdy proces uugetty będzie korzystał z parametrów zawartych w pliku /etc/conf/uugetty, a z /etc/conf.uugetty.ttySN będzie korzystał jedynie proces obsługujący port ttySN. Przykładowe pliki z opcjami można znaleźć w źródłach pakietu getty_ps, który jest dostarczany niemal z każdą dystrybucją. Aby aoszczędzić miejsca nie prezentujemy ich tutaj. Pmiętaj, że jeśli korzystasz z getty w wersji starszej niż 2.0.7e, lub nie stosujesz się do zasad FSSTND, to domyślny plik konfiguracyjny będzie nosił nazwę /etc/default/conf.uugetty. Mój plik /etc/conf.uugetty.ttyS3 wygląda następująco: # sample uugetty configuration file for a Hayes compatible modem to allow # incoming modem connections # # alternate lock file to check... if this lock file exists, then uugetty is # restarted so that the modem is re-initialized ALTLOCK=cua3 ALTLINE=cua3 # linia, którą należy zainicjować INITLINE=cua3 # timeout po jakim nalezy się rozłaczyć jeśli nie ma ruchu TIMEOUT=60 # ciąg znaków konfigurujący modem # format: <oczewiname> <dowyslania> ... (sekwencja pogawedki) INIT="" AT\r OK\r\n WAITFOR=RING CONNECT="" ATA\r CONNECT\s\A #niniejszy wiersz wprowadza opóźnienie przed wysłaniem #informacji (login banner) DELAY=1 #DEBUG=010 Aby uruchomić getty na porcie szeregowym wprowadż odpowiednie zmiany do pliku /etc/inittab (podmieniając odpowiednio informacje, tak aby pasowały do twojego systemu): S1:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100 Zrestartuj init: linux# init q W tym momencie powinieneś zobaczyć zachętę wejścia do systemu. Być może musisz wcisnąć wpierw kilkakrotnie <return>, aby zwrócić na siebie uwagę terminala. 7.3 Uwagi o konfiguracji komputera PC jako terminala Wielu ludzi konfiguruje swoje komputery PC do pracy jako terminal przyłączony do serwera z Linux-em. Stare komputery 8088 lub 286 są do tego celu doskonałe. Wszystko co potrzebujesz to dyskietka startowa z DOSem i program komunikacyjny emulujący terminal. Do tego celu bardzo dobrze nadaje się kermit. Skompilowane wersje kermita niemal dla każdego systemu operacyjnego można znaleźć pod adresem http://www.columbia.edu:/kermit. Do tego celu nadają się również takie dosowe programy jak telix czy procomm. Pamiętaj aby prawidłowo skonfigurować program komunikacyjny, wprowadź poprawny numer portu. 8. Czy mogę używać więcej niż 2 porty szeregowe? Nie musisz czytać tego rozdziału jeśli nie chcesz używać więcej niż 2. portów szeregowych (pod warunkiem, że nie masz karty wieloportowej). Jeśli masz jeszcze jakiś wolny port szeregowy, to odpowiedź brzmi: tak, możesz go wykorzystać. Liczba wykorzystanych portów szeregowych jest ograniczona liczbą dostępnych przerwań IRQ i adresów portów We/Wy.Jest o ograniczenie szyny komputera PC, nie Linux-a. Każde urządzenie szeregowe musi mieć przydzielone własne przerwanie IRQ i adres portu. Urządzeniem szeregowym może być port szeregowy, wewnętrzny modem lub karta wieloportowa. Wieloportowe karty portów szeregowych są projektowane w specjalny sposób, który umożliwia posiadanie wielu portów szeregowych, które współdzielą jedno przerwanie IRQ. Linux pobiera z nich dane wykorzystując do tego rózne adresy dla każdego z portów na karcie. 8.1 Wybór przerwań dla urządzeń szeregowych. Twój komputer standardowo ma przerwanie IRQ=4 przydzielone portom ttyS0, ttyS2 i IRQ=3 do portów ttyS1, ttyS3. Aby skorzystać z więcej niż jednego urządzenia szeregowego będziesz musiał dla niego przeznaczyć oddzielne przerwanie IRQ. Dobrym pomysłem jest przydzielenie przerwania wykorzystywanego przez port równoległy. Twój PC jest zwykle konfigurowany w ten sposób, że portom równoległym przydzielane są przerwania 5 i 7. Bardzo rzadko używa się dwóch portów równoległych. Co więcej możesz przydzielić przerwanie poru rónoległedo do portu szeregowego i nadal korzystać z portu równoległego. Zmiany przerwań IRQ i innych parametrów można wykonać za pomocą programu setserial. Czasami możesz być zmuszony do zmiany ustawień mikroprzęłączników, zobacz w dokumentacji karty. Będziesz musiał tak to wszystko skonfigurować, aby każde z urządzeń szeregowych miało jedno i tylko jedno przerwanie. Poniżej moja konfiguracja - umieszczona w pliku /etc/rc.d/rc.local : /etc/setserial /dev/cua0 irq 3 # myszka /etc/setserial /dev/cua1 irq 4 # terminal Wyse /etc/setserial /dev/cua2 irq 5 # Zoom modem /etc/setserial /dev/cua3 irq 9 # USR modem Standardowe przydziały IRQ: IRQ 0 Timer channel 0 IRQ 1 Keyboard IRQ 2 Cascade for controller 2 IRQ 3 Serial port 2 IRQ 4 Serial port 1 IRQ 5 Parallel port 2 IRQ 6 Floppy diskette IRQ 7 Parallel port 1 IRQ 8 Real-time clock IRQ 9 Redirected to IRQ2 IRQ 10 not assigned IRQ 11 not assigned IRQ 12 not assigned IRQ 13 Math coprocessor IRQ 14 Hard disk controller 1 IRQ 15 Hard disk controller 2 Nie ma Najlepszego wyboru przerwań IRQ. Po prostu upewnij się, że nie jest wykorzystywane przez kilka urządzeń jednocześnie. Dobrym wyborem jest jedno z 2, 3, 4, 5 i 7. ``not assigned'' (nie przydzielone) oznacza, że aktualnie żadne urządzenie go nie używa. Pamiętaj, że IRQ 2 to to samo co IRQ 9. Możesz je nazwyac jak chcesz, sterownik portów szeregowych jest bardzo wyrozumiały. Jeśli posiadasz kartę z 16-to bitową szyną, możesz wtedy dodatkowo korzystać z przerwań 10,11,12 i 15. Upewnij się, że nie korzystasz z przerwańIRQ 0, 1, 6, 8, 13 lub 14. Są wykorzystywane przez płytę główną. Bedzie bardzo nieszczęśliwa jeśli będziesz próbował zabrać jej przerwanie. Jak już wszystko zrobisz, sprawdź ponownie, zobacz /proc/interrupts i upewnij się, że nie ma konfliktów. 8.2 Ustawianie adresów urządzeń szeregowych. Następnie musisz ustawić adres portu. Sprawdź podręcznik do karty, gdzie są opisane ustawienia mikroprzełączników. Podobnie, jak w przypadku przerwań, jeden adres może być wykorzystywany tylko przez jedno urządzenie. Porty szeregowe są zwykle skonfigurowane dla następujących adresów: ttyS0 address 0x3f8 ttyS1 address 0x2f8 ttyS2 address 0x3e8 ttyS3 address 0x2e8 Wybierz adresy dla każdegu urządzenia szeregowego, następnie odpowiednio ustaw mikroprzełączniki. Ja mam swój modem na porcie ttyS3, mysz na ttyS0 i terminal na ttyS2. Kiedy zrestartujesz system, Linux powinien zobaczyć porty szeregowe pod adresami, które ustawiłeś. IRQ raportowane podczas startu mogą nie odpowiadać tym ustawionym przez mikroprzełączniki na karcie. Nie martw się tym. Linux podczas startu nie wykonuje rozpoznania przerwań IRQ, ponieważ jest to trudne i może być mylne. Aby powiedzić Linux-owi, które przerwanie jest używane przez dany port trzeba skorzystać z programu setserial. 9. Jak ustawić port szeregowy na większe prędkości? Jaką prędkość powinienem stosować do mojego modemu? Ta część powinna pomóc w doborze prędkości z jaką modem komunikuje się z programem lub getty. Jeśli masz modem wolniejszy niż 9600 bps (V.32), ustaw prędkość poru na największą obsługiwaną przez twój modem. NP 300, 1200, lub 2400 bps. Jeśli posiadasz modem 9600 bps (v.32) z kompresją V.42bis, używaj prędkości 38400. Kompresja V.42bis toretycznie zwiększa przepustowość czterokrotnie :``4 * 9600 = 38400''. Jeśli twój modem obsługuje prędkość 14400 bps (V.32bis) z kompresja V.42bis, wykorzystaj setserial i ustaw flagę spd_hi, aby skonfigurować port na prędkosć 57600 bps (4 * 14400 = 57600). Dla modemów 28800 (V.FC lub V.34) ustaw flagę spd_vhi (4 * 28800 = 115200). Następnie pamietaj aby w programie komunikacyjnym (lub pliku inittab) wybrać prędkosć portu 38400. Upewnij się, że masz układ 16550A UART. Jeśli używasz biblioteki libc w wersji 5.x lub nowszej, to definiowane są jescze prędkości 57600 i 115200. libc znajduje się w katalogu /lib, zajżyj tam i zobacz, której wersji używasz. Jeśli programy, których używasz zostały skomplilowane dla tej wersji biblioteki, możesz używać tych prędkosci zamiast posługiwać się programem setserial. Ponieważ obecnie jest dostępnych wiele dystrybucji Linux-a, najlepiej próbować korzystać z definicji tych wyższych prędkości, jeśli posiada się nową dystrybucje Linux-a. Przetestuj swoje ustawienia uruchamiając setserial z wiersza komend i jeśli wszystko pracuje poprawnie umieść odpowiednie polecenia w pliku /etc/rc.d/rc.serial lub w /etc/rc.d/rc.local, wtedy będą wykonywane przy starcie systemu. Ja ustawiam prędkość 115200 portu ttyS3 poleceniem: /sbin/setserial /dev/cua3 spd_vhi Upewnij się, że korzystasz z odpowiedniej ścieżki dostępu do programu setserial i poprawnych nazw urządzeń. Możesz sprawdzić aktualne ustawienia portu szeregowego wydając polecenie setserial -a /dev/ttyS3 10. Narzędzia i programy komunikacyjne. Jak już wszystko zacznie działać, możesz przyjżeć się tym bardziej zaawansowanym programom. Jeśli nie ma ich w twojej dystrybucji, wszystkie są dostępne w standardowych archiwach FTP. ecu - program komunikacyjny C-Kermit - przenośny, z językiem skryptów, program komunikacyjny do połączeń przez port szeregowy lub przy wykorzystaniu protokołu TCP/IP umożliwiający transer plików i przekodowywanie znaków. minicom - program komunikacyjny zbliżony do telixa procomm - program komunikacyjny z transmisją zmodem seyon - program komunikacyjny pracujący w środowisku X xc - pakiet komunikacyjny xcomm Innymi pozytecznymi programami są term i SLiRP. Umożliwiają posiadaczom zwykłych kont korzystanie z aplikacji wymagających protokołu TCP/IP. screen jest kolejnym programem umożliwiającym prowadzenie wielu sesji na jadnym połączeniu. Zachowuje się podobnie do wirtualnych konsoli. callback to program, który umożliwia oddzwanianie. mgetty+fax obsługuje FAXy i stanowi alternatywę dla getty. ZyXEL to program sterujący pracą modemów ZyXEL U-1496. Obsługuje połączenia przychodzące i wychodzące, zwiekszające bezpieczeństwo połączenia z oddzwanianiem, obsługę FAX-ów i głosowych skrzynek pocztowych. Oprogramowanie SLIP i PPP można znaleźć pod adresem ftp://sunsite.unc.edu/pub/Linux/system/network/serial. Innych programów można szukać pod adresem ftp://sunsite.unc.edu/pub/Linux/system/serial lub ftp://sunsite.unc.edu/pub/Linux/apps/comm lub na jednej z wielu kopii sunsite-a. Są to katalogi, w których przechowuje się oprogramowanie dla portów szeregowych. 11. Sztuczki i chwyty. Kilka sztuczek, które mogą Ci się przydać ... 11.1 Kermit i zmodem. Abu korzystać z protokołu zmodem w programie kermit, dodaj do pliku .kermrc następujace dane: define rz !rz < /dev/cua3 > /dev/cua3 define sz !sz \%0 > /dev/cua3 < /dev/cua3 Pamiętaj o podaniu prawidłowego portu, tego, do którego przyłączone jest modem. Nastepnie w wierszu zachęty programu kermit po prostu napisz rz lub sz <filename>. 11.2 Automatyczne ustawinie rodzaju terminala. Aby automatycznie ustawiac typ terminala dla wszystkich sesji prowadzonych przez daną linie, dodaj do pliku /etc/inittab odpowiednią informację. Gdybym miał terminala vt100 przyłączony do portu ttyS1 dodałbym opcję wt100 do wiersza opisującego tę linię: S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100 Możesz również korzystać z programu tset, który potrafi określić rodzaj terminala i nie jest zależny od żadnych ustawień domyślnych. 11.3 Kolorowe ls przy połączeniach przez porty szeregowe. Jeśli użycie kolorów ls bruździ w ustawieniach terminala trzeba to wyłączyć. ls --color i ls --colour wykorzystuje kolory. Niektóre dystrybucje korzystają domyślnie z "kolorowego" ls. Sprawdz /etc/profile i /etc/csh.cshrc czy nie znajdziesz tam aliasów dla ls. Możesz również sam zrobić alias ls na ls --no-color, jeśli nie chcesz zmieniać domyślnej konfiguracji systemu. 11.4 Drukowanie na drukarce przyłączonej do terminala. Istnieje program o nazwie vtprint, który potrafi to zrobić. ftp://ftp.sdsu.edu/pub/vtprint lub http://www.sdsu.edu/~garrett. Inny program, który to umożliwia nosi nazwę xprt. ftp://sunsite.unc.edu/pub/Linux/system/printing. 11.5 Czy Linux potrafi automagicznie skonfigurować urządzenia szeregowe? Tak. Aby Linux mógł rozpoznać i skonfigurować urządzenie szeregowe dodaj do pliku startowego (/etc/rc.d/rc.local lub /etc/rc.d/rc.serial) następujące polecenie: /sbin/setserial /dev/cuaN auto_irq skip_test autoconfig Zrób to dla każdego portu, który chcesz skonfigurować. Pamiętaj aby podać nazwę pliku urządzenia, które rzeczywiście istnieje w twoim komputerze. Uwagi na temat kart wieloportowych. Informacje o adesach portów i przerwaniach dla kart wieloportowych znajdziesz w pliku rc.serial w pakiecie setserial. Zawiera mnóstwo szczegółów na temat kart wieloportowych, włączając adresy portów i nazwy urządzeń. 11.6 Korzystanie z konsoli przez port szeregowy. W numerze 36 znajdzesz artykuł Linux Journal, http://www.ssc.com/lj/issue36/index.html wyjaśniający w jaki sposób korzystać z konsoli przez port szeregowy. Niestety listy wysyłane do autora powracają. Mam nadzieje, że wkrótce artykuł pojawi się w serwisie Linux Journal pod podanym wcześniej adresem. 11.7 Wyższe prędkości transmisji. Jeśli w systemach z dyskami (E)IDE zauwazysz niskią szybkość transmisji przez porty szeregowe i bledy (overruns) portu szeregowego skorzystaj z programu hdparm. Jest to narzędzie, które umożliwia modyfikacje parametrów urządzeń (E)IDE, włączając odblokowywanie innych przerwań w czasie trwania przerwani IRQ dysku. Zwiększy to czułość systemu i ułatwi mu szybszą reakcję na wydarzenia eliminując błędy występujące na porcie szeregowym (overruns). Pamiętaj aby bardzo dokładnie przeczytać dokumentacje programu ponieważ niektóre sterowniki/dyski nie lubią takich ustawień i mogą zniszczyć system plików znajdujący sie na dysku. Zwróć również uwagę na narzędzie o nazwie irqtune umożliwiające zmianę prirytetów przerwań IRQ poszczególnych urządzeń, na przykład portu szeregowego, na którym pracuje Twój modem. Może to z zwiększyć szybkość przesyłania informacji przez port szeregowy twojego komputera. Dokumnet FAQ dotyczący irqtune jest dostępny pod adresem http://www.best.com/~cae/irqtune. 12. Krok dalej. Nie musisz czytać tego rozdziału, jego celem jest wprowadzenie czytelnika w świat telekomunikacji i wnętrze UNIXa. 12.1 Co to są pliki blokady (lockfiles)? Plik blokady to zwykły plik, którego istnienie po prostu oznacza, że dane urządzenie jest w użyciu. Przechowywane są w katalogu /usr/spool/uucp lub /var/lock. Pliki blokady pod Linux-em noszą nazwę LCK..name. name oznacza nazwę urządzenia lub nazwą komputera w formie UUCP. Pewne procesy tworzą pliki blokady aby mieć wyłączny dostęp do urządzeń. Np. jeśli będziesz dwonił swoim modemem pojawi się plik blokady mówiący innym procesom, że ktoś już używa tego urządzenia. Pliki blokady zwierają zwykle PID procesu zajmującego zasób. Większość programów odczytuje pliki blokady i sprawdza czy proces o podanym w tym pliku identyfikatorze PID nadal istnieje. Jeśli sprawdzenie wykaże, że taki proces istnieje, czyli plik blokady jest ważny, to proces który sprawdzał plik blokady powinien zakończyć działanie. Jeśli taki proces już nie istnieje, niektóre programy usuwają przeterminowany plik blokady i korzystają z urządzenia zakładając nowy własny plik blokady. Inne programy po prostu kończą działanie informując Cię, że urządzenie jest w użyciu. 12.2 ``baud'' vs. ``bps''. ``baud'' i ``bps'' są prawdopodobnie najczęściej niepoprawnie używanymi terminami w branży komputerowo/telekomunikacyjnej. Wiele osób używa tych terminów zamiennie, podczas gdy każdy z nich oznacza coś innego! baudPrędkość modulacji (baud rate) jest miarą ile razy na sekundę zmienia się sygnał wysyłany przez modem (modulator-demodulator). Spotykane zwykle prędkości wynoszą 50, 75, 110, 300, 600, 1200 i 2400. Większość szybkich modemów działa z prędkością 2400. Ze względu na ograniczenia linii telefonicznych ciężko jest uzyskać prędkości większe niż 2400 i działają tylko w specyfcznych warunkach. Nazwa ``baud'' pochodzi od nazwiska Emila Baudot, wynalazcy asynchronicznego telegrafu. bpsPrędkość bps jest miarą przesyłane jinformacji w jednostce czasu (bity na sekunde). Standardowe prędkości bps wynoszą 50, 75, 110, 300, 1200, 2400, 9600, ... 115200. Modemy z kompresją V42bis (kompresja 4:1) posiadają teoretyczną prędkość do 115200 bps. O tym zwykle myslą ludzie, kiedy używają mylnie pojęcia ``baud''. Skoro szybkie modemy dzialają z prędkościs 2400 bodów, w jaki sposów przesyłają informacje z prędkościa 14400 bps? Modemy uzyskują zależność bps > bod-y dzięki kodowaniu w jednym bodzie kilku bitów. Jeśli 2 lub więcej bitów jest zakodowanych w jednym bodzie, prędkość bps przekracza liczbę bodów na sekunde. Jeśli twój modem łączy się z prędkością 14400 to znaczy, że przesyła 6 bitów w jednym bodzie. Jak powstało całe to zamieszanie? Dawniej, kiedy dzisiejsze przestarzałe modemy były jednymi z najszybszych, prędkośc bps była zwykle równa ilości bodów na sekunde. Jeden bod zawieral jeden bit. Ludzie używali tych nazw wymiennie, oba pojęcia miały te ame wartości. Np. modem o prędkości 300 bps wysyłał 300 bodów na sekunde. Wszystko się zmieniło, kiedy pokazały się szybsze modemy i prędkość przesyłanych bitów przekroczyła prędkość wysylanych bodów. 12.3 Co to jest UART? Jaki ma wpływ na osiągi portu szeregowego? UART ((Universal Asyncronous Receiver Transmitter) są układami znajdującymi się na karcie portów szeregowych. Ich zadaniem jest zamiana danych na bity, przesyłanie bitów przez linię szeregową i odbudowa danych na podstawie otrzymanych bitów. Układy UART operują na informacji podzielonej na bajty, który może być również reprezentacją znaku ASCII. Powiedzmy, ze posiadasz terminal przyłączony do twojego PC. Kiedy wprowadzasz znak, terminal przekazuje go do nadajnika (również pewnego rodzaju układu UART). Nadajnik przesyła ten bajt przez linię szeregową, bit po bicie z określoną prędkościa. Po stronie PC, odbierający układ UART pobiera kolejne bity i buduje z nich bajty, które wstawia kolejno do bufora. Istnieją dwa różne rodzaje układów UART. Powszechnie znane głupe 8250 i 16450, oraz zawierające kolejkę FIFO, sprytniejsze 16550A. Aby zrozumieć róznicę przestudiujmy co się dzieje, kiedy układ UART wysyła lyb otrzymuje bajt informacji. Układ UART sam z siebie nie potrafi nic zrobić. Tylko wysyła i odbiera bity. Za akżdym razem, kiedy jeden bajt został wysłany lub odebrany CPU otrzymuje sygnał przerwania od urządzenia szeregowego. Wtedy procesor przenosi otrzymany bajt z bufora układu UART gdzieś do pamięci, lub przekazuje układowi UART do wysłania kolejny bajt. Układy 8250 i 16450 posiadają bufor o rozmiarze jednego bajtu. To oznacza, że za każdym razem, kiedy jeden bajt jest wysłany lub odebrany procesor otrzymuje sysgnał przerwania. Przy małych prędkościach wszystko jest w porządku. Lecz przy wyższych prędkościach, procesor jest tak zajęty obsługą układu UART, że nie ma czasu na inne zadania. W niektórych przypadkach procesor nie nadąża z samą obsługą układu UART i bajt zawarty w buforze ukladu UART jest nadpisywany (niszczony) ponieważ został tam umieszczony następny bajt, zanim poprzedni został przeniesiony w bezpieczne miejsce. To jest sytuacja, w której przydaje się układ 16550A. Ten układ posiada bufor FIFO o rozmiarze 16 bajtów. To znaczy, że może wysłać lub odebrać 16 bajtów, zanim jest zmuszony wysłać do procesora sygnał przerwania. Poza tym prócz tego ,ze sam układ może poczekać, to jeszcze procesor może przenieść za jednym razem wszystkie 16 bajtów. Choć poziom generowania przerwań rzadko jest równy 16, jest to nadal ogromna przewaga nad innymi układami UART, posiadajacymi 1-no bajtowy bufor. Procesor otrzymuje mnej przerwań i ma czas na obsługę innych zadań. Dane nie są gubione i wszyscy są szczęśliwi. (Istnieją jeszcze układy 16550, lecz są traktowane tak, jak 16450 ze względu na blędy jakie zawierają). Zasadniczo układy 8250 i 16450 powinny się sprawować poprawnie do prędkości 38400 bps. Przy wyższych prędkościach możesz mieć okazję zobserwować utratę danych i zmiejszenie czasu odpowiedzi przy pracy zdalnej. Inne systemy operacyjne (nie sprzeczajmy się co to jest sytem operacyjny), jak DOS nie są wielozadaniowe więc mogą sobie lepiej radzić z układami 8250 lub 16450. Dlatego niektórzy nie widzą utraty danych, zanim nie przesiądą się na Linux-a. Inteligentne karty wieloportowe nie posiadają układów UART, lecz układy DSP, które wykonują dodatkowe buforowanie i sterowanie jescze bardziej odciążając procesor. Np Cyclades Cyclom i Stallion EasyIO korzystają z układu Cirrus Logic CD-1400 RISC. Pamiętaj, że głupie układy UART nie są złe. Nie są wystarczająco dobre do dużych prędkości. Nie powinieneś mieć żadnych kłopotów podłączająć mysz lub terminal do portu pracującego na takim układzie. Lecz w przypadku modemów o wysokiej prędkości 16550A jest koniecznością. Karty z układami 16550 możesz kupić niewiele drożej, zapytaj się swego sprzedawcy jakiego rodzaju układy znajdują się na karcie. Lub jeśli chcesz unowocześnić swoją kartę wystarczy nabyć układy 16550A i włożyć w miejsce starych 16450. Mają zgodny rozkład nóżek. Część kart ma montowane układy 16450 na specjalnych podstawkach, jeśli nie możesz sprzedać starą kartę i kupić nową. Prawdopodobnie zaoszczędzisz sobie w ten sposów bielu kłopotów. Ich cena nie powinna przekroczyć US$ 50. 12.4 Jaka jest naprawdę różnica między urządzeniami /dev/cuaN itt>/dev/ttySN devices? Różnica polega na sposobie otwierania tych urządzeń. Urządzenia wejściowe /dev/ttySN są otwierane w trybie blokowania aż do sygnału CD (ktoś się właśnie połączył). Więc jeśli ktoś chce korzystać z urządzenia /dev/cuaN nie ma konfliktu z programem nasłuchującym urządzenie /dev/ttySN. To rozróżnienie jest potrzebne aby umożliwić przez ten sam modem połączenia przychodzace (ttySN) i wychodzące (cuaN). 13. Radzenie sobie z kłopotami. 13.1 Cały czas pojawia się komunikat ``line NNN of inittab invalid''. Upewnij się, że stosujesz odpowiednia składnie w pliku /etc/inittab zgodną z twoją wersja programu init. Różne wersje tego programu obecne w świecie Linux-a mają różną składnię. Również upewnij się, że używasz poprawnej składni dla twojej wersji getty. 13.2 Kiedy próbuję zadzwonić dostaję komunikat ``/dev/cuaN: Device or resource busy''. Ten problem może się pojawiać, gdy DCD i DTR nie są ustawione poprawnie. DCD powinno być włączone tylko wtedy, gdy jest rzeczywiste połączenie (gdy ktoś do ciebie zadzwonił i w danej chwili wykorzystuje modem i port szeregowy), a nie kiedy getty nasłuchuje na porcie. Sprawdź czy twój modem jest skonfigurowany, aby włączać DCD tylko podczas trwania połączenia. DTR powinno być włączone zawsze, gdy coś sprawdza lub nasłuchuję linię, jak getty, kermit lub inny program komunikacyjny. Inną powszechną przyczyną omunikatu ``device busy'' (urządenie zajęte) jest skonfigurownie portu szeregowego w taki sposob, że używa przerwania IRQ przydzielonego do innego urządzenia. Podczas inicjowania portu sterownik, pyta się Linux-a o pozwolenie na wykorzystanie przerwania sprzętowego. Linux pamięta, które przerwanie zostało mu przydzielone i jeśli twoje przerwanie zostało już przydzielone, urządzenie (np. port szeregowy) nie bedzie mogło zostać prawidłowo zainicjowane. Urządzenie nie ma za bardzo jak powiedzieć Ci o tym, poza przypadkiem kiedy próbujesz go użyc. Przekazuje wtedy błąd ``device busy''. Sprawdź przerwania wszystkich swoich kart (szeregowych, sieciowych, SCSI, itd.). Szukaj konfliktów przerwań IRQ. 13.3 Cały czas otrzymuję ``Id SN respawning too fast: disabled for 5 minutes''. Upewnij się, że Twój modem jest skonfigurowany poprawnie. Przyjżyj się rejestrom E i Q. Przyczyną może być pogawędka modemu z programem getty. Upenij się ,że poprawnie wywołujesz getty w pliku /etc/inittab/. Używanie błędnej składni lub nieporawnych nazw urządzeń jest przyczyną licznych kłopotów. Upewnij się, że /etc/gettydefs ma poprawną składnie. W tym celu wydaj polecenie: linux# getty -c /etc/gettydefs Przyczyna może leżeć w niepoprawnej inicjalizacji programu uugetty. Patrz pytanie ``getty lub uugetty nadal nie pracuje poprawnie''. 13.4 Porty szeregowe są powolne, lub mogą przesyłać informacje tylko w jedną strone. Prawdopodobnie konflikt IRQ. Upewnij się, żę IRQ nie są wspólne. Sprawdź wszystkie karty (szeregowe, sieciowe, SCSI, itd.). Upewnij się, że ustawienia mikroprzełączników i parametry ustawiane przez setserial są poprawne dla wszystkich urządzeń szeregowych. Sprawdź /proc/interrupts i /proc/ioports w poszukiwaniu konfliktów. 13.5 Moj modem blokuje się po tym, jak ktoś się rozączy, lub uugetty nie uruchimi się ponownie. Przyczyna może leżeć w tym, że kiedy spada sygnał DTR twój modem się nie zeruje. Widziałem jak diody RD i SD na moim modemie szalały, kiedy cos takiego mi się zdarzyło. Twój modem musi się zerować. Wiekszość modemów zgodnych z Hayes wymaga ustawienia &D3, lecz w moim USR Courier musiałem ustawić &D2 i S13=1. Sprawdź w dokumnetacji modemu. 13.6 Mam terminal podłączony do mojego PC, lecz po wpisaniu identyfikatora blokuje się. Prawdopodobnie pozycja dotycząca tego terminala w pliku /etc/gettydefs nie zawiera opcji CLOCAL. I prawdopodobnie nie używasz pełnego kabla bezmodemowego (full null modem cable). Musisz ustawić opcję CLOCAL, dzieki której Linux ignoruje sygnały strujące modemem. To powinno wyglądać mniej więcej tak: # 38400 bps Dumb Terminal entry DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400 # 19200 bps Dumb Terminal entry DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200 # 9600 bps Dumb Terminal entry DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600 Następnie zabij (kill) proces getty, tak aby uruchomil się następny, który odczyta nowe ustawienia. Jeśli korzystasz z agetty: dodaj do wiersza agetty w pliku /etc/inittab parametr -L. W ten sposób zmusisz agetty do ignorowania sygnałów sterowania modemem. Następnie zrestartuj program init wydając polecenie init q. Odpowiedni wpis w pliku /etc/inittab powinien wyglądać mniej więcej tak: s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100 13.7 Moj modem traci dane przy większych prędkościach. Jeśli próbujesz uruchomić swój modem z prędkością co najmniej 19200 bps i nie posiadasz układów UART 16550A, powinieneś je wymienić. Patrz rozdział Co to jest UART. 13.8 Podczas startu Linux nie raportuje portów szeregowych w sposób jaki je ustawiłem. To prawda. Linux nie wykonuje podczas startu rozpoznania IRQ, jedynie strawdza istnienie urządzeń szeregowych. Dlatego nie przejmuj się tym co wypisuje podczas startu na temat IRQ, ponieważ po prostu zakłada standardową konfiguracje. Dzieje się tak ponieważ wykrywanie przerwań IRQ nie jest pewne i mogą być odczytane niepoprawnie. Dlatego pomimo, że moj ttyS2 jest skonfigurowany na IRQ 5 nadal widzę: Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A Musisz powiedzieć Linux-owi o przerwaniach IRQ, korzystając z programu setserial. Po uruchomieniu systemu możesz zajżeć do pliku /proc/interrupts i zobaczyć, jak zostały przydzielone. 13.9 rz i/lub sz nie działają kiedy pracuje na moim Linux-ie przez modem. Jeśli przy próbie transferu plików Linux szuka urządzenia /dev/modem sprawdź zawartość plików /etc/profile i /etc/csh.cshrc. W niektórych dystrybucjach (szczególnie w Slackware) może tam być zdefiniowana garść aliasów, które wywołują całe zamieszanie. Poraw je lub po prostu usuń. 13.10 Widzę na ekranie śmiesznie wyglądające znaczki. Tak się dzieje, gdy wyślesz na konsolę wirtualną dane binarne, lub czasami przy połączeniach przez porty szeregowe. Jednym ze sposobów na przywrócenie normalengo wyglądu ekranu jest napisanie echo ^v^[c lub: linux% echo <ctrl>v<esc>c 13.11 getty lub uugetty nadal nie dziala. getty_ps posiada opcję DEBUG. Zmień plik konfiguracyjny /etc/conf.{uu}getty.ttySN i dodaj opcję DEBUG=NNN. NNN może przyjmować kombinacje podanych poniżej wartości ( w zależności o tego jakie informacje chcesz otrzymywać): D_OPT 001 ustawianie opcji D_DEF 002 przetwarzanie domyśłnych plików konfiguracyjnych D_UTMP 004 obsługa utmp/wtmp D_INIT 010 inicjowanie liniii (INIT) D_GTAB 020 przetwarzanie pliku gettytab D_RUN 040 inna diagnostyka czasu wykonania D_RB 100 odpluskwianie obcji ringback D_LOCK 200 obsługa pliku blokady D_SCH 400 obsługa zaplanowanych zdarzeń D_ALL 777 wszystko Na początek mozna ustawić DEBUG=010. Jeśli korzystasz z syslogd, informacje odpluskwiające będą pojawiać się w plikach dzienników. Jeśli syslogd nie jest uruchomiony komunikaty dotyczące odpluskwiania getty będa zachowywane w /tmp/getty:ttySN, a dotyczące uugetty w pliku /tmp/uugetty:ttySN oraz w pliku /var/adm/getty.log. Przypatrz się tej informacji i postaraj się zrozumieć co się dzieje. Prawdobodobnie będziesz musiał dostroić kilka parametrów w plikach konfiguracyjnych i ponwnie skonfigurwać modem. Możesz spróbować mgetty. Część ludzi miała z nim więcej szczęścia. 14. Inne źródła informacji. Strony podręcznika agetty(8), getty(1m), gettydefs(5), init(1), login(1), mgetty(8), setserial(8) Instrukcja modemu NET-3 HOWTO: wszystko na temat sieci, włączając SLIP, CSLIP i PPP PPP HOWTO: pomoc przy PPP Printing HOWTO: jak skonfiguraować drukarkę przez port szeregowy Term HOWTO: wszystko co chcesz wiedzieć na temat programu term UPS HOWTO: konfiurowanie komputerow z podłączonym przez port szeregowy UPSem UUCP HOWTO: informacja na temat konfiguracji UUCP Grupy nowinkowe: polskie: pl.com.os.linux: wszystkie pytania dotyczace Linux-a angielskie comp.os.linux.answers FAQs, How-To's, READMEs, etc. about Linux. comp.os.linux.hardware Hardware compatibility with the Linux operating system. comp.os.linux.networking Networking and communications under Linux. comp.os.linux.setup Linux installation and system administration. Lista dyskusyjna na temat portów szeregowych. Aby się zapisać wyślij list na adres majordomo@vger.rutgers.edu, zawierający ``subscribe linux-serial''. Jeśli wyślesz słowo ``help'' otrzymasz list z informacjami jak posługiwać się listą (po angielsku). Ten serwer obsluguje wiele innych list poświęconych Linux-owi. Wyśli polecenie ``lists'', a otrzymasz spis aktywnych list. Dokumentacja dotycząca komunikacji przez porty szeregowe i kart wieloportowych jest dostępna na serwerze firmy Cyclades http://www.cyclades.com. Dokumenty FAQ (czesto zadawane pytania) dotyczące modemów: Navas 28800 Modem FAQ Curt's High Speed Modem Page Programowanie portów szeregowych: Advanced Programming in the UNIX Environment, by W. Richard Stevens (ISBN 0-201-56317-7; Addison-Wesley) http://www.ora.com/catalog/posix/ NAME="POSIX Programmer's Guide">, by Donald Lewine (ISBN 0-937175-73-0; O'Reilly) 15. Współpraca przy tworzeniu tego dokumentu. Nie było możliwe napisania tego dokumentu samemeu. Jego większa część została napisana przeze mnie, przepisałem również wiele cudzych poprawek aby zachować ciągłość schematu i stylu. Dziękuje wszystkim, którzy mi pomogli lub skomentowali ten dokument. Pełna lista adresów byłaby abyt długa (ponad 50 adresów). Sczególne podziękowania należą sie Tedowi T'so, który cierpliwie odpowiadał na pytania dotyczące urządzeń szeregowych, Krisowi Glesonowi, który opiekuje się pakietem getty_ps i Gertowi Doeringowi, opiekunowi mgetty. 16. Od tłumacza Zdaje sobie sprawę, że niniejsze tłumaczenie zawiera mnóstwo błędów. Niestety nie jestem w stanie dokładnie sprawdzić całego dokumentu i świadomie pozostawiam tę pracę czytelnikowi. Będę wdzięczny za wszelkie uwagi na temat tego dokumentu, wytykanie błędów, literówek, składni i wszelkie inne, które mogą przyczynić się do jego ulepszenia. Wszelkie tego typu uwagi proszę przesyłać na adres piotr.pogorzelski@ippt.gov.pl Inne przetłumaczone dokumenty można znaleźć na stronie http://www.jtz.org.pl/. Zapraszamy!. piotr.pogorzelski@ippt.gov.pl. Koniec Serial-JTZ, polskiego tłumaczenia Serial-HOWTO czy jak to się zwie.

Wyszukiwarka

Podobne podstrony:
Serial HOWTO pl 6 (2)
Serial HOWTO pl 1 (2)
Serial HOWTO pl 2 (2)
Serial HOWTO pl 8 (2)
Serial HOWTO pl (3)
Serial HOWTO pl 14 (2)
Serial HOWTO pl 7 (2)
Serial HOWTO pl 15 (2)
Serial HOWTO pl 9 (2)
Serial HOWTO pl 11 (2)
Serial HOWTO pl 4 (2)
Serial HOWTO pl 5 (2)
Serial HOWTO pl 3 (2)
Serial HOWTO pl 13 (2)
Serial HOWTO pl 16 (2)
Serial HOWTO pl 10 (2)
Serial HOWTO pl 12 (2)
bootdisk howto pl 8
PPP HOWTO pl 6 (2)

więcej podobnych podstron