Serial HOWTO pl 8 (2)


Linux, a porty szeregowe.: Czy mogę używać więcej niż 2 porty szeregowe? Następna strona Poprzednia strona Spis treści 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. Następna strona Poprzednia strona Spis treści

Wyszukiwarka

Podobne podstrony:
Serial HOWTO pl 6 (2)
Serial HOWTO pl 1 (2)
Serial HOWTO pl (2)
Serial HOWTO pl 2 (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