Następna strona Poprzednia strona Spis treści

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.


Następna strona Poprzednia strona Spis treści